From ce1ab08dd69150e4659aa4e3aa04ae2b34f41cd6 Mon Sep 17 00:00:00 2001 From: Sendou Date: Wed, 8 Apr 2020 16:33:05 +0300 Subject: [PATCH] markdown updates --- frontend-react/src/components/Mark | 0 .../components/markdown/MarkdownHelpPage.tsx | 71 +++-- frontend-react/src/components/root/Routes.tsx | 2 + .../src/components/xtrends/XTrendsPage.tsx | 26 ++ .../src/graphql/queries/seachForTrend.js | 16 - frontend-react/src/graphql/queries/xTrends.ts | 29 ++ frontend-react/src/utils/ChakraUIRenderer.js | 123 -------- frontend-react/src/utils/lists.ts | 36 +-- frontend-react/src/utils/useTrends.js | 278 ------------------ graphql-schemas/trend.js | 13 +- package-lock.json | 269 ++++++++++------- package.json | 4 +- 12 files changed, 300 insertions(+), 567 deletions(-) delete mode 100644 frontend-react/src/components/Mark create mode 100644 frontend-react/src/components/xtrends/XTrendsPage.tsx delete mode 100644 frontend-react/src/graphql/queries/seachForTrend.js create mode 100644 frontend-react/src/graphql/queries/xTrends.ts delete mode 100644 frontend-react/src/utils/ChakraUIRenderer.js delete mode 100644 frontend-react/src/utils/useTrends.js diff --git a/frontend-react/src/components/Mark b/frontend-react/src/components/Mark deleted file mode 100644 index e69de29bb..000000000 diff --git a/frontend-react/src/components/markdown/MarkdownHelpPage.tsx b/frontend-react/src/components/markdown/MarkdownHelpPage.tsx index 39123f714..000c432ae 100644 --- a/frontend-react/src/components/markdown/MarkdownHelpPage.tsx +++ b/frontend-react/src/components/markdown/MarkdownHelpPage.tsx @@ -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 = () => { const { themeColorWithShade } = useContext(MyThemeContext) + const [showWeapons, setShowWeapons] = useState(false) + const [showAbilities, setShowAbilities] = useState(false) + const [showGear, setShowGear] = useState(false) return ( <> @@ -33,22 +38,6 @@ const MarkdownHelpPage: React.FC = () => { We also support certain special emoji. Below listed are the groups and few representatives as example:

-

- Weapon emoji - - - :luna_blaster: ->{" "} - - - - :.96_gal: -> - - - :custom_e-liter_4k_scope: ->{" "} - - - -

Mode emoji @@ -67,17 +56,31 @@ const MarkdownHelpPage: React.FC = () => {

- Ability emoji + Weapon emoji - :ssu: -> + :luna_blaster: ->{" "} + - :t: -> + :96_gal: -> - :rp: -> + :custom_e-liter_4k_scope: ->{" "} + + + + + + + {Object.keys(weaponCodes).map((code) => ( + :{code}: + ))} + +

@@ -92,6 +95,18 @@ const MarkdownHelpPage: React.FC = () => { :rp: -> + + + + + + {abilitiesGameOrder.map((code) => ( + :{code.toLowerCase()}: + ))} + +

@@ -106,6 +121,18 @@ const MarkdownHelpPage: React.FC = () => { :black_norimaki_750s: -> + + + + + + {Object.keys(gearCodes).map((code) => ( + :{code}: + ))} + +

diff --git a/frontend-react/src/components/root/Routes.tsx b/frontend-react/src/components/root/Routes.tsx index b22933870..25b0f4408 100644 --- a/frontend-react/src/components/root/Routes.tsx +++ b/frontend-react/src/components/root/Routes.tsx @@ -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 = () => { + diff --git a/frontend-react/src/components/xtrends/XTrendsPage.tsx b/frontend-react/src/components/xtrends/XTrendsPage.tsx new file mode 100644 index 000000000..ac23df1be --- /dev/null +++ b/frontend-react/src/components/xtrends/XTrendsPage.tsx @@ -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 = () => { + const { data, error, loading } = useQuery(X_TRENDS) + + if (error) return + if (loading) return + + console.log("xtrends", data!.xTrends) + return ( + <> + + {data!.xTrends.length} + + ) +} + +export default XTrendsPage diff --git a/frontend-react/src/graphql/queries/seachForTrend.js b/frontend-react/src/graphql/queries/seachForTrend.js deleted file mode 100644 index a835e8d0c..000000000 --- a/frontend-react/src/graphql/queries/seachForTrend.js +++ /dev/null @@ -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 - } - } - } -` diff --git a/frontend-react/src/graphql/queries/xTrends.ts b/frontend-react/src/graphql/queries/xTrends.ts new file mode 100644 index 000000000..2a08f9acd --- /dev/null +++ b/frontend-react/src/graphql/queries/xTrends.ts @@ -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 + } + } + } +` diff --git a/frontend-react/src/utils/ChakraUIRenderer.js b/frontend-react/src/utils/ChakraUIRenderer.js deleted file mode 100644 index dda29e8e1..000000000 --- a/frontend-react/src/utils/ChakraUIRenderer.js +++ /dev/null @@ -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 {children} - }, - emphasis: (props) => { - const { children } = props - return {children} - }, - blockquote: (props) => { - const { children } = props - return {children} - }, - code: (props) => { - const { language, value } = props - const className = language && `language-${language}` - return ( -
-          
-            {value}
-          
-        
- ) - }, - delete: (props) => { - const { children } = props - return {children} - }, - thematicBreak: Divider, - link: Link, - img: Image, - linkReference: Link, - imageReference: Image, - text: (props) => { - const { children } = props - return {children} - }, - 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 ( - - {children} - - ) - }, - listItem: (props) => { - const { children, checked } = props - let checkbox = null - if (checked !== null && checked !== undefined) { - checkbox = ( - - {children} - - ) - } - return ( - - {checkbox || children} - - ) - }, - definition: () => null, - heading: (props) => { - const { level, children } = props - const sizes = ["2xl", "xl", "lg", "md", "sm", "xs"] - return ( - - {children} - - ) - }, - inlineCode: (props) => { - const { children } = props - return {children} - }, - } -} - -export default ChakraUIRenderer diff --git a/frontend-react/src/utils/lists.ts b/frontend-react/src/utils/lists.ts index d08a38518..01b1a8b44 100644 --- a/frontend-react/src/utils/lists.ts +++ b/frontend-react/src/utils/lists.ts @@ -4,9 +4,9 @@ export const weaponCodes: Record = { "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 = { 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 = { 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 = { 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 = { 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 = { 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", diff --git a/frontend-react/src/utils/useTrends.js b/frontend-react/src/utils/useTrends.js deleted file mode 100644 index 994e64bb6..000000000 --- a/frontend-react/src/utils/useTrends.js +++ /dev/null @@ -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 } -} diff --git a/graphql-schemas/trend.js b/graphql-schemas/trend.js index 140134c08..6bd15aaac 100644 --- a/graphql-schemas/trend.js +++ b/graphql-schemas/trend.js @@ -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)) }, }, } diff --git a/package-lock.json b/package-lock.json index 9ac1143ae..bec05cf8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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": { diff --git a/package.json b/package.json index 63cf696f8..75e69a6ba 100644 --- a/package.json +++ b/package.json @@ -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",