markdown updates

This commit is contained in:
Sendou 2020-04-08 16:33:05 +03:00
parent 61602a2390
commit ce1ab08dd6
12 changed files with 300 additions and 567 deletions

View File

@ -1,15 +1,20 @@
import React, { useContext } from "react"
import React, { useContext, useState } from "react"
import { RouteComponentProps } from "@reach/router"
import PageHeader from "../common/PageHeader"
import { Box, Link, Flex } from "@chakra-ui/core"
import { Box, Link, Flex, Collapse } from "@chakra-ui/core"
import MyThemeContext from "../../themeContext"
import WeaponImage from "../common/WeaponImage"
import Emoji from "../elements/Emoji"
import Button from "../elements/Button"
import { weaponCodes, abilitiesGameOrder, gearCodes } from "../../utils/lists"
interface MarkdownHelpPageProps {}
const MarkdownHelpPage: React.FC<RouteComponentProps> = () => {
const { themeColorWithShade } = useContext(MyThemeContext)
const [showWeapons, setShowWeapons] = useState(false)
const [showAbilities, setShowAbilities] = useState(false)
const [showGear, setShowGear] = useState(false)
return (
<>
<PageHeader title="Markdown Help" />
@ -33,22 +38,6 @@ const MarkdownHelpPage: React.FC<RouteComponentProps> = () => {
We also support certain special emoji. Below listed are the groups and
few representatives as example:
</p>
<p style={{ marginTop: "0.5em" }}>
<b>Weapon emoji</b>
<Flex flexDir="column">
<Box>
:luna_blaster: ->{" "}
<WeaponImage size="SMALL" englishName="Luna Blaster" />
</Box>
<Box>
:.96_gal: -> <WeaponImage size="SMALL" englishName=".96 Gal" />
</Box>
<Box>
:custom_e-liter_4k_scope: ->{" "}
<WeaponImage size="SMALL" englishName="Custom E-liter 4K Scope" />
</Box>
</Flex>
</p>
<p style={{ marginTop: "0.5em" }}>
<b>Mode emoji</b>
<Flex flexDir="column">
@ -67,17 +56,31 @@ const MarkdownHelpPage: React.FC<RouteComponentProps> = () => {
</Flex>
</p>
<p style={{ marginTop: "0.5em" }}>
<b>Ability emoji</b>
<b>Weapon emoji</b>
<Flex flexDir="column">
<Box>
:ssu: -> <Emoji value=":ssu:" />
:luna_blaster: ->{" "}
<WeaponImage size="SMALL" englishName="Luna Blaster" />
</Box>
<Box>
:t: -> <Emoji value=":t:" />
:96_gal: -> <WeaponImage size="SMALL" englishName=".96 Gal" />
</Box>
<Box>
:rp: -> <Emoji value=":rp:" />
:custom_e-liter_4k_scope: ->{" "}
<WeaponImage size="SMALL" englishName="Custom E-liter 4K Scope" />
</Box>
<Box w="250px" my="0.5em">
<Button onClick={() => setShowWeapons(!showWeapons)}>
{showWeapons ? "Hide" : "Show all"}
</Button>
</Box>
<Collapse mt={4} isOpen={showWeapons}>
<Flex flexDir="column">
{Object.keys(weaponCodes).map((code) => (
<Box>:{code}:</Box>
))}
</Flex>
</Collapse>
</Flex>
</p>
<p style={{ marginTop: "0.5em" }}>
@ -92,6 +95,18 @@ const MarkdownHelpPage: React.FC<RouteComponentProps> = () => {
<Box>
:rp: -> <Emoji value=":rp:" />
</Box>
<Box w="250px" my="0.5em">
<Button onClick={() => setShowAbilities(!showAbilities)}>
{showAbilities ? "Hide" : "Show all"}
</Button>
</Box>
<Collapse mt={4} isOpen={showAbilities}>
<Flex flexDir="column">
{abilitiesGameOrder.map((code) => (
<Box>:{code.toLowerCase()}:</Box>
))}
</Flex>
</Collapse>
</Flex>
</p>
<p style={{ marginTop: "0.5em" }}>
@ -106,6 +121,18 @@ const MarkdownHelpPage: React.FC<RouteComponentProps> = () => {
<Box>
:black_norimaki_750s: -> <Emoji value=":black_norimaki_750s:" />
</Box>
<Box w="250px" my="0.5em">
<Button onClick={() => setShowGear(!showGear)}>
{showGear ? "Hide" : "Show all"}
</Button>
</Box>
<Collapse mt={4} isOpen={showGear}>
<Flex flexDir="column">
{Object.keys(gearCodes).map((code) => (
<Box>:{code}:</Box>
))}
</Flex>
</Collapse>
</Flex>
</p>
</Box>

View File

@ -18,6 +18,7 @@ const MapPlannerPage = lazy(() => import("../plans/MapPlannerPage"))
const FreeAgentsPage = lazy(() => import("../freeagents/FreeAgentsPage"))
const TeamPage = lazy(() => import("../team/TeamPage"))
const XSearch = lazy(() => import("../xsearch/Top500BrowserPage"))
const XTrends = lazy(() => import("../xtrends/XTrendsPage"))
const PlusPage = lazy(() => import("../plus/PlusPage"))
const DraftCupPage = lazy(() => import("../plusdraftcup/DraftCupPage"))
const DraftCupDetails = lazy(() => import("../plusdraftcup/DraftCupDetails"))
@ -45,6 +46,7 @@ const Routes: React.FC = () => {
<TournamentsDetailsPage path="/tournaments/:id" />
<FreeAgentsPage path="/freeagents" />
<XSearch path="/xsearch" />
<XTrends path="/xtrends" />
<About path="/about" />
<Links path="/links" />
<Access path="/access" />

View File

@ -0,0 +1,26 @@
import React from "react"
import { RouteComponentProps } from "@reach/router"
import { useQuery } from "@apollo/react-hooks"
import { XTrendsData, X_TRENDS } from "../../graphql/queries/xTrends"
import Loading from "../common/Loading"
import Error from "../common/Error"
import PageHeader from "../common/PageHeader"
interface XTrendsPageProps {}
const XTrendsPage: React.FC<RouteComponentProps> = () => {
const { data, error, loading } = useQuery<XTrendsData>(X_TRENDS)
if (error) return <Error errorMessage={error.message} />
if (loading) return <Loading />
console.log("xtrends", data!.xTrends)
return (
<>
<PageHeader title="X Trends" />
{data!.xTrends.length}
</>
)
}
export default XTrendsPage

View File

@ -1,16 +0,0 @@
import { gql } from "apollo-boost"
export const searchForTrend = gql`
query searchForTrend($weapon: String!) {
searchForTrend(weapon: $weapon) {
weapon
counts {
year
SZ
TC
RM
CB
}
}
}
`

View File

@ -0,0 +1,29 @@
import { gql, DocumentNode } from "apollo-boost"
export interface XTrendsData {
xTrends: {
weapon: string
counts: {
year: number
SZ: number[]
TC: number[]
RM: number[]
CB: number[]
}[]
}[]
}
export const X_TRENDS: DocumentNode = gql`
query xTrends {
xTrends {
weapon
counts {
year
SZ
TC
RM
CB
}
}
}
`

View File

@ -1,123 +0,0 @@
//https://github.com/mustaphaturhan/chakra-ui-markdown-renderer/blob/master/src/index.js
import React from "react"
import {
Text,
Code,
Divider,
Link,
List,
Checkbox,
ListItem,
Heading,
Image,
} from "@chakra-ui/core"
function ChakraUIRenderer() {
function getCoreProps(props) {
return props["data-sourcepos"]
? { "data-sourcepos": props["data-sourcepos"] }
: {}
}
return {
paragraph: (props) => {
const { children } = props
return <Text mb={2}>{children}</Text>
},
emphasis: (props) => {
const { children } = props
return <Text as="em">{children}</Text>
},
blockquote: (props) => {
const { children } = props
return <Code p={2}>{children}</Code>
},
code: (props) => {
const { language, value } = props
const className = language && `language-${language}`
return (
<pre {...getCoreProps(props)}>
<Code p={2} className={className || null}>
{value}
</Code>
</pre>
)
},
delete: (props) => {
const { children } = props
return <Text as="del">{children}</Text>
},
thematicBreak: Divider,
link: Link,
img: Image,
linkReference: Link,
imageReference: Image,
text: (props) => {
const { children } = props
return <Text as="span">{children}</Text>
},
list: (props) => {
const { start, ordered, children, depth } = props
const attrs = getCoreProps(props)
if (start !== null && start !== 1 && start !== undefined) {
attrs.start = start.toString()
}
let styleType = "disc"
if (ordered) styleType = "decimal"
if (depth === 1) styleType = "circle"
return (
<List
spacing={24}
as={ordered ? "ol" : "ul"}
styleType={styleType}
pl={4}
{...attrs}
>
{children}
</List>
)
},
listItem: (props) => {
const { children, checked } = props
let checkbox = null
if (checked !== null && checked !== undefined) {
checkbox = (
<Checkbox isChecked={checked} isReadOnly>
{children}
</Checkbox>
)
}
return (
<ListItem
{...getCoreProps(props)}
listStyleType={checked !== null ? "none" : "inherit"}
>
{checkbox || children}
</ListItem>
)
},
definition: () => null,
heading: (props) => {
const { level, children } = props
const sizes = ["2xl", "xl", "lg", "md", "sm", "xs"]
return (
<Heading
my={4}
as={`h${level}`}
size={sizes[`${level - 1}`]}
{...getCoreProps(props)}
fontFamily="'Rubik', cursive"
>
{children}
</Heading>
)
},
inlineCode: (props) => {
const { children } = props
return <Code {...getCoreProps(props)}>{children}</Code>
},
}
}
export default ChakraUIRenderer

View File

@ -4,9 +4,9 @@ export const weaponCodes: Record<string, Weapon> = {
"sploosh-o-matic": "Sploosh-o-matic",
"neo_sploosh-o-matic": "Neo Sploosh-o-matic",
"sploosh-o-matic_7": "Sploosh-o-matic 7",
"splattershot_jr.": "Splattershot Jr.",
"custom_splattershot_jr.": "Custom Splattershot Jr.",
"kensa_splattershot_jr.": "Kensa Splattershot Jr.",
splattershot_jr: "Splattershot Jr.",
custom_splattershot_jr: "Custom Splattershot Jr.",
kensa_splattershot_jr: "Kensa Splattershot Jr.",
"splash-o-matic": "Splash-o-matic",
"neo_splash-o-matic": "Neo Splash-o-matic",
aerospray_mg: "Aerospray MG",
@ -15,17 +15,17 @@ export const weaponCodes: Record<string, Weapon> = {
splattershot: "Splattershot",
tentatek_splattershot: "Tentatek Splattershot",
kensa_splattershot: "Kensa Splattershot",
".52_gal": ".52 Gal",
".52_gal_deco": ".52 Gal Deco",
"kensa_.52_gal": "Kensa .52 Gal",
"n-zap_'85": "N-ZAP '85",
"n-zap_'89": "N-ZAP '89",
"n-zap_'83": "N-ZAP '83",
"52_gal": ".52 Gal",
"52_gal_deco": ".52 Gal Deco",
kensa_52_gal: "Kensa .52 Gal",
"n-zap_85": "N-ZAP '85",
"n-zap_89": "N-ZAP '89",
"n-zap_83": "N-ZAP '83",
splattershot_pro: "Splattershot Pro",
forge_splattershot_pro: "Forge Splattershot Pro",
kensa_splattershot_pro: "Kensa Splattershot Pro",
".96_gal": ".96 Gal",
".96_gal_deco": ".96 Gal Deco",
"96_gal": ".96 Gal",
"96_gal_deco": ".96 Gal Deco",
jet_squelcher: "Jet Squelcher",
custom_jet_squelcher: "Custom Jet Squelcher",
"l-3_nozzlenose": "L-3 Nozzlenose",
@ -209,7 +209,7 @@ export const gearCodes: Record<string, HeadGear | ClothingGear | ShoesGear> = {
hula_punk_shirt: "Hula Punk Shirt",
prune_parashooter: "Prune Parashooter",
red_hula_punk_with_tie: "Red Hula Punk with Tie",
"rockin'_leather_jacket": "Rockin' Leather Jacket",
rockin_leather_jacket: "Rockin' Leather Jacket",
annaki_arachno_boots: "Annaki Arachno Boots",
annaki_habaneros: "Annaki Habaneros",
annaki_tigers: "Annaki Tigers",
@ -345,8 +345,8 @@ export const gearCodes: Record<string, HeadGear | ClothingGear | ShoesGear> = {
octoleet_goggles: "Octoleet Goggles",
sailor_cap: "Sailor Cap",
welding_mask: "Welding Mask",
"worker's_cap": "Worker's Cap",
"worker's_head_towel": "Worker's Head Towel",
workers_cap: "Worker's Cap",
workers_head_towel: "Worker's Head Towel",
anchor_life_vest: "Anchor Life Vest",
crustwear_xxl: "Crustwear XXL",
dev_uniform: "Dev Uniform",
@ -541,10 +541,10 @@ export const gearCodes: Record<string, HeadGear | ClothingGear | ShoesGear> = {
hockey_mask: "Hockey Mask",
koshien_bandana: "Koshien Bandana",
kyonshi_hat: "Kyonshi Hat",
"li'l_devil_horns": "Li'l Devil Horns",
lil_devil_horns: "Li'l Devil Horns",
"mecha_head_-_htr": "Mecha Head - HTR",
"new_year's_glasses_dx": "New Year's Glasses DX",
"painter's_mask": "Painter's Mask",
new_years_glasses_dx: "New Year's Glasses DX",
painters_mask: "Painter's Mask",
squid_facemask: "Squid Facemask",
twisty_headband: "Twisty Headband",
white_headband: "White Headband",
@ -669,7 +669,7 @@ export const gearCodes: Record<string, HeadGear | ClothingGear | ShoesGear> = {
positive_longcuff_sweater: "Positive Longcuff Sweater",
pullover_coat: "Pullover Coat",
short_knit_layers: "Short Knit Layers",
"toni_k._baseball_jersey": "Toni K. Baseball Jersey",
toni_k_baseball_jersey: "Toni K. Baseball Jersey",
"arrow_pull-ons": "Arrow Pull-Ons",
"toni_kensa_black_hi-tops": "Toni Kensa Black Hi-Tops",
toni_kensa_soccer_shoes: "Toni Kensa Soccer Shoes",

View File

@ -1,278 +0,0 @@
import { useReducer, useEffect } from "react"
import { useQuery } from "@apollo/react-hooks"
import { searchForTrend } from "../graphql/queries/seachForTrend"
const month = []
month[0] = null
month[1] = "Jan"
month[2] = "Feb"
month[3] = "Mar"
month[4] = "Apr"
month[5] = "May"
month[6] = "Jun"
month[7] = "Jul"
month[8] = "Aug"
month[9] = "Sep"
month[10] = "Oct"
month[11] = "Nov"
month[12] = "Dec"
const patches = {
5: {
2018: {
name: "3.0",
link: "https://splatoonwiki.org/wiki/Version_3.0.0_(Splatoon_2)",
},
2019: {
name: "4.8",
link: "https://splatoonwiki.org/wiki/Version_4.8.0_(Splatoon_2)",
},
},
6: {
2018: {
name: "3.1",
link: "https://splatoonwiki.org/wiki/Version_3.1.0_(Splatoon_2)",
},
2019: {
name: "4.9",
link: "https://splatoonwiki.org/wiki/Version_4.9.0_(Splatoon_2)",
},
},
7: {
2018: {
name: "3.2",
link: "https://splatoonwiki.org/wiki/Version_3.2.0_(Splatoon_2)",
},
2019: {
name: "5.0",
link: "https://splatoonwiki.org/wiki/Version_5.0.0_(Splatoon_2)",
},
},
9: {
2018: {
name: "4.0",
link: "https://splatoonwiki.org/wiki/Version_4.0.0_(Splatoon_2)",
},
},
10: {
2018: {
name: "4.1",
link: "https://splatoonwiki.org/wiki/Version_4.1.0_(Splatoon_2)",
},
},
11: {
2018: {
name: "4.2",
link: "https://splatoonwiki.org/wiki/Version_4.2.0_(Splatoon_2)",
},
},
12: {
2018: {
name: "4.3",
link: "https://splatoonwiki.org/wiki/Version_4.3.0_(Splatoon_2)",
},
},
1: {
2019: {
name: "4.4",
link: "https://splatoonwiki.org/wiki/Version_4.4.0_(Splatoon_2)",
},
},
3: {
2019: {
name: "4.5",
link: "https://splatoonwiki.org/wiki/Version_4.5.0_(Splatoon_2)",
},
},
4: {
2019: {
name: "4.6+4.7",
link: "https://splatoonwiki.org/wiki/List_of_updates_in_Splatoon_2",
},
},
}
const presetColors = [
"#FF00FF",
"#008000",
"#FF0000",
"#0000FF",
"#FFA500",
"#800080",
"#A52A2A",
"#1BC5CD",
"#000080",
"#5BCCA0",
]
const setPlotDataInitial = () => {
const arr_to_return = []
for (let i = 5; i < 13; i++) {
if (patches.hasOwnProperty(i) && patches[i].hasOwnProperty(2018)) {
arr_to_return.push({
name: i,
year: 2018,
xLabel: month[i],
patch: patches[i][2018].name,
})
} else {
arr_to_return.push({ name: i, year: 2018, xLabel: month[i] })
}
}
const d = new Date()
const year = d.getFullYear()
const currentMonth = d.getMonth() + 1
for (let i = 2019; i < year + 1; i++) {
for (let j = 1; j < 13; j++) {
// break the loop when we reach the future
if (i === year && j === currentMonth) break
const xLabel = j === 1 ? `Jan (${year})` : month[j]
if (patches.hasOwnProperty(j) && patches[j].hasOwnProperty(i)) {
arr_to_return.push({
name: j,
year: i,
xLabel,
patch: patches[j][i].name,
})
} else {
arr_to_return.push({ name: j, year: i, xLabel })
}
}
}
return arr_to_return
}
const mergeModeArrays = countObj => {
const sz_arr = countObj["SZ"]
const tc_arr = countObj["TC"]
const rm_arr = countObj["RM"]
const cb_arr = countObj["CB"]
const arr_to_return = new Array(12).fill(0)
for (let i = 1; i < 13; i++) {
arr_to_return[i] = sz_arr[i] + tc_arr[i] + rm_arr[i] + cb_arr[i]
}
return arr_to_return
}
// monthIndex is between 1 and 12 (inclusive)
const resolveStartIndex = (monthIndex, year) => {
// resolves start index for an array where index 0 is always May 2018
if (year === 2018) {
return monthIndex - 5
} else if (year === 2019) {
return 7 + monthIndex
} else {
return 7 + monthIndex + (year - 2019) * 12
}
}
const getColor = state => {
if (state.keys.length < 9) {
return presetColors[state.keys.length]
}
return "#000000".replace(/0/g, function() {
return (~~(Math.random() * 16)).toString(16)
})
}
const reducer = (state, action) => {
switch (action.type) {
case "add":
const trend = action.trendDocument
const mode = action.mode
const modeLabel = mode === "ALL" ? "" : ` (${mode})`
const weapon = `${action.trendDocument.weapon}${modeLabel}`
// don't add duplicate plots
if (state.keys.indexOf(weapon) !== -1) return state
const toPlotData = [...state.data]
for (let index = 0; index < trend.counts.length; index++) {
let year = trend.counts[index].year
let year_arr = null
if (mode === "ALL") {
year_arr = mergeModeArrays(trend.counts[index])
} else {
year_arr = trend.counts[index][mode]
}
for (let i = 1; i < 13; i++) {
// if year is 2018 skipping to the index where values are found
if (year === 2018 && i < 5) {
i = 4
continue
}
const plotIndex = resolveStartIndex(i, year)
if (plotIndex === toPlotData.length) break
toPlotData[plotIndex][weapon] = year_arr[i]
}
}
const keyObj = {
weapon,
color: getColor(state),
}
return { data: toPlotData, keys: [...state.keys, keyObj] }
case "delete":
const weaponToDelete = action.weapon
const newKeys = [...state.keys].filter(k => k.weapon !== weaponToDelete)
return { data: state.data, keys: newKeys }
case "combine":
const weaponLeft = action.left
const weaponRight = action.right
const newKey = `${weaponLeft} + ${weaponRight}`
const newKeysWithCombined = [
...state.keys,
{ weapon: newKey, color: getColor(state) },
].filter(k => k.weapon !== weaponLeft && k.weapon !== weaponRight)
const newDataWithCombined = [...state.data].map(d => {
const dataObj = { ...d }
let weaponLeftCount = 0
let weaponRightCount = 0
if (dataObj.hasOwnProperty(weaponLeft))
weaponLeftCount = dataObj[weaponLeft]
if (dataObj.hasOwnProperty(weaponRight))
weaponRightCount = dataObj[weaponRight]
dataObj[newKey] = weaponLeftCount + weaponRightCount
delete dataObj[weaponLeft]
delete dataObj[weaponRight]
return dataObj
})
return { data: newDataWithCombined, keys: newKeysWithCombined }
case "randomizeColor":
const keysWithNewColor = [...state.keys].map(k => {
if (k.weapon !== action.weapon) {
return k
}
return {
...k,
color: "#000000".replace(/0/g, function() {
return (~~(Math.random() * 16)).toString(16)
}),
}
})
return { data: state.data, keys: keysWithNewColor }
default:
throw new Error()
}
}
export default function useTrends(weapon, mode) {
const [plotData, dispatch] = useReducer(reducer, {
data: setPlotDataInitial(),
keys: [],
})
// Skip query if there is no weapon provided
const { data, loading, error } = useQuery(searchForTrend, {
skip: !weapon,
variables: { weapon },
})
useEffect(() => {
if (loading || !data) return
dispatch({ type: "add", trendDocument: data.searchForTrend, mode })
}, [loading, data, mode])
return { loading, error, plotData, dispatch }
}

View File

@ -1,9 +1,10 @@
const { UserInputError, gql } = require("apollo-server-express")
const Trend = require("../mongoose-models/trend")
const weapons = require("../utils/weapons")
const typeDef = gql`
extend type Query {
searchForTrend(weapon: String!): Trend
xTrends: [Trend!]!
}
type Year {
year: Int!
@ -24,12 +25,10 @@ const typeDef = gql`
const resolvers = {
Query: {
searchForTrend: (root, args) => {
return Trend.findOne({ weapon: args.weapon }).catch(e => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
})
xTrends: async (root, args) => {
const trends = await Trend.find({})
return trends.filter((trend) => weapons.includes(trend.weapon))
},
},
}

269
package-lock.json generated
View File

@ -25,18 +25,18 @@
},
"dependencies": {
"@types/node": {
"version": "10.17.17",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz",
"integrity": "sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q=="
"version": "10.17.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.18.tgz",
"integrity": "sha512-DQ2hl/Jl3g33KuAUOcMrcAOtsbzb+y/ufakzAdeK9z/H/xsvkpbETZZbPNMIiQuk24f5ZRMCcZIViAwyFIiKmg=="
}
}
},
"@apollographql/apollo-tools": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.3.tgz",
"integrity": "sha512-CtC1bmohB1owdGMT2ZZKacI94LcPAZDN2WvCe+4ZXT5d7xO5PHOAb70EP/LcFbvnS8QI+pkYRSCGFQnUcv9efg==",
"version": "0.4.5",
"resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.5.tgz",
"integrity": "sha512-KOZC4Y+JM4iQQ7P4CVC878Ee7ya0QoHApGHu4klwjwZkYyOdWIvbML7JfXOUb/AfCO4DFmJfHCjRdAX09Ga6sQ==",
"requires": {
"apollo-env": "^0.6.1"
"apollo-env": "^0.6.2"
}
},
"@apollographql/graphql-playground-html": {
@ -123,6 +123,11 @@
"@types/node": "*"
}
},
"@types/content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz",
"integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg=="
},
"@types/cookies": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz",
@ -143,19 +148,20 @@
}
},
"@types/express": {
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz",
"integrity": "sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==",
"version": "4.17.4",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz",
"integrity": "sha512-DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==",
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "*",
"@types/qs": "*",
"@types/serve-static": "*"
}
},
"@types/express-serve-static-core": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz",
"integrity": "sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz",
"integrity": "sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==",
"requires": {
"@types/node": "*",
"@types/range-parser": "*"
@ -201,11 +207,12 @@
"integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw=="
},
"@types/koa": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz",
"integrity": "sha512-2UPelagNNW6bnc1I5kIzluCaheXRA9S+NyOdXEFFj9Az7jc15ek5V03kb8OTbb3tdZ5i2BIJObe86PhHvpMolg==",
"version": "2.11.3",
"resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz",
"integrity": "sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==",
"requires": {
"@types/accepts": "*",
"@types/content-disposition": "*",
"@types/cookies": "*",
"@types/http-assert": "*",
"@types/keygrip": "*",
@ -232,18 +239,24 @@
"integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
},
"@types/node": {
"version": "13.7.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.7.tgz",
"integrity": "sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg=="
"version": "13.11.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz",
"integrity": "sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ=="
},
"@types/node-fetch": {
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz",
"integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==",
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.5.tgz",
"integrity": "sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==",
"requires": {
"@types/node": "*"
"@types/node": "*",
"form-data": "^3.0.0"
}
},
"@types/qs": {
"version": "6.9.1",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.1.tgz",
"integrity": "sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw=="
},
"@types/range-parser": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
@ -267,9 +280,9 @@
}
},
"@wry/equality": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz",
"integrity": "sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==",
"version": "0.1.11",
"resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
"integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
"requires": {
"tslib": "^1.9.3"
}
@ -324,12 +337,12 @@
}
},
"apollo-cache-control": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.0.tgz",
"integrity": "sha512-iLT6IT4Ul5cMfBcJAvhpk3a7AD6fXqvFxNmJEPVapVJHbSKYIjra4PTis13sOyN5Y3WQS6a+NRFxAW8+hL3q3Q==",
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1.tgz",
"integrity": "sha512-9t2EcRevUrANuGhF5XUbKJEfnc6Jy2Rn7Y8nOIKlsEEC+AX7Ko4svWYTyyTxj0h0RXfiegY2nbz4sVry/pS3rA==",
"requires": {
"apollo-server-env": "^2.4.3",
"graphql-extensions": "^0.11.0"
"graphql-extensions": "^0.11.1"
}
},
"apollo-datasource": {
@ -342,18 +355,18 @@
}
},
"apollo-engine-reporting": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-1.7.0.tgz",
"integrity": "sha512-jsjSnoHrRmk4XXK4aFU17YSJILmWsilKRwIeN74QJsSxjn5SCVF4EI/ebf/MNrTHpft8EhShx+wdkAcOD9ivqA==",
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-1.7.1.tgz",
"integrity": "sha512-9ykddPxlC95R9CkkJaPaGriRbOGfzeKqqPXRAunyX1h4sG/8g+MJ/gGzmnNf63k6RvRUdRENCE83wPk2OeU+2A==",
"requires": {
"apollo-engine-reporting-protobuf": "^0.4.4",
"apollo-graphql": "^0.4.0",
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.3",
"apollo-server-errors": "^2.4.0",
"apollo-server-types": "^0.3.0",
"apollo-server-errors": "^2.4.1",
"apollo-server-types": "^0.3.1",
"async-retry": "^1.2.1",
"graphql-extensions": "^0.11.0"
"graphql-extensions": "^0.11.1"
}
},
"apollo-engine-reporting-protobuf": {
@ -365,22 +378,22 @@
}
},
"apollo-env": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.1.tgz",
"integrity": "sha512-B9BgpQGR1ndeDtb4Gtor0J4CITQ+OPACZrVW6lgStnljKEe9ZB76DZ1dAd3OCeizAswW6Lo9uvfK8jhVS5nBhQ==",
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.2.tgz",
"integrity": "sha512-Vb/doL1ZbzkNDJCQ6kYGOrphRx63rMERYo3MT2pzm2pNEdm6AK60InMgJaeh3RLK3cjGllOXFAgP8IY+m+TaEg==",
"requires": {
"@types/node-fetch": "2.5.4",
"@types/node-fetch": "2.5.5",
"core-js": "^3.0.1",
"node-fetch": "^2.2.0",
"sha.js": "^2.4.11"
}
},
"apollo-graphql": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.0.tgz",
"integrity": "sha512-abCHcKln1EGbzSItW087EjBI5wnluikyUqEn4VsdeWHCtdENWpHCn/MnM0+jJa1prNasxN7tCukp4nMpJYYVqg==",
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.1.tgz",
"integrity": "sha512-dz2wtGeCqUDAKAj4KXLKLZiFY791aoXduul3KcLo8/6SwqWlsuZiPe0oB8mENHZZc/EchCpTMTJZX2ZENsOt2A==",
"requires": {
"apollo-env": "^0.6.1",
"apollo-env": "^0.6.2",
"lodash.sortby": "^4.7.0"
}
},
@ -396,12 +409,12 @@
}
},
"apollo-server": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.11.0.tgz",
"integrity": "sha512-UhW6RHPBMWZy1v7KhzssUnxPBxpu9fGFajtqP68vtvvP3+xa2Y2GUg0594bHcUcLK+BjdMBQQSW27i0yQ/Fz9g==",
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.12.0.tgz",
"integrity": "sha512-ETL2+/m2KSxCnVoSjE2bOWh6HV4i1RRQMu+vBDgNzZGSVqzxyWiHhCMoSx22/ow2ZchiBMTKsRN5wZxbahyEkg==",
"requires": {
"apollo-server-core": "^2.11.0",
"apollo-server-express": "^2.11.0",
"apollo-server-core": "^2.12.0",
"apollo-server-express": "^2.12.0",
"express": "^4.0.0",
"graphql-subscriptions": "^1.0.0",
"graphql-tools": "^4.0.0"
@ -416,28 +429,29 @@
}
},
"apollo-server-core": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.11.0.tgz",
"integrity": "sha512-jHLOqwTRlyWzqWNRlwr2M/xfrt+lw2pHtKYyxUGRjWFo8EM5TX1gDcTKtbtvx9p5m+ZBDAhcWp/rpq0vSz4tqg==",
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.12.0.tgz",
"integrity": "sha512-BRVdOyZrRJ1ALlmis0vaOLIHHYu5K3UVKAQKIgHkRh/YY0Av4lpeEXr49ELK04LTeh0DG0pQ5YYYhaX1wFcDEw==",
"requires": {
"@apollographql/apollo-tools": "^0.4.3",
"@apollographql/graphql-playground-html": "1.6.24",
"@types/graphql-upload": "^8.0.0",
"@types/ws": "^6.0.0",
"apollo-cache-control": "^0.9.0",
"apollo-cache-control": "^0.9.1",
"apollo-datasource": "^0.7.0",
"apollo-engine-reporting": "^1.7.0",
"apollo-engine-reporting": "^1.7.1",
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.3",
"apollo-server-errors": "^2.4.0",
"apollo-server-plugin-base": "^0.7.0",
"apollo-server-types": "^0.3.0",
"apollo-tracing": "^0.9.0",
"apollo-server-errors": "^2.4.1",
"apollo-server-plugin-base": "^0.7.1",
"apollo-server-types": "^0.3.1",
"apollo-tracing": "^0.9.1",
"fast-json-stable-stringify": "^2.0.0",
"graphql-extensions": "^0.11.0",
"graphql-extensions": "^0.11.1",
"graphql-tag": "^2.9.2",
"graphql-tools": "^4.0.0",
"graphql-upload": "^8.0.2",
"loglevel": "^1.6.7",
"sha.js": "^2.4.11",
"subscriptions-transport-ws": "^0.9.11",
"ws": "^6.0.0"
@ -453,23 +467,23 @@
}
},
"apollo-server-errors": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.0.tgz",
"integrity": "sha512-ZouZfr2sGavvI18rgdRcyY2ausRAlVtWNOax9zca8ZG2io86dM59jXBmUVSNlVZSmBsIh45YxYC0eRvr2vmRdg=="
"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=="
},
"apollo-server-express": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.11.0.tgz",
"integrity": "sha512-9bbiD+zFAx+xyurc9lxYmNa9y79k/gsA1vEyPFVcv7jxzCFC5wc0tcbV7NPX2qi1Nn7K76fxo2fPNYbPFX/y0g==",
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.12.0.tgz",
"integrity": "sha512-oTBKM2SsziCoFW+ta+ubJ/ypvsc+EWrbJnyZhJ5FBYzSXPstt/jvgZHgMO+kOQgHEHrbJwugNDUuLMSm608L7A==",
"requires": {
"@apollographql/graphql-playground-html": "1.6.24",
"@types/accepts": "^1.3.5",
"@types/body-parser": "1.19.0",
"@types/cors": "^2.8.4",
"@types/express": "4.17.2",
"@types/express": "4.17.3",
"accepts": "^1.3.5",
"apollo-server-core": "^2.11.0",
"apollo-server-types": "^0.3.0",
"apollo-server-core": "^2.12.0",
"apollo-server-types": "^0.3.1",
"body-parser": "^1.18.3",
"cors": "^2.8.4",
"express": "^4.17.1",
@ -481,9 +495,9 @@
},
"dependencies": {
"@types/express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz",
"integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz",
"integrity": "sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==",
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "*",
@ -493,17 +507,17 @@
}
},
"apollo-server-plugin-base": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.7.0.tgz",
"integrity": "sha512-//xgYrBYLQSr92W0z3mYsFGoVz3wxKNsv3KcOUBhbOCGTbjZgP7vHOE1vhHhRcpZKKXmjXTVONdrnNJ+XVGi6A==",
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.7.1.tgz",
"integrity": "sha512-PRavvoWq7/Xufqc+qkDQg3Aqueq4QrPBFfoCFIjhkJ4n2d2YoqE3gTGccb8YoWusfa62ASMn6R47OdNuVtEbXw==",
"requires": {
"apollo-server-types": "^0.3.0"
"apollo-server-types": "^0.3.1"
}
},
"apollo-server-types": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.3.0.tgz",
"integrity": "sha512-FMo7kbTkhph9dfIQ3xDbRLObqmdQH9mwSjxhGsX+JxGMRPPXgd3+GZvCeVKOi/udxh//w1otSeAqItjvbj0tfQ==",
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.3.1.tgz",
"integrity": "sha512-6nX5VC3icOGf1RZIs7/SYQZff+Cl16LQu1FHUOIk9gAMN2XjlRCyJgCeMj5YHJzQ8Mhg4BO0weWuydEg+JxLzg==",
"requires": {
"apollo-engine-reporting-protobuf": "^0.4.4",
"apollo-server-caching": "^0.5.1",
@ -511,12 +525,12 @@
}
},
"apollo-tracing": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.9.0.tgz",
"integrity": "sha512-oqspTrf4BLGbKkIk1vF+I31C2v7PPJmF36TFpT/+zJxNvJw54ji4ZMhtytgVqbVldQEintJmdHQIidYBGKmu+g==",
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.9.1.tgz",
"integrity": "sha512-4wVNM6rc70XhwWxuDWrMBLaHA8NjB9pUS2sNpddQvP36ZtQfsa08XLSUxGAZT+bej+TzW26hKNtuO31RgqC9Hg==",
"requires": {
"apollo-server-env": "^2.4.3",
"graphql-extensions": "^0.11.0"
"graphql-extensions": "^0.11.1"
}
},
"apollo-utilities": {
@ -548,6 +562,11 @@
"retry": "0.12.0"
}
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"axios": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
@ -751,6 +770,14 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -946,6 +973,11 @@
"object-keys": "^1.0.12"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"denque": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
@ -1005,9 +1037,9 @@
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"es-abstract": {
"version": "1.17.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"version": "1.17.5",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
"integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
@ -1180,6 +1212,16 @@
}
}
},
"form-data": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
"integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@ -1262,13 +1304,13 @@
"integrity": "sha512-ZyVO1xIF9F+4cxfkdhOJINM+51B06Friuv4M66W7HzUOeFd+vNzUn4vtswYINPi6sysjf1M2Ri/rwZALqgwbaQ=="
},
"graphql-extensions": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.11.0.tgz",
"integrity": "sha512-zd4qfUiJoYBx2MwJusM36SEJ+YmJ1ki8YF8nlm9mgaPDUzsnmFq4lxULxUfhLAXFwZw7MbEN2vV4V6WiNgSJLg==",
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.11.1.tgz",
"integrity": "sha512-1bstq6YKaC579PTw9gchw2VlXqjPo3vn8NjRMaUqF2SxyYTjVSgXaCAbaeNa0B7xlLVigxi3DV1zh4A+ss+Lwg==",
"requires": {
"@apollographql/apollo-tools": "^0.4.3",
"apollo-server-env": "^2.4.3",
"apollo-server-types": "^0.3.0"
"apollo-server-types": "^0.3.1"
}
},
"graphql-subscriptions": {
@ -1512,9 +1554,9 @@
"dev": true
},
"iterall": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz",
"integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA=="
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
"integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
},
"kareem": {
"version": "2.3.1",
@ -1550,6 +1592,11 @@
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
},
"loglevel": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz",
"integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A=="
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
@ -2267,22 +2314,42 @@
"strip-ansi": "^4.0.0"
}
},
"string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
"string.prototype.trimend": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz",
"integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==",
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
"es-abstract": "^1.17.5"
}
},
"string.prototype.trimleft": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
"integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.5",
"string.prototype.trimstart": "^1.0.0"
}
},
"string.prototype.trimright": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
"integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
"es-abstract": "^1.17.5",
"string.prototype.trimend": "^1.0.0"
}
},
"string.prototype.trimstart": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz",
"integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==",
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.5"
}
},
"string_decoder": {

View File

@ -15,8 +15,8 @@
"author": "Sendou",
"license": "ISC",
"dependencies": {
"apollo-server": "^2.11.0",
"apollo-server-express": "^2.11.0",
"apollo-server": "^2.12.0",
"apollo-server-express": "^2.12.0",
"axios": "^0.19.2",
"btoa": "^1.2.1",
"connect-mongo": "^3.2.0",