From e969bfacc927956d9d569486f5cf8de8b2d6d53d Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Mon, 12 Dec 2022 20:49:40 -0500 Subject: [PATCH 01/40] Agrega carpeta con archivos para leer archivos md --- md_files/file_1.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 md_files/file_1.md diff --git a/md_files/file_1.md b/md_files/file_1.md new file mode 100644 index 0000000..3c4f7fa --- /dev/null +++ b/md_files/file_1.md @@ -0,0 +1 @@ +https://pokeapi.co/api/v2/pokemon \ No newline at end of file From 91c08c9955939c4059c8d6ee3ad6297f11626d58 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Mon, 12 Dec 2022 21:25:14 -0500 Subject: [PATCH 02/40] Agrega librerias nativas fs, path y fetch. Agrega promesa readFilePromise. Agrega mostrar contenido del link --- md_links.js | 58 ++++++++++++++++++ package-lock.json | 146 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- 3 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 md_links.js create mode 100644 package-lock.json diff --git a/md_links.js b/md_links.js new file mode 100644 index 0000000..7b0e873 --- /dev/null +++ b/md_links.js @@ -0,0 +1,58 @@ +import fetch from "node-fetch"; +import fs, { link } from "fs"; +import path from "path"; + +const file = "md_files/file_1.md"; + +// path.extname(file, "utf-8", (error, extname) => { +// if (!error) { +// console.log(extname); +// } else { +// console.log("Error: ${error}"); +// } +// }); + +// const links = fs.readFile(file, "utf-8", (error, data) => { +// if (!error) { +// data; +// } else { +// "Error: ${error}"; +// } +// }) +const getExtePromise = (file) => { + return new Promise((res, rej) => { + path.extname(file, "utf-8", (error, extName) => { + if (!error) { + if (extName == ".md") + true; + } else { + rej("El archivo no es compatible par la búsqueda"); + } + }) + }) +} + +const readFilePromise = (file) => { + return new Promise((res, rej) => { + fs.readFile(file, "utf-8", (error, data) => { + if (!error) { + res(data); + } else { + rej("No se encuentran elementos válidos en el file"); + } + }) + }) + } + + readFilePromise(file) + .then((link) => fetch(link)) + .then((data) => data.json()) + .then((json) => console.log(json)); + +// const link = "https://pokeapi.co/api/v2/pokemon" +// fetch(link) +// .then((res) => res.json()) +// .then((data) => console.log(data["results"][0]["name"])) + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e43e13a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,146 @@ +{ + "name": "md-links", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "md-links", + "version": "0.1.0", + "dependencies": { + "node-fetch": "^3.3.0" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + } + }, + "dependencies": { + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + }, + "fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, + "node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + } + } +} diff --git a/package.json b/package.json index 5c10b74..ea61a0e 100644 --- a/package.json +++ b/package.json @@ -8,5 +8,9 @@ "createdAt": "2022-11-30T13:40:29.636Z", "version": "5.5.0", "commit": "51e941edf1cc991930aefd7dd9c406a7c43741c1" + }, + "type": "module", + "dependencies": { + "node-fetch": "^3.3.0" } -} \ No newline at end of file +} From 4938f9c5714cb48ffd47f6c6f4b882764b42c7f2 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Tue, 13 Dec 2022 12:43:10 -0500 Subject: [PATCH 03/40] Agrega babel --- .babelrc | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .babelrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..b301d06 --- /dev/null +++ b/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + ["@babel/env", { + "targets": { + "node": "current" + } + }] + ] + } \ No newline at end of file From 121f7ccd78a307200a60fb489fd0227dcf0ecf5b Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Tue, 13 Dec 2022 12:45:39 -0500 Subject: [PATCH 04/40] Agrega scrips a package.json. Agrega promesa para validar archivo .md --- md_files/no_md_file.txt | 1 + md_links.js | 66 +- package-lock.json | 5982 ++++++++++++++++++++++++++++++++++++++- package.json | 10 + 4 files changed, 5934 insertions(+), 125 deletions(-) create mode 100644 md_files/no_md_file.txt diff --git a/md_files/no_md_file.txt b/md_files/no_md_file.txt new file mode 100644 index 0000000..3c4f7fa --- /dev/null +++ b/md_files/no_md_file.txt @@ -0,0 +1 @@ +https://pokeapi.co/api/v2/pokemon \ No newline at end of file diff --git a/md_links.js b/md_links.js index 7b0e873..65e27f0 100644 --- a/md_links.js +++ b/md_links.js @@ -2,52 +2,44 @@ import fetch from "node-fetch"; import fs, { link } from "fs"; import path from "path"; +const file_no = "md_files/no_md_file.txt"; const file = "md_files/file_1.md"; -// path.extname(file, "utf-8", (error, extname) => { -// if (!error) { -// console.log(extname); -// } else { -// console.log("Error: ${error}"); -// } -// }); - -// const links = fs.readFile(file, "utf-8", (error, data) => { -// if (!error) { -// data; -// } else { -// "Error: ${error}"; -// } -// }) -const getExtePromise = (file) => { - return new Promise((res, rej) => { - path.extname(file, "utf-8", (error, extName) => { +// console.log(path.extname(file_no)); + +const isMdExtPromise = (file) => { + return new Promise((resolve, reject) => { + if(path.extname(file)===".md") { + resolve(file); + } else { + reject ("El archivo no es compatible con la búsqueda"); + } + }) +} + +const readFilePromise = (file) => { + return new Promise((resolve, reject) => { + fs.readFile(file, "utf-8", (error, data) => { if (!error) { - if (extName == ".md") - true; + resolve(data); } else { - rej("El archivo no es compatible par la búsqueda"); + reject("No se encuentran elementos válidos en el file"); } }) }) } -const readFilePromise = (file) => { - return new Promise((res, rej) => { - fs.readFile(file, "utf-8", (error, data) => { - if (!error) { - res(data); - } else { - rej("No se encuentran elementos válidos en el file"); - } - }) - }) - } - - readFilePromise(file) - .then((link) => fetch(link)) - .then((data) => data.json()) - .then((json) => console.log(json)); +// readFilePromise(file) +// .then((link) => fetch(link)) +// .then((data) => data.json()) +// .then((json) => console.log(json)); + +isMdExtPromise(file) + .then((mdFile) => readFilePromise(mdFile)) + .then((link) => fetch(link)) + .then((data) => data.json()) + .then((json) => console.log(json)) + .catch((error) => console.log("ERROR: ", error)); // const link = "https://pokeapi.co/api/v2/pokemon" // fetch(link) diff --git a/package-lock.json b/package-lock.json index e43e13a..2b1d57d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,137 +10,5943 @@ "dependencies": { "node-fetch": "^3.3.0" }, + "devDependencies": { + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.5", + "@babel/node": "^7.20.5", + "@babel/preset-env": "^7.20.2" + }, "engines": { "node": ">=16.x" } }, - "node_modules/data-uri-to-buffer": { + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.19.3.tgz", + "integrity": "sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/node": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.20.5.tgz", + "integrity": "sha512-ElSr40UtumWE4fYYF1xfLP2C6b9nfS/rswK7YYpLo9HDGEXGXEAWZaGCxIirxGIDyoV0rbl6jV1LyFMQ6ZOQSA==", + "dev": true, + "dependencies": { + "@babel/register": "^7.18.9", + "commander": "^4.0.1", + "core-js": "^3.26.0", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.11", + "v8flags": "^3.1.1" + }, + "bin": { + "babel-node": "bin/babel-node.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "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/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "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/caniuse-lite": { + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "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/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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-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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "engines": { + "node": ">= 12" + } + }, + "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/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/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/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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 + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", + "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "dev": true, + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "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": ">=6" + }, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/cli": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.19.3.tgz", + "integrity": "sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.8", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "dev": true + }, + "@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/node": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.20.5.tgz", + "integrity": "sha512-ElSr40UtumWE4fYYF1xfLP2C6b9nfS/rswK7YYpLo9HDGEXGXEAWZaGCxIirxGIDyoV0rbl6jV1LyFMQ6ZOQSA==", + "dev": true, + "requires": { + "@babel/register": "^7.18.9", + "commander": "^4.0.1", + "core-js": "^3.26.0", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.11", + "v8flags": "^3.1.1" + } + }, + "@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "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, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "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, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", + "dev": true + }, + "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, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "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, + "requires": { + "color-name": "1.1.3" + } + }, + "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 + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", + "dev": true + }, + "core-js-compat": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "dev": true, + "requires": { + "browserslist": "^4.21.4" + } + }, + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "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 + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "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, + "requires": { + "locate-path": "^3.0.0" + } + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "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 + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "engines": { - "node": ">= 12" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "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, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" }, - "engines": { - "node": "^12.20 || >= 14.13" + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" } }, - "node_modules/node-domexception": { + "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-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } - ], - "engines": { - "node": ">=10.5.0" } }, - "node_modules/node-fetch": { + "node-fetch": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", - "dependencies": { + "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" + } + }, + "node-releases": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", + "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "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 + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "engines": { - "node": ">= 8" + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } - } - }, - "dependencies": { - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" } }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, "requires": { - "fetch-blob": "^3.1.2" + "kind-of": "^6.0.2" } }, - "node-domexception": { + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "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, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, - "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "is-number": "^7.0.0" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" } }, "web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true } } } diff --git a/package.json b/package.json index ea61a0e..91da43b 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,18 @@ "version": "5.5.0", "commit": "51e941edf1cc991930aefd7dd9c406a7c43741c1" }, + "scripts": { + "build": "babel index.js -d dist", + "start": "babel-node index.js, md_links.js" + }, "type": "module", "dependencies": { "node-fetch": "^3.3.0" + }, + "devDependencies": { + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.5", + "@babel/node": "^7.20.5", + "@babel/preset-env": "^7.20.2" } } From c01c84133da63e576a119ee34ec71fb87f776785 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 14 Dec 2022 00:06:12 -0500 Subject: [PATCH 05/40] Modifica archivo file_1.md para pruebas --- md_files/{no_md_file.txt => file_1.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename md_files/{no_md_file.txt => file_1.txt} (100%) diff --git a/md_files/no_md_file.txt b/md_files/file_1.txt similarity index 100% rename from md_files/no_md_file.txt rename to md_files/file_1.txt From be90928e8a398d178c45f12534838e09201c6bd9 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 14 Dec 2022 00:08:58 -0500 Subject: [PATCH 06/40] Agrega promesas: getAbsolutePromise, validatePathPromise. Concatena las promesas. --- md_links.js | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/md_links.js b/md_links.js index 65e27f0..5e1e2cc 100644 --- a/md_links.js +++ b/md_links.js @@ -2,17 +2,35 @@ import fetch from "node-fetch"; import fs, { link } from "fs"; import path from "path"; -const file_no = "md_files/no_md_file.txt"; -const file = "md_files/file_1.md"; +const entryPath = "md_files/file_1.md"; // console.log(path.extname(file_no)); +// console.log(path.isAbsolute(file)); + +const validatePathPromise = (entryPath) => { + return new Promise((resolve, reject) => { + fs.access(entryPath, (error, _) => { + if (!error) { + resolve(entryPath); + } else { + reject("ERROR: La ruta " + entryPath + " no es válida"); + } + }) + }) +} + +const getAbsolutePathPromise = (file) => { + return new Promise((resolve, _) => { + resolve(path.resolve(file)); + }) +} const isMdExtPromise = (file) => { return new Promise((resolve, reject) => { - if(path.extname(file)===".md") { + if (path.extname(file) === ".md") { resolve(file); } else { - reject ("El archivo no es compatible con la búsqueda"); + reject("El archivo no es compatible con la búsqueda"); } }) } @@ -32,15 +50,25 @@ const readFilePromise = (file) => { // readFilePromise(file) // .then((link) => fetch(link)) // .then((data) => data.json()) -// .then((json) => console.log(json)); +// .then((json) => console.log(json)) +// .catch((error) => console.log("ERROR: ", error)); -isMdExtPromise(file) +getAbsolutePathPromise(entryPath) + .then((absolutePath) => validatePathPromise(absolutePath)) + .then((validatedPath) => isMdExtPromise(validatedPath)) .then((mdFile) => readFilePromise(mdFile)) .then((link) => fetch(link)) .then((data) => data.json()) .then((json) => console.log(json)) .catch((error) => console.log("ERROR: ", error)); +// isMdExtPromise(file) +// .then((mdFile) => readFilePromise(mdFile)) +// .then((link) => fetch(link)) +// .then((data) => data.json()) +// .then((json) => console.log(json)) +// .catch((error) => console.log("ERROR: ", error)); + // const link = "https://pokeapi.co/api/v2/pokemon" // fetch(link) // .then((res) => res.json()) From fd8ea65deb2f9f4df7faa38f514510cd90536b16 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 14 Dec 2022 15:10:33 -0500 Subject: [PATCH 07/40] Soluciona problema con node. Instala cross-fetch. Quita el llamado al fetch en md_links.js --- md_links.js | 9 ++--- package-lock.json | 84 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 6 ++-- 3 files changed, 90 insertions(+), 9 deletions(-) diff --git a/md_links.js b/md_links.js index 5e1e2cc..ec90374 100644 --- a/md_links.js +++ b/md_links.js @@ -1,12 +1,8 @@ -import fetch from "node-fetch"; -import fs, { link } from "fs"; -import path from "path"; +const fs = require("fs") +const path = require("path") const entryPath = "md_files/file_1.md"; -// console.log(path.extname(file_no)); -// console.log(path.isAbsolute(file)); - const validatePathPromise = (entryPath) => { return new Promise((resolve, reject) => { fs.access(entryPath, (error, _) => { @@ -73,6 +69,7 @@ getAbsolutePathPromise(entryPath) // fetch(link) // .then((res) => res.json()) // .then((data) => console.log(data["results"][0]["name"])) +// .catch((error) => console.log("ERROR: ", error)); diff --git a/package-lock.json b/package-lock.json index 2b1d57d..8935d18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "md-links", "version": "0.1.0", "dependencies": { + "cross-fetch": "^3.1.5", "node-fetch": "^3.3.0" }, "devDependencies": { @@ -2049,6 +2050,33 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/data-uri-to-buffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", @@ -3375,6 +3403,11 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -3476,6 +3509,20 @@ "node": ">= 8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -4920,6 +4967,24 @@ "browserslist": "^4.21.4" } }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, "data-uri-to-buffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", @@ -5865,6 +5930,11 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -5929,6 +5999,20 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", diff --git a/package.json b/package.json index 91da43b..e9dee5e 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ }, "scripts": { "build": "babel index.js -d dist", - "start": "babel-node index.js, md_links.js" - }, - "type": "module", + "start": "babel-node index.js, md_links.js" + }, "dependencies": { + "cross-fetch": "^3.1.5", "node-fetch": "^3.3.0" }, "devDependencies": { From 4bc2470bb3ff7dccda9d698456cf5ddbbc4e09ba Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 14 Dec 2022 21:49:00 -0500 Subject: [PATCH 08/40] Agrega modulo getLinks. Crea archivo preambulo.md que contiene links --- md_files/preambulo.md | 11 ++++++++++ md_links.js | 47 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 md_files/preambulo.md diff --git a/md_files/preambulo.md b/md_files/preambulo.md new file mode 100644 index 0000000..c503be4 --- /dev/null +++ b/md_files/preambulo.md @@ -0,0 +1,11 @@ +## 1. Preámbulo + +[Markdown](https://es.wikipedia.org/wiki/Markdown) es un lenguaje de marcado +ligero muy popular entre developers. Es usado en muchísimas plataformas que +manejan texto plano (GitHub, foros, blogs, ...) y es muy común +encontrar varios archivos en ese formato en cualquier tipo de repositorio +(empezando por el tradicional `README.md`). + +Estos archivos `Markdown` normalmente contienen _links_ (vínculos/ligas) que +muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de +la información que se quiere compartir. diff --git a/md_links.js b/md_links.js index ec90374..e065a70 100644 --- a/md_links.js +++ b/md_links.js @@ -1,7 +1,8 @@ -const fs = require("fs") +const fs = require("fs"); +const { resolve } = require("path"); const path = require("path") -const entryPath = "md_files/file_1.md"; +const entryPath = "README.md"; const validatePathPromise = (entryPath) => { return new Promise((resolve, reject) => { @@ -43,20 +44,46 @@ const readFilePromise = (file) => { }) } +const getLinks = (entryPath) => { + return new Promise((resolve, reject) => { + fs.readFile(entryPath, "utf-8", (error, data) => { + const regularExpression = /\[([^[]+)\](\(.*\))/gm; + if (data.match(regularExpression)) { + const arrayLinks = data.match(regularExpression); + const link = arrayLinks.map((item) => { + const textURLsplit = item.split("]("); + const text = textURLsplit[0].replace("[", "").substring(0, 50); + const href = textURLsplit[1].replace(")", ""); + return ({ href, text, entryPath }); + }); + const michi = "#"; + const linksURL = link.filter((object) => !object.href.startsWith(michi)); + resolve(linksURL); + } else { + resolve([]); + } + }) + }) +} + +getLinks(entryPath) +.then((link) => console.log(link)) +.catch((error) => console.log("ERROR: ", error)); + // readFilePromise(file) // .then((link) => fetch(link)) // .then((data) => data.json()) // .then((json) => console.log(json)) // .catch((error) => console.log("ERROR: ", error)); -getAbsolutePathPromise(entryPath) - .then((absolutePath) => validatePathPromise(absolutePath)) - .then((validatedPath) => isMdExtPromise(validatedPath)) - .then((mdFile) => readFilePromise(mdFile)) - .then((link) => fetch(link)) - .then((data) => data.json()) - .then((json) => console.log(json)) - .catch((error) => console.log("ERROR: ", error)); +// getAbsolutePathPromise(entryPath) +// .then((absolutePath) => validatePathPromise(absolutePath)) +// .then((validatedPath) => isMdExtPromise(validatedPath)) +// .then((mdFile) => readFilePromise(mdFile)) +// .then((link) => fetch(link)) +// .then((data) => data.json()) +// .then((json) => console.log(json)) +// .catch((error) => console.log("ERROR: ", error)); // isMdExtPromise(file) // .then((mdFile) => readFilePromise(mdFile)) From 863c0f9340ec12e0659cf07fb8006fad77031673 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 14 Dec 2022 22:00:20 -0500 Subject: [PATCH 09/40] Agrega modulo getLinks. Crea archivo preambulo.md que contiene links --- md_links.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/md_links.js b/md_links.js index e065a70..e70c2a8 100644 --- a/md_links.js +++ b/md_links.js @@ -56,9 +56,9 @@ const getLinks = (entryPath) => { const href = textURLsplit[1].replace(")", ""); return ({ href, text, entryPath }); }); - const michi = "#"; - const linksURL = link.filter((object) => !object.href.startsWith(michi)); - resolve(linksURL); + const crossReference = "#"; + const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); + resolve(justLinksURL); } else { resolve([]); } From 2247a0e206bbf9cc9b80ebfcabf07455f420d51b Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Thu, 15 Dec 2022 16:15:00 -0500 Subject: [PATCH 10/40] =?UTF-8?q?Agrega=20funci=C3=B3n=20para=20obtener=20?= =?UTF-8?q?el=20contenido=20de=20un=20directorio.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md_links.js | 114 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 49 deletions(-) diff --git a/md_links.js b/md_links.js index e70c2a8..7e84f78 100644 --- a/md_links.js +++ b/md_links.js @@ -2,11 +2,16 @@ const fs = require("fs"); const { resolve } = require("path"); const path = require("path") -const entryPath = "README.md"; +const entryPath = "/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files"; -const validatePathPromise = (entryPath) => { +const getAbsolutePath = (entryPath) => { + return (path.resolve(entryPath)); +} +//("function") + +const accessAndValidatePathPromise = (entryPath) => { return new Promise((resolve, reject) => { - fs.access(entryPath, (error, _) => { + fs.access(getAbsolutePath(entryPath), (error, _) => { if (!error) { resolve(entryPath); } else { @@ -14,75 +19,86 @@ const validatePathPromise = (entryPath) => { } }) }) -} +} //("function") -const getAbsolutePathPromise = (file) => { - return new Promise((resolve, _) => { - resolve(path.resolve(file)); - }) -} - -const isMdExtPromise = (file) => { +const isMdExtPromise = (entryPath) => { return new Promise((resolve, reject) => { - if (path.extname(file) === ".md") { - resolve(file); + if (path.extname(entryPath) === ".md") { + resolve(entryPath); } else { reject("El archivo no es compatible con la búsqueda"); } }) } -const readFilePromise = (file) => { - return new Promise((resolve, reject) => { - fs.readFile(file, "utf-8", (error, data) => { - if (!error) { - resolve(data); - } else { - reject("No se encuentran elementos válidos en el file"); - } - }) +const readContDirSync = (entryPath) => { + fs.readdirSync(entryPath, "utf-8", (error, data) => { + if (!error) { + resolve(data); + } else { + reject("No se encuentran elementos en el directorio"); + } }) } +fs.readdirSync(entryPath).forEach(file => { + console.log(file); + }); -const getLinks = (entryPath) => { - return new Promise((resolve, reject) => { - fs.readFile(entryPath, "utf-8", (error, data) => { - const regularExpression = /\[([^[]+)\](\(.*\))/gm; - if (data.match(regularExpression)) { - const arrayLinks = data.match(regularExpression); - const link = arrayLinks.map((item) => { - const textURLsplit = item.split("]("); - const text = textURLsplit[0].replace("[", "").substring(0, 50); - const href = textURLsplit[1].replace(")", ""); - return ({ href, text, entryPath }); - }); - const crossReference = "#"; - const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); - resolve(justLinksURL); - } else { - resolve([]); - } + const readFilePromise = (entryPath) => { + return new Promise((resolve, reject) => { + fs.readFile(entryPath, "utf-8", (error, data) => { + if (!error) { + resolve(data); + } else { + reject("No se encuentran elementos válidos en el file"); + } + }) }) - }) -} + } + + const getLinks = (entryPath) => { + return new Promise((resolve, reject) => { + fs.readFile(entryPath, "utf-8", (error, data) => { + const regularExpression = /\[([^[]+)\](\(.*\))/gm; + if (data.match(regularExpression)) { + const arrayLinks = data.match(regularExpression); + const link = arrayLinks.map((item) => { + const textURLsplit = item.split("]("); + const text = textURLsplit[0].replace("[", "").substring(0, 50); + const href = textURLsplit[1].replace(")", ""); + return ({ href, text, entryPath }); + }); + const crossReference = "#"; + const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); + resolve(justLinksURL); + } else { + resolve([]); + } + }) + }) + } + +// getAbsolutePathPromise(entryPath) +// .then((absolutePath) => readContDirSync(absolutePath)) +// .then((toShowLinks) => console.log(toShowLinks)) +// .catch((error) => console.log("ERROR: ", error)); -getLinks(entryPath) -.then((link) => console.log(link)) -.catch((error) => console.log("ERROR: ", error)); +// getLinks(entryPath) +// .then((link) => console.log(link)) +// .catch((error) => console.log("ERROR: ", error)); // readFilePromise(file) // .then((link) => fetch(link)) // .then((data) => data.json()) // .then((json) => console.log(json)) -// .catch((error) => console.log("ERROR: ", error)); +// .catch((error) => console.log("ERROR: ", error)); // getAbsolutePathPromise(entryPath) // .then((absolutePath) => validatePathPromise(absolutePath)) // .then((validatedPath) => isMdExtPromise(validatedPath)) // .then((mdFile) => readFilePromise(mdFile)) -// .then((link) => fetch(link)) -// .then((data) => data.json()) -// .then((json) => console.log(json)) +// .then((link) => getLinks(link)) +// .then((toShowLinks) => console.log(toShowLinks)) // .catch((error) => console.log("ERROR: ", error)); // isMdExtPromise(file) From 17318942922f0ea128483ef4f6e4ca64a3254133 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Thu, 15 Dec 2022 21:27:49 -0500 Subject: [PATCH 11/40] Agrega promesa searchMdFilesPromise. --- md_links.js | 116 +++++++++++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 51 deletions(-) diff --git a/md_links.js b/md_links.js index 7e84f78..cc4b923 100644 --- a/md_links.js +++ b/md_links.js @@ -2,7 +2,7 @@ const fs = require("fs"); const { resolve } = require("path"); const path = require("path") -const entryPath = "/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files"; +const entryPath = ['file_1.md', 'file_1.txt', 'preambulo.md']; const getAbsolutePath = (entryPath) => { return (path.resolve(entryPath)); @@ -21,62 +21,76 @@ const accessAndValidatePathPromise = (entryPath) => { }) } //("function") -const isMdExtPromise = (entryPath) => { +// const isMdExtPromise = (entryPath) => { +// return new Promise((resolve, reject) => { +// if (path.extname(entryPath) === ".md") { +// resolve(entryPath); +// } else { +// reject("El archivo no es compatible con la búsqueda"); +// } +// }) +// } + +const searchMdFilesPromise = (arrayOfFiles) => { return new Promise((resolve, reject) => { - if (path.extname(entryPath) === ".md") { - resolve(entryPath); + const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md") + if (!mdFilesArray.length == 0) { + resolve(mdFilesArray); } else { - reject("El archivo no es compatible con la búsqueda"); + reject("No se encuentran archivos markdown"); } }) } -const readContDirSync = (entryPath) => { - fs.readdirSync(entryPath, "utf-8", (error, data) => { - if (!error) { - resolve(data); - } else { - reject("No se encuentran elementos en el directorio"); - } - }) -} -fs.readdirSync(entryPath).forEach(file => { - console.log(file); - }); - - const readFilePromise = (entryPath) => { - return new Promise((resolve, reject) => { - fs.readFile(entryPath, "utf-8", (error, data) => { - if (!error) { - resolve(data); - } else { - reject("No se encuentran elementos válidos en el file"); - } - }) - }) - } - - const getLinks = (entryPath) => { - return new Promise((resolve, reject) => { - fs.readFile(entryPath, "utf-8", (error, data) => { - const regularExpression = /\[([^[]+)\](\(.*\))/gm; - if (data.match(regularExpression)) { - const arrayLinks = data.match(regularExpression); - const link = arrayLinks.map((item) => { - const textURLsplit = item.split("]("); - const text = textURLsplit[0].replace("[", "").substring(0, 50); - const href = textURLsplit[1].replace(")", ""); - return ({ href, text, entryPath }); - }); - const crossReference = "#"; - const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); - resolve(justLinksURL); - } else { - resolve([]); - } - }) - }) - } +console.log(searchMdFilesPromise(['file_1.md', 'file_1.txt', 'preambulo.md'])); + +// const readContDirSync = (entryPath) => { +// fs.readdirSync(entryPath, "utf-8", (error, data) => { +// if (!error) { +// resolve(data); +// } else { +// reject("No se encuentran elementos en el directorio"); +// } +// }) +// } + +// const readDir = (fs.readdirSync(entryPath, { withFileTypes: true }) +// .filter(item => !item.isDirectory()) +// .map(item => item.name)); + +// const readFilePromise = (entryPath) => { +// return new Promise((resolve, reject) => { +// fs.readFile(entryPath, "utf-8", (error, data) => { +// if (!error) { +// resolve(data); +// } else { +// reject("No se encuentran elementos válidos en el file"); +// } +// }) +// }) +// } + +// const getLinks = (entryPath) => { +// return new Promise((resolve, reject) => { +// fs.readFile(entryPath, "utf-8", (error, data) => { +// const regularExpression = /\[([^[]+)\](\(.*\))/gm; +// if (data.match(regularExpression)) { +// const arrayLinks = data.match(regularExpression); +// const link = arrayLinks.map((item) => { +// const textURLsplit = item.split("]("); +// const text = textURLsplit[0].replace("[", "").substring(0, 50); +// const href = textURLsplit[1].replace(")", ""); +// return ({ href, text, entryPath }); +// }); +// const crossReference = "#"; +// const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); +// resolve(justLinksURL); +// } else { +// resolve([]); +// } +// }) +// }) +// } // getAbsolutePathPromise(entryPath) // .then((absolutePath) => readContDirSync(absolutePath)) From 6bdffa2f9661dfd8b2ecdd68ce607418d24d5bdd Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Mon, 19 Dec 2022 17:08:46 -0500 Subject: [PATCH 12/40] =?UTF-8?q?Agrega=20getMdFilesFromPath,=20funci?= =?UTF-8?q?=C3=B3n=20s=C3=ADncrona=20para=20obtener=20los=20archivos=20.md?= =?UTF-8?q?=20de=20un=20directorio=20y=20de=20sus=20nodos.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md_files/file_1.md | 21 ++- md_files/file_1.txt | 2 +- md_files/file_2.md | 19 +++ md_files/nodo_1/hoja_1/amarillo.md | 0 md_files/nodo_1/hoja_1/gris.txt | 0 md_files/nodo_1/rojo.md | 0 md_files/preambulo.md | 6 + md_files/subcarpeta/otrofile_4.md | 0 md_links.js | 214 ++++++++++++++++++----------- 9 files changed, 182 insertions(+), 80 deletions(-) create mode 100644 md_files/file_2.md create mode 100644 md_files/nodo_1/hoja_1/amarillo.md create mode 100644 md_files/nodo_1/hoja_1/gris.txt create mode 100644 md_files/nodo_1/rojo.md create mode 100644 md_files/subcarpeta/otrofile_4.md diff --git a/md_files/file_1.md b/md_files/file_1.md index 3c4f7fa..2514e35 100644 --- a/md_files/file_1.md +++ b/md_files/file_1.md @@ -1 +1,20 @@ -https://pokeapi.co/api/v2/pokemon \ No newline at end of file +## 2. Resumen del proyecto + +En este proyecto crearás una herramienta de línea de comando (CLI) así como tu +propia librería (o biblioteca - library) en JavaScript. + +En esta oportunidad nos alejamos un poco del navegador para construir un +programa que se ejecute usando Node.js. Aprenderemos sobre procesos +(`process.env`, `process.argv`, ...), cómo interactuar con el sistema archivos, +cómo hacer consultas de red, etc. + +[Node.js](https://nodejs.org/es/) es un entorno de ejecución para JavaScript +construido con el [motor de JavaScript V8 de Chrome](https://developers.google.com/v8/). +Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, +ya sea tu máquina o un servidor, lo cual nos abre las puertas para poder +interactuar con el sistema en sí, archivos, redes, ... + +Diseñar tu propia librería es una experiencia fundamental para cualquier +desarrollador porque que te obliga a pensar en la interfaz (API) de tus +_módulos_ y cómo será usado por otros developers. Debes tener especial +consideración en peculiaridades del lenguaje, convenciones y buenas prácticas. \ No newline at end of file diff --git a/md_files/file_1.txt b/md_files/file_1.txt index 3c4f7fa..cfdf5f5 100644 --- a/md_files/file_1.txt +++ b/md_files/file_1.txt @@ -1 +1 @@ -https://pokeapi.co/api/v2/pokemon \ No newline at end of file +https://pokeapi.co/api/v2/pokemonmm \ No newline at end of file diff --git a/md_files/file_2.md b/md_files/file_2.md new file mode 100644 index 0000000..3de6e33 --- /dev/null +++ b/md_files/file_2.md @@ -0,0 +1,19 @@ +## 2. Resumen del proyecto + +En este proyecto crearás una herramienta de línea de comando (CLI) así como tu +propia librería (o biblioteca - library) en JavaScript. +En esta oportunidad nos alejamos un poco del navegador para construir un +programa que se ejecute usando Node.js. Aprenderemos sobre procesos +(`process.env`, `process.argv`, ...), cómo interactuar con el sistema archivos, +cómo hacer consultas de red, etc. + +[Node.js](https://nodejs.org/es/) es un entorno de ejecución para JavaScript +construido con el [motor de JavaScript V8 de Chrome](https://developers.google.com/v8/). +Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, +ya sea tu máquina o un servidor, lo cual nos abre las puertas para poder +interactuar con el sistema en sí, archivos, redes, ... + +Diseñar tu propia librería es una experiencia fundamental para cualquier +desarrollador porque que te obliga a pensar en la interfaz (API) de tus +_módulos_ y cómo será usado por otros developers. Debes tener especial +consideración en peculiaridades del lenguaje, convenciones y buenas prácticas. \ No newline at end of file diff --git a/md_files/nodo_1/hoja_1/amarillo.md b/md_files/nodo_1/hoja_1/amarillo.md new file mode 100644 index 0000000..e69de29 diff --git a/md_files/nodo_1/hoja_1/gris.txt b/md_files/nodo_1/hoja_1/gris.txt new file mode 100644 index 0000000..e69de29 diff --git a/md_files/nodo_1/rojo.md b/md_files/nodo_1/rojo.md new file mode 100644 index 0000000..e69de29 diff --git a/md_files/preambulo.md b/md_files/preambulo.md index c503be4..338936b 100644 --- a/md_files/preambulo.md +++ b/md_files/preambulo.md @@ -9,3 +9,9 @@ encontrar varios archivos en ese formato en cualquier tipo de repositorio Estos archivos `Markdown` normalmente contienen _links_ (vínculos/ligas) que muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de la información que se quiere compartir. +Dentro de una comunidad de código abierto, nos han propuesto crear una +herramienta usando [Node.js](https://nodejs.org/), que lea y analice archivos +en formato `Markdown`, para verificar los links que contengan y reportar +algunas estadísticas. + +![md-links](https://user-images.githubusercontent.com/110297/42118443-b7a5f1f0-7bc8-11e8-96ad-9cc5593715a6.jpg) diff --git a/md_files/subcarpeta/otrofile_4.md b/md_files/subcarpeta/otrofile_4.md new file mode 100644 index 0000000..e69de29 diff --git a/md_links.js b/md_links.js index cc4b923..4218fa3 100644 --- a/md_links.js +++ b/md_links.js @@ -2,18 +2,20 @@ const fs = require("fs"); const { resolve } = require("path"); const path = require("path") -const entryPath = ['file_1.md', 'file_1.txt', 'preambulo.md']; +const entryPath = "md_files"; +const arrayMdFiles = []; const getAbsolutePath = (entryPath) => { return (path.resolve(entryPath)); } //("function") -const accessAndValidatePathPromise = (entryPath) => { +const isAValidatePathPromise = (entryPath) => { return new Promise((resolve, reject) => { - fs.access(getAbsolutePath(entryPath), (error, _) => { + const absolutePath = getAbsolutePath(entryPath); + fs.access(absolutePath, (error, _) => { if (!error) { - resolve(entryPath); + resolve(absolutePath); } else { reject("ERROR: La ruta " + entryPath + " no es válida"); } @@ -21,19 +23,57 @@ const accessAndValidatePathPromise = (entryPath) => { }) } //("function") -// const isMdExtPromise = (entryPath) => { -// return new Promise((resolve, reject) => { -// if (path.extname(entryPath) === ".md") { -// resolve(entryPath); -// } else { -// reject("El archivo no es compatible con la búsqueda"); -// } -// }) -// } +// isAValidatePathPromise(entryPath) +// .then((validPath) => console.log(validPath)) +// .catch((error) => console.log("ERROR: ", error)); +//-APROBADO----------- + +function readDirSyncrono(entryPath) { + return (fs.readdirSync(entryPath, { withFileTypes: true }) + .filter(item => !item.isDirectory()) + .map(item => entryPath + "/" + item.name)); +} + +// isAValidatePathPromise(entryPath) +// .then((validPath) => readDirSyncrono(validPath)) +// .then((arrayDirectorio) => console.log(arrayDirectorio)) +// .catch((error) => console.log("ERROR: ", error)); +//-APROBADO----------- + + +const searchMdFiles = (arrayOfFiles) => { + const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md"); + if (!mdFilesArray.length == 0) { + return mdFilesArray; + } else { + return ("No se encuentran archivos markdown"); + } +} + +function getMdFilesFromPath(entryPath, arrayMdFiles) { + let childrenFolders = fs.readdirSync(entryPath, { withFileTypes: true }) + .filter(item => item.isDirectory()) + .map(item => entryPath + "/" + item.name); + + let childrenMdFiles = fs.readdirSync(entryPath) + .filter((mdFile) => path.extname(mdFile) === ".md") + .map(mdFilePath => path.resolve(entryPath + "/" + mdFilePath)); + + if (childrenFolders.length == 0) { + return arrayMdFiles.concat(childrenMdFiles); + } else { + childrenFolders.forEach((childFolder) => { + console.log(childFolder); + arrayMdFiles = getMdFilesFromPath(childFolder, arrayMdFiles); + }) + return childrenMdFiles.concat(arrayMdFiles); + } +} +console.log(getMdFilesFromPath(entryPath, arrayMdFiles)); const searchMdFilesPromise = (arrayOfFiles) => { return new Promise((resolve, reject) => { - const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md") + const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md"); if (!mdFilesArray.length == 0) { resolve(mdFilesArray); } else { @@ -42,64 +82,96 @@ const searchMdFilesPromise = (arrayOfFiles) => { }) } -console.log(searchMdFilesPromise(['file_1.md', 'file_1.txt', 'preambulo.md'])); +// isAValidatePathPromise(entryPath) +// .then((validPath) => readDir(validPath)) +// .then((arrayDirectorio) => searchMdFilesPromise(arrayDirectorio)) +// .then((mdFilesArray) => console.log(mdFilesArray)) +// .catch((error) => console.log("ERROR: ", error)); +//-APROBADO----------- -// const readContDirSync = (entryPath) => { -// fs.readdirSync(entryPath, "utf-8", (error, data) => { -// if (!error) { -// resolve(data); -// } else { -// reject("No se encuentran elementos en el directorio"); -// } -// }) -// } +///Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/file_1.md +///Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/file_1.md -// const readDir = (fs.readdirSync(entryPath, { withFileTypes: true }) -// .filter(item => !item.isDirectory()) -// .map(item => item.name)); +//Promesa que extrae los links de un archivo .md y los acumula en un arreglo. +const getLinksFromMdFile = (entryFile, links) => { + return new Promise((resolve, reject) => { + console.log(entryFile); + fs.readFile(entryFile, "utf-8", (error, data) => { + if (error) { + reject("ERROR: " + error); + } + const regularExpression = /\[([^[]+)\](\(.*\))/gm; + if (data.match(regularExpression)) { + const arrayLinks = data.match(regularExpression); + const link = arrayLinks.map((item) => { + const textURLsplit = item.split("]("); + const text = textURLsplit[0].replace("[", "").substring(0, 50); + const href = textURLsplit[1].replace(")", ""); + return ({ href, text, entryFile }); + }); + const crossReference = "#"; + const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); + resolve(links.concat(justLinksURL)); + } else { + resolve(links); + } + }) + }) +} -// const readFilePromise = (entryPath) => { -// return new Promise((resolve, reject) => { -// fs.readFile(entryPath, "utf-8", (error, data) => { -// if (!error) { -// resolve(data); -// } else { -// reject("No se encuentran elementos válidos en el file"); -// } -// }) -// }) -// } +//Promesa que extrae los links de un arreglo de archivos (arrayFiles) .md y los acumula en un arreglo (arrayLinks). +const getLinksFromArrayFiles = (arrayFiles, arrayLinks) => { + return new Promise((resolve, reject) => { + /*if (arrayFiles.length === 0) { + resolve(arrayLinks) + } else { + + }*/ + if (arrayFiles.length == 0) { + resolve(arrayLinks); + } else { + const head = arrayFiles.shift(); + resolve(getLinksFromMdFile(head, arrayLinks) + .then((links) => getLinksFromArrayFiles(arrayFiles, arrayLinks.concat(links)))); + } + }) +} -// const getLinks = (entryPath) => { +// const getLinksFromFiles = (filesArray) => { // return new Promise((resolve, reject) => { -// fs.readFile(entryPath, "utf-8", (error, data) => { -// const regularExpression = /\[([^[]+)\](\(.*\))/gm; -// if (data.match(regularExpression)) { -// const arrayLinks = data.match(regularExpression); -// const link = arrayLinks.map((item) => { -// const textURLsplit = item.split("]("); -// const text = textURLsplit[0].replace("[", "").substring(0, 50); -// const href = textURLsplit[1].replace(")", ""); -// return ({ href, text, entryPath }); -// }); -// const crossReference = "#"; -// const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); -// resolve(justLinksURL); -// } else { -// resolve([]); -// } -// }) +// const linksResponse = []; +// filesArray.forEach(element => { +// getLinks(getAbsolutePath(element)) +// .then((links) => linksResponse.concat(links)) +// .then((links) => resolve(links)); +// }); +// //resolve(linksResponse); // }) // } -// getAbsolutePathPromise(entryPath) -// .then((absolutePath) => readContDirSync(absolutePath)) -// .then((toShowLinks) => console.log(toShowLinks)) +// isAValidatePathPromise(entryPath) +// .then((validPath) => readDirSyncrono(validPath)) +// .then((arrayDirectorio) => searchMdFilesPromise(arrayDirectorio)) +// .then((mdFilesArray) => getLinksFromArrayFiles(mdFilesArray, [])) +// .then((links) => console.log(links)) // .catch((error) => console.log("ERROR: ", error)); +//-APROBADO----------- -// getLinks(entryPath) -// .then((link) => console.log(link)) +// isAValidatePathPromise(entryPath) +// .then((mdFilesArray) => getLinks(mdFilesArray)) +// .then((links) => console.log(links)) // .catch((error) => console.log("ERROR: ", error)); +//-APROBADO----------- + +// const isMdExtPromise = (entryPath) => { +// return new Promise((resolve, reject) => { +// if (path.extname(entryPath) === ".md") { +// resolve(entryPath); +// } else { +// reject("El archivo no es compatible con la búsqueda"); +// } +// }) +// } // readFilePromise(file) // .then((link) => fetch(link)) @@ -107,26 +179,12 @@ console.log(searchMdFilesPromise(['file_1.md', 'file_1.txt', 'preambulo.md'])); // .then((json) => console.log(json)) // .catch((error) => console.log("ERROR: ", error)); -// getAbsolutePathPromise(entryPath) -// .then((absolutePath) => validatePathPromise(absolutePath)) -// .then((validatedPath) => isMdExtPromise(validatedPath)) -// .then((mdFile) => readFilePromise(mdFile)) +// accessAndValidatePathPromise(entryPath) +// .then((absolutePath) => readDirSyncrono(absolutePath)) +// .then((mdFile) => searchMdFilesPromise(mdFile)) // .then((link) => getLinks(link)) // .then((toShowLinks) => console.log(toShowLinks)) // .catch((error) => console.log("ERROR: ", error)); -// isMdExtPromise(file) -// .then((mdFile) => readFilePromise(mdFile)) -// .then((link) => fetch(link)) -// .then((data) => data.json()) -// .then((json) => console.log(json)) -// .catch((error) => console.log("ERROR: ", error)); - -// const link = "https://pokeapi.co/api/v2/pokemon" -// fetch(link) -// .then((res) => res.json()) -// .then((data) => console.log(data["results"][0]["name"])) -// .catch((error) => console.log("ERROR: ", error)); - From 56d0e4260304c086c4d4aef2f92b5cded4ad4f74 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Tue, 20 Dec 2022 20:37:35 -0500 Subject: [PATCH 13/40] Agrega axios para http request --- package-lock.json | 152 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 153 insertions(+) diff --git a/package-lock.json b/package-lock.json index 8935d18..bc1e684 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "md-links", "version": "0.1.0", "dependencies": { + "axios": "^1.2.1", "cross-fetch": "^3.1.5", "node-fetch": "^3.3.0" }, @@ -1787,6 +1788,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", @@ -1999,6 +2015,17 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -2118,6 +2145,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", @@ -2274,6 +2309,38 @@ "node": ">=6" } }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -2859,6 +2926,25 @@ "semver": "bin/semver" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3128,6 +3214,11 @@ "node": ">=6" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4777,6 +4868,21 @@ "is-string": "^1.0.7" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", @@ -4928,6 +5034,14 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -5009,6 +5123,11 @@ "object-keys": "^1.1.1" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", @@ -5122,6 +5241,21 @@ "locate-path": "^3.0.0" } }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -5531,6 +5665,19 @@ } } }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5719,6 +5866,11 @@ "find-up": "^3.0.0" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", diff --git a/package.json b/package.json index e9dee5e..fb3d0fa 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "start": "babel-node index.js, md_links.js" }, "dependencies": { + "axios": "^1.2.1", "cross-fetch": "^3.1.5", "node-fetch": "^3.3.0" }, From d5868d187e532d3662117515f58b9cfe3c08dba0 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Tue, 20 Dec 2022 20:38:55 -0500 Subject: [PATCH 14/40] Agrega promesa fque revisa si los links funcionan o no - HTTP request, con fetch --- md_links.js | 132 +++++++++++----------------------------------------- 1 file changed, 27 insertions(+), 105 deletions(-) diff --git a/md_links.js b/md_links.js index 4218fa3..ba7b0dd 100644 --- a/md_links.js +++ b/md_links.js @@ -1,11 +1,12 @@ const fs = require("fs"); const { resolve } = require("path"); -const path = require("path") +const path = require("path"); +const { default: fetch } = require("cross-fetch"); const entryPath = "md_files"; const arrayMdFiles = []; -const getAbsolutePath = (entryPath) => { +let getAbsolutePath = (entryPath) => { return (path.resolve(entryPath)); } //("function") @@ -21,35 +22,10 @@ const isAValidatePathPromise = (entryPath) => { } }) }) -} //("function") - -// isAValidatePathPromise(entryPath) -// .then((validPath) => console.log(validPath)) -// .catch((error) => console.log("ERROR: ", error)); -//-APROBADO----------- - -function readDirSyncrono(entryPath) { - return (fs.readdirSync(entryPath, { withFileTypes: true }) - .filter(item => !item.isDirectory()) - .map(item => entryPath + "/" + item.name)); } -// isAValidatePathPromise(entryPath) -// .then((validPath) => readDirSyncrono(validPath)) -// .then((arrayDirectorio) => console.log(arrayDirectorio)) -// .catch((error) => console.log("ERROR: ", error)); //-APROBADO----------- - -const searchMdFiles = (arrayOfFiles) => { - const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md"); - if (!mdFilesArray.length == 0) { - return mdFilesArray; - } else { - return ("No se encuentran archivos markdown"); - } -} - function getMdFilesFromPath(entryPath, arrayMdFiles) { let childrenFolders = fs.readdirSync(entryPath, { withFileTypes: true }) .filter(item => item.isDirectory()) @@ -69,34 +45,12 @@ function getMdFilesFromPath(entryPath, arrayMdFiles) { return childrenMdFiles.concat(arrayMdFiles); } } -console.log(getMdFilesFromPath(entryPath, arrayMdFiles)); - -const searchMdFilesPromise = (arrayOfFiles) => { - return new Promise((resolve, reject) => { - const mdFilesArray = arrayOfFiles.filter((mdFile) => path.extname(mdFile) === ".md"); - if (!mdFilesArray.length == 0) { - resolve(mdFilesArray); - } else { - reject("No se encuentran archivos markdown"); - } - }) -} - -// isAValidatePathPromise(entryPath) -// .then((validPath) => readDir(validPath)) -// .then((arrayDirectorio) => searchMdFilesPromise(arrayDirectorio)) -// .then((mdFilesArray) => console.log(mdFilesArray)) -// .catch((error) => console.log("ERROR: ", error)); -//-APROBADO----------- - -///Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/file_1.md -///Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/file_1.md +// APROBADO ---console.log(getMdFilesFromPath(entryPath, arrayMdFiles)); //Promesa que extrae los links de un archivo .md y los acumula en un arreglo. -const getLinksFromMdFile = (entryFile, links) => { +const getLinksFromMdFile = (entryMdFile, links) => { return new Promise((resolve, reject) => { - console.log(entryFile); - fs.readFile(entryFile, "utf-8", (error, data) => { + fs.readFile(entryMdFile, "utf-8", (error, data) => { if (error) { reject("ERROR: " + error); } @@ -107,7 +61,7 @@ const getLinksFromMdFile = (entryFile, links) => { const textURLsplit = item.split("]("); const text = textURLsplit[0].replace("[", "").substring(0, 50); const href = textURLsplit[1].replace(")", ""); - return ({ href, text, entryFile }); + return ({ href, text, entryMdFile }); }); const crossReference = "#"; const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); @@ -118,15 +72,12 @@ const getLinksFromMdFile = (entryFile, links) => { }) }) } - +// getLinksFromMdFile("preambulo.md", []) +// .then(res => console.log(res)) +// .catch(error => console.log(error)); //Promesa que extrae los links de un arreglo de archivos (arrayFiles) .md y los acumula en un arreglo (arrayLinks). const getLinksFromArrayFiles = (arrayFiles, arrayLinks) => { return new Promise((resolve, reject) => { - /*if (arrayFiles.length === 0) { - resolve(arrayLinks) - } else { - - }*/ if (arrayFiles.length == 0) { resolve(arrayLinks); } else { @@ -137,54 +88,25 @@ const getLinksFromArrayFiles = (arrayFiles, arrayLinks) => { }) } -// const getLinksFromFiles = (filesArray) => { -// return new Promise((resolve, reject) => { -// const linksResponse = []; -// filesArray.forEach(element => { -// getLinks(getAbsolutePath(element)) -// .then((links) => linksResponse.concat(links)) -// .then((links) => resolve(links)); -// }); -// //resolve(linksResponse); -// }) -// } - -// isAValidatePathPromise(entryPath) -// .then((validPath) => readDirSyncrono(validPath)) -// .then((arrayDirectorio) => searchMdFilesPromise(arrayDirectorio)) -// .then((mdFilesArray) => getLinksFromArrayFiles(mdFilesArray, [])) -// .then((links) => console.log(links)) -// .catch((error) => console.log("ERROR: ", error)); -//-APROBADO----------- - -// isAValidatePathPromise(entryPath) -// .then((mdFilesArray) => getLinks(mdFilesArray)) -// .then((links) => console.log(links)) -// .catch((error) => console.log("ERROR: ", error)); -//-APROBADO----------- +//Promesa que revisa si los links funcionan o no - HTTP request -// const isMdExtPromise = (entryPath) => { -// return new Promise((resolve, reject) => { -// if (path.extname(entryPath) === ".md") { -// resolve(entryPath); -// } else { -// reject("El archivo no es compatible con la búsqueda"); -// } -// }) // } - -// readFilePromise(file) -// .then((link) => fetch(link)) -// .then((data) => data.json()) -// .then((json) => console.log(json)) -// .catch((error) => console.log("ERROR: ", error)); - -// accessAndValidatePathPromise(entryPath) -// .then((absolutePath) => readDirSyncrono(absolutePath)) -// .then((mdFile) => searchMdFilesPromise(mdFile)) -// .then((link) => getLinks(link)) -// .then((toShowLinks) => console.log(toShowLinks)) -// .catch((error) => console.log("ERROR: ", error)); +fetch("https://nodejs.org/") + .then(res => res) + .then((data) => { + valid = { + "HTTP request": " " + data.status + } + if(data.status >= 200 && data.status <= 399) { + console.log(valid); + } + if(data.status >= 400 && data.status <= 499) { + console.log(valid); + } + }) + .catch(() => { + console.error("ERROOOOOORRRRRR") + }) From 0f6ec8bebd4c5f107574a901828276c963daa4e5 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 21 Dec 2022 00:50:55 -0500 Subject: [PATCH 15/40] =?UTF-8?q?Refactoriza=20el=20c=C3=B3digo.=20Agrega?= =?UTF-8?q?=20promesa=20para=20validar=20un=20link.=20Agrega=20promesa=20r?= =?UTF-8?q?ecursiva=20validateArrayLinks=20(option:=20--validate)=20que=20?= =?UTF-8?q?resuelve=20un=20arreglo=20de=20objetos,=20donde=20cada=20objeto?= =?UTF-8?q?=20representa=20un=20link=20y=20contiene=20las=20propiedades=20?= =?UTF-8?q?por=20default=20m=C3=A1s=20status=20y=20message.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md_links.js | 134 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 90 insertions(+), 44 deletions(-) diff --git a/md_links.js b/md_links.js index ba7b0dd..763e90a 100644 --- a/md_links.js +++ b/md_links.js @@ -9,22 +9,25 @@ const arrayMdFiles = []; let getAbsolutePath = (entryPath) => { return (path.resolve(entryPath)); } -//("function") const isAValidatePathPromise = (entryPath) => { - return new Promise((resolve, reject) => { - const absolutePath = getAbsolutePath(entryPath); - fs.access(absolutePath, (error, _) => { - if (!error) { - resolve(absolutePath); - } else { - reject("ERROR: La ruta " + entryPath + " no es válida"); - } - }) + const absolutePath = getAbsolutePath(entryPath); + fs.access(absolutePath, (error, _) => { + if (!error) { + return (absolutePath); + } else { + return ("ERROR: La ruta " + entryPath + " no es válida"); + } }) } -//-APROBADO----------- +function isMdFilesPath(entryPath) { + if (path.extname(entryPath) === ".md") { + getLinksFromMdFilePromise(entryPath) + } else { + getMdFilesFromPath(entryPath, []); + } +} function getMdFilesFromPath(entryPath, arrayMdFiles) { let childrenFolders = fs.readdirSync(entryPath, { withFileTypes: true }) @@ -39,16 +42,14 @@ function getMdFilesFromPath(entryPath, arrayMdFiles) { return arrayMdFiles.concat(childrenMdFiles); } else { childrenFolders.forEach((childFolder) => { - console.log(childFolder); arrayMdFiles = getMdFilesFromPath(childFolder, arrayMdFiles); }) return childrenMdFiles.concat(arrayMdFiles); } } -// APROBADO ---console.log(getMdFilesFromPath(entryPath, arrayMdFiles)); //Promesa que extrae los links de un archivo .md y los acumula en un arreglo. -const getLinksFromMdFile = (entryMdFile, links) => { +const getLinksFromMdFilePromise = (entryMdFile) => { return new Promise((resolve, reject) => { fs.readFile(entryMdFile, "utf-8", (error, data) => { if (error) { @@ -65,48 +66,93 @@ const getLinksFromMdFile = (entryMdFile, links) => { }); const crossReference = "#"; const justLinksURL = link.filter((object) => !object.href.startsWith(crossReference)); - resolve(links.concat(justLinksURL)); + resolve(justLinksURL); } else { - resolve(links); + resolve([]); } }) }) } -// getLinksFromMdFile("preambulo.md", []) -// .then(res => console.log(res)) -// .catch(error => console.log(error)); -//Promesa que extrae los links de un arreglo de archivos (arrayFiles) .md y los acumula en un arreglo (arrayLinks). -const getLinksFromArrayFiles = (arrayFiles, arrayLinks) => { + +//Promesa que extrae los links de un arreglo de archivos .md (arrayFiles) y los acumula en un arreglo (arrayLinks). +const getLinksFromMdFilesPromise = (arrayMdFiles, accLinks) => { return new Promise((resolve, reject) => { - if (arrayFiles.length == 0) { - resolve(arrayLinks); + if (arrayMdFiles.length == 0) { + resolve(accLinks); } else { - const head = arrayFiles.shift(); - resolve(getLinksFromMdFile(head, arrayLinks) - .then((links) => getLinksFromArrayFiles(arrayFiles, arrayLinks.concat(links)))); + const head = arrayMdFiles.shift(); + resolve(getLinksFromMdFilePromise(head) + .then((links) => getLinksFromMdFilesPromise(arrayMdFiles, accLinks.concat(links)))); } }) } -//Promesa que revisa si los links funcionan o no - HTTP request +//Promesa que revisa si un link funciona o no - HTTP request +const validateLink = (objectDefaultResponse) => { + return new Promise((resolve, reject) => { + fetch(objectDefaultResponse.href) + .then((response) => { + if (response.ok) { + bodyResponse = { + "status": response.status, + "message": "Ok", + "href": objectDefaultResponse.href, + "text": objectDefaultResponse.text, + "file": objectDefaultResponse.entryMdFile + } + } else { + bodyResponse = { + "status": response.status, + "message": "Fail", + "href": objectDefaultResponse.href, + "text": objectDefaultResponse.text, + "file": objectDefaultResponse.entryMdFile + } + } + resolve(bodyResponse); + }) + .catch(() => { + bodyResponse = { + "message": "Link is not valid", + "href": objectDefaultResponse.href, + "text": objectDefaultResponse.text, + "file": objectDefaultResponse.entryMdFile + } + resolve(bodyResponse); + }) + }) +} -// } -fetch("https://nodejs.org/") - .then(res => res) - .then((data) => { - valid = { - "HTTP request": " " + data.status - } - if(data.status >= 200 && data.status <= 399) { - console.log(valid); - } - if(data.status >= 400 && data.status <= 499) { - console.log(valid); - } - }) - .catch(() => { - console.error("ERROOOOOORRRRRR") - }) +//Promesa que revisa si los links de un array funcionan o no - HTTP request +const validateArrayLinks = (arrayObjects, arrayBodyResponses) => { + return new Promise((resolve, reject) => { + if (arrayObjects.length == 1) { + resolve(validateLink(arrayObjects[0]) + .then((bodyResponse) => { + arrayBodyResponses.push(bodyResponse); + return arrayBodyResponses; + })) + } else { + let head = arrayObjects.shift(); + resolve(validateLink(head) + .then((headBodyResponse) => { + arrayBodyResponses.push(headBodyResponse); + return validateArrayLinks(arrayObjects, arrayBodyResponses); + })) + } + }) +} +const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] +const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/file_1.md", []) +getLinksFromMdFilesPromise(arrayMds, []) + .then((arrayLinks) => validateArrayLinks(arrayLinks, [])) + .then((res) => console.log(res)); +module.exports = { + getAbsolutePath, + getMdFilesFromPath, + getLinksFromMdFile: getLinksFromMdFilePromise, + getLinksFromArrayFiles: getLinksFromMdFilesPromise +} From ac391cb0184ab94cfd1ea6d9d1811c37c2ab5cac Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 21 Dec 2022 13:01:41 -0500 Subject: [PATCH 16/40] Agrega isMdFile function, para validar si la ruta que ingresa solo es un archivo .md --- md_links.js | 58 +++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/md_links.js b/md_links.js index 763e90a..89f2945 100644 --- a/md_links.js +++ b/md_links.js @@ -21,11 +21,11 @@ const isAValidatePathPromise = (entryPath) => { }) } -function isMdFilesPath(entryPath) { +function isMdFile(entryPath) { if (path.extname(entryPath) === ".md") { - getLinksFromMdFilePromise(entryPath) + return true; } else { - getMdFilesFromPath(entryPath, []); + return false; } } @@ -75,14 +75,18 @@ const getLinksFromMdFilePromise = (entryMdFile) => { } //Promesa que extrae los links de un arreglo de archivos .md (arrayFiles) y los acumula en un arreglo (arrayLinks). -const getLinksFromMdFilesPromise = (arrayMdFiles, accLinks) => { - return new Promise((resolve, reject) => { +const getLinksFromMdFilesPromise = (arrayMdFiles, accLinks) => { + return new Promise((resolve, _) => { if (arrayMdFiles.length == 0) { resolve(accLinks); } else { - const head = arrayMdFiles.shift(); - resolve(getLinksFromMdFilePromise(head) - .then((links) => getLinksFromMdFilesPromise(arrayMdFiles, accLinks.concat(links)))); + let head = arrayMdFiles.shift() + // console.log(arrayMdFiles); + resolve( + getLinksFromMdFilePromise(head) + .then((links) => { + return getLinksFromMdFilesPromise(arrayMdFiles, accLinks.concat(links)) + })); } }) } @@ -94,29 +98,29 @@ const validateLink = (objectDefaultResponse) => { .then((response) => { if (response.ok) { bodyResponse = { - "status": response.status, - "message": "Ok", "href": objectDefaultResponse.href, "text": objectDefaultResponse.text, - "file": objectDefaultResponse.entryMdFile + "file": objectDefaultResponse.entryMdFile, + "status": response.status, + "message": "Ok" } } else { bodyResponse = { - "status": response.status, - "message": "Fail", "href": objectDefaultResponse.href, "text": objectDefaultResponse.text, - "file": objectDefaultResponse.entryMdFile + "file": objectDefaultResponse.entryMdFile, + "status": response.status, + "message": "Fail" } } resolve(bodyResponse); }) .catch(() => { bodyResponse = { - "message": "Link is not valid", "href": objectDefaultResponse.href, "text": objectDefaultResponse.text, - "file": objectDefaultResponse.entryMdFile + "file": objectDefaultResponse.entryMdFile, + "message": "Link is not valid", } resolve(bodyResponse); }) @@ -124,35 +128,37 @@ const validateLink = (objectDefaultResponse) => { } //Promesa que revisa si los links de un array funcionan o no - HTTP request -const validateArrayLinks = (arrayObjects, arrayBodyResponses) => { - return new Promise((resolve, reject) => { +const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { + return new Promise((resolve, _) => { if (arrayObjects.length == 1) { resolve(validateLink(arrayObjects[0]) .then((bodyResponse) => { - arrayBodyResponses.push(bodyResponse); - return arrayBodyResponses; + accBodyResponses.push(bodyResponse); + return accBodyResponses; })) } else { let head = arrayObjects.shift(); resolve(validateLink(head) .then((headBodyResponse) => { - arrayBodyResponses.push(headBodyResponse); - return validateArrayLinks(arrayObjects, arrayBodyResponses); + accBodyResponses.push(headBodyResponse); + return validateArrayLinksPromise(arrayObjects, accBodyResponses); })) } }) } const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] -const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/file_1.md", []) +const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) getLinksFromMdFilesPromise(arrayMds, []) - .then((arrayLinks) => validateArrayLinks(arrayLinks, [])) + .then((arrayLinks) => validateArrayLinksPromise(arrayLinks, [])) .then((res) => console.log(res)); module.exports = { getAbsolutePath, + isMdFile, getMdFilesFromPath, - getLinksFromMdFile: getLinksFromMdFilePromise, - getLinksFromArrayFiles: getLinksFromMdFilesPromise + getLinksFromMdFilePromise, + getLinksFromMdFilesPromise, + validateArrayLinksPromise } From f7cc160b404bb42aa18d09c431fd77c194f26385 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Wed, 21 Dec 2022 21:07:32 -0500 Subject: [PATCH 17/40] Agrega promesa mdLinks en archivo index.js --- index.js | 48 ++++++++++++++++++++++++++++++++++++++++--- md_files/preambulo.md | 2 +- md_links.js | 27 ++++++++++++++++-------- 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index a4e4a45..6d63e1f 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,45 @@ -module.exports = () => { - // ... -}; +const fs = require("fs"); +const path = require("path"); +const getAbsolutePath = require("./md_links.js").getAbsolutePath; +const isMdFile = require("./md_links.js").isMdFile; +const isDirectory = require("./md_links.js").isDirectory; +const getMdFilesFromPath = require("./md_links.js").getMdFilesFromPath; +const getLinksFromMdFilePromise = require("./md_links.js").getLinksFromMdFilePromise; +const getLinksFromMdFilesPromise = require("./md_links.js").getLinksFromMdFilesPromise; +const validateArrayLinksPromise = require("./md_links.js").validateArrayLinksPromise + + +let entryPath = "md_files"; + +const mdLinks = (entryPath, option) => { + return new Promise((resolve, reject) => { + const absolutePath = getAbsolutePath(entryPath); + fs.access(absolutePath, (error, _) => { + if (!error) { + if (option == true || option == null) { + if (isMdFile(absolutePath) == true) { + resolve(getLinksFromMdFilePromise(entryPath) + .then(objectsLinks => validateArrayLinksPromise(objectsLinks, [])) + .then(arrayObjects => (arrayObjects))) + } else { + if (isDirectory(absolutePath)) { + let mdFiles = getMdFilesFromPath(entryPath, []) + resolve(getLinksFromMdFilesPromise(mdFiles, []) + .then((linksFromMdFiles) => validateArrayLinksPromise(linksFromMdFiles, [])) + .then((valideResponse) => (valideResponse))); + } else { + console.log("File type not accepted"); + } + } + } else { + console.log("Option not accepted"); + } + } else { + console.log("Invalid path"); + } + }) + }) +} + +mdLinks(entryPath, true) + .then(resp => console.log(resp)) \ No newline at end of file diff --git a/md_files/preambulo.md b/md_files/preambulo.md index 338936b..690e79f 100644 --- a/md_files/preambulo.md +++ b/md_files/preambulo.md @@ -1,6 +1,6 @@ ## 1. Preámbulo -[Markdown](https://es.wikipedia.org/wiki/Markdown) es un lenguaje de marcado +[Markdown](https://reqres.in/api/users/23) es un lenguaje de marcado ligero muy popular entre developers. Es usado en muchísimas plataformas que manejan texto plano (GitHub, foros, blogs, ...) y es muy común encontrar varios archivos en ese formato en cualquier tipo de repositorio diff --git a/md_links.js b/md_links.js index 89f2945..a43fe79 100644 --- a/md_links.js +++ b/md_links.js @@ -29,7 +29,17 @@ function isMdFile(entryPath) { } } -function getMdFilesFromPath(entryPath, arrayMdFiles) { +function isDirectory(entryPath) { + let childrenFolders = fs.stat(entryPath, (_, stats) => { + if (stats.isDirectory() == true) { + return true; + } else { + return false; + } + }) +} + +function getMdFilesFromPath(entryPath, accMdFiles) { let childrenFolders = fs.readdirSync(entryPath, { withFileTypes: true }) .filter(item => item.isDirectory()) .map(item => entryPath + "/" + item.name); @@ -39,12 +49,12 @@ function getMdFilesFromPath(entryPath, arrayMdFiles) { .map(mdFilePath => path.resolve(entryPath + "/" + mdFilePath)); if (childrenFolders.length == 0) { - return arrayMdFiles.concat(childrenMdFiles); + return accMdFiles.concat(childrenMdFiles); } else { childrenFolders.forEach((childFolder) => { - arrayMdFiles = getMdFilesFromPath(childFolder, arrayMdFiles); + accMdFiles = getMdFilesFromPath(childFolder, accMdFiles); }) - return childrenMdFiles.concat(arrayMdFiles); + return childrenMdFiles.concat(accMdFiles); } } @@ -75,7 +85,7 @@ const getLinksFromMdFilePromise = (entryMdFile) => { } //Promesa que extrae los links de un arreglo de archivos .md (arrayFiles) y los acumula en un arreglo (arrayLinks). -const getLinksFromMdFilesPromise = (arrayMdFiles, accLinks) => { +const getLinksFromArrayMdFilesPromise = (arrayMdFiles, accLinks) => { return new Promise((resolve, _) => { if (arrayMdFiles.length == 0) { resolve(accLinks); @@ -85,7 +95,7 @@ const getLinksFromMdFilesPromise = (arrayMdFiles, accLinks) => { resolve( getLinksFromMdFilePromise(head) .then((links) => { - return getLinksFromMdFilesPromise(arrayMdFiles, accLinks.concat(links)) + return getLinksFromArrayMdFilesPromise(arrayMdFiles, accLinks.concat(links)) })); } }) @@ -150,15 +160,16 @@ const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) -getLinksFromMdFilesPromise(arrayMds, []) +getLinksFromArrayMdFilesPromise(arrayMds, []) .then((arrayLinks) => validateArrayLinksPromise(arrayLinks, [])) .then((res) => console.log(res)); module.exports = { getAbsolutePath, isMdFile, + isDirectory, getMdFilesFromPath, getLinksFromMdFilePromise, - getLinksFromMdFilesPromise, + getLinksFromMdFilesPromise: getLinksFromArrayMdFilesPromise, validateArrayLinksPromise } From 7018c2647e2c0c97f8c72819086d1227fde52d89 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Thu, 22 Dec 2022 13:56:55 -0500 Subject: [PATCH 18/40] =?UTF-8?q?Agrega=20funci=C3=B3n=20principal=20mdLin?= =?UTF-8?q?ks=20con=20opci=C3=B3n=20por=20default=20y=20--validate:=20true?= =?UTF-8?q?.=20Agrega=20cambios=20en=20funci=C3=B3n=20isDirectory=20del=20?= =?UTF-8?q?archivo=20md=5Flinks.js.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 37 ++++++++++++++++++++++--------------- md_links.js | 18 +++--------------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/index.js b/index.js index 6d63e1f..1206717 100644 --- a/index.js +++ b/index.js @@ -5,41 +5,48 @@ const isMdFile = require("./md_links.js").isMdFile; const isDirectory = require("./md_links.js").isDirectory; const getMdFilesFromPath = require("./md_links.js").getMdFilesFromPath; const getLinksFromMdFilePromise = require("./md_links.js").getLinksFromMdFilePromise; -const getLinksFromMdFilesPromise = require("./md_links.js").getLinksFromMdFilesPromise; +const getLinksFromArrayMdFilesPromise = require("./md_links.js").getLinksFromArrayMdFilesPromise; const validateArrayLinksPromise = require("./md_links.js").validateArrayLinksPromise -let entryPath = "md_files"; - const mdLinks = (entryPath, option) => { return new Promise((resolve, reject) => { const absolutePath = getAbsolutePath(entryPath); + console.log(absolutePath); fs.access(absolutePath, (error, _) => { if (!error) { + console.log("absolutePath"); if (option == true || option == null) { + console.log("option"); if (isMdFile(absolutePath) == true) { - resolve(getLinksFromMdFilePromise(entryPath) + console.log("isMdFile"); + getLinksFromMdFilePromise(entryPath) .then(objectsLinks => validateArrayLinksPromise(objectsLinks, [])) - .then(arrayObjects => (arrayObjects))) + .then(arrayObjects => (arrayObjects)) + .then(res => resolve(res)) } else { + console.log(isDirectory(absolutePath)); if (isDirectory(absolutePath)) { + console.log("isDirectory"); let mdFiles = getMdFilesFromPath(entryPath, []) - resolve(getLinksFromMdFilesPromise(mdFiles, []) + getLinksFromArrayMdFilesPromise(mdFiles, []) .then((linksFromMdFiles) => validateArrayLinksPromise(linksFromMdFiles, [])) - .then((valideResponse) => (valideResponse))); - } else { - console.log("File type not accepted"); + .then((valideResponse) => (valideResponse)) + .then(res => resolve(res)); } } - } else { - console.log("Option not accepted"); } - } else { - console.log("Invalid path"); } }) }) } -mdLinks(entryPath, true) - .then(resp => console.log(resp)) \ No newline at end of file +mdLinks("md_files", false) + .then(resp => console.log(resp)) + .catch((error)=> console.log(error)) +// const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] +// const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) + +// getLinksFromArrayMdFilesPromise(arrayMds, []) +// .then((arrayLinks) => validateArrayLinksPromise(arrayLinks, [])) +// .then((res) => console.log(res)); \ No newline at end of file diff --git a/md_links.js b/md_links.js index a43fe79..c65d074 100644 --- a/md_links.js +++ b/md_links.js @@ -30,13 +30,8 @@ function isMdFile(entryPath) { } function isDirectory(entryPath) { - let childrenFolders = fs.stat(entryPath, (_, stats) => { - if (stats.isDirectory() == true) { - return true; - } else { - return false; - } - }) + let folder = fs.statSync(entryPath); + return folder.isDirectory(); } function getMdFilesFromPath(entryPath, accMdFiles) { @@ -157,19 +152,12 @@ const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { }) } -const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] -const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) - -getLinksFromArrayMdFilesPromise(arrayMds, []) - .then((arrayLinks) => validateArrayLinksPromise(arrayLinks, [])) - .then((res) => console.log(res)); - module.exports = { getAbsolutePath, isMdFile, isDirectory, getMdFilesFromPath, getLinksFromMdFilePromise, - getLinksFromMdFilesPromise: getLinksFromArrayMdFilesPromise, + getLinksFromArrayMdFilesPromise, validateArrayLinksPromise } From 18d8c05c8b1cdd8782e3fe38eb9665427eae0d33 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Thu, 22 Dec 2022 17:10:11 -0500 Subject: [PATCH 19/40] Agrega validateOption y statsOption, funciones para validar el ingreso de las opciones a mdLinks. --- index.js | 31 +++++++--------------- md_files/consideraciones.md | 30 +++++++++++++++++++++ md_files/criterios.txt | 12 +++++++++ md_files/file_1.txt | 1 - md_files/file_2.md | 19 -------------- md_files/nodo_1/hoja_1/amarillo.md | 0 md_files/{ => nodo_1/hoja_1}/preambulo.md | 5 ++-- md_files/{file_1.md => nodo_1/resumen.md} | 0 md_files/nodo_1/rojo.md | 0 md_files/nodo_2/modulos.txt | 12 +++++++++ md_files/nodo_2/recursion.md | 9 +++++++ md_files/peticion.md | 9 +++++++ md_files/subcarpeta/otrofile_4.md | 0 md_links.js | 32 +++++++++++++++-------- 14 files changed, 106 insertions(+), 54 deletions(-) create mode 100644 md_files/consideraciones.md create mode 100644 md_files/criterios.txt delete mode 100644 md_files/file_1.txt delete mode 100644 md_files/file_2.md delete mode 100644 md_files/nodo_1/hoja_1/amarillo.md rename md_files/{ => nodo_1/hoja_1}/preambulo.md (86%) rename md_files/{file_1.md => nodo_1/resumen.md} (100%) delete mode 100644 md_files/nodo_1/rojo.md create mode 100644 md_files/nodo_2/modulos.txt create mode 100644 md_files/nodo_2/recursion.md create mode 100644 md_files/peticion.md delete mode 100644 md_files/subcarpeta/otrofile_4.md diff --git a/index.js b/index.js index 1206717..2df2b62 100644 --- a/index.js +++ b/index.js @@ -1,33 +1,26 @@ const fs = require("fs"); -const path = require("path"); -const getAbsolutePath = require("./md_links.js").getAbsolutePath; -const isMdFile = require("./md_links.js").isMdFile; -const isDirectory = require("./md_links.js").isDirectory; -const getMdFilesFromPath = require("./md_links.js").getMdFilesFromPath; -const getLinksFromMdFilePromise = require("./md_links.js").getLinksFromMdFilePromise; -const getLinksFromArrayMdFilesPromise = require("./md_links.js").getLinksFromArrayMdFilesPromise; -const validateArrayLinksPromise = require("./md_links.js").validateArrayLinksPromise +const {getAbsolutePath, +isMdFile, +isDirectory, +getMdFilesFromPath, +getLinksFromMdFilePromise, +getLinksFromArrayMdFilesPromise, +validateArrayLinksPromise} = require("./md_links.js") const mdLinks = (entryPath, option) => { return new Promise((resolve, reject) => { const absolutePath = getAbsolutePath(entryPath); - console.log(absolutePath); fs.access(absolutePath, (error, _) => { - if (!error) { - console.log("absolutePath"); + if (!error) {reject("Invalid path")} if (option == true || option == null) { - console.log("option"); if (isMdFile(absolutePath) == true) { - console.log("isMdFile"); getLinksFromMdFilePromise(entryPath) .then(objectsLinks => validateArrayLinksPromise(objectsLinks, [])) .then(arrayObjects => (arrayObjects)) .then(res => resolve(res)) } else { - console.log(isDirectory(absolutePath)); - if (isDirectory(absolutePath)) { - console.log("isDirectory"); + if (isDirectory(absolutePath)) {reject("Invalid path")} { let mdFiles = getMdFilesFromPath(entryPath, []) getLinksFromArrayMdFilesPromise(mdFiles, []) .then((linksFromMdFiles) => validateArrayLinksPromise(linksFromMdFiles, [])) @@ -41,12 +34,8 @@ const mdLinks = (entryPath, option) => { }) } -mdLinks("md_files", false) +mdLinks("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", true) .then(resp => console.log(resp)) .catch((error)=> console.log(error)) // const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] // const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) - -// getLinksFromArrayMdFilesPromise(arrayMds, []) -// .then((arrayLinks) => validateArrayLinksPromise(arrayLinks, [])) -// .then((res) => console.log(res)); \ No newline at end of file diff --git a/md_files/consideraciones.md b/md_files/consideraciones.md new file mode 100644 index 0000000..8e47fad --- /dev/null +++ b/md_files/consideraciones.md @@ -0,0 +1,30 @@ +## 4. Consideraciones generales + +* Este proyecto se debe "resolver" de manera individual. + +* La **librería** y el **script ejecutable** (herramienta de línea de comando - + CLI) deben estar implementados en JavaScript para ser ejecutados con + Node.js. **Está permitido usar librerías externas**. + +* Tu módulo **debe ser instalable** via `npm install /md-links`. Este + módulo debe incluir tanto un _ejecutable_ que podamos invocar en la línea de + comando como una interfaz que podamos importar con `require` para usarlo + programáticamente. + +* Los **tests unitarios** deben cubrir un mínimo del 70% de _statements_, + _functions_, _lines_ y _branches_. Te recomendamos explorar [Jest](https://jestjs.io/) + para tus pruebas unitarias. + +* Para este proyecto **no está permitido** utilizar `async/await`. + +* Para este proyecto te sugerimos **no utilizar** la versión síncrona +de la función para leer archivos, `readFileSync`, y en cambio intentar +resolver este desafío de manera asíncrona. + +* Para este proyecto es **opcional** el uso de ES Modules `(import/export)`, en el + caso optes utilizarlo deberás de crear un script de `build` en el `package.json` + que los transforme en `requires` y `module.exports` con ayuda de **babel**. + +* Para disminuir la complejidad de tu algoritmo recursivo, te recomendamos +utilizar la versión síncrona de la función para leer directorios, `readdirSync`. + diff --git a/md_files/criterios.txt b/md_files/criterios.txt new file mode 100644 index 0000000..5ddcdb5 --- /dev/null +++ b/md_files/criterios.txt @@ -0,0 +1,12 @@ +## 5. Criterios de aceptación mínimos del proyecto + +Para comenzar este proyecto tendrás que hacer un **_fork_** y **_clonar_** este +repositorio. + +Antes de comenzar a codear, es necesario crear un **plan de acción**. Esto debería +quedar detallado en el `README.md` de tu repo y en una serie de **_issues_** +y **_milestones_** para priorizar y organizar el trabajo, y para poder hacer +seguimiento de tu progreso. + +Dentro de cada **_milestone_** se crearán y asignarán los **_issues_** que cada quien +considere necesarios. \ No newline at end of file diff --git a/md_files/file_1.txt b/md_files/file_1.txt deleted file mode 100644 index cfdf5f5..0000000 --- a/md_files/file_1.txt +++ /dev/null @@ -1 +0,0 @@ -https://pokeapi.co/api/v2/pokemonmm \ No newline at end of file diff --git a/md_files/file_2.md b/md_files/file_2.md deleted file mode 100644 index 3de6e33..0000000 --- a/md_files/file_2.md +++ /dev/null @@ -1,19 +0,0 @@ -## 2. Resumen del proyecto - -En este proyecto crearás una herramienta de línea de comando (CLI) así como tu -propia librería (o biblioteca - library) en JavaScript. -En esta oportunidad nos alejamos un poco del navegador para construir un -programa que se ejecute usando Node.js. Aprenderemos sobre procesos -(`process.env`, `process.argv`, ...), cómo interactuar con el sistema archivos, -cómo hacer consultas de red, etc. - -[Node.js](https://nodejs.org/es/) es un entorno de ejecución para JavaScript -construido con el [motor de JavaScript V8 de Chrome](https://developers.google.com/v8/). -Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, -ya sea tu máquina o un servidor, lo cual nos abre las puertas para poder -interactuar con el sistema en sí, archivos, redes, ... - -Diseñar tu propia librería es una experiencia fundamental para cualquier -desarrollador porque que te obliga a pensar en la interfaz (API) de tus -_módulos_ y cómo será usado por otros developers. Debes tener especial -consideración en peculiaridades del lenguaje, convenciones y buenas prácticas. \ No newline at end of file diff --git a/md_files/nodo_1/hoja_1/amarillo.md b/md_files/nodo_1/hoja_1/amarillo.md deleted file mode 100644 index e69de29..0000000 diff --git a/md_files/preambulo.md b/md_files/nodo_1/hoja_1/preambulo.md similarity index 86% rename from md_files/preambulo.md rename to md_files/nodo_1/hoja_1/preambulo.md index 690e79f..4915c26 100644 --- a/md_files/preambulo.md +++ b/md_files/nodo_1/hoja_1/preambulo.md @@ -1,6 +1,6 @@ ## 1. Preámbulo -[Markdown](https://reqres.in/api/users/23) es un lenguaje de marcado +[Markdown](https://es.wikipedia.org/wiki/Markdown) es un lenguaje de marcado ligero muy popular entre developers. Es usado en muchísimas plataformas que manejan texto plano (GitHub, foros, blogs, ...) y es muy común encontrar varios archivos en ese formato en cualquier tipo de repositorio @@ -9,9 +9,10 @@ encontrar varios archivos en ese formato en cualquier tipo de repositorio Estos archivos `Markdown` normalmente contienen _links_ (vínculos/ligas) que muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de la información que se quiere compartir. + Dentro de una comunidad de código abierto, nos han propuesto crear una herramienta usando [Node.js](https://nodejs.org/), que lea y analice archivos en formato `Markdown`, para verificar los links que contengan y reportar algunas estadísticas. -![md-links](https://user-images.githubusercontent.com/110297/42118443-b7a5f1f0-7bc8-11e8-96ad-9cc5593715a6.jpg) +![md-links](https://user-images.githubusercontent.com/110297/42118443-b7a5f1f0-7bc8-11e8-96ad-9cc5593715a6.jpg) \ No newline at end of file diff --git a/md_files/file_1.md b/md_files/nodo_1/resumen.md similarity index 100% rename from md_files/file_1.md rename to md_files/nodo_1/resumen.md diff --git a/md_files/nodo_1/rojo.md b/md_files/nodo_1/rojo.md deleted file mode 100644 index e69de29..0000000 diff --git a/md_files/nodo_2/modulos.txt b/md_files/nodo_2/modulos.txt new file mode 100644 index 0000000..fca9e1f --- /dev/null +++ b/md_files/nodo_2/modulos.txt @@ -0,0 +1,12 @@ + [ ] **Módulos de CommonJS** + +
Links

