From 1e4a9ba9d1c39bb6f30c47f736560297acaf166e Mon Sep 17 00:00:00 2001 From: Avior Date: Wed, 3 Feb 2021 01:14:26 +0100 Subject: [PATCH] Update in progress Signed-off-by: Avior --- .gitmodules | 4 +- all.ts | 14 +++- db | 2 +- endpoints/cardUtil.ts | 42 +++++++--- endpoints/cards/index.ts | 2 +- endpoints/cards/item.ts | 8 +- endpoints/categories/index.ts | 7 +- endpoints/categories/item.ts | 2 +- endpoints/expansionUtil.ts | 27 +++++- endpoints/hp/item.ts | 2 +- endpoints/illustrators/item.ts | 2 +- endpoints/rarities/index.ts | 4 + endpoints/rarities/item.ts | 6 +- endpoints/retreat/index.ts | 3 + endpoints/retreat/item.ts | 5 +- endpoints/setUtil.ts | 11 ++- endpoints/sets/index.ts | 4 + endpoints/sets/item.ts | 5 +- endpoints/sets/subitem.ts | 6 +- endpoints/tags/index.ts | 7 +- endpoints/tags/item.ts | 21 +++-- endpoints/types/index.ts | 3 + endpoints/types/item.ts | 5 +- endpoints/util.ts | 16 ++++ generated/illustrators.json | 2 +- package.json | 6 +- yarn.lock | 148 +++++++++++++++++++++++---------- 27 files changed, 272 insertions(+), 92 deletions(-) diff --git a/.gitmodules b/.gitmodules index 393e1dd..39ed7e8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "db"] path = db - url = https://git.delta-wings.net/tcgdex/db.git + url = https://github.com/tcgdex/cards-database.git [submodule "dist"] path = dist - url = https://git.delta-wings.net/tcgdex/compiled.git + url = https://github.com/tcgdex/distribution.git diff --git a/all.ts b/all.ts index 6efa52d..c238833 100644 --- a/all.ts +++ b/all.ts @@ -1,3 +1,6 @@ +import Logger from '@dzeio/logger' +const logger = new Logger('Compiler') + import cardIndex from './endpoints/cards/index' import cardItem from './endpoints/cards/item' @@ -31,14 +34,18 @@ import typesItem from './endpoints/types/item' import tagsIndex from './endpoints/tags/index' import tagsItem from './endpoints/tags/item' +import { fetchRemoteFile } from './endpoints/util' (async () => { - console.log('Preparing Database Update') + logger.log('Preparing Database Update') await Promise.all([ - illustratorsDB() + illustratorsDB(), + fetchRemoteFile('https://assets.tcgdex.net/data-en.json'), + fetchRemoteFile('https://assets.tcgdex.net/data-fr.json'), + fetchRemoteFile('https://assets.tcgdex.net/data-univ.json') ]) - console.log('UPDATING...') + logger.log('UPDATING...') await Promise.all([ cardIndex(), cardItem(), @@ -73,4 +80,5 @@ import tagsItem from './endpoints/tags/item' tagsIndex(), tagsItem(), ]) + process.exit(0) })() diff --git a/db b/db index f6b9eaf..fc5cd3a 160000 --- a/db +++ b/db @@ -1 +1 @@ -Subproject commit f6b9eafec4e9bfc0f5cd3f7a4eedfb844bf9fbe2 +Subproject commit fc5cd3aba3500b19222ce5bf185ca4a8361d601d diff --git a/endpoints/cardUtil.ts b/endpoints/cardUtil.ts index a66edc2..3282a5f 100644 --- a/endpoints/cardUtil.ts +++ b/endpoints/cardUtil.ts @@ -6,18 +6,33 @@ import { tagToTagSimple } from "./TagUtil"; import Category from "@tcgdex/sdk/interfaces/Category"; import { attackToAttackSingle } from "./attackUtil"; import { abilityToAbilitySingle } from "./abilityUtil"; -import { getExpansion } from "./expansionUtil"; +import { getExpansion, getExpansionFromSetName } from "./expansionUtil"; import { getSet } from "./setUtil"; import Expansion from "@tcgdex/sdk/interfaces/Expansion"; import { fetchIllustratorsSync } from "./illustratorUtil"; import TranslationUtil from "@tcgdex/sdk/TranslationUtil"; +import { fetchRemoteFile } from "./util"; + +interface ObjectList { + [key: string]: T +} + +type RemoteData = ObjectList>> + +export async function cardToCardSimple(card: Card, lang: Langs): Promise { + let image: string = undefined + const file: RemoteData = await fetchRemoteFile(`https://assets.tcgdex.net/data-${lang}.json`) + const expansion = getExpansionFromSetName(card.set.code) + if (file[expansion.code] && file[expansion.code][card.set.code] && file[expansion.code][card.set.code][card.localId]) { + const basePath = `https://assets.tcgdex.net/${lang}/${expansion.code}/${card.set.code}/${card.localId}` + image = `${basePath}/low` + } -export function cardToCardSimple(card: Card, lang: Langs): CardSimple { return { id: card.id, localId: card.localId, name: card.name[lang], - image: card.image && card.image.low[lang] + image } } @@ -25,14 +40,21 @@ export function getCardExpansion(card: Card): Expansion { return getExpansion(getSet(card)) } -export function cardToCardSingle(card: Card, lang: Langs): CardSingle { +export async function cardToCardSingle(card: Card, lang: Langs): Promise { - const images: { - low: string, - high?: string - } = card.image && { - low: card.image.low[lang], - high: card.image.high && card.image.high[lang] + let images: { + low: string; + high?: string; + } = undefined + + const file: RemoteData = await fetchRemoteFile(`https://assets.tcgdex.net/data-${lang}.json`) + const expansion = getExpansionFromSetName(card.set.code) + if (file[expansion.code] && file[expansion.code][card.set.code] && file[expansion.code][card.set.code][card.localId]) { + const basePath = `https://assets.tcgdex.net/${lang}/${expansion.code}/${card.set.code}/${card.localId}` + images = { + low: `${basePath}/low`, + high: `${basePath}/high` + } } return { diff --git a/endpoints/cards/index.ts b/endpoints/cards/index.ts index 7029257..023b238 100644 --- a/endpoints/cards/index.ts +++ b/endpoints/cards/index.ts @@ -19,7 +19,7 @@ export default async () => { if (!isCardAvailable(card, lang)) continue items.push( - cardToCardSimple(card, lang) + await cardToCardSimple(card, lang) ) // if (if (typeof card.set.availability === "undefined")) diff --git a/endpoints/cards/item.ts b/endpoints/cards/item.ts index 7220d2d..96e5575 100644 --- a/endpoints/cards/item.ts +++ b/endpoints/cards/item.ts @@ -17,8 +17,12 @@ export default async () => { if (!isCardAvailable(card, lang)) continue - await fs.mkdir(`${endpoint}/${card.id}/`, {recursive: true}) - await fs.writeFile(`${endpoint}/${card.id}/index.json`, JSON.stringify(cardToCardSingle(card, lang))) + try { + await fs.mkdir(`${endpoint}/${encodeURI(card.id)}/`, {recursive: true}) + await fs.writeFile(`${endpoint}/${encodeURI(card.id)}/index.json`, JSON.stringify(await cardToCardSingle(card, lang))) + } catch { + + } // if (if (typeof card.set.availability === "undefined")) } diff --git a/endpoints/categories/index.ts b/endpoints/categories/index.ts index f3a573c..8c9e091 100644 --- a/endpoints/categories/index.ts +++ b/endpoints/categories/index.ts @@ -3,12 +3,15 @@ import Category, { CategorySimple, CategoryList } from '@tcgdex/sdk/interfaces/C import TranslationUtil from "@tcgdex/sdk/TranslationUtil" import { Langs } from "@tcgdex/sdk/interfaces/LangList" import { promises as fs } from 'fs' +import Logger from '@dzeio/logger' const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "categories") +const logger = new Logger('Category/Index') + export default async () => { - console.log(endpoint) + logger.log(endpoint) const list: Array = [] for (const cat of Object.values(Category)) { @@ -26,5 +29,5 @@ export default async () => { await fs.mkdir(endpoint, {recursive: true}) await fs.writeFile(`${endpoint}/index.json`, JSON.stringify(res)) - console.log('ended ' + endpoint) + logger.log('ended') } diff --git a/endpoints/categories/item.ts b/endpoints/categories/item.ts index 5e11923..9a679af 100644 --- a/endpoints/categories/item.ts +++ b/endpoints/categories/item.ts @@ -37,7 +37,7 @@ export default async () => { const toSave: CategorySingle = { id: rCat, name: TranslationUtil.translate("category", rCat, lang), - cards: cards.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(cards.map(el => cardToCardSimple(el, lang))) } const index = `${endpoint}/${toSave.id}` diff --git a/endpoints/expansionUtil.ts b/endpoints/expansionUtil.ts index 8779f41..1820436 100644 --- a/endpoints/expansionUtil.ts +++ b/endpoints/expansionUtil.ts @@ -11,12 +11,33 @@ export function getExpansion(set: Set): Expansion { return require(`../../db/expansions/${set.expansionCode}`) } -export function getAllExpansions(): Array { - return glob.sync("./db/expansions/*.ts").map(el => el.substr(16, el.length-15-1-3)) // -15 = start -1 = 0 index -3 = .ts +const setExpansionLink: Record = {} + +export function getExpansionFromSetName(setName: string): Expansion { + try { + if (!setExpansionLink[setName]) { + setExpansionLink[setName] = glob.sync(`./db/sets/**/${setName}.ts`)[0].split('/')[3] + } + const expansionName = setExpansionLink[setName] + return fetchExpansion(expansionName) + } catch (e) { + console.error(glob.sync(`./db/sets/**/${setName}`)) + throw new Error(setName) + } } +export function getAllExpansions(): Array { + return glob.sync("./db/expansions/*.ts").map(el => el.split('/')[3].substr(0, el.length-1-3)) // -15 = start -1 = 0 index -3 = .ts +} + +const expansionCache: Record = {} + export function fetchExpansion(name: string): Expansion { - return require(`../db/expansions/${name}.js`).default + name = name.replace('.ts', '') + if (!expansionCache[name]) { + expansionCache[name] = require(`../db/expansions/${name}.js`).default + } + return expansionCache[name] } export function expansionToExpansionSimple(expansion: Expansion, lang: Langs) { diff --git a/endpoints/hp/item.ts b/endpoints/hp/item.ts index 2c492e6..8b96485 100644 --- a/endpoints/hp/item.ts +++ b/endpoints/hp/item.ts @@ -31,7 +31,7 @@ export default async () => { const toSave: HpSingle = { hp: hp as unknown as number, - cards: cards.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(cards.map(el => cardToCardSimple(el, lang))) } await fs.mkdir(`${endpoint}/${toSave.hp}/`, {recursive: true}) diff --git a/endpoints/illustrators/item.ts b/endpoints/illustrators/item.ts index 4f10f0f..4853793 100644 --- a/endpoints/illustrators/item.ts +++ b/endpoints/illustrators/item.ts @@ -38,7 +38,7 @@ export default async () => { const toSave: IllustratorSingle = { id: db.indexOf(illustrator), name: illustrator, - cards: list.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(list.map(el => cardToCardSimple(el, lang))) } await fs.mkdir(`${endpoint}/${toSave.id}`, {recursive: true}) diff --git a/endpoints/rarities/index.ts b/endpoints/rarities/index.ts index 433ebf0..29c0bb9 100644 --- a/endpoints/rarities/index.ts +++ b/endpoints/rarities/index.ts @@ -4,6 +4,10 @@ import { Langs } from "@tcgdex/sdk/interfaces/LangList" import { promises as fs } from 'fs' import Rarity, { RaritySimple, RarityList } from "@tcgdex/sdk/interfaces/Rarity" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Rarities/Index' + + const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "rarities") diff --git a/endpoints/rarities/item.ts b/endpoints/rarities/item.ts index 370b248..786f22e 100644 --- a/endpoints/rarities/item.ts +++ b/endpoints/rarities/item.ts @@ -6,6 +6,10 @@ import TranslationUtil from "@tcgdex/sdk/TranslationUtil" import { promises } from "fs" import Rarity, { RaritySingle } from "@tcgdex/sdk/interfaces/Rarity" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Rarities/Item' + + type rarityCards = { [key in Rarity]?: Array } @@ -37,7 +41,7 @@ export default async () => { const toSave: RaritySingle = { id: rCat, name: TranslationUtil.translate("rarity", rCat, lang), - cards: cards.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(cards.map(el => cardToCardSimple(el, lang))) } const index = `${endpoint}/${toSave.id}` diff --git a/endpoints/retreat/index.ts b/endpoints/retreat/index.ts index d0ab86e..4608c65 100644 --- a/endpoints/retreat/index.ts +++ b/endpoints/retreat/index.ts @@ -5,6 +5,9 @@ import { isCardAvailable } from "../cardUtil" import { RetreatList } from '@tcgdex/sdk/interfaces/Retreat' import { Langs } from "@tcgdex/sdk/interfaces/LangList" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Retreat/Index' + const lang = (process.env.CARDLANG || "en") as Langs const endpoint = getBaseFolder(lang, "retreat") diff --git a/endpoints/retreat/item.ts b/endpoints/retreat/item.ts index fa1e3db..8ea41fd 100644 --- a/endpoints/retreat/item.ts +++ b/endpoints/retreat/item.ts @@ -5,6 +5,9 @@ import { isCardAvailable, cardToCardSimple } from "../cardUtil" import { RetreatSingle } from '@tcgdex/sdk/interfaces/Retreat' import { Langs } from "@tcgdex/sdk/interfaces/LangList" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Retreat/Item' + const lang = (process.env.CARDLANG || "en") as Langs const endpoint = getBaseFolder(lang, "retreat") @@ -30,7 +33,7 @@ export default async () => { const item: RetreatSingle = { id: retreat as unknown as number, - cards: cardArr.map((val) => cardToCardSimple(val, lang)) + cards: await Promise.all(cardArr.map(el => cardToCardSimple(el, lang))) } await fs.mkdir(`${endpoint}/${item.id}`, {recursive: true}) diff --git a/endpoints/setUtil.ts b/endpoints/setUtil.ts index 074fbd2..aff547b 100644 --- a/endpoints/setUtil.ts +++ b/endpoints/setUtil.ts @@ -46,7 +46,7 @@ export function setToSetSimple(set: Set, lang: Langs): SetSimple { } } -export function getSetCards(set: Set, lang: Langs): Array { +export async function getSetCards(set: Set, lang: Langs): Promise> { const cardes = getAllCards2(set.code) const cards: Array = [] for (let el of cardes) { @@ -57,16 +57,15 @@ export function getSetCards(set: Set, lang: Langs): Array { card ) } - - return cards.sort((a, b) => { + return await Promise.all(cards.sort((a, b) => { if (!isNaN(parseInt(a.localId + "")) && !isNaN(parseInt(b.localId + ""))) { return parseInt(a.localId + "") - parseInt(b.localId + "") } return a.localId > b.localId ? 1 : -1 - }).map(el => cardToCardSimple(el, lang)) + }).map(el => cardToCardSimple(el, lang))) } -export function setToSetSingle(set: Set, lang: Langs): SetSingle { +export async function setToSetSingle(set: Set, lang: Langs): Promise { return { name: set.name[lang], code: set.code, @@ -85,6 +84,6 @@ export function setToSetSingle(set: Set, lang: Langs): SetSingle { symbol: set.images.symbol, logo: set.images.logo }, - list: getSetCards(set, lang) + list: await getSetCards(set, lang) } } diff --git a/endpoints/sets/index.ts b/endpoints/sets/index.ts index 07d111e..38f155c 100644 --- a/endpoints/sets/index.ts +++ b/endpoints/sets/index.ts @@ -5,6 +5,10 @@ import { SetSimple, SetList } from "@tcgdex/sdk/interfaces/Set" import { getAllSets, getBaseFolder } from "../util" import { isSetAvailable, setToSetSimple } from "../setUtil" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Sets/Index' + + const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "sets") diff --git a/endpoints/sets/item.ts b/endpoints/sets/item.ts index ad41b98..3eb861e 100644 --- a/endpoints/sets/item.ts +++ b/endpoints/sets/item.ts @@ -4,6 +4,9 @@ import { Langs } from "@tcgdex/sdk/interfaces/LangList" import { promises as fs } from 'fs' import { isSetAvailable, setToSetSingle } from "../setUtil" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Sets/Item' + const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "sets") @@ -18,7 +21,7 @@ export default async () => { if (!isSetAvailable(set, lang)) continue await fs.mkdir(`${endpoint}/${set.code}/`, {recursive: true}) - await fs.writeFile(`${endpoint}/${set.code}/index.json`, JSON.stringify(setToSetSingle(set, lang))) + await fs.writeFile(`${endpoint}/${set.code}/index.json`, JSON.stringify(await setToSetSingle(set, lang))) } diff --git a/endpoints/sets/subitem.ts b/endpoints/sets/subitem.ts index 81237c4..bab7f29 100644 --- a/endpoints/sets/subitem.ts +++ b/endpoints/sets/subitem.ts @@ -7,6 +7,10 @@ import { getAllCards2 } from "../util" import Card from "@tcgdex/sdk/interfaces/Card" import { cardToCardSingle, isCardAvailable } from "../cardUtil" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Sets/SubItem' + + const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "sets") @@ -28,7 +32,7 @@ export default async () => { if (!isCardAvailable(card, lang)) continue await fs.mkdir(`${endpoint}/${set.code}/${card.localId}`, {recursive: true}) - await fs.writeFile(`${endpoint}/${set.code}/${card.localId}/index.json`, JSON.stringify(cardToCardSingle(card, lang))) + await fs.writeFile(`${endpoint}/${set.code}/${card.localId}/index.json`, JSON.stringify(await cardToCardSingle(card, lang))) } } diff --git a/endpoints/tags/index.ts b/endpoints/tags/index.ts index f153dd6..060d39b 100644 --- a/endpoints/tags/index.ts +++ b/endpoints/tags/index.ts @@ -4,11 +4,14 @@ import { Langs } from "@tcgdex/sdk/interfaces/LangList" import { promises as fs } from 'fs' import Tag, { TagSimple, TagList } from "@tcgdex/sdk/interfaces/Tag" +import Logger from '@dzeio/logger' +const logger = new Logger('Tags/Index') + const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "tags") export default async () => { - console.log(endpoint) + logger.log(endpoint) const list: Array = [] for (const cat of Object.values(Tag)) { @@ -26,5 +29,5 @@ export default async () => { await fs.mkdir(endpoint, {recursive: true}) await fs.writeFile(`${endpoint}/index.json`, JSON.stringify(res)) - console.log('ended ' + endpoint) + logger.log('ended ' + endpoint) } diff --git a/endpoints/tags/item.ts b/endpoints/tags/item.ts index ed659b4..fc17740 100644 --- a/endpoints/tags/item.ts +++ b/endpoints/tags/item.ts @@ -1,5 +1,5 @@ import { getAllCards, getBaseFolder, urlize } from "../util" -import { fetchCard, isCardAvailable, cardToCardSimple } from "../cardUtil" +import { fetchCard, isCardAvailable, cardToCardSimple, fetchCardAsync } from "../cardUtil" import Type, { TypeSingle } from "@tcgdex/sdk/interfaces/Type" import Card from "@tcgdex/sdk/interfaces/Card" import { Langs } from "@tcgdex/sdk/interfaces/LangList" @@ -7,6 +7,10 @@ import TranslationUtil from "@tcgdex/sdk/TranslationUtil" import { promises } from "fs" import Tag, { TagSingle } from "@tcgdex/sdk/interfaces/Tag" +import Logger from '@dzeio/logger' +import { objectKeys, objectSize } from '@dzeio/object-util' +const logger = new Logger('Tags/Item') + type tagCards = { [key in Tag]?: Array } @@ -16,28 +20,31 @@ const endpoint = getBaseFolder(lang, "tags") export default async () => { - console.log(endpoint) + logger.log('part 1') const list = getAllCards() const arr: tagCards = {} for (const i of list) { - const card = await fetchCard(i) + const card = await fetchCardAsync(i) - if (!isCardAvailable(card, lang)) continue + if (!isCardAvailable(card, lang) || !card.tags) continue for (const tag of card.tags) { if (!(tag in arr)) arr[tag] = [] arr[tag].push(card) } } - + logger.log('part 2') for (const type in arr) { if (arr.hasOwnProperty(type)) { const cards: Array = arr[type]; + const rTag: Tag = parseInt(type) + logger.log('Working on tag', TranslationUtil.translate("tag", rTag, lang), `${type}/${objectSize(arr)}`) + const toSave: TagSingle = { id: rTag, name: TranslationUtil.translate("tag", rTag, lang), - cards: cards.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(cards.map(el => cardToCardSimple(el, lang))) } const index = `${endpoint}/${toSave.id}` @@ -50,5 +57,5 @@ export default async () => { await promises.writeFile(`${name}/index.json`, JSON.stringify(toSave)) } } - console.log('ended ' + endpoint) + logger.log('ended') } diff --git a/endpoints/types/index.ts b/endpoints/types/index.ts index 6c5665a..7c65689 100644 --- a/endpoints/types/index.ts +++ b/endpoints/types/index.ts @@ -8,6 +8,9 @@ import { List } from "@tcgdex/sdk/interfaces/General" const lang = process.env.CARDLANG as Langs || "en" const endpoint = getBaseFolder(lang, "types") +import { logger as console } from '@dzeio/logger' +console.prefix = 'Types/Index' + export default async () => { console.log(endpoint) const typeArr: Array = [] diff --git a/endpoints/types/item.ts b/endpoints/types/item.ts index 7e65064..effd7ee 100644 --- a/endpoints/types/item.ts +++ b/endpoints/types/item.ts @@ -6,6 +6,9 @@ import { Langs } from "@tcgdex/sdk/interfaces/LangList" import TranslationUtil from "@tcgdex/sdk/TranslationUtil" import { promises } from "fs" +import { logger as console } from '@dzeio/logger' +console.prefix = 'Types/Item' + type typeCards = { [key in Type]?: Array } @@ -36,7 +39,7 @@ export default async () => { const toSave: TypeSingle = { id: rType, name: TranslationUtil.translate("type", rType, lang), - cards: cards.map(el => cardToCardSimple(el, lang)) + cards: await Promise.all(cards.map(el => cardToCardSimple(el, lang))) } const index = `${endpoint}/${toSave.id}` diff --git a/endpoints/util.ts b/endpoints/util.ts index fc02486..1b10e3a 100644 --- a/endpoints/util.ts +++ b/endpoints/util.ts @@ -1,5 +1,6 @@ import { promises as fs, promises } from 'fs' import * as glob from 'glob' +import fetch from 'node-fetch' const VERSION = 'v1' @@ -68,3 +69,18 @@ export function urlize(str: string): string { str = str.normalize('NFD').replace(/[\u0300-\u036f]/g, "") return str.replace(/ /g, "-").toLowerCase() } + +interface fileCacheInterface { + [key: string]: any +} +const fileCache: fileCacheInterface = {} + +export async function fetchRemoteFile(url: string): Promise { + // console.log(Object.keys(fileCache)) + if (!fileCache[url]) { + const resp = await fetch(url) + // console.log(await resp.text(), url) + fileCache[url] = resp.json() + } + return fileCache[url] +} diff --git a/generated/illustrators.json b/generated/illustrators.json index 43d43db..f37941f 100644 --- a/generated/illustrators.json +++ b/generated/illustrators.json @@ -1 +1 @@ -["Ken Sugimori","Keiji Kinebuchi","Mitsuhiro Arita","Tomoaki Imakuni","Kagemaru Himeno","Miki Tanaka","Shin-ichi Yoshida","Takumi Akabane","Sumiyoshi Kizuki","Atsuko Nishida","Christopher Rush","Benimaru Itoh","Hiromichi Sugiyama","Kunihiko Yuyama","Toshinao Aoki","Gakuji Nomoto","Tomokazu Komiya","Hironobu Yoshida","Hideki Kazama","Craig Turvey","Hajime Kusajima","Ayaka Yoshida","5ban Graphics","Daisuke Iwamoto","Kouki Saitou","Naoyo Kimura","match","Shin Nagasawa","Masakazu Fukuda","Naoki Saito","sui","MAHOU","Midori Harada","Kent Kanetsuna","Ryo Ueda","Yuri Umemura","Noriko Hotta","Eske Yoshinob","Akira Komayama","Satoshi Shirai","kawayoo","Kyoko Umemoto","Shigenori Negishi","Suwama Chiaki","Mizue","HiRON","Yusuke Ohmura","kirisAki","Toyste Beach","Sanosuke Sakuma","Megumi Mizutani","TOKIYA","Kanako Eo","Aya Kusube","Shizurow","hatachu","Sachiko Adachi","Yukiko Baba","Hitoshi Ariga","Hiroki Asanuma","Yuka Morii","James Turner","Reiko Tanoue","Maiko Fujiwara","Tomohiro Kitakaze","Hideaki Hakozaki","BERUBURI","Kouji Tajima","Illus.&Direc.The Pokémon Company Art Team","Takashi Yamaguchi","Wataru Kawahara","Nakaoka","Mikiko Takeda","Hideyuki Nakajima","Shin-ichi Yoshikawa","Kai Ishikawa","Hiroaki Ito","Masahiko Ishii","Takabon","Kazuyuki Kano","Daisuke Ito","Emi Yoshida","Kenkichi Toyama","Hiroki Fuchino","Lee HyunJung","Satoshi Ohta","Takao Unno","Motofumi Fujiwara","Saya Tsuruta","Saya Tsuruta","Kazuaki Aihara","Ryota Saito","Makoto Imai","Yusuke Ishikawa","Masako Yamashita","Sachi Matoba","Yuichi Sawayama","Aimi Tomita","\"Big Mama\" Tagawa","Milky Isobe","Kimiya Masago","K. Hoshiba","Asuka Iwashita","Keiko Fukuyama","Hizuki Misono","Mikio Menjo","Kazuo Yazawa","Jungo Suzuki","Hisao Nakamura","Hikaru Koike","Katsura Tabata","Ken Ikuji","CR CG gangs","K. Hoshiba","Kyoko Koizumi","Zu-Ka","Yasuki Watanabe","Yusuke Shimada","Tomokazu","K. Utsunomiya","T. Honda","Mt. TBT","M. Akiyama","Atsuko Ujiie","Yosuke Da Silva","Big Mama\" Tagawa\"","Ken Ikugi","Tokumi Akabane","MikiTanaka","K Hoshiba","Emi Miwa","Midroi Harada","Tomoko Wakai","Shinji Higuchi","Shinji Higuchi + Sachiko Eba","Shinji Higuchi + Noriko Takaya","Wataru Kawahara/Direc. Shinji Higuchi","Kent Kanetsuna/Direc. Shinji Higuchi","Shinji Higuchi + Sachiko Eba/樋口真嗣 + 江場左知子","Shinji Higuchi + Sachiko Eba/樋口真嗣+江場左知子","Shinji Higuchi + Noriko Takaya/樋口真嗣+高屋法子","Imakuni?","Etsuya Hattori","Mana Ibe","Nobuyuki Fujimoto","Keiko Moritsugu","Framestore","MPC Film","Shibuzoh.","Yoshinobu Saito","kodama","Hasuno","chibi","Asako Ito","You Iribi","Eri Yamaki","DemizuPosuka","OOYAMA","PLANETA","Mina Nakai","miki kudo","Yumi","Anesaki Dynamic","Hiroyuki Yamamoto","Hideki Ishikawa","nagimiso","0313","sadaji","SATOSHI NAKAI","Sekio","otumami","PLANETA Igarashi","tetsuya koizumi","Misa Tsutsui","sowsow","kanahei","HYOGONOSUKE","Studio Bora Inc.","aky CG Works","so-taro","AKIRA EGAWA","PLANETA Tsuji","KEIICHIRO ITO","ryoma uratsuka","ConceptLab","PLANETA Otani","Pani Kobayashi","Ryuta Fuse","inose yukie","Ken Sugimori Yusuke Ohmura","Sakiko Maeda","Junsei Kuninobu","Uta","Noriko Uono","Nabana Kensaku","Ryota Murayama","Tomomi Kaneko","Misaki Hashimoto","Fumie Kittaka","Huang Tzu En","Avec Yoko","take","Emi Ando","2017 Pikachu Project","Taira Akitsu","Megumi Higuchi","Kazuma Koda","Jumpei Akasaka","Hasegawa Saki","GAME FREAK inc.","Dr.Ooyama","Rya Ueda","Nagimiso","Saki Hayashiro"] \ No newline at end of file +["Ken Sugimori","Keiji Kinebuchi","Mitsuhiro Arita","Tomoaki Imakuni","Kagemaru Himeno","Miki Tanaka","Shin-ichi Yoshida","Takumi Akabane","Sumiyoshi Kizuki","Atsuko Nishida","Christopher Rush","Benimaru Itoh","Hiromichi Sugiyama","Kunihiko Yuyama","Toshinao Aoki","Gakuji Nomoto","Tomokazu Komiya","Hironobu Yoshida","Hideki Kazama","Craig Turvey","Hajime Kusajima","Ayaka Yoshida","5ban Graphics","Daisuke Iwamoto","Kouki Saitou","Naoyo Kimura","match","Shin Nagasawa","Masakazu Fukuda","Naoki Saito","sui","MAHOU","Midori Harada","Kent Kanetsuna","Ryo Ueda","Yuri Umemura","Noriko Hotta","Eske Yoshinob","Akira Komayama","Satoshi Shirai","kawayoo","Kyoko Umemoto","Shigenori Negishi","Suwama Chiaki","Mizue","HiRON","Yusuke Ohmura","kirisAki","Toyste Beach","Sanosuke Sakuma","Megumi Mizutani","TOKIYA","Kanako Eo","Aya Kusube","Shizurow","hatachu","Sachiko Adachi","Yukiko Baba","Hitoshi Ariga","Hiroki Asanuma","Yuka Morii","James Turner","Reiko Tanoue","Maiko Fujiwara","Tomohiro Kitakaze","Hideaki Hakozaki","BERUBURI","Kouji Tajima","Illus.&Direc.The Pokémon Company Art Team","Takashi Yamaguchi","Wataru Kawahara","Nakaoka","Mikiko Takeda","Hideyuki Nakajima","Shin-ichi Yoshikawa","Kai Ishikawa","Hiroaki Ito","Masahiko Ishii","Takabon","Kazuyuki Kano","Daisuke Ito","Emi Yoshida","Kenkichi Toyama","Hiroki Fuchino","Lee HyunJung","Satoshi Ohta","Takao Unno","Motofumi Fujiwara","Saya Tsuruta","Saya Tsuruta","Kazuaki Aihara","Ryota Saito","Makoto Imai","Yusuke Ishikawa","Masako Yamashita","Sachi Matoba","Yuichi Sawayama","Aimi Tomita","\"Big Mama\" Tagawa","Milky Isobe","Kimiya Masago","K. Hoshiba","Asuka Iwashita","Keiko Fukuyama","Hizuki Misono","Mikio Menjo","Kazuo Yazawa","Jungo Suzuki","Hisao Nakamura","Hikaru Koike","Katsura Tabata","Ken Ikuji","CR CG gangs","K. Hoshiba","Kyoko Koizumi","Zu-Ka","Yasuki Watanabe","Yusuke Shimada","Tomokazu","K. Utsunomiya","T. Honda","Mt. TBT","M. Akiyama","Atsuko Ujiie","Yosuke Da Silva","Big Mama\" Tagawa\"","Ken Ikugi","Tokumi Akabane","MikiTanaka","K Hoshiba","Emi Miwa","Midroi Harada","Tomoko Wakai","Shinji Higuchi","Shinji Higuchi + Sachiko Eba","Shinji Higuchi + Noriko Takaya","Wataru Kawahara/Direc. Shinji Higuchi","Kent Kanetsuna/Direc. Shinji Higuchi","Shinji Higuchi + Sachiko Eba/樋口真嗣 + 江場左知子","Shinji Higuchi + Sachiko Eba/樋口真嗣+江場左知子","Shinji Higuchi + Noriko Takaya/樋口真嗣+高屋法子","Imakuni?","Etsuya Hattori","Mana Ibe","Nobuyuki Fujimoto","Keiko Moritsugu","Framestore","MPC Film","Shibuzoh.","Yoshinobu Saito","kodama","Hasuno","chibi","Asako Ito","You Iribi","Eri Yamaki","DemizuPosuka","OOYAMA","PLANETA","Mina Nakai","miki kudo","Yumi","Anesaki Dynamic","Hiroyuki Yamamoto","Hideki Ishikawa","nagimiso","0313","sadaji","SATOSHI NAKAI","Sekio","otumami","PLANETA Igarashi","tetsuya koizumi","Misa Tsutsui","sowsow","kanahei","HYOGONOSUKE","Studio Bora Inc.","aky CG Works","so-taro","AKIRA EGAWA","PLANETA Tsuji","KEIICHIRO ITO","ryoma uratsuka","ConceptLab","PLANETA Otani","Pani Kobayashi","Ryuta Fuse","inose yukie","Ken Sugimori Yusuke Ohmura","Sakiko Maeda","Junsei Kuninobu","Uta","Noriko Uono","Nabana Kensaku","Ryota Murayama","Tomomi Kaneko","Misaki Hashimoto","Fumie Kittaka","Huang Tzu En","Avec Yoko","take","Emi Ando","2017 Pikachu Project","Taira Akitsu","Megumi Higuchi","Kazuma Koda","Jumpei Akasaka","Hasegawa Saki","GAME FREAK inc.","Dr.Ooyama","Rya Ueda","Nagimiso","Saki Hayashiro","PLANETA Mochizuki","NC Empire","Tika Matsuno"] \ No newline at end of file diff --git a/package.json b/package.json index 43c91d2..0a1680a 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,20 @@ "scripts": { "db:compile": "cd db && tsc --project tsconfig.json", "db:test": "cd db && tsc --noEmit --project tsconfig.json", - "gen": "yarn ts-node all.ts" + "gen": "ts-node --transpile-only all.ts" }, "dependencies": { + "@dzeio/logger": "^2.0.0-alpha.0", + "@dzeio/object-util": "^1.0.4", "@tcgdex/sdk": "^1.5.0", "glob": "^7.1.6", + "node-fetch": "^2.6.0", "ssh2-sftp-client": "^5.1.1" }, "devDependencies": { "@types/glob": "^7.1.1", "@types/node": "^13.7.4", + "@types/node-fetch": "^2.5.7", "ts-node": "^8.6.2", "typescript": "^3.7.5" } diff --git a/yarn.lock b/yarn.lock index e216063..9576e46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,24 +2,30 @@ # yarn lockfile v1 -"@tcgdex/sdk@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@tcgdex/sdk/-/sdk-1.5.0.tgz#892b5aa29ac55c399d5f8130615fc3898f5f76e6" - integrity sha512-oPWYQdV26eIywM1JRannDuE2mgn49eRjRfqw5sSi0jZMGFWwR7ZindUeSbUyghno2m4YxpgfJgAaxeyMhnYtkg== +"@dzeio/logger@^2.0.0-alpha.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@dzeio/logger/-/logger-2.0.2.tgz#a9d58fba6c0b5e181c3247a66d2e908936f52866" + integrity sha512-P5N7g9xIxyhr5AlW+PHKK5h0e7gF9Ha9hJQOSs02yssf09dCrRN6xd7BUrbLLemyLvy4wnQ9+IpvOR8KWB3ltA== dependencies: - isomorphic-unfetch "^3.0.0" + ansi-colors "^4.1.1" -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@dzeio/object-util@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@dzeio/object-util/-/object-util-1.0.4.tgz#1cd8855e9437ec5b94c079421e74e913acec9847" + integrity sha512-poLW0k3BB345lQDqtaMiBpIHcglg4HCcg8FblAGZ0n/M0cOaeiq1kwRm2Z/6rIplelntWUrPqQRAUcr6DnAONQ== + +"@tcgdex/sdk@^1.5.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@tcgdex/sdk/-/sdk-1.7.0.tgz#66c3891cbc044a7b9ab20c4a0b5cb1a5d3803fc6" + integrity sha512-LXswGVzVrx6enO71NhEhjiz1dqig7lC1AFVep7xt7HySGrNt/vTWPRjsgmKiHFivVoz2cLhULUacQL64A+5mBw== + dependencies: + isomorphic-unfetch "^3.1.0" "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" @@ -28,10 +34,28 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@^13.7.4": - version "13.13.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" - integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== +"@types/node-fetch@^2.5.7": + version "2.5.8" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.8.tgz#e199c835d234c7eb0846f6618012e558544ee2fb" + integrity sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== + +"@types/node@^13.7.4": + version "13.13.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.40.tgz#f655ef327362cc83912f2e69336ddc62a24a9f88" + integrity sha512-eKaRo87lu1yAXrzEJl0zcJxfUMDT5/mZalFyOkT44rnQps41eS2pfWzbaulSPpQLFNy29bFqn+Y5lOTL8ATlEQ== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== arg@^4.1.0: version "4.1.3" @@ -45,6 +69,11 @@ asn1@~0.2.0: dependencies: safer-buffer "~2.1.0" +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -70,6 +99,13 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -85,11 +121,25 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -120,19 +170,31 @@ inherits@2, inherits@^2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -isomorphic-unfetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.0.0.tgz#de6d80abde487b17de2c400a7ef9e5ecc2efb362" - integrity sha512-V0tmJSYfkKokZ5mgl0cmfQMTb7MLHsBMngTkbLY0eXvKqiVRRoZP04Ly+KhKrJfKtzC9E6Pp15Jo+bwh7Vi2XQ== +isomorphic-unfetch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== dependencies: - node-fetch "^2.2.0" - unfetch "^4.0.0" + node-fetch "^2.6.1" + unfetch "^4.2.0" make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -140,10 +202,10 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -node-fetch@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^2.6.0, node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== once@^1.3.0: version "1.4.0" @@ -172,9 +234,9 @@ retry@^0.12.0: integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safer-buffer@~2.1.0: version "2.1.2" @@ -195,9 +257,9 @@ source-map@^0.6.0: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== ssh2-sftp-client@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/ssh2-sftp-client/-/ssh2-sftp-client-5.1.2.tgz#8138f050c5933bbeb2f916f2a1513f124ad61116" - integrity sha512-pKmoDdxa4jwjMr+eZTm2IP8iYxuyM/O74rbz54t0UcETnRNmkLnv3NmKiFK5/hstacyO3WS4Tu8fRBGVGY0UAQ== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ssh2-sftp-client/-/ssh2-sftp-client-5.3.2.tgz#a7f4383b96468fde3ee8fe1b7f1db352c6160946" + integrity sha512-YD38WQKleuapAZyvqRJq7PN8pC6GnzWdWcnZN4vsPXMHtZpjcg/ipBcFGtDsC5rkHp5qXgRu56WPcDUkM87FiA== dependencies: concat-stream "^2.0.0" retry "^0.12.0" @@ -232,9 +294,9 @@ string_decoder@^1.1.1: safe-buffer "~5.2.0" ts-node@^8.6.2: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.0.tgz#d7bf7272dcbecd3a2aa18bd0b96c7d2f270c15d4" - integrity sha512-rwkXfOs9zmoHrV8xE++dmNd6ZIS+nmHHCxcV53ekGJrxFLMbp+pizpPS07ARvhwneCIECPppOwbZHvw9sQtU4w== + version "8.10.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" + integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== dependencies: arg "^4.1.0" diff "^4.0.1" @@ -253,14 +315,14 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.7.5: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== -unfetch@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" - integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== util-deprecate@^1.0.1: version "1.0.2"