From 2cf45b3e57fd04cc6e3f6f48c80b1d8f364f51ae Mon Sep 17 00:00:00 2001 From: Auhseh <58489523+Auhseh@users.noreply.github.com> Date: Fri, 26 Apr 2024 16:27:43 +0100 Subject: [PATCH] feature/issue 23 Styleguide and Design System (#36) Co-authored-by: Owen Buckley --- package-lock.json | 597 ++++++++++++++++++----- package.json | 7 +- patches/@greenwood+cli+0.29.0.patch | 71 +++ src/assets/api-routes.svg | 7 + src/assets/build-ssg.svg | 9 + src/assets/center-grid.svg | 4 + src/assets/copy-button.svg | 4 + src/assets/discord.svg | 3 + src/assets/emphasis-corner.svg | 7 + src/assets/github.svg | 3 + src/assets/greenwood-logo.svg | 14 + src/assets/grid-background-primary.svg | 52 ++ src/assets/grid-background-secondary.svg | 48 ++ src/assets/html.svg | 6 + src/assets/lit.svg | 7 + src/assets/netlify.png | Bin 0 -> 24326 bytes src/assets/node.png | Bin 0 -> 8027 bytes src/assets/storybook.svg | 10 + src/assets/tailwind-logo.svg | 11 + src/assets/tile.svg | 11 + src/assets/twitter-logo.svg | 3 + src/assets/typescript.svg | 6 + src/assets/vercel.svg | 9 + src/assets/wcc.svg | 9 + src/assets/web-components.svg | 9 + src/components/header.js | 19 + src/stories/Documentation.mdx | 11 + src/stories/Styleguide.mdx | 149 ++++++ src/stories/Techstack.mdx | 12 + src/styles/theme.css | 32 +- 30 files changed, 1003 insertions(+), 127 deletions(-) create mode 100644 patches/@greenwood+cli+0.29.0.patch create mode 100644 src/assets/api-routes.svg create mode 100644 src/assets/build-ssg.svg create mode 100644 src/assets/center-grid.svg create mode 100644 src/assets/copy-button.svg create mode 100644 src/assets/discord.svg create mode 100644 src/assets/emphasis-corner.svg create mode 100644 src/assets/github.svg create mode 100644 src/assets/greenwood-logo.svg create mode 100644 src/assets/grid-background-primary.svg create mode 100644 src/assets/grid-background-secondary.svg create mode 100644 src/assets/html.svg create mode 100644 src/assets/lit.svg create mode 100644 src/assets/netlify.png create mode 100644 src/assets/node.png create mode 100644 src/assets/storybook.svg create mode 100644 src/assets/tailwind-logo.svg create mode 100644 src/assets/tile.svg create mode 100644 src/assets/twitter-logo.svg create mode 100644 src/assets/typescript.svg create mode 100644 src/assets/vercel.svg create mode 100644 src/assets/wcc.svg create mode 100644 src/assets/web-components.svg create mode 100644 src/components/header.js create mode 100644 src/stories/Documentation.mdx create mode 100644 src/stories/Styleguide.mdx create mode 100644 src/stories/Techstack.mdx diff --git a/package-lock.json b/package-lock.json index 0c5c0477..c2a7a14f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,10 @@ "name": "www.greenwoodjs.dev", "version": "0.0.1", "license": "MIT", + "dependencies": { + "geist": "^1.2.0", + "patch-package": "^8.0.0" + }, "devDependencies": { "@chromatic-com/storybook": "^1.3.1", "@esm-bundle/chai": "^4.3.4-fix.0", @@ -5616,6 +5620,11 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5953,6 +5962,14 @@ "tslib": "^2.4.0" } }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autolinker": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", @@ -6044,8 +6061,7 @@ "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 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bare-events": { "version": "2.2.2", @@ -6280,7 +6296,6 @@ "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" @@ -6290,7 +6305,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -6422,7 +6436,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -6757,6 +6770,20 @@ "devtools-protocol": "*" } }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, "node_modules/citty": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", @@ -7024,7 +7051,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7035,8 +7061,7 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/comma-separated-tokens": { "version": "1.0.8", @@ -7171,8 +7196,7 @@ "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 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -7294,7 +7318,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7429,7 +7452,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -7809,7 +7831,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -7821,7 +7842,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -8362,7 +8382,6 @@ "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, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8521,6 +8540,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flow-parser": { "version": "0.233.0", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.233.0.tgz", @@ -8682,8 +8709,7 @@ "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 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -8703,7 +8729,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8717,6 +8742,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/geist": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/geist/-/geist-1.3.0.tgz", + "integrity": "sha512-IoGBfcqVEYB4bEwsfHd35jF4+X9LHRPYZymHL4YOltHSs9LJa24DYs1Z7rEMQ/lsEvaAIc61Y9aUxgcJaQ8lrg==", + "peerDependencies": { + "next": ">=13.2.0 <15.0.0-0" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -8748,7 +8781,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -8828,7 +8860,6 @@ "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", @@ -8895,7 +8926,6 @@ "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" }, @@ -8906,8 +8936,7 @@ "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 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/gray-matter": { "version": "2.1.1", @@ -9006,7 +9035,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -9018,7 +9046,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -9030,7 +9057,6 @@ "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" }, @@ -9057,7 +9083,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -9545,7 +9570,6 @@ "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" @@ -9554,8 +9578,7 @@ "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 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inline-style-parser": { "version": "0.1.1", @@ -9805,7 +9828,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, "bin": { "is-docker": "cli.js" }, @@ -10171,7 +10193,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, "dependencies": { "is-docker": "^2.0.0" }, @@ -10200,8 +10221,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -10533,6 +10553,28 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -10549,7 +10591,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -10557,6 +10598,14 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", @@ -10581,6 +10630,14 @@ "node": ">=0.10.0" } }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -11293,7 +11350,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -11357,7 +11413,6 @@ "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" }, @@ -11369,7 +11424,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11776,7 +11830,6 @@ "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" } @@ -11842,7 +11895,6 @@ "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" } @@ -11996,6 +12048,14 @@ "node": ">=8" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -12139,6 +12199,156 @@ "node": ">= 0.8" } }, + "node_modules/patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=14", + "npm": ">5" + } + }, + "node_modules/patch-package/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/patch-package/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/patch-package/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/patch-package/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -12152,7 +12362,6 @@ "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" } @@ -12161,7 +12370,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -12245,7 +12453,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -13696,7 +13903,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -13767,7 +13973,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -13779,7 +13984,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -14496,6 +14700,17 @@ "node": ">=14.0.0" } }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -14521,7 +14736,6 @@ "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, "dependencies": { "is-number": "^7.0.0" }, @@ -14533,7 +14747,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -14924,7 +15137,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -15343,7 +15555,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -15516,8 +15727,7 @@ "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 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "2.4.3", @@ -15584,8 +15794,18 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/yargs": { "version": "17.7.2", @@ -19718,6 +19938,11 @@ } } }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -19972,6 +20197,11 @@ "tslib": "^2.4.0" } }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, "autolinker": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", @@ -20041,8 +20271,7 @@ "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 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bare-events": { "version": "2.2.2", @@ -20232,7 +20461,6 @@ "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" @@ -20242,7 +20470,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -20322,7 +20549,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, "requires": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -20538,6 +20764,11 @@ "zod": "3.22.4" } }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==" + }, "citty": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", @@ -20736,7 +20967,6 @@ "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, "requires": { "color-name": "~1.1.4" } @@ -20744,8 +20974,7 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "comma-separated-tokens": { "version": "1.0.8", @@ -20859,8 +21088,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "concat-stream": { "version": "1.6.2", @@ -20957,7 +21185,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -21057,7 +21284,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "requires": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -21346,7 +21572,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, "requires": { "get-intrinsic": "^1.2.4" } @@ -21354,8 +21579,7 @@ "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, "es-get-iterator": { "version": "1.1.3", @@ -21800,7 +22024,6 @@ "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, "requires": { "to-regex-range": "^5.0.1" } @@ -21921,6 +22144,14 @@ "path-exists": "^4.0.0" } }, + "find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "requires": { + "micromatch": "^4.0.2" + } + }, "flow-parser": { "version": "0.233.0", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.233.0.tgz", @@ -22037,8 +22268,7 @@ "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 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.3", @@ -22050,8 +22280,7 @@ "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "functions-have-names": { "version": "1.2.3", @@ -22059,6 +22288,11 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, + "geist": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/geist/-/geist-1.3.0.tgz", + "integrity": "sha512-IoGBfcqVEYB4bEwsfHd35jF4+X9LHRPYZymHL4YOltHSs9LJa24DYs1Z7rEMQ/lsEvaAIc61Y9aUxgcJaQ8lrg==" + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -22081,7 +22315,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, "requires": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -22140,7 +22373,6 @@ "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", @@ -22189,7 +22421,6 @@ "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" } @@ -22197,8 +22428,7 @@ "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 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "gray-matter": { "version": "2.1.1", @@ -22273,7 +22503,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "requires": { "es-define-property": "^1.0.0" } @@ -22281,14 +22510,12 @@ "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, "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 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.2", @@ -22303,7 +22530,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "requires": { "function-bind": "^1.1.2" } @@ -22665,7 +22891,6 @@ "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" @@ -22674,8 +22899,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "inline-style-parser": { "version": "0.1.1", @@ -22854,8 +23078,7 @@ "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extendable": { "version": "0.1.1", @@ -23083,7 +23306,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, "requires": { "is-docker": "^2.0.0" } @@ -23103,8 +23325,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", @@ -23339,6 +23560,24 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "requires": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -23349,12 +23588,16 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" } }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" + }, "keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", @@ -23373,6 +23616,14 @@ "is-buffer": "^1.1.5" } }, + "klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "requires": { + "graceful-fs": "^4.1.11" + } + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -23955,7 +24206,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -23998,7 +24248,6 @@ "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" } @@ -24006,8 +24255,7 @@ "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { "version": "7.0.4", @@ -24290,8 +24538,7 @@ "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 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { "version": "4.1.5", @@ -24339,7 +24586,6 @@ "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" } @@ -24450,6 +24696,11 @@ } } }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -24553,6 +24804,109 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, + "patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "requires": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -24562,14 +24916,12 @@ "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 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -24637,8 +24989,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "4.0.1", @@ -25723,7 +26074,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "requires": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -25781,7 +26131,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -25789,8 +26138,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "side-channel": { "version": "1.0.4", @@ -26344,6 +26692,14 @@ "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "dev": true }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -26363,7 +26719,6 @@ "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, "requires": { "is-number": "^7.0.0" }, @@ -26371,8 +26726,7 @@ "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 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" } } }, @@ -26649,8 +27003,7 @@ "universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" }, "unpipe": { "version": "1.0.0", @@ -26927,7 +27280,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -27050,8 +27402,7 @@ "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 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "2.4.3", @@ -27099,8 +27450,12 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==" }, "yargs": { "version": "17.7.2", diff --git a/package.json b/package.json index 0b5a6858..3dcfdcb7 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,11 @@ "story:build": "storybook build", "story:serve": "npm run clean && npm run story:build && http-server ./storybook-static", "test": "wtr", - "test:tdd": "npm run test -- --watch" + "test:tdd": "npm run test -- --watch", + "postinstall": "patch-package" + }, + "dependencies": { + "geist": "^1.2.0" }, "devDependencies": { "@chromatic-com/storybook": "^1.3.1", @@ -39,6 +43,7 @@ "@web/test-runner-junit-reporter": "^0.7.1", "http-server": "^14.1.1", "lit": "^3.1.2", + "patch-package": "^8.0.0", "rimraf": "^5.0.5", "storybook": "^8.0.6", "vite": "^5.2.8" diff --git a/patches/@greenwood+cli+0.29.0.patch b/patches/@greenwood+cli+0.29.0.patch new file mode 100644 index 00000000..dd013ff1 --- /dev/null +++ b/patches/@greenwood+cli+0.29.0.patch @@ -0,0 +1,71 @@ +diff --git a/node_modules/@greenwood/cli/src/plugins/resource/plugin-standard-css.js b/node_modules/@greenwood/cli/src/plugins/resource/plugin-standard-css.js +index d52c723..2aedcc3 100644 +--- a/node_modules/@greenwood/cli/src/plugins/resource/plugin-standard-css.js ++++ b/node_modules/@greenwood/cli/src/plugins/resource/plugin-standard-css.js +@@ -5,10 +5,14 @@ + * + */ + import fs from 'fs'; ++import path from 'path'; + import { parse, walk } from 'css-tree'; + import { ResourceInterface } from '../../lib/resource-interface.js'; ++import { normalizePathnameForWindows } from '../../lib/resource-utils.js'; ++import { hashString } from '../../lib/hashing-utils.js'; + +-function bundleCss(body, url, projectDirectory) { ++function bundleCss(body, url, compilation) { ++ const { projectDirectory, outputDir, userWorkspace } = compilation.context; + const ast = parse(body, { + onParseError(error) { + console.log(error.formattedMessage); +@@ -29,10 +33,40 @@ function bundleCss(body, url, projectDirectory) { + : new URL(value, url); + const importContents = fs.readFileSync(resolvedUrl, 'utf-8'); + +- optimizedCss += bundleCss(importContents, url, projectDirectory); ++ optimizedCss += bundleCss(importContents, url, compilation); + } else { + optimizedCss += `@import url('${value}');`; + } ++ } else if (type === 'Url' && this.atrule?.name !== 'import') { ++ if (value.startsWith('http') || value.startsWith('//')) { ++ optimizedCss += `url('${value}')`; ++ return; ++ } ++ ++ const basePath = compilation.config.basePath === '' ? '/' : `${compilation.config.basePath}/`; ++ let barePath = value.replace(/\.\.\//g, '').replace('./', ''); ++ ++ if (barePath.startsWith('/')) { ++ barePath = barePath.replace('/', ''); ++ } ++ ++ const locationUrl = barePath.startsWith('node_modules') ++ ? new URL(`./${barePath}`, projectDirectory) ++ : new URL(`./${barePath}`, userWorkspace); ++ const hash = hashString(fs.readFileSync(locationUrl, 'utf-8')); ++ const ext = barePath.split('.').pop(); ++ const hashedRoot = barePath.replace(`.${ext}`, `.${hash}.${ext}`); ++ ++ fs.mkdirSync(normalizePathnameForWindows(new URL(`./${path.dirname(barePath)}/`, outputDir)), { ++ recursive: true ++ }); ++ ++ fs.promises.copyFile( ++ locationUrl, ++ new URL(`./${hashedRoot}`, outputDir) ++ ); ++ ++ optimizedCss += `url('${basePath}${hashedRoot}')`; + } else if (type === 'Atrule' && name !== 'import') { + optimizedCss += `@${name} `; + } else if (type === 'TypeSelector') { +@@ -238,7 +272,7 @@ class StandardCssResource extends ResourceInterface { + + async optimize(url, response) { + const body = await response.text(); +- const optimizedBody = bundleCss(body, url, this.compilation.context.projectDirectory); ++ const optimizedBody = bundleCss(body, url, this.compilation); + + return new Response(optimizedBody); + } diff --git a/src/assets/api-routes.svg b/src/assets/api-routes.svg new file mode 100644 index 00000000..d7398fe1 --- /dev/null +++ b/src/assets/api-routes.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/build-ssg.svg b/src/assets/build-ssg.svg new file mode 100644 index 00000000..7f962cb4 --- /dev/null +++ b/src/assets/build-ssg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/center-grid.svg b/src/assets/center-grid.svg new file mode 100644 index 00000000..56ba4d79 --- /dev/null +++ b/src/assets/center-grid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/copy-button.svg b/src/assets/copy-button.svg new file mode 100644 index 00000000..d994eff4 --- /dev/null +++ b/src/assets/copy-button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/discord.svg b/src/assets/discord.svg new file mode 100644 index 00000000..5c0130f1 --- /dev/null +++ b/src/assets/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/emphasis-corner.svg b/src/assets/emphasis-corner.svg new file mode 100644 index 00000000..5a341ba9 --- /dev/null +++ b/src/assets/emphasis-corner.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/github.svg b/src/assets/github.svg new file mode 100644 index 00000000..3d85195b --- /dev/null +++ b/src/assets/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/greenwood-logo.svg b/src/assets/greenwood-logo.svg new file mode 100644 index 00000000..9da4d080 --- /dev/null +++ b/src/assets/greenwood-logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/assets/grid-background-primary.svg b/src/assets/grid-background-primary.svg new file mode 100644 index 00000000..5ddc69cd --- /dev/null +++ b/src/assets/grid-background-primary.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/grid-background-secondary.svg b/src/assets/grid-background-secondary.svg new file mode 100644 index 00000000..85ff3169 --- /dev/null +++ b/src/assets/grid-background-secondary.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/html.svg b/src/assets/html.svg new file mode 100644 index 00000000..05847c21 --- /dev/null +++ b/src/assets/html.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/lit.svg b/src/assets/lit.svg new file mode 100644 index 00000000..d2fefbe6 --- /dev/null +++ b/src/assets/lit.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/netlify.png b/src/assets/netlify.png new file mode 100644 index 0000000000000000000000000000000000000000..33fa00820deca7d2773348c27bbc6465876962ef GIT binary patch literal 24326 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 + + + + + + + + + diff --git a/src/assets/tailwind-logo.svg b/src/assets/tailwind-logo.svg new file mode 100644 index 00000000..0e18bc70 --- /dev/null +++ b/src/assets/tailwind-logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/tile.svg b/src/assets/tile.svg new file mode 100644 index 00000000..2e25a8e2 --- /dev/null +++ b/src/assets/tile.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/twitter-logo.svg b/src/assets/twitter-logo.svg new file mode 100644 index 00000000..ca8de740 --- /dev/null +++ b/src/assets/twitter-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/typescript.svg b/src/assets/typescript.svg new file mode 100644 index 00000000..560c8bad --- /dev/null +++ b/src/assets/typescript.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/vercel.svg b/src/assets/vercel.svg new file mode 100644 index 00000000..e557b9c1 --- /dev/null +++ b/src/assets/vercel.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/wcc.svg b/src/assets/wcc.svg new file mode 100644 index 00000000..a975d5f5 --- /dev/null +++ b/src/assets/wcc.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/web-components.svg b/src/assets/web-components.svg new file mode 100644 index 00000000..7d49d645 --- /dev/null +++ b/src/assets/web-components.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/header.js b/src/components/header.js new file mode 100644 index 00000000..3db9a269 --- /dev/null +++ b/src/components/header.js @@ -0,0 +1,19 @@ +export default class Header extends HTMLElement { + connectedCallback() { + this.innerHTML = ` +
+ + + + + +
+ `; + } +} \ No newline at end of file diff --git a/src/stories/Documentation.mdx b/src/stories/Documentation.mdx new file mode 100644 index 00000000..d373ac7c --- /dev/null +++ b/src/stories/Documentation.mdx @@ -0,0 +1,11 @@ +import { Meta } from '@storybook/addon-docs'; + + + +## Links + +Below are some useful links for various resources and sites related to developing the GreenwoodJS website. + +- PROJECT BOARD - https://github.com/ProjectEvergreen/www.greenwoodjs.dev/projects?query=is%3Aopen +- DESIGNS - https://www.figma.com/files/project/222101261 +- DISCORD - https://discord.gg/MMeXeGJd diff --git a/src/stories/Styleguide.mdx b/src/stories/Styleguide.mdx new file mode 100644 index 00000000..d1c2432a --- /dev/null +++ b/src/stories/Styleguide.mdx @@ -0,0 +1,149 @@ +import { Meta } from '@storybook/addon-docs'; + + + + + +--- + +# Welcome to the GreenwoodJS style guide + +### The GreenwoodJS website styleguide breaks down into the following sections: + +1. Colors +2. Typography +3. Spacing +4. Components + +## Colors + +The following theme colors available are: + +### `--color-primary` + + + +### `--color-secondary` + + + +### `--color-tertiary` + + + +### `--color-accent` + + + +### `--color-white` + + + +### `--color-black` + + + +### `--color-gray` + + + +### `--color-gray-background` + + + + +## Typography + +The whole website uses [Vercel's **Geist** font](https://vercel.com/font) in Sans and Mono: + +### `--font-primary` + +This is the primary font for the website. + +The quick brown fox jumped over the lazy dog. + +### `--font-secondary` + +This is the font intended to be used for code samples. + +The quick brown fox jumped over the lazy dog. + +## Spacing + +The whole website is built on an 8pt Grid, and spacing is always in multiples of 8px + +### `--spacing-unit` + +Adding a 40px spacing will look like this; +```css +.hero { + margin: calc(5 * var(--spacing-unit)); +} +``` + +## Components + +👈 All available components can be found on the left sidebar of the Storybook site. \ No newline at end of file diff --git a/src/stories/Techstack.mdx b/src/stories/Techstack.mdx new file mode 100644 index 00000000..5eee7a2e --- /dev/null +++ b/src/stories/Techstack.mdx @@ -0,0 +1,12 @@ +import { Meta } from '@storybook/addon-docs'; + + + +## Overview + +This project is built using the following technologies: + +- Framework - [Greenwood](https://www.greenwoodjs.io/) + [WCC](https://github.com/ProjectEvergreen/wcc) (Web Components) +- Testing - [Web Test Runner](https://modern-web.dev/docs/test-runner/overview/) +- Styling - TBD +- Linting / Formatting - TBD \ No newline at end of file diff --git a/src/styles/theme.css b/src/styles/theme.css index 5243e152..1cc66b53 100644 --- a/src/styles/theme.css +++ b/src/styles/theme.css @@ -1,8 +1,30 @@ -body { - color: green; +@font-face { + font-family: "Geist-Sans"; + src: url('../../node_modules/geist/dist/fonts/geist-sans/Geist-Regular.woff2') format("truetype"); } -h1, h2, h3, h4, h5, h6 { - text-align: center; - color: black; +@font-face { + font-family: "Geist-Mono"; + src: url('../../node_modules/geist/dist/fonts/geist-mono/GeistMono-Regular.woff2') format("truetype"); +} + +:root { + --color-primary: #016341; + --color-secondary: #0E0F0C; + --color-tertiary: #151818; + --color-accent: #C3DDBA; + --color-white: #FFFFFF; + --color-black: #020202; + --color-gray: #F5F5F5; + --color-gray-background: #EDEFEC; + --font-primary: 'Geist-Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;; + --font-secondary: 'Geist-Mono', monospace; + --font-size-base: 16px; + --spacing-unit: 8px; +} + +* { + font-family: var(--font-primary); + font-size: var(--font-size-base); + box-sizing: border-box; } \ No newline at end of file