ganba time

This commit is contained in:
Sendou
2020-07-02 18:57:18 +03:00
parent 86472716cd
commit 292ebdf0f6
12 changed files with 205 additions and 148 deletions

View File

@@ -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",

View File

@@ -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"
},

View File

@@ -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<BuildCardProps & BoxProps> = ({
)}
/>
)}
{build.jpn && <Flag code="jp" size="32" />}
</Box>
<Flex alignItems="center">
<Box

View File

@@ -13,6 +13,7 @@ import { useTranslation } from "react-i18next"
interface BuildTabProps {
builds: Build[]
canModifyBuilds: boolean
unlimitedBuilds: boolean
}
type ExistingGearObject = Record<
@@ -33,7 +34,11 @@ const buildsReducer = (acc: ExistingGearObject, cur: Build) => {
return acc
}
const BuildTab: React.FC<BuildTabProps> = ({ builds, canModifyBuilds }) => {
const BuildTab: React.FC<BuildTabProps> = ({
builds,
canModifyBuilds,
unlimitedBuilds,
}) => {
const [APView] = useLocalStorage<boolean>("prefersAPView")
const [formOpen, setFormOpen] = useState(false)
const [buildBeingEdited, setBuildBeingEdited] = useState<Build | null>(null)
@@ -43,6 +48,8 @@ const BuildTab: React.FC<BuildTabProps> = ({ 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<BuildTabProps> = ({ builds, canModifyBuilds }) => {
buildBeingEdited={buildBeingEdited}
/>
)}
{canModifyBuilds && builds.length < 100 && (
{canModifyBuilds && canAddBuilds && (
<Button onClick={() => setFormOpen(true)}>
{t("users;Add build")}
</Button>
)}
{canModifyBuilds && builds.length >= 100 && (
{canModifyBuilds && !canAddBuilds && (
<Alert status="info">{t("users;tooManyBuilds")}</Alert>
)}
<Box display="flex" flexWrap="wrap" mt="1em">

View File

@@ -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<RouteComponentProps & UserPageProps> = ({ id }) => {
return weapons.indexOf(a.weapon) - weapons.indexOf(b.weapon)
})}
canModifyBuilds={userLean?.discord_id === user.discord_id}
unlimitedBuilds={canAddJpnBuildsIds.includes(
userData.user!.discord_id
)}
/>
</TabPanel>
),

View File

@@ -15,6 +15,7 @@ export const SEARCH_FOR_BUILDS: DocumentNode = gql`
shoesItem
updatedAt
top
jpn
discord_user {
username
discriminator

View File

@@ -150,6 +150,7 @@ export interface Build {
shoesItem?: ShoesGear
updatedAt: string
top: boolean
jpn: boolean
discord_user?: {
username: string
discriminator: string

View File

@@ -6630,3 +6630,5 @@ export const shoesSelectOptions = [
],
},
] as const
export const canAddJpnBuildsIds = ["312082701865713665"] as string[]

View File

@@ -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(),

View File

@@ -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 }
)

230
package-lock.json generated
View File

@@ -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",

View File

@@ -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",