From 019856f71bfef112b7ad69991c6ceebc6756b69b Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Sun, 15 Sep 2024 23:38:57 +0200 Subject: [PATCH 01/12] xygames basics --- .size-limit.json | 6 + constants/api.js | 4 + package-lock.json | 1479 ------------------------------- pages/game/xy.js | 143 +++ routes.js | 5 + styles/pages/xygame.module.scss | 111 +++ 6 files changed, 269 insertions(+), 1479 deletions(-) create mode 100644 pages/game/xy.js create mode 100644 styles/pages/xygame.module.scss diff --git a/.size-limit.json b/.size-limit.json index 082bd0f8..0359af9f 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -41,6 +41,12 @@ "running": false, "limit": "26 kB" }, + { + "name": "> game/xy [server]", + "path": ".next/server/pages/game/xy.html", + "running": false, + "limit": "15 kB" + }, { "name": "> diary [server]", "path": ".next/server/pages/diary.js", diff --git a/constants/api.js b/constants/api.js index 78e90b15..c3b0b54a 100644 --- a/constants/api.js +++ b/constants/api.js @@ -39,5 +39,9 @@ export default { get: slug => `${API_URL}/games/tinder/${slug}`, postStats: `${API_URL}/games/tinder/stats`, }, + xy: { + get: slug => `${API_URL}/games/xy/${slug}`, + getOutcome: (slug, input) => `${API_URL}/games/xy/getOutcome/${slug}?input=${input}`, + }, }, }; diff --git a/package-lock.json b/package-lock.json index e053cd09..274b62c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,8 +37,6 @@ "swiper": "^5.3.8" }, "devDependencies": { - "@commitlint/cli": "^8.1.0", - "@commitlint/config-conventional": "^7.5.0", "@semantic-release/changelog": "^3.0.2", "@semantic-release/exec": "^3.3.2", "@semantic-release/git": "^7.0.8", @@ -319,214 +317,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@commitlint/cli": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.6.tgz", - "integrity": "sha512-fg8p9/ZrzhUPIXBGrpzwKu50WT13jYS5OffYlkStPuemuv0GjXu37B8J/zNgu6UhrdBVHbmBR0LriKAzRLG/4g==", - "dev": true, - "dependencies": { - "@commitlint/format": "^8.3.6", - "@commitlint/lint": "^8.3.6", - "@commitlint/load": "^8.3.6", - "@commitlint/read": "^8.3.6", - "babel-polyfill": "6.26.0", - "chalk": "2.4.2", - "get-stdin": "7.0.0", - "lodash": "4.17.21", - "meow": "5.0.0", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0" - }, - "bin": { - "commitlint": "lib/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-7.6.0.tgz", - "integrity": "sha1-89xmvznjtif91vWsPQUQ3Q3Tj5Q=", - "dev": true - }, - "node_modules/@commitlint/ensure": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.6.tgz", - "integrity": "sha512-UUipnA7sX3OSUW39pi4Etf7pKrG76uM33ybs5YTEOZbT6zb3aKUS+A1ygo52eX+tqpxCiV+6qSy5qEKG8c1aeA==", - "dev": true, - "dependencies": { - "lodash": "4.17.21" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/execute-rule": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.6.tgz", - "integrity": "sha512-kCcf+33LgFBZcVKzTRX7QZBiznFjzjgpyEXFjGsWgCeOXi1q3KPdwH9HvH22xpFZ4+n4lAuv/kQf5XUQMO2OGQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/format": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.3.6.tgz", - "integrity": "sha512-VN9Yq3cJoonLjeoYiTOidsxGM6lwyzcw6ekQCCIzjNbJa+7teTPE2wDSXqhbsF/0XDJUeHcygzgZwv4/lzStTA==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.6.tgz", - "integrity": "sha512-wxQImxePfAfIz9C2nWzebs0KUU9MiO8bWsRKNsAk9jknc+bjsre9Lje0sr6jvE840XZSTX/aaXY2g+Mt+9oq+w==", - "dev": true, - "dependencies": { - "semver": "6.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@commitlint/lint": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.6.tgz", - "integrity": "sha512-M/tysLho4KdsXJp7J7q/c1WEb3Dh75cm86eb0buci8C/DOIegLq/B3DE/8dhxOzGElUW/iq55MyWttJ/MRwKsg==", - "dev": true, - "dependencies": { - "@commitlint/is-ignored": "^8.3.6", - "@commitlint/parse": "^8.3.6", - "@commitlint/rules": "^8.3.6", - "babel-runtime": "^6.23.0", - "lodash": "4.17.21" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/load": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.6.tgz", - "integrity": "sha512-bqqGg89KnfauJ01GrVBgKyWBXYy2UXmLvRGuepyI1HsNVaEIGBz6R+sTvk3K55Str6soF7HRpl6bDCmnEOVJtA==", - "dev": true, - "dependencies": { - "@commitlint/execute-rule": "^8.3.6", - "@commitlint/resolve-extends": "^8.3.6", - "babel-runtime": "^6.23.0", - "chalk": "2.4.2", - "cosmiconfig": "^5.2.0", - "lodash": "4.17.21", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/message": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.3.6.tgz", - "integrity": "sha512-x30GmsyZTk+QV4o5TRrDkZQm7uRumlKu+7yWeRdSAXyUgi9amsdMFJ8VbAoRsBndOAtEUkaXgK8dvvmgvW3kwg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/parse": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.6.tgz", - "integrity": "sha512-wL6Z5hZpT8i/3LMwP/CxTMPMU3v4blAbSA8QGPCruFHFtAV8hIiXvD1CNOhyeeuG29GAapopLgNJjtigzlN3kg==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^1.3.3", - "conventional-commits-parser": "^3.0.0", - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/read": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.3.6.tgz", - "integrity": "sha512-ixlvPQO8AGFjE5U4DBwJIZtzIqmGeZKhpNjjuAyTwWfMURpXjv+/pVvq/AY3LvxHJM64DuQp2WqrbwJU6mXvUQ==", - "dev": true, - "dependencies": { - "@commitlint/top-level": "^8.3.6", - "@marionebl/sander": "^0.6.0", - "babel-runtime": "^6.23.0", - "git-raw-commits": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/resolve-extends": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.6.tgz", - "integrity": "sha512-L0/UOBxc3wiA3gzyE8pN9Yunb6FS/2ZDCjieNH0XAgdF2ac5SHh056QE6aQwP7CSCYNEo2+SXxVZr/WOshsQHg==", - "dev": true, - "dependencies": { - "import-fresh": "^3.0.0", - "lodash": "4.17.21", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/rules": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.6.tgz", - "integrity": "sha512-NmEAWAW0f5Nda7ZJ11vd73PqOt57GvLc1SOfoUKolCC3lSJACj9SCTbfkQh8cEMlLmDpNqaGaVHH1jMYXMqU3g==", - "dev": true, - "dependencies": { - "@commitlint/ensure": "^8.3.6", - "@commitlint/message": "^8.3.6", - "@commitlint/to-lines": "^8.3.6", - "babel-runtime": "^6.23.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/to-lines": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.6.tgz", - "integrity": "sha512-4g26G37oh5dABVaRGALdlinjQ/wl8b4HTczLwXLKLM0iHHYFu2A1ZwiVJ8avQk/zThw86/HD6zOgGMNPoamjIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@commitlint/top-level": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.6.tgz", - "integrity": "sha512-2XG5NhGgEZaFJChCkSTa6wXWYbJqb9DubC6aRuD/cOeHdYh2OYrXT8z0IorN+gR5+MWqdUtIHhRYtz2Xb75gNg==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@fortawesome/fontawesome-free": { "version": "5.15.1", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz", @@ -557,17 +347,6 @@ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, - "node_modules/@marionebl/sander": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz", - "integrity": "sha512-7f3zZddAk92G1opoX/glbDO6YbrzmMAJAw0RJAcvunnV7sR4L9llyBUAABptKoF1Jf37UQ1QTJy5p2H4J4rBNA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.3", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.2" - } - }, "node_modules/@next/bundle-analyzer": { "version": "10.2.3", "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-10.2.3.tgz", @@ -1580,15 +1359,6 @@ "node": ">=4" } }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -1846,33 +1616,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" }, - "node_modules/babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", - "dev": true - }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -2284,29 +2027,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "dependencies": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001449", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", @@ -2810,16 +2530,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "node_modules/compare-func": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", - "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -2881,16 +2591,6 @@ "node": ">= 0.6" } }, - "node_modules/conventional-changelog-angular": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", - "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", - "dev": true, - "dependencies": { - "compare-func": "^1.3.1", - "q": "^1.5.1" - } - }, "node_modules/conventional-changelog-writer": { "version": "4.0.18", "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz", @@ -3437,12 +3137,6 @@ "node": ">=0.10.0" } }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", - "dev": true - }, "node_modules/core-js-pure": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.1.tgz", @@ -3622,33 +3316,12 @@ "node": ">=4" } }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", @@ -3940,18 +3613,6 @@ "node": ">=10" } }, - "node_modules/dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==", - "dev": true, - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -5813,15 +5474,6 @@ "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", "dev": true }, - "node_modules/get-stdin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", - "integrity": "sha1-jV3pjxUXGhJcXlFmQ8em0OqKlvY=", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -5900,237 +5552,6 @@ "xtend": "~4.0.1" } }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-raw-commits/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/git-raw-commits/node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/git-raw-commits/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/git-raw-commits/node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/git-raw-commits/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/github-deploy-status": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/github-deploy-status/-/github-deploy-status-1.4.1.tgz", @@ -6177,18 +5598,6 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -8743,19 +8152,6 @@ "loose-envify": "cli.js" } }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -8804,15 +8200,6 @@ "node": ">=0.10.0" } }, - "node_modules/map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -8929,123 +8316,6 @@ "node": ">= 0.6" } }, - "node_modules/meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -9187,28 +8457,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, - "node_modules/minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minimist-options/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -16907,15 +16155,6 @@ "node": ">=0.4.x" } }, - "node_modules/quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17232,28 +16471,6 @@ "node": ">=8.10.0" } }, - "node_modules/redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -17263,12 +16480,6 @@ "esprima": "~4.0.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -17430,18 +16641,6 @@ "node": ">=8" } }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -18802,15 +18001,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -19827,15 +19017,6 @@ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, - "node_modules/trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/trim-off-newlines": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", @@ -20730,15 +19911,6 @@ "node": ">=8" } }, - "node_modules/yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "dependencies": { - "camelcase": "^4.1.0" - } - }, "node_modules/yargs/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -21041,168 +20213,6 @@ "to-fast-properties": "^2.0.0" } }, - "@commitlint/cli": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.6.tgz", - "integrity": "sha512-fg8p9/ZrzhUPIXBGrpzwKu50WT13jYS5OffYlkStPuemuv0GjXu37B8J/zNgu6UhrdBVHbmBR0LriKAzRLG/4g==", - "dev": true, - "requires": { - "@commitlint/format": "^8.3.6", - "@commitlint/lint": "^8.3.6", - "@commitlint/load": "^8.3.6", - "@commitlint/read": "^8.3.6", - "babel-polyfill": "6.26.0", - "chalk": "2.4.2", - "get-stdin": "7.0.0", - "lodash": "4.17.21", - "meow": "5.0.0", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0" - } - }, - "@commitlint/config-conventional": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-7.6.0.tgz", - "integrity": "sha1-89xmvznjtif91vWsPQUQ3Q3Tj5Q=", - "dev": true - }, - "@commitlint/ensure": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.6.tgz", - "integrity": "sha512-UUipnA7sX3OSUW39pi4Etf7pKrG76uM33ybs5YTEOZbT6zb3aKUS+A1ygo52eX+tqpxCiV+6qSy5qEKG8c1aeA==", - "dev": true, - "requires": { - "lodash": "4.17.21" - } - }, - "@commitlint/execute-rule": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.6.tgz", - "integrity": "sha512-kCcf+33LgFBZcVKzTRX7QZBiznFjzjgpyEXFjGsWgCeOXi1q3KPdwH9HvH22xpFZ4+n4lAuv/kQf5XUQMO2OGQ==", - "dev": true - }, - "@commitlint/format": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.3.6.tgz", - "integrity": "sha512-VN9Yq3cJoonLjeoYiTOidsxGM6lwyzcw6ekQCCIzjNbJa+7teTPE2wDSXqhbsF/0XDJUeHcygzgZwv4/lzStTA==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "@commitlint/is-ignored": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.6.tgz", - "integrity": "sha512-wxQImxePfAfIz9C2nWzebs0KUU9MiO8bWsRKNsAk9jknc+bjsre9Lje0sr6jvE840XZSTX/aaXY2g+Mt+9oq+w==", - "dev": true, - "requires": { - "semver": "6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@commitlint/lint": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.6.tgz", - "integrity": "sha512-M/tysLho4KdsXJp7J7q/c1WEb3Dh75cm86eb0buci8C/DOIegLq/B3DE/8dhxOzGElUW/iq55MyWttJ/MRwKsg==", - "dev": true, - "requires": { - "@commitlint/is-ignored": "^8.3.6", - "@commitlint/parse": "^8.3.6", - "@commitlint/rules": "^8.3.6", - "babel-runtime": "^6.23.0", - "lodash": "4.17.21" - } - }, - "@commitlint/load": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.6.tgz", - "integrity": "sha512-bqqGg89KnfauJ01GrVBgKyWBXYy2UXmLvRGuepyI1HsNVaEIGBz6R+sTvk3K55Str6soF7HRpl6bDCmnEOVJtA==", - "dev": true, - "requires": { - "@commitlint/execute-rule": "^8.3.6", - "@commitlint/resolve-extends": "^8.3.6", - "babel-runtime": "^6.23.0", - "chalk": "2.4.2", - "cosmiconfig": "^5.2.0", - "lodash": "4.17.21", - "resolve-from": "^5.0.0" - } - }, - "@commitlint/message": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.3.6.tgz", - "integrity": "sha512-x30GmsyZTk+QV4o5TRrDkZQm7uRumlKu+7yWeRdSAXyUgi9amsdMFJ8VbAoRsBndOAtEUkaXgK8dvvmgvW3kwg==", - "dev": true - }, - "@commitlint/parse": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.6.tgz", - "integrity": "sha512-wL6Z5hZpT8i/3LMwP/CxTMPMU3v4blAbSA8QGPCruFHFtAV8hIiXvD1CNOhyeeuG29GAapopLgNJjtigzlN3kg==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^1.3.3", - "conventional-commits-parser": "^3.0.0", - "lodash": "^4.17.11" - } - }, - "@commitlint/read": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.3.6.tgz", - "integrity": "sha512-ixlvPQO8AGFjE5U4DBwJIZtzIqmGeZKhpNjjuAyTwWfMURpXjv+/pVvq/AY3LvxHJM64DuQp2WqrbwJU6mXvUQ==", - "dev": true, - "requires": { - "@commitlint/top-level": "^8.3.6", - "@marionebl/sander": "^0.6.0", - "babel-runtime": "^6.23.0", - "git-raw-commits": "^2.0.0" - } - }, - "@commitlint/resolve-extends": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.6.tgz", - "integrity": "sha512-L0/UOBxc3wiA3gzyE8pN9Yunb6FS/2ZDCjieNH0XAgdF2ac5SHh056QE6aQwP7CSCYNEo2+SXxVZr/WOshsQHg==", - "dev": true, - "requires": { - "import-fresh": "^3.0.0", - "lodash": "4.17.21", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - } - }, - "@commitlint/rules": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.6.tgz", - "integrity": "sha512-NmEAWAW0f5Nda7ZJ11vd73PqOt57GvLc1SOfoUKolCC3lSJACj9SCTbfkQh8cEMlLmDpNqaGaVHH1jMYXMqU3g==", - "dev": true, - "requires": { - "@commitlint/ensure": "^8.3.6", - "@commitlint/message": "^8.3.6", - "@commitlint/to-lines": "^8.3.6", - "babel-runtime": "^6.23.0" - } - }, - "@commitlint/to-lines": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.6.tgz", - "integrity": "sha512-4g26G37oh5dABVaRGALdlinjQ/wl8b4HTczLwXLKLM0iHHYFu2A1ZwiVJ8avQk/zThw86/HD6zOgGMNPoamjIQ==", - "dev": true - }, - "@commitlint/top-level": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.6.tgz", - "integrity": "sha512-2XG5NhGgEZaFJChCkSTa6wXWYbJqb9DubC6aRuD/cOeHdYh2OYrXT8z0IorN+gR5+MWqdUtIHhRYtz2Xb75gNg==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, "@fortawesome/fontawesome-free": { "version": "5.15.1", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz", @@ -21230,17 +20240,6 @@ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, - "@marionebl/sander": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz", - "integrity": "sha512-7f3zZddAk92G1opoX/glbDO6YbrzmMAJAw0RJAcvunnV7sR4L9llyBUAABptKoF1Jf37UQ1QTJy5p2H4J4rBNA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.3", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.2" - } - }, "@next/bundle-analyzer": { "version": "10.2.3", "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-10.2.3.tgz", @@ -22119,12 +21118,6 @@ "typical": "^2.6.1" } }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -22333,35 +21326,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", - "dev": true - } - } - }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -22719,23 +21683,6 @@ "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, "caniuse-lite": { "version": "1.0.30001449", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", @@ -23149,16 +22096,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "compare-func": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", - "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -23213,16 +22150,6 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "conventional-changelog-angular": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", - "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", - "dev": true, - "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" - } - }, "conventional-changelog-writer": { "version": "4.0.18", "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz", @@ -23638,12 +22565,6 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", - "dev": true - }, "core-js-pure": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.1.tgz", @@ -23791,27 +22712,12 @@ "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true - }, "data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", @@ -24049,15 +22955,6 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==" }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -25605,12 +24502,6 @@ "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", "dev": true }, - "get-stdin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", - "integrity": "sha1-jV3pjxUXGhJcXlFmQ8em0OqKlvY=", - "dev": true - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -25685,181 +24576,6 @@ } } }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, "github-deploy-status": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/github-deploy-status/-/github-deploy-status-1.4.1.tgz", @@ -25897,15 +24613,6 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -27938,16 +26645,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -27983,12 +26680,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -28089,98 +26780,6 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -28291,24 +26890,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - } - } - }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -34546,12 +33127,6 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -34807,24 +33382,6 @@ "picomatch": "^2.2.1" } }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - }, - "dependencies": { - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - } - } - }, "redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", @@ -34834,12 +33391,6 @@ "esprima": "~4.0.0" } }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -34976,15 +33527,6 @@ "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true }, - "resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "requires": { - "global-dirs": "^0.1.1" - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -36126,12 +34668,6 @@ "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "dev": true }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -36954,12 +35490,6 @@ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, "trim-off-newlines": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", @@ -37716,15 +36246,6 @@ } } }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/pages/game/xy.js b/pages/game/xy.js new file mode 100644 index 00000000..63f7251d --- /dev/null +++ b/pages/game/xy.js @@ -0,0 +1,143 @@ +import styles from 'styles/pages/xygame.module.scss'; +import typography from 'styles/typography.module.scss'; + +import React, { useRef, useCallback, useState } from 'react'; // useState, useCallback +import bem from 'bem-css-modules'; +import cn from 'classnames'; + +import Header from 'components/layout/header/Header'; +import Button from 'components/common/Button'; +import Input from 'components/common/ui/Input'; +import ShareButtons from 'components/social/ShareButtons'; +// import TextWithSeparator from 'lib/components/TextWithSeparator'; +import CardBlocksLayout from 'features/layout/card-blocks-layout'; +import { MetaImage, MetaDescription } from 'components/social/Metatags'; + +import useToggleSidebar from 'hooks/useToggleSidebar'; + +import fiberyToString from 'utils/fibery/toString'; +import { makeRequest, catchServerSideErrors } from 'utils/request'; +import { getLocalizedSuggested } from 'utils/getters'; + +import api from 'constants/api'; +import { SUGGESTED_ARTICLES_ENABLED } from 'constants/misc'; + +const b = bem(styles); + +// XY Games are currently implemented to only support Belarusian language. +const LANG = 'be'; + +const XYGamePage = ({ + title, + subtitle, + // inputType, + question, + // response, + images: { left, right, bottom }, + colors: { colorBackgroundOuter, colorBackgroundInner, colorText }, + suggestedArticles, +}) => { + const textStr = subtitle ? fiberyToString(subtitle, { useBreak: true }) : ''; + + const inputRef = useRef(); + const [formValue] = useState(''); + + const onSubmit = useCallback(); + + return ( + <> + + +
+
+ +
+
+

