From 292ebdf0f6a72bbe17b6b02838e76409fbfd9e21 Mon Sep 17 00:00:00 2001 From: Sendou <38327916+Sendouc@users.noreply.github.com> Date: Thu, 2 Jul 2020 18:57:18 +0300 Subject: [PATCH] ganba time --- frontend-react/package-lock.json | 62 ++--- frontend-react/package.json | 14 +- .../src/components/builds/BuildCard.tsx | 2 + .../src/components/user/BuildTab.tsx | 13 +- .../src/components/user/UserPage.tsx | 5 +- .../src/graphql/queries/searchForBuilds.ts | 1 + frontend-react/src/types.ts | 1 + frontend-react/src/utils/lists.ts | 2 + graphql-schemas/build.js | 14 +- mongoose-models/build.js | 1 + package-lock.json | 230 ++++++++++-------- package.json | 8 +- 12 files changed, 205 insertions(+), 148 deletions(-) diff --git a/frontend-react/package-lock.json b/frontend-react/package-lock.json index ef092a63c..6b5bb928b 100644 --- a/frontend-react/package-lock.json +++ b/frontend-react/package-lock.json @@ -2529,9 +2529,9 @@ } }, "@types/react-select": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.13.tgz", - "integrity": "sha512-JxmSArGgzAOtb37+Jz2+3av8rVmp/3s3DGwlcP+g59/a3owkiuuU4/Jajd+qA32beDPHy4gJR2kkxagPY3j9kg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.14.tgz", + "integrity": "sha512-hfsLVHYZ3245+ESfOJDCKGFGGZ+hunTKO1tPe6Dg9bTjjh/NZIo7WaRHIyql5rnQd5hMUScul0V4wqCbI6omng==", "requires": { "@types/react": "*", "@types/react-dom": "*", @@ -2539,9 +2539,9 @@ } }, "@types/react-simple-maps": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/react-simple-maps/-/react-simple-maps-1.0.2.tgz", - "integrity": "sha512-iL7A8zvK5dQFd74aqaBVZS/z1YDuxZT3xLWkI1iHiHrC3OKHFNosXavoAjrIEG/FQEwLRiR2KVhQuNSG7ufDug==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/react-simple-maps/-/react-simple-maps-1.0.3.tgz", + "integrity": "sha512-cCDAsa8FRlTwvMUOUMK3+5ANnF1TDXlLoqpmIOYYIAYXT4nKwpsgSMOWjPoJyCRx5U+pN8rIK+A/HAcyAh6UWA==", "requires": { "@types/d3-geo": "*", "@types/geojson": "*", @@ -2549,9 +2549,9 @@ } }, "@types/react-transition-group": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz", - "integrity": "sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", + "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", "requires": { "@types/react": "*" } @@ -7353,9 +7353,9 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, "graphql": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz", - "integrity": "sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q==" + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.2.0.tgz", + "integrity": "sha512-tsceRyHfgzZo+ee0YK3o8f0CR0cXAXxRlxoORWFo/CoM1bVy3UXGWeyzBcf+Y6oqPvO27BDmOEVATcunOO/MrQ==" }, "graphql-tag": { "version": "2.10.3", @@ -7531,9 +7531,9 @@ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" }, "hotkeys-js": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.7.6.tgz", - "integrity": "sha512-X5d16trjp79o+OaCn7syXu0cs+TkLYlK/teE5FhpD1Cj9ROcEIhfIQ7Mhrk761ynF3NQLbLn5xRojP2UuSqDAw==" + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.8.1.tgz", + "integrity": "sha512-YlhVQtyG9f1b7GhtzdhR0Pl+cImD1ZrKI6zYUa7QLd0zuThiL7RzZ+ANJyy7z+kmcCpNYBf5PjBa3CjiQ5PFpw==" }, "hpack.js": { "version": "2.1.6", @@ -7789,17 +7789,17 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "i18next": { - "version": "19.5.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.5.1.tgz", - "integrity": "sha512-e6lGMiTyb51F9PPInUTTDg8YbwcWXZYX18svaX2NUUWEphJKP7oG5HMlbZ+K84AXqw4AeBnwRrOlS9ickqcCBg==", + "version": "19.5.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.5.3.tgz", + "integrity": "sha512-R7ie0TdTpBhybNa2eDhTkJKSCDe7pPsHx6/q0RTtHPFw1mrFp0PEtpUqOPy4KaIRwJc8n2N/phTp+HiOBP5Biw==", "requires": { "@babel/runtime": "^7.10.1" }, "dependencies": { "@babel/runtime": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", - "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", + "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -7820,9 +7820,9 @@ } }, "i18next-http-backend": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.0.15.tgz", - "integrity": "sha512-AOGNcB47n0S4GANyVhGUeLRzUUgvh6Lf5vNs/+G3cCP2Mri0OseO2rX0VLHE6PcL21mswW7ka1nmjGKviXKnjQ==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.0.16.tgz", + "integrity": "sha512-IsRfJl2alhCxhu+8jWCz7ZsGqjOWm6gu9vJ6TKmSWIvTISKPn32SGWUM0Uk8ChtrIyW7bXNudKwCEDLzar84Dw==", "requires": { "node-fetch": "2.6.0" } @@ -12905,11 +12905,11 @@ } }, "react-hotkeys-hook": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-2.1.3.tgz", - "integrity": "sha512-p4cH9n4c8Ac3kkNIf6a/97sLEJq+nnhP7fpT0bHhTwByZhBDU3j5hluu00FomxE3hMzJWk4knYG5ZuUM/qVJPw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-2.1.4.tgz", + "integrity": "sha512-gnz74B7NNbVUl8ea0FUaAnJpFcEi9JLLJA2WEstzQoaiWUl0NWH9KW6U0i6twJc8d/cONZizi0WDgYSRXxqhVQ==", "requires": { - "hotkeys-js": "3.7.6" + "hotkeys-js": "3.8.1" } }, "react-i18next": { @@ -15564,9 +15564,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", - "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==" + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz", + "integrity": "sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==" }, "unherit": { "version": "1.1.3", diff --git a/frontend-react/package.json b/frontend-react/package.json index 75db1de7a..546999fca 100644 --- a/frontend-react/package.json +++ b/frontend-react/package.json @@ -21,16 +21,16 @@ "@types/react-dom": "^16.9.8", "@types/react-infinite-scroller": "^1.2.1", "@types/react-paginate": "^6.2.1", - "@types/react-select": "^3.0.13", - "@types/react-simple-maps": "^1.0.2", + "@types/react-select": "^3.0.14", + "@types/react-simple-maps": "^1.0.3", "@types/recharts": "^1.8.13", "@types/webpack-env": "^1.15.2", "apollo-boost": "^0.4.9", "emotion-theming": "^10.0.27", - "graphql": "^15.1.0", - "i18next": "^19.5.1", + "graphql": "^15.2.0", + "i18next": "^19.5.3", "i18next-browser-languagedetector": "^5.0.0", - "i18next-http-backend": "^1.0.15", + "i18next-http-backend": "^1.0.16", "jstz": "^2.1.1", "node-sass": "^4.14.1", "react": "^16.13.1", @@ -39,7 +39,7 @@ "react-dom": "^16.13.1", "react-draggable": "^4.4.3", "react-helmet-async": "^1.0.6", - "react-hotkeys-hook": "^2.1.3", + "react-hotkeys-hook": "^2.1.4", "react-i18next": "^11.7.0", "react-icons": "^3.10.0", "react-infinite-scroller": "^1.2.4", @@ -53,7 +53,7 @@ "react-tweet-embed": "^1.2.2", "recharts": "^1.8.5", "source-map-explorer": "^2.4.2", - "typescript": "^3.9.5", + "typescript": "^3.9.6", "use-onclickoutside": "^0.3.1", "use-query-params": "^0.6.0" }, diff --git a/frontend-react/src/components/builds/BuildCard.tsx b/frontend-react/src/components/builds/BuildCard.tsx index ccded8a74..8c4ed79a0 100644 --- a/frontend-react/src/components/builds/BuildCard.tsx +++ b/frontend-react/src/components/builds/BuildCard.tsx @@ -22,6 +22,7 @@ import Gears from "./Gears" import ViewAP from "./ViewAP" import ViewSlots from "./ViewSlots" import { useTranslation, Trans } from "react-i18next" +import Flag from "../common/Flag" interface BuildCardProps { build: Build @@ -88,6 +89,7 @@ const BuildCard: React.FC = ({ )} /> )} + {build.jpn && } { return acc } -const BuildTab: React.FC = ({ builds, canModifyBuilds }) => { +const BuildTab: React.FC = ({ + builds, + canModifyBuilds, + unlimitedBuilds, +}) => { const [APView] = useLocalStorage("prefersAPView") const [formOpen, setFormOpen] = useState(false) const [buildBeingEdited, setBuildBeingEdited] = useState(null) @@ -43,6 +48,8 @@ const BuildTab: React.FC = ({ builds, canModifyBuilds }) => { ? builds.reduce(buildsReducer, {} as ExistingGearObject) : ({} as ExistingGearObject) + const canAddBuilds = builds.length < 100 || unlimitedBuilds + return ( <> {formOpen && ( @@ -55,12 +62,12 @@ const BuildTab: React.FC = ({ builds, canModifyBuilds }) => { buildBeingEdited={buildBeingEdited} /> )} - {canModifyBuilds && builds.length < 100 && ( + {canModifyBuilds && canAddBuilds && ( )} - {canModifyBuilds && builds.length >= 100 && ( + {canModifyBuilds && !canAddBuilds && ( {t("users;tooManyBuilds")} )} diff --git a/frontend-react/src/components/user/UserPage.tsx b/frontend-react/src/components/user/UserPage.tsx index c71a7fa32..ffe49b49b 100644 --- a/frontend-react/src/components/user/UserPage.tsx +++ b/frontend-react/src/components/user/UserPage.tsx @@ -29,7 +29,7 @@ import { SearchForBuildsVars, UserData, } from "../../types" -import { weapons } from "../../utils/lists" +import { weapons, canAddJpnBuildsIds } from "../../utils/lists" import Error from "../common/Error" import Loading from "../common/Loading" import Markdown from "../elements/Markdown" @@ -136,6 +136,9 @@ const UserPage: React.FC = ({ id }) => { return weapons.indexOf(a.weapon) - weapons.indexOf(b.weapon) })} canModifyBuilds={userLean?.discord_id === user.discord_id} + unlimitedBuilds={canAddJpnBuildsIds.includes( + userData.user!.discord_id + )} /> ), diff --git a/frontend-react/src/graphql/queries/searchForBuilds.ts b/frontend-react/src/graphql/queries/searchForBuilds.ts index 213c9e645..98f743c67 100644 --- a/frontend-react/src/graphql/queries/searchForBuilds.ts +++ b/frontend-react/src/graphql/queries/searchForBuilds.ts @@ -15,6 +15,7 @@ export const SEARCH_FOR_BUILDS: DocumentNode = gql` shoesItem updatedAt top + jpn discord_user { username discriminator diff --git a/frontend-react/src/types.ts b/frontend-react/src/types.ts index 21e4a3fc5..3e31af31f 100644 --- a/frontend-react/src/types.ts +++ b/frontend-react/src/types.ts @@ -150,6 +150,7 @@ export interface Build { shoesItem?: ShoesGear updatedAt: string top: boolean + jpn: boolean discord_user?: { username: string discriminator: string diff --git a/frontend-react/src/utils/lists.ts b/frontend-react/src/utils/lists.ts index 7882e4eb1..2da8f4cbf 100644 --- a/frontend-react/src/utils/lists.ts +++ b/frontend-react/src/utils/lists.ts @@ -6630,3 +6630,5 @@ export const shoesSelectOptions = [ ], }, ] as const + +export const canAddJpnBuildsIds = ["312082701865713665"] as string[] diff --git a/graphql-schemas/build.js b/graphql-schemas/build.js index e3905d94d..28fbed285 100644 --- a/graphql-schemas/build.js +++ b/graphql-schemas/build.js @@ -54,6 +54,7 @@ const typeDef = gql` updatedAt: String! top: Boolean! discord_user: User! + jpn: Boolean } type BuildCollection { builds: [Build!]! @@ -119,7 +120,7 @@ const resolvers = { ) return Build.find(getBuildSearchCriteria(args)) - .sort({ top: "desc", updatedAt: "desc" }) + .sort({ top: "desc", jpn: "desc", updatedAt: "desc" }) .populate("discord_user") .catch((e) => { throw new UserInputError(e.message, { @@ -185,12 +186,19 @@ const resolvers = { invalidArgs: args, }) }) - if (existingBuilds.length >= 100) + if ( + existingBuilds.length >= 100 && + ctx.user.discord_id !== process.env.GANBA_ID + ) throw new UserInputError("Can't have more than 100 builds per user.", { invalidArgs: args, }) - const build = new Build({ ...args, discord_id: ctx.user.discord_id }) + const build = new Build({ + ...args, + discord_id: ctx.user.discord_id, + jpn: ctx.user.discord_id === process.env.GANBA_ID, + }) return build.save().catch((e) => { throw ( (new UserInputError(), diff --git a/mongoose-models/build.js b/mongoose-models/build.js index 7b109d4f4..2e5084762 100644 --- a/mongoose-models/build.js +++ b/mongoose-models/build.js @@ -13,6 +13,7 @@ const buildSchema = new mongoose.Schema( shoes: { type: [String], required: true }, shoesItem: { type: String, required: false }, top: { type: Boolean }, + jpn: { type: Boolean }, }, { timestamps: true } ) diff --git a/package-lock.json b/package-lock.json index a9f93b3cd..c1785e4c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -183,9 +183,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz", - "integrity": "sha512-EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==", + "version": "4.17.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.8.tgz", + "integrity": "sha512-1SJZ+R3Q/7mLkOD9ewCBDYD2k0WyZQtWYqF/2VvoNN2/uhI49J9CDN4OAm+wGMA0DbArA4ef27xl4+JwMtGggw==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -264,9 +264,9 @@ "integrity": "sha512-4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==" }, "@types/node": { - "version": "14.0.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz", - "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==" + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", + "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==" }, "@types/node-fetch": { "version": "2.5.7", @@ -297,9 +297,9 @@ } }, "@types/ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==", + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz", + "integrity": "sha512-Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==", "requires": { "@types/node": "*" } @@ -376,43 +376,43 @@ } }, "apollo-cache-control": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz", - "integrity": "sha512-dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz", + "integrity": "sha512-6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==", "requires": { - "apollo-server-env": "^2.4.4", - "apollo-server-plugin-base": "^0.9.0" + "apollo-server-env": "^2.4.5", + "apollo-server-plugin-base": "^0.9.1" } }, "apollo-datasource": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.1.tgz", - "integrity": "sha512-h++/jQAY7GA+4TBM+7ezvctFmmGNLrAPf51KsagZj+NkT9qvxp585rdsuatynVbSl59toPK2EuVmc6ilmQHf+g==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz", + "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==", "requires": { - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4" + "apollo-server-caching": "^0.5.2", + "apollo-server-env": "^2.4.5" } }, "apollo-engine-reporting": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.2.0.tgz", - "integrity": "sha512-FmfWTpyEATO392QHcot3PNMrxNhEJ4Kq+QiYY263vN/OBLZQ5zpkFY25iB6gVuiJoz3NUkByhxq5f/XjarJVvA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.2.1.tgz", + "integrity": "sha512-HPwf70p4VbxKEagHYWTwldqfYNekBE33BXcryHI9owxMm5B8/vutQfx67+4Bf351kOpndCG9I91aOiFBfC2/iQ==", "requires": { - "apollo-engine-reporting-protobuf": "^0.5.1", + "apollo-engine-reporting-protobuf": "^0.5.2", "apollo-graphql": "^0.4.0", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4", - "apollo-server-errors": "^2.4.1", - "apollo-server-plugin-base": "^0.9.0", - "apollo-server-types": "^0.5.0", + "apollo-server-caching": "^0.5.2", + "apollo-server-env": "^2.4.5", + "apollo-server-errors": "^2.4.2", + "apollo-server-plugin-base": "^0.9.1", + "apollo-server-types": "^0.5.1", "async-retry": "^1.2.1", "uuid": "^8.0.0" } }, "apollo-engine-reporting-protobuf": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz", - "integrity": "sha512-TSfr9iAaInV8dhXkesdcmqsthRkVcJkzznmiM+1Ob/GScK7r6hBYCjVDt2613EHAg9SUzTOltIKlGD+N+GJRUw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz", + "integrity": "sha512-4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg==", "requires": { "@apollo/protobufjs": "^1.0.3" } @@ -449,45 +449,45 @@ } }, "apollo-server": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.15.0.tgz", - "integrity": "sha512-Qx9VT3kOgJ6WVZlbpUl29I9pyfwFTY4SbZm9npuJd0v+8kVn2YijHB8DEDJ2B/6XP8WCKtq2W0W2RK5Kb1laHQ==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.15.1.tgz", + "integrity": "sha512-aXBbhN7tgeZibTOy0R4pJEtTLN5DiuOGQvh1aHI/MoULG2eS+zAwEasXtBfksOy0xMRUzWtBYHoxI7e++d1Wxg==", "requires": { - "apollo-server-core": "^2.15.0", - "apollo-server-express": "^2.15.0", + "apollo-server-core": "^2.15.1", + "apollo-server-express": "^2.15.1", "express": "^4.0.0", "graphql-subscriptions": "^1.0.0", "graphql-tools": "^4.0.0" } }, "apollo-server-caching": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz", - "integrity": "sha512-L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz", + "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==", "requires": { "lru-cache": "^5.0.0" } }, "apollo-server-core": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.15.0.tgz", - "integrity": "sha512-PwNm/G5IXReev7E0ZaRAekQ7pN9BTuXH8c2QVgfMGMno3XiN5Dj+1DXYQthpwNJch0y5zhhLcb/JbClijgSEsA==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.15.1.tgz", + "integrity": "sha512-ZRSK3uVPS6YkIV3brm2CjzVphg6NHY0PRhFojZD8BjoQlGo3+pPRP1IHFDvC3UzybGWfyCelcfF4YiVqh4GJHw==", "requires": { "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.26", "@types/graphql-upload": "^8.0.0", "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.11.0", - "apollo-datasource": "^0.7.1", - "apollo-engine-reporting": "^2.2.0", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4", - "apollo-server-errors": "^2.4.1", - "apollo-server-plugin-base": "^0.9.0", - "apollo-server-types": "^0.5.0", - "apollo-tracing": "^0.11.0", + "apollo-cache-control": "^0.11.1", + "apollo-datasource": "^0.7.2", + "apollo-engine-reporting": "^2.2.1", + "apollo-server-caching": "^0.5.2", + "apollo-server-env": "^2.4.5", + "apollo-server-errors": "^2.4.2", + "apollo-server-plugin-base": "^0.9.1", + "apollo-server-types": "^0.5.1", + "apollo-tracing": "^0.11.1", "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.12.3", + "graphql-extensions": "^0.12.4", "graphql-tag": "^2.9.2", "graphql-tools": "^4.0.0", "graphql-upload": "^8.0.2", @@ -498,23 +498,23 @@ } }, "apollo-server-env": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz", - "integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz", + "integrity": "sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==", "requires": { "node-fetch": "^2.1.2", "util.promisify": "^1.0.0" } }, "apollo-server-errors": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz", - "integrity": "sha512-7oEd6pUxqyWYUbQ9TA8tM0NU/3aGtXSEibo6+txUkuHe7QaxfZ2wHRp+pfT1LC1K3RXYjKj61/C2xEO19s3Kdg==" + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz", + "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==" }, "apollo-server-express": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.15.0.tgz", - "integrity": "sha512-ECptVIrOVW2cmMWvqtpkZfyZrQL8yTSgbVvP4M8qcPV/3XxDJa6444zy7vxqN7lyYl8IJAsg/IwC0vodoXe//A==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.15.1.tgz", + "integrity": "sha512-anNb9HJo+KTpgvUqiPOjEl4wPq8y8NmWaIUz/QqPZlhIEDdf7wd/kQo3Sdbov++7J9JNJx6Ownnvw+wxfogUgA==", "requires": { "@apollographql/graphql-playground-html": "1.6.26", "@types/accepts": "^1.3.5", @@ -522,8 +522,8 @@ "@types/cors": "^2.8.4", "@types/express": "4.17.4", "accepts": "^1.3.5", - "apollo-server-core": "^2.15.0", - "apollo-server-types": "^0.5.0", + "apollo-server-core": "^2.15.1", + "apollo-server-types": "^0.5.1", "body-parser": "^1.18.3", "cors": "^2.8.4", "express": "^4.17.1", @@ -548,30 +548,30 @@ } }, "apollo-server-plugin-base": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz", - "integrity": "sha512-LWcPrsy2+xqwlNseh/QaGa/MPNopS8c4qGgh0g0cAn0lZBRrJ9Yab7dq+iQ6vdUBwIhUWYN6s9dwUWCZw2SL8g==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz", + "integrity": "sha512-kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ==", "requires": { - "apollo-server-types": "^0.5.0" + "apollo-server-types": "^0.5.1" } }, "apollo-server-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.0.tgz", - "integrity": "sha512-zhtsqqqfdeoJQAfc41Sy6WnnBVxKNgZ34BKXf/Q+kXmw7rbZ/B5SG3SJMvj1iFsbzZxILmWdUsE9aD20lEr0bg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz", + "integrity": "sha512-my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==", "requires": { - "apollo-engine-reporting-protobuf": "^0.5.1", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4" + "apollo-engine-reporting-protobuf": "^0.5.2", + "apollo-server-caching": "^0.5.2", + "apollo-server-env": "^2.4.5" } }, "apollo-tracing": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.0.tgz", - "integrity": "sha512-I9IFb/8lkBW8ZwOAi4LEojfT7dMfUSkpnV8LHQI8Rcj0HtzL9HObQ3woBmzyGHdGHLFuD/6/VHyFD67SesSrJg==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.1.tgz", + "integrity": "sha512-l7g+uILw7v32GA46IRXIx5XXbZhFI96BhSqrGK9yyvfq+NMcvVZrj3kIhRImPGhAjMdV+5biA/jztabElAbDjg==", "requires": { - "apollo-server-env": "^2.4.4", - "apollo-server-plugin-base": "^0.9.0" + "apollo-server-env": "^2.4.5", + "apollo-server-plugin-base": "^0.9.1" } }, "apollo-utilities": { @@ -685,6 +685,11 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -1255,6 +1260,11 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -1416,18 +1426,18 @@ "dev": true }, "graphql": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz", - "integrity": "sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q==" + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.2.0.tgz", + "integrity": "sha512-tsceRyHfgzZo+ee0YK3o8f0CR0cXAXxRlxoORWFo/CoM1bVy3UXGWeyzBcf+Y6oqPvO27BDmOEVATcunOO/MrQ==" }, "graphql-extensions": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.3.tgz", - "integrity": "sha512-W7iT0kzlwTiZU7fXfw9IgWnsqVj7EFLd0/wVcZZRAbR8L3f4+YsGls0oxKdsrvYBnbG347BXKQmIyo6GTEk4XA==", + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz", + "integrity": "sha512-GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag==", "requires": { "@apollographql/apollo-tools": "^0.4.3", - "apollo-server-env": "^2.4.4", - "apollo-server-types": "^0.5.0" + "apollo-server-env": "^2.4.5", + "apollo-server-types": "^0.5.1" } }, "graphql-subscriptions": { @@ -1505,13 +1515,13 @@ "dev": true }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", "requires": { "depd": "~1.1.2", "inherits": "2.0.4", - "setprototypeof": "1.1.1", + "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" } @@ -1847,9 +1857,9 @@ } }, "mongoose": { - "version": "5.9.20", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.20.tgz", - "integrity": "sha512-vRP6Csu2obzSl3ed7kTQMrolBNgweiRJ/eBU1PSe/rJfjqWS1oqDE2D1ZPGxkVOsKXs7Gyd84GAXerj8IB2UWg==", + "version": "5.9.21", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.21.tgz", + "integrity": "sha512-HQUemnKJdrE8ig+d3RTeOan6DWasmda8V97fs1ymozTNSuh2eGaf4D92/BrXYCw5QTgE/Ff5SxalndfgLn3DGg==", "requires": { "bson": "^1.1.4", "kareem": "2.3.1", @@ -2022,9 +2032,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-keys": { "version": "1.1.1", @@ -2246,6 +2256,11 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -2403,10 +2418,27 @@ "statuses": "~1.5.0" }, "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -2422,9 +2454,9 @@ } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "sha.js": { "version": "2.4.11", diff --git a/package.json b/package.json index 3011f6d92..292f0507b 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "author": "Sendou", "license": "ISC", "dependencies": { - "apollo-server": "^2.15.0", - "apollo-server-express": "^2.15.0", + "apollo-server": "^2.15.1", + "apollo-server-express": "^2.15.1", "axios": "^0.19.2", "btoa": "^1.2.1", "compression": "^1.7.4", @@ -25,9 +25,9 @@ "cors": "^2.8.5", "dotenv": "^8.2.0", "express-session": "^1.17.1", - "graphql": "^15.1.0", + "graphql": "^15.2.0", "lodash": "^4.17.15", - "mongoose": "^5.9.20", + "mongoose": "^5.9.21", "mongoose-unique-validator": "^2.0.3", "node-fetch": "^2.6.0", "passport": "^0.4.1",