From e31c7ef854d10a49f0548fb1868e8e03d956efaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Fri, 18 Oct 2024 12:41:28 +0200 Subject: [PATCH] Generate PDF automatically --- README | 4 +- assets/cv-anders-englof-ytterstrom.pdf | Bin 47566 -> 0 bytes assets/cv.css | 276 ++--- index.js | 17 + package-lock.json | 1334 +++++++++++++++++++++++- package.json | 3 +- 6 files changed, 1502 insertions(+), 132 deletions(-) delete mode 100644 assets/cv-anders-englof-ytterstrom.pdf diff --git a/README b/README index 527af54..748882c 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -1. npm run build or node.index.js +1. npm run build or node index.js 2. copy ./pub to public url -Use "print to PDF" to sync PDF file manually. +Use "print to PDF" to sync PDF file manually if needed. diff --git a/assets/cv-anders-englof-ytterstrom.pdf b/assets/cv-anders-englof-ytterstrom.pdf deleted file mode 100644 index 72bb0a00cccba62e20920d8248aac0d34d176811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47566 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 dd { - margin-left: 0; + margin-left: 0; } .contact > dt { - position: absolute; - left: -9999em; + position: absolute; + left: -9999em; } .skillset { - display: grid; - gap: 0.5em 1em; - grid-template-columns: auto 1fr; + display: grid; + gap: 0.5em 1em; + grid-template-columns: auto 1fr; } .skillset > dt { - font-weight: bold; + font-weight: bold; } .skillset > dd { - margin-left: 0; + margin-left: 0; } /* Left for good measure, could have been gold if @@ -133,114 +142,125 @@ the upcoming Container queries was a thing. } */ .resume { - max-width: 70em; - margin: 0 auto; - display: grid; - grid-template-columns: 1fr; - grid-template-areas: - "name" - "about" - "skills" - "work" - "education" - "projects" - "courses" - "personal"; - gap: 0; + max-width: 70em; + margin: 0 auto; + display: grid; + grid-template-columns: 1fr; + grid-template-areas: + "name" + "about" + "skills" + "work" + "education" + "projects" + "courses" + "personal"; + gap: 0; } @media (min-width: 40em) { - .resume { - grid-template-columns: 2fr 1fr; - grid-template-areas: - "name name" - "skills about" - "work work" - "education courses" - "projects personal"; - gap: 2em; - } + .resume { + grid-template-columns: 2fr 1fr; + grid-template-areas: + "name name" + "skills about" + "work work" + "education courses" + "projects personal"; + gap: 2em; + } } .name { - grid-area: name; - display: flex; - gap: 1em; - place-items: center; - text-align: center; - flex-direction: column; + grid-area: name; + display: flex; + gap: 1em; + place-items: center; + text-align: center; + flex-direction: column; } .photo { - grid-area: photo; + grid-area: photo; } .work { - grid-area: work; + grid-area: work; } .courses { - grid-area: courses; + grid-area: courses; } .personal { - grid-area: personal; + grid-area: personal; } .about { - grid-area: about; - background: #f1f1f1; - border-radius: 0.2em; - padding: 1em; - color: #111; - display: flex; - justify-content: space-between; - flex-direction: column; - align-items: center; + grid-area: about; + background: #f1f1f1; + border-radius: 0.2em; + padding: 1em; + color: #111; + display: flex; + justify-content: space-between; + flex-direction: column; + align-items: center; } .education { - grid-area: education; + grid-area: education; } .projects { - grid-area: projects; + grid-area: projects; } .skills { - grid-area: skills; + grid-area: skills; } .event { - display: grid; - gap: 0.5em 0.5em; - margin: 2em 0; - line-height: 1; + display: grid; + gap: 0.5em 0.5em; + margin: 2em 0; + line-height: 1; } .event--aside { - margin: 1em 0; + margin: 1em 0; } .event__title { - margin: 0; + margin: 0; } .event__position { - font-variant: small-caps; + font-variant: small-caps; } .event__content { - line-height: 1.5; - padding-top: 0.5em; - grid-column: 1 / 3; + line-height: 1.5; + padding-top: 0.5em; + grid-column: 1 / 3; } .event__aside { - text-align: right; - font-style: italic; + text-align: right; + font-style: italic; } @page { - padding: 0; - margin: 0; - size: A4 portrait; + padding: 2cm 0; + margin: 0; + size: A4 portrait; } @media print { - body { - padding: 1cm; - } + body { + padding: 0; + } - [href$="pdf"] { - display: none; - visibility: hidden; - } + [href$="pdf"] { + display: none; + visibility: hidden; + } + + a { + border: none !important; + color: #000 !important; + } + + .education, + .projects, + .work { + page-break-before: always; + } } diff --git a/index.js b/index.js index 24a7a91..c880d37 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,22 @@ var layouts = require("metalsmith-layouts"); var markdown = require("metalsmith-markdown-remarkable"); var permalinks = require("@metalsmith/permalinks"); var static = require("metalsmith-static"); +var puppeteer = require("puppeteer"); + +var srcHTML = "file:" + __dirname + "/pub/index.html"; +var destPDF = "./pub/cv-anders-englof-ytterstrom.pdf"; + +async function generatePDF() { + const browser = await puppeteer.launch(); + const page = await browser.newPage(); + await page.goto(srcHTML, { + waitUntil: "networkidle2", + }); + await page.pdf({ + path: destPDF, + }); + await browser.close(); +} Metalsmith(__dirname) .source("./src") @@ -31,4 +47,5 @@ Metalsmith(__dirname) if (err) { throw err; } + generatePDF(); }); diff --git a/package-lock.json b/package-lock.json index a39da67..47f2410 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,48 @@ "metalsmith-html-minifier": "^3.0.3", "metalsmith-layouts": "^1.4.1", "metalsmith-markdown-remarkable": "^1.0.2", - "metalsmith-static": "0.0.5" + "metalsmith-static": "0.0.5", + "puppeteer": "^23.6.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@metalsmith/permalinks": { @@ -33,6 +74,94 @@ "metalsmith": "^2.5.0" } }, + "node_modules/@puppeteer/browsers": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.0.tgz", + "integrity": "sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.3.6", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.4.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.6.tgz", + "integrity": "sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "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", @@ -100,6 +229,19 @@ "node": ">=0.10.0" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/autolinker": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", @@ -110,6 +252,13 @@ "gulp-header": "^1.7.1" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -117,6 +266,88 @@ "dev": true, "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^2.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", + "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.1.tgz", + "integrity": "sha512-Vm8kAeOcfzHPTH8sq0tHBnUqYrkXdroaBVVylqFT4cF5wnMfKEIxxy2jIGu2zKVNl9P8MAP9XBWwXJ9N2+jfEw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.20.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -161,6 +392,51 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", @@ -172,6 +448,21 @@ "upper-case": "^1.1.1" } }, + "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, + "license": "MIT", + "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.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -197,6 +488,21 @@ "fsevents": "~2.3.2" } }, + "node_modules/chromium-bidi": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", + "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -210,6 +516,38 @@ "node": ">= 4.0" } }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -255,6 +593,63 @@ "dev": true, "license": "MIT" }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -273,6 +668,107 @@ } } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1354347", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1354347.tgz", + "integrity": "sha512-BlmkSqV0V84E2WnEnoPnwyix57rQxAM5SKJjf4TbYOCGLAWtz8CDH8RIaGOjPgPCXo2Mce3kxSY497OySidY3Q==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -287,6 +783,26 @@ "node": ">=4" } }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -307,6 +823,44 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -361,6 +915,76 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/get-uri/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -374,6 +998,13 @@ "node": ">= 6" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -425,6 +1056,16 @@ "uglify-js": "^3.1.4" } }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -488,6 +1129,72 @@ "dev": true, "license": "MIT" }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -507,6 +1214,34 @@ "dev": true, "license": "ISC" }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -540,6 +1275,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -570,6 +1315,13 @@ "dev": true, "license": "MIT" }, + "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, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -584,6 +1336,20 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/jsonfile": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-1.2.0.tgz", @@ -600,6 +1366,13 @@ "node": ">=0.10.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -656,6 +1429,16 @@ "dev": true, "license": "MIT" }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/metalsmith": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/metalsmith/-/metalsmith-2.6.3.tgz", @@ -803,6 +1586,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -866,6 +1656,16 @@ "dev": true, "license": "MIT" }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -896,6 +1696,40 @@ "wrappy": "1" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -906,6 +1740,38 @@ "no-case": "^2.2.0" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -916,6 +1782,20 @@ "node": ">=0.10.0" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -936,6 +1816,101 @@ "dev": true, "license": "MIT" }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.6.0.tgz", + "integrity": "sha512-l+Fgo8SVFSd51STtq2crz8t1Y3VXowsuR4zfR64qDOn6oggz7YIZauWiNR4IJjczQ6nvFs3S4cgng55/nesxTQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.0", + "chromium-bidi": "0.8.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1354347", + "puppeteer-core": "23.6.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.6.0.tgz", + "integrity": "sha512-se1bhgUpR9C529SgHGr/eyT92mYyQPAhA2S9pGtGrVG2xob9qE6Pbp7TlqiSPlnnY1lINqhn6/67EwkdzOmKqQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.0", + "chromium-bidi": "0.8.0", + "debug": "^4.3.7", + "devtools-protocol": "0.0.1354347", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -986,6 +1961,26 @@ "node": ">= 0.10.0" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -1043,6 +2038,19 @@ "node": ">=4" } }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", @@ -1053,6 +2061,47 @@ "node": ">=8.0.0" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1080,6 +2129,49 @@ "node": ">= 6" } }, + "node_modules/streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -1090,6 +2182,60 @@ "node": ">=0.10.0" } }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -1147,6 +2293,20 @@ "node": ">=8.0" } }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/uglify-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", @@ -1161,6 +2321,35 @@ "node": ">=0.8.0" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -1168,6 +2357,13 @@ "dev": true, "license": "MIT" }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true, + "license": "MIT" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -1192,6 +2388,60 @@ "dev": true, "license": "MIT" }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-fn": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", @@ -1216,6 +2466,28 @@ "dev": true, "license": "ISC" }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -1225,6 +2497,66 @@ "engines": { "node": ">=0.4" } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index 624c979..27ec01d 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "metalsmith-html-minifier": "^3.0.3", "metalsmith-layouts": "^1.4.1", "metalsmith-markdown-remarkable": "^1.0.2", - "metalsmith-static": "0.0.5" + "metalsmith-static": "0.0.5", + "puppeteer": "^23.6.0" } }