+ + * [Modules: CommonJS modules - Node.js Docs](https://nodejs.org/docs/latest/api/modules.html) +

+ +- [ ] **Diferenciar entre expresiones (expressions) y sentencias (statements)** + +- [ ] **Callbacks** + +
Links

\ No newline at end of file diff --git a/md_files/nodo_2/recursion.md b/md_files/nodo_2/recursion.md new file mode 100644 index 0000000..b69fb77 --- /dev/null +++ b/md_files/nodo_2/recursion.md @@ -0,0 +1,9 @@ +- [ ] **Recursión o recursividad** + +

Links

+ + * [Píldora recursión - YouTube Laboratoria Developers](https://www.youtube.com/watch?v=lPPgY3HLlhQ) + * [Recursión o Recursividad - Laboratoria Developers en Medium](https://medium.com/laboratoria-developers/recursi%C3%B3n-o-recursividad-ec8f1a359727) +

+ +* [Debería ser 404](https://reqres.in/api/users/23) \ No newline at end of file diff --git a/md_files/peticion.md b/md_files/peticion.md new file mode 100644 index 0000000..3a54f2e --- /dev/null +++ b/md_files/peticion.md @@ -0,0 +1,9 @@ +- [ ] **Consulta o petición (request) y respuesta (response).** + +
Links

+ + * [Generalidades del protocolo HTTP - MDN](https://developer.mozilla.org/es/docs/Web/HTTP/Overview) + * [Mensajes HTTP - MDN](https://developer.mozilla.org/es/docs/Web/HTTP/Messages) +

+ +* [Debería ser fallido](https://reqres.in/api/uses/23) \ No newline at end of file diff --git a/md_files/subcarpeta/otrofile_4.md b/md_files/subcarpeta/otrofile_4.md deleted file mode 100644 index e69de29..0000000 diff --git a/md_links.js b/md_links.js index c65d074..618f9ca 100644 --- a/md_links.js +++ b/md_links.js @@ -3,24 +3,25 @@ const { resolve } = require("path"); const path = require("path"); const { default: fetch } = require("cross-fetch"); -const entryPath = "md_files"; -const arrayMdFiles = []; - let getAbsolutePath = (entryPath) => { return (path.resolve(entryPath)); } -const isAValidatePathPromise = (entryPath) => { - const absolutePath = getAbsolutePath(entryPath); - fs.access(absolutePath, (error, _) => { - if (!error) { - return (absolutePath); - } else { - return ("ERROR: La ruta " + entryPath + " no es válida"); - } +function isValidPath(entryPath) { + let absolutePath = getAbsolutePath(entryPath); + let isValidPathPromise = new Promise((resolve, reject) => { + fs.access(absolutePath, (error, _) => { + if (!error) { + resolve(true); + } else { + reject(false); + } + }) }) + return isValidPathPromise; } + function isMdFile(entryPath) { if (path.extname(entryPath) === ".md") { return true; @@ -152,6 +153,15 @@ const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { }) } +//Flags +const validateOption = (option) => { + return option.find((validateFlag) => validateFlag === "--validate") +} + +const statsOption = (option) => { + return option.find((statsFlag) => statsFlag === "--stats") +} + module.exports = { getAbsolutePath, isMdFile, From 55ac07fa3adea1946ad4643d5fe9fd9871aeef37 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Fri, 23 Dec 2022 09:49:47 -0500 Subject: [PATCH 20/40] =?UTF-8?q?Refactoriza=20c=C3=B3digo.=20Quita=20func?= =?UTF-8?q?iones=20isMdFile,=20isDirectory.=20Agrega=20Promesa=20validateP?= =?UTF-8?q?athRomise,=20para=20validar=20y=20resolver=20el=20path=20que=20?= =?UTF-8?q?ingrese=20el=20usuario.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md_links.js | 64 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/md_links.js b/md_links.js index 618f9ca..96f89d7 100644 --- a/md_links.js +++ b/md_links.js @@ -3,36 +3,24 @@ const { resolve } = require("path"); const path = require("path"); const { default: fetch } = require("cross-fetch"); +const entryPath = "md_files" + let getAbsolutePath = (entryPath) => { - return (path.resolve(entryPath)); + return path.resolve(entryPath); } -function isValidPath(entryPath) { +//Promesa que resuleve si un path relativo o absoluto es válido. +const validatePathPromise = (entryPath) => { let absolutePath = getAbsolutePath(entryPath); - let isValidPathPromise = new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { fs.access(absolutePath, (error, _) => { if (!error) { - resolve(true); + resolve(absolutePath); } else { - reject(false); + reject("Path: " + entryPath + " is not valid"); } }) }) - return isValidPathPromise; -} - - -function isMdFile(entryPath) { - if (path.extname(entryPath) === ".md") { - return true; - } else { - return false; - } -} - -function isDirectory(entryPath) { - let folder = fs.statSync(entryPath); - return folder.isDirectory(); } function getMdFilesFromPath(entryPath, accMdFiles) { @@ -97,6 +85,28 @@ const getLinksFromArrayMdFilesPromise = (arrayMdFiles, accLinks) => { }) } +const getLinksFromFileOrDirectory = (entryPath) => { + return new Promise((resolve, reject) => { + validatePathPromise(entryPath) + .then((validatedPath) => { + if (path.extname(validatedPath) === ".md") { + resolve(getLinksFromMdFilePromise(validatedPath)); + } else if (fs.statSync(validatedPath).isDirectory()) { + let arrayMdFiles = getMdFilesFromPath(validatedPath, []); + resolve(getLinksFromArrayMdFilesPromise(arrayMdFiles, [])); + } else { + reject("Provided file is not a markdown") + } + }) + .catch(error => reject(error)) + }) +} + +// getLinksFromFileOrDirectory(entryPath) +// .then(links => validateArrayLinksPromise(links)) +// .then(res => console.log(res)) +// .catch(error => console.log(error)) + //Promesa que revisa si un link funciona o no - HTTP request const validateLink = (objectDefaultResponse) => { return new Promise((resolve, reject) => { @@ -132,9 +142,12 @@ const validateLink = (objectDefaultResponse) => { }) }) } +const validateArrayLinksPromise = (arrayObjects) => { + return validateArrayLinksPromiseRecursive(arrayObjects, []) +} //Promesa que revisa si los links de un array funcionan o no - HTTP request -const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { +const validateArrayLinksPromiseRecursive = (arrayObjects, accBodyResponses) => { return new Promise((resolve, _) => { if (arrayObjects.length == 1) { resolve(validateLink(arrayObjects[0]) @@ -147,7 +160,7 @@ const validateArrayLinksPromise = (arrayObjects, accBodyResponses) => { resolve(validateLink(head) .then((headBodyResponse) => { accBodyResponses.push(headBodyResponse); - return validateArrayLinksPromise(arrayObjects, accBodyResponses); + return validateArrayLinksPromiseRecursive(arrayObjects, accBodyResponses); })) } }) @@ -163,11 +176,6 @@ const statsOption = (option) => { } module.exports = { - getAbsolutePath, - isMdFile, - isDirectory, - getMdFilesFromPath, - getLinksFromMdFilePromise, - getLinksFromArrayMdFilesPromise, + getLinksFromFileOrDirectory, validateArrayLinksPromise } From 74ce1ea7772366cc6c02f5be880632a47bcae592 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Fri, 23 Dec 2022 09:51:36 -0500 Subject: [PATCH 21/40] Agrega promesa getLinksFromFileOrDirectoryPromise. --- md_links.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/md_links.js b/md_links.js index 96f89d7..42bb2ea 100644 --- a/md_links.js +++ b/md_links.js @@ -85,7 +85,7 @@ const getLinksFromArrayMdFilesPromise = (arrayMdFiles, accLinks) => { }) } -const getLinksFromFileOrDirectory = (entryPath) => { +const getLinksFromFileOrDirectoryPromise = (entryPath) => { return new Promise((resolve, reject) => { validatePathPromise(entryPath) .then((validatedPath) => { @@ -102,7 +102,7 @@ const getLinksFromFileOrDirectory = (entryPath) => { }) } -// getLinksFromFileOrDirectory(entryPath) +// getLinksFromFileOrDirectoryPromise(entryPath) // .then(links => validateArrayLinksPromise(links)) // .then(res => console.log(res)) // .catch(error => console.log(error)) @@ -176,6 +176,6 @@ const statsOption = (option) => { } module.exports = { - getLinksFromFileOrDirectory, + getLinksFromFileOrDirectoryPromise, validateArrayLinksPromise } From f981d889c501e837683b5bf105b7cfa4ccad3a13 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Fri, 23 Dec 2022 17:47:50 -0500 Subject: [PATCH 22/40] =?UTF-8?q?Agrega=20funcion=20countUniqueLinks=20en?= =?UTF-8?q?=20md=5Flinks.js.=20Agrega=20estad=C3=ADsticas:=20total,=20uniq?= =?UTF-8?q?ue=20y=20broken=20links=20en=20el=20index.js.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 70 ++++++++++++++++++++++++++++++----------------------- md_links.js | 24 ++++++++++++++---- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/index.js b/index.js index 2df2b62..26f3d47 100644 --- a/index.js +++ b/index.js @@ -1,41 +1,51 @@ -const fs = require("fs"); -const {getAbsolutePath, -isMdFile, -isDirectory, -getMdFilesFromPath, -getLinksFromMdFilePromise, -getLinksFromArrayMdFilesPromise, -validateArrayLinksPromise} = require("./md_links.js") +const { getLinksFromFileOrDirectoryPromise, + validateArrayLinksPromise, + arguments, + totalLinks, + brokenLinks, + countUniqueLinks } = require("./md_links.js") const mdLinks = (entryPath, option) => { return new Promise((resolve, reject) => { - const absolutePath = getAbsolutePath(entryPath); - fs.access(absolutePath, (error, _) => { - if (!error) {reject("Invalid path")} - if (option == true || option == null) { - if (isMdFile(absolutePath) == true) { - getLinksFromMdFilePromise(entryPath) - .then(objectsLinks => validateArrayLinksPromise(objectsLinks, [])) - .then(arrayObjects => (arrayObjects)) - .then(res => resolve(res)) - } else { - if (isDirectory(absolutePath)) {reject("Invalid path")} { - let mdFiles = getMdFilesFromPath(entryPath, []) - getLinksFromArrayMdFilesPromise(mdFiles, []) - .then((linksFromMdFiles) => validateArrayLinksPromise(linksFromMdFiles, [])) - .then((valideResponse) => (valideResponse)) - .then(res => resolve(res)); - } - } - } + if (arguments(option)) { + if (option == "--validate") { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(links => validateArrayLinksPromise(links)) + .then(arrayObjects => resolve(arrayObjects)) + .catch(error => reject(error)) + } else if (option == "--validate --stats") { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(links => validateArrayLinksPromise(links)) + .then(arrayObjects => resolve( + "Total links: " + arrayObjects.length + "\n" + + "Unique: " + countUniqueLinks(arrayObjects) + "\n" + + "Broken: " + arrayObjects.filter(link => link.message === "Fail").length + )) + .catch(error => reject(error)) } - }) + } else if (!arguments(option)) { + if (option == undefined) { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(res => resolve(res)) + .catch(error => reject(error)) + } else if (option == "--stats") { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(arrayLinks => resolve( + "Total links: " + arrayLinks.length + "\n" + + "Unique links: " + countUniqueLinks(arrayLinks) + )) + .catch(error => reject(error)) + } + } }) } -mdLinks("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", true) +module.exports = { mdLinks } + + +mdLinks("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/nodo_2/recursion.md", "--validate --stats") .then(resp => console.log(resp)) - .catch((error)=> console.log(error)) + .catch((error) => console.log(error)) // const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] // const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) diff --git a/md_links.js b/md_links.js index 42bb2ea..cb4b64b 100644 --- a/md_links.js +++ b/md_links.js @@ -2,6 +2,7 @@ const fs = require("fs"); const { resolve } = require("path"); const path = require("path"); const { default: fetch } = require("cross-fetch"); +const { rejects } = require("assert"); const entryPath = "md_files" @@ -167,15 +168,28 @@ const validateArrayLinksPromiseRecursive = (arrayObjects, accBodyResponses) => { } //Flags -const validateOption = (option) => { - return option.find((validateFlag) => validateFlag === "--validate") + +const arguments = (option) => { + if (option == "--validate" || option == "--validate --stats") { + return true + } else if (option == undefined || option == "--stats") { + return false + } } -const statsOption = (option) => { - return option.find((statsFlag) => statsFlag === "--stats") +const countUniqueLinks = (arrayLinks) => { + let set = new Set(); + arrayLinks.forEach(element => { + set.add(element.href) + }); + return set.size; } module.exports = { getLinksFromFileOrDirectoryPromise, - validateArrayLinksPromise + validateArrayLinksPromise, + arguments, + totalLinks, + brokenLinks, + countUniqueLinks } From eed0aede9da3d070391c1ada1a869044c7a956d7 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Fri, 23 Dec 2022 17:49:47 -0500 Subject: [PATCH 23/40] =?UTF-8?q?Agrega=20process-mdlinks.js=20que=20conti?= =?UTF-8?q?ene=20m=C3=B3dulo=20process.argv,=20para=20recibir=20las=20line?= =?UTF-8?q?as=20de=20comando.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md_files/nodo_2/recursion.md | 2 ++ process-mdlinks.js | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 process-mdlinks.js diff --git a/md_files/nodo_2/recursion.md b/md_files/nodo_2/recursion.md index b69fb77..4d698f1 100644 --- a/md_files/nodo_2/recursion.md +++ b/md_files/nodo_2/recursion.md @@ -6,4 +6,6 @@ * [Recursión o Recursividad - Laboratoria Developers en Medium](https://medium.com/laboratoria-developers/recursi%C3%B3n-o-recursividad-ec8f1a359727)

+* [Debería ser 404](https://reqres.in/api/users/23) +* [Debería ser 404](https://reqres.in/api/users/23) * [Debería ser 404](https://reqres.in/api/users/23) \ No newline at end of file diff --git a/process-mdlinks.js b/process-mdlinks.js new file mode 100644 index 0000000..4a3639a --- /dev/null +++ b/process-mdlinks.js @@ -0,0 +1,5 @@ +const process = require("process") + +process.argv.forEach((val, index) => { + console.log(`${index}: ${val}`); + }); \ No newline at end of file From 3e9ccec3442b7d3bd143324f4b7c894d8e83e9a2 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Mon, 26 Dec 2022 12:09:27 -0500 Subject: [PATCH 24/40] Agrega funciones getOptionsFromArguments y getPathFromArguments. --- md_links.js | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/md_links.js b/md_links.js index cb4b64b..64916fd 100644 --- a/md_links.js +++ b/md_links.js @@ -4,8 +4,6 @@ const path = require("path"); const { default: fetch } = require("cross-fetch"); const { rejects } = require("assert"); -const entryPath = "md_files" - let getAbsolutePath = (entryPath) => { return path.resolve(entryPath); } @@ -103,11 +101,6 @@ const getLinksFromFileOrDirectoryPromise = (entryPath) => { }) } -// getLinksFromFileOrDirectoryPromise(entryPath) -// .then(links => validateArrayLinksPromise(links)) -// .then(res => console.log(res)) -// .catch(error => console.log(error)) - //Promesa que revisa si un link funciona o no - HTTP request const validateLink = (objectDefaultResponse) => { return new Promise((resolve, reject) => { @@ -143,6 +136,7 @@ const validateLink = (objectDefaultResponse) => { }) }) } + const validateArrayLinksPromise = (arrayObjects) => { return validateArrayLinksPromiseRecursive(arrayObjects, []) } @@ -167,16 +161,6 @@ const validateArrayLinksPromiseRecursive = (arrayObjects, accBodyResponses) => { }) } -//Flags - -const arguments = (option) => { - if (option == "--validate" || option == "--validate --stats") { - return true - } else if (option == undefined || option == "--stats") { - return false - } -} - const countUniqueLinks = (arrayLinks) => { let set = new Set(); arrayLinks.forEach(element => { @@ -185,11 +169,18 @@ const countUniqueLinks = (arrayLinks) => { return set.size; } +const getOptionsFromArguments = (processArguments) => { + return processArguments.filter((argument) => argument.startsWith("--")); +} + +const getPathFromArguments = (processArguments) => { + return processArguments[2]; +} + module.exports = { getLinksFromFileOrDirectoryPromise, validateArrayLinksPromise, - arguments, - totalLinks, - brokenLinks, - countUniqueLinks + countUniqueLinks, + getOptionsFromArguments, + getPathFromArguments } From 8d0456079d6104528640cdf18a779c83d44ae6fb Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Mon, 26 Dec 2022 12:12:04 -0500 Subject: [PATCH 25/40] Agrega process.argv. Agrega validar opciones que ingresan. --- index.js | 73 +++++++++++++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/index.js b/index.js index 26f3d47..b51e764 100644 --- a/index.js +++ b/index.js @@ -1,51 +1,44 @@ +const process = require("process") const { getLinksFromFileOrDirectoryPromise, validateArrayLinksPromise, - arguments, - totalLinks, - brokenLinks, - countUniqueLinks } = require("./md_links.js") + countUniqueLinks, + getOptionsFromArguments, + getPathFromArguments } = require("./md_links.js") +const arguments = process.argv; -const mdLinks = (entryPath, option) => { +const mdLinks = (entryPath, arrayOptions) => { return new Promise((resolve, reject) => { - if (arguments(option)) { - if (option == "--validate") { - getLinksFromFileOrDirectoryPromise(entryPath) - .then(links => validateArrayLinksPromise(links)) - .then(arrayObjects => resolve(arrayObjects)) - .catch(error => reject(error)) - } else if (option == "--validate --stats") { - getLinksFromFileOrDirectoryPromise(entryPath) - .then(links => validateArrayLinksPromise(links)) - .then(arrayObjects => resolve( - "Total links: " + arrayObjects.length + "\n" + - "Unique: " + countUniqueLinks(arrayObjects) + "\n" + - "Broken: " + arrayObjects.filter(link => link.message === "Fail").length - )) - .catch(error => reject(error)) - } - } else if (!arguments(option)) { - if (option == undefined) { - getLinksFromFileOrDirectoryPromise(entryPath) - .then(res => resolve(res)) - .catch(error => reject(error)) - } else if (option == "--stats") { - getLinksFromFileOrDirectoryPromise(entryPath) - .then(arrayLinks => resolve( - "Total links: " + arrayLinks.length + "\n" + - "Unique links: " + countUniqueLinks(arrayLinks) - )) - .catch(error => reject(error)) - } + if (arrayOptions.includes("--validate") && arrayOptions.includes("--stats")) { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(links => validateArrayLinksPromise(links)) + .then(arrayObjects => resolve( + "Total links: " + arrayObjects.length + "\n" + + "Unique: " + countUniqueLinks(arrayObjects) + "\n" + + "Broken: " + arrayObjects.filter(link => link.message === "Fail").length + )) + .catch(error => reject(error)) + } else if (arrayOptions.includes("--validate")) { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(links => validateArrayLinksPromise(links)) + .then(arrayObjects => resolve(arrayObjects)) + .catch(error => reject(error)) + } else if (arrayOptions.includes("--stats")) { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(arrayLinks => resolve( + "Total links: " + arrayLinks.length + "\n" + + "Unique links: " + countUniqueLinks(arrayLinks) + )) + .catch(error => reject(error)) + } else if (arrayOptions.length == 0) { + getLinksFromFileOrDirectoryPromise(entryPath) + .then(res => resolve(res)) + .catch(error => reject(error)) } }) } module.exports = { mdLinks } - -mdLinks("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files/nodo_2/recursion.md", "--validate --stats") - .then(resp => console.log(resp)) - .catch((error) => console.log(error)) -// const arrayPrueba = ["https://reqres.in/api/users/23", "https://reqres.in/api/users/2", "https://reqres.in/api/users/23"] -// const arrayMds = getMdFilesFromPath("/Users/osequeiros/Documents/Kamila/Proyectos-Laboratoria/DEV002-md-links/md_files", []) +mdLinks(getPathFromArguments(arguments), getOptionsFromArguments(arguments)) + .then(response => console.log(response)); \ No newline at end of file From 24345be5791e5a0d50fefb228ae99d10092a6ab7 Mon Sep 17 00:00:00 2001 From: Kamila Ojeda Date: Tue, 27 Dec 2022 09:55:55 -0500 Subject: [PATCH 26/40] Agrega README --- README.md | 600 ++++---------------------------- img-README/Diagrama_Flujo.jpeg | Bin 0 -> 129535 bytes img-README/Git-Hub_Projects.png | Bin 0 -> 591531 bytes index.js | 4 +- md_links.js | 4 +- process-mdlinks.js | 5 - 6 files changed, 78 insertions(+), 535 deletions(-) create mode 100644 img-README/Diagrama_Flujo.jpeg create mode 100644 img-README/Git-Hub_Projects.png delete mode 100644 process-mdlinks.js diff --git a/README.md b/README.md index d4df79b..ff75079 100644 --- a/README.md +++ b/README.md @@ -1,298 +1,111 @@ -# Markdown Links +# Markdown Links 🔗 ## Índice -* [1. Preámbulo](#1-preámbulo) -* [2. Resumen del proyecto](#2-resumen-del-proyecto) -* [3. Objetivos de aprendizaje](#3-objetivos-de-aprendizaje) +* [1. Descripción del proyecto](#1-descripción-del-proyecto) +* [2. Proceso de creación](#2-proceso-de-creación) +* [3. Instrucciones de instalación/uso](#2-instrucciones-de-instalación/uso) * [4. Consideraciones generales](#4-consideraciones-generales) -* [5. Criterios de aceptación mínimos del proyecto](#5-criterios-de-aceptación-mínimos-del-proyecto) -* [6. Entregables](#6-entregables) -* [7. Hacker edition](#7-hacker-edition) -* [8. Pistas, tips y lecturas complementarias](#8-pistas-tips-y-lecturas-complementarias) -* [9. Checklist](#9-checklist) -* [10. Achicando el problema](#10-achicando-el-problema) *** -## 1. Preámbulo +## 1. Descripción del proyecto +Markdown Links es una librería, que se desarrolló usando Node.js, para que lea y analice archivos en formato Markdown, para verificar el estado de los links que contengan y reportar algunas estadísticas. +## 2. Organización y plan de acción -[Markdown](https://es.wikipedia.org/wiki/Markdown) es un lenguaje de marcado -ligero muy popular entre developers. Es usado en muchísimas plataformas que -manejan texto plano (GitHub, foros, blogs, ...) y es muy común -encontrar varios archivos en ese formato en cualquier tipo de repositorio -(empezando por el tradicional `README.md`). +📅 Trello, para organizar el sprint, es en donde está el planning. -Estos archivos `Markdown` normalmente contienen _links_ (vínculos/ligas) que -muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de -la información que se quiere compartir. +📅 Git-Hub Projects, para crear el plan de acción para priorizar y organizar el trabajo. -Dentro de una comunidad de código abierto, nos han propuesto crear una -herramienta usando [Node.js](https://nodejs.org/), que lea y analice archivos -en formato `Markdown`, para verificar los links que contengan y reportar -algunas estadísticas. +![](img-README/Git-Hub_Projects.png) -![md-links](https://user-images.githubusercontent.com/110297/42118443-b7a5f1f0-7bc8-11e8-96ad-9cc5593715a6.jpg) +### - Diagrama de flujo +![](img-README/Diagrama_Flujo.jpeg) -## 2. Resumen del proyecto +## 2. Instrucciones de instalación/uso +### - Instalación + A través de la **terminal**: -En este proyecto crearás una herramienta de línea de comando (CLI) así como tu -propia librería (o biblioteca - library) en JavaScript. +`npm install @kamojeda/md-links` -En esta oportunidad nos alejamos un poco del navegador para construir un -programa que se ejecute usando Node.js. Aprenderemos sobre procesos -(`process.env`, `process.argv`, ...), cómo interactuar con el sistema archivos, -cómo hacer consultas de red, etc. - -[Node.js](https://nodejs.org/es/) es un entorno de ejecución para JavaScript -construido con el [motor de JavaScript V8 de Chrome](https://developers.google.com/v8/). -Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, -ya sea tu máquina o un servidor, lo cual nos abre las puertas para poder -interactuar con el sistema en sí, archivos, redes, ... - -Diseñar tu propia librería es una experiencia fundamental para cualquier -desarrollador porque que te obliga a pensar en la interfaz (API) de tus -_módulos_ y cómo será usado por otros developers. Debes tener especial -consideración en peculiaridades del lenguaje, convenciones y buenas prácticas. - -## 3. Objetivos de aprendizaje - -Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo. - -### JavaScript - -- [ ] **Diferenciar entre tipos de datos primitivos y no primitivos** - -- [ ] **Arrays (arreglos)** - -
Links

- - * [Arreglos](https://curriculum.laboratoria.la/es/topics/javascript/04-arrays) - * [Array - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/) - * [Array.prototype.sort() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) - * [Array.prototype.forEach() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) - * [Array.prototype.map() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - * [Array.prototype.filter() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) - * [Array.prototype.reduce() - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) -

- -- [ ] **Objetos (key, value)** - -
Links

- - * [Objetos en JavaScript](https://curriculum.laboratoria.la/es/topics/javascript/05-objects/01-objects) -

- -- [ ] **Uso de condicionales (if-else, switch, operador ternario, lógica booleana)** - -
Links

- - * [Estructuras condicionales y repetitivas](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/01-conditionals-and-loops) - * [Tomando decisiones en tu código — condicionales - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/conditionals) -

- -- [ ] **Funciones (params, args, return)** - -
Links

- - * [Funciones (control de flujo)](https://curriculum.laboratoria.la/es/topics/javascript/02-flow-control/03-functions) - * [Funciones clásicas](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/01-classic) - * [Arrow Functions](https://curriculum.laboratoria.la/es/topics/javascript/03-functions/02-arrow) - * [Funciones — bloques de código reutilizables - MDN](https://developer.mozilla.org/es/docs/Learn/JavaScript/Building_blocks/Functions) -

- -- [ ] **Recursión o recursividad** - -
Links

- - * [Píldora recursión - YouTube Laboratoria Developers](https://www.youtube.com/watch?v=lPPgY3HLlhQ) - * [Recursión o Recursividad - Laboratoria Developers en Medium](https://medium.com/laboratoria-developers/recursi%C3%B3n-o-recursividad-ec8f1a359727) -

- -- [ ] **Módulos de CommonJS** - -
Links

- - * [Modules: CommonJS modules - Node.js Docs](https://nodejs.org/docs/latest/api/modules.html) -

- -- [ ] **Diferenciar entre expresiones (expressions) y sentencias (statements)** - -- [ ] **Callbacks** - -
Links

- - * [Función Callback - MDN](https://developer.mozilla.org/es/docs/Glossary/Callback_function) -

- -- [ ] **Promesas** - -
Links

- - * [Promise - MDN](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Promise) - * [How to Write a JavaScript Promise - freecodecamp (en inglés)](https://www.freecodecamp.org/news/how-to-write-a-javascript-promise-4ed8d44292b8/) -

- -- [ ] **Pruebas unitarias (unit tests)** - -
Links

- - * [Empezando con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/getting-started) -

- -- [ ] **Pruebas asíncronas** - -
Links

- - * [Tests de código asincrónico con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/asynchronous) -

- -- [ ] **Uso de mocks y espías** - -
Links

- - * [Manual Mocks con Jest - Documentación oficial](https://jestjs.io/docs/es-ES/manual-mocks) -

- -- [ ] **Pruebas de compatibilidad en múltiples entornos de ejecución** - -- [ ] **Uso de linter (ESLINT)** - -- [ ] **Uso de identificadores descriptivos (Nomenclatura y Semántica)** - -### Node.js - -- [ ] **Instalar y usar módulos con npm** - -
Links

- - * [Sitio oficial de npm (en inglés)](https://www.npmjs.com/) -

- -- [ ] **Configuración de package.json** - -
Links

- - * [package.json - Documentación oficial (en inglés)](https://docs.npmjs.com/files/package.json) -

- -- [ ] **Configuración de npm-scripts** - -
Links

- - * [scripts - Documentación oficial (en inglés)](https://docs.npmjs.com/misc/scripts) -

- -- [ ] **process (env, argv, stdin-stdout-stderr, exit-code)** - -
Links

+### - Uso +Debe poder ejecutarse de la siguiente +manera a través de la **terminal**: - * [Process - Documentación oficial (en inglés)](https://nodejs.org/api/process.html) -

+`@kamojeda/md-links [options]` +Por ejemplo: -- [ ] **File system (fs, path)** +```sh +$ md-links ./some/example.md +./some/example.md http://algo.com/2/3/ Link a algo +./some/example.md https://otra-cosa.net/algun-doc.html algún doc +./some/example.md http://google.com/ Google +``` -
Links

+También puedes importar con `require` para usarlo + programáticamente **en tu código** con: - * [File system - Documentación oficial (en inglés)](https://nodejs.org/api/fs.html) - * [Path - Documentación oficial (en inglés)](https://nodejs.org/api/path.html) -

+`const mdLinks = require("@kamojeda/md-links")` -### Control de Versiones (Git y GitHub) +Ofrece la siguiente interfaz: +#### `mdLinks(path, options)` -- [ ] **Git: Instalación y configuración** +### - Argumentos -- [ ] **Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)** +* `path`: Ruta **absoluta** o **relativa** al **archivo** o **directorio**. +Si la ruta pasada es relativa, se resuelve como relativa al directorio +desde donde se invoca node - _current working directory_). +* `options`: Un objeto con **únicamente** la siguiente propiedad: + - `validate`: Booleano que determina si se desea validar los links + encontrados. -- [ ] **Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)** +### - Valor de retorno -- [ ] **GitHub: Creación de cuenta y repos, configuración de llaves SSH** +La función debe **retorna una promesa** (`Promise`) que **resuelve a un arreglo** +(`Array`) de objetos (`Object`), donde cada objeto representa un link y contiene +las siguientes propiedades -- [ ] **GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)** +Con `validate:false` : -- [ ] **GitHub: Organización en Github (projects | issues | labels | milestones | releases)** +* `href`: URL encontrada. +* `text`: Texto que aparecía dentro del link (``). +* `file`: Ruta del archivo donde se encontró el link. -### HTTP +Con `validate:true` : -- [ ] **Consulta o petición (request) y respuesta (response).** +* `href`: URL encontrada. +* `text`: Texto que aparecía dentro del link (``). +* `file`: Ruta del archivo donde se encontró el link. +* `status`: Código de respuesta HTTP. +* `ok`: Mensaje `fail` en caso de fallo u `ok` en caso de éxito. -
Links

+#### Ejemplo (resultados como comentarios) +```js +const mdLinks = require("@kamojeda/md-links"); - * [Generalidades del protocolo HTTP - MDN](https://developer.mozilla.org/es/docs/Web/HTTP/Overview) - * [Mensajes HTTP - MDN](https://developer.mozilla.org/es/docs/Web/HTTP/Messages) -

+mdLinks("./some/example.md") + .then(links => { + // => [{ href, text, file }, ...] + }) + .catch(console.error); -- [ ] **Códigos de status de HTTP** +mdLinks("./some/example.md", { validate: true }) + .then(links => { + // => [{ href, text, file, status, ok }, ...] + }) + .catch(console.error); -
Links

+mdLinks("./some/dir") + .then(links => { + // => [{ href, text, file }, ...] + }) + .catch(console.error); +``` - * [Códigos de estado de respuesta HTTP - MDN](https://developer.mozilla.org/es/docs/Web/HTTP/Status) - * [The Complete Guide to Status Codes for Meaningful ReST APIs - dev.to](https://dev.to/khaosdoctor/the-complete-guide-to-status-codes-for-meaningful-rest-apis-1-5c5) -

+Otra flag que podemos utilizar es --stats ($ md-links ./carpeta/archivo.md --stats), este comando nos mostrará en consola el total de links que tenemos en el o los archivos que se le entregan mediante la ruta; esto se muestra con totalLinks:cantidad. Por último, podemos utilizar ambos comandos ($ md-links ./carpeta/archivo.md--validate --stats) para poder ver el total de links, el total de links únicos, el total de links válidos y el de los inválidos; esto se muestra con totalLinks: cantidad, validLinks: cantidad, brokenLinks: cantidad. En el caso de que la ruta que se le entrega en la terminal sea inválida, se muestra el mensaje “INVALID PATH”. ## 4. Consideraciones generales -* Este proyecto se debe "resolver" de manera individual. - -* La **librería** y el **script ejecutable** (herramienta de línea de comando - - CLI) deben estar implementados en JavaScript para ser ejecutados con - Node.js. **Está permitido usar librerías externas**. - -* Tu módulo **debe ser instalable** via `npm install /md-links`. Este - módulo debe incluir tanto un _ejecutable_ que podamos invocar en la línea de - comando como una interfaz que podamos importar con `require` para usarlo - programáticamente. - -* Los **tests unitarios** deben cubrir un mínimo del 70% de _statements_, - _functions_, _lines_ y _branches_. Te recomendamos explorar [Jest](https://jestjs.io/) - para tus pruebas unitarias. - -* Para este proyecto **no está permitido** utilizar `async/await`. - -* Para este proyecto te sugerimos **no utilizar** la versión síncrona -de la función para leer archivos, `readFileSync`, y en cambio intentar -resolver este desafío de manera asíncrona. - -* Para este proyecto es **opcional** el uso de ES Modules `(import/export)`, en el - caso optes utilizarlo deberás de crear un script de `build` en el `package.json` - que los transforme en `requires` y `module.exports` con ayuda de **babel**. - -* Para disminuir la complejidad de tu algoritmo recursivo, te recomendamos -utilizar la versión síncrona de la función para leer directorios, `readdirSync`. - -## 5. Criterios de aceptación mínimos del proyecto - -Para comenzar este proyecto tendrás que hacer un **_fork_** y **_clonar_** este -repositorio. - -Antes de comenzar a codear, es necesario crear un **plan de acción**. Esto debería -quedar detallado en el `README.md` de tu repo y en una serie de **_issues_** -y **_milestones_** para priorizar y organizar el trabajo, y para poder hacer -seguimiento de tu progreso. - -Dentro de cada **_milestone_** se crearán y asignarán los **_issues_** que cada quien -considere necesarios. - -### Archivos del proyecto - -* `README.md` con descripción del módulo, instrucciones de instalación/uso, - documentación del API y ejemplos. Todo lo relevante para que cualquier - developer que quiera usar tu librería pueda hacerlo sin inconvenientes. -* `index.js`: Desde este archivo debes exportar **una** función (`mdLinks`). -* `package.json` con nombre, versión, descripción, autores, licencia, - dependencias, scripts (pretest, test, ...), main, bin -* `.editorconfig` con configuración para editores de texto. Este archivo no se - debe cambiar. -* `.eslintrc` con configuración para linter. Este archivo contiene una - configuración básica para ESLint, si deseas agregar reglas adicionales - como Airbnb deberás modificar este archivo. -* `.gitignore` para ignorar `node_modules` u otras carpetas que no deban - incluirse en control de versiones (`git`). -* `test/md-links.spec.js` debe contener los tests unitarios para la función - `mdLinks()`. Tu inplementación debe pasar estos tets. - -## Este proyecto consta de DOS partes - ### 1) JavaScript API El módulo debe poder **importarse** en otros scripts de Node.js y debe ofrecer la @@ -329,30 +142,6 @@ Con `validate:true` : * `status`: Código de respuesta HTTP. * `ok`: Mensaje `fail` en caso de fallo u `ok` en caso de éxito. -#### Ejemplo (resultados como comentarios) - -```js -const mdLinks = require("md-links"); - -mdLinks("./some/example.md") - .then(links => { - // => [{ href, text, file }, ...] - }) - .catch(console.error); - -mdLinks("./some/example.md", { validate: true }) - .then(links => { - // => [{ href, text, file, status, ok }, ...] - }) - .catch(console.error); - -mdLinks("./some/dir") - .then(links => { - // => [{ href, text, file }, ...] - }) - .catch(console.error); -``` - ### 2) CLI (Command Line Interface - Interfaz de Línea de Comando) El ejecutable de nuestra aplicación debe poder ejecutarse de la siguiente @@ -417,250 +206,7 @@ Unique: 3 Broken: 1 ``` -## 6. Entregables - -Módulo instalable via `npm install /md-links`. Este módulo debe -incluir tanto **un ejecutable** como **una interfaz** que podamos importar con `require` -para usarlo programáticamente. - -## 7. Hacker edition - -Las secciones llamadas _Hacker Edition_ son **opcionales**. Si **terminaste** -con todo lo anterior y te queda tiempo, intenta completarlas. Así podrás -profundizar y/o ejercitar más sobre los objetivos de aprendizaje del proyecto. - -* Puedes agregar la propiedad `line` a cada objeto `link` indicando en qué línea - del archivo se encontró el link. -* Puedes agregar más estadísticas. -* Integración continua con Travis o Circle CI. - -*** - -## 8. Pistas, tips y lecturas complementarias - -### FAQs - -#### ¿Cómo hago para que mi módulo sea _instalable_ desde GitHub? - -Para que el módulo sea instalable desde GitHub solo tiene que: - -* Estar en un repo público de GitHub -* Contener un `package.json` válido - -Con el comando `npm install githubname/reponame` podemos instalar directamente -desde GitHub. Ver [docs oficiales de `npm install` acá](https://docs.npmjs.com/cli/install). - -Por ejemplo, el [`course-parser`](https://github.com/Laboratoria/course-parser) -que usamos para la currícula no está publicado en el registro público de NPM, -así que lo instalamos directamente desde GitHub con el comando `npm install -Laboratoria/course-parser`. - -### Sugerencias de implementación - -La implementación de este proyecto tiene varias partes: leer del sistema de -archivos, recibir argumentos a través de la línea de comando, analizar texto, -hacer consultas HTTP, ... y todas estas cosas pueden enfocarse de muchas formas, -tanto usando librerías como implementando en VanillaJS. - -Por poner un ejemplo, el _parseado_ (análisis) del markdown para extraer los -links podría plantearse de las siguientes maneras (todas válidas): - -* Usando un _módulo_ como [markdown-it](https://github.com/markdown-it/markdown-it), - que nos devuelve un arreglo de _tokens_ que podemos recorrer para identificar - los links. -* Siguiendo otro camino completamente, podríamos usar - [expresiones regulares (`RegExp`)](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Regular_Expressions). -* También podríamos usar una combinación de varios _módulos_ (podría ser válido - transformar el markdown a HTML usando algo como [marked](https://github.com/markedjs/marked) - y de ahí extraer los link con una librería de DOM como [JSDOM](https://github.com/jsdom/jsdom) - o [Cheerio](https://github.com/cheeriojs/cheerio) entre otras). -* Usando un _custom renderer_ de [marked](https://github.com/markedjs/marked) - (`new marked.Renderer()`). - -No dudes en consultar a tus compañeras y coaches -si tienes dudas existenciales con respecto a estas decisiones. No existe una -"única" manera correcta :wink: - -### Tutoriales / NodeSchool workshoppers - -* [learnyounode](https://github.com/workshopper/learnyounode) -* [how-to-npm](https://github.com/workshopper/how-to-npm) -* [promise-it-wont-hurt](https://github.com/stevekane/promise-it-wont-hurt) - -### Otros recursos - -* [Acerca de Node.js - Documentación oficial](https://nodejs.org/es/about/) -* [Node.js file system - Documentación oficial](https://nodejs.org/api/fs.html) -* [Node.js http.get - Documentación oficial](https://nodejs.org/api/http.html#http_http_get_options_callback) -* [Node.js - Wikipedia](https://es.wikipedia.org/wiki/Node.js) -* [What exactly is Node.js? - freeCodeCamp](https://medium.freecodecamp.org/what-exactly-is-node-js-ae36e97449f5) -* [¿Qué es Node.js y para qué sirve? - drauta.com](https://www.drauta.com/que-es-nodejs-y-para-que-sirve) -* [¿Qué es Nodejs? Javascript en el Servidor - Fazt en YouTube](https://www.youtube.com/watch?v=WgSc1nv_4Gw) -* [¿Simplemente qué es Node.js? - IBM Developer Works, 2011](https://www.ibm.com/developerworks/ssa/opensource/library/os-nodejs/index.html) -* [Node.js y npm](https://www.genbeta.com/desarrollo/node-js-y-npm) -* [Módulos, librerías, paquetes, frameworks... ¿cuál es la diferencia?](http://community.laboratoria.la/t/modulos-librerias-paquetes-frameworks-cual-es-la-diferencia/175) -* [Asíncronía en js](https://carlosazaustre.es/manejando-la-asincronia-en-javascript) -* [NPM](https://docs.npmjs.com/getting-started/what-is-npm) -* [Publicar packpage](https://docs.npmjs.com/getting-started/publishing-npm-packages) -* [Crear módulos en Node.js](https://docs.npmjs.com/getting-started/publishing-npm-packages) -* [Leer un archivo](https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback) -* [Leer un directorio](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback) -* [Path](https://nodejs.org/api/path.html) -* [Linea de comando CLI](https://medium.com/netscape/a-guide-to-create-a-nodejs-command-line-package-c2166ad0452e) - -## 9. Checklist - -### General - -* [ ] Puede instalarse via `npm install --global /md-links` - -### `README.md` - -* [ ] Un board con el backlog para la implementación de la librería. -* [ ] Documentación técnica de la librería. -* [ ] Guía de uso e instalación de la librería - -### API `mdLinks(path, opts)` - -* [ ] El módulo exporta una función con la interfaz (API) esperada. -* [ ] Implementa soporte para archivo individual -* [ ] Implementa soporte para directorios -* [ ] Implementa `options.validate` - -### CLI - -* [ ] Expone ejecutable `md-links` en el path (configurado en `package.json`) -* [ ] Se ejecuta sin errores / output esperado -* [ ] Implementa `--validate` -* [ ] Implementa `--stats` - -### Pruebas / tests - -* [ ] Pruebas unitarias cubren un mínimo del 70% de statements, functions, - lines, y branches. -* [ ] Pasa tests (y linters) (`npm test`). - -## 10. Achicando el problema - -Un "superpoder" que esperamos puedas desarrollar durante el bootcamp -es el de definir "mini-proyectos" que te acerquen paso a paso a -la solución del "gran proyecto". Es el equivalente a comenzar armando -esquinas o bordes del rompecabezas/puzzle sin saber necesariamente -cómo encajarán al final. Déjate llevar y explora. - -Estas son algunas sugerencias: - -### Empieza con un diagrama de flujo - -Este proyecto es distinto de los que has venido trabajando hasta ahora -dado que no hay una interfaz web, todo se desarrollará en tu editor y -consola/terminal. - -Es por ello que, para visualizar mejor lo que tendrás que hacer -y planificar tus tareas y objetivos, es recomendable hacer un -`diagrama de flujo`. - -Si nunca has hecho un diagrama de flujo revisa este [recurso](https://www.youtube.com/watch?v=Lub5qOmY4JQ). - -Una alternativa al diagrama de flujo puede ser el `pseudocódigo`. - -### Planificación - -En este proyecto te recomendamos usar la herramienta de planificación -y organización de GitHub llamada **Github Projects**. - -Mediante **issues** y **milestones** podrás organizar y planificar -tareas y objetivos concretos. - -Tomando en consideración los **entregables** del proyecto, el -[9. Checklist](#9-checklist) y los **pasos** que definiste en tu -`diagrama de flujo`, crea tu planificación en GitHub Projects. - -### Antes de codear - -En esta ocasión estarás trabajando en **NodeJS**, asegúrate -de saber para qué sirve y sus consideraciones. - -En particular, deberás decidir desde un comienzo si usarás -`ES Modules`, es decir, **import/export**, ó, por el contrario, -`CommonJS Modules`, es decir, **require/module.exports**. - -Asegurate de tener clara esta decisión desde un inicio para -que no encuentres problemas más adelante. - -### Lee un archivo - -Como primer reto, puedes tratar de leer un solo archivo con -una ruta fija e imprimir su contenido en la consola con un `console.log`. - -La librería nativa `FS` (FileSystem) te será de utilidad. - -**Recuerda**: Te sugerimos **no utilizar** la versión síncrona -de la función para leer archivos, `readFileSync`, y en cambio -intentar resolver ese desafío de manera asíncrona. - -### Averigua la extensión de un archivo - -Ya sabiendo leer un archivo, aventúrate a conocer cual -es su extensión. - -Recuerda, las extensiones son esas letras al final del -nombre de un archivo, por ejemplo: .js, .txt, .doc, etc - -Aquí también podrá ser útil `FS`. - -### Obtén el contenido de un directorio - -Este proyecto consiste en buscar archivos, pero para eso, -primero debes poder verlos. - -Intenta imprimir en consola la lista de archivos en una carpeta. - -La librería `FS` también te será útil aquí. - -**Recuerda**: Para disminuir la complejidad de tu algoritmo -recursivo, te recomendamos utilizar la versión síncrona de -la función para leer directorios, `readdirSync`. - -### Une dos rutas - -Para poder acceder a carpetas y archivos será necesario que -indiques en qué lugar de tu computadora se encuentran, a esto -le llamamos **rutas**. - -Usa la librería nativa `path` para unir dos segmentos de ruta, -por ejemplo, si queremos unir: - -1) /home/Laboratoria/ -2) ./test - -El resultado sería: /home/Laboratoria/test - -### Recursividad - -Este proyecto se ha de resolver de forma casi natural con -**recursividad**. - -¿Por qué?. - -Porque no conocemos realmente cuantas carpetas y archivos -tendremos que recorrer antes de terminar. - -Si recibes una ruta de carpeta, no sabrás de ante mano si -dentro hay más carpetas o muchos archivos. - -Por ello, asegurate bien de entender de qué trata la -recursividad y ver algunos ejemplos. - -Entre los recursos de este proyecto hay un video que te ayudará. -### Crea una promesa -El valor de retorno de nuestra librería es una `Promesa`, -no un `Array`. -Prueba leyendo sobre las promesas y creando una por tu -cuenta utilizando **new Promise()** -Es importante que sepas qué es un **callback** pues las -promesas los utilizarán. diff --git a/img-README/Diagrama_Flujo.jpeg b/img-README/Diagrama_Flujo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..17302856b44d9df3da2591db2b01332f8abb5e95 GIT binary patch literal 129535 zcmdSB1yEc;wkw>kw=fLu5L^ZrB)B_+ zJ0V%}-fq3`U;nqY`?hLpzwg|-_x`54Z};h*)Ayb}-KYQj{Id)oQB_n?1YlqQ02ucN z;Lj??PZc>i3oRW@MU^)S{~pl?xTl9N0RTrQ4>uhpSq3AZF~i@m|3Q`@cbETx|C9TD zz86z}a|ZxW-2X}Z|0)R2%Gw=tpXliRWO2JM{GQpT_xP#pzvCBw@w?@m zf8WUW=K~uX0N|t$03ZYc08d5%fJY|(7I%O7pYXzGwY zL`e_i?)eFtlRL43OZl8lSl;S$NFL&cg1(`(M~zK){^aU?fwcFG{N?5!_`!IHh4}y* z7w0}!ixltx<8S#`_>Zt2U_ZdTmzD>Zqz@VSupY~3Gg-RE9X;Xy7(e!uOjhTeTS9hK z$2c~#fShh{4ji?j=U&};OfJYGBoDIs#JWn6+x2G_K!AB)AyQ0IfHdHDaSjt8EbIXj z18&#{rvD0j(V}2sQF5rWtu77ZW)U2+N^bhBL>w#MU{tA%NCu6Zk_I~1Kum!?sr1F58BaOUS zIy2x8prvjoVF=bd;v3&03Kgjt0hs|`{BXGa3B2_@-G)OPaavyJtn^k~^t-MnQv~6q zBI(xIuW4EI-kvvV=LZbyk;D@cMHO_iN?%z$3SNoADlYNmHtnG85z zl@VTHUqXr-`G-JkBnR11;{$7}cvM?4{Yg;5&ppdKc==H?Nn2$nzW$0qunYCQ}V+gmX&Rux@Nv?@2pZxb3m-)m!Is+ArvG zM^pQMMnBK77qiMI?OlWQ4?kRkY6?u88Tlf*r)6*tOka5psIt@5T!gp9PnDe+YkuFRBIu&iz=BDF?FS7hE? zr*^uwEPI=rHeqfVnNitiYVLe1;$Zs&(6bjYH0S8s+R?epyKG{!J0Wzg@;H85>(5$% zVi+=1yQ_`Y-s}=LeIHw7%s}uM?OO2V4}g5J0%nnf-a_r10Miu9Ruh@f{!3MmpA9WO zT(b~+Je`^2+Uf*nIQxq`C!m)|_Jyz)VYK0EZy1^jr|8u6;woYJ%Qt>mo5NT-ebFO& z0%vrezv{I%S7Pj-M78`tVb4~>q2z#1FTdt;%)tBSFjOY)xc&^Vw4{cBbism!s6p2( z!%)U6AWi~NM~t1(oAAwORB_&4iS{|tDAgTN=j|gIFtxfcewi8~$d68T+tRBAY4wH$(D6!l|UI0gqN{PE;7<--thZ#&Fy5izcuYqMs6y zTn`bSR3EwKLuq^-mC^MsNfo_SHJYbf-ikfBW&vQrY=0IOpPQ}H)7q=iHiqozn>j#3 zavl{EAkGDZbCiF4{BmpYks&4PtOLU&qyzSRQPnVNxngy4e!>&UJ^7*l4)?DbLF>Y1 zzR;A!RU;M>+EU)vc^L!(j}*@rw;I`$DEui4BRX<7$okO`=6F&*Qp9G-`^Q1AFYe4w zYRrODcYu{_v zVWG)88^LOx^V!nTrYIg9xik=Zz zxu2Nof7%V*KZx{{87xl6iTJp<1X4vX*$(X23l}I}F2MATuY>sh0NS#&(!mQ9L>vct zK9MH&>;<_7woEd$6SSvG1)X@K!c`gG_YGx$YC%ls7(* zZ8Ocsqsj;eYfH!RqSHWg5+Ws>%n3D1uy*M5mCL5xwPsF0_S1Ku9tF*02~NV`(AwbO zLPVi|rb8~Q*7t30A4A_y*h!BYTh>N8mb@8#-#RI*02#<|Q2Ds-@jXtXjscmh-k8t}iWG2kySof

wSu3gVPBX#6xRga{{x54UJeSnR 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 literal 0 HcmV?d00001 diff --git a/img-README/Git-Hub_Projects.png b/img-README/Git-Hub_Projects.png new file mode 100644 index 0000000000000000000000000000000000000000..d20e613f643d4d2528c70659f078d682fe26728c GIT binary patch literal 591531 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

O8|(Oy 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%0AS--;geXFw> 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%0D#+&Z%I>-n?iGBoLF7#Uyd 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