{title}

+

{subtitle}

+
+
+
+
+
+ img +
+
+
{question}
+
+ + +
+
+
+ img +
+
+
+ img +
+
+

{left}

+

{right}

+ {/* */} +
+
+ +
+
+
+ {SUGGESTED_ARTICLES_ENABLED && suggestedArticles && ( + + )} + + ); +}; + +XYGamePage.getLayoutProps = ({ title }) => ({ + noLocTitle: title, + hideHeader: true, +}); + +export const getServerSideProps = catchServerSideErrors(async ({ query: { slug } }) => { + const { + title, + subtitle, + inputType, + question, + response, + images, + // color, + suggestedArticles = null, + } = await makeRequest(api.games.xy.get(slug)); + + return { + props: { + title: title[LANG], + subtitle: subtitle[LANG], + inputType, + question: question[LANG], + response: response[LANG], + images, + colors: { + colorBackgroundOuter: '#332828', + colorBackgroundInner: '#423636', + colorText: '#ffffff', + }, + suggestedArticles: getLocalizedSuggested(suggestedArticles, LANG), + }, + }; +}); + +export default XYGamePage; diff --git a/routes.js b/routes.js index 3b013da7..171bb1b1 100644 --- a/routes.js +++ b/routes.js @@ -45,6 +45,11 @@ const ROUTES = [ { name: 'game/tinder', }, + { + name: 'xyGame', + pattern: '/game/:slug', + page: 'game/xy', + }, ].map(({ name, pattern = `/${name}`, page = name }) => ({ name, pattern: `/:lang(${langs})${pattern}`, diff --git a/styles/pages/xygame.module.scss b/styles/pages/xygame.module.scss new file mode 100644 index 00000000..b09d05b9 --- /dev/null +++ b/styles/pages/xygame.module.scss @@ -0,0 +1,111 @@ +@import 'styles/responsiveness'; +@import 'styles/variables'; + +.xygame-page { + background-color: #000000; + color: #ffffff; + + &__wrapper { + align-items: center; + display: flex; + flex-direction: column; + justify-content: center; + } + + &__header { + color: #ffffff; + margin-bottom: 60px; + margin-top: 60px; + text-align: center; + width: 660px; + } + + &__header-title { + font-size: 60px; + font-weight: 700; + line-height: 66px; + margin-bottom: 20px; + } + + &__header-subtitle { + font-size: 16px; + font-weight: 400; + line-height: 24px; + } + + &__interactive { + border-radius: 6px; + height: 270px; + width: 660px; + } + + &__layout-vertical { + display: flex; + flex-direction: column; + } + + &__image-bottom { + color: #ff0000; + } + + &__layout-horizontal { + display: flex; + flex-direction: row; + justify-content: space-between; + } + + &__image-left { + width: 135px; + } + + &__image-right { + width: 135px; + } + + &__game { + flex-grow: 1; + padding: 20px 40px 0; + text-align: center; + } + + &__question { + font-size: 30px; + font-weight: 700; + line-height: 36px; + } + + &__input { + border-bottom: 2px #ffffff solid; + height: 60px; + } + + &__button { + background-color: #0dc6aa; + border: 0; + border-radius: 6px; + color: #ffffff; + font-size: 20px; + font-weight: 400; + line-height: 36px; + margin-top: 40px; + padding: 6px 24px 12px; + width: 138px; + + &--inactive { + opacity: 40%; + } + } + + &__social { + align-items: center; + display: flex; + flex-direction: column; + padding-bottom: 100px; + padding-top: 60px; + width: 660px; + } + + &__share { + color: #ff0000; + } +} From d7699dbedda682545ac17e71ae5251c609b26b88 Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Sat, 21 Sep 2024 22:27:41 +0200 Subject: [PATCH 02/12] game logic and responsive design --- components/common/ui/Input.js | 23 ++++++- components/layout/header/Header.js | 10 +++ pages/game/xy.js | 104 +++++++++++++++++++++++------ styles/pages/xygame.module.scss | 74 +++++++++++++++++--- 4 files changed, 178 insertions(+), 33 deletions(-) diff --git a/components/common/ui/Input.js b/components/common/ui/Input.js index 7dbd83a5..9a9fa88c 100644 --- a/components/common/ui/Input.js +++ b/components/common/ui/Input.js @@ -1,6 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import bem from 'bem-css-modules'; +import cn from 'classnames'; import Clickable from 'components/common/Clickable'; import Icon from 'components/common/ui/Icon'; @@ -11,12 +12,26 @@ import styles from './input.module.scss'; const b = bem(styles); const Input = React.forwardRef( - ({ pending, leftIcon, rightIcon, disabled, error, onRightClick, placeholder, ...props }, ref) => ( + ( + { + className, + pending, + leftIcon, + rightIcon, + disabled, + error, + onRightClick, + placeholder, + barColor, + ...props + }, + ref + ) => ( <>
)} - +
{error &&

{error}

} @@ -47,6 +62,7 @@ const Input = React.forwardRef( Input.propTypes = { /* eslint-disable react/require-default-props */ + className: PropTypes.string, pending: PropTypes.bool, disabled: PropTypes.bool, leftIcon: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]), @@ -55,6 +71,7 @@ Input.propTypes = { error: PropTypes.node, onRightClick: PropTypes.func, placeholder: PropTypes.string, + barColor: PropTypes.string, /* eslint-enable */ }; diff --git a/components/layout/header/Header.js b/components/layout/header/Header.js index e04cb56a..954b0393 100644 --- a/components/layout/header/Header.js +++ b/components/layout/header/Header.js @@ -18,6 +18,15 @@ const b = bem(styles); const Header = ({ toggleSidebar, color }) => { const router = useRouter(); + + // const joinedColors = {}; + // if (color) { + // joinedColors.color = color; + // } + // if (backgroundColor) { + // joinedColors.backgroundColor = backgroundColor + // } + return (
@@ -42,6 +51,7 @@ const Header = ({ toggleSidebar, color }) => { // eslint-disable-next-line react/no-array-index-key key={i} className={b('burger-item')} + // What is this backgroundColor for, is it used? style={color ? { backgroundColor: color } : {}} /> ))} diff --git a/pages/game/xy.js b/pages/game/xy.js index 63f7251d..98daf830 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -15,6 +15,7 @@ import { MetaImage, MetaDescription } from 'components/social/Metatags'; import useToggleSidebar from 'hooks/useToggleSidebar'; +import fiberyRenderer from 'utils/fibery/renderer'; import fiberyToString from 'utils/fibery/toString'; import { makeRequest, catchServerSideErrors } from 'utils/request'; import { getLocalizedSuggested } from 'utils/getters'; @@ -26,13 +27,24 @@ const b = bem(styles); // XY Games are currently implemented to only support Belarusian language. const LANG = 'be'; +const initialOutcome = { + data: { + text: { + be: { + content: [], + }, + }, + }, + inputValue: '', +}; const XYGamePage = ({ + slug, title, subtitle, // inputType, question, - // response, + response, images: { left, right, bottom }, colors: { colorBackgroundOuter, colorBackgroundInner, colorText }, suggestedArticles, @@ -40,23 +52,54 @@ const XYGamePage = ({ const textStr = subtitle ? fiberyToString(subtitle, { useBreak: true }) : ''; const inputRef = useRef(); - const [formValue] = useState(''); + const [formValue, setValue] = useState(''); + + const onChange = useCallback(({ target: { value } }) => { + setValue(value); + }, []); - const onSubmit = useCallback(); + // const onSubmit = useCallback(); + + const [ + { + data: { + text: { + be: { content }, + }, + }, + inputValue, + }, + setOutcome, + ] = useState(initialOutcome); + + // TODO: use swr + const fetchOutcome = useCallback(async () => { + try { + const data = await makeRequest( + `https://api.wir.by/api/games/xy/getOutcome/${slug}?input=${inputRef.current.value}` + ); // api.games.xy.getOutcome(slug, inputRef.current.value)); + setOutcome({ data, inputValue: inputRef.current.value }); + } catch (err) { + // setCookie(initialCookie); + // setError(true); + } finally { + // setPending(false); + } + }, []); return ( <> -
+
-

{title}

+

{title}

{subtitle}

@@ -66,28 +109,44 @@ const XYGamePage = ({ img
-
{question}
-
- - -
+ {content.length === 0 && ( + <> +
{question}
+ +
+ +
+ + + + )} + + {content.length !== 0 && ( + <> +
{response.replace('{INPUT}', inputValue)}
+
{fiberyRenderer(content)}
+ + )}
img
-
- img -
+ img
-

{left}

-

{right}

{/* )} @@ -137,23 +154,19 @@ const XYGamePage = ({ {content.length !== 0 && ( <>
{response.replace('{INPUT}', inputValue)}
-
{fiberyRenderer(content)}
+
+
{fiberyToString(content)}
+
)}
-
- img -
+ img img - {/* */}
- +
@@ -177,7 +190,7 @@ export const getServerSideProps = catchServerSideErrors(async ({ query: { slug } question, response, images, - // color, + colors, suggestedArticles = null, } = await makeRequest(api.games.xy.get(slug)); @@ -190,11 +203,7 @@ export const getServerSideProps = catchServerSideErrors(async ({ query: { slug } question: question[LANG], response: response[LANG], images, - colors: { - colorBackgroundOuter: '#332828', - colorBackgroundInner: '#423636', - colorText: '#ffffff', - }, + colors, suggestedArticles: getLocalizedSuggested(suggestedArticles, LANG), }, }; diff --git a/styles/pages/xygame.module.scss b/styles/pages/xygame.module.scss index 133f9c55..497104ac 100644 --- a/styles/pages/xygame.module.scss +++ b/styles/pages/xygame.module.scss @@ -12,7 +12,6 @@ } &__header { - color: #ffffff; margin-bottom: 60px; margin-top: 60px; text-align: center; @@ -96,7 +95,13 @@ align-items: center; display: flex; flex-direction: column; + flex-grow: 1; + height: 270px; text-align: center; + + @include screen-tablet-touch-mobile { + height: unset; + } } &__question { @@ -112,9 +117,10 @@ } &__input { - color: #ffffff; - font-size: 40px; - height: 50px; + font-size: 48px; + font-weight: 700; + height: 60px; + line-height: 60px; text-align: center; width: 100%; } @@ -129,12 +135,17 @@ line-height: 36px; margin-top: 40px; padding: 6px 24px 12px; - width: 138px; + width: 155px; @include screen-tablet-touch-mobile { margin-bottom: 50px; } + &:hover { + background-color: #0fe1c0; + color: #ffffff; + } + &--inactive { opacity: 40%; } @@ -144,14 +155,19 @@ font-size: 30px; font-weight: 600; line-height: 36px; - margin: 20px 40px 0; + margin: 20px 40px; } &__outcome { + align-items: center; + display: flex; + flex-direction: row; + flex-grow: 1; font-size: 20px; // ? font-weight: 300; - line-height: 36px; // ? - margin: 20px 20px 0; + line-height: 30px; // ? + margin: 0 20px; + overflow: hidden; } &__social { @@ -162,8 +178,4 @@ padding-top: 60px; width: 660px; } - - &__share { - color: #ff0000; - } } From b2445930638eab2d4fd42ed667353879f8ea1948 Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Sat, 28 Sep 2024 20:21:29 +0200 Subject: [PATCH 04/12] Minor fixes and rework for background --- pages/game/xy.js | 40 ++++++++++++++++++++------------- styles/pages/xygame.module.scss | 24 +++++++++++++------- 2 files changed, 41 insertions(+), 23 deletions(-) diff --git a/pages/game/xy.js b/pages/game/xy.js index 6c479ca3..3f0a9bd7 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -44,12 +44,8 @@ const XYGamePage = ({ inputType, question, response, - images: { left, right, bottom }, - colors: { - backgroundOuter: colorBackgroundOuter, - backgroundInner: colorBackgroundInner, - text: colorText, - }, + images: { left, right, bottom, background, preview }, + colors: { background: colorBackground, text: colorText }, suggestedArticles, }) => { const inputRef = useRef(); @@ -92,8 +88,10 @@ const XYGamePage = ({ } const data = await makeRequest( - `https://api.wir.by/api/games/xy/getOutcome/${slug}?input=${value}` // TODO: Revert before pushing to production. - ); // api.games.xy.getOutcome(slug, value)); + api.games.xy.getOutcome(slug, value) + // For some reason, does not work locally; needs to be replaced with: + // `https://api.wir.by/api/games/xy/getOutcome/${slug}?input=${value}` + ); setOutcome({ data, inputValue: value }); } catch (err) { setOutcome(initialOutcome); @@ -103,22 +101,30 @@ const XYGamePage = ({ } }, []); + const cleanupState = useCallback(() => { + setOutcome(initialOutcome); + }, []); + return ( <> - + -
+
-
+

{title}

{subtitle}

-
+
img @@ -144,6 +150,7 @@ const XYGamePage = ({ className={b('button', { inactive: !formValue || error })} onClick={fetchOutcome} pending={pending} + disabled={!formValue || error} > {!error && 'Адказаць'} {error && 'Памылка :('} @@ -157,6 +164,9 @@ const XYGamePage = ({
{fiberyToString(content)}
+ )}
diff --git a/styles/pages/xygame.module.scss b/styles/pages/xygame.module.scss index 497104ac..5c7061a4 100644 --- a/styles/pages/xygame.module.scss +++ b/styles/pages/xygame.module.scss @@ -2,7 +2,17 @@ @import 'styles/variables'; .xygame-page { - border-radius: 0; // Remove. + background-position: left top; + background-size: auto 100vh; + margin-bottom: 80px; + + @include screen-touch { + background-size: auto 200vh; + } + + @include screen-mobile { + background-size: auto 200vh; + } &__wrapper { align-items: center; @@ -36,12 +46,13 @@ } &__interactive { + background-color: #ffffff1a; border-radius: 6px; - height: 270px; + min-height: 270px; width: 660px; @include screen-tablet-touch-mobile { - height: unset; + min-height: unset; } @include screen-tablet { @@ -71,6 +82,7 @@ } &__layout-horizontal { + align-items: flex-start; display: flex; flex-direction: row; } @@ -96,12 +108,7 @@ display: flex; flex-direction: column; flex-grow: 1; - height: 270px; text-align: center; - - @include screen-tablet-touch-mobile { - height: unset; - } } &__question { @@ -133,6 +140,7 @@ font-size: 20px; font-weight: 400; line-height: 36px; + margin-bottom: 40px; margin-top: 40px; padding: 6px 24px 12px; width: 155px; From 8bd6ea5445c7e43b6504f3a8efa090bc39271b9d Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Sat, 28 Sep 2024 21:37:07 +0200 Subject: [PATCH 05/12] Improve interactions with the backend --- constants/api.js | 2 +- pages/game/xy.js | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/constants/api.js b/constants/api.js index c3b0b54a..131c1c2a 100644 --- a/constants/api.js +++ b/constants/api.js @@ -41,7 +41,7 @@ export default { }, xy: { get: slug => `${API_URL}/games/xy/${slug}`, - getOutcome: (slug, input) => `${API_URL}/games/xy/getOutcome/${slug}?input=${input}`, + getOutcome: slug => `${API_URL}/games/xy/getOutcome/${slug}`, }, }, }; diff --git a/pages/game/xy.js b/pages/game/xy.js index 3f0a9bd7..0e626fb1 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -10,7 +10,7 @@ import Button from 'components/common/Button'; import Input from 'components/common/ui/Input'; import ShareButtons from 'components/social/ShareButtons'; import CardBlocksLayout from 'features/layout/card-blocks-layout'; -import { MetaImage, MetaDescription } from 'components/social/Metatags'; +import { MetaImage, MetaDescription, MetaKeywords, MetaTitle } from 'components/social/Metatags'; import useToggleSidebar from 'hooks/useToggleSidebar'; @@ -44,6 +44,7 @@ const XYGamePage = ({ inputType, question, response, + keywords, images: { left, right, bottom, background, preview }, colors: { background: colorBackground, text: colorText }, suggestedArticles, @@ -87,11 +88,9 @@ const XYGamePage = ({ throw new Error('Invalid input'); } - const data = await makeRequest( - api.games.xy.getOutcome(slug, value) - // For some reason, does not work locally; needs to be replaced with: - // `https://api.wir.by/api/games/xy/getOutcome/${slug}?input=${value}` - ); + const data = await makeRequest(api.games.xy.getOutcome(slug), 'POST', { + input: value, + }); setOutcome({ data, inputValue: value }); } catch (err) { setOutcome(initialOutcome); @@ -107,8 +106,11 @@ const XYGamePage = ({ return ( <> - + + + +
Date: Sat, 28 Sep 2024 22:06:57 +0200 Subject: [PATCH 06/12] chores --- components/layout/header/Header.js | 9 --------- pages/game/xy.js | 2 +- styles/pages/xygame.module.scss | 4 ++-- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/components/layout/header/Header.js b/components/layout/header/Header.js index 954b0393..0dc3e7d7 100644 --- a/components/layout/header/Header.js +++ b/components/layout/header/Header.js @@ -19,14 +19,6 @@ const b = bem(styles); const Header = ({ toggleSidebar, color }) => { const router = useRouter(); - // const joinedColors = {}; - // if (color) { - // joinedColors.color = color; - // } - // if (backgroundColor) { - // joinedColors.backgroundColor = backgroundColor - // } - return (
@@ -51,7 +43,6 @@ const Header = ({ toggleSidebar, color }) => { // eslint-disable-next-line react/no-array-index-key key={i} className={b('burger-item')} - // What is this backgroundColor for, is it used? style={color ? { backgroundColor: color } : {}} /> ))} diff --git a/pages/game/xy.js b/pages/game/xy.js index 0e626fb1..a143820e 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -73,7 +73,7 @@ const XYGamePage = ({ const isInputValid = value => { if (inputType === 'AGE') { - return Number(value) >= 1 && Number(value) <= 120; // TODO: Clarify max age. + return Number(value) >= 1 && Number(value) <= 120; } return true; }; diff --git a/styles/pages/xygame.module.scss b/styles/pages/xygame.module.scss index 5c7061a4..ef8345a0 100644 --- a/styles/pages/xygame.module.scss +++ b/styles/pages/xygame.module.scss @@ -171,9 +171,9 @@ display: flex; flex-direction: row; flex-grow: 1; - font-size: 20px; // ? + font-size: 20px; font-weight: 300; - line-height: 30px; // ? + line-height: 30px; margin: 0 20px; overflow: hidden; } From 5bf314a233619e03d57648ee3f459c9d78bd202b Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Sat, 28 Sep 2024 22:21:24 +0200 Subject: [PATCH 07/12] cleanup input form --- pages/game/xy.js | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/game/xy.js b/pages/game/xy.js index a143820e..ab6e94f1 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -102,6 +102,7 @@ const XYGamePage = ({ const cleanupState = useCallback(() => { setOutcome(initialOutcome); + setValue(''); }, []); return ( From 3f9b29bfd39eb6438fdd47408d05c8577c9be6be Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Mon, 30 Sep 2024 23:19:58 +0200 Subject: [PATCH 08/12] draft implementation for the uzrost banner --- features/layout/blocks/banner/BannerBlock.js | 10 ++++++++-- features/layout/blocks/banner/banner.module.scss | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/features/layout/blocks/banner/BannerBlock.js b/features/layout/blocks/banner/BannerBlock.js index afcbff5a..683fb4fb 100644 --- a/features/layout/blocks/banner/BannerBlock.js +++ b/features/layout/blocks/banner/BannerBlock.js @@ -14,11 +14,12 @@ import styles from './banner.module.scss'; const b = bem(styles); const CDN_HOST = 'https://res.cloudinary.com/wir-by/image/upload'; -const BANNERS_AVAILABLE = ['mapa', 'ny2021', 'tinder']; +const BANNERS_AVAILABLE = ['mapa', 'ny2021', 'tinder', 'uzrost']; const LINK = { mapa: { href: 'https://map.wir.by?utm_source=wirby-main-page' }, [NY2021]: { route: `game/${NY2021}` }, tinder: { route: `game/tinder` }, + uzrost: { href: 'game/uzrost' }, }; const IMAGE_LINK = { mapa: (width, screen) => @@ -27,6 +28,8 @@ const IMAGE_LINK = { `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1607868560/production/banners/newyear2021-all-sizes/${screen}.png`, tinder: (width, screen) => `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1613151926/production/banners/tinder-all-sizes/${screen}.png`, + uzrost: (width, screen) => + `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1727729557/production/banners/uzrost-all-sizes/${screen}.png`, }; const BANNERS = banner => @@ -56,7 +59,10 @@ const BannerBlock = ({ block: { banner }, inViewport }) => {
-
{title}
+ {banner !== 'uzrost' && ( + // TODO: Decouple uzrost banners images from text. +
{title}
+ )} {[NY2021, 'tinder'].includes(banner) && (
{subtitle}
)} diff --git a/features/layout/blocks/banner/banner.module.scss b/features/layout/blocks/banner/banner.module.scss index 2cfed1ec..acef4e0d 100644 --- a/features/layout/blocks/banner/banner.module.scss +++ b/features/layout/blocks/banner/banner.module.scss @@ -236,4 +236,9 @@ top: 198px; } } + + &__uzrost-title { + color: $primary-white; + // TODO: Decouple uzrost banners images from text. + } } From 6a968c4671f3b7b496075fe25fd400d8f0e7ba49 Mon Sep 17 00:00:00 2001 From: Ulad Bohdan Date: Thu, 3 Oct 2024 21:33:00 +0200 Subject: [PATCH 09/12] decouple text from image for uzrost banner --- features/layout/blocks/banner/BannerBlock.js | 12 ++- .../layout/blocks/banner/banner.module.scss | 85 ++++++++++++++++++- 2 files changed, 89 insertions(+), 8 deletions(-) diff --git a/features/layout/blocks/banner/BannerBlock.js b/features/layout/blocks/banner/BannerBlock.js index 683fb4fb..5cf8725f 100644 --- a/features/layout/blocks/banner/BannerBlock.js +++ b/features/layout/blocks/banner/BannerBlock.js @@ -14,7 +14,8 @@ import styles from './banner.module.scss'; const b = bem(styles); const CDN_HOST = 'https://res.cloudinary.com/wir-by/image/upload'; -const BANNERS_AVAILABLE = ['mapa', 'ny2021', 'tinder', 'uzrost']; +const BANNERS_AVAILABLE = ['mapa', NY2021, 'tinder', 'uzrost']; +const BANNERS_WITH_SUBTITLE = [NY2021, 'tinder', 'uzrost']; const LINK = { mapa: { href: 'https://map.wir.by?utm_source=wirby-main-page' }, [NY2021]: { route: `game/${NY2021}` }, @@ -29,7 +30,7 @@ const IMAGE_LINK = { tinder: (width, screen) => `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1613151926/production/banners/tinder-all-sizes/${screen}.png`, uzrost: (width, screen) => - `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1727729557/production/banners/uzrost-all-sizes/${screen}.png`, + `${CDN_HOST}/c_scale,w_${width},f_auto,q_auto/v1727982011/production/banners/uzrost-v2-all-sizes/${screen}.png`, }; const BANNERS = banner => @@ -59,11 +60,8 @@ const BannerBlock = ({ block: { banner }, inViewport }) => {
- {banner !== 'uzrost' && ( - // TODO: Decouple uzrost banners images from text. -
{title}
- )} - {[NY2021, 'tinder'].includes(banner) && ( +
{title}
+ {BANNERS_WITH_SUBTITLE.includes(banner) && (
{subtitle}
)} diff --git a/features/layout/blocks/banner/banner.module.scss b/features/layout/blocks/banner/banner.module.scss index acef4e0d..89c6a006 100644 --- a/features/layout/blocks/banner/banner.module.scss +++ b/features/layout/blocks/banner/banner.module.scss @@ -239,6 +239,89 @@ &__uzrost-title { color: $primary-white; - // TODO: Decouple uzrost banners images from text. + font-weight: 700; + + @include screen-desktop { + font-size: 60px; + height: 66px; + left: 196px; + line-height: 66px; + top: 78px; + width: 645px; + } + + @include screen-tablet-large { + font-size: 48px; + height: 60px; + left: 152px; + line-height: 60px; + top: 84px; + width: 515px; + } + + @include screen-tablet { + font-size: 48px; + height: 48px; + left: 61px; + line-height: 48px; + top: 96px; + width: 515px; + } + + @include screen-touch { + font-size: 48px; + height: 96px; + left: 59px; + line-height: 48px; + text-align: center; + top: 70px; + width: 362px; + } + + @include screen-mobile { + font-size: 30px; + height: 72px; + left: 46px; + line-height: 36px; + text-align: center; + top: 136px; + width: 209px; + } + } + + &__uzrost-subtitle { + color: $primary-white; + font-size: 16px; + font-weight: 400; + height: 24px; + line-height: 24px; + text-align: center; + width: 177px; + + @include screen-desktop { + left: 467px; + top: 54px; + width: 87px; + } + + @include screen-tablet-large { + left: 320px; + top: 60px; + } + + @include screen-tablet { + left: 224px; + top: 72px; + } + + @include screen-touch { + left: 152px; + top: 46px; + } + + @include screen-mobile { + left: 62px; + top: 112px; + } } } From 14cf902e71e98bac45dbd185b663afcea55f3750 Mon Sep 17 00:00:00 2001 From: Ivan Pazhitnykh Date: Thu, 7 Nov 2024 18:56:05 +0100 Subject: [PATCH 10/12] fix: fix lint --- .eslintignore | 1 + .prettierignore | 2 +- components/common/ui/Input.js | 3 +++ components/layout/footer/SubscribeForm.js | 1 + lib | 2 +- pages/game/xy.js | 19 +++++++++++-------- 6 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..29ef827e --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +v3 diff --git a/.prettierignore b/.prettierignore index e8705a31..5dee733d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,4 +19,4 @@ CHANGELOG.md # next .next - +v3 diff --git a/components/common/ui/Input.js b/components/common/ui/Input.js index f46d0b3e..9f5a2676 100644 --- a/components/common/ui/Input.js +++ b/components/common/ui/Input.js @@ -23,6 +23,7 @@ const Input = React.forwardRef( onRightClick, placeholder, barColor, + type = 'text', ...props }, ref @@ -32,6 +33,7 @@ const Input = React.forwardRef( { onRightClick={onSubmit} pending={pending} error={apiError} + type="email" /> )} diff --git a/lib b/lib index eb9aae74..1db9731e 160000 --- a/lib +++ b/lib @@ -1 +1 @@ -Subproject commit eb9aae74169d4af87067ed56838c4961b76b2022 +Subproject commit 1db9731ef2b3058c7fb55b148140ad10f19cde9d diff --git a/pages/game/xy.js b/pages/game/xy.js index ab6e94f1..9530059d 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -71,12 +71,15 @@ const XYGamePage = ({ setOutcome, ] = useState(initialOutcome); - const isInputValid = value => { - if (inputType === 'AGE') { - return Number(value) >= 1 && Number(value) <= 120; - } - return true; - }; + const isInputValid = useCallback( + value => { + if (inputType === 'AGE') { + return Number(value) >= 1 && Number(value) <= 120; + } + return true; + }, + [inputType] + ); const fetchOutcome = useCallback(async () => { try { @@ -98,7 +101,7 @@ const XYGamePage = ({ } finally { setPending(false); } - }, []); + }, [isInputValid, slug]); const cleanupState = useCallback(() => { setOutcome(initialOutcome); @@ -144,7 +147,7 @@ const XYGamePage = ({ className={b('input')} name="ageInput" barColor={colorText} - type={inputType === 'AGE' && 'number'} + type={inputType === 'AGE' ? 'number' : 'text'} style={{ color: colorText }} />
From 5cbe6d0926d64595107c8ac6f096fcc6bf74873d Mon Sep 17 00:00:00 2001 From: Ivan Pazhitnykh Date: Thu, 7 Nov 2024 19:34:03 +0100 Subject: [PATCH 11/12] fix: simplofy xy game page --- pages/game/xy.js | 62 ++++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/pages/game/xy.js b/pages/game/xy.js index 9530059d..d9c68c44 100644 --- a/pages/game/xy.js +++ b/pages/game/xy.js @@ -1,7 +1,7 @@ import styles from 'styles/pages/xygame.module.scss'; import typography from 'styles/typography.module.scss'; -import React, { useRef, useCallback, useState } from 'react'; +import React, { useCallback, useState } from 'react'; import bem from 'bem-css-modules'; import cn from 'classnames'; @@ -26,17 +26,6 @@ const b = bem(styles); // XY Games are currently implemented to only support Belarusian language. const LANG = 'be'; -const initialOutcome = { - data: { - text: { - be: { - content: [], - }, - }, - }, - inputValue: '', -}; - const XYGamePage = ({ slug, title, @@ -49,27 +38,16 @@ const XYGamePage = ({ colors: { background: colorBackground, text: colorText }, suggestedArticles, }) => { - const inputRef = useRef(); - const [formValue, setValue] = useState(''); const [error, setError] = useState(false); const [pending, setPending] = useState(false); - const onChange = useCallback(({ target: { value } }) => { - setValue(value); + const [inputValue, setInputValue] = useState(''); + const onInputChange = useCallback(({ target: { value } }) => { + setInputValue(value); setError(false); }, []); - const [ - { - data: { - text: { - be: { content }, - }, - }, - inputValue, - }, - setOutcome, - ] = useState(initialOutcome); + const [content, setContent] = useState([]); const isInputValid = useCallback( value => { @@ -86,26 +64,27 @@ const XYGamePage = ({ setPending(true); setError(false); - const { value } = inputRef.current; - if (!isInputValid(value)) { + if (!isInputValid(inputValue)) { throw new Error('Invalid input'); } const data = await makeRequest(api.games.xy.getOutcome(slug), 'POST', { - input: value, + input: inputValue, }); - setOutcome({ data, inputValue: value }); + + setContent(data.text[LANG].content); } catch (err) { - setOutcome(initialOutcome); + setContent([]); + setInputValue(''); setError(true); } finally { setPending(false); } - }, [isInputValid, slug]); + }, [inputValue, isInputValid, slug]); const cleanupState = useCallback(() => { - setOutcome(initialOutcome); - setValue(''); + setContent([]); + setInputValue(''); }, []); return ( @@ -118,8 +97,8 @@ const XYGamePage = ({
@@ -141,9 +120,8 @@ const XYGamePage = ({