diff --git a/components/AbilityIcon.tsx b/components/AbilityIcon.tsx new file mode 100644 index 000000000..1358c3464 --- /dev/null +++ b/components/AbilityIcon.tsx @@ -0,0 +1,102 @@ +import AD from "assets/abilityIcons/AD.png"; +import BDU from "assets/abilityIcons/BDU.png"; +import BRU from "assets/abilityIcons/BRU.png"; +import CB from "assets/abilityIcons/CB.png"; +import DR from "assets/abilityIcons/DR.png"; +import EMPTY from "assets/abilityIcons/EMPTY.png"; +import H from "assets/abilityIcons/H.png"; +import ISM from "assets/abilityIcons/ISM.png"; +import ISS from "assets/abilityIcons/ISS.png"; +import LDE from "assets/abilityIcons/LDE.png"; +import MPU from "assets/abilityIcons/MPU.png"; +import NS from "assets/abilityIcons/NS.png"; +import OG from "assets/abilityIcons/OG.png"; +import OS from "assets/abilityIcons/OS.png"; +import QR from "assets/abilityIcons/QR.png"; +import QSJ from "assets/abilityIcons/QSJ.png"; +import REC from "assets/abilityIcons/REC.png"; +import RES from "assets/abilityIcons/RES.png"; +import RP from "assets/abilityIcons/RP.png"; +import RSU from "assets/abilityIcons/RSU.png"; +import SCU from "assets/abilityIcons/SCU.png"; +import SJ from "assets/abilityIcons/SJ.png"; +import SPU from "assets/abilityIcons/SPU.png"; +import SS from "assets/abilityIcons/SS.png"; +import SSU from "assets/abilityIcons/SSU.png"; +import T from "assets/abilityIcons/T.png"; +import TI from "assets/abilityIcons/TI.png"; +import UNKNOWN from "assets/abilityIcons/UNKNOWN.png"; + +const abilityIcons = { + BDU, + BRU, + CB, + DR, + H, + ISM, + ISS, + LDE, + MPU, + NS, + OG, + QR, + QSJ, + REC, + RES, + RP, + RSU, + SCU, + SJ, + SPU, + SS, + SSU, + T, + TI, + OS, + AD, + UNKNOWN, + "": UNKNOWN, + EMPTY, +} as const; + +//https://github.com/loadout-ink/splat2-calc + +const sizeMap = { + MAIN: "50px", + SUB: "40px", + TINY: "30px", + SUBTINY: "20px", +} as const; + +interface AbilityIconProps { + // FIXME: use enum from generated/graphql.tsx + ability: string | "EMPTY"; + size: "MAIN" | "SUB" | "TINY" | "SUBTINY"; +} + +const AbilityIcon: React.FC = ({ ability, size }) => { + const key = ability as keyof typeof abilityIcons; + const abilitySrc = abilityIcons[key]; + return ( + {ability} + ); +}; + +export default AbilityIcon; diff --git a/components/Emoji.tsx b/components/Emoji.tsx new file mode 100644 index 000000000..0f2d02435 --- /dev/null +++ b/components/Emoji.tsx @@ -0,0 +1,49 @@ +import { Image } from "@chakra-ui/core"; +import cb from "assets/cb.png"; +import rm from "assets/rm.png"; +import sz from "assets/sz.png"; +import tc from "assets/tc.png"; +import tw from "assets/tw.png"; +import AbilityIcon from "components/AbilityIcon"; +import GearImage from "components/GearImage"; +import WeaponImage from "components/WeaponImage"; +import { abilityMarkdownCodes } from "lib/lists/abilityMarkdownCodes"; +import { gearMarkdownCodes } from "lib/lists/gearMarkdownCodes"; +import { weaponMarkdownCodes } from "lib/lists/weaponMarkdownCodes"; + +const modeCodes: Record = { + turf_war: tw, + splat_zones: sz, + tower_control: tc, + rainmaker: rm, + clam_blitz: cb, +} as const; + +interface EmojiProps { + value: string; +} + +const Emoji: React.FC = (props) => { + const value = props.value.replace(/:/g, "").toLowerCase(); + + const keyWeapon = value as keyof typeof weaponMarkdownCodes; + const weaponName = weaponMarkdownCodes[keyWeapon]; + if (!!weaponName) + return ; + + const keyAbility = value as keyof typeof abilityMarkdownCodes; + const abilityName = abilityMarkdownCodes[keyAbility]; + if (!!abilityName) return ; + + const keyGear = value as keyof typeof gearMarkdownCodes; + const gearName = gearMarkdownCodes[keyGear]; + if (!!gearName) return ; + + const mode = modeCodes[value]; + if (!!mode) + return ; + + return <>{props.value}; +}; + +export default Emoji; diff --git a/components/Flag.tsx b/components/Flag.tsx new file mode 100644 index 000000000..b03237d0f --- /dev/null +++ b/components/Flag.tsx @@ -0,0 +1,26 @@ +import { useTranslation } from "lib/useMockT"; +import React from "react"; + +interface FlagProps { + code: string; + size?: "16" | "32"; +} + +const Flag: React.FC = ({ code, size = "16" }) => { + const { t } = useTranslation(); + return ( + {t(`countries;${code.toUpperCase()}`)} + ); +}; + +export default Flag; diff --git a/components/GearImage.tsx b/components/GearImage.tsx new file mode 100644 index 000000000..acdc687e6 --- /dev/null +++ b/components/GearImage.tsx @@ -0,0 +1,28 @@ +import englishToInteral from "lib/englishToInternal.json"; +import { useTranslation } from "lib/useMockT"; +import React from "react"; + +interface GearImageProps { + englishName: string; + mini?: boolean; +} + +const GearImage: React.FC = ({ englishName, mini }) => { + const { t } = useTranslation(); + const wh = "32px"; + + const key = englishName as keyof typeof englishToInteral; + const gearInternal = englishToInteral[key]; + return ( + {t(`game;${englishName}`)} + ); +}; + +export default GearImage; diff --git a/components/Markdown.tsx b/components/Markdown.tsx new file mode 100644 index 000000000..c4bfd5f1f --- /dev/null +++ b/components/Markdown.tsx @@ -0,0 +1,190 @@ +import { + Checkbox, + Code, + Divider, + Heading, + Image, + Link, + List, + ListItem, + Text, +} from "@chakra-ui/core"; +import Emoji from "components/Emoji"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "components/Table"; +import { useMyTheme } from "lib/useMyTheme"; +import ReactMarkdown from "react-markdown"; +import reactStringReplace from "react-string-replace"; + +interface MarkdownProps { + value: string; +} + +const Markdown: React.FC = ({ value }) => { + const { themeColor } = useMyTheme(); + + //https://github.com/mustaphaturhan/chakra-ui-markdown-renderer/blob/master/src/index.js + const ChakraUIRenderer = () => { + function getCoreProps(props: any) { + return props["data-sourcepos"] + ? { "data-sourcepos": props["data-sourcepos"] } + : {}; + } + + return { + paragraph: (props: any) => { + const { children } = props; + return {children}; + }, + emphasis: (props: any) => { + const { children } = props; + return {children}; + }, + blockquote: (props: any) => { + const { children } = props; + return {children}; + }, + code: (props: any) => { + const { language, value } = props; + const className = language && `language-${language}`; + return ( +
+            
+              {value}
+            
+          
+ ); + }, + delete: (props: any) => { + const { children } = props; + return {children}; + }, + thematicBreak: Divider, + link: (props: any) => { + const { children } = props; + return ( + + {children} + + ); + }, + img: Image, + linkReference: (props: any) => { + const { children } = props; + return ( + + {children} + + ); + }, + imageReference: Image, + text: (props: any) => { + const { children } = props; + return ( + + {reactStringReplace(children, /(:\S+:)/g, (match, i) => ( + + ))} + + ); + }, + list: (props: any) => { + const { start, ordered, children, depth } = props; + const attrs = getCoreProps(props); + if (start !== null && start !== 1 && start !== undefined) { + // @ts-ignore + attrs.start = start.toString(); + } + let styleType = "disc"; + if (ordered) styleType = "decimal"; + if (depth === 1) styleType = "circle"; + return ( + + {children} + + ); + }, + listItem: (props: any) => { + const { children, checked } = props; + let checkbox = null; + if (checked !== null && checked !== undefined) { + checkbox = ( + + {children} + + ); + } + return ( + + {checkbox || children} + + ); + }, + definition: () => null, + heading: (props: any) => { + const { children } = props; + return ( + + {children} + + ); + }, + inlineCode: (props: any) => { + const { children } = props; + return {children}; + }, + table: (props: any) => { + const { children } = props; + return {children}
; + }, + tableHead: (props: any) => { + const { children } = props; + return {children}; + }, + tableBody: (props: any) => { + const { children } = props; + return {children}; + }, + tableRow: (props: any) => { + const { children } = props; + return {children}; + }, + tableCell: (props: any) => { + const { children, isHeader } = props; + if (isHeader) { + return {children}; + } + return {children}; + }, + }; + }; + return ( + + ); +}; + +export default Markdown; diff --git a/components/MyHead.tsx b/components/MyHead.tsx new file mode 100644 index 000000000..0a56e109b --- /dev/null +++ b/components/MyHead.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; + +interface Props { + title: string; +} + +const MyHead: React.FC = ({ title }) => { + const pageTitle = `${title} | sendou.ink`; + return ( + + {pageTitle} + + + ); +}; + +export default MyHead; diff --git a/components/Table.tsx b/components/Table.tsx new file mode 100644 index 000000000..80518e004 --- /dev/null +++ b/components/Table.tsx @@ -0,0 +1,90 @@ +// https://github.com/chakra-ui/chakra-ui/issues/135#issuecomment-644878591 + +import { Box, BoxProps } from "@chakra-ui/core"; +import { useMyTheme } from "lib/useMyTheme"; + +/** + * Represents tabular data - that is, information presented in a + * two-dimensional table comprised of rows and columns of cells containing + * data. It renders a `` HTML element. + */ +export function Table(props: BoxProps) { + return ( + + + + ); +} + +/** + * Defines a set of rows defining the head of the columns of the table. It + * renders a `` HTML element. + */ +export function TableHead(props: BoxProps) { + return ; +} + +/** + * Defines a row of cells in a table. The row's cells can then be established + * using a mix of `TableCell` and `TableHeader` elements. It renders a `` + * HTML element. + */ +export function TableRow(props: BoxProps) { + const { secondaryBgColor } = useMyTheme(); + return ( + + ); +} + +export function TableHeader(props: BoxProps) { + const { themeColor } = useMyTheme(); + + return ( + <> + + + ); +} + +/** + * Encapsulates a set of table rows, indicating that they comprise the body of + * the table. It renders a `` HTML element. + */ +export function TableBody(props: BoxProps) { + return ; +} + +/** + * Defines a cell of a table that contains data. It renders a `
` HTML + * element. + */ +export function TableCell(props: BoxProps) { + return ( + + ); +} diff --git a/components/WeaponImage.tsx b/components/WeaponImage.tsx new file mode 100644 index 000000000..2745ef57c --- /dev/null +++ b/components/WeaponImage.tsx @@ -0,0 +1,50 @@ +import englishToInternal from "lib/englishToInternal.json"; +import { useTranslation } from "lib/useMockT"; +import React from "react"; + +interface WeaponImageProps { + englishName: string; + size: "SMALL" | "SMEDIUM" | "MEDIUM" | "BIG"; + asInlineBlock?: boolean; + noTitle?: boolean; +} + +const sizeWhMap: Record< + "SMALL" | "SMEDIUM" | "MEDIUM" | "BIG", + string | undefined +> = { + SMALL: "32px", + SMEDIUM: "48px", + MEDIUM: "64px", + BIG: undefined, +}; + +const WeaponImage: React.FC = ({ + englishName, + size, + asInlineBlock, + noTitle, +}) => { + const { t } = useTranslation(); + const wh = sizeWhMap[size]; + + const key = englishName as keyof typeof englishToInternal; + const weaponInternal = englishToInternal[key]; + + return ( + <> + {t(`game;${englishName}`)} + + ); +}; + +export default WeaponImage; diff --git a/lib/englishToInternal.json b/lib/englishToInternal.json new file mode 100644 index 000000000..b6a6c296e --- /dev/null +++ b/lib/englishToInternal.json @@ -0,0 +1,806 @@ +{ + "Grizzco Charger": "Charger_CoopSpark", + "Goo Tuber": "Charger_Keeper_00", + "Custom Goo Tuber": "Charger_Keeper_01", + "Bamboozler 14 Mk I": "Charger_Light_00", + "Bamboozler 14 Mk II": "Charger_Light_01", + "Bamboozler 14 Mk III": "Charger_Light_02", + "E-liter 4K Scope": "Charger_LongScope_00", + "Custom E-liter 4K Scope": "Charger_LongScope_01", + "E-liter 4K": "Charger_Long_00", + "Custom E-liter 4K": "Charger_Long_01", + "Hero Charger": "Charger_MissionNormalLv1", + "Splatterscope": "Charger_NormalScope_00", + "Firefin Splatterscope": "Charger_NormalScope_01", + "Kensa Splatterscope": "Charger_NormalScope_02", + "Splat Charger": "Charger_Normal_00", + "Firefin Splat Charger": "Charger_Normal_01", + "Kensa Charger": "Charger_Normal_02", + "Hero Charger Replica": "Charger_Normal_H", + "Classic Squiffer": "Charger_Quick_00", + "New Squiffer": "Charger_Quick_01", + "Fresh Squiffer": "Charger_Quick_02", + "School Uniform": "Clt_AMB000", + "Samurai Jacket": "Clt_AMB001", + "Power Armor": "Clt_AMB002", + "School Cardigan": "Clt_AMB003", + "Squinja Suit": "Clt_AMB004", + "Power Armor Mk I": "Clt_AMB005", + "Pearlescent Hoodie": "Clt_AMB006", + "Marinated Top": "Clt_AMB007", + "Enchanted Robe": "Clt_AMB008", + "Steel Platemail": "Clt_AMB009", + "Fresh Fish Gloves": "Clt_AMB010", + "Squiddor Polo": "Clt_COP100", + "Anchor Life Vest": "Clt_COP101", + "Juice Parka": "Clt_COP102", + "Garden Gear": "Clt_COP103", + "Crustwear XXL": "Clt_COP104", + "North-Country Parka": "Clt_COP105", + "Octoleet Armor": "Clt_COP106", + "Record Shop Look EP": "Clt_COP107", + "Dev Uniform": "Clt_COP108", + "Office Attire": "Clt_COP109", + "SRL Coat": "Clt_COP110", + "Mecha Body - AKM": "Clt_CRC000", + "Basic Tee": "Clt_FST001", + "Fresh Octo Tee": "Clt_FST002", + "Splatfest Tee": "Clt_HAP001", + "Olive Ski Jacket": "Clt_JKT000", + "Takoroka Nylon Vintage": "Clt_JKT001", + "Berry Ski Jacket": "Clt_JKT002", + "Varsity Jacket": "Clt_JKT003", + "School Jersey": "Clt_JKT004", + "Green Cardigan": "Clt_JKT005", + "Black Inky Rider": "Clt_JKT006", + "White Inky Rider": "Clt_JKT007", + "Retro Gamer Jersey": "Clt_JKT008", + "Orange Cardigan": "Clt_JKT009", + "Forge Inkling Parka": "Clt_JKT010", + "Forge Octarian Jacket": "Clt_JKT011", + "Blue Sailor Suit": "Clt_JKT012", + "White Sailor Suit": "Clt_JKT013", + "Squid Satin Jacket": "Clt_JKT014", + "Zapfish Satin Jacket": "Clt_JKT015", + "Krak-On 528": "Clt_JKT016", + "Chilly Mountain Coat": "Clt_JKT017", + "Takoroka Windcrusher": "Clt_JKT018", + "Matcha Down Jacket": "Clt_JKT019", + "FA-01 Jacket": "Clt_JKT020", + "FA-01 Reversed": "Clt_JKT021", + "Pullover Coat": "Clt_JKT022", + "Kensa Coat": "Clt_JKT023", + "Birded Corduroy Jacket": "Clt_JKT024", + "Deep-Octo Satin Jacket": "Clt_JKT025", + "Zekko Redleaf Coat": "Clt_JKT026", + "Eggplant Mountain Coat": "Clt_JKT027", + "Zekko Jade Coat": "Clt_JKT028", + "Light Bomber Jacket": "Clt_JKT029", + "Brown FA-11 Bomber": "Clt_JKT030", + "Gray FA-11 Bomber": "Clt_JKT031", + "Milky Eminence Jacket": "Clt_JKT032", + "Navy Eminence Jacket": "Clt_JKT033", + "Tumeric Zekko Coat": "Clt_JKT034", + "Custom Painted F-3 ": "Clt_JKT035", + "Dark Bomber Jacket": "Clt_JKT036", + "Moist Ghillie Suit": "Clt_JKT037", + "White Leather F-3": "Clt_JKT038", + "Chili-Pepper Ski Jacket": "Clt_JKT039", + "Whale-Knit Sweater": "Clt_JKT040", + "Rockin' Leather Jacket": "Clt_JKT041", + "Kung-Fu Zip-Up": "Clt_JKT042", + "Panda Kung-Fu Zip-Up": "Clt_JKT043", + "Sennyu Suit": "Clt_JKT044", + "Hero Jacket Replica": "Clt_MSN000", + "Armor Jacket Replica": "Clt_MSN004", + "Hero Hoodie Replica": "Clt_MSN101", + "Neo Octoling Armor": "Clt_MSN104", + "Null Armor Replica": "Clt_MSN105", + "Old-Timey Clothes": "Clt_MSN106", + "Shrimp-Pink Polo": "Clt_PLO000", + "Striped Rugby": "Clt_PLO001", + "Tricolor Rugby": "Clt_PLO002", + "Sage Polo": "Clt_PLO003", + "Black Polo": "Clt_PLO004", + "Cycling Shirt": "Clt_PLO005", + "Cycle King Jersey": "Clt_PLO006", + "Slipstream United": "Clt_PLO007", + "FC Albacore": "Clt_PLO008", + "Camo Zip Hoodie": "Clt_PRK000", + "Green Zip Hoodie": "Clt_PRK001", + "Zekko Hoodie": "Clt_PRK002", + "Shirt with Blue Hoodie": "Clt_PRK004", + "Grape Hoodie": "Clt_PRK005", + "Gray Hoodie": "Clt_PRK006", + "Hothouse Hoodie": "Clt_PRK007", + "Pink Hoodie": "Clt_PRK008", + "Olive Zekko Parka": "Clt_PRK009", + "Black Hoodie": "Clt_PRK010", + "Octo Support Hoodie": "Clt_PRK011", + "Octoling Armor": "Clt_RVL000", + "Lumberjack Shirt": "Clt_SHT000", + "Rodeo Shirt": "Clt_SHT001", + "Green-Check Shirt": "Clt_SHT002", + "White Shirt": "Clt_SHT003", + "Urchins Jersey": "Clt_SHT004", + "Aloha Shirt": "Clt_SHT005", + "Red-Check Shirt": "Clt_SHT006", + "Baby-Jelly Shirt": "Clt_SHT007", + "Baseball Jersey": "Clt_SHT008", + "Gray Mixed Shirt": "Clt_SHT009", + "Vintage Check Shirt": "Clt_SHT010", + "Round-Collar Shirt": "Clt_SHT011", + "Logo Aloha Shirt": "Clt_SHT012", + "Striped Shirt": "Clt_SHT013", + "Linen Shirt": "Clt_SHT014", + "Shirt & Tie": "Clt_SHT015", + "Hula Punk Shirt": "Clt_SHT017", + "Octobowler Shirt": "Clt_SHT018", + "Inkfall Shirt": "Clt_SHT019", + "Crimson Parashooter": "Clt_SHT020", + "Baby-Jelly Shirt & Tie": "Clt_SHT021", + "Prune Parashooter": "Clt_SHT022", + "Red Hula Punk with Tie": "Clt_SHT023", + "Chili Octo Aloha": "Clt_SHT024", + "Annaki Flannel Hoodie": "Clt_SHT025", + "Ink-Wash Shirt": "Clt_SHT026", + "Dots-On-Dots Shirt": "Clt_SHT027", + "Toni K. Baseball Jersey": "Clt_SHT028", + "Online Jersey": "Clt_SHT029", + "Gray College Sweat": "Clt_SWT000", + "Squidmark Sweat": "Clt_SWT001", + "Retro Sweat": "Clt_SWT002", + "Firefin Navy Sweat": "Clt_SWT003", + "Navy College Sweat": "Clt_SWT004", + "Reel Sweat": "Clt_SWT005", + "Anchor Sweat": "Clt_SWT006", + "Negative Longcuff Sweater": "Clt_SWT007", + "Short Knit Layers": "Clt_SWT008", + "Positive Longcuff Sweater": "Clt_SWT009", + "Annaki Blue Cuff": "Clt_SWT010", + "Annaki Yellow Cuff": "Clt_SWT011", + "Annaki Red Cuff": "Clt_SWT012", + "N-Pacer Sweat": "Clt_SWT013", + "Octarian Retro": "Clt_SWT014", + "Takoroka Jersey": "Clt_SWT015", + "White Striped LS": "Clt_TEL000", + "Black LS": "Clt_TEL001", + "Purple Camo LS": "Clt_TEL002", + "Navy Striped LS": "Clt_TEL003", + "Zekko Baseball LS": "Clt_TEL004", + "Varsity Baseball LS": "Clt_TEL005", + "Black Baseball LS": "Clt_TEL006", + "White Baseball LS": "Clt_TEL007", + "White LS": "Clt_TEL008", + "Green Striped LS": "Clt_TEL009", + "Squidmark LS": "Clt_TEL010", + "Zink LS": "Clt_TEL011", + "Striped Peaks LS": "Clt_TEL012", + "Pink Easy-Stripe Shirt": "Clt_TEL013", + "Inkopolis Squaps Jersey": "Clt_TEL014", + "Annaki Drive Tee ": "Clt_TEL015", + "Lime Easy-Stripe Shirt": "Clt_TEL016", + "Annaki Evolution Tee": "Clt_TEL017", + "Zekko Long Carrot Tee": "Clt_TEL018", + "Zekko Long Radish Tee": "Clt_TEL019", + "Black Cuttlegear LS": "Clt_TEL020", + "Takoroka Crazy Baseball LS": "Clt_TEL021", + "Red Cuttlegear LS": "Clt_TEL022", + "Khaki 16-Bit FishFry": "Clt_TEL023", + "Blue 16-Bit FishFry": "Clt_TEL024", + "White Tee": "Clt_TES000", + "Black Squideye": "Clt_TES001", + "Sky-Blue Squideye": "Clt_TES003", + "Rockenberg White": "Clt_TES004", + "Rockenberg Black": "Clt_TES005", + "Black Tee": "Clt_TES006", + "Sunny-Day Tee": "Clt_TES007", + "Rainy-Day Tee": "Clt_TES008", + "Reggae Tee": "Clt_TES009", + "Fugu Tee": "Clt_TES010", + "Mint Tee": "Clt_TES011", + "Grape Tee": "Clt_TES012", + "Red Vector Tee": "Clt_TES013", + "Gray Vector Tee": "Clt_TES014", + "Blue Peaks Tee": "Clt_TES015", + "Ivory Peaks Tee": "Clt_TES016", + "Squid-Stitch Tee": "Clt_TES017", + "Pirate-Stripe Tee": "Clt_TES018", + "Sailor-Stripe Tee": "Clt_TES019", + "White 8-Bit FishFry": "Clt_TES020", + "Black 8-Bit FishFry": "Clt_TES021", + "White Anchor Tee": "Clt_TES022", + "Black Anchor Tee": "Clt_TES023", + "Carnivore Tee": "Clt_TES026", + "Pearl Tee": "Clt_TES027", + "Octo Tee": "Clt_TES028", + "Herbivore Tee": "Clt_TES029", + "Black V-Neck Tee": "Clt_TES030", + "White Deca Logo Tee": "Clt_TES031", + "Half-Sleeve Sweater": "Clt_TES032", + "King Jersey": "Clt_TES033", + "Gray 8-Bit FishFry": "Clt_TES034", + "White V-Neck Tee": "Clt_TES035", + "White Urchin Rock Tee": "Clt_TES036", + "Black Urchin Rock Tee": "Clt_TES037", + "Wet Floor Band Tee": "Clt_TES038", + "Squid Squad Band Tee": "Clt_TES039", + "Navy Deca Logo Tee": "Clt_TES040", + "Mister Shrug Tee": "Clt_TES041", + "Chirpy Chips Band Tee": "Clt_TES042", + "Hightide Era Band Tee": "Clt_TES043", + "Red V-Neck Limited Tee": "Clt_TES044", + "Green V-Neck Limited Tee": "Clt_TES045", + "\u03c9-3 Tee": "Clt_TES046", + "Annaki Polpo-Pic Tee": "Clt_TES047", + "Firewave Tee": "Clt_TES048", + "Takoroka Galactic Tie Dye": "Clt_TES049", + "Takoroka Rainbow Tie Dye": "Clt_TES050", + "Missus Shrug Tee": "Clt_TES051", + "League Tee": "Clt_TES052", + "Friend Tee": "Clt_TES053", + "Tentatek Slogan Tee": "Clt_TES054", + "Icewave Tee": "Clt_TES055", + "Octoking HK Jersey": "Clt_TES056", + "Dakro Nana Tee": "Clt_TES057", + "Dakro Golden Tee": "Clt_TES058", + "Black Velour Octoking Tee ": "Clt_TES059", + "Green Velour Octoking Tee": "Clt_TES060", + "SWC Logo Tee": "Clt_TES061", + "White Layered LS": "Clt_TLY000", + "Yellow Layered LS": "Clt_TLY001", + "Camo Layered LS": "Clt_TLY002", + "Black Layered LS": "Clt_TLY003", + "Zink Layered LS": "Clt_TLY004", + "Layered Anchor LS": "Clt_TLY005", + "Choco Layered LS": "Clt_TLY006", + "Part-Time Pirate": "Clt_TLY007", + "Layered Vector LS": "Clt_TLY008", + "Green Tee": "Clt_TLY009", + "Red Tentatek Tee": "Clt_TLY010", + "Blue Tentatek Tee": "Clt_TLY011", + "Octo Layered LS": "Clt_TLY012", + "Squid Yellow Layered LS": "Clt_TLY013", + "B-ball Jersey (Home)": "Clt_TNK000", + "B-ball Jersey (Away)": "Clt_TNK001", + "White King Tank": "Clt_TNK003", + "Slash King Tank": "Clt_TNK004", + "Navy King Tank": "Clt_TNK005", + "Lob-Stars Jersey": "Clt_TNK006", + "Mountain Vest": "Clt_VST000", + "Forest Vest": "Clt_VST001", + "Dark Urban Vest": "Clt_VST002", + "Yellow Urban Vest": "Clt_VST003", + "Squid-Pattern Waistcoat": "Clt_VST004", + "Squidstar Waistcoat": "Clt_VST005", + "Fishing Vest": "Clt_VST007", + "Front Zip Vest": "Clt_VST008", + "Silver Tentatek Vest": "Clt_VST009", + "Comeback": "ComeBack", + "Haunt": "DeathMarking", + "Durability": "Defence", + "Last-Ditch Effort": "EndAllUp", + "Ability Doubler": "ExSkillDouble", + "Respawn Punisher": "Exorcist", + "Impact": "Explosion", + "Squid Beakon": "Flag", + "Port Mackerel": "Fld_Amida01_Vss", + "Camp Triggerfish": "Fld_Athletic01_Vss", + "Wahoo World": "Fld_Carousel00_Vss", + "Goby Arena": "Fld_Court00_Vss", + "Shifty Station": "Fld_Deli_Vss", + "The Reef": "Fld_Ditch02_Vss", + "Snapper Canal": "Fld_Kawa00_Vss", + "MakoMart": "Fld_Line00_Vss", + "Kelp Dome": "Fld_Maze02_Vss", + "Skipper Pavilion": "Fld_Mirror00_Vss", + "Sturgeon Shipyard": "Fld_Nagasaki00_Vss", + "New Albacore Hotel": "Fld_Nakasu00_Vss", + "Ancho-V Games": "Fld_Office01_Vss", + "Manta Maria": "Fld_Pillar00_Vss", + "Piranha Pit": "Fld_Quarry01_Vss", + "Lost Outpost": "Fld_Shakehouse00_Cop", + "Salmonid Smokeyard": "Fld_Shakelift00_Cop", + "Ruins of Ark Polaris": "Fld_Shakeride00_Cop", + "Marooner's Bay": "Fld_Shakeship00_Cop", + "Spawning Grounds": "Fld_Shakeup00_Cop", + "Blackbelly Skatepark": "Fld_SkatePark02_Vss", + "Shellendorf Institute": "Fld_Tunnel00_Vss", + "Moray Towers": "Fld_Tuzura00_Vss", + "Musselforge Fitness": "Fld_Unduck00_Vss", + "Arowana Mall": "Fld_UpDown01_Vss", + "Inkblot Art Academy": "Fld_Upland00_Vss", + "Starfish Mainstage": "Fld_Venue02_Vss", + "Walleye Warehouse": "Fld_Warehouse01_Vss", + "Humpback Pump Track": "Fld_Wave00_Vss", + "Eminence Cuff": "Hed_ACC001", + "Squid Hairclip": "Hed_AMB000", + "Samurai Helmet": "Hed_AMB001", + "Power Mask": "Hed_AMB002", + "Squid Clip-Ons": "Hed_AMB003", + "Squinja Mask": "Hed_AMB004", + "Power Mask Mk I": "Hed_AMB005", + "Pearlescent Crown": "Hed_AMB006", + "Marinated Headphones": "Hed_AMB007", + "Enchanted Hat": "Hed_AMB008", + "Steel Helm": "Hed_AMB009", + "Fresh Fish Head": "Hed_AMB010", + "Urchins Cap": "Hed_CAP000", + "Lightweight Cap": "Hed_CAP001", + "Takoroka Mesh": "Hed_CAP002", + "Streetstyle Cap": "Hed_CAP003", + "Squid-Stitch Cap": "Hed_CAP004", + "Squidvader Cap": "Hed_CAP005", + "Camo Mesh": "Hed_CAP006", + "Five-Panel Cap": "Hed_CAP007", + "Zekko Mesh": "Hed_CAP008", + "Backwards Cap": "Hed_CAP009", + "Two-Stripe Mesh": "Hed_CAP010", + "Jet Cap": "Hed_CAP011", + "Cycling Cap": "Hed_CAP012", + "Cycle King Cap": "Hed_CAP014", + "Legendary Cap": "Hed_CAP015", + "Long-Billed Cap": "Hed_CAP018", + "King Flip Mesh": "Hed_CAP019", + "Hickory Work Cap": "Hed_CAP020", + "Woolly Urchins Classic": "Hed_CAP021", + "Jellyvader Cap": "Hed_CAP023", + "House-Tag Denim Cap": "Hed_CAP024", + "Blowfish Newsie": "Hed_CAP025", + "Do-Rag, Cap, & Glasses": "Hed_CAP026", + "Pilot Hat": "Hed_CAP027", + "Headlamp Helmet": "Hed_COP100", + "Dust Blocker 2000": "Hed_COP101", + "Welding Mask": "Hed_COP102", + "Beekeeper Hat": "Hed_COP103", + "Octoleet Goggles": "Hed_COP104", + "Cap of Legend": "Hed_COP105", + "Oceanic Hard Hat": "Hed_COP106", + "Worker's Head Towel": "Hed_COP107", + "Worker's Cap": "Hed_COP108", + "Sailor Cap": "Hed_COP109", + "Mecha Head - HTR": "Hed_CRC000", + "Retro Specs": "Hed_EYE000", + "Splash Goggles": "Hed_EYE001", + "Pilot Goggles": "Hed_EYE002", + "Tinted Shades": "Hed_EYE003", + "Black Arrowbands": "Hed_EYE004", + "Snorkel Mask": "Hed_EYE005", + "White Arrowbands": "Hed_EYE006", + "Fake Contacts": "Hed_EYE007", + "18K Aviators": "Hed_EYE008", + "Full Moon Glasses": "Hed_EYE009", + "Octoglasses": "Hed_EYE010", + "Half-Rim Glasses": "Hed_EYE011", + "Double Egg Shades": "Hed_EYE012", + "Zekko Cap": "Hed_EYE013", + "SV925 Circle Shades": "Hed_EYE014", + "Annaki Beret & Glasses": "Hed_EYE015", + "Swim Goggles": "Hed_EYE016", + "Ink-Guard Goggles": "Hed_EYE017", + "Toni Kensa Goggles": "Hed_EYE018", + "Sennyu Goggles": "Hed_EYE019", + "Sennyu Specs": "Hed_EYE020", + "White Headband": "Hed_FST000", + "Kyonshi Hat": "Hed_HAP000", + "Li'l Devil Horns": "Hed_HAP001", + "Hockey Mask": "Hed_HAP002", + "Anglerfish Mask": "Hed_HAP003", + "Festive Party Cone": "Hed_HAP004", + "New Year's Glasses DX": "Hed_HAP005", + "Twisty Headband": "Hed_HAP006", + "Eel-Cake Hat": "Hed_HAP007", + "Purple Novelty Visor": "Hed_HAP008", + "Green Novelty Visor": "Hed_HAP009", + "Orange Novelty Visor": "Hed_HAP010", + "Pink Novelty Visor": "Hed_HAP011", + "Jetflame Crest": "Hed_HAP012", + "Fierce Fishskull": "Hed_HAP013", + "Hivemind Antenna": "Hed_HAP014", + "Eye of Justice": "Hed_HAP015", + "Safari Hat": "Hed_HAT000", + "Jungle Hat": "Hed_HAT001", + "Camping Hat": "Hed_HAT002", + "Blowfish Bell Hat": "Hed_HAT003", + "Bamboo Hat": "Hed_HAT004", + "Straw Boater": "Hed_HAT005", + "Classic Straw Boater": "Hed_HAT006", + "Treasure Hunter": "Hed_HAT007", + "Bucket Hat": "Hed_HAT008", + "Patched Hat": "Hed_HAT009", + "Tulip Parasol": "Hed_HAT010", + "Fugu Bell Hat": "Hed_HAT011", + "Seashell Bamboo Hat": "Hed_HAT012", + "Hothouse Hat": "Hed_HAT013", + "Mountie Hat": "Hed_HAT014", + "B-ball Headband": "Hed_HBD001", + "Squash Headband": "Hed_HBD002", + "Tennis Headband": "Hed_HBD003", + "Jogging Headband": "Hed_HBD004", + "Soccer Headband": "Hed_HBD005", + "FishFry Biscuit Bandana": "Hed_HBD007", + "Black FishFry Bandana": "Hed_HBD008", + "Studio Headphones": "Hed_HDP000", + "Designer Headphones": "Hed_HDP001", + "Noise Cancelers": "Hed_HDP002", + "Squidfin Hook Cans": "Hed_HDP003", + "Squidlife Headphones": "Hed_HDP004", + "Studio Octophones": "Hed_HDP005", + "Sennyu Headphones": "Hed_HDP006", + "Bike Helmet": "Hed_MET000", + "Stealth Goggles": "Hed_MET002", + "Tentacles Helmet": "Hed_MET003", + "Skate Helmet": "Hed_MET004", + "Visor Skate Helmet": "Hed_MET005", + "MTB Helmet": "Hed_MET006", + "Hockey Helmet": "Hed_MET007", + "Matte Bike Helmet": "Hed_MET008", + "Octo Tackle Helmet Deco": "Hed_MET009", + "Moist Ghillie Helmet": "Hed_MET010", + "Deca Tackle Visor Helmet": "Hed_MET011", + "Gas Mask": "Hed_MSK000", + "Paintball Mask": "Hed_MSK001", + "Paisley Bandana": "Hed_MSK002", + "Skull Bandana": "Hed_MSK003", + "Painter's Mask": "Hed_MSK004", + "Annaki Mask": "Hed_MSK005", + "Octoking Facemask": "Hed_MSK006", + "Squid Facemask": "Hed_MSK007", + "Firefin Facemask": "Hed_MSK008", + "King Facemask": "Hed_MSK009", + "Motocross Nose Guard": "Hed_MSK010", + "Forge Mask": "Hed_MSK011", + "Digi-Camo Forge Mask": "Hed_MSK012", + "Koshien Bandana": "Hed_MSK013", + "Hero Headset Replica": "Hed_MSN000", + "Armor Helmet Replica": "Hed_MSN004", + "Hero Headphones Replica": "Hed_MSN101", + "Octoling Shades": "Hed_MSN104", + "Null Visor Replica": "Hed_MSN105", + "Old-Timey Hat": "Hed_MSN106", + "Conductor Cap": "Hed_MSN107", + "Golden Toothpick": "Hed_MSN108", + "Bobble Hat": "Hed_NCP000", + "Short Beanie": "Hed_NCP001", + "Striped Beanie": "Hed_NCP002", + "Sporty Bobble Hat": "Hed_NCP003", + "Special Forces Beret": "Hed_NCP004", + "Squid Nordic": "Hed_NCP005", + "Sennyu Bon Bon Beanie": "Hed_NCP006", + "Knitted Hat": "Hed_NCP008", + "Annaki Beret": "Hed_NCP009", + "Yamagiri Beanie": "Hed_NCP010", + "Sneaky Beanie": "Hed_NCP011", + "Octoling Goggles": "Hed_RVL000", + "Golf Visor": "Hed_VIS000", + "FishFry Visor": "Hed_VIS001", + "Sun Visor": "Hed_VIS002", + "Takoroka Visor": "Hed_VIS003", + "Face Visor": "Hed_VIS004", + "Run Speed Up": "HumanMove_Up", + "Ink Recovery Up": "InkRecovery_Up", + "Inkjet": "Jetpack", + "Quick Super Jump": "JumpTime_Save", + "Curling-Bomb Launcher": "LauncherCurling", + "Burst-Bomb Launcher": "LauncherQuick", + "Autobomb Launcher": "LauncherRobo", + "Splat-Bomb Launcher": "LauncherSplash", + "Suction-Bomb Launcher": "LauncherSuction", + "Ink Saver (Main)": "MainInk_Save", + "Main Power Up": "MarkingTime_Reduction", + "Tenacity": "MinorityUp", + "Cannon": "MissileMissilePosition", + "Mobility": "Mobility", + "Object Shredder": "ObjectEffect_Up", + "Ink Resistance Up": "OpInkEffect_Reduction", + "Ink Speed": "PaintSpeed", + "Point Sensor": "PointSensor", + "Toxic Mist": "PoisonFog", + "Damage": "Power", + "Ink Storm": "RainCloud", + "Range": "Range", + "Special Saver": "RespawnSpecialGauge_Save", + "Quick Respawn": "RespawnTime_Save", + "Inkbrush": "Roller_BrushMini_00", + "Inkbrush Nouveau": "Roller_BrushMini_01", + "Permanent Inkbrush": "Roller_BrushMini_02", + "Octobrush": "Roller_BrushNormal_00", + "Octobrush Nouveau": "Roller_BrushNormal_01", + "Kensa Octobrush": "Roller_BrushNormal_02", + "Herobrush Replica": "Roller_BrushNormal_H", + "Carbon Roller": "Roller_Compact_00", + "Carbon Roller Deco": "Roller_Compact_01", + "Dynamo Roller": "Roller_Heavy_00", + "Gold Dynamo Roller": "Roller_Heavy_01", + "Kensa Dynamo Roller": "Roller_Heavy_02", + "Flingza Roller": "Roller_Hunter_00", + "Foil Flingza Roller": "Roller_Hunter_01", + "Herobrush": "Roller_MissionBrushNormalLv1", + "Hero Roller": "Roller_MissionNormalLv1", + "Splat Roller": "Roller_Normal_00", + "Krak-On Splat Roller": "Roller_Normal_01", + "Kensa Splat Roller": "Roller_Normal_02", + "Hero Roller Replica": "Roller_Normal_H", + "Rainmaker": "cVgl_2L", + "Splash Wall": "Shield", + "Grizzco Blaster": "Shooter_BlasterCoopBurst", + "Rapid Blaster Pro": "Shooter_BlasterLightLong_00", + "Rapid Blaster Pro Deco": "Shooter_BlasterLightLong_01", + "Clash Blaster": "Shooter_BlasterLightShort_00", + "Clash Blaster Neo": "Shooter_BlasterLightShort_01", + "Rapid Blaster": "Shooter_BlasterLight_00", + "Rapid Blaster Deco": "Shooter_BlasterLight_01", + "Kensa Rapid Blaster": "Shooter_BlasterLight_02", + "Range Blaster": "Shooter_BlasterLong_00", + "Custom Range Blaster": "Shooter_BlasterLong_01", + "Grim Range Blaster": "Shooter_BlasterLong_02", + "Blaster": "Shooter_BlasterMiddle_00", + "Custom Blaster": "Shooter_BlasterMiddle_01", + "Hero Blaster Replica": "Shooter_BlasterMiddle_H", + "Hero Blaster": "Shooter_BlasterMissionMiddleLv1", + "Luna Blaster": "Shooter_BlasterShort_00", + "Luna Blaster Neo": "Shooter_BlasterShort_01", + "Kensa Luna Blaster": "Shooter_BlasterShort_02", + "Aerospray MG": "Shooter_Blaze_00", + "Aerospray RG": "Shooter_Blaze_01", + "Aerospray PG": "Shooter_Blaze_02", + "Splattershot Pro": "Shooter_Expert_00", + "Forge Splattershot Pro": "Shooter_Expert_01", + "Kensa Splattershot Pro": "Shooter_Expert_02", + "Splattershot Jr.": "Shooter_First_00", + "Custom Splattershot Jr.": "Shooter_First_01", + "Kensa Splattershot Jr.": "Shooter_First_02", + "Squeezer": "Shooter_Flash_00", + "Foil Squeezer": "Shooter_Flash_01", + ".52 Gal": "Shooter_Gravity_00", + ".52 Gal Deco": "Shooter_Gravity_01", + "Kensa .52 Gal": "Shooter_Gravity_02", + ".96 Gal": "Shooter_Heavy_00", + ".96 Gal Deco": "Shooter_Heavy_01", + "Jet Squelcher": "Shooter_Long_00", + "Custom Jet Squelcher": "Shooter_Long_01", + "Hero Shot": "Shooter_MissionNormalLv2", + "Splattershot": "Shooter_Normal_00", + "Tentatek Splattershot": "Shooter_Normal_01", + "Kensa Splattershot": "Shooter_Normal_02", + "Hero Shot Replica": "Shooter_Normal_H", + "Octo Shot Replica": "Shooter_Normal_Oct", + "Splash-o-matic": "Shooter_Precision_00", + "Neo Splash-o-matic": "Shooter_Precision_01", + "N-ZAP '85": "Shooter_QuickMiddle_00", + "N-ZAP '89": "Shooter_QuickMiddle_01", + "N-ZAP '83": "Shooter_QuickMiddle_02", + "Sploosh-o-matic": "Shooter_Short_00", + "Neo Sploosh-o-matic": "Shooter_Short_01", + "Sploosh-o-matic 7": "Shooter_Short_02", + "H-3 Nozzlenose": "Shooter_TripleMiddle_00", + "H-3 Nozzlenose D": "Shooter_TripleMiddle_01", + "Cherry H-3 Nozzlenose": "Shooter_TripleMiddle_02", + "L-3 Nozzlenose": "Shooter_TripleQuick_00", + "L-3 Nozzlenose D": "Shooter_TripleQuick_01", + "Kensa L-3 Nozzlenose": "Shooter_TripleQuick_02", + "School Shoes": "Shs_AMB000", + "Samurai Shoes": "Shs_AMB001", + "Power Boots": "Shs_AMB002", + "Fringed Loafers": "Shs_AMB003", + "Squinja Boots": "Shs_AMB004", + "Power Boots Mk I": "Shs_AMB005", + "Pearlescent Kicks": "Shs_AMB006", + "Marinated Slip-Ons": "Shs_AMB007", + "Enchanted Boots": "Shs_AMB008", + "Steel Greaves": "Shs_AMB009", + "Fresh Fish Feet": "Shs_AMB010", + "Moto Boots": "Shs_BOT000", + "Tan Work Boots": "Shs_BOT001", + "Red Work Boots": "Shs_BOT002", + "Blue Moto Boots": "Shs_BOT003", + "Green Rain Boots": "Shs_BOT004", + "Acerola Rain Boots": "Shs_BOT005", + "Punk Whites": "Shs_BOT006", + "Punk Cherries": "Shs_BOT007", + "Punk Yellows": "Shs_BOT008", + "Bubble Rain Boots": "Shs_BOT009", + "Snowy Down Boots": "Shs_BOT010", + "Icy Down Boots": "Shs_BOT011", + "Hunting Boots": "Shs_BOT012", + "Punk Blacks": "Shs_BOT013", + "Deepsea Leather Boots": "Shs_BOT014", + "Moist Ghillie Boots": "Shs_BOT015", + "Annaki Arachno Boots": "Shs_BOT016", + "New-Leaf Leather Boots": "Shs_BOT017", + "Tea-Green Hunting Boots": "Shs_BOT018", + "Blueberry Casuals": "Shs_CFS000", + "Plum Casuals": "Shs_CFS001", + "Angry Rain Boots": "Shs_COP101", + "Non-slip Senseis": "Shs_COP102", + "Octoleet Boots": "Shs_COP103", + "Friendship Bracelet": "Shs_COP104", + "Flipper Floppers": "Shs_COP105", + "Wooden Sandals": "Shs_COP106", + "Mecha Legs - LBS": "Shs_CRC000", + "Cream Basics": "Shs_FST000", + "Pearl-Scout Lace-Ups": "Shs_HAP000", + "Pearlescent Squidkid IV": "Shs_HAP001", + "Pearl Punk Crowns": "Shs_HAP002", + "New-Day Arrows": "Shs_HAP003", + "Marination Lace-Ups": "Shs_HAP004", + "Rina Squidkid IV": "Shs_HAP005", + "Trooper Power Stripes": "Shs_HAP006", + "Midnight Slip-Ons": "Shs_HAP007", + "White Kicks": "Shs_LTS000", + "Cherry Kicks": "Shs_LTS001", + "Turquoise Kicks": "Shs_LTS002", + "Squink Wingtips": "Shs_LTS003", + "Roasted Brogues": "Shs_LTS004", + "Kid Clams": "Shs_LTS005", + "Smoky Wingtips": "Shs_LTS006", + "Navy Red-Soled Wingtips": "Shs_LTS007", + "Gray Yellow-Soled Wingtips": "Shs_LTS008", + "Inky Kid Clams": "Shs_LTS009", + "Annaki Habaneros": "Shs_LTS010", + "Annaki Tigers": "Shs_LTS011", + "Sennyu Inksoles": "Shs_LTS012", + "Hero Runner Replicas": "Shs_MSN000", + "Armor Boot Replicas": "Shs_MSN004", + "Hero Snowboots Replicas": "Shs_MSN101", + "Neo Octoling Boots": "Shs_MSN104", + "Null Boots Replica": "Shs_MSN105", + "Old-Timey Shoes": "Shs_MSN106", + "Octoling Boots": "Shs_RVL000", + "Oyster Clogs": "Shs_SDL000", + "Choco Clogs": "Shs_SDL001", + "Neon Delta Straps": "Shs_SDL003", + "Black Flip-Flops": "Shs_SDL004", + "Snow Delta Straps": "Shs_SDL005", + "Luminous Delta Straps": "Shs_SDL006", + "Red FishFry Sandals": "Shs_SDL007", + "Yellow FishFry Sandals": "Shs_SDL008", + "Musselforge Flip-Flops": "Shs_SDL009", + "Red Hi-Horses": "Shs_SHI000", + "Zombie Hi-Horses": "Shs_SHI001", + "Cream Hi-Tops": "Shs_SHI002", + "Purple Hi-Horses": "Shs_SHI003", + "Hunter Hi-Tops": "Shs_SHI004", + "Red Hi-Tops": "Shs_SHI005", + "Gold Hi-Horses": "Shs_SHI006", + "Shark Moccasins": "Shs_SHI008", + "Mawcasins": "Shs_SHI009", + "Chocolate Dakroniks": "Shs_SHI010", + "Mint Dakroniks": "Shs_SHI011", + "Black Dakroniks": "Shs_SHI012", + "Piranha Moccasins": "Shs_SHI013", + "White Norimaki 750s": "Shs_SHI014", + "Black Norimaki 750s": "Shs_SHI015", + "Sunset Orca Hi-Tops": "Shs_SHI016", + "Red & Black Squidkid IV": "Shs_SHI017", + "Blue & Black Squidkid IV": "Shs_SHI018", + "Gray Sea-Slug Hi-Tops": "Shs_SHI019", + "Orca Hi-Tops": "Shs_SHI020", + "Milky Enperrials": "Shs_SHI021", + "Navy Enperrials": "Shs_SHI022", + "Amber Sea Slug Hi-Tops": "Shs_SHI023", + "Yellow Iromaki 750s": "Shs_SHI024", + "Red & White Squidkid V": "Shs_SHI025", + "Honey & Orange Squidkid V": "Shs_SHI026", + "Sun & Shade Squidkid IV": "Shs_SHI027", + "Orca Woven Hi-Tops": "Shs_SHI028", + "Green Iromaki 750s": "Shs_SHI029", + "Purple Iromaki 750s": "Shs_SHI030", + "Red Iromaki 750s": "Shs_SHI031", + "Blue Iromaki 750s": "Shs_SHI032", + "Orange Iromaki 750s": "Shs_SHI033", + "Red Power Stripes": "Shs_SHI034", + "Blue Power Stripes": "Shs_SHI035", + "Toni Kensa Black Hi-Tops": "Shs_SHI036", + "Sesame Salt 270s": "Shs_SHI037", + "Black & Blue Squidkid V": "Shs_SHI038", + "Orca Passion Hi-Tops": "Shs_SHI039", + "Truffle Canvas Hi-Tops": "Shs_SHI040", + "Online Squidkid V": "Shs_SHI041", + "Pink Trainers": "Shs_SHT000", + "Orange Arrows": "Shs_SHT001", + "Neon Sea Slugs": "Shs_SHT002", + "White Arrows": "Shs_SHT003", + "Cyan Trainers": "Shs_SHT004", + "Blue Sea Slugs": "Shs_SHT005", + "Red Sea Slugs": "Shs_SHT006", + "Purple Sea Slugs": "Shs_SHT007", + "Crazy Arrows": "Shs_SHT008", + "Black Trainers": "Shs_SHT009", + "Violet Trainers": "Shs_SHT010", + "Canary Trainers": "Shs_SHT011", + "Yellow-Mesh Sneakers": "Shs_SHT012", + "Arrow Pull-Ons": "Shs_SHT013", + "Red-Mesh Sneakers": "Shs_SHT014", + "N-Pacer CaO": "Shs_SHT015", + "N-Pacer Ag": "Shs_SHT016", + "N-Pacer Au": "Shs_SHT017", + "Sea Slug Volt 95s": "Shs_SHT018", + "Athletic Arrows": "Shs_SHT019", + "Blue Lo-Tops": "Shs_SLO000", + "Banana Basics": "Shs_SLO001", + "LE Lo-Tops": "Shs_SLO002", + "White Seahorses": "Shs_SLO003", + "Orange Lo-Tops": "Shs_SLO004", + "Black Seahorses": "Shs_SLO005", + "Clownfish Basics": "Shs_SLO006", + "Yellow Seahorses": "Shs_SLO007", + "Strapping Whites": "Shs_SLO008", + "Strapping Reds": "Shs_SLO009", + "Soccer Shoes": "Shs_SLO010", + "LE Soccer Shoes": "Shs_SLO011", + "Sunny Climbing Shoes": "Shs_SLO012", + "Birch Climbing Shoes": "Shs_SLO013", + "Green Laceups": "Shs_SLO014", + "White Laceless Dakroniks": "Shs_SLO015", + "Blue Laceless Dakroniks": "Shs_SLO016", + "Suede Gray Lace-Ups": "Shs_SLO017", + "Suede Nation Lace-Ups": "Shs_SLO018", + "Suede Marine Lace-Ups": "Shs_SLO019", + "Toni Kensa Soccer Shoes": "Shs_SLO020", + "Blue Slip-Ons": "Shs_SLP000", + "Red Slip-Ons": "Shs_SLP001", + "Squid-Stitch Slip-Ons": "Shs_SLP002", + "Polka-dot Slip-Ons": "Shs_SLP003", + "Trail Boots": "Shs_TRS000", + "Custom Trail Boots": "Shs_TRS001", + "Pro Trail Boots": "Shs_TRS002", + "Bloblobber": "Slosher_Bathtub_00", + "Bloblobber Deco": "Slosher_Bathtub_01", + "Grizzco Slosher": "Slosher_CoopVase", + "Tri-Slosher": "Slosher_Diffusion_00", + "Tri-Slosher Nouveau": "Slosher_Diffusion_01", + "Sloshing Machine": "Slosher_Launcher_00", + "Sloshing Machine Neo": "Slosher_Launcher_01", + "Kensa Sloshing Machine": "Slosher_Launcher_02", + "Hero Slosher": "Slosher_MissionStrongLv1", + "Slosher": "Slosher_Strong_00", + "Slosher Deco": "Slosher_Strong_01", + "Soda Slosher": "Slosher_Strong_02", + "Hero Slosher Replica": "Slosher_Strong_H", + "Explosher": "Slosher_Washtub_00", + "Custom Explosher": "Slosher_Washtub_01", + "Drop Roller": "SomersaultLanding", + "Special Charge Up": "SpecialIncrease_Up", + "Special Power Up": "SpecialTime_Up", + "Ballpoint Splatling": "Spinner_Downpour_00", + "Ballpoint Splatling Nouveau": "Spinner_Downpour_01", + "Hydra Splatling": "Spinner_Hyper_00", + "Custom Hydra Splatling": "Spinner_Hyper_01", + "Hero Splatling": "Spinner_MissionStandardLv1", + "Mini Splatling": "Spinner_Quick_00", + "Zink Mini Splatling": "Spinner_Quick_01", + "Kensa Mini Splatling": "Spinner_Quick_02", + "Nautilus 47": "Spinner_Serein_00", + "Nautilus 79": "Spinner_Serein_01", + "Heavy Splatling": "Spinner_Standard_00", + "Heavy Splatling Deco": "Spinner_Standard_01", + "Heavy Splatling Remix": "Spinner_Standard_02", + "Hero Splatling Replica": "Spinner_Standard_H", + "Dualie Squelchers": "Twins_Dual_00", + "Custom Dualie Squelchers": "Twins_Dual_01", + "Glooga Dualies": "Twins_Gallon_00", + "Glooga Dualies Deco": "Twins_Gallon_01", + "Kensa Glooga Dualies": "Twins_Gallon_02", + "Hero Dualies": "Twins_MissionNormalLv1", + "Splat Dualies": "Twins_Normal_00", + "Enperry Splat Dualies": "Twins_Normal_01", + "Kensa Splat Dualies": "Twins_Normal_02", + "Hero Dualie Replicas": "Twins_Normal_H", + "Dapple Dualies": "Twins_Short_00", + "Dapple Dualies Nouveau": "Twins_Short_01", + "Clear Dapple Dualies": "Twins_Short_02", + "Dark Tetra Dualies": "Twins_Stepper_00", + "Light Tetra Dualies": "Twins_Stepper_01", + "Undercover Brella": "Umbrella_Compact_00", + "Undercover Sorella Brella": "Umbrella_Compact_01", + "Kensa Undercover Brella": "Umbrella_Compact_02", + "Grizzco Brella": "Umbrella_CoopAutoAssault", + "Hero Brella": "Umbrella_MissionNormalLv1", + "Splat Brella": "Umbrella_Normal_00", + "Sorella Brella": "Umbrella_Normal_01", + "Hero Brella Replica": "Umbrella_Normal_H", + "Tenta Brella": "Umbrella_Wide_00", + "Tenta Sorella Brella": "Umbrella_Wide_01", + "Tenta Camo Brella": "Umbrella_Wide_02" +} diff --git a/lib/lists/abilityMarkdownCodes.ts b/lib/lists/abilityMarkdownCodes.ts new file mode 100644 index 000000000..b937c5026 --- /dev/null +++ b/lib/lists/abilityMarkdownCodes.ts @@ -0,0 +1,28 @@ +export const abilityMarkdownCodes = { + ism: "ISM", + iss: "ISS", + rec: "REC", + rsu: "RSU", + ssu: "SSU", + scu: "SCU", + ss: "SS", + spu: "SPU", + qr: "QR", + qsj: "QSJ", + bru: "BRU", + res: "RES", + bdu: "BDU", + mpu: "MPU", + og: "OG", + lde: "LDE", + t: "T", + cb: "CB", + ns: "NS", + h: "H", + ti: "TI", + rp: "RP", + ad: "AD", + sj: "SJ", + os: "OS", + dr: "DR", +} as const; diff --git a/lib/lists/gearMarkdownCodes.ts b/lib/lists/gearMarkdownCodes.ts new file mode 100644 index 000000000..aba07a179 --- /dev/null +++ b/lib/lists/gearMarkdownCodes.ts @@ -0,0 +1,583 @@ +export const gearMarkdownCodes = { + enchanted_hat: "Enchanted Hat", + fresh_fish_head: "Fresh Fish Head", + marinated_headphones: "Marinated Headphones", + pearlescent_crown: "Pearlescent Crown", + power_mask: "Power Mask", + power_mask_mk_i: "Power Mask Mk I", + samurai_helmet: "Samurai Helmet", + "squid_clip-ons": "Squid Clip-Ons", + squid_hairclip: "Squid Hairclip", + squinja_mask: "Squinja Mask", + steel_helm: "Steel Helm", + enchanted_robe: "Enchanted Robe", + fresh_fish_gloves: "Fresh Fish Gloves", + marinated_top: "Marinated Top", + pearlescent_hoodie: "Pearlescent Hoodie", + power_armor: "Power Armor", + power_armor_mk_i: "Power Armor Mk I", + samurai_jacket: "Samurai Jacket", + school_cardigan: "School Cardigan", + school_uniform: "School Uniform", + squinja_suit: "Squinja Suit", + steel_platemail: "Steel Platemail", + enchanted_boots: "Enchanted Boots", + fresh_fish_feet: "Fresh Fish Feet", + fringed_loafers: "Fringed Loafers", + "marinated_slip-ons": "Marinated Slip-Ons", + pearlescent_kicks: "Pearlescent Kicks", + power_boots: "Power Boots", + power_boots_mk_i: "Power Boots Mk I", + samurai_shoes: "Samurai Shoes", + school_shoes: "School Shoes", + squinja_boots: "Squinja Boots", + steel_greaves: "Steel Greaves", + annaki_beret: "Annaki Beret", + "annaki_beret_&_glasses": "Annaki Beret & Glasses", + annaki_mask: "Annaki Mask", + annaki_blue_cuff: "Annaki Blue Cuff", + annaki_drive_tee_: "Annaki Drive Tee ", + annaki_evolution_tee: "Annaki Evolution Tee", + annaki_flannel_hoodie: "Annaki Flannel Hoodie", + "annaki_polpo-pic_tee": "Annaki Polpo-Pic Tee", + annaki_red_cuff: "Annaki Red Cuff", + annaki_yellow_cuff: "Annaki Yellow Cuff", + crimson_parashooter: "Crimson Parashooter", + 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", + annaki_arachno_boots: "Annaki Arachno Boots", + annaki_habaneros: "Annaki Habaneros", + annaki_tigers: "Annaki Tigers", + armor_helmet_replica: "Armor Helmet Replica", + conductor_cap: "Conductor Cap", + golden_toothpick: "Golden Toothpick", + hero_headphones_replica: "Hero Headphones Replica", + hero_headset_replica: "Hero Headset Replica", + null_visor_replica: "Null Visor Replica", + octoling_shades: "Octoling Shades", + "old-timey_hat": "Old-Timey Hat", + studio_octophones: "Studio Octophones", + armor_jacket_replica: "Armor Jacket Replica", + black_cuttlegear_ls: "Black Cuttlegear LS", + fresh_octo_tee: "Fresh Octo Tee", + hero_hoodie_replica: "Hero Hoodie Replica", + hero_jacket_replica: "Hero Jacket Replica", + neo_octoling_armor: "Neo Octoling Armor", + null_armor_replica: "Null Armor Replica", + octarian_retro: "Octarian Retro", + octo_layered_ls: "Octo Layered LS", + octo_tee: "Octo Tee", + "old-timey_clothes": "Old-Timey Clothes", + red_cuttlegear_ls: "Red Cuttlegear LS", + sennyu_suit: "Sennyu Suit", + armor_boot_replicas: "Armor Boot Replicas", + hero_runner_replicas: "Hero Runner Replicas", + hero_snowboots_replicas: "Hero Snowboots Replicas", + neo_octoling_boots: "Neo Octoling Boots", + null_boots_replica: "Null Boots Replica", + "old-timey_shoes": "Old-Timey Shoes", + eminence_cuff: "Eminence Cuff", + king_facemask: "King Facemask", + king_flip_mesh: "King Flip Mesh", + octoking_facemask: "Octoking Facemask", + black_velour_octoking_tee_: "Black Velour Octoking Tee ", + grape_hoodie: "Grape Hoodie", + green_velour_octoking_tee: "Green Velour Octoking Tee", + king_jersey: "King Jersey", + milky_eminence_jacket: "Milky Eminence Jacket", + "n-pacer_sweat": "N-Pacer Sweat", + navy_eminence_jacket: "Navy Eminence Jacket", + navy_king_tank: "Navy King Tank", + octoking_hk_jersey: "Octoking HK Jersey", + slash_king_tank: "Slash King Tank", + white_king_tank: "White King Tank", + "black_&_blue_squidkid_v": "Black & Blue Squidkid V", + "blue_&_black_squidkid_iv": "Blue & Black Squidkid IV", + "honey_&_orange_squidkid_v": "Honey & Orange Squidkid V", + milky_enperrials: "Milky Enperrials", + "n-pacer_ag": "N-Pacer Ag", + "n-pacer_au": "N-Pacer Au", + "n-pacer_cao": "N-Pacer CaO", + navy_enperrials: "Navy Enperrials", + online_squidkid_v: "Online Squidkid V", + pearlescent_squidkid_iv: "Pearlescent Squidkid IV", + "red_&_black_squidkid_iv": "Red & Black Squidkid IV", + "red_&_white_squidkid_v": "Red & White Squidkid V", + rina_squidkid_iv: "Rina Squidkid IV", + "sun_&_shade_squidkid_iv": "Sun & Shade Squidkid IV", + black_fishfry_bandana: "Black FishFry Bandana", + blowfish_bell_hat: "Blowfish Bell Hat", + blowfish_newsie: "Blowfish Newsie", + camo_mesh: "Camo Mesh", + firefin_facemask: "Firefin Facemask", + fishfry_biscuit_bandana: "FishFry Biscuit Bandana", + fishfry_visor: "FishFry Visor", + fugu_bell_hat: "Fugu Bell Hat", + jet_cap: "Jet Cap", + jungle_hat: "Jungle Hat", + knitted_hat: "Knitted Hat", + octoglasses: "Octoglasses", + baseball_jersey: "Baseball Jersey", + "black_8-bit_fishfry": "Black 8-Bit FishFry", + "blue_16-bit_fishfry": "Blue 16-Bit FishFry", + camo_zip_hoodie: "Camo Zip Hoodie", + carnivore_tee: "Carnivore Tee", + dark_urban_vest: "Dark Urban Vest", + firefin_navy_sweat: "Firefin Navy Sweat", + fugu_tee: "Fugu Tee", + "gray_8-bit_fishfry": "Gray 8-Bit FishFry", + green_zip_hoodie: "Green Zip Hoodie", + herbivore_tee: "Herbivore Tee", + "khaki_16-bit_fishfry": "Khaki 16-Bit FishFry", + "white_8-bit_fishfry": "White 8-Bit FishFry", + yellow_urban_vest: "Yellow Urban Vest", + "ω-3_tee": "ω-3 Tee", + red_fishfry_sandals: "Red FishFry Sandals", + yellow_fishfry_sandals: "Yellow FishFry Sandals", + deca_tackle_visor_helmet: "Deca Tackle Visor Helmet", + designer_headphones: "Designer Headphones", + "digi-camo_forge_mask": "Digi-Camo Forge Mask", + forge_mask: "Forge Mask", + gas_mask: "Gas Mask", + hockey_helmet: "Hockey Helmet", + moist_ghillie_helmet: "Moist Ghillie Helmet", + motocross_nose_guard: "Motocross Nose Guard", + noise_cancelers: "Noise Cancelers", + octo_tackle_helmet_deco: "Octo Tackle Helmet Deco", + paintball_mask: "Paintball Mask", + pilot_goggles: "Pilot Goggles", + safari_hat: "Safari Hat", + sennyu_goggles: "Sennyu Goggles", + sennyu_headphones: "Sennyu Headphones", + skull_bandana: "Skull Bandana", + snorkel_mask: "Snorkel Mask", + special_forces_beret: "Special Forces Beret", + splash_goggles: "Splash Goggles", + squidfin_hook_cans: "Squidfin Hook Cans", + squidlife_headphones: "Squidlife Headphones", + stealth_goggles: "Stealth Goggles", + studio_headphones: "Studio Headphones", + treasure_hunter: "Treasure Hunter", + aloha_shirt: "Aloha Shirt", + blue_sailor_suit: "Blue Sailor Suit", + "brown_fa-11_bomber": "Brown FA-11 Bomber", + "custom_painted_f-3_": "Custom Painted F-3 ", + "fa-01_jacket": "FA-01 Jacket", + "fa-01_reversed": "FA-01 Reversed", + forge_inkling_parka: "Forge Inkling Parka", + forge_octarian_jacket: "Forge Octarian Jacket", + "gray_fa-11_bomber": "Gray FA-11 Bomber", + green_tee: "Green Tee", + moist_ghillie_suit: "Moist Ghillie Suit", + "white_leather_f-3": "White Leather F-3", + white_sailor_suit: "White Sailor Suit", + moist_ghillie_boots: "Moist Ghillie Boots", + beekeeper_hat: "Beekeeper Hat", + cap_of_legend: "Cap of Legend", + dust_blocker_2000: "Dust Blocker 2000", + headlamp_helmet: "Headlamp Helmet", + oceanic_hard_hat: "Oceanic Hard Hat", + octoleet_goggles: "Octoleet Goggles", + sailor_cap: "Sailor Cap", + welding_mask: "Welding Mask", + 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", + garden_gear: "Garden Gear", + juice_parka: "Juice Parka", + "north-country_parka": "North-Country Parka", + octoleet_armor: "Octoleet Armor", + office_attire: "Office Attire", + online_jersey: "Online Jersey", + record_shop_look_ep: "Record Shop Look EP", + squiddor_polo: "Squiddor Polo", + srl_coat: "SRL Coat", + angry_rain_boots: "Angry Rain Boots", + flipper_floppers: "Flipper Floppers", + friendship_bracelet: "Friendship Bracelet", + "non-slip_senseis": "Non-slip Senseis", + octoleet_boots: "Octoleet Boots", + wooden_sandals: "Wooden Sandals", + bamboo_hat: "Bamboo Hat", + camping_hat: "Camping Hat", + lightweight_cap: "Lightweight Cap", + mountie_hat: "Mountie Hat", + seashell_bamboo_hat: "Seashell Bamboo Hat", + short_beanie: "Short Beanie", + tulip_parasol: "Tulip Parasol", + yamagiri_beanie: "Yamagiri Beanie", + berry_ski_jacket: "Berry Ski Jacket", + blue_peaks_tee: "Blue Peaks Tee", + "chili-pepper_ski_jacket": "Chili-Pepper Ski Jacket", + chilly_mountain_coat: "Chilly Mountain Coat", + eggplant_mountain_coat: "Eggplant Mountain Coat", + fishing_vest: "Fishing Vest", + forest_vest: "Forest Vest", + green_striped_ls: "Green Striped LS", + ivory_peaks_tee: "Ivory Peaks Tee", + matcha_down_jacket: "Matcha Down Jacket", + mountain_vest: "Mountain Vest", + olive_ski_jacket: "Olive Ski Jacket", + striped_peaks_ls: "Striped Peaks LS", + acerola_rain_boots: "Acerola Rain Boots", + birch_climbing_shoes: "Birch Climbing Shoes", + bubble_rain_boots: "Bubble Rain Boots", + custom_trail_boots: "Custom Trail Boots", + green_rain_boots: "Green Rain Boots", + luminous_delta_straps: "Luminous Delta Straps", + "musselforge_flip-flops": "Musselforge Flip-Flops", + neon_delta_straps: "Neon Delta Straps", + pro_trail_boots: "Pro Trail Boots", + snow_delta_straps: "Snow Delta Straps", + sunny_climbing_shoes: "Sunny Climbing Shoes", + trail_boots: "Trail Boots", + full_moon_glasses: "Full Moon Glasses", + hickory_work_cap: "Hickory Work Cap", + "long-billed_cap": "Long-Billed Cap", + paisley_bandana: "Paisley Bandana", + "two-stripe_mesh": "Two-Stripe Mesh", + woolly_urchins_classic: "Woolly Urchins Classic", + chili_octo_aloha: "Chili Octo Aloha", + "krak-on_528": "Krak-On 528", + missus_shrug_tee: "Missus Shrug Tee", + mister_shrug_tee: "Mister Shrug Tee", + octobowler_shirt: "Octobowler Shirt", + "rainy-day_tee": "Rainy-Day Tee", + rodeo_shirt: "Rodeo Shirt", + "squid-pattern_waistcoat": "Squid-Pattern Waistcoat", + squidstar_waistcoat: "Squidstar Waistcoat", + "sunny-day_tee": "Sunny-Day Tee", + banana_basics: "Banana Basics", + "blue_slip-ons": "Blue Slip-Ons", + blueberry_casuals: "Blueberry Casuals", + choco_clogs: "Choco Clogs", + clownfish_basics: "Clownfish Basics", + cream_basics: "Cream Basics", + "cream_hi-tops": "Cream Hi-Tops", + "hunter_hi-tops": "Hunter Hi-Tops", + "midnight_slip-ons": "Midnight Slip-Ons", + oyster_clogs: "Oyster Clogs", + plum_casuals: "Plum Casuals", + "polka-dot_slip-ons": "Polka-dot Slip-Ons", + "red_hi-tops": "Red Hi-Tops", + "red_slip-ons": "Red Slip-Ons", + "squid-stitch_slip-ons": "Squid-Stitch Slip-Ons", + "truffle_canvas_hi-tops": "Truffle Canvas Hi-Tops", + "18k_aviators": "18K Aviators", + sv925_circle_shades: "SV925 Circle Shades", + black_baseball_ls: "Black Baseball LS", + black_inky_rider: "Black Inky Rider", + black_urchin_rock_tee: "Black Urchin Rock Tee", + chirpy_chips_band_tee: "Chirpy Chips Band Tee", + hightide_era_band_tee: "Hightide Era Band Tee", + lumberjack_shirt: "Lumberjack Shirt", + rockenberg_black: "Rockenberg Black", + rockenberg_white: "Rockenberg White", + "round-collar_shirt": "Round-Collar Shirt", + squid_squad_band_tee: "Squid Squad Band Tee", + vintage_check_shirt: "Vintage Check Shirt", + wet_floor_band_tee: "Wet Floor Band Tee", + white_baseball_ls: "White Baseball LS", + white_inky_rider: "White Inky Rider", + white_urchin_rock_tee: "White Urchin Rock Tee", + blue_moto_boots: "Blue Moto Boots", + cherry_kicks: "Cherry Kicks", + deepsea_leather_boots: "Deepsea Leather Boots", + "gray_yellow-soled_wingtips": "Gray Yellow-Soled Wingtips", + inky_kid_clams: "Inky Kid Clams", + kid_clams: "Kid Clams", + moto_boots: "Moto Boots", + "navy_red-soled_wingtips": "Navy Red-Soled Wingtips", + "new-leaf_leather_boots": "New-Leaf Leather Boots", + pearl_punk_crowns: "Pearl Punk Crowns", + punk_blacks: "Punk Blacks", + punk_cherries: "Punk Cherries", + punk_whites: "Punk Whites", + punk_yellows: "Punk Yellows", + red_work_boots: "Red Work Boots", + roasted_brogues: "Roasted Brogues", + sennyu_inksoles: "Sennyu Inksoles", + smoky_wingtips: "Smoky Wingtips", + squink_wingtips: "Squink Wingtips", + tan_work_boots: "Tan Work Boots", + turquoise_kicks: "Turquoise Kicks", + white_kicks: "White Kicks", + bike_helmet: "Bike Helmet", + classic_straw_boater: "Classic Straw Boater", + "do-rag,_cap,_&_glasses": "Do-Rag, Cap, & Glasses", + hothouse_hat: "Hothouse Hat", + jellyvader_cap: "Jellyvader Cap", + patched_hat: "Patched Hat", + skate_helmet: "Skate Helmet", + sneaky_beanie: "Sneaky Beanie", + sporty_bobble_hat: "Sporty Bobble Hat", + squid_nordic: "Squid Nordic", + "squid-stitch_cap": "Squid-Stitch Cap", + squidvader_cap: "Squidvader Cap", + straw_boater: "Straw Boater", + streetstyle_cap: "Streetstyle Cap", + urchins_cap: "Urchins Cap", + visor_skate_helmet: "Visor Skate Helmet", + black_hoodie: "Black Hoodie", + "dots-on-dots_shirt": "Dots-On-Dots Shirt", + firewave_tee: "Firewave Tee", + grape_tee: "Grape Tee", + gray_hoodie: "Gray Hoodie", + hothouse_hoodie: "Hothouse Hoodie", + icewave_tee: "Icewave Tee", + mint_tee: "Mint Tee", + pearl_tee: "Pearl Tee", + reggae_tee: "Reggae Tee", + "squid-stitch_tee": "Squid-Stitch Tee", + bobble_hat: "Bobble Hat", + "half-rim_glasses": "Half-Rim Glasses", + "house-tag_denim_cap": "House-Tag Denim Cap", + pilot_hat: "Pilot Hat", + retro_specs: "Retro Specs", + sennyu_bon_bon_beanie: "Sennyu Bon Bon Beanie", + sennyu_specs: "Sennyu Specs", + striped_beanie: "Striped Beanie", + "baby-jelly_shirt": "Baby-Jelly Shirt", + "baby-jelly_shirt_&_tie": "Baby-Jelly Shirt & Tie", + gray_college_sweat: "Gray College Sweat", + green_cardigan: "Green Cardigan", + "lime_easy-stripe_shirt": "Lime Easy-Stripe Shirt", + linen_shirt: "Linen Shirt", + navy_college_sweat: "Navy College Sweat", + navy_striped_ls: "Navy Striped LS", + orange_cardigan: "Orange Cardigan", + "pink_easy-stripe_shirt": "Pink Easy-Stripe Shirt", + pink_hoodie: "Pink Hoodie", + "pirate-stripe_tee": "Pirate-Stripe Tee", + sage_polo: "Sage Polo", + "sailor-stripe_tee": "Sailor-Stripe Tee", + "shirt_&_tie": "Shirt & Tie", + shirt_with_blue_hoodie: "Shirt with Blue Hoodie", + "shrimp-pink_polo": "Shrimp-Pink Polo", + striped_shirt: "Striped Shirt", + varsity_baseball_ls: "Varsity Baseball LS", + "whale-knit_sweater": "Whale-Knit Sweater", + white_shirt: "White Shirt", + white_striped_ls: "White Striped LS", + green_laceups: "Green Laceups", + hunting_boots: "Hunting Boots", + mawcasins: "Mawcasins", + piranha_moccasins: "Piranha Moccasins", + shark_moccasins: "Shark Moccasins", + strapping_reds: "Strapping Reds", + strapping_whites: "Strapping Whites", + "tea-green_hunting_boots": "Tea-Green Hunting Boots", + anglerfish_mask: "Anglerfish Mask", + bucket_hat: "Bucket Hat", + "eel-cake_hat": "Eel-Cake Hat", + festive_party_cone: "Festive Party Cone", + hockey_mask: "Hockey Mask", + koshien_bandana: "Koshien Bandana", + kyonshi_hat: "Kyonshi Hat", + lil_devil_horns: "Li'l Devil Horns", + "mecha_head_-_htr": "Mecha Head - HTR", + 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", + jetflame_crest: "Jetflame Crest", + fierce_fishskull: "Fierce Fishskull", + hivemind_antenna: "Hivemind Antenna", + eye_of_justice: "Eye of Justice", + anchor_sweat: "Anchor Sweat", + basic_tee: "Basic Tee", + black_anchor_tee: "Black Anchor Tee", + black_layered_ls: "Black Layered LS", + black_tee: "Black Tee", + "black_v-neck_tee": "Black V-Neck Tee", + camo_layered_ls: "Camo Layered LS", + friend_tee: "Friend Tee", + "green_v-neck_limited_tee": "Green V-Neck Limited Tee", + layered_anchor_ls: "Layered Anchor LS", + league_tee: "League Tee", + "mecha_body_-_akm": "Mecha Body - AKM", + octo_support_hoodie: "Octo Support Hoodie", + "red_v-neck_limited_tee": "Red V-Neck Limited Tee", + retro_sweat: "Retro Sweat", + splatfest_tee: "Splatfest Tee", + squid_yellow_layered_ls: "Squid Yellow Layered LS", + squidmark_ls: "Squidmark LS", + squidmark_sweat: "Squidmark Sweat", + swc_logo_tee: "SWC Logo Tee", + white_anchor_tee: "White Anchor Tee", + white_layered_ls: "White Layered LS", + white_ls: "White LS", + white_tee: "White Tee", + "white_v-neck_tee": "White V-Neck Tee", + yellow_layered_ls: "Yellow Layered LS", + "mecha_legs_-_lbs": "Mecha Legs - LBS", + takoroka_mesh: "Takoroka Mesh", + takoroka_visor: "Takoroka Visor", + choco_layered_ls: "Choco Layered LS", + fc_albacore: "FC Albacore", + gray_vector_tee: "Gray Vector Tee", + layered_vector_ls: "Layered Vector LS", + purple_camo_ls: "Purple Camo LS", + red_vector_tee: "Red Vector Tee", + slipstream_united: "Slipstream United", + striped_rugby: "Striped Rugby", + takoroka_crazy_baseball_ls: "Takoroka Crazy Baseball LS", + takoroka_galactic_tie_dye: "Takoroka Galactic Tie Dye", + takoroka_jersey: "Takoroka Jersey", + takoroka_nylon_vintage: "Takoroka Nylon Vintage", + takoroka_rainbow_tie_dye: "Takoroka Rainbow Tie Dye", + takoroka_windcrusher: "Takoroka Windcrusher", + tricolor_rugby: "Tricolor Rugby", + athletic_arrows: "Athletic Arrows", + blue_power_stripes: "Blue Power Stripes", + crazy_arrows: "Crazy Arrows", + le_soccer_shoes: "LE Soccer Shoes", + "new-day_arrows": "New-Day Arrows", + orange_arrows: "Orange Arrows", + "orca_hi-tops": "Orca Hi-Tops", + "orca_passion_hi-tops": "Orca Passion Hi-Tops", + "orca_woven_hi-tops": "Orca Woven Hi-Tops", + red_power_stripes: "Red Power Stripes", + soccer_shoes: "Soccer Shoes", + "sunset_orca_hi-tops": "Sunset Orca Hi-Tops", + trooper_power_stripes: "Trooper Power Stripes", + white_arrows: "White Arrows", + cycle_king_cap: "Cycle King Cap", + fake_contacts: "Fake Contacts", + green_novelty_visor: "Green Novelty Visor", + orange_novelty_visor: "Orange Novelty Visor", + pink_novelty_visor: "Pink Novelty Visor", + purple_novelty_visor: "Purple Novelty Visor", + soccer_headband: "Soccer Headband", + sun_visor: "Sun Visor", + tennis_headband: "Tennis Headband", + black_squideye: "Black Squideye", + blue_tentatek_tee: "Blue Tentatek Tee", + cycle_king_jersey: "Cycle King Jersey", + "lob-stars_jersey": "Lob-Stars Jersey", + "part-time_pirate": "Part-Time Pirate", + red_tentatek_tee: "Red Tentatek Tee", + silver_tentatek_vest: "Silver Tentatek Vest", + "sky-blue_squideye": "Sky-Blue Squideye", + tentatek_slogan_tee: "Tentatek Slogan Tee", + "amber_sea_slug_hi-tops": "Amber Sea Slug Hi-Tops", + black_norimaki_750s: "Black Norimaki 750s", + black_trainers: "Black Trainers", + blue_iromaki_750s: "Blue Iromaki 750s", + blue_sea_slugs: "Blue Sea Slugs", + canary_trainers: "Canary Trainers", + cyan_trainers: "Cyan Trainers", + "gray_sea-slug_hi-tops": "Gray Sea-Slug Hi-Tops", + green_iromaki_750s: "Green Iromaki 750s", + icy_down_boots: "Icy Down Boots", + neon_sea_slugs: "Neon Sea Slugs", + orange_iromaki_750s: "Orange Iromaki 750s", + pink_trainers: "Pink Trainers", + purple_iromaki_750s: "Purple Iromaki 750s", + purple_sea_slugs: "Purple Sea Slugs", + red_iromaki_750s: "Red Iromaki 750s", + red_sea_slugs: "Red Sea Slugs", + "red-mesh_sneakers": "Red-Mesh Sneakers", + sea_slug_volt_95s: "Sea Slug Volt 95s", + sesame_salt_270s: "Sesame Salt 270s", + snowy_down_boots: "Snowy Down Boots", + violet_trainers: "Violet Trainers", + white_norimaki_750s: "White Norimaki 750s", + yellow_iromaki_750s: "Yellow Iromaki 750s", + "yellow-mesh_sneakers": "Yellow-Mesh Sneakers", + face_visor: "Face Visor", + "ink-guard_goggles": "Ink-Guard Goggles", + toni_kensa_goggles: "Toni Kensa Goggles", + dark_bomber_jacket: "Dark Bomber Jacket", + front_zip_vest: "Front Zip Vest", + "half-sleeve_sweater": "Half-Sleeve Sweater", + "ink-wash_shirt": "Ink-Wash Shirt", + inkfall_shirt: "Inkfall Shirt", + kensa_coat: "Kensa Coat", + "kung-fu_zip-up": "Kung-Fu Zip-Up", + light_bomber_jacket: "Light Bomber Jacket", + negative_longcuff_sweater: "Negative Longcuff Sweater", + "panda_kung-fu_zip-up": "Panda Kung-Fu Zip-Up", + positive_longcuff_sweater: "Positive Longcuff Sweater", + pullover_coat: "Pullover Coat", + short_knit_layers: "Short Knit Layers", + 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", + backwards_cap: "Backwards Cap", + black_arrowbands: "Black Arrowbands", + double_egg_shades: "Double Egg Shades", + "five-panel_cap": "Five-Panel Cap", + jogging_headband: "Jogging Headband", + matte_bike_helmet: "Matte Bike Helmet", + mtb_helmet: "MTB Helmet", + tinted_shades: "Tinted Shades", + white_arrowbands: "White Arrowbands", + zekko_cap: "Zekko Cap", + zekko_mesh: "Zekko Mesh", + birded_corduroy_jacket: "Birded Corduroy Jacket", + black_ls: "Black LS", + black_polo: "Black Polo", + "deep-octo_satin_jacket": "Deep-Octo Satin Jacket", + gray_mixed_shirt: "Gray Mixed Shirt", + "green-check_shirt": "Green-Check Shirt", + logo_aloha_shirt: "Logo Aloha Shirt", + olive_zekko_parka: "Olive Zekko Parka", + "red-check_shirt": "Red-Check Shirt", + reel_sweat: "Reel Sweat", + squid_satin_jacket: "Squid Satin Jacket", + tumeric_zekko_coat: "Tumeric Zekko Coat", + varsity_jacket: "Varsity Jacket", + zapfish_satin_jacket: "Zapfish Satin Jacket", + zekko_baseball_ls: "Zekko Baseball LS", + zekko_hoodie: "Zekko Hoodie", + zekko_jade_coat: "Zekko Jade Coat", + zekko_long_carrot_tee: "Zekko Long Carrot Tee", + zekko_long_radish_tee: "Zekko Long Radish Tee", + zekko_redleaf_coat: "Zekko Redleaf Coat", + "black_flip-flops": "Black Flip-Flops", + "blue_lo-tops": "Blue Lo-Tops", + "le_lo-tops": "LE Lo-Tops", + "marination_lace-ups": "Marination Lace-Ups", + "orange_lo-tops": "Orange Lo-Tops", + "pearl-scout_lace-ups": "Pearl-Scout Lace-Ups", + "suede_gray_lace-ups": "Suede Gray Lace-Ups", + "suede_marine_lace-ups": "Suede Marine Lace-Ups", + "suede_nation_lace-ups": "Suede Nation Lace-Ups", + "b-ball_headband": "B-ball Headband", + cycling_cap: "Cycling Cap", + golf_visor: "Golf Visor", + squash_headband: "Squash Headband", + swim_goggles: "Swim Goggles", + "b-ball_jersey_(away)": "B-ball Jersey (Away)", + "b-ball_jersey_(home)": "B-ball Jersey (Home)", + cycling_shirt: "Cycling Shirt", + dakro_golden_tee: "Dakro Golden Tee", + dakro_nana_tee: "Dakro Nana Tee", + inkopolis_squaps_jersey: "Inkopolis Squaps Jersey", + navy_deca_logo_tee: "Navy Deca Logo Tee", + retro_gamer_jersey: "Retro Gamer Jersey", + school_jersey: "School Jersey", + urchins_jersey: "Urchins Jersey", + white_deca_logo_tee: "White Deca Logo Tee", + zink_layered_ls: "Zink Layered LS", + zink_ls: "Zink LS", + black_dakroniks: "Black Dakroniks", + black_seahorses: "Black Seahorses", + blue_laceless_dakroniks: "Blue Laceless Dakroniks", + chocolate_dakroniks: "Chocolate Dakroniks", + "gold_hi-horses": "Gold Hi-Horses", + mint_dakroniks: "Mint Dakroniks", + "purple_hi-horses": "Purple Hi-Horses", + "red_hi-horses": "Red Hi-Horses", + white_laceless_dakroniks: "White Laceless Dakroniks", + white_seahorses: "White Seahorses", + yellow_seahorses: "Yellow Seahorses", + "zombie_hi-horses": "Zombie Hi-Horses", +} as const; diff --git a/lib/lists/weaponMarkdownCodes.ts b/lib/lists/weaponMarkdownCodes.ts new file mode 100644 index 000000000..a8de72dc6 --- /dev/null +++ b/lib/lists/weaponMarkdownCodes.ts @@ -0,0 +1,141 @@ +export const weaponMarkdownCodes = { + "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.", + "splash-o-matic": "Splash-o-matic", + "neo_splash-o-matic": "Neo Splash-o-matic", + aerospray_mg: "Aerospray MG", + aerospray_rg: "Aerospray RG", + aerospray_pg: "Aerospray PG", + splattershot: "Splattershot", + hero_shot_replica: "Hero Shot Replica", + tentatek_splattershot: "Tentatek Splattershot", + octo_shot_replica: "Octo Shot Replica", + 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", + 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", + jet_squelcher: "Jet Squelcher", + custom_jet_squelcher: "Custom Jet Squelcher", + "l-3_nozzlenose": "L-3 Nozzlenose", + "l-3_nozzlenose_d": "L-3 Nozzlenose D", + "kensa_l-3_nozzlenose": "Kensa L-3 Nozzlenose", + "h-3_nozzlenose": "H-3 Nozzlenose", + "h-3_nozzlenose_d": "H-3 Nozzlenose D", + "cherry_h-3_nozzlenose": "Cherry H-3 Nozzlenose", + squeezer: "Squeezer", + foil_squeezer: "Foil Squeezer", + luna_blaster: "Luna Blaster", + luna_blaster_neo: "Luna Blaster Neo", + kensa_luna_blaster: "Kensa Luna Blaster", + blaster: "Blaster", + hero_blaster_replica: "Hero Blaster Replica", + custom_blaster: "Custom Blaster", + range_blaster: "Range Blaster", + custom_range_blaster: "Custom Range Blaster", + grim_range_blaster: "Grim Range Blaster", + rapid_blaster: "Rapid Blaster", + rapid_blaster_deco: "Rapid Blaster Deco", + kensa_rapid_blaster: "Kensa Rapid Blaster", + rapid_blaster_pro: "Rapid Blaster Pro", + rapid_blaster_pro_deco: "Rapid Blaster Pro Deco", + clash_blaster: "Clash Blaster", + clash_blaster_neo: "Clash Blaster Neo", + carbon_roller: "Carbon Roller", + carbon_roller_deco: "Carbon Roller Deco", + splat_roller: "Splat Roller", + hero_roller_replica: "Hero Roller Replica", + "krak-on_splat_roller": "Krak-On Splat Roller", + kensa_splat_roller: "Kensa Splat Roller", + dynamo_roller: "Dynamo Roller", + gold_dynamo_roller: "Gold Dynamo Roller", + kensa_dynamo_roller: "Kensa Dynamo Roller", + flingza_roller: "Flingza Roller", + foil_flingza_roller: "Foil Flingza Roller", + inkbrush: "Inkbrush", + inkbrush_nouveau: "Inkbrush Nouveau", + permanent_inkbrush: "Permanent Inkbrush", + octobrush: "Octobrush", + herobrush_replica: "Herobrush Replica", + octobrush_nouveau: "Octobrush Nouveau", + kensa_octobrush: "Kensa Octobrush", + classic_squiffer: "Classic Squiffer", + new_squiffer: "New Squiffer", + fresh_squiffer: "Fresh Squiffer", + splat_charger: "Splat Charger", + hero_charger_replica: "Hero Charger Replica", + firefin_splat_charger: "Firefin Splat Charger", + kensa_charger: "Kensa Charger", + splatterscope: "Splatterscope", + firefin_splatterscope: "Firefin Splatterscope", + kensa_splatterscope: "Kensa Splatterscope", + "e-liter_4k": "E-liter 4K", + "custom_e-liter_4k": "Custom E-liter 4K", + "e-liter_4k_scope": "E-liter 4K Scope", + "custom_e-liter_4k_scope": "Custom E-liter 4K Scope", + bamboozler_14_mk_i: "Bamboozler 14 Mk I", + bamboozler_14_mk_ii: "Bamboozler 14 Mk II", + bamboozler_14_mk_iii: "Bamboozler 14 Mk III", + goo_tuber: "Goo Tuber", + custom_goo_tuber: "Custom Goo Tuber", + slosher: "Slosher", + hero_slosher_replica: "Hero Slosher Replica", + slosher_deco: "Slosher Deco", + soda_slosher: "Soda Slosher", + "tri-slosher": "Tri-Slosher", + "tri-slosher_nouveau": "Tri-Slosher Nouveau", + sloshing_machine: "Sloshing Machine", + sloshing_machine_neo: "Sloshing Machine Neo", + kensa_sloshing_machine: "Kensa Sloshing Machine", + bloblobber: "Bloblobber", + bloblobber_deco: "Bloblobber Deco", + explosher: "Explosher", + custom_explosher: "Custom Explosher", + mini_splatling: "Mini Splatling", + zink_mini_splatling: "Zink Mini Splatling", + kensa_mini_splatling: "Kensa Mini Splatling", + heavy_splatling: "Heavy Splatling", + hero_splatling_replica: "Hero Splatling Replica", + heavy_splatling_deco: "Heavy Splatling Deco", + heavy_splatling_remix: "Heavy Splatling Remix", + hydra_splatling: "Hydra Splatling", + custom_hydra_splatling: "Custom Hydra Splatling", + ballpoint_splatling: "Ballpoint Splatling", + ballpoint_splatling_nouveau: "Ballpoint Splatling Nouveau", + nautilus_47: "Nautilus 47", + nautilus_79: "Nautilus 79", + dapple_dualies: "Dapple Dualies", + dapple_dualies_nouveau: "Dapple Dualies Nouveau", + clear_dapple_dualies: "Clear Dapple Dualies", + splat_dualies: "Splat Dualies", + hero_dualies_replicas: "Hero Dualie Replicas", + enperry_splat_dualies: "Enperry Splat Dualies", + kensa_splat_dualies: "Kensa Splat Dualies", + glooga_dualies: "Glooga Dualies", + glooga_dualies_deco: "Glooga Dualies Deco", + kensa_glooga_dualies: "Kensa Glooga Dualies", + dualie_squelchers: "Dualie Squelchers", + custom_dualie_squelchers: "Custom Dualie Squelchers", + dark_tetra_dualies: "Dark Tetra Dualies", + light_tetra_dualies: "Light Tetra Dualies", + splat_brella: "Splat Brella", + hero_brella_replica: "Hero Brella Replica", + sorella_brella: "Sorella Brella", + tenta_brella: "Tenta Brella", + tenta_sorella_brella: "Tenta Sorella Brella", + tenta_camo_brella: "Tenta Camo Brella", + undercover_brella: "Undercover Brella", + undercover_sorella_brella: "Undercover Sorella Brella", + kensa_undercover_brella: "Kensa Undercover Brella", +} as const; diff --git a/package-lock.json b/package-lock.json index f1a11b73c..f6db07bfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,9 @@ "nexus-plugin-prisma": "^0.22.0", "react": "^16.14.0", "react-dom": "^16.14.0", - "react-icons": "^3.11.0" + "react-icons": "^3.11.0", + "react-markdown": "^4.3.1", + "react-string-replace": "^0.4.4" }, "devDependencies": { "@graphql-codegen/cli": "1.17.10", @@ -4988,6 +4990,15 @@ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -5508,6 +5519,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -5709,6 +5747,15 @@ "node": ">=0.10.0" } }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -6911,8 +6958,7 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/extend-shallow": { "version": "2.0.1", @@ -7919,6 +7965,64 @@ "react-is": "^16.7.0" } }, + "node_modules/html-to-react": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.4.tgz", + "integrity": "sha512-oE4GYH8c/gvFQwfNHBhg1LpfiPsQRKj0JQmvccvUHqyyF7U1H7UzZ7Z6CyF7okv1QFukyvjH9aAApNa4kYSO9g==", + "dependencies": { + "domhandler": "^3.3.0", + "htmlparser2": "^5.0", + "lodash.camelcase": "^4.3.0", + "ramda": "^0.27.1" + }, + "peerDependencies": { + "react": "^16.0" + } + }, + "node_modules/html-to-react/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/html-to-react/node_modules/domutils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.2.tgz", + "integrity": "sha512-NKbgaM8ZJOecTZsIzW5gSuplsX2IWW2mIK7xVr8hTQF2v1CJWTmLZ1HOCh5sH+IzVPAGE5IucooOkvwBRAdowA==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/html-to-react/node_modules/htmlparser2": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.0.tgz", + "integrity": "sha512-/Cvz5RTj9q71kCL9No1u2jhFaAdoMtxpNy0YTwjmQB3iX2TZXfCojTm7tp3rM4NxcwaX1iAzvNgo8OFectXmrQ==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + }, + "peerDependencies": { + "@types/node": "^14.0.5" + } + }, "node_modules/htmlparser2": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", @@ -8196,6 +8300,28 @@ "node": ">=0.10.0" } }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -8262,6 +8388,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -8319,6 +8454,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-negative-zero": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", @@ -8357,6 +8501,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -8440,6 +8592,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -8448,6 +8609,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -9087,6 +9257,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -9382,6 +9557,15 @@ "node": ">=0.10.0" } }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9392,6 +9576,14 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/mdast-add-list-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", + "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", + "dependencies": { + "unist-util-visit-parents": "1.1.2" + } + }, "node_modules/memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", @@ -10832,6 +11024,19 @@ "safe-buffer": "^5.1.1" } }, + "node_modules/parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -11408,6 +11613,11 @@ "node": ">=0.4.x" } }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -11593,6 +11803,24 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/react-markdown": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz", + "integrity": "sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw==", + "dependencies": { + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^5.0.0", + "unified": "^6.1.5", + "unist-util-visit": "^1.3.0", + "xtend": "^4.0.1" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0" + } + }, "node_modules/react-refresh": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", @@ -11646,6 +11874,17 @@ } } }, + "node_modules/react-string-replace": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", + "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", + "dependencies": { + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/react-style-singleton": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.0.tgz", @@ -11956,6 +12195,28 @@ "fbjs": "^1.0.0" } }, + "node_modules/remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dependencies": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, "node_modules/remedial": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", @@ -11992,6 +12253,14 @@ "node": ">=0.10" } }, + "node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/replaceall": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", @@ -12827,6 +13096,15 @@ "node": ">=8" } }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -13684,6 +13962,29 @@ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", + "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-invariant": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", @@ -13826,6 +14127,19 @@ "node": ">=0.10.0" } }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -13862,6 +14176,19 @@ "node": ">=4" } }, + "node_modules/unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -13897,6 +14224,49 @@ "imurmurhash": "^0.1.4" } }, + "node_modules/unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "node_modules/unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "dependencies": { + "unist-util-visit": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "node_modules/unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dependencies": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dependencies": { + "unist-util-is": "^3.0.0" + } + }, "node_modules/universalify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", @@ -14204,6 +14574,34 @@ "extsprintf": "^1.2.0" } }, + "node_modules/vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "dependencies": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "node_modules/vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "dependencies": { + "unist-util-stringify-position": "^1.1.1" + } + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -15005,6 +15403,11 @@ "async-limiter": "~1.0.0" } }, + "node_modules/x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + }, "node_modules/xss": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", @@ -19257,6 +19660,11 @@ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -19686,6 +20094,21 @@ "supports-color": "^7.1.0" } }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -19844,6 +20267,11 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -20867,8 +21295,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "2.0.1", @@ -21668,6 +22095,48 @@ "react-is": "^16.7.0" } }, + "html-to-react": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.4.tgz", + "integrity": "sha512-oE4GYH8c/gvFQwfNHBhg1LpfiPsQRKj0JQmvccvUHqyyF7U1H7UzZ7Z6CyF7okv1QFukyvjH9aAApNa4kYSO9g==", + "requires": { + "domhandler": "^3.3.0", + "htmlparser2": "^5.0", + "lodash.camelcase": "^4.3.0", + "ramda": "^0.27.1" + }, + "dependencies": { + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.2.tgz", + "integrity": "sha512-NKbgaM8ZJOecTZsIzW5gSuplsX2IWW2mIK7xVr8hTQF2v1CJWTmLZ1HOCh5sH+IzVPAGE5IucooOkvwBRAdowA==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0" + } + }, + "htmlparser2": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.0.tgz", + "integrity": "sha512-/Cvz5RTj9q71kCL9No1u2jhFaAdoMtxpNy0YTwjmQB3iX2TZXfCojTm7tp3rM4NxcwaX1iAzvNgo8OFectXmrQ==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + } + } + } + }, "htmlparser2": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", @@ -21894,6 +22363,20 @@ } } }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -21941,6 +22424,11 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -21982,6 +22470,11 @@ "is-extglob": "^2.1.1" } }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, "is-negative-zero": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", @@ -22010,6 +22503,11 @@ } } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -22069,11 +22567,21 @@ "unc-path-regex": "^0.1.2" } }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -22585,6 +23093,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -22820,6 +23333,11 @@ "object-visit": "^1.0.0" } }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -22830,6 +23348,14 @@ "safe-buffer": "^5.1.2" } }, + "mdast-add-list-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", + "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", + "requires": { + "unist-util-visit-parents": "1.1.2" + } + }, "memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", @@ -24015,6 +24541,19 @@ "safe-buffer": "^5.1.1" } }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -24465,6 +25004,11 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -24614,6 +25158,21 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-markdown": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz", + "integrity": "sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw==", + "requires": { + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^5.0.0", + "unified": "^6.1.5", + "unist-util-visit": "^1.3.0", + "xtend": "^4.0.1" + } + }, "react-refresh": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", @@ -24640,6 +25199,14 @@ "tslib": "^1.0.0" } }, + "react-string-replace": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", + "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", + "requires": { + "lodash": "^4.17.4" + } + }, "react-style-singleton": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.0.tgz", @@ -24889,6 +25456,28 @@ "fbjs": "^1.0.0" } }, + "remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, "remedial": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", @@ -24916,6 +25505,11 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, "replaceall": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", @@ -25578,6 +26172,11 @@ } } }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -26258,6 +26857,21 @@ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-trailing-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", + "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, "ts-invariant": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", @@ -26358,6 +26972,15 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -26382,6 +27005,19 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, + "unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -26414,6 +27050,47 @@ "imurmurhash": "^0.1.4" } }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + }, + "dependencies": { + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "unist-util-visit-parents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + }, "universalify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", @@ -26645,6 +27322,30 @@ "extsprintf": "^1.2.0" } }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -27304,6 +28005,11 @@ "async-limiter": "~1.0.0" } }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + }, "xss": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", diff --git a/package.json b/package.json index a765a8110..3b31eceb5 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,9 @@ "nexus-plugin-prisma": "^0.22.0", "react": "^16.14.0", "react-dom": "^16.14.0", - "react-icons": "^3.11.0" + "react-icons": "^3.11.0", + "react-markdown": "^4.3.1", + "react-string-replace": "^0.4.4" }, "devDependencies": { "@graphql-codegen/cli": "1.17.10", diff --git a/pages/_app.tsx b/pages/_app.tsx index dfc00ee66..2ccfb6368 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -7,6 +7,7 @@ import Layout from "scenes/Layout"; const MyApp = (props: AppProps) => { const apolloClient = useApollo(props.pageProps.initialApolloState); + // FIXME: on initial load components render twice return ( diff --git a/scenes/Profile/components/AvatarWithInfo.tsx b/scenes/Profile/components/AvatarWithInfo.tsx new file mode 100644 index 000000000..4b2e66333 --- /dev/null +++ b/scenes/Profile/components/AvatarWithInfo.tsx @@ -0,0 +1,115 @@ +import { Avatar, Box, Flex, Heading } from "@chakra-ui/core"; +import Flag from "components/Flag"; +import WeaponImage from "components/WeaponImage"; +import { GetUserByIdentifierQuery } from "generated/graphql"; +import { useTranslation } from "lib/useMockT"; +import { useMyTheme } from "lib/useMyTheme"; +import { FaGamepad, FaTwitch, FaYoutube } from "react-icons/fa"; + +interface AvatarWithInfoProps { + user: NonNullable; +} + +const AvatarWithInfo: React.FC = ({ user }) => { + const { gray } = useMyTheme(); + const { t } = useTranslation(); + + function getSensString( + motion: number | null | undefined, + stick: number + ): string { + const stickSensString = `${stick > 0 ? "+" : ""}${stick} ${t( + "users;Stick" + )}`; + const motionSensString = !!motion + ? ` ${motion > 0 ? "+" : ""}${motion} ${t("users;Motion")}` + : ""; + + return `${stickSensString} ${motionSensString}`; + } + + return ( + <> + + + + + + {user.fullUsername} + + {user.profile?.country && } + + + + {/* FIXME: + user.twitter_name && ( + + + + {user.twitter_name} + + + )*/} + {user.profile?.twitchName && ( + + + + {user.profile.twitchName} + + + )} + {user.profile?.youtubeId && ( + + + + YouTube + + + )} + {user.profile?.sensStick && + (!!user.profile.sensStick || user.profile.sensStick === 0) && ( + + + {getSensString( + user.profile.sensMotion, + user.profile.sensStick + )} + + )} + {user.profile?.weaponPool.length && ( + + {user.profile.weaponPool.map((wpn) => ( + + + + ))} + + )} + + + + + + ); +}; + +export default AvatarWithInfo; diff --git a/scenes/Profile/index.tsx b/scenes/Profile/index.tsx index 2a020f0f8..423d63d14 100644 --- a/scenes/Profile/index.tsx +++ b/scenes/Profile/index.tsx @@ -1,14 +1,42 @@ +import { Box } from "@chakra-ui/core"; +import Markdown from "components/Markdown"; +import MyHead from "components/MyHead"; import { GetUserByIdentifierQuery } from "generated/graphql"; - -interface ProfileProps {} +import AvatarWithInfo from "./components/AvatarWithInfo"; interface Props { user: NonNullable; } const Profile: React.FC = ({ user }) => { - console.log({ user }); - return <>hello from profile; + return ( + <> + + + {user.profile?.bio && ( + + + + )} + {/*FIXME: + + + {tabs.map((tabObj) => ( + + {" "} + {tabObj.title} + + ))} + + {tabs.map((tabObj) => tabObj.content)} + */} + + ); }; export default Profile;