├── public ├── icon.png ├── favicon.ico ├── zelda-background.jpg ├── zeit.svg └── data │ ├── eras.json │ ├── games.json │ ├── staff.json │ └── bosses.json ├── vercel.json ├── db ├── loader.js └── driver.js ├── package.json ├── next.config.js ├── pages ├── api │ ├── games │ │ ├── [id].js │ │ └── index.js │ ├── graphql │ │ ├── index.js │ │ ├── typeDef.js │ │ └── resolvers.js │ ├── items │ │ ├── [id].js │ │ └── index.js │ ├── eras │ │ ├── [id].js │ │ └── index.js │ ├── monsters │ │ ├── [id].js │ │ └── index.js │ ├── staff │ │ ├── [id].js │ │ └── index.js │ ├── bosses │ │ ├── [id].js │ │ └── index.js │ ├── dungeons │ │ ├── [id].js │ │ └── index.js │ ├── places │ │ ├── [id].js │ │ └── index.js │ └── characters │ │ ├── [id].js │ │ └── index.js └── index.js ├── utils └── responsePipes.js ├── LICENSE ├── .gitignore ├── README.md └── yarn.lock /public/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deliton/zelda-api/HEAD/public/icon.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deliton/zelda-api/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/zelda-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deliton/zelda-api/HEAD/public/zelda-background.jpg -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zelda-mongodb", 3 | "version": 2, 4 | "env": { 5 | "MONGODB_URI": "@my-mongodb-uri" 6 | }, 7 | "build": { 8 | "env": { 9 | "MONGODB_URI": "@my-mongodb-uri" 10 | } 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /db/loader.js: -------------------------------------------------------------------------------- 1 | import { readFile } from "fs/promises"; 2 | import path from "path"; 3 | 4 | var data = {}; 5 | 6 | export const JSONLoader = async (model) => { 7 | if (!model) { 8 | return; 9 | } 10 | if (!data[model]) { 11 | data[model] = JSON.parse(await readFile(path.resolve(process.cwd(), `./public/data/${model}.json`))); 12 | } 13 | return data[model]; 14 | }; 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zelda-api", 3 | "version": "0.1.0", 4 | "scripts": { 5 | "dev": "next dev", 6 | "build": "next build", 7 | "start": "next start" 8 | }, 9 | "dependencies": { 10 | "apollo-server-core": "^3.6.2", 11 | "apollo-server-micro": "^3.6.2", 12 | "graphql": "^16.3.0", 13 | "micro": "^9.3.4", 14 | "next": "12", 15 | "react": "^16.13.1", 16 | "react-dom": "^16.13.1" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | async headers() { 3 | return [ 4 | { 5 | source: "/:path*", 6 | headers: [ 7 | { 8 | key: "cache-control", 9 | value: "s-maxage=3600, stale-while-revalidate", 10 | }, 11 | { key: "Access-Control-Allow-Credentials", value: "true" }, 12 | { key: "Access-Control-Allow-Origin", value: "*" }, 13 | { key: "Access-Control-Allow-Methods", value: "GET,OPTIONS,POST" }, 14 | { 15 | key: "Access-Control-Allow-Headers", 16 | value: "Origin, X-Requested-With, Content-Type, Accept", 17 | }, 18 | ], 19 | }, 20 | ]; 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /pages/api/games/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | 3 | export default async function handler(req, res) { 4 | const { 5 | query: { id }, 6 | method, 7 | } = req; 8 | 9 | const Game = new JSONDriver("games"); 10 | await Game.init(); 11 | 12 | switch (method) { 13 | case "GET": 14 | try { 15 | const game = Game.findById(id); 16 | res 17 | .status(200) 18 | .json({ success: true, count: game.data.length, data: game.data }); 19 | } catch (error) { 20 | res.status(400).json({ success: false }); 21 | } 22 | break; 23 | default: 24 | res.status(400).json({ success: false }); 25 | break; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /pages/api/graphql/index.js: -------------------------------------------------------------------------------- 1 | import { ApolloServer } from "apollo-server-micro"; 2 | import { typeDefs } from "./typeDef"; 3 | import { resolvers } from "./resolvers"; 4 | import { ApolloServerPluginLandingPageGraphQLPlayground } from "apollo-server-core"; 5 | 6 | const apolloServer = new ApolloServer({ 7 | typeDefs, 8 | resolvers, 9 | introspection: true, 10 | plugins: [ApolloServerPluginLandingPageGraphQLPlayground({})], 11 | }); 12 | 13 | export const config = { 14 | api: { 15 | bodyParser: false, 16 | }, 17 | }; 18 | 19 | const startServer = apolloServer.start(); 20 | 21 | export default async function handler(req, res) { 22 | await startServer; 23 | await apolloServer.createHandler({ 24 | path: "/api/graphql", 25 | })(req, res); 26 | } 27 | -------------------------------------------------------------------------------- /pages/api/items/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req 9 | 10 | const Item = new JSONDriver("items"); 11 | await Item.init(); 12 | 13 | switch (method) { 14 | case 'GET': 15 | try { 16 | const item = Item.findById(id); 17 | item.data = parseOneObject(item.data, "games/", "games"); 18 | res.status(200).json({ success: true, count: item.data.length, data: item.data }) 19 | } catch (error) { 20 | res.status(400).json({ success: false }) 21 | } 22 | break 23 | default: 24 | res.status(400).json({ success: false }) 25 | break 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /pages/api/eras/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Era = new JSONDriver("eras"); 11 | await Era.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const era = Era.findById(id); 17 | era.data = parseOneObject(era.data, "games/", "games"); 18 | res.status(200).json({ success: true, count: era.data.length, data: era.data }); 19 | } catch (error) { 20 | res.status(400).json({ success: false, message: error }); 21 | } 22 | break; 23 | default: 24 | res.status(400).json({ success: false }); 25 | break; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /public/zeit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /pages/api/monsters/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req 9 | 10 | const Monster = new JSONDriver("monsters"); 11 | await Monster.init(); 12 | 13 | switch (method) { 14 | case 'GET': 15 | try { 16 | const monster = Monster.findById(id); 17 | monster.data = parseOneObject(monster.data, "games/", "appearances"); 18 | res.status(200).json({ success: true, count: monster.data.length, data: monster.data }) 19 | } catch (error) { 20 | res.status(400).json({ success: false }) 21 | } 22 | break 23 | default: 24 | res.status(400).json({ success: false }) 25 | break 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /pages/api/staff/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Staff = new JSONDriver("staff"); 11 | await Staff.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const staff = Staff.findById(id); 17 | staff.data = parseOneObject(staff.data, "games/", "worked_on"); 18 | res 19 | .status(200) 20 | .json({ success: true, count: staff.data.length, data: staff.data }); 21 | } catch (error) { 22 | res.status(400).json({ success: false }); 23 | } 24 | break; 25 | default: 26 | res.status(400).json({ success: false }); 27 | break; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /pages/api/bosses/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Boss = new JSONDriver("bosses"); 11 | await Boss.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const boss = Boss.findById(id); 17 | boss.data = parseOneObject(boss.data, "games/", "appearances"); 18 | boss.data = parseOneObject(boss.data, "dungeons/", "dungeons"); 19 | res 20 | .status(200) 21 | .json({ success: true, count: boss.data.length, data: boss.data }); 22 | } catch (error) { 23 | res.status(400).json({ success: false }); 24 | } 25 | break; 26 | default: 27 | res.status(400).json({ success: false }); 28 | break; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /pages/api/dungeons/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Dungeon = new JSONDriver("dungeons"); 11 | await Dungeon.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const dungeon = Dungeon.findById(id); 17 | dungeon.data = parseOneObject(dungeon.data, "games/", "appearances"); 18 | res 19 | .status(200) 20 | .json({ 21 | success: true, 22 | count: dungeon.data.length, 23 | data: dungeon.data, 24 | }); 25 | } catch (error) { 26 | res.status(400).json({ success: false }); 27 | } 28 | break; 29 | default: 30 | res.status(400).json({ success: false }); 31 | break; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /pages/api/places/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Place = new JSONDriver("places"); 11 | await Place.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const place = await Place.findById(id); 17 | place.data = parseOneObject(place.data, "games/", "appearances"); 18 | place.data = parseOneObject(place.data, "characters/", "inhabitants"); 19 | res 20 | .status(200) 21 | .json({ success: true, count: place.data.length, data: place.data }); 22 | } catch (error) { 23 | res.status(400).json({ success: false }); 24 | } 25 | break; 26 | default: 27 | res.status(400).json({ success: false }); 28 | break; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /pages/api/characters/[id].js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseOneObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { 6 | query: { id }, 7 | method, 8 | } = req; 9 | 10 | const Character = new JSONDriver("characters"); 11 | await Character.init(); 12 | 13 | switch (method) { 14 | case "GET": 15 | try { 16 | const character = Character.findById(id); 17 | character.data = parseOneObject(character.data, "games/", "appearances"); 18 | res 19 | .status(200) 20 | .json({ 21 | success: true, 22 | count: character.data.length, 23 | data: character.data, 24 | }); 25 | } catch (error) { 26 | res.status(400).json({ success: false }); 27 | } 28 | break; 29 | default: 30 | res.status(400).json({ success: false }); 31 | break; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /utils/responsePipes.js: -------------------------------------------------------------------------------- 1 | function parseLimit(limit) { 2 | if (limit != null) { 3 | var intLimit = parseInt(limit, 10); 4 | if (intLimit > 50) { 5 | return 50; 6 | } else { 7 | return intLimit; 8 | } 9 | } else { 10 | return 20; 11 | } 12 | } 13 | 14 | function parseObject(object, apiPath, objectName) { 15 | const root_path = process.env.API_URL ? process.env.API_URL : "https://zelda.fanapis.com/api/" 16 | return object.map((entries) => { 17 | return { 18 | ...entries, 19 | [objectName]: entries[objectName].map( 20 | (objectId) => root_path + apiPath + objectId 21 | ), 22 | }; 23 | }); 24 | } 25 | 26 | function parseOneObject(object, apiPath, objectName) { 27 | const root_path = process.env.API_URL ? process.env.API_URL : "https://zelda.fanapis.com/api/" 28 | const entries = object[objectName].map( 29 | (objectId) => root_path + apiPath + objectId 30 | ); 31 | return { 32 | ...object, 33 | [objectName]: entries, 34 | } 35 | } 36 | 37 | module.exports = { parseObject, parseOneObject, parseLimit }; 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Deliton Junior 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /pages/api/games/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | 3 | export default async function handler(req, res) { 4 | const { method } = req; 5 | const pageOptions = { 6 | page: parseInt(req.query.page, 10) || 0, 7 | limit: parseInt(req.query.limit, 10) || 20, 8 | name: req.query.name || undefined, 9 | }; 10 | 11 | const Game = new JSONDriver("games"); 12 | await Game.init(); 13 | 14 | switch (method) { 15 | case "GET": 16 | try { 17 | var games = []; 18 | if (pageOptions.name) { 19 | games = Game.search({ name: pageOptions.name }) 20 | .skip(pageOptions.page * pageOptions.limit) 21 | .limit(pageOptions.limit); 22 | } else { 23 | games = Game.findMany() 24 | .skip(pageOptions.page * pageOptions.limit) 25 | .limit(pageOptions.limit); 26 | } 27 | 28 | res 29 | .status(200) 30 | .json({ success: true, count: games.data.length, data: games.data }); 31 | } catch (error) { 32 | res.status(400).json({ success: false }); 33 | } 34 | break; 35 | default: 36 | res.status(400).json({ success: false }); 37 | break; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /pages/api/items/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Item = new JSONDriver("items"); 13 | await Item.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var items; 19 | if (pageOptions.name) { 20 | items = Item.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | items = Item.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | items.data = parseObject(items.data, "games/", "games"); 29 | res 30 | .status(200) 31 | .json({ success: true, count: items.data.length, data: items.data }); 32 | } catch (error) { 33 | res.status(400).json({ success: false }); 34 | } 35 | break; 36 | default: 37 | res.status(400).json({ success: false }); 38 | break; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /pages/api/eras/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Era = new JSONDriver("eras"); 13 | await Era.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var eras; 19 | if (pageOptions.name) { 20 | eras = Era.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | eras = Era.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | eras.data = parseObject(eras.data, "games/", "games"); 29 | res 30 | .status(200) 31 | .json({ success: true, count: eras.data.length, data: eras.data }); 32 | } catch (error) { 33 | res.status(400).json({ success: false, message: error }); 34 | } 35 | break; 36 | default: 37 | res.status(400).json({ success: false }); 38 | break; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /pages/api/staff/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { 3 | parseLimit, 4 | parseObject, 5 | parseWorkedOn, 6 | } from "../../../utils/responsePipes"; 7 | 8 | export default async function handler(req, res) { 9 | const { method } = req; 10 | const pageOptions = { 11 | page: parseInt(req.query.page, 10) || 0, 12 | limit: parseLimit(req.query.limit), 13 | name: req.query.name || undefined, 14 | }; 15 | 16 | const Staff = new JSONDriver("staff"); 17 | await Staff.init(); 18 | 19 | switch (method) { 20 | case "GET": 21 | try { 22 | var staff; 23 | if (pageOptions.name) { 24 | staff = Staff.search({ name: pageOptions.name }) 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } else { 28 | staff = Staff.findMany() 29 | .skip(pageOptions.page * pageOptions.limit) 30 | .limit(pageOptions.limit); 31 | } 32 | staff.data = parseObject(staff.data, "games/", "worked_on"); 33 | res 34 | .status(200) 35 | .json({ success: true, count: staff.data.length, data: staff.data }); 36 | } catch (error) { 37 | res.status(400).json({ success: false }); 38 | } 39 | break; 40 | default: 41 | res.status(400).json({ success: false }); 42 | break; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /pages/api/dungeons/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Dungeon = new JSONDriver("dungeons"); 13 | await Dungeon.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var dungeons; 19 | if (pageOptions.name) { 20 | dungeons = Dungeon.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | dungeons = Dungeon.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | dungeons.data = parseObject(dungeons.data, "games/", "appearances"); 29 | res 30 | .status(200) 31 | .json({ 32 | success: true, 33 | count: dungeons.data.length, 34 | data: dungeons.data, 35 | }); 36 | } catch (error) { 37 | res.status(400).json({ success: false }); 38 | } 39 | break; 40 | default: 41 | res.status(400).json({ success: false }); 42 | break; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /pages/api/monsters/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Monster = new JSONDriver("monsters"); 13 | await Monster.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var monsters; 19 | if (pageOptions.name) { 20 | monsters = Monster.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | monsters = await Monster.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | monsters.data = parseObject(monsters.data, "games/", "appearances"); 29 | res 30 | .status(200) 31 | .json({ 32 | success: true, 33 | count: monsters.data.length, 34 | data: monsters.data, 35 | }); 36 | } catch (error) { 37 | res.status(400).json({ success: false }); 38 | } 39 | break; 40 | default: 41 | res.status(400).json({ success: false }); 42 | break; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /pages/api/characters/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Character = new JSONDriver("characters"); 13 | await Character.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var characters; 19 | if (pageOptions.name) { 20 | characters = Character.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | characters = Character.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | characters.data = parseObject(characters.data, "games/", "appearances"); 29 | 30 | res.status(200).json({ 31 | success: true, 32 | count: characters.data.length, 33 | data: characters.data, 34 | }); 35 | } catch (error) { 36 | res.status(400).json({ success: false, message: error }); 37 | } 38 | break; 39 | default: 40 | res.status(400).json({ success: false }); 41 | break; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /pages/api/bosses/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Boss = new JSONDriver("bosses"); 13 | await Boss.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var bosses; 19 | if (pageOptions.name) { 20 | bosses = Boss.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | bosses = Boss.findMany() 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | bosses.data = parseObject(bosses.data, "games/", "appearances"); 29 | bosses.data = parseObject(bosses.data, "dungeons/", "dungeons"); 30 | res.status(200).json({ 31 | success: true, 32 | count: bosses.data.length, 33 | data: bosses.data, 34 | }); 35 | } catch (error) { 36 | res.status(400).json({ success: false, message: error }); 37 | } 38 | break; 39 | default: 40 | res.status(400).json({ success: false }); 41 | break; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /pages/api/places/index.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit, parseObject } from "../../../utils/responsePipes"; 3 | 4 | export default async function handler(req, res) { 5 | const { method } = req; 6 | const pageOptions = { 7 | page: parseInt(req.query.page, 10) || 0, 8 | limit: parseLimit(req.query.limit), 9 | name: req.query.name || undefined, 10 | }; 11 | 12 | const Place = new JSONDriver("places"); 13 | await Place.init(); 14 | 15 | switch (method) { 16 | case "GET": 17 | try { 18 | var places; 19 | if (pageOptions.name) { 20 | places = await Place.search({ name: pageOptions.name }) 21 | .skip(pageOptions.page * pageOptions.limit) 22 | .limit(pageOptions.limit); 23 | } else { 24 | places = await Place.findMany({}) 25 | .skip(pageOptions.page * pageOptions.limit) 26 | .limit(pageOptions.limit); 27 | } 28 | places.data = parseObject(places.data, "games/", "appearances"); 29 | places.data = parseObject(places.data, "characters/", "inhabitants"); 30 | res 31 | .status(200) 32 | .json({ 33 | success: true, 34 | count: places.data.length, 35 | data: places.data, 36 | }); 37 | } catch (error) { 38 | res.status(400).json({ success: false }); 39 | } 40 | break; 41 | default: 42 | res.status(400).json({ success: false }); 43 | break; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | #Locla Environment 107 | .env 108 | 109 | .vercel 110 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import Link from 'next/link' 2 | import Head from 'next/head' 3 | 4 | const siteTitle = "Zelda API" 5 | 6 | function Index() { 7 | return ( 8 |
9 | 10 | 11 | The Ultimate Zelda API 12 | 16 | 22 | 23 | 24 | 25 | 26 |
27 |
28 | 29 |
30 | 32 | Go to Documentation 33 | 34 |
35 |
36 |
37 | 38 | 92 |
93 | ) 94 | } 95 | 96 | export default Index 97 | -------------------------------------------------------------------------------- /pages/api/graphql/typeDef.js: -------------------------------------------------------------------------------- 1 | import { gql } from "apollo-server-micro"; 2 | 3 | export const typeDefs = gql` 4 | type Game { 5 | id: ID! 6 | name: String 7 | description: String 8 | developer: String 9 | publisher: String 10 | released_date: String 11 | } 12 | 13 | type Dungeon { 14 | id: ID! 15 | name: String 16 | description: String 17 | appearances: [Game] 18 | } 19 | 20 | type Boss { 21 | id: ID! 22 | name: String 23 | description: String 24 | appearances: [Game] 25 | dungeons: [Dungeon] 26 | } 27 | 28 | type Character { 29 | id: ID! 30 | name: String 31 | description: String 32 | gender: String 33 | race: String 34 | appearances: [Game] 35 | } 36 | 37 | type Era { 38 | id: ID! 39 | name: String 40 | description: String 41 | games: [Game] 42 | } 43 | 44 | type Item { 45 | id: ID! 46 | name: String 47 | description: String 48 | games: [Game] 49 | } 50 | 51 | type Monster { 52 | id: ID! 53 | name: String 54 | description: String 55 | appearances: [Game] 56 | } 57 | 58 | type Place { 59 | id: ID! 60 | name: String 61 | description: String 62 | appearances: [Game] 63 | inhabitants: [Character] 64 | } 65 | 66 | type Staff { 67 | id: ID! 68 | name: String 69 | worked_on: [Game] 70 | } 71 | 72 | type Query { 73 | games( 74 | id: ID 75 | name: String 76 | description: String 77 | developer: String 78 | released_date: String 79 | page: Int = 0 80 | limit: Int 81 | ): [Game] 82 | getGame(id: String!): Game! 83 | 84 | dungeons( 85 | id: ID 86 | name: String 87 | description: String 88 | page: Int = 0 89 | limit: Int 90 | ): [Dungeon] 91 | getDungeon(id: String!): Dungeon! 92 | 93 | bosses( 94 | id: ID 95 | name: String 96 | description: String 97 | page: Int = 0 98 | limit: Int 99 | ): [Boss] 100 | getBoss(id: String!): Boss! 101 | 102 | characters( 103 | id: ID 104 | name: String 105 | description: String 106 | page: Int = 0 107 | limit: Int 108 | ): [Character] 109 | getCharacter(id: String!): Character! 110 | 111 | eras( 112 | id: ID 113 | name: String 114 | description: String 115 | page: Int = 0 116 | limit: Int 117 | ): [Era] 118 | getEra(id: String!): Era! 119 | 120 | items( 121 | id: ID 122 | name: String 123 | description: String 124 | page: Int = 0 125 | limit: Int 126 | ): [Item] 127 | getItem(id: String!): Item! 128 | 129 | monsters( 130 | id: ID 131 | name: String 132 | description: String 133 | page: Int = 0 134 | limit: Int 135 | ): [Monster] 136 | getMonster(id: String!): Monster! 137 | 138 | places( 139 | id: ID 140 | name: String 141 | description: String 142 | page: Int = 0 143 | limit: Int 144 | ): [Place] 145 | getPlace(id: String!): Place! 146 | 147 | staff(id: ID, name: String, page: Int = 0, limit: Int): [Staff] 148 | getStaff(id: String!): Staff! 149 | } 150 | `; 151 | -------------------------------------------------------------------------------- /db/driver.js: -------------------------------------------------------------------------------- 1 | import { JSONLoader } from "./loader"; 2 | import { readFile } from "fs/promises"; 3 | 4 | const NOT_INITIALIZED_ERROR = "JSON driver not initialized. run init() first"; 5 | const ID_NOT_FOUND_ERROR = "ID cannot be undefined."; 6 | 7 | export class JSONDriver { 8 | constructor(model) { 9 | this.model = model; 10 | this.isInitialized = false; 11 | } 12 | data; 13 | model; 14 | isInitialized; 15 | 16 | async init() { 17 | this.data = await JSONLoader(this.model); 18 | this.isInitialized = true; 19 | return this; 20 | } 21 | 22 | findMany(filters) { 23 | if (!this.isInitialized) { 24 | throw new Error(NOT_INITIALIZED_ERROR); 25 | } 26 | if (!filters) { 27 | return this; 28 | } 29 | this.data = this.data.filter((entry) => { 30 | for (let key in filters) { 31 | if (entry[key] === undefined || entry[key] != filters[key]) { 32 | return false; 33 | } 34 | } 35 | return true; 36 | }); 37 | return this; 38 | } 39 | 40 | findById(id) { 41 | if (!id) { 42 | throw new Error(ID_NOT_FOUND_ERROR); 43 | } 44 | if (!this.isInitialized) { 45 | throw new Error(NOT_INITIALIZED_ERROR); 46 | } 47 | this.data = this.data.find((entry) => entry.id === id); 48 | return this; 49 | } 50 | 51 | skip(begin = 0, end) { 52 | if (!this.isInitialized) { 53 | throw new Error(NOT_INITIALIZED_ERROR); 54 | } 55 | this.data = this.data.slice(begin, end); 56 | 57 | return this; 58 | } 59 | 60 | limit(amount) { 61 | if (!this.isInitialized) { 62 | throw new Error(NOT_INITIALIZED_ERROR); 63 | } 64 | this.data = this.data.slice(0, amount); 65 | 66 | return this; 67 | } 68 | 69 | search(fields) { 70 | if (!this.isInitialized) { 71 | throw new Error(NOT_INITIALIZED_ERROR); 72 | } 73 | if (!fields) { 74 | return this; 75 | } 76 | this.data = this.data.filter((entry) => { 77 | for (let key in fields) { 78 | if (entry[key] !== undefined && entry[key].match(fields[key])) { 79 | return true; 80 | } 81 | } 82 | return false; 83 | }); 84 | 85 | return this; 86 | } 87 | 88 | async join({ model, on }) { 89 | if (!this.isInitialized) { 90 | throw new Error(NOT_INITIALIZED_ERROR); 91 | } 92 | if (!model) { 93 | throw new Error("Model cannot be undefined."); 94 | } 95 | if (!on) { 96 | throw new Error("On cannot be undefined."); 97 | } 98 | const loadedModel = await JSONLoader(model); 99 | this.data = 100 | typeof this.data.map === "undefined" 101 | ? { 102 | ...this.data, 103 | [on]: 104 | typeof this.data[on] === "object" 105 | ? this.data[on].map((id) => { 106 | return loadedModel.find( 107 | (modelEntry) => modelEntry.id === id 108 | ); 109 | }) 110 | : [], 111 | } 112 | : this.data.map((entry) => { 113 | return { 114 | ...entry, 115 | [on]: 116 | typeof entry[on] === "object" 117 | ? entry[on].map((id) => { 118 | return loadedModel.find( 119 | (modelEntry) => modelEntry.id === id 120 | ); 121 | }) 122 | : [], 123 | }; 124 | }); 125 | return this; 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Zelda API 2 | ![ZELDA-BANNER](https://user-images.githubusercontent.com/47995046/94411820-62689f80-014f-11eb-9e44-cd67a3c2682b.jpg) 3 | 4 | ## Description 5 | This repository holds the code of the Zelda API, a RESTful API and GraphQL API of "The Legend of Zelda" game franchise, which provides you with games, characters, enemies, bosses, dungeons and more! The Zelda API is currently deployed on vercel, and can be accessed with the following url: https://zelda.fanapis.com/ 6 | 7 | 8 | NextJS never cease to amaze me! So I started this project as some kind of proof of concept application, proving that it is possible to build an API with MongoDB using such a powerful tool. This is an experimental implementation, so some availability problems can be expected. 9 | 10 | ## New Version! 11 | 12 | I'm proud to announce a few exciting changes. Here's a list of what this new version offers: 13 | - GraphQL endpoints 14 | - CORS will no longer be an issue 15 | - GraphQL Testing Sandbox 16 | - Improved performance 17 | - Documentation rewrite 18 | - Zelda API data made public. 19 | - Anyone can deploy it and get it working just like this repository does. 20 | - Changed main domain to zelda.fanapis.com (zelda-api.apius.cc will still be supported) 21 | - Code improvements 22 | - Upgrade to NodeJS 14x 23 | - Upgrade to NextJS 12 24 | 25 | ## Getting Started 26 | 27 | Since this API doesn't require you to provide an API key, it's extremely easy to use. Feel free to explore our documentation and test routes! 28 | 29 | ### Example REQUEST 30 | 31 | Let's retrieve a list of all released games with the following route: 32 | 33 | - METHOD: **GET** 34 | - URL: http://zelda.fanapis.com/api/games?limit=2 35 | 36 | - RESULT 37 | ```javascript 38 | { 39 | "success": true, 40 | "count": 2, 41 | "data": [ 42 | { 43 | "id": "5f6ce9d805615a85623ec2b7", 44 | "name": "The Legend of Zelda", 45 | "description": "The Legend of Zelda is the first...", 46 | "developer": "Nintendo R&D 4", 47 | "publisher": "Nintendo", 48 | "released_date": " February 21, 1986", 49 | }, 50 | { 51 | "id": "5f6ce9d805615a85623ec2b8", 52 | "name": "The Legend of Zelda: A Link to the Past", 53 | "description": "One day, a band of evil thieves managed to...", 54 | "developer": "Nintendo", 55 | "publisher": "Nintendo", 56 | "released_date": " April 13, 1992", 57 | } 58 | ] 59 | } 60 | ``` 61 | 62 | ## Example REQUEST (GRAPHQL) 63 | 64 | Let's retrieve a monster called "Lizalfos", I want this API to return its `name`, `description` and which games this monster is featured. So let's make a POST request with the following GraphQL body: 65 | 66 | ```json 67 | query { 68 | monsters(name: "Lizalfos") { 69 | name, 70 | description, 71 | appearances { 72 | name, 73 | released_date, 74 | } 75 | } 76 | } 77 | ``` 78 | 79 | Then the GraphQL API will return: 80 | 81 | - RESULT 82 | 83 | ```javascript 84 | { 85 | "data": { 86 | "monsters": [ 87 | { 88 | "name": "Lizalfos", 89 | "description": "Lizalfos are recurring Enemies in The Legend of Zelda series. ", 90 | "appearances": [ 91 | { 92 | "name": "The Legend of Zelda: Ocarina of Time", 93 | "released_date": " November 23, 1998" 94 | }, 95 | { 96 | "name": "The Legend of Zelda: Twilight Princess", 97 | "released_date": " November 19, 2006" 98 | }, 99 | { 100 | "name": "The Legend of Zelda: Skyward Sword", 101 | "released_date": " November 20, 2011" 102 | }, 103 | { 104 | "name": "The Legend of Zelda: Breath of the Wild", 105 | "released_date": " March 3, 2017" 106 | } 107 | ] 108 | } 109 | ] 110 | } 111 | } 112 | ``` 113 | 114 | Pretty easy, huh? Go to https://zelda.fanapis.com/api/graphql and use the data for your project as you like 115 | 116 | ## Documentation 117 | 118 | An awesome documentation can be found on https://docs.zelda.fanapis.com 119 | 120 | ## Tech Stack 121 | Database: MongoDB 122 | 123 | Deployment: Vercel 124 | 125 | Engine: NextJS 126 | 127 | # Building 128 | In order to build this project just clone this repository and install the dependencies: 129 | 130 | ```console 131 | user@admin:~$ git clone https://github.com/deliton/zelda-api.git && cd zelda-api 132 | user@admin:~/idt$ npm install && npm run dev 133 | 134 | ``` 135 | 136 | # Deploy 137 | 138 | You can also quickly deploy a version of this repository using Vercel. Just create an account there, import this repository and that's it, it's done. In order to properly use this API it is necessary to define some ENVIRONMENT VARIABLES: 139 | 140 | **MONGODB_URI**= URI TO CONNECT TO A MONGODB DATABASE 141 | 142 | **API_URL**= URL TO THE DOMAIN OF YOUR API 143 | 144 | ## Project 145 | This project is currently being built with NextJS and MongoDB, but still is a work in progress. Stay tuned to the upcoming versions here on Github. 146 | -------------------------------------------------------------------------------- /public/data/eras.json: -------------------------------------------------------------------------------- 1 | [{"games":[],"name":"Era of Hylia","description":"The Triforce was entrusted to the goddess Hylia during the Era of Hylia, known more fully as the Era of the Goddess Hylia. One day, the Demon King Demise sought to take it and make the world his own. He rose an army of malevolent forces against Hyrule. Hylia gathered the surviving humans on an outcrop of earth and sent it to The Sky beyond a Cloud Barrier of her creation. The outcrop would later become known as Skyloft. She hid the Triforce there as well. Hylia rallied the remaining land dwellers, fought back the evil forces led by Demise, and sealed them away. She suffered grave injuries in the battle. Knowing the seal on Demise would not hold, she devised a plan. As the Triforce could not be wielded by a god, Hylia renounced divinity and transferred her soul to the body of a mortal who would come of age when Demise returned. She created the Goddess Sword and the spirit Fi to aid her chosen hero, who would reveal himself when he drew the sword from its pedestal.","id":"5f6d14563d599c9df7c3fdf4"},{"games":["5f6ce9d805615a85623ec2c8"],"name":"Sky Era","description":"During the Sky Era, Hylia is reborn as Zelda in Skyloft. On the day of the 25th annual Wing Ceremony, she is taken down to the Surface in a tornado created by Ghirahim, who attempts to have her kidnapped to revive his master Demise. Zelda is rescued from his minions by Impa, whom Hylia had sent through time to help her mortal self. Zelda regains her memories as Hylia. Her childhood friend, Link, is led by Fi to draw the Goddess Sword, and so is revealed to be Hylia's chosen hero. At the Temple of Time, Zelda and Impa flee from Ghirahim by going through the Gate of Time and destroying it behind them. Link seeks out the three Sacred Flames to temper his sword into the Master Sword, which he uses to activate the second Gate of Time at the Sealed Temple. He finds Zelda by using the Gate of Time to travel back to the Era of Hylia, to a time shortly after when Demise was sealed. Zelda places herself in a thousand-year slumber to sustain the seal.","id":"5f6d14563d599c9df7c3fdf5"},{"games":[],"name":"Era of Chaos","description":"After many years of peace in Hyrule, word spread of the supreme power of the Triforce. War engulfed the land, heralding the Era of Chaos. In particular, a group of powerful sorcerers known as the Interlopers sought dominion over the Sacred Realm, where the Triforce was located. The goddesses sent the Spirits of Light to banish them to the Twilight Realm. To protect the Triforce, the sage Rauru built a new Temple of Time around the pedestal holding the Master Sword—the location of the only entrance to the Sacred Realm. He placed the Triforce in the Temple of Light and sealed off the Sacred Realm with him inside it. The Master Sword became the key that joined the Temple of Time to the Temple of Light. It was closed behind the Door of Time","id":"5f6d14563d599c9df7c3fdf6"},{"games":[],"name":"Era of Prosperity","description":"During the Era of Prosperity, Zelda's descendants established the kingdom of Hyrule and became its Royal Family. They built Hyrule Castle in the center of Hyrule near the Temple of Time. Years afterwards, many members of the royal family were born with special powers given that they were blood relatives of the goddess Hylia. Princesses born into the royal family were named Zelda after the goddess reincarnate","id":"5f6d14563d599c9df7c3fdf7"},{"games":["5f6ce9d805615a85623ec2ba"],"name":"Era of the Hero of Time","description":"Hyrule enters a long period of civil war. During the war, a dying Hylian woman flees to the Kokiri Forest and entrusts her baby boy Link to the Great Deku Tree. The boy is raised as a Kokiri. Eventually, the King of Hyrule ends the war and unifies the kingdom","id":"5f6d14563d599c9df7c3fdf9"},{"games":["5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2c4"],"name":"Force Era","description":"During the Force Era, Hyrule was attacked by evil beings. The Minish, known to the Hylians as Picori, descended from the sky to save Hyrule. They brought the Picori Blade and the Light Force to the Hero of Men. The Hero sealed the evil beings in the Bound Chest and locked it with the Picori Blade. To commemorate the event, a Picori Festival was held once a year. During the festival, the champion of a sword-fighting tournament would earn the right to touch the Picori Blade","id":"5f6d14563d599c9df7c3fdf8"},{"games":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"name":"Era of Light and Dark","description":"Following the Imprisoning War, the Era of Light and Dark began. The Kingdom of Hyrule remained at peace for many years, until the land was suddenly plagued by a series of misfortunes. The King of Hyrule offered a reward for anyone who could put a stop to them; it was then that the dark wizard Agahnim appeared. Using previously unheard-of magic, the mysterious stranger put a stop to the disasters. He tried break the seal on Ganon, so that he could rule both the Light and Dark worlds. His last remaining victim was Zelda herself. As the princess lay in her prison cell, she used telepathy to call out to Link, who lived near the castle with his uncle. ","id":"5f6d14563d599c9df7c3fdfa"},{"games":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd"],"name":"Era of Decline","description":"When the last of the kings to use the Triforce anticipated his death, he hoped to find someone with the innate qualities that were fitting of a worthy possessor of the true Triforce; for if it were to fall in the wrong hands, evil would befall Hyrule","id":"5f6d14563d599c9df7c3fdfc"},{"games":["5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2be"],"name":"Child Era","description":"Child Era is the branch of the timeline that follows Link back in time at the end of Ocarina of Time. The young hero warns the Royal Family of Ganondorf's treachery, thus averting his rise to power and thwarting him from the start. Link leaves Hyrule on Epona to search for Navi. Years later, Ganondorf is sealed within the Twilight Realm.","id":"5f6d14563d599c9df7c3fdfd"},{"games":[],"name":"Golden Era","description":"Following the recovery of the Triforce in A Link Between Worlds, Hyrule enters a Golden Era. Successive Kings of Hyrule govern the land with the strength of the united Triforce at their command. The Kingdom of Hyrule flourishes","id":"5f6d14563d599c9df7c3fdfb"},{"games":["5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5"],"name":"Adult Era","description":"Adult Era, is the branch of the timeline in which Link has disappeared from Hyrule after being sent back in time at the end of Ocarina of Time. In this timeline, Ganondorf is sealed within the void of the corrupted Sacred Realm along with the Triforce of Power. Some ages pass and Hyrule is flooded.","id":"5f6d14563d599c9df7c3fdfe"},{"games":[],"name":"Age of the Sheikah","description":"The Sheikah built the Guardians and Divine Beasts in preparation for Ganon's return. When Calamity Ganon appeared, the then-present reincarnations of Zelda and Link were able to seal him away with the support of the Guardians and Divine Beasts. Despite this success, the King of Hyrule became paranoid, fearing a possible betrayal by the Sheikah. On his orders, the Divine Beasts were buried underground in locations across Hyrule. At some point, a militant faction of the Sheikah split off to become the Yiga clan, who swore allegiance to Ganon. With the Sheikah scattered across the land and many of them abandoning their technology, civilization in Hyrule declined to a primitive state over the following millennia. During this time, the Sheikah eventually settled in Kakariko Village and were no longer banished by the Royal Family. ","id":"5f6d14563d599c9df7c3fdff"},{"games":["5f6ce9d805615a85623ec2c9"],"name":"The Great Calamity","description":"About 10,000 years after the Calamity's defeat, a new princess is born and named Zelda in line with tradition.[7] Around this same time, a prophecy warned of the return of Calamity Ganon. Hoping to prepare in the same fashion as their ancestors, the people of Hyrule began working to locate and excavate the Divine Beasts and Guardians, which they eventually managed to restore and activate. Subsequently, four warriors from each of Hyrule's races were selected to pilot the Divine Beasts. Around that time, the chosen bearer of the Master Sword was found to be a Hylian knight named Link, the only one who was able to pull the sword from its resting place in the Korok Forest. Then, Calamity Ganon returned and corrupted the entire Guardian army. Zelda tried to hold Calamity Ganon while Link, badly injured, was resting to come back 100 years later and challenge Calamity Ganon once more.","id":"5f6d14563d599c9df7c3fe00"}] -------------------------------------------------------------------------------- /pages/api/graphql/resolvers.js: -------------------------------------------------------------------------------- 1 | import { JSONDriver } from "../../../db/driver"; 2 | import { parseLimit } from "../../../utils/responsePipes"; 3 | 4 | export const resolvers = { 5 | Query: { 6 | games: async (_, args) => { 7 | try { 8 | const limit = parseLimit(args.limit); 9 | const page = args.page || 0; 10 | delete args.limit; 11 | delete args.page; 12 | const Games = new JSONDriver("games"); 13 | await Games.init(); 14 | return Games.findMany(args) 15 | .skip(page * limit) 16 | .limit(limit).data; 17 | } catch (error) { 18 | throw error; 19 | } 20 | }, 21 | getGame: async (_, args) => { 22 | try { 23 | const games = new JSONDriver("games"); 24 | await games.init(); 25 | const game = games.findById(args.id); 26 | return game.data; 27 | } catch (error) { 28 | throw error; 29 | } 30 | }, 31 | dungeons: async (_, args) => { 32 | try { 33 | const limit = parseLimit(args.limit); 34 | const page = args.page || 0; 35 | delete args.limit; 36 | delete args.page; 37 | const dungeons = new JSONDriver("dungeons"); 38 | await dungeons.init(); 39 | dungeons 40 | .findMany(args) 41 | .skip(page * limit) 42 | .limit(limit); 43 | await dungeons.join({ model: "games", on: "appearances" }); 44 | return dungeons.data; 45 | } catch (error) { 46 | throw error; 47 | } 48 | }, 49 | getDungeon: async (_, args) => { 50 | try { 51 | const dungeons = new JSONDriver("dungeons"); 52 | await dungeons.init(); 53 | const dungeon = dungeons.findById(args.id); 54 | await dungeon.join({ model: "games", on: "appearances" }); 55 | return dungeon.data; 56 | } catch (error) { 57 | throw error; 58 | } 59 | }, 60 | bosses: async (_, args) => { 61 | try { 62 | const limit = parseLimit(args.limit); 63 | const page = args.page || 0; 64 | delete args.limit; 65 | delete args.page; 66 | const bosses = new JSONDriver("bosses"); 67 | await bosses.init(); 68 | bosses 69 | .findMany(args) 70 | .skip(page * limit) 71 | .limit(limit); 72 | await bosses.join({ model: "games", on: "appearances" }); 73 | await bosses.join({ model: "dungeons", on: "dungeons" }); 74 | return bosses.data; 75 | } catch (error) { 76 | throw error; 77 | } 78 | }, 79 | getBoss: async (_, args) => { 80 | try { 81 | const bosses = new JSONDriver("bosses"); 82 | await bosses.init(); 83 | const boss = bosses.findById(args.id); 84 | await boss.join({ model: "games", on: "appearances" }); 85 | return boss.data; 86 | } catch (error) { 87 | throw error; 88 | } 89 | }, 90 | characters: async (_, args) => { 91 | try { 92 | const limit = parseLimit(args.limit); 93 | const page = args.page || 0; 94 | delete args.limit; 95 | delete args.page; 96 | const characters = new JSONDriver("characters"); 97 | await characters.init(); 98 | characters 99 | .findMany(args) 100 | .skip(page * limit) 101 | .limit(limit); 102 | await characters.join({ model: "games", on: "appearances" }); 103 | return characters.data; 104 | } catch (error) { 105 | throw error; 106 | } 107 | }, 108 | getCharacter: async (_, args) => { 109 | try { 110 | const characters = new JSONDriver("characters"); 111 | await characters.init(); 112 | const character = characters.findById(args.id); 113 | await character.join({ model: "games", on: "appearances" }); 114 | return character.data; 115 | } catch (error) { 116 | throw error; 117 | } 118 | }, 119 | eras: async (_, args) => { 120 | try { 121 | const limit = parseLimit(args.limit); 122 | const page = args.page || 0; 123 | delete args.limit; 124 | delete args.page; 125 | const eras = new JSONDriver("eras"); 126 | await eras.init(); 127 | eras 128 | .findMany(args) 129 | .skip(page * limit) 130 | .limit(limit); 131 | await eras.join({ model: "games", on: "games" }); 132 | return eras.data; 133 | } catch (error) { 134 | throw error; 135 | } 136 | }, 137 | getEra: async (_, args) => { 138 | try { 139 | const eras = new JSONDriver("eras"); 140 | await eras.init(); 141 | const era = eras.findById(args.id); 142 | await era.join({ model: "games", on: "games" }); 143 | return era.data; 144 | } catch (error) { 145 | throw error; 146 | } 147 | }, 148 | items: async (_, args) => { 149 | try { 150 | const limit = parseLimit(args.limit); 151 | const page = args.page || 0; 152 | delete args.limit; 153 | delete args.page; 154 | const items = new JSONDriver("items"); 155 | await items.init(); 156 | items 157 | .findMany(args) 158 | .skip(page * limit) 159 | .limit(limit); 160 | await items.join({ model: "games", on: "games" }); 161 | return items.data; 162 | } catch (error) { 163 | throw error; 164 | } 165 | }, 166 | getItem: async (_, args) => { 167 | try { 168 | const items = new JSONDriver("items"); 169 | await items.init(); 170 | const item = items.findById(args.id); 171 | await item.join({ model: "games", on: "games" }); 172 | return item.data; 173 | } catch (error) { 174 | throw error; 175 | } 176 | }, 177 | monsters: async (_, args) => { 178 | try { 179 | const limit = parseLimit(args.limit); 180 | const page = args.page || 0; 181 | delete args.limit; 182 | delete args.page; 183 | const monsters = new JSONDriver("monsters"); 184 | await monsters.init(); 185 | monsters 186 | .findMany(args) 187 | .skip(page * limit) 188 | .limit(limit); 189 | await monsters.join({ model: "games", on: "appearances" }); 190 | return monsters.data; 191 | } catch (error) { 192 | throw error; 193 | } 194 | }, 195 | getMonster: async (_, args) => { 196 | try { 197 | const monsters = new JSONDriver("monsters"); 198 | await monsters.init(); 199 | const monster = monsters.findById(args.id); 200 | await monster.join({ model: "games", on: "appearances" }); 201 | return monster.data; 202 | } catch (error) { 203 | throw error; 204 | } 205 | }, 206 | places: async (_, args) => { 207 | try { 208 | const limit = parseLimit(args.limit); 209 | const page = args.page || 0; 210 | delete args.limit; 211 | delete args.page; 212 | const places = new JSONDriver("places"); 213 | await places.init(); 214 | places 215 | .findMany(args) 216 | .skip(page * limit) 217 | .limit(limit); 218 | await places.join({ model: "games", on: "appearances" }); 219 | await places.join({ model: "characters", on: "inhabitants" }); 220 | return places.data; 221 | } catch (error) { 222 | throw error; 223 | } 224 | }, 225 | getPlace: async (_, args) => { 226 | try { 227 | const places = new JSONDriver("places"); 228 | await places.init(); 229 | const place = places.findById(args.id); 230 | await place.join({ model: "games", on: "appearances" }); 231 | return place.data; 232 | } catch (error) { 233 | throw error; 234 | } 235 | }, 236 | staff: async (_, args) => { 237 | try { 238 | const limit = parseLimit(args.limit); 239 | const page = args.page || 0; 240 | delete args.limit; 241 | delete args.page; 242 | const staff = new JSONDriver("staff"); 243 | await staff.init(); 244 | staff 245 | .findMany(args) 246 | .skip(page * limit) 247 | .limit(limit); 248 | await staff.join({ model: "games", on: "worked_on" }); 249 | return staff.data; 250 | } catch (error) { 251 | throw error; 252 | } 253 | }, 254 | getStaff: async (_, args) => { 255 | try { 256 | const staff = new JSONDriver("staff"); 257 | await staff.init(); 258 | const staffMember = staff.findById(args.id); 259 | await staffMember.join({ model: "games", on: "worked_on" }); 260 | return staffMember.data; 261 | } catch (error) { 262 | throw error; 263 | } 264 | }, 265 | }, 266 | }; 267 | -------------------------------------------------------------------------------- /public/data/games.json: -------------------------------------------------------------------------------- 1 | [{"name":"The Legend of Zelda","description":"The Legend of Zelda is the first installment of the Zelda series. It centers its plot around a boy named Link, who becomes the central protagonist throughout the series. It came out as early as 1986 for the Famicom in Japan, and was later released in the western world, including Europe and the US in 1987. It has since then been re-released several times, for the Nintendo GameCube as well as the Game Boy Advance. The Japanese version of the game on the Famicom is known as The Hyrule Fantasy: The Legend of Zelda. ","developer":"Nintendo R&D 4","publisher":"Nintendo","released_date":" February 21, 1986","id":"5f6ce9d805615a85623ec2b7"},{"name":"The Legend of Zelda: A Link to the Past","description":"One day, a band of evil thieves managed to open the gateway to the Sacred Realm, where the mystical Triforce was hidden. Upon finding the sacred golden relic, the leader of the thieves, Ganondorf, slew his followers and claimed it as his own. Before long, dark power began to flow forth from the Sacred Realm. People were drawn into this darkness, and never heard from again. As a result, the King of Hyrule ordered the seven sages to seal the entrance to the Sacred Realm. A great battle ensued—monsters poured into the Light World from the sacred land and attacked the castle. The Knights of Hyrule defended the sages during the great battle against evil, and, though most of them perished in the struggle, the sages were able to cast their seal, stopping the flow of darkness and trapping the evil king Ganon within. This battle became known as the Imprisoning War. ","developer":"Nintendo","publisher":"Nintendo","released_date":" April 13, 1992","id":"5f6ce9d805615a85623ec2b8"},{"name":"The Legend of Zelda: Ocarina of Time","description":"The Legend of Zelda: Ocarina of Time is the fifth main installment of The Legend of Zelda series and the first to be released for the Nintendo 64. It was one of the most highly anticipated games of its age. It is listed among the greatest video games ever created by numerous websites and magazines. Released in the United States on November 23, 1998, it was the first game in The Legend of Zelda series that was visually displayed in 3D . ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" November 23, 1998","id":"5f6ce9d805615a85623ec2ba"},{"name":"The Legend of Zelda: Oracle of Ages","description":"The Legend of Zelda: Oracle of Ages is one of two The Legend of Zelda titles released for the Game Boy Color, the other being Oracle of Seasons, both representing the seventh and eighth main installments of the series. Released near the end of the system's lifespan, Oracle of Ages and its counterpart were said to \"send the Game Boy Color out with a bang.\" In anticipation of the upcoming release of the Game Boy Color's successor, the Game Boy Advance, the games exhibited special features when played on the new handheld system. ","developer":"Capcom","publisher":"Nintendo","released_date":" May 14, 2001","id":"5f6ce9d805615a85623ec2b9"},{"name":"The Legend of Zelda: Link's Awakening DX","description":"The game was also made available on the Nintendo 3DS eShop on June 7, 2011 at the price of $5.99 US. ","developer":"Nintendo","publisher":"Nintendo","released_date":" December 15, 1998","id":"5f6ce9d805615a85623ec2bb"},{"name":"The Legend of Zelda: Majora's Mask","description":"The Legend of Zelda: Majora's Mask is the sixth main installment of The Legend of Zelda series, first released on the Nintendo 64 in 2000. Unique among The Legend of Zelda series, the game includes a time system that spans three days, and this cycle must be reset periodically to progress through the game. Majora's Mask is one of the few Zelda games in which Ganon does not play any role whatsoever. In addition, Princess Zelda does not play a major role; she is only seen once in a flashback scene from Ocarina of Time. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" October 26, 2000","id":"5f6ce9d805615a85623ec2bc"},{"name":"Zelda II: The Adventure of Link","description":"A few years after the defeat of Ganon and the rescue of Princess Zelda, Link, now at the age of sixteen, is disturbed by the appearance of a mark on the back of his hand. Upon seeing this mark, Impa, the nurse of Princess Zelda, tells him the story of how, ages ago, the King of Hyrule had hidden a third part of the Triforce, the Triforce of Courage, in the Great Palace to safeguard it from evil. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" January 14, 1987","id":"5f6ce9d805615a85623ec2bd"},{"name":"The Legend of Zelda: The Wind Waker","description":"The Legend of Zelda: The Wind Waker is the tenth main installment of The Legend of Zelda series. It is the first Zelda game for the Nintendo GameCube, and was released in Japan on December 13, 2002, in Canada and the United States on March 24, 2003, in South Korea on April 16, 2003, in Europe on May 2, 2003 and in Australia on May 7, 2003. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" March 24, 2003","id":"5f6ce9d805615a85623ec2bf"},{"name":"The Legend of Zelda: Twilight Princess","description":"The Legend of Zelda: Twilight Princess is the thirteenth main installment of The Legend of Zelda series, released for both the Nintendo GameCube and Wii. It was highly anticipated by many members of the gaming community and was regarded as finally fulfilling the dreams of those who wanted a much more realistic and mature Zelda game, as seen in the SpaceWorld 2000 GameCube Tech Demo. This is the first Zelda game to be rated T by ESRB and 12+ by PEGI. The reason is probably because of violence, blood , and signs of nudity . This game is also notable for being the first console Zelda title released in the United States before Japan, as the Wii version was released in America on November 19, 2006, whereas the Japanese versions were released on December 2. Because of this, Twilight Princess was one of the launch titles for the Wii alongside Wii Sports in the United States. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" November 19, 2006","id":"5f6ce9d805615a85623ec2be"},{"name":"The Legend of Zelda: Oracle of Seasons","description":"The Legend of Zelda: Oracle of Seasons is one of two The Legend of Zelda titles released for the Game Boy Color, the other being Oracle of Ages, both representing the seventh and eighth main installments of the series. Released near the end of the system's lifespan, Oracle of Seasons and its counterpart were said to \"send the Game Boy Color out with a bang.\" In anticipation of the upcoming release of the Game Boy Color's successor, the Game Boy Advance, the games exhibited special features when played on the new handheld system. ","developer":"Capcom","publisher":"Nintendo","released_date":" May 14, 2001","id":"5f6ce9d805615a85623ec2c0"},{"name":"The Legend of Zelda: Spirit Tracks","description":" ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" December 7, 2009","id":"5f6ce9d805615a85623ec2c5"},{"name":"BS The Legend of Zelda: Ancient Stone Tablets","description":"BS The Legend of Zelda: Ancient Stone Tablets is a downloadable four-part episodic game that was available for the BS-X Broadcasting System add-on for the Super Famicom , and the third title in the BS Zelda series. Each episode was downloaded from St. GIGA's satellite radio service and stored on memory packs but could only be played once a week during the broadcast period. ","developer":"Nintendo","publisher":"St. GIGA","released_date":"March 30, 1997","id":"5f6ce9d805615a85623ec2ca"},{"name":"Hyrule Warriors","description":"Hyrule Warriors is a Legend of Zelda spin-off game for the Wii U that was released on the 19th of September 2014, the 20th of September 2014, the 26th of September 2014 and the 14th of August 2014 in Europe, Australia, North America and Japan respectively. It combines the world of The Legend of Zelda with the action of Koei Tecmo's Dynasty Warriors series and was developed by Team Ninja and Omega Force. ","developer":"Omega Force","publisher":"Nintendo","released_date":" September 26, 2014","id":"5f6ce9d805615a85623ec2cf"},{"name":"The Legend of Zelda: Four Swords Adventures","description":"One night, an ominous cloud covers Hyrule, throwing fear into the people. Princess Zelda calls upon her most trusted childhood friend, Link. She wants to check up on the Four Sword, fearing that the seal that imprisoned the evil wind sorcerer Vaati inside of it at the end of Four Swords might have weakened. Inside the castle they meet up with the gathered six Maidens, whose purpose is to protect Hyrule as well as the Four Sword Sanctuary. With the help of the maidens Zelda summons a portal to the sanctuary. ","developer":"Nintendo","publisher":"Nintendo","released_date":" June 7, 2004","id":"5f6ce9d805615a85623ec2c1"},{"name":"The Legend of Zelda: Tri Force Heroes","description":"The Legend of Zelda: Tri Force Heroes is the eighteenth main installment of The Legend of Zelda series. The game was released on October 23, 2015 in North America and Europe, October 24 in Australia, and October 22 in Japan. It was revealed during E3 2015 on June 16. ","developer":"Nintendo","publisher":"Nintendo","released_date":" October 23, 2015","id":"5f6ce9d805615a85623ec2d4"},{"name":"The Legend of Zelda: Breath of the Wild","description":"The Legend of Zelda: Breath of the Wild is the nineteenth main installment of The Legend of Zelda series. It was released simultaneously worldwide for the Wii U and Nintendo Switch on March 3, 2017","developer":"Nintendo","publisher":"Nintendo","released_date":" March 3, 2017","id":"5f6ce9d805615a85623ec2c9"},{"name":"The Legend of Zelda: Tri Force Heroes","description":"The Legend of Zelda: Tri Force Heroes is the eighteenth main installment of The Legend of Zelda series. The game was released on October 23, 2015 in North America and Europe, October 24 in Australia, and October 22 in Japan. It was revealed during E3 2015 on June 16. ","developer":"Nintendo","publisher":"Nintendo","released_date":" October 23, 2015","id":"5f6ce9d805615a85623ec2ce"},{"name":"Zelda: The Wand of Gamelon","description":"A product of a compromise between Nintendo and Philips due to their failure to release a CD-ROM based add-on to the Super Nintendo Entertainment System, The Wand of Gamelon, alongside the other two, are the only licensed The Legend of Zelda games developed for and released on a non-Nintendo system. The games have been subject to much criticism, and Nintendo does not recognize them as canon to The Legend of Zelda series. ","developer":"Animation Magic","publisher":"Philips Media","released_date":" October 10, 1993","id":"5f6ce9d805615a85623ec2d3"},{"name":"The Legend of Zelda: Four Swords","description":"As part of the 25th Anniversary of The Legend of Zelda series, an enhanced port of the game was released for the Nintendo DSi and Nintendo 3DS as a limited-time free download, Four Swords Anniversary Edition. ","developer":"Capcom","publisher":"Nintendo","released_date":" December 2, 2002","id":"5f6ce9d805615a85623ec2c4"},{"name":"The Legend of Zelda: The Minish Cap","description":"The Legend of Zelda: The Minish Cap is the twelfth main installment of The Legend of Zelda series. It was released for the Game Boy Advance in 2004. ","developer":"Capcom","publisher":"Nintendo","released_date":" January 10, 2005","id":"5f6ce9d805615a85623ec2c6"},{"name":"The Legend of Zelda: Four Swords Anniversary Edition","description":"Released as part of the 25th Anniversary of The Legend of Zelda series, the remaster was made available as a free download between September 28, 2011 and February 20, 2012 internationally via the DSi Shop and Nintendo eShop. It was later made available again as a free download between January 30 and February 2, 2014 in North America, exclusively via the Nintendo eShop, after the release of A Link Between Worlds to celebrate its critical acclaim, including the Game of the Year award from GameSpot. Currently, the game is not available for download. ","developer":"Nintendo","publisher":"Nintendo","released_date":" September 28, 2011","id":"5f6ce9d805615a85623ec2cb"},{"name":"Hyrule Warriors: Age of Calamity","description":"The gameplay is seemingly similar to Hyrule Warriors's which is itself a based on Koei Tecmo's Dynasty Warriors series of video games, in which characters fight large armies of enemies and generals on a battlefield, with the the setting and characters originating from The Legend of Zelda series, specifically from Breath of the Wild. As such, it is set to be more combat-intensive that most Zelda games, with hordes of enemies on the screen at once. ","developer":"Omega Force","publisher":"Nintendo","released_date":" November 20, 2020","id":"5f6ce9d805615a85623ec2d0"},{"name":"Link: The Faces of Evil","description":"The Faces of Evil, along with the other two titles, was the product of a compromise between Nintendo and Philips following their failure to release a CD-ROM based add-on to the Super Nintendo Entertainment System. They are the only licensed The Legend of Zelda games developed for and released on a non-Nintendo system. The games have been subject to much criticism, and Nintendo does not recognize them as canon to The Legend of Zelda series. ","developer":"Animation Magic","publisher":"Philips Media","released_date":" October 10, 1993","id":"5f6ce9d805615a85623ec2d5"},{"name":"The Legend of Zelda: Phantom Hourglass","description":"The Legend of Zelda: Phantom Hourglass is the fourteenth main installment of The Legend of Zelda series. It is the first The Legend of Zelda game for the Nintendo DS and a direct sequel to The Wind Waker. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" October 1, 2007","id":"5f6ce9d805615a85623ec2c2"},{"name":"The Legend of Zelda: Link's Awakening","description":"The Legend of Zelda: Link's Awakening is the fourth main installment of The Legend of Zelda series, and the only Zelda title on the original Game Boy. A color update, titled Link's Awakening DX, is one of the three Zelda titles for the Game Boy Color. Since its release, Link's Awakening has been popular among fans and critics. By 2004, the original release had sold 3.83 million copies worldwide, while Link's Awakening DX sold 2.22 million. In 2009, Guinness World Records named it the 42nd most influential video game of all time. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" August 6, 1993","id":"5f6ce9d805615a85623ec2c3"},{"name":"The Legend of Zelda: A Link Between Worlds","description":"The Legend of Zelda: A Link Between Worlds is the seventeenth main installment of The Legend of Zelda series. It is the first Zelda title developed specifically for the Nintendo 3DS and an indirect sequel to A Link to the Past, featuring the same version of Hyrule but new characters and gameplay elements. The title was released on November 22, 2013, in North America and Europe, November 23 in Australia, and December 26 in Japan. The Korean version was released the following year, on June 21, 2014. ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" November 22, 2013","id":"5f6ce9d805615a85623ec2c7"},{"name":"The Legend of Zelda: Skyward Sword","description":" ","developer":"Nintendo EAD","publisher":"Nintendo","released_date":" November 20, 2011","id":"5f6ce9d805615a85623ec2c8"},{"name":"Freshly-Picked Tingle's Rosy Rupeeland","description":"The story starts when Tingle, first appearing as an ordinary, middle-aged man, is offered a life in a paradise called Rupeeland. Tingle is guided by Uncle Rupee, who tells him to gather many Rupees and toss them into the Western Pool in order to gain access to Rupeeland. Pinkle, a Fairy that communicates to Tingle via a computer that resembles a Nintendo DS also helps him along his journey. As Tingle explores, he will find numerous treasures, which include collecting ingredients for concoctions such as Potions and meals that can be sold to the locals in nearby Port Town. Tingle hires bodyguards throughout the game to aid him in combat. ","developer":"Vanpool","publisher":"Nintendo","released_date":"September 2, 2006","id":"5f6ce9d805615a85623ec2cd"},{"name":"BS The Legend of Zelda","description":"BS The Legend of Zelda is different from most other The Legend of Zelda games. The game's central heroes are the avatar characters of the BS-X, which are based on the info given during account creation, which is also true for the Ancient Stone Tablets. Both the male and female characters wear a green tunic, though others are later available. The male character wears a backwards baseball cap whereas the female character has long red hair, but is otherwise exactly the same as the male character. ","developer":"Nintendo","publisher":"St. GIGA","released_date":"August 9, 1995","id":"5f6ce9d805615a85623ec2cc"},{"name":"Hyrule Warriors Legends","description":"Hyrule Warriors Legends is a spin-off for the Nintendo 3DS, combining the world of The Legend of Zelda series with the action of Koei Tecmo's Dynasty Warriors series. The game is a port and a new version of Hyrule Warriors, featuring new characters and other mechanical changes. ","developer":"Omega Force","publisher":"Koei Tecmo","released_date":" March 25, 2016","id":"5f6ce9d805615a85623ec2d1"},{"name":"Zelda's Adventure","description":"A product of a compromise between Nintendo and Philips due to their failure to release a CD-ROM based add-on to the Super Nintendo Entertainment System, Zelda's Adventure, alongside the other two, are the only licensed The Legend of Zelda games developed for and released on a non-Nintendo system. The games have been subject to much criticism, and Nintendo does not recognize them as canon to The Legend of Zelda series. ","developer":"Viridis","publisher":"Philips Media","released_date":"1995","id":"5f6ce9d805615a85623ec2d2"},{"name":"Link's Crossbow Training","description":"With the Wii Remote and the Nunchuk inside the Wii Zapper casing, the Zapper should be aimed as it would with the Wii Remote. The trigger must be pulled to fire the Crossbow . Holding down the trigger will cause the Crossbow to charge a shot which will fire a Exploding Arrow . Pressing the A button will pause the game, allowing the player to return to the title screen, return to the Stage Select , to continue in the stage or to adjust the alignment of the motion controls. In the adjust alignment menu, the player can adjust the motion controls based on their preferences. The player can change the height of the cursor, and how fast the cursor moves when the player moves the Wii Zapper. The Z button will zoom in, much like Twilight Princess's Hawkeye. The control stick on the Nunchuk will change function depending on the game mode: In ranger-type Stages, it will move Link. In target shooting-type Stages and defender-type Stages, the stick serves no purpose. ","developer":"EAD","publisher":"Nintendo","released_date":" November 19, 2007","id":"5f6ce9d805615a85623ec2d6"}] -------------------------------------------------------------------------------- /public/data/staff.json: -------------------------------------------------------------------------------- 1 | [{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Airi Nagano","id":"5f6d127156b0219cac2f5221"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Aya Shida","id":"5f6d127156b0219cac2f5222"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Atsushi Domoto","id":"5f6d127156b0219cac2f5223"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ai Matsumura","id":"5f6d127156b0219cac2f5224"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Chihiro Okada","id":"5f6d127156b0219cac2f5226"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Chizue Utazu","id":"5f6d127156b0219cac2f5225"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Atsushi Asakura","id":"5f6d127156b0219cac2f5227"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Chee Wai Lim","id":"5f6d127156b0219cac2f5228"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Bungo Takahashi","id":"5f6d127156b0219cac2f522a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Atsuko Kato","id":"5f6d127156b0219cac2f5229"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ayumi Takata","id":"5f6d127156b0219cac2f522b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Raimu Hidaka","id":"5f6d127156b0219cac2f5230"},{"worked_on":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2cc","5f6ce9d805615a85623ec2ca","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Takashi Tezuka","id":"5f6d127156b0219cac2f5235"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takahito Sekimoto","id":"5f6d127156b0219cac2f523a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takafumi Shimotamari","id":"5f6d127156b0219cac2f523f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Taeko Ebina","id":"5f6d127156b0219cac2f5244"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shunsuke Yamamoto","id":"5f6d127156b0219cac2f5249"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shotaro Yabashi","id":"5f6d127156b0219cac2f524e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinko Takeshita","id":"5f6d127156b0219cac2f5253"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sei Hashimoto","id":"5f6d127156b0219cac2f5258"},{"worked_on":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c9"],"name":"Satoru Takizawa","id":"5f6d127156b0219cac2f525d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Saki Nakashima","id":"5f6d127156b0219cac2f5262"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Rika Aoki","id":"5f6d127156b0219cac2f5267"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nobuhiro Matsumura","id":"5f6d127156b0219cac2f526c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Naoto Murakami","id":"5f6d127156b0219cac2f5271"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Motohiro Sasaki","id":"5f6d127156b0219cac2f5276"},{"worked_on":["5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2c9"],"name":"Mizuki Okunaka","id":"5f6d127156b0219cac2f527b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mitsuhiro Ohmori","id":"5f6d127156b0219cac2f5280"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masashi Masuoka","id":"5f6d127156b0219cac2f5285"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mariko Kawasaki","id":"5f6d127156b0219cac2f528a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mana Shoji","id":"5f6d127156b0219cac2f528f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Makoto Yamamoto","id":"5f6d127156b0219cac2f5294"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Koh Arai","id":"5f6d127156b0219cac2f5299"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kentaro Kusumi","id":"5f6d127156b0219cac2f529e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Keijiro Inoue","id":"5f6d127156b0219cac2f52a3"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazuki Kobayashi","id":"5f6d127156b0219cac2f52a8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kanako Uno","id":"5f6d127156b0219cac2f52ad"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ikuko Matsumoto","id":"5f6d127156b0219cac2f52b2"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hisashi Sekoguchi","id":"5f6d127156b0219cac2f52b7"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroshi Sakasai","id":"5f6d127156b0219cac2f52bc"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroshi Kiyota","id":"5f6d127156b0219cac2f52c1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroki Omosako","id":"5f6d127156b0219cac2f52c6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroaki Tamura","id":"5f6d127156b0219cac2f52cb"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Eri Morimoto","id":"5f6d127156b0219cac2f52d0"},{"worked_on":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2d6","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2cb","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2cf","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Eiji Aonuma","id":"5f6d127156b0219cac2f52d5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daigoro Ishikawa","id":"5f6d127156b0219cac2f52da"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Akiyoshi Tamanoi","id":"5f6d127156b0219cac2f52df"},{"worked_on":["5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c9"],"name":"Takuhiro Dohta","id":"5f6d127156b0219cac2f52e4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takuma Oiso","id":"5f6d127156b0219cac2f52e9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Wataru Kawahara","id":"5f6d127156b0219cac2f52ee"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuya Imagawa","id":"5f6d127156b0219cac2f52f3"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yukiko Yoneyama","id":"5f6d127156b0219cac2f52f8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Takahashi","id":"5f6d127156b0219cac2f52fd"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yousuke Asahara","id":"5f6d127156b0219cac2f5302"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoshihiko Sakuraba","id":"5f6d127156b0219cac2f5307"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Toyoki Kataoka","id":"5f6d127156b0219cac2f530c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tomonori Kawazoe","id":"5f6d127156b0219cac2f5311"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tokuhiro Yumoto","id":"5f6d127156b0219cac2f5316"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tatsuya Shinada","id":"5f6d127156b0219cac2f531b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Atsuki Nakazato","id":"5f6d127156b0219cac2f522d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takaya Iwamoto","id":"5f6d127156b0219cac2f5234"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Arisa Takahashi","id":"5f6d127156b0219cac2f522f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takanori Mitsuhashi","id":"5f6d127156b0219cac2f5239"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takahiro Nagaya","id":"5f6d127156b0219cac2f523e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takayuki Ikkaku","id":"5f6d127156b0219cac2f5233"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takaaki Koido","id":"5f6d127156b0219cac2f5243"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Aya Yamaguchi","id":"5f6d127156b0219cac2f5238"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shuto Yonemura","id":"5f6d127156b0219cac2f5248"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takahiro Okuda","id":"5f6d127156b0219cac2f523d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Asuka Yamato","id":"5f6d127156b0219cac2f522c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takehiko Kegasa","id":"5f6d127156b0219cac2f5231"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Subaru Ganbe","id":"5f6d127156b0219cac2f5242"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shougo Nokura","id":"5f6d127156b0219cac2f524d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sosuke Saito","id":"5f6d127156b0219cac2f5247"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shoko Fukuchi","id":"5f6d127156b0219cac2f5252"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takanori Nishino","id":"5f6d127156b0219cac2f5236"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinichi Ikematu","id":"5f6d127156b0219cac2f5257"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shuichi Murata","id":"5f6d127156b0219cac2f524c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takahiro Takayama","id":"5f6d127156b0219cac2f523b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinya Asanuma","id":"5f6d127156b0219cac2f5251"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Seiichi Hishinuma","id":"5f6d127156b0219cac2f525c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takafumi Hori","id":"5f6d127156b0219cac2f5240"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sanae Matsuo","id":"5f6d127156b0219cac2f5261"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinji Koide","id":"5f6d127156b0219cac2f5256"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tadashi Sakamoto","id":"5f6d127156b0219cac2f5245"},{"worked_on":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2cc","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bb","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2d6","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2cb","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Shigeru Miyamoto","id":"5f6d127156b0219cac2f525b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shun Matsumoto","id":"5f6d127156b0219cac2f524a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ryo Takahashi","id":"5f6d127156b0219cac2f5266"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shota Fukuzawa","id":"5f6d127156b0219cac2f524f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Satoko Iwase","id":"5f6d127156b0219cac2f5260"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Noriko Uono","id":"5f6d127156b0219cac2f526b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinji Yato","id":"5f6d127156b0219cac2f5254"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Naohiko Zaitsu","id":"5f6d127156b0219cac2f5270"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ryota Maruko","id":"5f6d127156b0219cac2f5265"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sayaka Matsuzawa","id":"5f6d127156b0219cac2f5259"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nobuhiro Sumiyoshi","id":"5f6d127156b0219cac2f526a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nagisa Miyagawa","id":"5f6d127156b0219cac2f5275"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mizuki Tachi","id":"5f6d127156b0219cac2f527a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nao Ueda","id":"5f6d127156b0219cac2f526f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Satomi Usui","id":"5f6d127156b0219cac2f525e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sachiko Matsui","id":"5f6d127156b0219cac2f5263"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Minoru Hamaura","id":"5f6d127156b0219cac2f527f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nami Ohsaku","id":"5f6d127156b0219cac2f5274"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mizuki Fujita","id":"5f6d127156b0219cac2f5279"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Rianti Hidayat","id":"5f6d127156b0219cac2f5268"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masatoshi Ogawa","id":"5f6d127156b0219cac2f5284"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mitsuhiro Kida","id":"5f6d127156b0219cac2f527e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nobuhiko Okayasu","id":"5f6d127156b0219cac2f526d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masafumi Naito","id":"5f6d127156b0219cac2f5289"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Naonari Fukumoto","id":"5f6d127156b0219cac2f5272"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mari Shirakawa","id":"5f6d127156b0219cac2f528e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Midori Kojo","id":"5f6d127156b0219cac2f5283"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Momoko Konno","id":"5f6d127156b0219cac2f5277"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Makoto Shimamoto","id":"5f6d127156b0219cac2f5293"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mizuki Hasegawa","id":"5f6d127156b0219cac2f527c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masato Adachi","id":"5f6d127156b0219cac2f5288"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kota Wada","id":"5f6d127156b0219cac2f5298"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Manabu Takehara","id":"5f6d127156b0219cac2f528d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Minechika Kitai","id":"5f6d127156b0219cac2f5281"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Manabu Hiraoka","id":"5f6d127156b0219cac2f5292"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kentaro Tominaga","id":"5f6d127156b0219cac2f529d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masatake Kaneoka","id":"5f6d127156b0219cac2f5286"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Keisuke Hirose","id":"5f6d127156b0219cac2f52a2"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mariko Hirokane","id":"5f6d127156b0219cac2f528b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kouhei Toda","id":"5f6d127156b0219cac2f5297"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kentarou Narimatsu","id":"5f6d127156b0219cac2f529c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Makoto Yonezu","id":"5f6d127156b0219cac2f5290"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazuki Misu","id":"5f6d127156b0219cac2f52a7"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Makoto Sasaki","id":"5f6d127156b0219cac2f5295"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kanako Ishibashi","id":"5f6d127156b0219cac2f52ac"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kengo Inoue","id":"5f6d127156b0219cac2f52a1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazuya Sumaki","id":"5f6d127156b0219cac2f52a6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Junya Okamoto","id":"5f6d127156b0219cac2f52b1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kento Higa","id":"5f6d127156b0219cac2f529a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazuaki Toya","id":"5f6d127156b0219cac2f52ab"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kenji Matsutani","id":"5f6d127156b0219cac2f529f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hitoshi Kanetani","id":"5f6d127156b0219cac2f52b6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroyuki Kato","id":"5f6d127156b0219cac2f52bb"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kei Watanabe","id":"5f6d127156b0219cac2f52a4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Junya Osada","id":"5f6d127156b0219cac2f52b0"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Jun Kitaoka","id":"5f6d127156b0219cac2f52b5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazue Hiramoto","id":"5f6d127156b0219cac2f52a9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroshi Konishi","id":"5f6d127156b0219cac2f52c0"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroki Sakano","id":"5f6d127156b0219cac2f52c5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroyuki Kira","id":"5f6d127156b0219cac2f52ba"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Katsuhisa Sato","id":"5f6d127156b0219cac2f52ae"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hirohito Shinoda","id":"5f6d127156b0219cac2f52ca"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kanae Nakayama","id":"5f6d127156b0219cac2f52b3"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroshi Umemiya","id":"5f6d127156b0219cac2f52bf"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hitomi Sato","id":"5f6d127156b0219cac2f52b8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Erina Shimamoto","id":"5f6d127156b0219cac2f52cf"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroki Taguchi","id":"5f6d127156b0219cac2f52c4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroto Kurano","id":"5f6d127156b0219cac2f52bd"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daisuke Nobori","id":"5f6d127156b0219cac2f52d4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hikari Harada","id":"5f6d127156b0219cac2f52c9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroshi Ando","id":"5f6d127156b0219cac2f52c2"},{"worked_on":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Daiki Iwamoto","id":"5f6d127156b0219cac2f52d9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroki Nara","id":"5f6d127156b0219cac2f52c7"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Akihito Toda","id":"5f6d127156b0219cac2f52de"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hidefumi Takeda","id":"5f6d127156b0219cac2f52ce"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Davina Midori Hendroff","id":"5f6d127156b0219cac2f52d3"},{"worked_on":["5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c9"],"name":"Hidemaro Fujibayashi","id":"5f6d127156b0219cac2f52cc"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takumi Oniki","id":"5f6d127156b0219cac2f52e3"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Emi Takano","id":"5f6d127156b0219cac2f52d1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daiki Kimura","id":"5f6d127156b0219cac2f52d8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takeshi Okui","id":"5f6d127156b0219cac2f52e8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daisuke Nakano","id":"5f6d127156b0219cac2f52d6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Amelia Gotham","id":"5f6d127156b0219cac2f52dd"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Wataru Inata","id":"5f6d127156b0219cac2f52ed"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daisuke Amakawa","id":"5f6d127156b0219cac2f52db"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takumi Sekino","id":"5f6d127156b0219cac2f52e2"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Akihiro Kawashima","id":"5f6d127156b0219cac2f52e0"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takeshi Mayumi","id":"5f6d127156b0219cac2f52e7"},{"worked_on":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Yusuke Nakano","id":"5f6d127156b0219cac2f52f2"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takuma Deguchi","id":"5f6d127156b0219cac2f52e5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yasuhiro Fujita","id":"5f6d127156b0219cac2f52ec"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuko Morise","id":"5f6d127156b0219cac2f52f7"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Tanaka","id":"5f6d127156b0219cac2f52fc"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuya Sato","id":"5f6d127156b0219cac2f52f1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yasutomo Nishibe","id":"5f6d127156b0219cac2f52ea"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuko Miyakawa","id":"5f6d127156b0219cac2f52f6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yasuhide Hino","id":"5f6d127156b0219cac2f52ef"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuichiro Okamura","id":"5f6d127156b0219cac2f5301"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Takasu","id":"5f6d127156b0219cac2f52fb"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuta Yamada","id":"5f6d127156b0219cac2f52f4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoshikazu Hara","id":"5f6d127156b0219cac2f5306"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yohei Izumi","id":"5f6d127156b0219cac2f530b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuichiro Tsumita","id":"5f6d127156b0219cac2f5300"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yukiko Izuo","id":"5f6d127156b0219cac2f52f9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Toru Hombu","id":"5f6d127156b0219cac2f5310"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Hamada","id":"5f6d127156b0219cac2f52fe"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoshiyuki Oyama","id":"5f6d127156b0219cac2f5305"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yosuke Sakooka","id":"5f6d127156b0219cac2f5303"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tomohisa Saito","id":"5f6d127156b0219cac2f5315"},{"worked_on":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2d6","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"name":"Yoichi Yamada","id":"5f6d127156b0219cac2f530a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoji Okudera","id":"5f6d127156b0219cac2f5308"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tatsuo Oshima","id":"5f6d127156b0219cac2f531a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Toshihiro Taguchi","id":"5f6d127156b0219cac2f530f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Toshiyuki Hiroe","id":"5f6d127156b0219cac2f530d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tomokazu Yoshida","id":"5f6d127156b0219cac2f5314"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tomoyo Matsuda","id":"5f6d127156b0219cac2f5312"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tetsuya Amabiki","id":"5f6d127156b0219cac2f5319"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tetsuya Taniyama","id":"5f6d127156b0219cac2f5317"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takuya Matsuda","id":"5f6d127156b0219cac2f531e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tatsunobu Imoto","id":"5f6d127156b0219cac2f531c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Asami Fujita","id":"5f6d127156b0219cac2f522e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroki Omote","id":"5f6d127156b0219cac2f5232"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takashi Yamamoto","id":"5f6d127156b0219cac2f5237"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Takafumi Kiuchi","id":"5f6d127156b0219cac2f523c"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tadahiro Usuda","id":"5f6d127156b0219cac2f5241"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Sou Nozawa","id":"5f6d127156b0219cac2f5246"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shun Hayami","id":"5f6d127156b0219cac2f524b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shogo Kihara","id":"5f6d127156b0219cac2f5250"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shinji Okuda","id":"5f6d127156b0219cac2f5255"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Shigetoshi Kitayama","id":"5f6d127156b0219cac2f525a"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Satoko Nishio","id":"5f6d127156b0219cac2f525f"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Ryuji Kobayashi","id":"5f6d127156b0219cac2f5264"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Rina Imado","id":"5f6d127156b0219cac2f5269"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Naoto Tsuboi","id":"5f6d127156b0219cac2f526e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Nami Shimura","id":"5f6d127156b0219cac2f5273"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Moe Shirataki","id":"5f6d127156b0219cac2f5278"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mitsuru Sumiyama","id":"5f6d127156b0219cac2f527d"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Midzuki Suyama","id":"5f6d127156b0219cac2f5282"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masato Mori","id":"5f6d127156b0219cac2f5287"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Masafumi Kawamura","id":"5f6d127156b0219cac2f528c"},{"worked_on":["5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c9"],"name":"Manaka Kataoka","id":"5f6d127156b0219cac2f5291"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Mahito Idehara","id":"5f6d127156b0219cac2f5296"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kohei Kawazoe","id":"5f6d127156b0219cac2f529b"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Keisuke Asaba","id":"5f6d127156b0219cac2f52a0"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazunori Fujii","id":"5f6d127156b0219cac2f52a5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kazuaki Yamamoto","id":"5f6d127156b0219cac2f52aa"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Kanae Yanagawa","id":"5f6d127156b0219cac2f52af"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Jun Takada","id":"5f6d127156b0219cac2f52b4"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroyuki Taniwa","id":"5f6d127156b0219cac2f52b9"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroto Jinnouchi","id":"5f6d127156b0219cac2f52be"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroko Kiyonari","id":"5f6d127156b0219cac2f52c3"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hiroaki Miura","id":"5f6d127156b0219cac2f52c8"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Hideki Tanaka","id":"5f6d127156b0219cac2f52cd"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Eiji Mukao","id":"5f6d127156b0219cac2f52d2"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Daisuke Kaneko","id":"5f6d127156b0219cac2f52d7"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Corey Bunnell","id":"5f6d127156b0219cac2f52dc"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Akane Tamura","id":"5f6d127156b0219cac2f52e1"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yohei Fujino","id":"5f6d127156b0219cac2f52e6"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yasutaka Takeuchi","id":"5f6d127156b0219cac2f52eb"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Urara Kato","id":"5f6d127156b0219cac2f52f0"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yutaka Hiramuki","id":"5f6d127156b0219cac2f52f5"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Yoshida","id":"5f6d127156b0219cac2f52fa"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yuki Ozawa","id":"5f6d127156b0219cac2f52ff"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoshiyuki Sawada","id":"5f6d127156b0219cac2f5304"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Yoko Maruta","id":"5f6d127156b0219cac2f5309"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Toshiya Tomita","id":"5f6d127156b0219cac2f530e"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Tomoko Miyaoka","id":"5f6d127156b0219cac2f5313"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Taro Nakamura","id":"5f6d127156b0219cac2f5318"},{"worked_on":["5f6ce9d805615a85623ec2c9"],"name":"Taro Yamazaki","id":"5f6d127156b0219cac2f531d"}] -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@apollo/protobufjs@1.2.2": 6 | version "1.2.2" 7 | resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.2.tgz#4bd92cd7701ccaef6d517cdb75af2755f049f87c" 8 | integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== 9 | dependencies: 10 | "@protobufjs/aspromise" "^1.1.2" 11 | "@protobufjs/base64" "^1.1.2" 12 | "@protobufjs/codegen" "^2.0.4" 13 | "@protobufjs/eventemitter" "^1.1.0" 14 | "@protobufjs/fetch" "^1.1.0" 15 | "@protobufjs/float" "^1.0.2" 16 | "@protobufjs/inquire" "^1.1.0" 17 | "@protobufjs/path" "^1.1.2" 18 | "@protobufjs/pool" "^1.1.0" 19 | "@protobufjs/utf8" "^1.1.0" 20 | "@types/long" "^4.0.0" 21 | "@types/node" "^10.1.0" 22 | long "^4.0.0" 23 | 24 | "@apollographql/apollo-tools@^0.5.1": 25 | version "0.5.2" 26 | resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz#01750a655731a198c3634ee819c463254a7c7767" 27 | integrity sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw== 28 | 29 | "@apollographql/graphql-playground-html@1.6.29": 30 | version "1.6.29" 31 | resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" 32 | integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== 33 | dependencies: 34 | xss "^1.0.8" 35 | 36 | "@graphql-tools/merge@^8.2.1": 37 | version "8.2.2" 38 | resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.2.tgz#433566c662a33f5a9c3cc5f3ce3753fb0019477a" 39 | integrity sha512-2DyqhIOMUMKbCPqo8p6xSdll2OBcBxGdOrxlJJlFQvinsSaYqp/ct3dhAxNtzaIcvSVgXvttQqfD7O2ziFtE7Q== 40 | dependencies: 41 | "@graphql-tools/utils" "^8.5.1" 42 | tslib "~2.3.0" 43 | 44 | "@graphql-tools/mock@^8.1.2": 45 | version "8.5.1" 46 | resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.5.1.tgz#379d18eafdcb65486beb8f9247b33b7b693c53aa" 47 | integrity sha512-cwwqGs9Rofev1JdMheAseqM/rw1uw4CYb35vv3Kcv2bbyiPF+490xdlHqFeIazceotMFxC60LlQztwb64rsEnw== 48 | dependencies: 49 | "@graphql-tools/schema" "^8.3.1" 50 | "@graphql-tools/utils" "^8.6.0" 51 | fast-json-stable-stringify "^2.1.0" 52 | tslib "~2.3.0" 53 | 54 | "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.3.1": 55 | version "8.3.1" 56 | resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" 57 | integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== 58 | dependencies: 59 | "@graphql-tools/merge" "^8.2.1" 60 | "@graphql-tools/utils" "^8.5.1" 61 | tslib "~2.3.0" 62 | value-or-promise "1.0.11" 63 | 64 | "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.6.0": 65 | version "8.6.1" 66 | resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" 67 | integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== 68 | dependencies: 69 | tslib "~2.3.0" 70 | 71 | "@hapi/accept@^5.0.2": 72 | version "5.0.2" 73 | resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" 74 | integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw== 75 | dependencies: 76 | "@hapi/boom" "9.x.x" 77 | "@hapi/hoek" "9.x.x" 78 | 79 | "@hapi/boom@9.x.x": 80 | version "9.1.4" 81 | resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" 82 | integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== 83 | dependencies: 84 | "@hapi/hoek" "9.x.x" 85 | 86 | "@hapi/hoek@9.x.x": 87 | version "9.2.1" 88 | resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" 89 | integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== 90 | 91 | "@josephg/resolvable@^1.0.0": 92 | version "1.0.1" 93 | resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" 94 | integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== 95 | 96 | "@next/env@12.0.10": 97 | version "12.0.10" 98 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.0.10.tgz#561640fd62279218ccd2798ae907bae8d94a7730" 99 | integrity sha512-mQVj0K6wQ5WEk/sL9SZ+mJXJUaG7el8CpZ6io1uFe9GgNTSC7EgUyNGqM6IQovIFc5ukF4O/hqsdh3S/DCgT2g== 100 | 101 | "@next/swc-android-arm64@12.0.10": 102 | version "12.0.10" 103 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.0.10.tgz#fd9d716433cc9d361021b0052f8b002bcaff948d" 104 | integrity sha512-xYwXGkNhzZZsM5MD7KRwF5ZNiC8OLPtVMUiagpPnwENg8Hb0GSQo/NbYWXM8YrawEwp9LaZ7OXiuRKPh2JyBdA== 105 | 106 | "@next/swc-darwin-arm64@12.0.10": 107 | version "12.0.10" 108 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.10.tgz#34b2d0dc62eb89efb9176af111e3820a11fdb3f0" 109 | integrity sha512-f2zngulkpIJKWHckhRi7X8GZ+J/tNgFF7lYIh7Qx15JH0OTBsjkqxORlkzy+VZyHJ5sWTCaI6HYYd3ow6qkEEg== 110 | 111 | "@next/swc-darwin-x64@12.0.10": 112 | version "12.0.10" 113 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.10.tgz#a4306795159293c7d4d58a2c88ce1710ff0a8baa" 114 | integrity sha512-Qykcu/gVC5oTvOQoRBhyuS5GYm5SbcgrFTsaLFkGBmEkg9eMQRiaCswk4IafpDXVzITkVFurzSM28q3tLW2qUw== 115 | 116 | "@next/swc-linux-arm-gnueabihf@12.0.10": 117 | version "12.0.10" 118 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.10.tgz#1ad15af3d5fca2fef57894d61e16f73aee61ec2e" 119 | integrity sha512-EhqrTFsIXAXN9B/fiiW/QKUK/lSLCXRsLalkUp58KDfMqVLLlj1ORbESAcswiNQOChLuHQSldGEEtOBPQZcd9A== 120 | 121 | "@next/swc-linux-arm64-gnu@12.0.10": 122 | version "12.0.10" 123 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.10.tgz#a84a92d0e1a179c4346c9ed8f22e26f708101ad6" 124 | integrity sha512-kqGtC72g3+JYXZbY2ca6digXR5U6AQ6Dzv4eAxYluMePLHjI/Xye1mf9dwVsgmeXfrD/IRDp5K/3A6UNvBm4oQ== 125 | 126 | "@next/swc-linux-arm64-musl@12.0.10": 127 | version "12.0.10" 128 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.10.tgz#973ec96c77f845bd0a6eecbf1892caa1ee4defaf" 129 | integrity sha512-bG9zTSNwnSgc1Un/7oz1ZVN4UeXsTWrsQhAGWU78lLLCn4Zj9HQoUCRCGLt0OVs2DBZ+WC8CzzFliQ1SKipVbg== 130 | 131 | "@next/swc-linux-x64-gnu@12.0.10": 132 | version "12.0.10" 133 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.10.tgz#efcc7f8252ea8225834760eaf09350f1bead73f7" 134 | integrity sha512-c79PcfWtyThiYRa1+3KVfDq0zXaI8o1d6dQWNVqDrtLz5HKM/rbjLdvoNuxDwUeZhxI/d9CtyH6GbuKPw5l/5A== 135 | 136 | "@next/swc-linux-x64-musl@12.0.10": 137 | version "12.0.10" 138 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.10.tgz#c2a73d939dfd310acc1892a0a132762500dd5757" 139 | integrity sha512-g/scgn+21/MLfizOCZOZt+MxNj2/8Tdlwjvy+QZcSUPZRUI2Y5o3HwBvI1f/bSci+NGRU+bUAO0NFtRJ9MzH5w== 140 | 141 | "@next/swc-win32-arm64-msvc@12.0.10": 142 | version "12.0.10" 143 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.10.tgz#2316af5f612cde1691abdf2571ff40ec32ea3429" 144 | integrity sha512-gl6B/ravwMeY5Nv4Il2/ARYJQ6u+KPRwGMjS1ZrNudIKlNn4YBeXh5A4cIVm+dHaff6/O/lGOa5/SUYDMZpkww== 145 | 146 | "@next/swc-win32-ia32-msvc@12.0.10": 147 | version "12.0.10" 148 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.10.tgz#98a4f74d164871cfaccb0df6efddf2b7bcbaa54b" 149 | integrity sha512-7RVpZ3tSThC6j+iZB0CUYmFiA3kXmN+pE7QcfyAxFaflKlaZoWNMKHIEZDuxSJc6YmQ6kyxsjqxVay2F5+/YCg== 150 | 151 | "@next/swc-win32-x64-msvc@12.0.10": 152 | version "12.0.10" 153 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.10.tgz#5c0ba98b695c4be44d8793aff42971a0dac65c2d" 154 | integrity sha512-oUIWRKd24jFLRWUYO1CZmML5+32BcpVfqhimGaaZIXcOkfQW+iqiAzdqsv688zaGtyKGeB9ZtiK3NDf+Q0v+Vw== 155 | 156 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 157 | version "1.1.2" 158 | resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" 159 | integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= 160 | 161 | "@protobufjs/base64@^1.1.2": 162 | version "1.1.2" 163 | resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" 164 | integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== 165 | 166 | "@protobufjs/codegen@^2.0.4": 167 | version "2.0.4" 168 | resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" 169 | integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== 170 | 171 | "@protobufjs/eventemitter@^1.1.0": 172 | version "1.1.0" 173 | resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" 174 | integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= 175 | 176 | "@protobufjs/fetch@^1.1.0": 177 | version "1.1.0" 178 | resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" 179 | integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= 180 | dependencies: 181 | "@protobufjs/aspromise" "^1.1.1" 182 | "@protobufjs/inquire" "^1.1.0" 183 | 184 | "@protobufjs/float@^1.0.2": 185 | version "1.0.2" 186 | resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" 187 | integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= 188 | 189 | "@protobufjs/inquire@^1.1.0": 190 | version "1.1.0" 191 | resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" 192 | integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= 193 | 194 | "@protobufjs/path@^1.1.2": 195 | version "1.1.2" 196 | resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" 197 | integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= 198 | 199 | "@protobufjs/pool@^1.1.0": 200 | version "1.1.0" 201 | resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" 202 | integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= 203 | 204 | "@protobufjs/utf8@^1.1.0": 205 | version "1.1.0" 206 | resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" 207 | integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= 208 | 209 | "@types/long@^4.0.0": 210 | version "4.0.1" 211 | resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" 212 | integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== 213 | 214 | "@types/node@^10.1.0": 215 | version "10.17.60" 216 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" 217 | integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== 218 | 219 | apollo-datasource@^3.3.1: 220 | version "3.3.1" 221 | resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.1.tgz#a1168dd68371930de3ed4245ad12fa8600efe2cc" 222 | integrity sha512-Z3a8rEUXVPIZ1p8xrFL8bcNhWmhOmovgDArvwIwmJOBnh093ZpRfO+ESJEDAN4KswmyzCLDAwjsW4zQOONdRUw== 223 | dependencies: 224 | apollo-server-caching "^3.3.0" 225 | apollo-server-env "^4.2.1" 226 | 227 | apollo-reporting-protobuf@^3.3.0: 228 | version "3.3.0" 229 | resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.0.tgz#2fc0f7508e488851eda8a6e7c8cc3b5a156ab44b" 230 | integrity sha512-51Jwrg0NvHJfKz7TIGU8+Os3rUAqWtXeKRsRtKYtTeMSBPNhzz8UoGjAB3XyVmUXRE3IRmLtDPDRFL7qbxMI/w== 231 | dependencies: 232 | "@apollo/protobufjs" "1.2.2" 233 | 234 | apollo-server-caching@^3.3.0: 235 | version "3.3.0" 236 | resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-3.3.0.tgz#f501cbeb820a4201d98c2b768c085f22848d9dc5" 237 | integrity sha512-Wgcb0ArjZ5DjQ7ID+tvxUcZ7Yxdbk5l1MxZL8D8gkyjooOkhPNzjRVQ7ubPoXqO54PrOMOTm1ejVhsF+AfIirQ== 238 | dependencies: 239 | lru-cache "^6.0.0" 240 | 241 | apollo-server-core@^3.6.2: 242 | version "3.6.2" 243 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.6.2.tgz#d9cbc3d0ba928d86a24640a485f4601b89b485fd" 244 | integrity sha512-GNx41BnpH/yvGv7nTt4bQXuH5BDVs9CBQawfOcgtVdoVoWkazv1Dwy1muqPa7WDt2rk9oY+P6QymtJpBAtmzhg== 245 | dependencies: 246 | "@apollographql/apollo-tools" "^0.5.1" 247 | "@apollographql/graphql-playground-html" "1.6.29" 248 | "@graphql-tools/mock" "^8.1.2" 249 | "@graphql-tools/schema" "^8.0.0" 250 | "@josephg/resolvable" "^1.0.0" 251 | apollo-datasource "^3.3.1" 252 | apollo-reporting-protobuf "^3.3.0" 253 | apollo-server-caching "^3.3.0" 254 | apollo-server-env "^4.2.1" 255 | apollo-server-errors "^3.3.1" 256 | apollo-server-plugin-base "^3.5.1" 257 | apollo-server-types "^3.5.1" 258 | async-retry "^1.2.1" 259 | fast-json-stable-stringify "^2.1.0" 260 | graphql-tag "^2.11.0" 261 | lodash.sortby "^4.7.0" 262 | loglevel "^1.6.8" 263 | lru-cache "^6.0.0" 264 | sha.js "^2.4.11" 265 | uuid "^8.0.0" 266 | 267 | apollo-server-env@^4.2.1: 268 | version "4.2.1" 269 | resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" 270 | integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== 271 | dependencies: 272 | node-fetch "^2.6.7" 273 | 274 | apollo-server-errors@^3.3.1: 275 | version "3.3.1" 276 | resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" 277 | integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== 278 | 279 | apollo-server-micro@^3.6.2: 280 | version "3.6.2" 281 | resolved "https://registry.yarnpkg.com/apollo-server-micro/-/apollo-server-micro-3.6.2.tgz#cbad20c30113d50b8b00455f48f72b4d5182112a" 282 | integrity sha512-eRb/ei+O+WA7mJZP7VLL6XVf1uMX8O8lnTXsW8G1/henyqUlCJ5WjxmoaJcyF1+jDIyqoSIP0n7gqhiIf/j3Ww== 283 | dependencies: 284 | "@hapi/accept" "^5.0.2" 285 | apollo-server-core "^3.6.2" 286 | apollo-server-types "^3.5.1" 287 | type-is "^1.6.18" 288 | 289 | apollo-server-plugin-base@^3.5.1: 290 | version "3.5.1" 291 | resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.1.tgz#73fc1591522e36e32eff3d033975333e30cf1a7c" 292 | integrity sha512-wgDHz3lLrCqpecDky3z6AOQ0vik0qs0Cya/Ti6n3ESYXJ9MdK3jE/QunATIrOYYJaa+NKl9V7YwU+/bojNfFuQ== 293 | dependencies: 294 | apollo-server-types "^3.5.1" 295 | 296 | apollo-server-types@^3.5.1: 297 | version "3.5.1" 298 | resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.5.1.tgz#73fc8aa82b3175fde3906fa3d6786ee4d3e8c982" 299 | integrity sha512-zG7xLl4mmHuZMAYOfjWKHY/IC/GgIkJ3HnYuR7FRrnPpRA9Yt5Kf1M1rjm1Esuqzpb/dt8pM7cX40QaIQObCYQ== 300 | dependencies: 301 | apollo-reporting-protobuf "^3.3.0" 302 | apollo-server-caching "^3.3.0" 303 | apollo-server-env "^4.2.1" 304 | 305 | arg@4.1.0: 306 | version "4.1.0" 307 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" 308 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== 309 | 310 | async-retry@^1.2.1: 311 | version "1.3.3" 312 | resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" 313 | integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== 314 | dependencies: 315 | retry "0.13.1" 316 | 317 | bytes@3.0.0: 318 | version "3.0.0" 319 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 320 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 321 | 322 | caniuse-lite@^1.0.30001283: 323 | version "1.0.30001309" 324 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001309.tgz#e0ee78b9bec0704f67304b00ff3c5c0c768a9f62" 325 | integrity sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA== 326 | 327 | commander@^2.20.3: 328 | version "2.20.3" 329 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 330 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 331 | 332 | content-type@1.0.4: 333 | version "1.0.4" 334 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 335 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 336 | 337 | cssfilter@0.0.10: 338 | version "0.0.10" 339 | resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" 340 | integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= 341 | 342 | depd@1.1.1: 343 | version "1.1.1" 344 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 345 | integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= 346 | 347 | fast-json-stable-stringify@^2.1.0: 348 | version "2.1.0" 349 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 350 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 351 | 352 | graphql-tag@^2.11.0: 353 | version "2.12.6" 354 | resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" 355 | integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== 356 | dependencies: 357 | tslib "^2.1.0" 358 | 359 | graphql@^16.3.0: 360 | version "16.3.0" 361 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.3.0.tgz#a91e24d10babf9e60c706919bb182b53ccdffc05" 362 | integrity sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A== 363 | 364 | http-errors@1.6.2: 365 | version "1.6.2" 366 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 367 | integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= 368 | dependencies: 369 | depd "1.1.1" 370 | inherits "2.0.3" 371 | setprototypeof "1.0.3" 372 | statuses ">= 1.3.1 < 2" 373 | 374 | iconv-lite@0.4.19: 375 | version "0.4.19" 376 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 377 | integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== 378 | 379 | inherits@2.0.3: 380 | version "2.0.3" 381 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 382 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 383 | 384 | inherits@^2.0.1: 385 | version "2.0.4" 386 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 387 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 388 | 389 | is-stream@1.1.0: 390 | version "1.1.0" 391 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 392 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 393 | 394 | "js-tokens@^3.0.0 || ^4.0.0": 395 | version "4.0.0" 396 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 397 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 398 | 399 | lodash.sortby@^4.7.0: 400 | version "4.7.0" 401 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 402 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 403 | 404 | loglevel@^1.6.8: 405 | version "1.8.0" 406 | resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" 407 | integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== 408 | 409 | long@^4.0.0: 410 | version "4.0.0" 411 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 412 | integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== 413 | 414 | loose-envify@^1.1.0, loose-envify@^1.4.0: 415 | version "1.4.0" 416 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 417 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 418 | dependencies: 419 | js-tokens "^3.0.0 || ^4.0.0" 420 | 421 | lru-cache@^6.0.0: 422 | version "6.0.0" 423 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 424 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 425 | dependencies: 426 | yallist "^4.0.0" 427 | 428 | media-typer@0.3.0: 429 | version "0.3.0" 430 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 431 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 432 | 433 | micro@^9.3.4: 434 | version "9.3.4" 435 | resolved "https://registry.yarnpkg.com/micro/-/micro-9.3.4.tgz#745a494e53c8916f64fb6a729f8cbf2a506b35ad" 436 | integrity sha512-smz9naZwTG7qaFnEZ2vn248YZq9XR+XoOH3auieZbkhDL4xLOxiE+KqG8qqnBeKfXA9c1uEFGCxPN1D+nT6N7w== 437 | dependencies: 438 | arg "4.1.0" 439 | content-type "1.0.4" 440 | is-stream "1.1.0" 441 | raw-body "2.3.2" 442 | 443 | mime-db@1.51.0: 444 | version "1.51.0" 445 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 446 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 447 | 448 | mime-types@~2.1.24: 449 | version "2.1.34" 450 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 451 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 452 | dependencies: 453 | mime-db "1.51.0" 454 | 455 | nanoid@^3.1.30: 456 | version "3.2.0" 457 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" 458 | integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== 459 | 460 | next@12: 461 | version "12.0.10" 462 | resolved "https://registry.yarnpkg.com/next/-/next-12.0.10.tgz#fcc4584177418bd777ce157f3165b7ba5e7708f7" 463 | integrity sha512-1y3PpGzpb/EZzz1jgne+JfZXKAVJUjYXwxzrADf/LWN+8yi9o79vMLXpW3mevvCHkEF2sBnIdjzNn16TJrINUw== 464 | dependencies: 465 | "@next/env" "12.0.10" 466 | caniuse-lite "^1.0.30001283" 467 | postcss "8.4.5" 468 | styled-jsx "5.0.0" 469 | use-subscription "1.5.1" 470 | optionalDependencies: 471 | "@next/swc-android-arm64" "12.0.10" 472 | "@next/swc-darwin-arm64" "12.0.10" 473 | "@next/swc-darwin-x64" "12.0.10" 474 | "@next/swc-linux-arm-gnueabihf" "12.0.10" 475 | "@next/swc-linux-arm64-gnu" "12.0.10" 476 | "@next/swc-linux-arm64-musl" "12.0.10" 477 | "@next/swc-linux-x64-gnu" "12.0.10" 478 | "@next/swc-linux-x64-musl" "12.0.10" 479 | "@next/swc-win32-arm64-msvc" "12.0.10" 480 | "@next/swc-win32-ia32-msvc" "12.0.10" 481 | "@next/swc-win32-x64-msvc" "12.0.10" 482 | 483 | node-fetch@^2.6.7: 484 | version "2.6.7" 485 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" 486 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== 487 | dependencies: 488 | whatwg-url "^5.0.0" 489 | 490 | object-assign@^4.1.1: 491 | version "4.1.1" 492 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 493 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 494 | 495 | picocolors@^1.0.0: 496 | version "1.0.0" 497 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 498 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 499 | 500 | postcss@8.4.5: 501 | version "8.4.5" 502 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" 503 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== 504 | dependencies: 505 | nanoid "^3.1.30" 506 | picocolors "^1.0.0" 507 | source-map-js "^1.0.1" 508 | 509 | prop-types@^15.6.2: 510 | version "15.8.1" 511 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" 512 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== 513 | dependencies: 514 | loose-envify "^1.4.0" 515 | object-assign "^4.1.1" 516 | react-is "^16.13.1" 517 | 518 | raw-body@2.3.2: 519 | version "2.3.2" 520 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 521 | integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= 522 | dependencies: 523 | bytes "3.0.0" 524 | http-errors "1.6.2" 525 | iconv-lite "0.4.19" 526 | unpipe "1.0.0" 527 | 528 | react-dom@^16.13.1: 529 | version "16.14.0" 530 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" 531 | integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== 532 | dependencies: 533 | loose-envify "^1.1.0" 534 | object-assign "^4.1.1" 535 | prop-types "^15.6.2" 536 | scheduler "^0.19.1" 537 | 538 | react-is@^16.13.1: 539 | version "16.13.1" 540 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 541 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 542 | 543 | react@^16.13.1: 544 | version "16.14.0" 545 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 546 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 547 | dependencies: 548 | loose-envify "^1.1.0" 549 | object-assign "^4.1.1" 550 | prop-types "^15.6.2" 551 | 552 | retry@0.13.1: 553 | version "0.13.1" 554 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" 555 | integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== 556 | 557 | safe-buffer@^5.0.1: 558 | version "5.2.1" 559 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 560 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 561 | 562 | scheduler@^0.19.1: 563 | version "0.19.1" 564 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" 565 | integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== 566 | dependencies: 567 | loose-envify "^1.1.0" 568 | object-assign "^4.1.1" 569 | 570 | setprototypeof@1.0.3: 571 | version "1.0.3" 572 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 573 | integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= 574 | 575 | sha.js@^2.4.11: 576 | version "2.4.11" 577 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 578 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 579 | dependencies: 580 | inherits "^2.0.1" 581 | safe-buffer "^5.0.1" 582 | 583 | source-map-js@^1.0.1: 584 | version "1.0.2" 585 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 586 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 587 | 588 | "statuses@>= 1.3.1 < 2": 589 | version "1.5.0" 590 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 591 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 592 | 593 | styled-jsx@5.0.0: 594 | version "5.0.0" 595 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0.tgz#816b4b92e07b1786c6b7111821750e0ba4d26e77" 596 | integrity sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA== 597 | 598 | tr46@~0.0.3: 599 | version "0.0.3" 600 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 601 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= 602 | 603 | tslib@^2.1.0, tslib@~2.3.0: 604 | version "2.3.1" 605 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 606 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 607 | 608 | type-is@^1.6.18: 609 | version "1.6.18" 610 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 611 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 612 | dependencies: 613 | media-typer "0.3.0" 614 | mime-types "~2.1.24" 615 | 616 | unpipe@1.0.0: 617 | version "1.0.0" 618 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 619 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 620 | 621 | use-subscription@1.5.1: 622 | version "1.5.1" 623 | resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" 624 | integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== 625 | dependencies: 626 | object-assign "^4.1.1" 627 | 628 | uuid@^8.0.0: 629 | version "8.3.2" 630 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 631 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 632 | 633 | value-or-promise@1.0.11: 634 | version "1.0.11" 635 | resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" 636 | integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== 637 | 638 | webidl-conversions@^3.0.0: 639 | version "3.0.1" 640 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 641 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= 642 | 643 | whatwg-url@^5.0.0: 644 | version "5.0.0" 645 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 646 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= 647 | dependencies: 648 | tr46 "~0.0.3" 649 | webidl-conversions "^3.0.0" 650 | 651 | xss@^1.0.8: 652 | version "1.0.10" 653 | resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.10.tgz#5cd63a9b147a755a14cb0455c7db8866120eb4d2" 654 | integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw== 655 | dependencies: 656 | commander "^2.20.3" 657 | cssfilter "0.0.10" 658 | 659 | yallist@^4.0.0: 660 | version "4.0.0" 661 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 662 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 663 | -------------------------------------------------------------------------------- /public/data/bosses.json: -------------------------------------------------------------------------------- 1 | [{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":[],"name":"Bilocyte","description":"Bilocyte is a Boss in Skyward Sword. It is a large parasite that infiltrates and possesses Levias, who lives inside the giant Thunderhead near Skyloft. ","id":"5f6e93a7cbf4202fbde224fd"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Amy","description":"Amy is a recurring Sub-Boss in The Legend of Zelda series. She is the youngest of the four Poe Sisters. ","id":"5f6e93a7cbf4202fbde224fc"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0d8"],"name":"Agwanda","description":"Agwanda is the fifth Boss in Zelda's Adventure. She is the Shrine Keeper of the Shrine of Water. ","id":"5f6e93a7cbf4202fbde224fe"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c1cf"],"name":"Agunima","description":"Agunima is a Boss in Oracle of Seasons. It is a mysterious wizard that appears as a the middle boss in the Dancing Dragon Dungeon. ","id":"5f6e93a7cbf4202fbde224ff"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":[],"name":"Agitha","description":"Agitha is a recurring character in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22500"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c09f"],"name":"Big Octorok","description":"The Big Octorok is the Boss of the Temple of Droplets in The Minish Cap. It is the guardian of the Water Element. ","id":"5f6e93a7cbf4202fbde22504"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"Agahnim","description":"Agahnim is the dark wizard who serves as the secondary antagonist of A Link to the Past. He kidnaps the Seven Maidens to break the seal to the corrupted Sacred Realm and achieve his goal. While many believe him to be a pawn of Ganon, he is revealed to be the demon's alter-ego. ","id":"5f6e93a7cbf4202fbde22502"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c09d"],"name":"Blaaz","description":"Blaaz is the Boss of the Temple of Fire in Phantom Hourglass. ","id":"5f6e93a7cbf4202fbde22503"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c182"],"name":"Big Pengator","description":"Big Pengator is a Sub-Boss in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde22501"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2bf"],"dungeons":[],"name":"Big Octo","description":"Big Octos, also known as Bigoctos, are recurring Bosses and enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22505"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c154"],"name":"Moldarach","description":"Moldarach is a Boss in Skyward Sword. An Aracha that has reached the age of one thousand years, two of them appear throughout the game; one as the main boss of the Lanayru Mining Facility and another later encountered at the Lanayru Shipyard in the Lanayru Sand Sea as a mini-boss. ","id":"5f6e93a7cbf4202fbde22509"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c12d"],"name":"Moblin Chief","description":"The Moblin Chief is a Sub-Boss in Link's Awakening. He is a large red Moblin that appears as the chief of the Moblins. ","id":"5f6e93a7cbf4202fbde2250a"},{"appearances":["5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c1d9","5f6d158a3dd55d9ed2d1c1de","5f6d158a3dd55d9ed2d1c188","5f6d158a3dd55d9ed2d1c1b9","5f6d158a3dd55d9ed2d1c0cf","5f6d158a3dd55d9ed2d1c1c2"],"name":"Aeralfos","description":"Aeralfos are recurring enemies and bosses in The Legend of Zelda series. They are winged reptilian enemies armed with swords and shields. ","id":"5f6e93a7cbf4202fbde2250c"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Meg","description":"Meg, also known as Margaret, is a recurring Sub-Boss in The Legend of Zelda series. She is the eldest of the four Poe Sisters. ","id":"5f6e93a7cbf4202fbde2250f"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c104"],"name":"Big Moldorm","description":"Big Moldorm is a Boss in Four Swords Adventures. ","id":"5f6e93a7cbf4202fbde22506"},{"appearances":["5f6ce9d805615a85623ec2d5"],"dungeons":[],"name":"Glutko","description":"Glutko is a location in The Faces of Evil. It is unlocked after completing Militron. ","id":"5f6e93a7cbf4202fbde22514"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c108","5f6d158a3dd55d9ed2d1c10d"],"name":"Mazura","description":"Mazura, also known as Horsehead, is the first Boss in The Adventure of Link. It is encountered in the penultimate chamber of the Parapa Palace, protecting the temple's statue. Upon his defeat, like all bosses in the game, a key drops from above that allows Link to pass through into the final room that contains the Stone Statue to set the Crystal into. ","id":"5f6e93a7cbf4202fbde22511"},{"appearances":[],"dungeons":[],"name":"Big Liar","description":"Big Liar is the second boss in Ripened Tingle's Balloon Trip of Love. He is the god of the Usotami and resides dormant in a cave at the end of the Usotami Village. Tingle must need an offering first in order to enter his lair, where Kakashi is being held captive. He is encountered on Page 11. ","id":"5f6e93a7cbf4202fbde22508"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c1"],"dungeons":[],"name":"Big Poe","description":"Big Poes are recurring Enemies in The Legend of Zelda series. They are a larger, stronger variant of Poes. Like Poes, they carry Poe Souls within the lanterns that they carry. ","id":"5f6e93a7cbf4202fbde2250b"},{"appearances":["5f6ce9d805615a85623ec2c4"],"dungeons":["5f6d158a3dd55d9ed2d1c099"],"name":"Big Manhandla","description":"Big Manhandla is the boss of the Sea of Trees in Four Swords. ","id":"5f6e93a7cbf4202fbde22507"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c1d6"],"name":"Smog","description":"Smog is the Boss of the Crown Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22519"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":[],"name":"Midna","description":"Midna is a recurring character in The Legend of Zelda series. She is a resident of the Twilight Realm and a descendant of the ancient Twili people. At first, she seems to be a strange, dark creature with an agenda of her own and little regard for Link, but she ends up changing her attitude towards those who are willing to help her. ","id":"5f6e93a7cbf4202fbde2250d"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2","5f6d158a3dd55d9ed2d1c1ab","5f6d158a3dd55d9ed2d1c188","5f6d158a3dd55d9ed2d1c0ba"],"name":"Phantom Ganon","description":"Phantom Ganon is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22516"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Medusa Head","description":"Medusa Head is the boss of the eighth dungeon in Oracle of Seasons, the Sword & Shield Maze. ","id":"5f6e93a7cbf4202fbde22510"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"Mighty Darknut","description":"Mighty Darknuts are mini-bosses and enemies in The Wind Waker. ","id":"5f6e93a7cbf4202fbde2250e"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c1c0"],"name":"Zaganaga","description":"Zaganaga is the Boss of the Desert Palace in A Link Between Worlds. It appears as a monstrous, plant-like creature with a spiny, cactaceous body. ","id":"5f6e93a7cbf4202fbde2251e"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c0d1","5f6d158a3dd55d9ed2d1c10c","5f6d158a3dd55d9ed2d1c1a7","5f6d158a3dd55d9ed2d1c1a2"],"name":"Mothula","description":"Mothula is a recurring Enemy in The Legend of Zelda series. It made its first appearance in A Link to the Past as the Boss of the Skull Woods. It would later take on a smaller role as a mini-boss, and afterwards as a common enemy. ","id":"5f6e93a7cbf4202fbde22512"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c1b5"],"name":"Moldorm","description":"Moldorms are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22515"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Princess Zelda","description":"Zelda, traditionally Princess Zelda, is the eponymous character of The Legend of Zelda series. With the exception of Link's Awakening, Majora's Mask, and Tri Force Heroes, an incarnation of Zelda or one of her alter egos has always been one of the central characters in the series. ","id":"5f6e93a7cbf4202fbde22523"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c157"],"name":"Morpheel","description":"Morpheel is the Boss of the Lakebed Temple in Twilight Princess. ","id":"5f6e93a7cbf4202fbde22513"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Slime Eel","description":"Slime Eel is the Boss of the Catfish's Maw in Link's Awakening. It is a giant eel-like monster that opposes Link in an attempt to prevent him from waking the Wind Fish. ","id":"5f6e93a7cbf4202fbde2251b"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c10e"],"name":"Zant","description":"Zant is one of two main antagonists in Twilight Princess. He is the self-proclaimed King of Twilight, although Midna claims he is the King of Shadows. He is a member of the Twili who usurps the throne of the Twilight Realm from Midna before the events of Twilight Princess. He regularly appears wearing a helmet that conceals his face, but removes it before his battle with Link. He is a powerful sorcerer and minion of Ganondorf. ","id":"5f6e93a7cbf4202fbde22520"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c0bb","5f6d158a3dd55d9ed2d1c13c"],"name":"Spike Roller","description":"Spike Roller is the Sub-Boss of Tail Cave in Link's Awakening. ","id":"5f6e93a7cbf4202fbde22518"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c15d"],"name":"Slime Eye","description":"Slime Eye is a boss in Link's Awakening. ","id":"5f6e93a7cbf4202fbde2251a"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0d9"],"name":"Warbane","description":"Warbane is the seventh boss in Zelda's Adventure. He is the Shrine Keeper of the Shrine of Fire, and is the last of the Shrine Keepers Zelda must face before facing Ganon. ","id":"5f6e93a7cbf4202fbde22528"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c10e"],"name":"Phantom Zant","description":"Phantom Zant is the mini-boss of the Palace of Twilight in Twilight Princess. ","id":"5f6e93a7cbf4202fbde22517"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c7"],"dungeons":[],"name":"Turtle Rock","description":"Turtle Rock is a recurring dungeon in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2252d"},{"appearances":["5f6ce9d805615a85623ec2b8"],"dungeons":["5f6d158a3dd55d9ed2d1c13c"],"name":"Trinexx","description":"Trinexx is a recurring Boss in The Legend of Zelda series. It is the Boss of Turtle Rock in A Link to the Past and the last dungeon in Ancient Stone Tablets. Its name may be derived from the prefix \"tri-\" meaning three, and the word \"necks,\" alluding to its three heads. Its first form is a stone turtle with two additional heads protruding from its shell on either side. These extra heads are elemental; the red one spouts flame and the blue one breathes frost. ","id":"5f6e93a7cbf4202fbde2251d"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1ba","5f6d158a3dd55d9ed2d1c188"],"name":"Waterblight Ganon","description":"Waterblight Ganon is a Boss in Breath of the Wild. It is one of the four phantoms of Calamity Ganon that took control of the Divine Beasts. It is found either inside the Divine Beast Vah Ruta or in the center of Hyrule Castle if it is not already defeated. Waterblight Ganon is responsible for the demise of Mipha. ","id":"5f6e93a7cbf4202fbde22525"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c166"],"name":"Twilit Bloat","description":"The Twilit Bloat is a mini-boss in Twilight Princess. It is a giant Shadow Insect with tentacles emerging from its abdomen. ","id":"5f6e93a7cbf4202fbde2251c"},{"appearances":[],"dungeons":[],"name":"Wizzroboe","description":"Wizzroboe is a boss in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde22522"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":["5f6d158a3dd55d9ed2d1c17c"],"name":"Ultra Death Bug","description":"Ultra Death Bug is the boss of the Insect Cavern in Freshly-Picked Tingle's Rosy Rupeeland. ","id":"5f6e93a7cbf4202fbde22532"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c1b1","5f6d158a3dd55d9ed2d1c188"],"name":"Yuga","description":"Yuga is an evil sorcerer and one of the two primary antagonists of A Link Between Worlds. At the beginning of the game, Yuga hunts the descendants of the Seven Sages from Ocarina of Time/A Link to the Past, as well as Princess Zelda, in an attempt to resurrect Ganon and use his power to rule the worlds of Hyrule and Lorule, and ultimately take his place among the gods. ","id":"5f6e93a7cbf4202fbde22521"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c08b"],"name":"Veran","description":"Veran is the primary antagonist of Oracle of Ages. She has the ability to possess anybody she wishes. Although she appears to be the ultimate evil, Veran is actually a loyal servant to Twinrova, dedicated to bringing about the Dark Lord Ganon's revival by bringing sorrow to the hearts of everyone in Labrynna. Her true form is that of an Evil Fairy, summoned from the Dark Realm. ","id":"5f6e93a7cbf4202fbde2252a"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":[],"name":"Vaati Transfigured","description":"Vaati Transfigured is a Boss in The Minish Cap. ","id":"5f6e93a7cbf4202fbde2252f"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c192"],"name":"Wart","description":"Wart is a Mini-Boss in the Great Bay Temple and the Secret Shrine in Majora's Mask. ","id":"5f6e93a7cbf4202fbde22527"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1bf","5f6d158a3dd55d9ed2d1c188"],"name":"Windblight Ganon","description":"Windblight Ganon is a Boss in Breath of the Wild. It is one of the four phantoms of Calamity Ganon that took control of the Divine Beasts. It is found either atop the Divine Beast Vah Medoh or in the center of Hyrule Castle if it is not already defeated. Windblight Ganon is responsible for the demise of Revali. ","id":"5f6e93a7cbf4202fbde22526"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c0c7"],"name":"Twinmold","description":"Twinmold is the Boss of Stone Tower Temple in Majora's Mask. The colossal monster is responsible for all of the curses placed on Ikana Canyon, and is keeping the last of the Four Giants captive. Twinmold's body is protected by an exoskeleton that leaves only its head and tail exposed. ","id":"5f6e93a7cbf4202fbde22537"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":[],"name":"Yuga Ganon","description":"Yuga Ganon is the joint form of Yuga and Ganon that serves as the primary antagonist and final Boss of A Link Between Worlds. The beast results from Yuga fusing with Ganon after the former resurrects the latter, and takes on the combined appearances and abilities of the two. ","id":"5f6e93a7cbf4202fbde2251f"},{"appearances":["5f6ce9d805615a85623ec2b8"],"dungeons":["5f6d158a3dd55d9ed2d1c13b"],"name":"Vitreous","description":"Vitreous is the Boss of Misery Mire and captor of the sixth Maiden in A Link to the Past. It is a gigantic eyeball surrounded by smaller eyeballs, immersed in an acidic green liquid. ","id":"5f6e93a7cbf4202fbde2252b"},{"appearances":["5f6ce9d805615a85623ec2d3"],"dungeons":[],"name":"Three Witches","description":"The Three Witches are the third bosses in The Wand of Gamelon. They are located at the Fairy Pool. ","id":"5f6e93a7cbf4202fbde2253c"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":["5f6d158a3dd55d9ed2d1c1a9"],"name":"Volvagia","description":"Volvagia is the Boss of the Fire Temple in Ocarina of Time. ","id":"5f6e93a7cbf4202fbde2252c"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0d6"],"name":"Ursore","description":"Ursore is the sixth boss in Zelda's Adventure. He is the Shrine Keeper of the Shrine of Strength. ","id":"5f6e93a7cbf4202fbde22534"},{"appearances":["5f6ce9d805615a85623ec2cf"],"dungeons":[],"name":"Wizzro","description":"Wizzro, also known as the Dark Wizard, is an antagonist in Hyrule Warriors. In the version 1.3.0 update, he is also a playable Warrior. ","id":"5f6e93a7cbf4202fbde22524"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Stone Talus","description":"Stone Talus are recurring enemies and Sub-Bosses in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22541"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":[],"name":"The Imprisoned","description":"The Imprisoned is a recurring Boss and character in The Legend of Zelda series. It is Demise rendered in beast form due to the seal placed upon him by the goddess Hylia. ","id":"5f6e93a7cbf4202fbde22539"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":[],"name":"Uncle Rupee","description":"Uncle Rupee is a character in Freshly-Picked Tingle's Rosy Rupeeland. He promises Tingle entrance to the paradise of Rupeeland if he is able to collect enough Rupees to satisfy his desire. He is the one who turns him into a Tingle at the beginning of the game, continually beckoning for the collection of Rupees. ","id":"5f6e93a7cbf4202fbde22531"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":[],"name":"Vaati Reborn","description":"Vaati Reborn is a Boss in The Minish Cap. ","id":"5f6e93a7cbf4202fbde22530"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":[],"name":"Stallord","description":"Stallord is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22546"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Syger","description":"Syger is the Sub-Boss of Unicorn's Cave, the fifth dungeon of Oracle of Seasons. ","id":"5f6e93a7cbf4202fbde2253e"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c0c3","5f6d158a3dd55d9ed2d1c0fb"],"name":"Twinrova","description":"Koume and Kotake, collectively known as Twinrova, are a recurring pair of Gerudo twin witches in The Legend of Zelda series. They are known as the Sorceress of Flame and the Sorceress of Ice, respectively. As the surrogate mothers of Ganondorf, they are among his more devoted servants. ","id":"5f6e93a7cbf4202fbde22535"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c0c9"],"name":"Vulture Vizier","description":"Vulture Vizier is the Boss of Stone Corridors, which serves as the Mini-Boss of The Dunes, in Tri Force Heroes. It is a gigantic, bulky Vulture. ","id":"5f6e93a7cbf4202fbde22529"},{"appearances":["5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c091"],"name":"Vaati","description":"Vaati is recurring Boss in The Legend of Zelda series. Much like Ganondorf, he appears in both humanoid and monstrous forms, although the former only appears in The Minish Cap. In The Minish Cap, Vaati also takes on three other forms, including that of a Minish. ","id":"5f6e93a7cbf4202fbde22536"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1bd","5f6d158a3dd55d9ed2d1c188"],"name":"Thunderblight Ganon","description":"Thunderblight Ganon is a Boss in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde2253a"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c188","5f6d158a3dd55d9ed2d1c0a1"],"name":"Stalnox","description":"Stalnox is a boss in Breath of the Wild. It is a skeletal version of a Hinox. ","id":"5f6e93a7cbf4202fbde22543"},{"appearances":["5f6ce9d805615a85623ec2cf"],"dungeons":[],"name":"Volga","description":"Volga is an antagonist in Hyrule Warriors. In the version 1.3 update, he is also a playable Warrior. He is a Dragon Knight whose magical powers allow him to breathe fire and turn into a dragon. He also can turn certain parts of his body into dragon limbs, such as his arm. He relies on powerful attacks to devastate his enemies, although he has a moderate attack speed. ","id":"5f6e93a7cbf4202fbde2252e"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c194"],"name":"Thunderbird","description":"Thunderbird is a Boss in The Adventure of Link. It is an artificial life form created by the King of Hyrule to protect the Triforce of Courage in the Great Palace. ","id":"5f6e93a7cbf4202fbde2253b"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Stalchampion","description":"Stalchampion is the boss of the Desert Temple in Tri Force Heroes. It is a giant Stalfos warrior. ","id":"5f6e93a7cbf4202fbde22548"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1b7"],"name":"Wizzrobe","description":"Wizzrobes are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22533"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c128"],"name":"Subterror","description":"Subterror is the Sub-Boss of the Moonlit Grotto in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22540"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c0f0"],"name":"Tentalus","description":"Tentalus is a Boss in Skyward Sword. It is the boss of the Sandship. ","id":"5f6e93a7cbf4202fbde2253f"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c132"],"name":"Swoop","description":"Swoop is the Sub-Boss of the Wing Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22545"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c150","5f6d158a3dd55d9ed2d1c0f5"],"name":"Skull Kid","description":"Skull Kids are recurring creatures in The Legend of Zelda series. Navi implies that children who wander into the Lost Woods become Skull Kids. One first interacts with Link in Ocarina of Time, and later plays a major villainous role in Majora's Mask. Skull Kids dress in a red cloak and hat covering an underlayer of clothing composed of a straw-like material, and play a flute, which they can also use as a weapon to shoot projectiles. ","id":"5f6e93a7cbf4202fbde2254b"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c166"],"name":"Twilit Carrier Kargarok","description":"The Twilit Carrier Kargarok is a mini-boss in Twilight Princess. It is a gigantic Shadow Kargarok ridden by a Twilit Bulblin Archer. ","id":"5f6e93a7cbf4202fbde22538"},{"appearances":["5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c6"],"dungeons":[],"name":"Silver Darknut","description":"Silver Darknuts, also known as Darknuts, and Dark Nuts, are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2254d"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c1e3","5f6d158a3dd55d9ed2d1c0d0"],"name":"Stalmaster","description":"Stalmasters are recurring Sub-Boss and enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22544"},{"appearances":[],"dungeons":["5f6d158a3dd55d9ed2d1c19e"],"name":"The NecroDancer","description":"The NecroDancer is a Boss in Cadence of Hyrule. He appears exclusively in Story Mode — Octavo. ","id":"5f6e93a7cbf4202fbde2253d"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c1b4"],"name":"Scaldera","description":"Scaldera is a Boss in Skyward Sword. It inhabits the Earth Temple. It appears to be a large, six legged insect-like creature, hosting a molten body with a single eyeball. To protect its weak inner layer, Scaldera hosts an armor-like outer layer of rock. ","id":"5f6e93a7cbf4202fbde22552"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Stagnox","description":"Stagnox is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2254a"},{"appearances":["5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c1e0","5f6d158a3dd55d9ed2d1c135","5f6d158a3dd55d9ed2d1c0b1","5f6d158a3dd55d9ed2d1c1c2","5f6d158a3dd55d9ed2d1c171","5f6d158a3dd55d9ed2d1c188"],"name":"Shadow Link","description":"Shadow Links are recurring enemies and Sub-Bosses in The Legend of Zelda series. Shadow Link is dark reflection of Link. Hyrule Historia states that the evil thoughts and resentment of Ganondorf, who had been killed by an earlier incarnation of Link in Twilight Princess, manifested through the Dark Mirror in the form of Link. He is possibly related to Dark Link, but has distinct differences in behavior, origin and appearance, making any relationship between them unclear and speculative. ","id":"5f6e93a7cbf4202fbde22550"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c1b0"],"name":"Stone Arrghus","description":"Stone Arrghus is the Boss of the Eastern Temple in Four Swords Adventures. ","id":"5f6e93a7cbf4202fbde22542"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Shadow Nightmare","description":"Shadow Nightmares is the collective name of the various final Bosses in Link's Awakening. The final Nightmare, seemingly a collective of multiple Nightmares, takes on six forms, or Shadows, of former bosses Link has defeated in Link's Awakening, as well as that of A Link to the Past. The Nightmares are the primary antagonists in the Wind Fish's dream on Koholint Island, and are the force single-handedly responsible for the forced, continued slumber of the Wind Fish. Like many of the bosses Link fights in the game, the Shadow Nightmares are self-aware: at the beginning and end of the battle, it reveals the plans to continue the Wind Fish's slumber, and speaks of how its death will signal the end of \"its world\", respectively. ","id":"5f6e93a7cbf4202fbde2254f"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":[],"name":"Puppet Ganon","description":"Puppet Ganon is a boss in The Wind Waker. The three-stage battle is a precursor to the finale with Ganondorf atop Ganon's Tower. ","id":"5f6e93a7cbf4202fbde22557"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":[],"name":"Stalblind","description":"Stalblind is the Boss of Thieves' Hideout in A Link Between Worlds. Stalblind is implied to be boss of the thieves in Lorule. ","id":"5f6e93a7cbf4202fbde22549"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c178"],"name":"Rebonack","description":"Rebonack is the Boss of the Island Palace in The Adventure of Link. He is a powerful blue Iron Knuckle mounted on a floating mechanical horse and wielding a jousting lance. Two others are later encountered in the Three-Eye Rock Palace as mini-bosses. ","id":"5f6e93a7cbf4202fbde22555"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Lady Maud","description":"Lady Maud, also known as The Lady, is the primary antagonist in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde22547"},{"appearances":["5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c1ad","5f6d158a3dd55d9ed2d1c13c","5f6d158a3dd55d9ed2d1c1d6"],"name":"Rover","description":"Rovers, also known as Smashers, are recurring Sub-Bosses in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22554"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c2"],"dungeons":[],"name":"Pols Voice","description":"Pols Voices are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2255c"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c190"],"name":"Prismantus","description":"Prismantus is the boss of the Grim Temple in Tri Force Heroes. It is similar to the boss Margoma, but has three, colored light bulbs at its sides. ","id":"5f6e93a7cbf4202fbde22559"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0d7"],"name":"Pasquinade","description":"Pasquinade is the second boss in Zelda's Adventure. He is the Shrine Keeper of the Shrine of Illusion. ","id":"5f6e93a7cbf4202fbde22561"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c0f3"],"name":"Skeldritch","description":"Skeldritch is the sixth boss in Spirit Tracks. Its appearance is very similar to that of Stallord; it appears as a large skull with a spine that rises from the center of a large, ruinous room filled with sand, although it lacks arms and a ribcage, and it also sports a large, horned helmet. The skull is also more human-like than Stallord's beast-like skull. ","id":"5f6e93a7cbf4202fbde2254c"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":[],"name":"Princess Ruto","description":"Princess Ruto, also known as Ruto, and The Aquatic One, is a recurring character in The Legend of Zelda series. She is the daughter and only child of King Zora, the ruler of the Sea Zora population residing in Hyrule, and serves as the attendant of the Zoras' patron deity Lord Jabu-Jabu, preparing his meals. As a child, Ruto appears to be a tomboy and is shown to be very strong-willed and stubborn even in the face of danger, a trait she would temper and yet benefit from in her adult years when danger once again threatened her people. Though she initially shows a selfish streak in her youth, she grows to become much more benevolent in her adult years, especially after she is awakened to the knowledge that she is the Sage of Water that guards the Water Temple beneath Lake Hylia. ","id":"5f6e93a7cbf4202fbde2255a"},{"appearances":[],"dungeons":["5f6d158a3dd55d9ed2d1c19e","5f6d158a3dd55d9ed2d1c171","5f6d158a3dd55d9ed2d1c14b"],"name":"Shadow Zelda","description":"Shadow Zelda is a character and Miniboss in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde2254e"},{"appearances":["5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"Possessed Zelda","description":"Possessed Zelda is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2255e"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c128"],"name":"Shadow Hag","description":"The Shadow Hag is the Boss of Moonlit Grotto, the third Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22551"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c119"],"name":"Odolwa","description":"Odolwa is the Boss of Woodfall Temple in Majora's Mask. He is a tall, tribal blade dancer whose body is covered in tattoos. He wields a gigantic Sword several times the size of Link. Odolwa imprisoned one of the Four Giants, as well as the Deku Princess, within his temple. Odolwa is also the culprit behind the sad state of Woodfall, as well as the waters of the Southern Swamp becoming poisonous. ","id":"5f6e93a7cbf4202fbde22566"},{"appearances":[],"dungeons":[],"name":"Sandstone Talus","description":"Sandstone Taluses are Minibosses in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde22553"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c122"],"name":"Phytops","description":"Phytops is the third Boss in Spirit Tracks. It appears to be a cross between an Octorok and a thorned plant who resides in a pool atop a giant pillar in the Ocean Temple. ","id":"5f6e93a7cbf4202fbde2255f"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Onox","description":"Onox, also known as General Onox, is one of two main antagonists in Oracle of Seasons. He calls himself the \"General of Darkness\", and wishes to ruin the land of Holodrum in accordance with the wishes of his master, Twinrova. To do this, Onox is tasked with the burden of capturing the Oracle of Seasons and submerging the Temple of Seasons. Although Onox appears to be a giant in armor reminiscent of an Iron Knuckle, his true form is that of a dragon, summoned from the Dark Realm. ","id":"5f6e93a7cbf4202fbde22563"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":["5f6d158a3dd55d9ed2d1c130"],"name":"Morpha","description":"Morpha is the Boss of the Water Temple in Ocarina of Time. Created by Ganondorf after he acquired the Triforce of Power, it has complete control over the water in the room in which it resides, moving swiftly through it and creating long amoeba-like \"limbs\". This monster is responsible for the receded state of Lake Hylia as well as the frozen condition of Zora's Domain. ","id":"5f6e93a7cbf4202fbde2256b"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c1e1"],"name":"Ramrock","description":"Ramrock is the Boss of the Ancient Tomb, the eighth Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22556"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Omuai","description":"Omuai are minibosses in Oracle of Seasons. ","id":"5f6e93a7cbf4202fbde22564"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Pumpkin Head","description":"Pumpkin Head is the Boss of Spirit's Grave in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22558"},{"appearances":[],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"Octavo","description":"Octavo is a boss and playable character in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde22568"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c1a5"],"name":"Mazaal","description":"Mazaal is the Boss of the Fortress of Winds in The Minish Cap. ","id":"5f6e93a7cbf4202fbde22570"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Possessed Nayru","description":"Possessed Nayru is a Boss in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde2255b"},{"appearances":[],"dungeons":[],"name":"Obsidian Talus","description":"The Obsidian Taluses are Minibosses in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde22569"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":[],"name":"Malladus","description":"Malladus is the primary antagonist of Spirit Tracks. He is a powerful demon that once terrorized the land that would eventually be home to the new kingdom of Hyrule. He was locked away beneath the altar of the Tower of Spirits by the Spirits of Good of the land after a prolonged war between them. The Spirit Tracks and the Tower of Spirits act as the lock to Malladus's underground prison, and as long as they remained intact, Malladus would be safely bound within. ","id":"5f6e93a7cbf4202fbde22575"},{"appearances":["5f6ce9d805615a85623ec2b7"],"dungeons":[],"name":"Patra","description":"Patras are recurring Bosses in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22560"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Molduking","description":"The Molduking is an overworld boss in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde2256e"},{"appearances":["5f6ce9d805615a85623ec2d3"],"dungeons":[],"name":"Omfak","description":"Omfak is the sixth boss in The Wand of Gamelon. He is located in the Shrine of Gamelon. ","id":"5f6e93a7cbf4202fbde22565"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Plasmarine","description":"Plasmarine is the Boss of Jabu-Jabu's Belly, the seventh Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde2255d"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":[],"name":"Massive Eye","description":"Massive Eye is a mini-boss in Phantom Hourglass. It attacks the SS Linebeck when it is near docking at Goron Island. It resembles a large, floating purple and black whale with four tentacle-like fins, large lips, a horned nose and six eyes. The Massive Eye catches the S. S. Linebeck in a Mini Cyclone, dumping it southwest of Goron Island. The ships engine fails at this stage, and thus, during the fight with the Massive Eye, the ship is unable to move. ","id":"5f6e93a7cbf4202fbde22573"},{"appearances":[],"dungeons":[],"name":"Majiyo","description":"Majiyo is the final Boss in Ripened Tingle's Balloon Trip of Love. ","id":"5f6e93a7cbf4202fbde2257a"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Nightmare","description":"The Nightmares are the main antagonists of Link's Awakening. They are monsters that invaded the Wind Fish's dream world of Koholint. They seek to rule the island by preventing the Wind Fish from ever being awoken with the Instrument of the Sirens. To that end, eight of the Nightmares have taken each of the Instruments and hidden them within their lairs, accessible only by the Nightmare Keys hidden within their monster- and trap-filled labyrinths. The monsters were created by the Nightmares to prevent Link from awakening the Wind Fish. Most of these Nightmares are intelligent enough to speak to Link, the \"outsider\", and attempt to scare or warn him off of retrieving the Instruments, going so far as to reveal the true consequences of his actions: the destruction of the island and everything on it. Despite their warnings, Link retrieves each of the Instruments and even survives the final onslaught of the Shadow Nightmares at the Wind Fish's Egg, allowing him to reach the Wind Fish's resting place, play the Instruments, and awaken the sleeping deity. ","id":"5f6e93a7cbf4202fbde2256a"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Ook","description":"Ook is the Sub-Boss of the Forest Temple in Twilight Princess. ","id":"5f6e93a7cbf4202fbde22562"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce","5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Link","description":"Link is the name shared by the main protagonists of The Legend of Zelda series. There are many incarnations of Link, each possessing the spirit of the hero, with some of them being blood-related as well. They are chosen by the Golden Goddesses to protect the land from evil whenever deemed necessary. They often need to complete a series of trials to mature into the chosen hero. In most games of The Legend of Zelda series, their adventures take place within Kingdom of Hyrule, traveling through the land, collecting important items, and defeating a wide variety of enemies while trying to save both Princess Zelda and her kingdom from the clutches of Ganon or other villains. ","id":"5f6e93a7cbf4202fbde2257f"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c1e2","5f6d158a3dd55d9ed2d1c0af"],"name":"Manhandla","description":"Manhandla is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22578"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0dc"],"name":"Llort","description":"Llort is the first boss in Zelda's Adventure. He the Shrine Keeper of the Shrine of Earth. ","id":"5f6e93a7cbf4202fbde2257d"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Octogon","description":"Octogon is the Boss of Mermaid's Cave, the sixth Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde22567"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c1e3"],"name":"Koloktos","description":"Koloktos is a Boss in Skyward Sword. It is an enormous automaton created to defend the Ancient Cistern from intruders. ","id":"5f6e93a7cbf4202fbde22584"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Molduga","description":"Moldugas are Sub-Bosses in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde2256f"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":["5f6d158a3dd55d9ed2d1c131"],"name":"Molgera","description":"Molgera is the Boss of the Wind Temple in The Wind Waker. ","id":"5f6e93a7cbf4202fbde2256d"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c1c0"],"name":"Lanmola","description":"Lanmolas, also known as Red Lanmolas, are recurring enemies and Sub-Bosses in The Legend of Zelda series. They are fast and powerful centipedes. While they were originally normal enemies, they began to serve larger roles in subsequent games in the series, acting as boss or mini-boss. Their first appearance shows them as having an elongated segmented body, with two appendages per segment and a single eye complete with iris; later games show them as clearly having two compound eyes and no appendages, giving them a more worm-like appearance. ","id":"5f6e93a7cbf4202fbde22582"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1ac"],"name":"Monk Maz Koshia","description":"Monk Maz Koshia is the final boss in The Champions' Ballad DLC for Breath of the Wild, located in the Final Trial. ","id":"5f6e93a7cbf4202fbde2256c"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Master Stalfos","description":"The Master Stalfos is a Sub-Boss in Link's Awakening appearing in the fifth Dungeon, Catfish's Maw. He is a big Stalfos Knight who steals the Hookshot from a Treasure Chest in the Dungeon after Link's first battle with him, leaving a note for Link to find. He flees from Link after sustaining a certain amount of damage in battle. Master Stalfos is fought four times in four different rooms in the Dungeon, each with a skull pattern on the floor. Each room is numbered with a block in the corner of the room, and he will flee from the first room to the second, then from the second to third, before finally hiding in the fourth room deep in the Dungeon. Like a Stalfos Knight from A Link to the Past he will crumble after hit by the Sword before reanimating. While crumbled, he must be hit with a Bomb to damage him, otherwise he will simply keep fighting. The easiest way to stun Master Stalfos is to charge the Spin Attack, use the Roc's Feather to jump towards him, and release the Spin Attack while in midair on the east side of Master Stalfos. Unlike Stalfos Knights, he actively swings his sword at Link and is able to send him flying, and defends himself with a large shield. Upon his final defeat in the fourth room, he drops the Hookshot. ","id":"5f6e93a7cbf4202fbde22572"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0de"],"name":"Malmord","description":"Malmord is the fourth boss in Zelda's Adventure. She is the Shrine Keeper of the Shrine of Destiny. ","id":"5f6e93a7cbf4202fbde22574"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":["5f6d158a3dd55d9ed2d1c1b4"],"name":"Jalhalla","description":"Jalhalla is the leader of all Poes who appears as a Boss in The Wind Waker. He is composed of many smaller Poes. ","id":"5f6e93a7cbf4202fbde22589"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Margoma","description":"Margoma is the Boss of Forest Temple in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde22577"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c192"],"name":"Mad Jelly","description":"Mad Jelly is a Mini-Boss in Majora's Mask. It is part of the mini-boss battle in the Great Bay Temple with Gekko. ","id":"5f6e93a7cbf4202fbde22579"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c0d1"],"name":"Knucklemaster","description":"Knucklemaster is the boss of the Skull Woods in A Link Between Worlds. It appears as an organic hand encased in a metal gauntlet, with an eye in its palm. ","id":"5f6e93a7cbf4202fbde22587"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Igneo Talus Titan","description":"The Igneo Talus Titan is a boss in Breath of the Wild. It is exclusive to The Champions' Ballad DLC pack. ","id":"5f6e93a7cbf4202fbde2258e"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c08d"],"name":"Lord Bullbo","description":"Lord Bullbo is a recurring mini-boss and character in The Legend of Zelda series. It is King Bulblin's gigantic armored Bullbo steed who appears alongside him during many of his battles with Link. ","id":"5f6e93a7cbf4202fbde2257c"},{"appearances":["5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5"],"dungeons":[],"name":"Linebeck","description":"Linebeck is a recurring character in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2257e"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Master Kohga","description":"Master Kohga is a Boss in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde22571"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c1e4"],"name":"Igos du Ikana","description":"Igos du Ikana is a miniboss in Majora's Mask. ","id":"5f6e93a7cbf4202fbde2258c"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":[],"name":"King of Hyrule","description":"The King of Hyrule was a wise ruler of the kingdom of Hyrule long in its past that was featured in the backstory of The Adventure of Link. He was the last in a long line of Kings who wielded the entire Triforce after Link reclaimed it in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde22581"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Hinox the Eldest","description":"Hinox the Eldest is a Mini-Boss in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde22593"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c187"],"name":"Margomill","description":"Margomill is a boss in A Link Between Worlds. It resides in the House of Gales, one of the dungeons located in Hyrule. In his quest to claim the Pendants of Virtue, Link must defeat this monster in order to obtain the Pendant of Wisdom. ","id":"5f6e93a7cbf4202fbde22576"},{"appearances":["5f6ce9d805615a85623ec2cf"],"dungeons":[],"name":"Lana","description":"Lana is a playable Warrior in Hyrule Warriors. She is a sorceress with light-blue hair armed with a book of magic that she uses to cast barriers to disperse enemies. She is described as a very energetic girl with a vast knowledge of magic and monsters. ","id":"5f6e93a7cbf4202fbde22583"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c18a","5f6d158a3dd55d9ed2d1c086"],"name":"Hinox Brothers","description":"The Hinox Brothers are the Bosses of Hinox Mine and Bomb Storage, which serve as the Mini-Bosses of Volcano and Fortress respectively, in Tri Force Heroes. They are a trio of Hinox siblings dressed in overalls and wearing helmets. Like the rest of their species, they throw Bombs as their method of attack. The Hinox wearing orange is named Li'l Hinox, the Hinox wearing purple is named Hinox the Elder, and the Hinox wearing red is named Hinox the Eldest. ","id":"5f6e93a7cbf4202fbde22598"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":[],"name":"King Dodongo","description":"King Dodongo is the second Boss in Ocarina of Time. Link must defeat King Dodongo in order to obtain the Goron's Ruby from Darunia. ","id":"5f6e93a7cbf4202fbde22586"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c13c"],"name":"Hot Head","description":"Hot Head is the boss of Turtle Rock in Link's Awakening. ","id":"5f6e93a7cbf4202fbde22591"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c13f","5f6d158a3dd55d9ed2d1c10d"],"name":"Jermafenser","description":"Jermafenser, also known as Helmethead, is the boss of Midoro Palace in The Adventure of Link. It reappears as the boss of the Palace on the Sea in the original Family Computer Disk System version of that game; in the NES version, it was replaced with Gooma. ","id":"5f6e93a7cbf4202fbde22588"},{"appearances":["5f6ce9d805615a85623ec2d5"],"dungeons":[],"name":"Harlequin","description":"Harlequin is the second boss in The Faces of Evil. He is located at the Harlequin Bazaar, and is encountered again at the Lupay area. ","id":"5f6e93a7cbf4202fbde2259d"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":["5f6d158a3dd55d9ed2d1c1a7"],"name":"Kalle Demos","description":"Kalle Demos is the Boss of the Forbidden Woods in The Wind Waker. It swallowed Makar whole after he ventured too far from the Forest Haven in preparation for the Korok Ceremony and fell into the Forbidden Woods. ","id":"5f6e93a7cbf4202fbde2258b"},{"appearances":["5f6ce9d805615a85623ec2d3"],"dungeons":[],"name":"Hektan","description":"Hektan is the fifth boss in The Wand of Gamelon. He is located in Dodomai Palace. ","id":"5f6e93a7cbf4202fbde22596"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c149"],"name":"Lorule Ball and Chain Soldier","description":"Lorule Ball and Chain Soldiers are Sub-Bosses of Lorule Castle in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde2257b"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":["5f6d158a3dd55d9ed2d1c17c"],"name":"Insect Head","description":"The Insect Heads are mini-bosses found in Freshly-Picked Tingle's Rosy Rupeeland. They are found in three locations around the Gooey Swamp but can only be reached via the Insect Cavern. Their abdomens are found within the cavern and emit a noxious gas which causes Tingle to lose Rupees. They also block his path to other sections of the dungeon. ","id":"5f6e93a7cbf4202fbde2258d"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c1a9"],"name":"Heatoise","description":"Heatoises are enemies and Sub-Bosses in Spirit Tracks. ","id":"5f6e93a7cbf4202fbde2259b"},{"appearances":[],"dungeons":[],"name":"Levias","description":"Levias, also known as The Great Spirit Levias, is a recurring character in The Legend of Zelda series. He is a wise, whale-like Sky Spirit who has served as the protector of the skies for ages and lives in the Thunderhead. Levias has a particular fondness for Pumpkin Soup, which Pumm always offered on a sky isle that had a perpetual rainbow above it, before the Thunderhead engulfed it. ","id":"5f6e93a7cbf4202fbde22580"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c112"],"name":"Grim Repoe","description":"Grim Repoe is the Boss of Palace Noir, which serves as the Mini-Boss of The Ruins, in Tri Force Heroes. It is a giant Poe carrying a large scythe. ","id":"5f6e93a7cbf4202fbde225a2"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Hydrosoar","description":"Hydrosoars are Sub-Bosses in Link's Awakening. ","id":"5f6e93a7cbf4202fbde22590"},{"appearances":["5f6ce9d805615a85623ec2c4"],"dungeons":["5f6d158a3dd55d9ed2d1c1c8"],"name":"Gouen","description":"Gouen is the Boss of Death Mountain in Four Swords. It is a ball of fire that bounces around much like a giant Podoboo and is similar to Hot Head from Link's Awakening. His true form is that of a small, charred creature. ","id":"5f6e93a7cbf4202fbde225a7"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c10b"],"name":"Gyorg Male","description":"The Gyorg Male is a Boss in The Minish Cap. ","id":"5f6e93a7cbf4202fbde225a0"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Impa","description":"Impa is the family name of several female members of the Sheikah, a mysterious tribe that has served and protected the Royal Family of Hyrule for many generations. Many Sheikah so far has been associated with and taken on the role of taking care of an incarnation of Zelda, being a nanny and a bodyguard of sorts in some games. In addition, every Impa has given extensive information and guidance to the various incarnations of Link they encounter in their time. ","id":"5f6e93a7cbf4202fbde22592"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"King Bulblin","description":"King Bulblin is a recurring boss in Twilight Princess. ","id":"5f6e93a7cbf4202fbde22585"},{"appearances":[],"dungeons":[],"name":"Horde Battle","description":"The Horde Battle is an event that occurs in Skyward Sword. ","id":"5f6e93a7cbf4202fbde22595"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c13c"],"name":"Grinexx","description":"Grinexx is the boss of Turtle Rock in A Link Between Worlds. It appears as a large turtle with a rocky, volcano-like shell. ","id":"5f6e93a7cbf4202fbde225a5"},{"appearances":["5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c1ab","5f6d158a3dd55d9ed2d1c1c8"],"name":"Helmaroc King","description":"The Helmaroc King is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2259a"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c0c7"],"name":"Gomess","description":"Gomess is a mini-boss of the Stone Tower Temple in Majora's Mask. ","id":"5f6e93a7cbf4202fbde225ac"},{"appearances":["5f6ce9d805615a85623ec2b8"],"dungeons":["5f6d158a3dd55d9ed2d1c185"],"name":"Kholdstare","description":"Kholdstare is the Boss of the Ice Palace, the fifth dungeon of the Dark World in A Link to the Past. ","id":"5f6e93a7cbf4202fbde2258a"},{"appearances":["5f6ce9d805615a85623ec2b8"],"dungeons":["5f6d158a3dd55d9ed2d1c111","5f6d158a3dd55d9ed2d1c10c"],"name":"Helmasaur King","description":"The Helmasaur King is a boss in A Link to the Past. It guards the first Crystal in the Palace of Darkness, the first dungeon found in the Dark World. It is a large quadrupedal reptile with a large mask on his head, and a long tail with a deadly mace-like tip. It must be defeated before the first Crystal can be acquired and the first Maiden can be rescued. ","id":"5f6e93a7cbf4202fbde22597"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c10b"],"name":"Gyorg Pair","description":"The Gyorg Pair is the collective name given to the Gyorg Female and Gyorg Male, the Bosses of the Palace of Winds in The Minish Cap. ","id":"5f6e93a7cbf4202fbde2259f"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c0c6"],"name":"Goht","description":"Goht is the Boss of Snowhead Temple in Majora's Mask. It is a giant mechanical creature with resemblence to a goat or bull. It is not only the one who is responsible for keeping the second of the Four Giants prisoner. But also Goht's curse that is causing the abnormally long and cold winter at Snowhead, which threatens the lives of the native Gorons living there. ","id":"5f6e93a7cbf4202fbde225aa"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c132"],"name":"Head Thwomp","description":"Head Thwomp is the Boss of the Wing Dungeon in Oracle of Ages. It is a variant of a Thwomp. ","id":"5f6e93a7cbf4202fbde2259c"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Igneo Talus","description":"Igneo Talus are bosses in Breath of the Wild. They are a fiery variant of Stone Talus. ","id":"5f6e93a7cbf4202fbde2258f"},{"appearances":[],"dungeons":["5f6d158a3dd55d9ed2d1c0b5"],"name":"Gleeokenspiel","description":"Gleeokenspiel is a boss in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde225b1"},{"appearances":["5f6ce9d805615a85623ec2bb"],"dungeons":["5f6d158a3dd55d9ed2d1c1d8"],"name":"Giant Buzz Blob","description":"The Giant Buzz Blob is a Sub-Boss of the Color Dungeon in Link's Awakening DX. ","id":"5f6e93a7cbf4202fbde225b6"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Hinox the Elder","description":"Hinox the Elder is a Mini-Boss in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde22594"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c10b"],"name":"Gyorg Female","description":"The Gyorg Female is a Boss in The Minish Cap. ","id":"5f6e93a7cbf4202fbde225a1"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c1df"],"name":"Gleerok","description":"Gleerok is the guardian of the Cave of Flames high atop Mount Crenel in The Minish Cap. It is the second major Boss of the game, and it guards the Fire Element. ","id":"5f6e93a7cbf4202fbde225af"},{"appearances":["5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Great Moblin","description":"The Great Moblin is a recurring Sub-Boss in The Legend of Zelda series. He is depicted as a large Moblin that leads a troop of smaller ones. ","id":"5f6e93a7cbf4202fbde225a4"},{"appearances":["5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc"],"dungeons":[],"name":"Iron Knuckle","description":"Iron Knuckles are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde22599"},{"appearances":[],"dungeons":[],"name":"Gohmaracas","description":"Gohmaracas is a boss in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde225a9"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c084"],"name":"Genie","description":"The Genie is the Nightmare of Bottle Grotto, the second dungeon in Link's Awakening. It guards the Conch Horn. ","id":"5f6e93a7cbf4202fbde225bb"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c7"],"dungeons":[],"name":"Great Fairy","description":"Great Fairies, also known as Guardian Spirits, are recurring characters in The Legend of Zelda series. They are large humanoid Fairies. Their main purpose is to heal Link whenever he is wounded and will also recover his Magic Power in games that incorporate a Magic Meter. In other titles, such as Ocarina of Time and The Wind Waker, they also bless Link with new items, powers, or upgrades of his existing equipment. The Great Fairies' appearance differ vastly between games, and most of them can be found living within a Great Fairy Fountain. ","id":"5f6e93a7cbf4202fbde225a6"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c0c3","5f6d158a3dd55d9ed2d1c0eb","5f6d158a3dd55d9ed2d1c08e","5f6d158a3dd55d9ed2d1c089","5f6d158a3dd55d9ed2d1c104","5f6d158a3dd55d9ed2d1c0fa","5f6d158a3dd55d9ed2d1c10b","5f6d158a3dd55d9ed2d1c091","5f6d158a3dd55d9ed2d1c1de","5f6d158a3dd55d9ed2d1c198","5f6d158a3dd55d9ed2d1c0cf","5f6d158a3dd55d9ed2d1c1c2"],"name":"Gibdo","description":"Gibdos are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225b4"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c17b","5f6d158a3dd55d9ed2d1c1cf","5f6d158a3dd55d9ed2d1c1b8","5f6d158a3dd55d9ed2d1c0b4"],"name":"Gohma","description":"Gohmas are recurring Bosses in The Legend of Zelda series. They are usually depicted as large, one-eyed arthropods and often shown as mothers of the Gohma Larvae. They are among the most recurring Bosses in the series since its conception. ","id":"5f6e93a7cbf4202fbde225ab"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":[],"name":"Gerudo Pirate","description":"Gerudo Pirates are Sub-Bosses in Majora's Mask. They are skilled Gerudo swordswomen who wield dual scimitars. ","id":"5f6e93a7cbf4202fbde225b9"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c0fb","5f6d158a3dd55d9ed2d1c0a6","5f6d158a3dd55d9ed2d1c188"],"name":"Ganon","description":"Ganon, also known by his original/human form Ganondorf, is the main antagonist of The Legend of Zelda series. Ganon is a nickname for Ganondorf and the name given to him when he transforms into a boar-like beast. He made his debut appearance in the first game, The Legend of Zelda, and has since been present or referred to in most subsequent iterations. ","id":"5f6e93a7cbf4202fbde225c0"},{"appearances":["5f6ce9d805615a85623ec2bf"],"dungeons":["5f6d158a3dd55d9ed2d1c0a5"],"name":"Gohdan","description":"Gohdan is a Boss in The Wind Waker. It is the guardian of the Tower of the Gods, and is the final test that Link must pass before being acknowledged as a hero worthy of wielding the Master Sword. ","id":"5f6e93a7cbf4202fbde225ae"},{"appearances":["5f6ce9d805615a85623ec2bb"],"dungeons":["5f6d158a3dd55d9ed2d1c1d8"],"name":"Hardhit Beetle","description":"Hardhit Beetle is a boss in Link's Awakening DX. ","id":"5f6e93a7cbf4202fbde2259e"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c0bf","5f6d158a3dd55d9ed2d1c149"],"name":"Gigabari","description":"Gigabari is a Sub-Boss in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde225b3"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Grim Creeper","description":"The Grim Creeper is a Sub-Boss and character in Link's Awakening. ","id":"5f6e93a7cbf4202fbde225a3"},{"appearances":[],"dungeons":[],"name":"Gasoringo","description":"Gasoringo is the first boss in Ripened Tingle's Balloon Trip of Love. ","id":"5f6e93a7cbf4202fbde225be"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c0a6"],"name":"Frostare","description":"Frostare is a Boss in Four Swords Adventures. ","id":"5f6e93a7cbf4202fbde225c5"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c0a0"],"name":"Gleeok","description":"Gleeoks are recurring Bosses in The Legend of Zelda series. It is a dragon with multiple heads named Gleeok Heads. If the Gleeok Heads are struck enough they detach and fight independently until the body is finally defeated. ","id":"5f6e93a7cbf4202fbde225b0"},{"appearances":["5f6ce9d805615a85623ec2b9"],"dungeons":["5f6d158a3dd55d9ed2d1c0d5"],"name":"Eyesoar","description":"Eyesoar is the Boss of Skull Dungeon, the fourth Dungeon in Oracle of Ages. ","id":"5f6e93a7cbf4202fbde225ca"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":[],"name":"Giant Eye Plant","description":"Giant Eye Plants are a minibosses in Phantom Hourglass. ","id":"5f6e93a7cbf4202fbde225b5"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":["5f6d158a3dd55d9ed2d1c0cb","5f6d158a3dd55d9ed2d1c1b5"],"name":"Ghirahim","description":"Ghirahim is a recurring character in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225b8"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c197"],"name":"Fyrus","description":"Twilit Igniter: Fyrus is the Boss of the Goron Mines in Twilight Princess. ","id":"5f6e93a7cbf4202fbde225c3"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c10d"],"name":"Gooma","description":"Gooma is the Boss of the Palace on the Sea in The Adventure of Link. ","id":"5f6e93a7cbf4202fbde225a8"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":[],"name":"Gerudo Thief","description":"Gerudo Thieves are Sub-Bosses in Ocarina of Time. They are skilled Gerudo swordswomen who wield dual scimitars. ","id":"5f6e93a7cbf4202fbde225ba"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":["5f6d158a3dd55d9ed2d1c1a9"],"name":"Flare Dancer","description":"Flare Dancers are Sub-Bosses in Ocarina of Time. They appear twice in the Fire Temple. They are tall flaming humanoid beings with a black core stored within their chest, and as their name suggests, they dance while attacking their targets. ","id":"5f6e93a7cbf4202fbde225c8"},{"appearances":["5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c2"],"dungeons":[],"name":"Gyorg","description":"Gyorgs are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225ad"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c119","5f6d158a3dd55d9ed2d1c192"],"name":"Gekko","description":"Gekkos are Mini-Bosses of the Woodfall Temple and the Great Bay Temple in Majora's Mask. ","id":"5f6e93a7cbf4202fbde225bd"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"Evil Eagle","description":"The Evil Eagle is the eponymous Boss of the Eagle's Tower and the minion of the Grim Creeper, the mini-boss of the same dungeon, in Link's Awakening. ","id":"5f6e93a7cbf4202fbde225cf"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c1c5"],"name":"Gigaleon","description":"Gigaleon is the Boss of Deception Castle, which serves as the Mini-Boss of Sky Realm, in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde225b2"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c182"],"name":"Dharkstare","description":"Dharkstare is the boss of the Ice Ruins in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde225d4"},{"appearances":["5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Fi","description":"Fi is a recurring character in The Legend of Zelda series. She is a humanoid spirit residing inside the Goddess Sword, enlisted to guide Link during his adventure. ","id":"5f6e93a7cbf4202fbde225cd"},{"appearances":["5f6ce9d805615a85623ec2d6"],"dungeons":["5f6d158a3dd55d9ed2d1c1a8"],"name":"Fossil Stallord","description":"Fossil Stallord is a Boss in Link's Crossbow Training. ","id":"5f6e93a7cbf4202fbde225c2"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":["5f6d158a3dd55d9ed2d1c0c7"],"name":"Garo Master","description":"Garo Masters are enemies in Majora's Mask. ","id":"5f6e93a7cbf4202fbde225bf"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Frypolar","description":"Frypolar is a spirit of ice and fire which serves as mini-boss of the Sword & Shield Maze in Oracle of Seasons. ","id":"5f6e93a7cbf4202fbde225c4"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c0c8"],"name":"Freezlord","description":"Freezlord is the Boss of Snowball Ravine, which serves as the Mini-Boss of Ice Cavern, in Tri Force Heroes. It resembles a giant Freezard. ","id":"5f6e93a7cbf4202fbde225c7"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c193"],"name":"Dongorongo","description":"Dongorongo is a Dodongo-like Boss in Phantom Hourglass. It resides in the fifth dungeon, Goron Temple. ","id":"5f6e93a7cbf4202fbde225d2"},{"appearances":["5f6ce9d805615a85623ec2cf"],"dungeons":[],"name":"Giant Boss","description":"Giant Bosses are large Bosses in Hyrule Warriors that, much like Bosses in the The Legend of Zelda series, have a weakness that is usually an item. They all appear in certain Legend Mode Scenarios. ","id":"5f6e93a7cbf4202fbde225b7"},{"appearances":["5f6ce9d805615a85623ec2c8"],"dungeons":[],"name":"Demise","description":"Demise is one of two primary antagonists in Skyward Sword, and serves as the Final Boss. Long ago, he and his horde of demons broke through a fissure in the earth and sought out the Triforce. However, he was defeated and sealed away by the Goddess Hylia and, after the events of Skyward Sword, by Link through the use of the Master Sword. Upon his defeat, Demise makes a claim that his hatred will not end, but will be reborn in the coming ages. The form of this evil is thought to be Ganon. Hyrule Historia specifically mentions that his flaming red hair is to signify a connection to him. ","id":"5f6e93a7cbf4202fbde225d9"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c083"],"name":"Electric Blob Queen","description":"The Electric Blob Queen is the Boss of Abyss of Agony, which serves as the Mini-Boss of Riverside, in Tri Force Heroes. She is a gigantic, pink Buzz Blob wearing a tiara. ","id":"5f6e93a7cbf4202fbde225cc"},{"appearances":["5f6ce9d805615a85623ec2c7"],"dungeons":["5f6d158a3dd55d9ed2d1c1cb"],"name":"Gemesaur King","description":"The Gemesaur King is the Boss of the Dark Palace in A Link Between Worlds. It is based on the Helmasaur King from A Link to the Past in name and appearance. ","id":"5f6e93a7cbf4202fbde225bc"},{"appearances":["5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c1ad"],"name":"Facade","description":"Facade is a recurring boss in The Legend of Zelda series. It appears in the form of a face, hence the name. Because this boss is made up of only eyes and a mouth, Facade turns his nearby surroundings, such as loose floor tiling and pottery, into flying projectiles instead of launching physical attacks of his own. ","id":"5f6e93a7cbf4202fbde225c9"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":["5f6d158a3dd55d9ed2d1c15d","5f6d158a3dd55d9ed2d1c1ad","5f6d158a3dd55d9ed2d1c13c"],"name":"Dodongo Snake","description":"Dodongo Snakes are Sub-Bosses in Link's Awakening. ","id":"5f6e93a7cbf4202fbde225d7"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c1bc","5f6d158a3dd55d9ed2d1c188"],"name":"Fireblight Ganon","description":"Fireblight Ganon is a Boss in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde225ce"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":[],"name":"Death Sword","description":"Death Sword is the mini-boss of the Arbiter's Grounds in Twilight Princess. ","id":"5f6e93a7cbf4202fbde225de"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c0cd"],"name":"Fraaz","description":"Fraaz is the Boss of the Snow Temple in Spirit Tracks. ","id":"5f6e93a7cbf4202fbde225c1"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c08a"],"name":"Electric Blob King","description":"The Electric Blob King is the Boss of Buzz Blob Cave, which serves as the Mini-Boss of Woodlands, in Tri Force Heroes. He is a gigantic, yellow Buzz Blob wearing a crown. ","id":"5f6e93a7cbf4202fbde225d1"},{"appearances":["5f6ce9d805615a85623ec2c4"],"dungeons":["5f6d158a3dd55d9ed2d1c0bd"],"name":"Dera Zol","description":"Dera Zol is the boss of the Talus Cave in Four Swords. ","id":"5f6e93a7cbf4202fbde225d3"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Frost Talus","description":"Frost Taluses are recurring enemies and Sub-Bosses in the The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225c6"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c1a2"],"name":"Diababa","description":"Diababa is the Boss of the Forest Temple in Twilight Princess. It is a three-headed Deku Baba, with one massive head with a hidden eye inside its mouth. ","id":"5f6e93a7cbf4202fbde225d6"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":["5f6d158a3dd55d9ed2d1c08e","5f6d158a3dd55d9ed2d1c0eb"],"name":"Dead Hand","description":"Dead Hands are Sub-Bosses in Ocarina of Time. ","id":"5f6e93a7cbf4202fbde225dc"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c10c","5f6d158a3dd55d9ed2d1c130","5f6d158a3dd55d9ed2d1c08b"],"name":"Dark Link","description":"Dark Link is a dark reflection of Link. He is one of the most enigmatic enemy characters in the The Legend of Zelda series, usually appearing with no backstory and no dialogue, although it is implied on numerous occasions to be merely constructed of shadow magic. Dark Link is more than just a mere battle against a monster for Link, but a battle against himself, as the young hero has to face his own strength turned against him. Due to this, Dark Link is often the ultimate challenge, and is faced as a final boss on one occasion and as the final boss of optional challenges such as the Palace of the Four Sword and Take 'Em All On!. ","id":"5f6e93a7cbf4202fbde225e3"},{"appearances":["5f6ce9d805615a85623ec2c3"],"dungeons":[],"name":"DethI","description":"DethI is a Boss in Link's Awakening. ","id":"5f6e93a7cbf4202fbde225e1"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":[],"name":"Demon Train","description":"The Demon Train is a Boss in Spirit Tracks. It is a massive, semi-sentient locomotive used by Chancellor Cole and Malladus. ","id":"5f6e93a7cbf4202fbde225d8"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c0b8"],"name":"Crayk","description":"Crayk is a boss in Phantom Hourglass. It is a large, hermit crab-like that inhabits the Temple of Courage. ","id":"5f6e93a7cbf4202fbde225e8"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Dragon","description":"Dragons are a recurring species in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225db"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":[],"name":"Eox","description":"Eox is the seventh Boss in Phantom Hourglass. It is a giant mechanical golem made of stone and wood that guards the Cobble's Aquanine. ","id":"5f6e93a7cbf4202fbde225cb"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":["5f6d158a3dd55d9ed2d1c144"],"name":"Carock","description":"Carock is a boss in The Adventure of Link. ","id":"5f6e93a7cbf4202fbde225ed"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c0b2"],"name":"Cyclok","description":"Cyclok is the second Boss in Phantom Hourglass. ","id":"5f6e93a7cbf4202fbde225e6"},{"appearances":["5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c130"],"name":"Dodongo","description":"Dodongos are recurring enemies in the The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225e0"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":[],"name":"Dora Dora","description":"Dora Dora is a boss from Freshly-Picked Tingle's Rosy Rupeeland. He is found deep within the caverns of Desma's Labyrinth inside Mount Desma. To defeat him, Tingle must avoid his attacks, while climbing up out of the mountain. He must do this quickly, as the magma rises slowly, and will soon catch up to him if he delays. After reaching the top of the mountain, Tingle and Dora Dora will shoot out into the air, and the Fire Monster will turn to stone due to the cold air. After Dora Dora has been destroyed, his body will burst into 60,000 Rupees, and Tingle must catch them as he falls back to earth and through Mount Desma. ","id":"5f6e93a7cbf4202fbde225d0"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c157"],"name":"Deku Toad","description":"Deku Toad is the mini-boss of the Lakebed Temple in Twilight Princess. ","id":"5f6e93a7cbf4202fbde225dd"},{"appearances":["5f6ce9d805615a85623ec2cf"],"dungeons":[],"name":"Cia","description":"Cia is a major antagonist and villain in Hyrule Warriors. In the version 1.3.0 update, she is also a playable Warrior. She is a powerful sorceress who wages war over the land of Hyrule in the aim to conquer it. She also harbors serious affections for Link, and desires to claim him as well. ","id":"5f6e93a7cbf4202fbde225eb"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Blue Hinox","description":"Blue Hinox are recurring Bosses in Breath of the Wild. ","id":"5f6e93a7cbf4202fbde225f2"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c0c4"],"name":"Darkhammer","description":"Darkhammer is the mini-boss of the Snowpeak Ruins in Twilight Princess. ","id":"5f6e93a7cbf4202fbde225e2"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c197"],"name":"Dangoro","description":"Dangoro is the Middle Boss of the Goron Mines in Twilight Princess. He is a giant Goron who guards the sacred Hero's Bow. When Link first enters the room, Dangoro believes him to be an intruder and will prepare to attack him. ","id":"5f6e93a7cbf4202fbde225e5"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c0"],"dungeons":[],"name":"Digdogger","description":"Digdogger is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225d5"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":["5f6d158a3dd55d9ed2d1c188"],"name":"Calamity Ganon","description":"Calamity Ganon is a recurring character in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225f0"},{"appearances":["5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c181"],"name":"Blizzagia","description":"Blizzagia is the Boss of the Ice Temple in Tri Force Heroes. ","id":"5f6e93a7cbf4202fbde225f7"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c19b"],"name":"Cubus Sisters","description":"The Cubus Sisters are characters and Bosses in Phantom Hourglass. ","id":"5f6e93a7cbf4202fbde225e7"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":[],"name":"Death Bug","description":"Death Bug is the boss of the Hero's Shrine in Freshly-Picked Tingle's Rosy Rupeeland. ","id":"5f6e93a7cbf4202fbde225da"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":[],"name":"Cole","description":"Cole is a government official in the kingdom of Hyrule and the secondary antagonist of Spirit Tracks. He is also a servant of Princess Zelda, the country's matriarch. ","id":"5f6e93a7cbf4202fbde225ea"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":[],"name":"Big Dodongo","description":"The Big Dodongo is a boss that appears at the end of the Realm of the Heavens stage in Four Swords Adventures. ","id":"5f6e93a7cbf4202fbde225fc"},{"appearances":["5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c19a"],"name":"Brother Goriyas","description":"The Brother Goriyas are the Sub-Bosses of the Gnarled Root Dungeon in Oracle of Seasons. ","id":"5f6e93a7cbf4202fbde225f5"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":[],"name":"Chief Soldier","description":"Chief Soldiers are Sub-Bosses in Four Swords Adventures. ","id":"5f6e93a7cbf4202fbde225ec"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":[],"name":"Darunia","description":"Darunia, also known as The Passionate Brother, is a recurring character in The Legend of Zelda series. He is the leader of the Hyrulean Gorons and the Sworn Brother of the King of Hyrule. Despite his stern appearance, he loves music and dancing and cares deeply about his people. His known relatives are a distant ancestor who became a legendary hero by defeating the ancient dragon Volvagia and his son Link, who was born sometime in the seven-year absence of the Hero of Time. Darunia eventually becomes the new Sage of Fire when Link cleanses the Fire Temple. ","id":"5f6e93a7cbf4202fbde225df"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":[],"name":"Baron","description":"Baron is a boss in Freshly-Picked Tingle's Rosy Rupeeland. He is found on Mount Desma. When Tingle meets him, he asks if he wants to challenge him. Several skeletons lay on the ground where Baron is found, which he explains are the remains of those who fought him before. Should Tingle accept Baron's challenge, he will drop from the ceiling and begin the battle. ","id":"5f6e93a7cbf4202fbde22601"},{"appearances":["5f6ce9d805615a85623ec2bc"],"dungeons":[],"name":"Captain Keeta","description":"Captain Keeta, also known as Skull Keeta, is a mini-boss in Majora's Mask. ","id":"5f6e93a7cbf4202fbde225ef"},{"appearances":["5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Dark Beast Ganon","description":"Dark Beast Ganon is a recurring boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225e4"},{"appearances":["5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c13c"],"name":"Blaino","description":"Blaino is a recurring Boss and character in The Legend of Zelda series. Blaino appears as a Sub-Boss in Link's Awakening and as a minor character in Oracle of Seasons. Blaino is characterized by his boxing gloves and his fitting boxing-style he uses to fight Link in both his appearances. ","id":"5f6e93a7cbf4202fbde225fa"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Crow","description":"Crows are recurring Enemies in The Legend of Zelda series. They are small, dark birds similar to their real-life counterparts, but are dangerous and aggressive, lying in wait to swoop down on passing travelers. They are also known for stealing shiny items such as Keys and Rupees. They are closely related to Takkuri and Dacto. They first appeared in A Link to the Past. ","id":"5f6e93a7cbf4202fbde225f1"},{"appearances":["5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c9"],"dungeons":[],"name":"Bokoblin","description":"Bokoblins, also known as Red Bokoblins, are recurring enemies in the The Legend of Zelda series. They are common infantry units utilized—alongside Moblins or Bulblins—by antagonists such as Ganon. They can be defeated with most conventional weapons. ","id":"5f6e93a7cbf4202fbde225f4"},{"appearances":["5f6ce9d805615a85623ec2d2"],"dungeons":["5f6d158a3dd55d9ed2d1c0dd"],"name":"Aviana","description":"Aviana is the third boss in Zelda's Adventure. She is the Shrine Keeper of the Shrine of Air. ","id":"5f6e93a7cbf4202fbde22606"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":["5f6d158a3dd55d9ed2d1c0eb"],"name":"Bongo Bongo","description":"Bongo Bongo is a Boss in Ocarina of Time. It is a mysterious Cyclopean shadow spirit with two large disembodied hands, and it serves as the Boss of the Shadow Temple. Once sealed deep in the darkness at the bottom of Kakariko Well, the true origin of the beast is unknown. After Ganondorf came to power, the beast was able to escape its prison within the well and retreat to the Shadow Temple, where Impa went to try to seal it again. ","id":"5f6e93a7cbf4202fbde225f6"},{"appearances":["5f6ce9d805615a85623ec2b8"],"dungeons":["5f6d158a3dd55d9ed2d1c10c"],"name":"Blind the Thief","description":"Blind the Thief is the Boss of Thieves' Town in A Link to the Past. The Lorulean counterpart of Blind appears as Stalblind in A Link Between Worlds. ","id":"5f6e93a7cbf4202fbde225f9"},{"appearances":["5f6ce9d805615a85623ec2c5"],"dungeons":["5f6d158a3dd55d9ed2d1c1a9"],"name":"Cragma","description":"Cragma is the fourth Boss in Spirit Tracks. It has the appearance of a large molten rock cyclops. He appears in the game's fourth temple, the Fire Temple. ","id":"5f6e93a7cbf4202fbde225e9"},{"appearances":["5f6ce9d805615a85623ec2bd","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c6"],"dungeons":[],"name":"Blue Stalfos","description":"Blue Stalfos are recurring Enemies in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde225ff"},{"appearances":["5f6ce9d805615a85623ec2ba"],"dungeons":[],"name":"Barinade","description":"Barinade is the third Boss in Ocarina of Time, residing Inside Jabu-Jabu's Belly. It is an enormous anemone-like monster that acts as a dangerous parasite to Lord Jabu-Jabu, gradually draining its host of his life energy in order to sustain itself. Barinade is the guardian of the third Spiritual Stone, Zora's Sapphire. ","id":"5f6e93a7cbf4202fbde22604"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c091"],"name":"Black Knight","description":"Black Knights are Sub-Bosses in The Minish Cap. ","id":"5f6e93a7cbf4202fbde225fb"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":["5f6d158a3dd55d9ed2d1c10a"],"name":"Captain Stalfos","description":"Captain Stalfos is a boss in Freshly-Picked Tingle's Rosy Rupeeland. He is the leader of the group of Pirates. In order for Tingle to join the pirate crew, he has to be dead. If he wants to survive, he must defeat the captain in a sword duel. If Tingle succeeds in this task, he will be given the Bone Ocarina, which may be used at any pier to call the pirate ship. ","id":"5f6e93a7cbf4202fbde225ee"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c09f"],"name":"Big Blue Chuchu","description":"The Big Blue Chuchu is a Sub-Boss in The Minish Cap. ","id":"5f6e93a7cbf4202fbde225fe"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c0b4"],"name":"Armogohma","description":"Armogohma is the Boss of the Temple of Time in Twilight Princess. ","id":"5f6e93a7cbf4202fbde2260b"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1"],"dungeons":["5f6d158a3dd55d9ed2d1c1b1"],"name":"Armos Knight","description":"Armos Knights are recurring Boss and Mini-Boss in The Legend of Zelda series. They are bigger and stronger versions of standard Armos. ","id":"5f6e93a7cbf4202fbde22609"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c0c4"],"name":"Blizzeta","description":"Blizzeta is the Boss of Snowpeak Ruins in Twilight Princess. The boss is actually Yeta, who leads Link to the second shard of the Twilight Mirror which she holds. She becomes possessed by the Mirror Shard and screams at Link that he cannot have it. The windows of the bedroom then shatter, letting the snow and ice to pour in, surrounding and encapsulating Yeta. ","id":"5f6e93a7cbf4202fbde225f3"},{"appearances":["5f6ce9d805615a85623ec2c2"],"dungeons":["5f6d158a3dd55d9ed2d1c0b6"],"name":"Bellum","description":"Bellum is the primary antagonist of Phantom Hourglass, and serves as the Final Boss. ","id":"5f6e93a7cbf4202fbde22600"},{"appearances":["5f6ce9d805615a85623ec2bd"],"dungeons":[],"name":"Barba","description":"Barba, sometimes known as Volvagia, is the Boss of the Three-Eye Rock Palace in The Adventure of Link. ","id":"5f6e93a7cbf4202fbde22603"},{"appearances":["5f6ce9d805615a85623ec2c6"],"dungeons":["5f6d158a3dd55d9ed2d1c1c4"],"name":"Big Green Chuchu","description":"The Big Green Chuchu is the Boss of Deepwood Shrine in The Minish Cap. ","id":"5f6e93a7cbf4202fbde225f8"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2c0"],"dungeons":["5f6d158a3dd55d9ed2d1c19a"],"name":"Aquamentus","description":"Aquamentus is a recurring Boss in The Legend of Zelda series. It is a dragon with a horn on its head that some call a unicorn. ","id":"5f6e93a7cbf4202fbde2260e"},{"appearances":["5f6ce9d805615a85623ec2cd"],"dungeons":["5f6d158a3dd55d9ed2d1c1c1"],"name":"Bana Bana","description":"Bana Bana is the boss of the Deku Temple in Freshly-Picked Tingle's Rosy Rupeeland. It is a large, multi-headed carnivorous plant, similar to Manhandla. Bana Bana is the monster who is responsible for contaminating the Life Dew found within the Deku Tree. As in the Ocarina of Time, the Deku Tree is dying due to an infestation of monsters. ","id":"5f6e93a7cbf4202fbde22605"},{"appearances":["5f6ce9d805615a85623ec2bb"],"dungeons":["5f6d158a3dd55d9ed2d1c1d8"],"name":"Avalaunch","description":"Avalaunch is a Sub-Boss of the Color Dungeon in Link's Awakening DX. ","id":"5f6e93a7cbf4202fbde22608"},{"appearances":["5f6ce9d805615a85623ec2c1"],"dungeons":[],"name":"Big Dark Stalfos","description":"Big Dark Stalfos are bosses and enemies in Four Swords Adventures. They are exceptionally large Stalfos armed with large green swords. ","id":"5f6e93a7cbf4202fbde225fd"},{"appearances":["5f6ce9d805615a85623ec2b7","5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2ba","5f6ce9d805615a85623ec2bc","5f6ce9d805615a85623ec2c0","5f6ce9d805615a85623ec2b9","5f6ce9d805615a85623ec2c4","5f6ce9d805615a85623ec2bf","5f6ce9d805615a85623ec2c1","5f6ce9d805615a85623ec2c6","5f6ce9d805615a85623ec2be","5f6ce9d805615a85623ec2c2","5f6ce9d805615a85623ec2c5","5f6ce9d805615a85623ec2c8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"dungeons":[],"name":"Armos","description":"Armos, also known as Soldier Statues, are recurring Enemies in The Legend of Zelda series. They are stone or mechanical statues that come to life and attack. Their weaknesses, attack methods, and habitats vary significantly between games. In the majority of games however, Armos are initially inactive, and will activate and charge once disturbed. Inactive Armos are commonly referred to as Armos Statues. Some Armos are also explosive, and will self-destruct after being attacked. Armos come in several variations, with notable ones including Armos Knights, Death Armos, the Armos Warrior and Totem Armos. ","id":"5f6e93a7cbf4202fbde2260a"},{"appearances":["5f6ce9d805615a85623ec2c3","5f6ce9d805615a85623ec2b9"],"dungeons":[],"name":"Angler Fish","description":"The Angler Fish is a recurring Boss in The Legend of Zelda series. ","id":"5f6e93a7cbf4202fbde2260d"},{"appearances":[],"dungeons":[],"name":"Bass Guitarmos Knights","description":"The Bass Guitarmos Knights are a Boss in Cadence of Hyrule. ","id":"5f6e93a7cbf4202fbde22602"},{"appearances":["5f6ce9d805615a85623ec2b8","5f6ce9d805615a85623ec2c7","5f6ce9d805615a85623ec2ce"],"dungeons":["5f6d158a3dd55d9ed2d1c0bf","5f6d158a3dd55d9ed2d1c10c","5f6d158a3dd55d9ed2d1c0bf","5f6d158a3dd55d9ed2d1c149","5f6d158a3dd55d9ed2d1c130"],"name":"Arrghus","description":"Arrghus is a recurring Boss in The Legend of Zelda series. It is typically seen as a large, one-eyed jellyfish that is usually surrounded by miniature polyps called Arrgi. ","id":"5f6e93a7cbf4202fbde22607"},{"appearances":["5f6ce9d805615a85623ec2be"],"dungeons":["5f6d158a3dd55d9ed2d1c1d9"],"name":"Argorok","description":"Argorok is a recurring Boss in The Legend of Zelda series. It is a red-orange wyvern covered in black armor, and it terrorizes the Oocca and wreaks havoc on the City in the Sky. As Link explores the City, Argorok can be seen flying overhead in the sky. ","id":"5f6e93a7cbf4202fbde2260c"}] 2 | --------------------------------------------------------------------------------