├── .github ├── auto-merge-bot.config.yml ├── pull_request_template.md └── workflows │ └── build.yml ├── .gitignore ├── README.md ├── assets ├── mastodon.png ├── misskey.png ├── misskeyv11.png ├── pixelfed.png └── pleroma.png ├── index.ts ├── interfaces ├── config.ts └── json5.ts ├── output └── cache.json ├── package.json ├── resources ├── 0 │ ├── 0wo.ooo │ │ └── data.json5 │ └── 2m.cutls.com │ │ └── data.json5 ├── a │ ├── a.lufimianet.jp │ │ └── data.json5 │ ├── abyss.fun │ │ └── data.json5 │ ├── achi.masto.host │ │ └── data.json5 │ ├── agora.echelon.pl │ │ └── data.json5 │ ├── akkoma.eniehack.net │ │ └── data.json5 │ ├── alcatir.com │ │ └── data.json5 │ ├── amefur.asia │ │ └── data.json5 │ ├── ap.ketsuben.red │ │ └── data.json5 │ ├── ap.mcphail.uk │ │ └── data.json5 │ ├── arktos.social │ │ └── data.json5 │ ├── artsandculture.social │ │ └── data.json5 │ ├── astoundingteam.com │ │ └── data.json5 │ └── astronomy.city │ │ └── data.json5 ├── b │ ├── bahn.social │ │ └── data.json5 │ ├── bangdream.tokyo │ │ └── data.json5 │ ├── baraag.net │ │ └── data.json5 │ ├── beef.moe │ │ └── data.json5 │ ├── beige.party │ │ └── data.json5 │ ├── best-friends.chat │ │ └── data.json5 │ ├── birb.site │ │ └── data.json5 │ ├── birds.garden │ │ └── data.json5 │ ├── blackrock.city │ │ └── data.json5 │ ├── blueadair.net │ │ └── data.json5 │ ├── boing.world │ │ └── data.json5 │ ├── bol.social │ │ └── data.json5 │ ├── bourbonbyte.com │ │ └── data.json5 │ ├── broken.graphics │ │ └── data.json5 │ ├── buicha.social │ │ └── data.json5 │ ├── buildthatwallandmakeamericagreatagain.trumpislovetrumpis.life │ │ └── data.json5 │ └── bullcity.space │ │ └── data.json5 ├── c │ ├── c.wtf │ │ └── data.json5 │ ├── catgirl.life │ │ └── data.json5 │ ├── chaosphere.hostdon.jp │ │ └── data.json5 │ ├── chillout.chat │ │ └── data.json5 │ ├── chin-co-ne.co │ │ └── data.json5 │ ├── cirno9.mynetgear.com │ │ └── data.json5 │ ├── club.elephantus.moe │ │ └── data.json5 │ ├── compostintraining.club │ │ └── data.json5 │ ├── conesphere.social │ │ └── data.json5 │ ├── creators.social │ │ └── data.json5 │ └── cybre.space │ │ └── data.json5 ├── d │ ├── daedal.io │ │ └── data.json5 │ ├── dain.moe │ │ └── data.json5 │ ├── darui.work │ │ └── data.json5 │ ├── dewp.space │ │ └── data.json5 │ ├── dhbenihana.jp │ │ └── data.json5 │ ├── dogno.se │ │ └── data.json5 │ ├── don.mamemo.online │ │ └── data.json5 │ ├── don.nzws.me │ │ └── data.json5 │ └── dragn.gay │ │ └── data.json5 ├── e │ ├── ebf.social │ │ └── data.json5 │ ├── edge.taruntarun.net │ │ └── data.json5 │ ├── elb.cloud │ │ └── data.json5 │ ├── electro.social │ │ └── data.json5 │ ├── empty.cafe │ │ └── data.json5 │ ├── epic.meme.moe │ │ └── data.json5 │ ├── ertona.net │ │ └── data.json5 │ └── eworld.social │ │ └── data.json5 ├── f │ ├── f.reun.de │ │ └── data.json5 │ ├── federate.blogpocket.com │ │ └── data.json5 │ ├── federated.glacier.dog │ │ └── data.json5 │ ├── fedi.cpluspatch.com │ │ └── data.json5 │ ├── fedi.criminallycute.fi │ │ └── data.json5 │ ├── fedi.fullstuck.net │ │ └── data.json5 │ ├── fedi.xamk.fi │ │ └── data.json5 │ ├── fedibird.com │ │ └── data.json5 │ ├── fediverse.keithzg.ca │ │ └── data.json5 │ ├── felesitas.cloud │ │ └── data.json5 │ ├── flanintheface.com │ │ └── data.json5 │ ├── freesocial.co │ │ └── data.json5 │ ├── furfag.de │ │ └── data.json5 │ └── furrylife.online │ │ └── data.json5 ├── g │ ├── gamelinks007.net │ │ └── data.json5 │ ├── gardenstate.social │ │ └── data.json5 │ ├── geeks.cafe │ │ └── data.json5 │ ├── geiger.ee │ │ └── data.json5 │ ├── gensokyo.town │ │ └── data.json5 │ ├── gingadon.com │ │ └── data.json5 │ ├── gn-tronics.dev │ │ └── data.json5 │ ├── goblin.camp │ │ └── data.json5 │ └── gochisou.dev │ │ └── data.json5 ├── h │ ├── h.kokuda.org │ │ └── data.json5 │ ├── hakorena.hostdon.ne.jp │ │ └── data.json5 │ ├── heidel.berg.social │ │ └── data.json5 │ ├── heislandmine.work │ │ └── data.json5 │ ├── hell.social │ │ └── data.json5 │ ├── high.cat │ │ └── data.json5 │ ├── hikoukidon.jp │ │ └── data.json5 │ ├── himk.am │ │ └── data.json5 │ ├── homoo.social │ │ └── data.json5 │ └── humble.cafe │ │ └── data.json5 ├── i │ ├── idic.social │ │ └── data.json5 │ ├── ihatebeinga.live │ │ └── data.json5 │ ├── ilja.space │ │ └── data.json5 │ ├── im-in.space │ │ └── data.json5 │ ├── imastodon.net │ │ └── data.json5 │ ├── imastodon.org │ │ └── data.json5 │ ├── inari.opencocon.org │ │ └── data.json5 │ ├── indiepocalypse.social │ │ └── data.json5 │ ├── ingwie.me │ │ └── data.json5 │ ├── is-a.horse │ │ └── data.json5 │ ├── itabashi.0j0.jp │ │ └── data.json5 │ └── iwatedon.net │ │ └── data.json5 ├── j │ ├── jabberwocky.moe │ │ └── data.json5 │ ├── jmm.kr │ │ └── data.json5 │ └── jvpiter.net │ │ └── data.json5 ├── k │ ├── k-shiigi-136.masto.host │ │ └── data.json5 │ ├── kancolle.social │ │ └── data.json5 │ ├── kanina.be │ │ └── data.json5 │ ├── kapuverse.net │ │ └── data.json5 │ ├── kcl.academy │ │ └── data.json5 │ ├── kemoner-don.tokyo │ │ └── data.json5 │ ├── kirishima.cloud │ │ └── data.json5 │ ├── krefeld.life │ │ └── data.json5 │ ├── kurosawa.moe │ │ └── data.json5 │ └── kys.moe │ │ └── data.json5 ├── l │ ├── lawfedi.blue │ │ └── data.json5 │ ├── layer8.space │ │ └── data.json5 │ ├── leroma.shrieker.net │ │ └── data.json5 │ ├── liberdon.com │ │ └── data.json5 │ ├── line.yamanote.tokyo.jp │ │ └── data.json5 │ ├── lonestar.chat │ │ └── data.json5 │ ├── loves.reisen │ │ └── data.json5 │ └── lumpen.work │ │ └── data.json5 ├── m │ ├── m.eula.dev │ │ └── data.json5 │ ├── ma.fono.jp │ │ └── data.json5 │ ├── makervine.net │ │ └── data.json5 │ ├── mas.to │ │ └── data.json5 │ ├── masse.xn--qubec-csa.tk │ │ └── data.json5 │ ├── mastadon.littlebonsai.co.uk │ │ └── data.json5 │ ├── masto.brightfur.net │ │ └── data.json5 │ ├── masto.evelynyap.com │ │ └── data.json5 │ ├── masto.ezhevita.dev │ │ └── data.json5 │ ├── mastodon.ar.al │ │ └── data.json5 │ ├── mastodon.bachgau.social │ │ └── data.json5 │ ├── mastodon.bgzashtita.es │ │ └── data.json5 │ ├── mastodon.com.pl │ │ └── data.json5 │ ├── mastodon.juggler.jp │ │ └── data.json5 │ ├── mastodon.lithium03.info │ │ └── data.json5 │ ├── mastodon.mauve.moe │ │ └── data.json5 │ ├── mastodon.murkworks.net │ │ └── data.json5 │ ├── mastodon.nsnw.ca │ │ └── data.json5 │ ├── mastodon.potproject.net │ │ └── data.json5 │ ├── mastodon.simulakrum.vpndns.org │ │ └── data.json5 │ ├── mastodon.slightlycyberpunk.com │ │ └── data.json5 │ ├── mastodon.suinot.org │ │ └── data.json5 │ ├── mastodon.tiennot.net │ │ └── data.json5 │ ├── mastodon.tojo.tokyo │ │ └── data.json5 │ ├── mastodon.vda-group.de │ │ └── data.json5 │ ├── mastodon.xn--t8jzbl7g.jp │ │ └── data.json5 │ ├── mastodon.zunda.ninja │ │ └── data.json5 │ ├── mdn.hinaloe.net │ │ └── data.json5 │ ├── meron.io │ │ └── data.json5 │ ├── mewl.me │ │ └── data.json5 │ ├── mi.tkw.fm │ │ └── data.json5 │ ├── micah.social │ │ └── data.json5 │ ├── microblog.at │ │ └── data.json5 │ ├── misaka.chat │ │ └── data.json5 │ ├── misaka.social │ │ └── data.json5 │ ├── misky.rikunagiweb.jp │ │ └── data.json5 │ ├── misskey.anemoneya.me │ │ └── data.json5 │ ├── misskey.chiffon-sepxipl.com │ │ └── data.json5 │ ├── misskey.goochiegoo.net │ │ └── data.json5 │ ├── misskey.id │ │ └── data.json5 │ ├── misskey.io │ │ └── data.json5 │ ├── misskey.m544.net │ │ └── data.json5 │ ├── misskey.nokotaro.com │ │ └── data.json5 │ ├── misskey.omhnc.net │ │ └── data.json5 │ ├── misskey.ruste.red │ │ └── data.json5 │ ├── misskey.tlfoxhuman.net │ │ └── data.json5 │ ├── misskey.usuyuki.net │ │ └── data.json5 │ ├── misskey.vocalodon.net │ │ └── data.json5 │ ├── mk.aqr.af │ │ └── data.json5 │ ├── mk.outv.im │ │ └── data.json5 │ ├── mk.udongein.reisen │ │ └── data.json5 │ ├── momo.mame.moe │ │ └── data.json5 │ ├── moosetodon.com │ │ └── data.json5 │ ├── msk.minetaro12.com │ │ └── data.json5 │ ├── msky.tokyo │ │ └── data.json5 │ ├── mst.mineown.de │ │ └── data.json5 │ ├── mstdn.alicia.ne.jp │ │ └── data.json5 │ ├── mstdn.anqou.net │ │ └── data.json5 │ ├── mstdn.barippi.com │ │ └── data.json5 │ ├── mstdn.ht164.jp │ │ └── data.json5 │ ├── mstdn.maud.io │ │ └── data.json5 │ ├── mstdn.rinsuki.net │ │ └── data.json5 │ ├── mstdn.unasuke.com │ │ └── data.json5 │ ├── mstdn.wildtree.jp │ │ └── data.json5 │ ├── mtd.usagi-gumi.jp │ │ └── data.json5 │ ├── mustardon.tokyo │ │ └── data.json5 │ ├── my0.net │ │ └── data.json5 │ ├── myfedi.de │ │ └── data.json5 │ ├── myhre.wtf │ │ └── data.json5 │ └── mzn-potatochips.me │ │ └── data.json5 ├── n │ ├── nerd.town │ │ └── data.json5 │ ├── nitiasa.com │ │ └── data.json5 │ ├── nmnm.na2na.dev │ │ └── data.json5 │ ├── nonbiridon.hostdon.ne.jp │ │ └── data.json5 │ ├── norcal.social │ │ └── data.json5 │ ├── nsfw.wnymathguy.com │ │ └── data.json5 │ ├── nya.lemonade.moe │ │ └── data.json5 │ └── nya.social │ │ └── data.json5 ├── o │ ├── odakyu.app │ │ └── data.json5 │ ├── ofuton.io │ │ └── data.json5 │ ├── omoro.info │ │ └── data.json5 │ ├── oransns.com │ │ └── data.json5 │ ├── orbitalstation.one │ │ └── data.json5 │ └── ostatus.ikeji.ma │ │ └── data.json5 ├── p │ ├── p.ashiato45.net │ │ └── data.json5 │ ├── p1.a9z.dev │ │ └── data.json5 │ ├── pars.ee │ │ └── data.json5 │ ├── pasokey.net │ │ └── data.json5 │ ├── pawoo.net │ │ └── data.json5 │ ├── piano.masto.host │ │ └── data.json5 │ ├── piggo.space │ │ └── data.json5 │ ├── pixelfed.fftlt.net │ │ └── data.json5 │ ├── pixelfed.sdf.org │ │ └── data.json5 │ ├── pixey.org │ │ └── data.json5 │ ├── pl.8mitsu.net │ │ └── data.json5 │ ├── pl.catboyindustries.co │ │ └── data.json5 │ ├── pl.im-in.space │ │ └── data.json5 │ ├── pl.kpherox.dev │ │ └── data.json5 │ ├── pl.thj.no │ │ └── data.json5 │ ├── pleroma.elementality.org │ │ └── data.json5 │ ├── pleroma.gnusocial.club │ │ └── data.json5 │ ├── pleroma.in.th │ │ └── data.json5 │ ├── pleroma.io │ │ └── data.json5 │ ├── pleroma.les-requin.net │ │ └── data.json5 │ ├── pleroma.levome-dol.com │ │ └── data.json5 │ ├── pleroma.shunderdo.me │ │ └── data.json5 │ ├── pleroma.wakuwakup.net │ │ └── data.json5 │ ├── plopchute.com │ │ └── data.json5 │ ├── plr.ph3j.com │ │ └── data.json5 │ ├── plrm.polyohm.net │ │ └── data.json5 │ ├── plushies.social │ │ └── data.json5 │ ├── poly.cybre.city │ │ └── data.json5 │ ├── popon.pptdn.jp │ │ └── data.json5 │ ├── pr0mised.life │ │ └── data.json5 │ ├── psimon.world │ │ └── data.json5 │ └── public.mitra.social │ │ └── data.json5 ├── q │ ├── qdon.space │ │ └── data.json5 │ └── queer.dev │ │ └── data.json5 ├── r │ ├── rairarai.hostdon.ne.jp │ │ └── data.json5 │ ├── ramen.iu0.win │ │ └── data.json5 │ ├── rap.social │ │ └── data.json5 │ ├── rats-at.work │ │ └── data.json5 │ ├── real-escape.jp │ │ └── data.json5 │ ├── respublicae.eu │ │ └── data.json5 │ ├── rettiwtkcuf.social │ │ └── data.json5 │ ├── rivendell.cafe │ │ └── data.json5 │ ├── rogersfam.co │ │ └── data.json5 │ ├── rondoalive.xyz │ │ └── data.json5 │ └── rpvortex.online │ │ └── data.json5 ├── s │ ├── s-shinjuku-rail.hostdon.ne.jp │ │ └── data.json5 │ ├── s.neguse.net │ │ └── data.json5 │ ├── saltwatercity.org │ │ └── data.json5 │ ├── sandbox.skoji.jp │ │ └── data.json5 │ ├── schleuss.online │ │ └── data.json5 │ ├── seizemeans.com │ │ └── data.json5 │ ├── share.elouworld.org │ │ └── data.json5 │ ├── shortstackran.ch │ │ └── data.json5 │ ├── sironi.tk │ │ └── data.json5 │ ├── slashine.onl │ │ └── data.json5 │ ├── smores.town │ │ └── data.json5 │ ├── sneak.berlin │ │ └── data.json5 │ ├── snowdon.jp │ │ └── data.json5 │ ├── sns.kianting.info │ │ └── data.json5 │ ├── soc.citizen4.eu │ │ └── data.json5 │ ├── social.0ko.me │ │ └── data.json5 │ ├── social.4score7pongs.com │ │ └── data.json5 │ ├── social.avery.cafe │ │ └── data.json5 │ ├── social.axbom.com │ │ └── data.json5 │ ├── social.binarydad.com │ │ └── data.json5 │ ├── social.cosnomi.com │ │ └── data.json5 │ ├── social.cowcornerfeeds.co.in │ │ └── data.json5 │ ├── social.densco.net │ │ └── data.json5 │ ├── social.diskseven.com │ │ └── data.json5 │ ├── social.doma.dev │ │ └── data.json5 │ ├── social.eden.one │ │ └── data.json5 │ ├── social.eyluldogruel.com │ │ └── data.json5 │ ├── social.fym.moe │ │ └── data.json5 │ ├── social.gemnoc.ca │ │ └── data.json5 │ ├── social.gerotintin.com │ │ └── data.json5 │ ├── social.here.blue │ │ └── data.json5 │ ├── social.hoga.fr │ │ └── data.json5 │ ├── social.imirhil.fr │ │ └── data.json5 │ ├── social.krylc.cloud │ │ └── data.json5 │ ├── social.lansky.name │ │ └── data.json5 │ ├── social.malacology.net │ │ └── data.json5 │ ├── social.metamuffin.org │ │ └── data.json5 │ ├── social.mofu2charger-listenradio.net │ │ └── data.json5 │ ├── social.mythic-beasts.com │ │ └── data.json5 │ ├── social.nahuelwexd.com │ │ └── data.json5 │ ├── social.opennerds.org │ │ └── data.json5 │ ├── social.pi.vaduzz.de │ │ └── data.json5 │ ├── social.pmj.rocks │ │ └── data.json5 │ ├── social.retrodon.net │ │ └── data.json5 │ ├── social.shadowkat.net │ │ └── data.json5 │ ├── social.skewed.de │ │ └── data.json5 │ ├── social.softmetz.de │ │ └── data.json5 │ ├── social.teci.world │ │ └── data.json5 │ ├── social.thisisjoes.site │ │ └── data.json5 │ ├── social.tryptophonic.com │ │ └── data.json5 │ ├── social.typica.us │ │ └── data.json5 │ ├── social.undeadnetwork.de │ │ └── data.json5 │ ├── social.vasilis.nl │ │ └── data.json5 │ ├── social.vcfed.org │ │ └── data.json5 │ ├── social.wildeboer.net │ │ └── data.json5 │ ├── social.wiuwiu.de │ │ └── data.json5 │ ├── sphere.fx4.net │ │ └── data.json5 │ ├── st.mstdn.b-shock.org │ │ └── data.json5 │ ├── stellaria.network │ │ └── data.json5 │ ├── strangeobject.space │ │ └── data.json5 │ ├── strelizia.net │ │ └── data.json5 │ ├── sts.lqt.moe │ │ └── data.json5 │ ├── sukebeneko.com │ │ └── data.json5 │ ├── surfin.dog │ │ └── data.json5 │ └── syria.social │ │ └── data.json5 ├── t │ ├── t.aqn.jp │ │ └── data.json5 │ ├── taruntarun.net │ │ └── data.json5 │ ├── tchafia.be │ │ └── data.json5 │ ├── techforgood.social │ │ └── data.json5 │ ├── telescope.garden │ │ └── data.json5 │ ├── toot.blue │ │ └── data.json5 │ ├── toot.cat │ │ └── data.json5 │ ├── toot.jasonscheirer.com │ │ └── data.json5 │ ├── toot.morikka.me │ │ └── data.json5 │ ├── toot.thedoodleproject.net │ │ └── data.json5 │ ├── tootsmygoots.com │ │ └── data.json5 │ ├── tragically.social │ │ └── data.json5 │ ├── tweetrex.co.uk │ │ └── data.json5 │ ├── twipped.social │ │ └── data.json5 │ └── typo.social │ │ └── data.json5 ├── u │ ├── ukadon.shillest.net │ │ └── data.json5 │ ├── undefined.social │ │ └── data.json5 │ ├── under-bank.blue │ │ └── data.json5 │ ├── unkomaker.hostdon.ne.jp │ │ └── data.json5 │ ├── upallnight.minnix.dev │ │ └── data.json5 │ └── usasaki.net │ │ └── data.json5 ├── v │ ├── va-11-hall-a.cafe │ │ └── data.json5 │ ├── veah.cocoa.moe │ │ └── data.json5 │ ├── vivaldi.net │ │ └── data.json5 │ └── vocalodon.net │ │ └── data.json5 ├── w │ ├── welldn.net │ │ └── data.json5 │ ├── wiesbaden.social │ │ └── data.json5 │ └── www.nekotodon.com │ │ └── data.json5 ├── x │ ├── x0f.org │ │ └── data.json5 │ ├── xn--p1abe3d.xn--80asehdb │ │ └── data.json5 │ └── xx0r.eu │ │ └── data.json5 ├── y │ ├── yakumo.foundation │ │ └── data.json5 │ └── youthweb.social │ │ └── data.json5 └── z │ └── zusammenkunft.net │ └── data.json5 ├── src ├── addPeers.ts ├── cmd │ └── delete.ts ├── create.ts ├── createCss.ts └── detector.ts ├── static ├── md.png ├── mi.png ├── ml.png ├── pf.png └── pl.png ├── template ├── mastodon.sticker └── sticker.sticker ├── tsconfig.json └── yarn.lock /.github/auto-merge-bot.config.yml: -------------------------------------------------------------------------------- 1 | labels: 2 | - verified -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | **⚠️自動マージシステムは故障中です。以下のルールは守らなくても結構です。手動なのでお時間をいただきますが、`Cutls@2m.cutls.com`にリプを飛ばすと早いです。** 2 | 3 | **PRのタイトルは自分のドメイン名だけにしてください** 4 | (例: cutls.com ) 5 | 6 | Mastodonの場合はモデレータ以上かどうかをAPIで判定するので、コメントにあるリンクを踏んでください。 7 | 8 | 他の実装の場合はcutlsが人力で判断するので、リンクは踏まなくて結構です。 -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build and uplaod 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | strategy: 14 | matrix: 15 | node-version: [14.x] 16 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 17 | 18 | steps: 19 | - uses: actions/checkout@v2 20 | - uses: actions/setup-node@v2 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | - run: yarn 24 | - run: yarn build 25 | - name: Deploy 26 | env: 27 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 28 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 29 | run: 30 | aws s3 cp --recursive --region ap-northeast-1 output s3://s.0px.io -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | output/data.json 3 | output/data.css 4 | yarn-error.log 5 | dist 6 | .DS_Store 7 | src/cmd/*.txt 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenSticker 2 | バックエンド 3 | 4 | Denoで書いた。 5 | 6 | デプロイ先: https://s.0px.io 7 | 8 | API 9 | 10 | * `/json`: json形式そのまま 11 | * `/mastodon`: Mastodon対応CSS 12 | * `/mastodon/peers?domain=domain.tld`: domain.tldの連合先だけにフィルタしたCSS(Mastodon用) 13 | 14 | # データを追加しよう 15 | 16 | PRでデータを追加・編集します。 17 | 18 | フォークします。 19 | 20 | あなたのインスタンスがdomain.tldなら… 21 | 22 | `resources/d/domain.tld/data.json5` 23 | ``` 24 | { 25 | //'mastodon'|'pleroma'|'misskey'|'misskeylegacy'|'pixelfed' 26 | type: 'mastodon', 27 | //指定しない(nullまたは省略)とドメイン名がそのまま使われます 28 | name: 'Cutls', 29 | //bgColorは指定しない(nullまたは省略)と上記`type`に合わせて設定されます 30 | bgColor: [ 31 | //Array of background-color from left to right 32 | '#fff' 33 | ], 34 | //fontColorは指定しない(nullまたは省略)と白(#fff) 35 | fontColor: '#000', 36 | //must https:// 37 | favicon: null 38 | //指定しない(nullまたは省略)とインスタンスのfaviconを取得します 39 | } 40 | ``` 41 | 42 | と書いてPRを送ってください。 PRはcreateするとテンプレートが現れるのでそれに従って送信してください。 43 | 44 | 頭文字(sub.domain.tldならs)のフォルダに入れます。 45 | 日本語ドメインならx(punycode)に、数字の場合は0につっこんでください。 46 | 47 | JSON5はJSONのスーパーセットなのでJSONを書いて拡張子だけ.json5にしてもらってもOKです。 48 | 49 | faviconを指定するときはCDNが通った外部URLを指定してください。用意できない場合はGitHubのdomain.tld内においてGitHub CDN等のURLを指定してください。 50 | 51 | `misskeylegacy`はv11やめいすきー(v10)等用に指定します。 52 | 53 | # ビルド 54 | 55 | `deno run --unstable --allow-read --allow-write --allow-net builderCli.ts` 56 | 57 | 初回はすべてのfaviconをチェックする都合上、かなり時間がかかります。2回目以降はoutput/cache.jsonにキャッシュされます。 58 | 59 | 公式キャッシュ(?)として、最新masterに準じたキャッシュを公開しています。 https://s.0px.io/workflow/cache.json 60 | 61 | `wget -P ./output https://s.0px.io/workflow/cache.json && deno run --unstable --allow-read --allow-write --allow-net builderCli.ts` 62 | で公式キャッシュを使ってビルドできます。 -------------------------------------------------------------------------------- /assets/mastodon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/assets/mastodon.png -------------------------------------------------------------------------------- /assets/misskey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/assets/misskey.png -------------------------------------------------------------------------------- /assets/misskeyv11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/assets/misskeyv11.png -------------------------------------------------------------------------------- /assets/pixelfed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/assets/pixelfed.png -------------------------------------------------------------------------------- /assets/pleroma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/assets/pleroma.png -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/index.ts -------------------------------------------------------------------------------- /interfaces/config.ts: -------------------------------------------------------------------------------- 1 | export interface IConfig { 2 | secret: string 3 | } 4 | export type IType = null | undefined | 'mastodon' | 'pleroma' | 'misskey' | 'misskeylegacy' | 'pixelfed' -------------------------------------------------------------------------------- /interfaces/json5.ts: -------------------------------------------------------------------------------- 1 | export interface ISticker { 2 | type: 'mastodon' | 'pleroma' | 'misskey' | 'misskeylegacy' | 'pixelfed' 3 | name?: string | null, 4 | bgColor?: string[] | null, 5 | fontColor?: string | null, 6 | favicon?: string | null 7 | } 8 | export interface IStickerOutPut { 9 | type: 'mastodon' | 'pleroma' | 'misskey' | 'misskeylegacy' | 'pixelfed' 10 | name: string | null, 11 | bgColor?: string[] | null, 12 | fontColor?: string | null, 13 | favicon: string, 14 | withoutCDN: string, 15 | domain: string, 16 | isDefault: boolean 17 | } 18 | interface IColor { 19 | bgColor: string[], 20 | fontColor: string 21 | } 22 | interface IDefault { 23 | mastodon: IColor 24 | pleroma: IColor 25 | misskey: IColor 26 | misskeylegacy: IColor 27 | pixelfed: IColor 28 | } 29 | export interface IDataJson { 30 | updated: string 31 | default: IDefault 32 | data: IStickerOutPut[] 33 | } 34 | export interface IDetector { 35 | success: boolean 36 | difference: number 37 | type: "mastodon" | "pleroma" | "misskey" | "misskeylegacy" | "pixelfed" 38 | isDefault: boolean 39 | url: string 40 | } -------------------------------------------------------------------------------- /output/cache.json: -------------------------------------------------------------------------------- 1 | {"a.lufimianet.jp":"https://a.lufimianet.jp/favicon.png","abyss.fun":"https://s.0px.io/a/md.png","achi.masto.host":"https://s.0px.io/a/md.png","agora.echelon.pl":"https://agora.echelon.pl/favicon.png","akkoma.eniehack.net":"https://akkoma.eniehack.net/favicon.png","alcatir.com":"https://alcatir.com/favicon.png","amefur.asia":"https://s.0px.io/a/md.png","ap.ketsuben.red":"https://s.0px.io/a/md.png","ap.mcphail.uk":"https://s.0px.io/a/md.png","arktos.social":"https://s.0px.io/a/md.png","artsandculture.social":"https://s.0px.io/a/md.png","astronomy.city":"https://s.0px.io/a/md.png","bahn.social":"https://bahn.social/favicon.ico","bangdream.tokyo":"https://s.0px.io/a/md.png","baraag.net":"https://s.0px.io/a/md.png","beef.moe":"https://s.0px.io/a/md.png","beige.party":"https://s.0px.io/a/md.png","best-friends.chat":"https://s.0px.io/a/md.png","birb.site":"https://s.0px.io/a/md.png","birds.garden":"https://birds.garden/favicon.png","blackrock.city":"https://s.0px.io/a/md.png","blueadair.net":"https://s.0px.io/a/md.png","boing.world":"https://s.0px.io/a/md.png","bol.social":"https://s.0px.io/a/md.png","bourbonbyte.com":"https://bourbonbyte.com/wp-content/uploads/2023/02/cropped-1f943-32x32.png","broken.graphics":"https://s.0px.io/a/md.png","buicha.social":"https://media.buicha.social/files/8027e004-b4b8-4573-90cd-b156b2dcb6bb.png","buildthatwallandmakeamericagreatagain.trumpislovetrumpis.life":"https://buildthatwallandmakeamericagreatagain.trumpislovetrumpis.life/favicon.png","bullcity.space":"https://s.0px.io/a/md.png","c.wtf":"https://c.wtf/favicon.png","catgirl.life":"https://catgirl.life/favicon.ico","chaosphere.hostdon.jp":"https://s.0px.io/a/md.png","chillout.chat":"https://s.0px.io/a/md.png","chin-co-ne.co":"https://s.0px.io/a/md.png","cirno9.mynetgear.com":"https://s.0px.io/a/md.png","club.elephantus.moe":"https://club.elephantus.moe/favicon.png","conesphere.social":"https://s.0px.io/a/md.png","creators.social":"https://s.0px.io/a/md.png","cybre.space":"https://cybre.space/favicon.ico","daedal.io":"https://s.0px.io/a/md.png","dain.moe":"https://img.sedoparking.com/templates/logos/sedo_logo.png","darui.work":"https://s.0px.io/a/md.png","dewp.space":"https://s.0px.io/a/md.png","dhbenihana.jp":"https://s.0px.io/a/md.png","dogno.se":"https://s.0px.io/a/md.png","don.mamemo.online":"https://s.0px.io/a/md.png","don.nzws.me":"https://don.nzws.me/favicon.ico","dragn.gay":"https://s.0px.io/a/md.png","ebf.social":"https://s.0px.io/a/md.png","edge.taruntarun.net":"https://edge.taruntarun.net/favicon.ico","elb.cloud":"https://s.0px.io/a/md.png","electro.social":"https://s.0px.io/a/md.png","empty.cafe":"https://empty.cafe/favicon.ico","epic.meme.moe":"https://s.0px.io/a/mi.png","ertona.net":"https://s.0px.io/a/md.png","eworld.social":"https://s.0px.io/a/md.png","f.reun.de":"https://s.0px.io/a/md.png","federate.blogpocket.com":"https://s.0px.io/a/md.png","federated.glacier.dog":"https://s.0px.io/a/md.png","fedi.cpluspatch.com":"https://fedi.cpluspatch.com/favicon.png","fedi.criminallycute.fi":"https://fedi.criminallycute.fi/favicon.png","fedi.fullstuck.net":"https://s.0px.io/a/md.png","fedi.xamk.fi":"https://s.0px.io/a/md.png","fedibird.com":"https://fedibird.com/favicon.ico","fediverse.keithzg.ca":"https://fediverse.keithzg.ca/favicon.png","felesitas.cloud":"https://s.0px.io/a/md.png","flanintheface.com":"https://s.0px.io/a/md.png","freesocial.co":"https://s.0px.io/a/md.png","furfag.de":"https://s.0px.io/a/md.png","furrylife.online":"https://img.sedoparking.com/templates/logos/sedo_logo.png","gamelinks007.net":"https://s.0px.io/a/md.png","gardenstate.social":"https://s.0px.io/a/md.png","geeks.cafe":"https://s.0px.io/a/md.png","geiger.ee":"https://s.0px.io/a/md.png","gensokyo.town":"https://s.0px.io/a/md.png","gingadon.com":"https://s.0px.io/a/md.png","gn-tronics.dev":"https://s.0px.io/a/md.png","goblin.camp":"https://goblin.camp/favicon.ico","gochisou.dev":"https://s.0px.io/a/md.png","h.kokuda.org":"https://s.0px.io/a/md.png","hakorena.hostdon.ne.jp":"https://s.0px.io/a/md.png","heidel.berg.social":"https://s.0px.io/a/md.png","hell.social":"https://bucket.outside.the.gates.of.hell.social/hellsocial/pngegg.png","high.cat":"https://s.0px.io/a/md.png","hikoukidon.jp":"https://s.0px.io/a/md.png","himk.am":"https://s.0px.io/a/md.png","homoo.social":"https://homoo.social/favicon.ico","humble.cafe":"https://s.0px.io/a/md.png","idic.social":"https://s.0px.io/a/md.png","ihatebeinga.live":"https://ihatebeinga.live/favicon.png","ilja.space":"https://ilja.space/favicon.png","im-in.space":"https://im-in.space/favicon.ico","imastodon.net":"https://imastodon.net/favicon.ico","imastodon.org":"https://s.0px.io/a/md.png","inari.opencocon.org":"https://s.0px.io/a/md.png","indiepocalypse.social":"https://s.0px.io/a/md.png","ingwie.me":"https://s.0px.io/a/md.png","is-a.horse":"https://s.0px.io/a/md.png","itabashi.0j0.jp":"https://itabashi.0j0.jp/favicon.ico","iwatedon.net":"https://iwatedon.net/favicon.ico","jabberwocky.moe":"https://s.0px.io/a/md.png","jmm.kr":"https://s.0px.io/a/md.png","jvpiter.net":"https://jvpiter.net/favicon.png","k-shiigi-136.masto.host":"https://s.0px.io/a/md.png","kancolle.social":"https://s.0px.io/a/md.png","kanina.be":"https://s.0px.io/a/md.png","kapuverse.net":"https://kapuverse.net/favicon.ico","kcl.academy":"https://s.0px.io/a/md.png","kemoner-don.tokyo":"https://s.0px.io/a/md.png","kirishima.cloud":"https://kirishima.cloud/favicon.ico","krefeld.life":"https://s.0px.io/a/md.png","kurosawa.moe":"https://kurosawa.moe/favicon.png","kys.moe":"https://kys.moe/favicon.png","lawfedi.blue":"https://s.0px.io/a/md.png","layer8.space":"https://s.0px.io/a/md.png","leroma.shrieker.net":"https://leroma.shrieker.net/favicon.png","liberdon.com":"https://s.0px.io/a/md.png","line.yamanote.tokyo.jp":"https://s.0px.io/a/md.png","lonestar.chat":"https://s.0px.io/a/md.png","loves.reisen":"https://loves.reisen/favicon.png","lumpen.work":"https://s.0px.io/a/md.png","m.eula.dev":"https://s.0px.io/a/md.png","ma.fono.jp":"https://s.0px.io/a/md.png","makervine.net":"https://s.0px.io/a/md.png","masse.xn--qubec-csa.tk":"https://s.0px.io/a/md.png","mastadon.littlebonsai.co.uk":"https://s.0px.io/a/md.png","masto.brightfur.net":"https://s.0px.io/a/md.png","masto.evelynyap.com":"https://s.0px.io/a/md.png","masto.ezhevita.dev":"https://s.0px.io/a/md.png","mastodon.ar.al":"https://s.0px.io/a/md.png","mastodon.bachgau.social":"https://s.0px.io/a/md.png","mastodon.bgzashtita.es":"https://s.0px.io/a/md.png","mastodon.com.pl":"https://s.0px.io/a/md.png","mastodon.mauve.moe":"https://s.0px.io/a/md.png","mastodon.murkworks.net":"https://s.0px.io/a/md.png","mastodon.nsnw.ca":"https://s.0px.io/a/md.png","mastodon.potproject.net":"https://s.0px.io/a/md.png","mastodon.simulakrum.vpndns.org":"https://s.0px.io/a/md.png","mastodon.slightlycyberpunk.com":"https://s.0px.io/a/md.png","mastodon.suinot.org":"https://s.0px.io/a/md.png","mastodon.tiennot.net":"https://s.0px.io/a/md.png","mastodon.tojo.tokyo":"https://s.0px.io/a/md.png","mastodon.vda-group.de":"https://s.0px.io/a/md.png","mastodon.xn--t8jzbl7g.jp":"https://s.0px.io/a/md.png","mastodon.zunda.ninja":"https://mastodon.zunda.ninja/favicon.ico","mdn.hinaloe.net":"https://s.0px.io/a/md.png","meron.io":"https://s.0px.io/a/md.png","mi.tkw.fm":"https://mi.tkw.fm/favicon.ico","micah.social":"https://s.0px.io/a/md.png","microblog.at":"https://s.0px.io/a/md.png","misaka.chat":"https://s.0px.io/a/md.png","misaka.social":"https://s3.misaka.social/misskey_logo.png","misky.rikunagiweb.jp":"https://s.0px.io/a/mi.png","misskey.anemoneya.me":"https://sayaka.anemoneya.me/logo.png","misskey.chiffon-sepxipl.com":"https://misskey.chiffon-sepxipl.com/favicon.ico","misskey.goochiegoo.net":"https://misskey-media.goochiegoo.net/media/80cf221a-d097-4414-ae38-801c739f6f4f.png","misskey.id":"https://s.0px.io/a/ml.png","misskey.io":"https://s3.arkjp.net/misskey/webpublic-0c66b1ca-b8c0-4eaa-9827-47674f4a1580.png","misskey.nokotaro.com":"https://storage.googleapis.com/drive.misskey.nokotaro.com/files/59ef20a5-e537-4a11-adfc-a7da5e39f7d2.ico","misskey.omhnc.net":"https://s.0px.io/a/ml.png","misskey.ruste.red":"https://s.0px.io/a/ml.png","misskey.tlfoxhuman.net":"https://tlfoxhuman.net/Images/myself_mini.png","misskey.usuyuki.net":"https://usuyuki.net/img/favicon/icon-192x192.png","misskey.vocalodon.net":"https://misskey.vocalodon.net/favicon.ico","mk.aqr.af":"https://mk.aqr.af/favicon.ico","mk.outv.im":"https://oss-social.outv.im/mk2_/6371c8df-de6f-4707-8ecd-32593e521cf5.png","mk.udongein.reisen":"https://mk.udongein.reisen/files/3da87e50-dc2f-4211-a5e6-375a832abfab","momo.mame.moe":"https://s.0px.io/a/md.png","moosetodon.com":"https://s.0px.io/a/md.png","msk.minetaro12.com":"https://msk.minetaro12.com/files/d1e80e03-9266-4fab-b840-e964d999f990","msky.tokyo":"https://msky.tokyo/favicon.ico","mst.mineown.de":"https://s.0px.io/a/md.png","mstdn.alicia.ne.jp":"https://s.0px.io/a/md.png","mstdn.anqou.net":"https://s.0px.io/a/md.png","mstdn.barippi.com":"https://s.0px.io/a/md.png","mstdn.ht164.jp":"https://s.0px.io/a/md.png","mstdn.unasuke.com":"https://s.0px.io/a/md.png","mstdn.wildtree.jp":"https://s.0px.io/a/md.png","mtd.usagi-gumi.jp":"https://s.0px.io/a/md.png","mustardon.tokyo":"https://s.0px.io/a/md.png","my0.net":"https://s.0px.io/a/md.png","myfedi.de":"https://s.0px.io/a/md.png","myhre.wtf":"https://s.0px.io/a/md.png","mzn-potatochips.me":"https://s.0px.io/a/md.png","nerd.town":"https://nerd.town/favicon.png","nitiasa.com":"https://s.0px.io/a/md.png","nmnm.na2na.dev":"https://s.0px.io/a/mi.png","nonbiridon.hostdon.ne.jp":"https://s.0px.io/a/md.png","norcal.social":"https://s.0px.io/a/md.png","nsfw.wnymathguy.com":"https://nsfw.wnymathguy.com/images/friendica.svg","nya.lemonade.moe":"https://s.0px.io/a/md.png","nya.social":"https://s.0px.io/a/ml.png","odakyu.app":"https://odakyu.app/favicon.ico","ofuton.io":"https://s.0px.io/a/md.png","oransns.com":"https://s.0px.io/a/md.png","orbitalstation.one":"https://s.0px.io/a/md.png","ostatus.ikeji.ma":"https://ostatus.ikeji.ma/favicon.png","p.ashiato45.net":"https://p.ashiato45.net/favicon.png","p1.a9z.dev":"https://s.0px.io/a/ml.png","pars.ee":"https://pars.ee/favicon.png","pasokey.net":"https://avatars.githubusercontent.com/u/119833826?s=200&v=4","pawoo.net":"https://pawoo.net/favicon.ico","piano.masto.host":"https://s.0px.io/a/md.png","piggo.space":"https://piggo.space/favicon.png","pixelfed.fftlt.net":"https://pixelfed.fftlt.net/img/favicon.png","pixelfed.sdf.org":"https://pixelfed.sdf.org/img/favicon.png","pixey.org":"https://pixey.org/img/favicon.png","pl.8mitsu.net":"https://pl.8mitsu.net/favicon.png","pl.catboyindustries.co":"https://pl.catboyindustries.co/favicon.png","pl.kpherox.dev":"https://pl.kpherox.dev/favicon.png","pl.thj.no":"https://s.0px.io/a/md.png","pleroma.elementality.org":"https://pleroma.elementality.org/favicon.png","pleroma.gnusocial.club":"https://img.sedoparking.com/templates/logos/sedo_logo.png","pleroma.in.th":"https://pleroma.in.th/favicon.png","pleroma.io":"https://pleroma.io/favicon.png","pleroma.les-requin.net":"https://pleroma.les-requin.net/favicon.png","pleroma.levome-dol.com":"https://pleroma.levome-dol.com/favicon.png","pleroma.shunderdo.me":"https://s.0px.io/a/pl.png","pleroma.wakuwakup.net":"https://pleroma.wakuwakup.net/favicon.png","plopchute.com":"https://plopchute.com/favicon.ico","plr.ph3j.com":"https://plr.ph3j.com/favicon.png","plrm.polyohm.net":"https://plrm.polyohm.net/favicon.png","plushies.social":"https://s.0px.io/a/md.png","poly.cybre.city":"https://poly.cybre.city/favicon.png","popon.pptdn.jp":"https://s.0px.io/a/md.png","pr0mised.life":"https://s.0px.io/a/md.png","psimon.world":"https://img.sedoparking.com/templates/logos/sedo_logo.png","public.mitra.social":"https://public.mitra.social/favicon.ico","qdon.space":"https://qdon.space/favicon.ico","queer.dev":"https://s.0px.io/a/md.png","rairarai.hostdon.ne.jp":"https://s.0px.io/a/md.png","ramen.iu0.win":"https://s.0px.io/a/md.png","rap.social":"https://s.0px.io/a/md.png","rats-at.work":"https://rats-at.work/favicon.ico","real-escape.jp":"https://s.0px.io/a/md.png","respublicae.eu":"https://s.0px.io/a/md.png","rettiwtkcuf.social":"https://s.0px.io/a/md.png","rivendell.cafe":"https://s.0px.io/a/md.png","rogersfam.co":"https://s.0px.io/a/md.png","rondoalive.xyz":"https://img.sedoparking.com/templates/logos/sedo_logo.png","rpvortex.online":"https://s.0px.io/a/md.png","s-shinjuku-rail.hostdon.ne.jp":"https://s.0px.io/a/md.png","s.neguse.net":"https://s.0px.io/a/md.png","saltwatercity.org":"https://s.0px.io/a/md.png","sandbox.skoji.jp":"https://s.0px.io/a/md.png","schleuss.online":"https://s.0px.io/a/md.png","seizemeans.com":"https://s.0px.io/a/md.png","share.elouworld.org":"https://s.0px.io/a/md.png","shortstackran.ch":"https://shortstackran.ch/wp-content/uploads/2023/03/cropped-swiss-flag-07-32x32.png","sironi.tk":"https://sironi.tk/favicon.png","slashine.onl":"https://s.0px.io/a/md.png","smores.town":"https://smores.town/favicon.ico","sneak.berlin":"https://sneak.berlin/favicon.ico","snowdon.jp":"https://s.0px.io/a/md.png","sns.kianting.info":"https://sns.kianting.info/favicon.png","soc.citizen4.eu":"https://soc.citizen4.eu/images/friendica.svg","social.0ko.me":"https://s.0px.io/a/md.png","social.4score7pongs.com":"https://s.0px.io/a/md.png","social.avery.cafe":"https://s.0px.io/a/md.png","social.axbom.com":"https://social.axbom.com/favicon.png","social.binarydad.com":"https://s.0px.io/a/md.png","social.cosnomi.com":"https://social.cosnomi.com/favicon.png","social.cowcornerfeeds.co.in":"https://social.cowcornerfeeds.co.in/favicon.png","social.densco.net":"https://s.0px.io/a/md.png","social.diskseven.com":"https://s.0px.io/a/md.png","social.doma.dev":"https://s.0px.io/a/md.png","social.eden.one":"https://s.0px.io/a/md.png","social.eyluldogruel.com":"https://s.0px.io/a/md.png","social.fym.moe":"https://social.fym.moe/favicon.png","social.gemnoc.ca":"https://social.gemnoc.ca/favicon.png","social.gerotintin.com":"https://social.gerotintin.com/favicon.png","social.here.blue":"https://social.here.blue/favicon.png","social.hoga.fr":"https://s.0px.io/a/md.png","social.imirhil.fr":"https://s.0px.io/a/md.png","social.krylc.cloud":"https://s.0px.io/a/md.png","social.lansky.name":"https://s.0px.io/a/md.png","social.malacology.net":"https://social.malacology.net/favicon.png","social.metamuffin.org":"https://s.metamuffin.org/avatar/default-512.webp","social.mofu2charger-listenradio.net":"https://s.0px.io/a/md.png","social.mythic-beasts.com":"https://s.0px.io/a/md.png","social.nahuelwexd.com":"https://s.0px.io/a/md.png","social.opennerds.org":"https://s.0px.io/a/md.png","social.pi.vaduzz.de":"https://s.0px.io/a/md.png","social.pmj.rocks":"https://s.0px.io/a/md.png","social.retrodon.net":"https://s.0px.io/a/md.png","social.shadowkat.net":"https://social.shadowkat.net/favicon.png","social.skewed.de":"https://s.0px.io/a/md.png","social.softmetz.de":"https://social.softmetz.de/images/friendica.svg","social.teci.world":"https://social.teci.world/favicon.png","social.thisisjoes.site":"https://s.0px.io/a/md.png","social.tryptophonic.com":"https://social.tryptophonic.com/favicon.png","social.typica.us":"https://s.0px.io/a/md.png","social.undeadnetwork.de":"https://s.0px.io/a/md.png","social.vasilis.nl":"https://s.0px.io/a/md.png","social.vcfed.org":"https://s.0px.io/a/md.png","social.wildeboer.net":"https://s.0px.io/a/md.png","social.wiuwiu.de":"https://social.wiuwiu.de/theme/img/app/128.png?t=1621626083","sphere.fx4.net":"https://s.0px.io/a/md.png","st.mstdn.b-shock.org":"https://st.mstdn.b-shock.org/favicon.ico","stellaria.network":"https://stellaria.network/favicon.ico","strangeobject.space":"https://s.0px.io/a/md.png","strelizia.net":"https://strelizia.net/favicon.png","sts.lqt.moe":"https://sts.lqt.moe/favicon.png","sukebeneko.com":"https://s.0px.io/a/md.png","surfin.dog":"https://s.0px.io/a/md.png","syria.social":"https://s.0px.io/a/md.png","t.aqn.jp":"https://s.0px.io/a/md.png","taruntarun.net":"https://s.0px.io/a/md.png","tchafia.be":"https://s.0px.io/a/md.png","techforgood.social":"https://s.0px.io/a/md.png","telescope.garden":"https://s.0px.io/a/md.png","toot.cat":"https://s.0px.io/a/md.png","toot.jasonscheirer.com":"https://s.0px.io/a/md.png","toot.morikka.me":"https://s.0px.io/a/md.png","toot.thedoodleproject.net":"https://s.0px.io/a/md.png","tootsmygoots.com":"https://s.0px.io/a/md.png","tragically.social":"https://s.0px.io/a/md.png","tweetrex.co.uk":"https://tweetrex.co.uk/favicon.ico","twipped.social":"https://s.0px.io/a/md.png","typo.social":"https://typo.social/favicon.ico","ukadon.shillest.net":"https://ukadon.shillest.net/favicon.ico","undefined.social":"https://s.0px.io/a/md.png","under-bank.blue":"https://s.0px.io/a/md.png","unkomaker.hostdon.ne.jp":"https://s.0px.io/a/md.png","upallnight.minnix.dev":"https://s.0px.io/a/md.png","va-11-hall-a.cafe":"https://va-11-hall-a.cafe/favicon.png","veah.cocoa.moe":"https://veah.cocoa.moe/favicon.png","vocalodon.net":"https://vocalodon.net/favicon.ico","welldn.net":"https://s.0px.io/a/md.png","wiesbaden.social":"https://s.0px.io/a/md.png","www.nekotodon.com":"https://s.0px.io/a/md.png","x0f.org":"https://x0f.org/favicon.ico","xn--p1abe3d.xn--80asehdb":"https://xn--p1abe3d.xn--80asehdb/favicon.png","xx0r.eu":"https://s.0px.io/a/md.png","yakumo.foundation":"https://s.0px.io/a/md.png","youthweb.social":"https://s.0px.io/a/md.png","zusammenkunft.net":"https://s.0px.io/a/md.png","0wo.ooo":"https://0woooo.s3.fr-par.scw.cloud/0wo/065f5f93-cebe-4b4d-a76e-04f569a17d33.png"} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fedi-favicon-api", 3 | "version": "0.0.1", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "ts-node src/create.ts" 9 | }, 10 | "author": "", 11 | "license": "MIT", 12 | "devDependencies": { 13 | "@types/cheerio": "^0.22.21", 14 | "@types/jimp": "^0.2.28", 15 | "@types/koa": "^2.11.3", 16 | "@types/koa-router": "^7.4.1", 17 | "@types/node": "^14.0.26", 18 | "@types/superagent": "^4.1.8", 19 | "ts-node": "^8.10.2", 20 | "typescript": "^3.9.7" 21 | }, 22 | "dependencies": { 23 | "axios": "^0.21.1", 24 | "cheerio": "^1.0.0-rc.3", 25 | "jimp": "^0.14.0", 26 | "json5": "^2.2.3", 27 | "koa": "^2.13.0", 28 | "koa-router": "^9.1.0", 29 | "superagent": "^5.3.1" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /resources/0/0wo.ooo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'0wo'} -------------------------------------------------------------------------------- /resources/0/2m.cutls.com/data.json5: -------------------------------------------------------------------------------- 1 | { 2 | type: "mastodon", 3 | name: "Cutls", 4 | favicon: 'https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png' 5 | } 6 | -------------------------------------------------------------------------------- /resources/a/a.lufimianet.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'図書館でお茶会を始めて国際法茶館に計画'} -------------------------------------------------------------------------------- /resources/a/abyss.fun/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Abyss.fun' 5 | } 6 | -------------------------------------------------------------------------------- /resources/a/achi.masto.host/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ハトの塒'} -------------------------------------------------------------------------------- /resources/a/agora.echelon.pl/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'agora.echelon.pl'} -------------------------------------------------------------------------------- /resources/a/akkoma.eniehack.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:' Akkashic records'} -------------------------------------------------------------------------------- /resources/a/alcatir.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/a/amefur.asia/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'アメフラシア'} -------------------------------------------------------------------------------- /resources/a/ap.ketsuben.red/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/a/ap.mcphail.uk/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'mcphail'} -------------------------------------------------------------------------------- /resources/a/arktos.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'arktos.social'} -------------------------------------------------------------------------------- /resources/a/artsandculture.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Arts & Culture'} -------------------------------------------------------------------------------- /resources/a/astoundingteam.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/a/astronomy.city/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Astronomy.city'} -------------------------------------------------------------------------------- /resources/b/bahn.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Bahn.Social'} -------------------------------------------------------------------------------- /resources/b/bangdream.tokyo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/b/baraag.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: '🔞 baraag.net' 5 | } 6 | -------------------------------------------------------------------------------- /resources/b/beef.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'BEEF!'} -------------------------------------------------------------------------------- /resources/b/beige.party/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'beige.party'} -------------------------------------------------------------------------------- /resources/b/best-friends.chat/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Best Friends' 5 | } 6 | -------------------------------------------------------------------------------- /resources/b/birb.site/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'birb site'} -------------------------------------------------------------------------------- /resources/b/birds.garden/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Birds garden'} -------------------------------------------------------------------------------- /resources/b/blackrock.city/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Blackrock.City'} -------------------------------------------------------------------------------- /resources/b/blueadair.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/b/boing.world/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Boing.World'} -------------------------------------------------------------------------------- /resources/b/bol.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/b/bourbonbyte.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/b/broken.graphics/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/b/buicha.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'ぶいちゃ.social'} -------------------------------------------------------------------------------- /resources/b/buildthatwallandmakeamericagreatagain.trumpislovetrumpis.life/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'#Trump2024'} -------------------------------------------------------------------------------- /resources/b/bullcity.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Bull City'} -------------------------------------------------------------------------------- /resources/c/c.wtf/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'C.WTF'} -------------------------------------------------------------------------------- /resources/c/catgirl.life/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'misskey', 4 | name: 'catgirl.life' 5 | } 6 | -------------------------------------------------------------------------------- /resources/c/chaosphere.hostdon.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'カオスフィア'} -------------------------------------------------------------------------------- /resources/c/chillout.chat/data.json5: -------------------------------------------------------------------------------- 1 | { 2 | type: 'mastodon', 3 | name: 'Chillout Chat', 4 | favicon: null 5 | } 6 | -------------------------------------------------------------------------------- /resources/c/chin-co-ne.co/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/c/cirno9.mynetgear.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'めうとどん'} -------------------------------------------------------------------------------- /resources/c/club.elephantus.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Königreich Ach-Soh!'} -------------------------------------------------------------------------------- /resources/c/compostintraining.club/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/c/conesphere.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/c/creators.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Creators Social'} -------------------------------------------------------------------------------- /resources/c/cybre.space/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"mastodon","name":"Cybrespace"} -------------------------------------------------------------------------------- /resources/d/daedal.io/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'the daedal earth'} -------------------------------------------------------------------------------- /resources/d/dain.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/d/darui.work/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'darui.work'} -------------------------------------------------------------------------------- /resources/d/dewp.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'DEWP Community'} -------------------------------------------------------------------------------- /resources/d/dhbenihana.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'dhbenihana.jp'} -------------------------------------------------------------------------------- /resources/d/dogno.se/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'dogno.se'} -------------------------------------------------------------------------------- /resources/d/don.mamemo.online/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'まめもどん' 5 | } 6 | -------------------------------------------------------------------------------- /resources/d/don.nzws.me/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'don.nzws.me (どんねじ)' 5 | } 6 | -------------------------------------------------------------------------------- /resources/d/dragn.gay/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'dragn dot gay'} -------------------------------------------------------------------------------- /resources/e/ebf.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/e/edge.taruntarun.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'凸樽'} -------------------------------------------------------------------------------- /resources/e/elb.cloud/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'elb.cloud'} -------------------------------------------------------------------------------- /resources/e/electro.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'electro.social'} -------------------------------------------------------------------------------- /resources/e/empty.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'empty.cafe'} -------------------------------------------------------------------------------- /resources/e/epic.meme.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'神聖大帝国議会「senatus populusque meme.moe」'} -------------------------------------------------------------------------------- /resources/e/ertona.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ertona.net'} -------------------------------------------------------------------------------- /resources/e/eworld.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'eworld.social'} -------------------------------------------------------------------------------- /resources/f/f.reun.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'f.reun.de'} -------------------------------------------------------------------------------- /resources/f/federate.blogpocket.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/f/federated.glacier.dog/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Glacier Dog'} -------------------------------------------------------------------------------- /resources/f/fedi.cpluspatch.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:"Jesse's Space"} -------------------------------------------------------------------------------- /resources/f/fedi.criminallycute.fi/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/f/fedi.fullstuck.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'FullStuck 専用'} -------------------------------------------------------------------------------- /resources/f/fedi.xamk.fi/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Xamk Mastodon'} -------------------------------------------------------------------------------- /resources/f/fedibird.com/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Fedibird' 5 | } 6 | -------------------------------------------------------------------------------- /resources/f/fediverse.keithzg.ca/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/f/felesitas.cloud/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'felesitas.cloud ' 5 | } 6 | -------------------------------------------------------------------------------- /resources/f/flanintheface.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'#meetingpeopleiseasy'} -------------------------------------------------------------------------------- /resources/f/freesocial.co/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'FreeSocial.co'} -------------------------------------------------------------------------------- /resources/f/furfag.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'furfag.de'} -------------------------------------------------------------------------------- /resources/f/furrylife.online/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/g/gamelinks007.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Creatodon' 5 | } 6 | -------------------------------------------------------------------------------- /resources/g/gardenstate.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/g/geeks.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"Geek's Cafe"} -------------------------------------------------------------------------------- /resources/g/geiger.ee/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'geiger.ee'} -------------------------------------------------------------------------------- /resources/g/gensokyo.town/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'gensokyo.town' 5 | } 6 | -------------------------------------------------------------------------------- /resources/g/gingadon.com/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: '銀河丼' 5 | } 6 | -------------------------------------------------------------------------------- /resources/g/gn-tronics.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"GN'Tronics"} -------------------------------------------------------------------------------- /resources/g/goblin.camp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/g/gochisou.dev/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'ごちそうデブ' 5 | } 6 | -------------------------------------------------------------------------------- /resources/h/h.kokuda.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'こくだハイク'} -------------------------------------------------------------------------------- /resources/h/hakorena.hostdon.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Sincerity'} -------------------------------------------------------------------------------- /resources/h/heidel.berg.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/h/heislandmine.work/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'landodon'} -------------------------------------------------------------------------------- /resources/h/hell.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'hell.social'} -------------------------------------------------------------------------------- /resources/h/high.cat/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'High.cat'} -------------------------------------------------------------------------------- /resources/h/hikoukidon.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'hikoukidon'} -------------------------------------------------------------------------------- /resources/h/himk.am/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Himk'} -------------------------------------------------------------------------------- /resources/h/homoo.social/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: '┌(┌ ^o^)┐Homoo' 5 | } 6 | -------------------------------------------------------------------------------- /resources/h/humble.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'humble.cafe'} -------------------------------------------------------------------------------- /resources/i/idic.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'IDIC Social'} -------------------------------------------------------------------------------- /resources/i/ihatebeinga.live/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"pleroma","name":"Sadposting Central"} -------------------------------------------------------------------------------- /resources/i/ilja.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'ilja.space'} -------------------------------------------------------------------------------- /resources/i/im-in.space/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'I’m in Space' 5 | } 6 | -------------------------------------------------------------------------------- /resources/i/imastodon.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'im@stodon' 5 | } 6 | -------------------------------------------------------------------------------- /resources/i/imastodon.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'im@stodon'} -------------------------------------------------------------------------------- /resources/i/inari.opencocon.org/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'いなこん' 5 | } 6 | -------------------------------------------------------------------------------- /resources/i/indiepocalypse.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/i/ingwie.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"Phoenix' Den"} -------------------------------------------------------------------------------- /resources/i/is-a.horse/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Is-a.horse'} -------------------------------------------------------------------------------- /resources/i/itabashi.0j0.jp/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: '板橋丼(Itabashi-don)' 5 | } 6 | -------------------------------------------------------------------------------- /resources/i/iwatedon.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'イワテドン' 5 | } 6 | -------------------------------------------------------------------------------- /resources/j/jabberwocky.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Jabberwocky'} -------------------------------------------------------------------------------- /resources/j/jmm.kr/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'jmm.kr (즘)'} -------------------------------------------------------------------------------- /resources/j/jvpiter.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'JVPITER'} -------------------------------------------------------------------------------- /resources/k/k-shiigi-136.masto.host/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/k/kancolle.social/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: '艦これ マストドン泊地' 5 | } 6 | -------------------------------------------------------------------------------- /resources/k/kanina.be/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'🦀かに鍋🦀'} -------------------------------------------------------------------------------- /resources/k/kapuverse.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Kapuverse'} -------------------------------------------------------------------------------- /resources/k/kcl.academy/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/k/kemoner-don.tokyo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ケモナードン'} -------------------------------------------------------------------------------- /resources/k/kirishima.cloud/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'アスタルテ' 5 | } 6 | -------------------------------------------------------------------------------- /resources/k/krefeld.life/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'krefeld.life'} -------------------------------------------------------------------------------- /resources/k/kurosawa.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'kurosawa.moe'} -------------------------------------------------------------------------------- /resources/k/kys.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/l/lawfedi.blue/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'LawFedi'} -------------------------------------------------------------------------------- /resources/l/layer8.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/l/leroma.shrieker.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'美食レロマ'} -------------------------------------------------------------------------------- /resources/l/liberdon.com/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"mastodon","name":"Liberdon"} -------------------------------------------------------------------------------- /resources/l/line.yamanote.tokyo.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Yamatedon'} -------------------------------------------------------------------------------- /resources/l/lonestar.chat/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'LoneStar Chat'} -------------------------------------------------------------------------------- /resources/l/loves.reisen/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'<3 Reisen'} -------------------------------------------------------------------------------- /resources/l/lumpen.work/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'lumpen.work'} -------------------------------------------------------------------------------- /resources/m/m.eula.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'m.eula.dev'} -------------------------------------------------------------------------------- /resources/m/ma.fono.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ふぉの丼'} -------------------------------------------------------------------------------- /resources/m/makervine.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/m/mas.to/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'mas.to'} -------------------------------------------------------------------------------- /resources/m/masse.xn--qubec-csa.tk/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Masse Québec'} -------------------------------------------------------------------------------- /resources/m/mastadon.littlebonsai.co.uk/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'little bonsai'} -------------------------------------------------------------------------------- /resources/m/masto.brightfur.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon Glitch Edition'} -------------------------------------------------------------------------------- /resources/m/masto.evelynyap.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'masto.EvelynYap.com'} -------------------------------------------------------------------------------- /resources/m/masto.ezhevita.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ezhevita-mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.ar.al/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Aral’s Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.bachgau.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.bgzashtita.es/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.com.pl/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon Poland'} -------------------------------------------------------------------------------- /resources/m/mastodon.juggler.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'juggler.jp Mastodon サービス'} -------------------------------------------------------------------------------- /resources/m/mastodon.lithium03.info/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'lithium03@mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.mauve.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mauvestodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.murkworks.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.nsnw.ca/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'NSNW Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.potproject.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'mastodon.potproject.net'} -------------------------------------------------------------------------------- /resources/m/mastodon.simulakrum.vpndns.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon@Simulakrum'} -------------------------------------------------------------------------------- /resources/m/mastodon.slightlycyberpunk.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.suinot.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.tiennot.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.tojo.tokyo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.vda-group.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mastodon.xn--t8jzbl7g.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'mastodon.おったぺ.jp'} -------------------------------------------------------------------------------- /resources/m/mastodon.zunda.ninja/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'zundon'} -------------------------------------------------------------------------------- /resources/m/mdn.hinaloe.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ひな丼'} -------------------------------------------------------------------------------- /resources/m/meron.io/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mewl.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey', name: 'めうる.み'} -------------------------------------------------------------------------------- /resources/m/mi.tkw.fm/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'tkwmessiky'} -------------------------------------------------------------------------------- /resources/m/micah.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/microblog.at/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'microblog.at'} -------------------------------------------------------------------------------- /resources/m/misaka.chat/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Misaka.chat'} -------------------------------------------------------------------------------- /resources/m/misaka.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'、とミサカは話します'} -------------------------------------------------------------------------------- /resources/m/misky.rikunagiweb.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'凪すky'} -------------------------------------------------------------------------------- /resources/m/misskey.anemoneya.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'Misskey'} -------------------------------------------------------------------------------- /resources/m/misskey.chiffon-sepxipl.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:"chiffon's misskey"} -------------------------------------------------------------------------------- /resources/m/misskey.goochiegoo.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'ぐうすきー'} -------------------------------------------------------------------------------- /resources/m/misskey.id/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'Misskey.ID 🇮🇩'} -------------------------------------------------------------------------------- /resources/m/misskey.io/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey'} -------------------------------------------------------------------------------- /resources/m/misskey.m544.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'めいすきー'} -------------------------------------------------------------------------------- /resources/m/misskey.nokotaro.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'のこたろハウス'} -------------------------------------------------------------------------------- /resources/m/misskey.omhnc.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'しーもハウス'} -------------------------------------------------------------------------------- /resources/m/misskey.ruste.red/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'ruste.red:misskey'} -------------------------------------------------------------------------------- /resources/m/misskey.tlfoxhuman.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'半狐山スキー場'} -------------------------------------------------------------------------------- /resources/m/misskey.usuyuki.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'うすゆきーv2'} -------------------------------------------------------------------------------- /resources/m/misskey.vocalodon.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'ボカロ丼 misskey'} -------------------------------------------------------------------------------- /resources/m/mk.aqr.af/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'mk.aqr.af'} -------------------------------------------------------------------------------- /resources/m/mk.outv.im/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'Outalk MK2'} -------------------------------------------------------------------------------- /resources/m/mk.udongein.reisen/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'Eientei Social MkIII'} -------------------------------------------------------------------------------- /resources/m/momo.mame.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'もも'} -------------------------------------------------------------------------------- /resources/m/moosetodon.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Moosetodon'} -------------------------------------------------------------------------------- /resources/m/msk.minetaro12.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'みねすき〜'} -------------------------------------------------------------------------------- /resources/m/msky.tokyo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/m/mst.mineown.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mstdn.alicia.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'アリシア丼'} -------------------------------------------------------------------------------- /resources/m/mstdn.anqou.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'わくわく鮟鱇ランド'} -------------------------------------------------------------------------------- /resources/m/mstdn.barippi.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mstdn.ht164.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon of ht164'} -------------------------------------------------------------------------------- /resources/m/mstdn.maud.io/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: ':don:'} -------------------------------------------------------------------------------- /resources/m/mstdn.rinsuki.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mstdn.unasuke.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'mstdn.unasuke.com'} -------------------------------------------------------------------------------- /resources/m/mstdn.wildtree.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'WildTree'} -------------------------------------------------------------------------------- /resources/m/mtd.usagi-gumi.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'MTD.USAGI-GUMI'} -------------------------------------------------------------------------------- /resources/m/mustardon.tokyo/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mustardon'} -------------------------------------------------------------------------------- /resources/m/my0.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'my0.net'} -------------------------------------------------------------------------------- /resources/m/myfedi.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/myhre.wtf/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/m/mzn-potatochips.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'mzn-potatochips.me'} -------------------------------------------------------------------------------- /resources/n/nerd.town/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'nerdtown'} -------------------------------------------------------------------------------- /resources/n/nitiasa.com/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'ニチアサドン (#nitiasa)' 5 | } 6 | -------------------------------------------------------------------------------- /resources/n/nmnm.na2na.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'ねむねむ'} -------------------------------------------------------------------------------- /resources/n/nonbiridon.hostdon.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/n/norcal.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'NorCal.social'} -------------------------------------------------------------------------------- /resources/n/nsfw.wnymathguy.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/n/nya.lemonade.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'柠菠市'} -------------------------------------------------------------------------------- /resources/n/nya.social/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"misskey","name":"nya.social"} -------------------------------------------------------------------------------- /resources/o/odakyu.app/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'小田急don'} -------------------------------------------------------------------------------- /resources/o/ofuton.io/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ofuton.io'} -------------------------------------------------------------------------------- /resources/o/omoro.info/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'omoroinfo'} -------------------------------------------------------------------------------- /resources/o/oransns.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'oran'} -------------------------------------------------------------------------------- /resources/o/orbitalstation.one/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/o/ostatus.ikeji.ma/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'ikeji pleroma'} -------------------------------------------------------------------------------- /resources/p/p.ashiato45.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ashiatodon'} -------------------------------------------------------------------------------- /resources/p/p1.a9z.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'p1.a9z.dev'} -------------------------------------------------------------------------------- /resources/p/pars.ee/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"mastodon","name":"Parsee"} -------------------------------------------------------------------------------- /resources/p/pasokey.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'pasokey'} -------------------------------------------------------------------------------- /resources/p/pawoo.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Pawoo' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/piano.masto.host/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Piano Mastodon'} -------------------------------------------------------------------------------- /resources/p/piggo.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Piggo.space'} -------------------------------------------------------------------------------- /resources/p/pixelfed.fftlt.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Pixelfed FFTLT'} -------------------------------------------------------------------------------- /resources/p/pixelfed.sdf.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'SDF Pixelfed'} -------------------------------------------------------------------------------- /resources/p/pixey.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Pixey'} -------------------------------------------------------------------------------- /resources/p/pl.8mitsu.net/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"pleroma","name":"pl.8mitsu.net"} -------------------------------------------------------------------------------- /resources/p/pl.catboyindustries.co/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'catboy industries'} -------------------------------------------------------------------------------- /resources/p/pl.im-in.space/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'Pleroma/InSpace', 5 | favicon: 'https://pl.im-in.space/static/logo.png' 6 | } 7 | -------------------------------------------------------------------------------- /resources/p/pl.kpherox.dev/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'pl.kpherox.dev' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/pl.thj.no/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'berserker.town'} -------------------------------------------------------------------------------- /resources/p/pleroma.elementality.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Megacity-1'} -------------------------------------------------------------------------------- /resources/p/pleroma.gnusocial.club/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/p/pleroma.in.th/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'pleroma.in.th'} -------------------------------------------------------------------------------- /resources/p/pleroma.io/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'Pleroma.io' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/pleroma.les-requin.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'さめろま'} -------------------------------------------------------------------------------- /resources/p/pleroma.levome-dol.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Levoma'} -------------------------------------------------------------------------------- /resources/p/pleroma.shunderdo.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Pleroma/Shunderdome'} -------------------------------------------------------------------------------- /resources/p/pleroma.wakuwakup.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'pleroma.wakuwakup.net' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/plopchute.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/p/plr.ph3j.com/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'plr/ph3j' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/plrm.polyohm.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'pleroma', 4 | name: 'Pleroma/polyohm' 5 | } 6 | -------------------------------------------------------------------------------- /resources/p/plushies.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'plushies.social'} -------------------------------------------------------------------------------- /resources/p/poly.cybre.city/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/p/popon.pptdn.jp/data.json5: -------------------------------------------------------------------------------- 1 | { 2 | type: 'mastodon', 3 | name: 'popon', 4 | bgColor: [ 5 | '#ffbf00' 6 | ], 7 | fontColor: '#000' 8 | } 9 | -------------------------------------------------------------------------------- /resources/p/pr0mised.life/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/p/psimon.world/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/p/public.mitra.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mitra'} -------------------------------------------------------------------------------- /resources/q/qdon.space/data.json5: -------------------------------------------------------------------------------- 1 | { 2 | type: 'mastodon', 3 | name: 'Qdon', 4 | bgColor: [ 5 | '#ffc0fb', 6 | '#87ceeb' 7 | ], 8 | fontColor: '#000' 9 | } 10 | -------------------------------------------------------------------------------- /resources/q/queer.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'queer.dev'} -------------------------------------------------------------------------------- /resources/r/rairarai.hostdon.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'ライ丼'} -------------------------------------------------------------------------------- /resources/r/ramen.iu0.win/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'飞面'} -------------------------------------------------------------------------------- /resources/r/rap.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'rap.social'} -------------------------------------------------------------------------------- /resources/r/rats-at.work/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/r/real-escape.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/r/respublicae.eu/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/r/rettiwtkcuf.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Rettiwt Kcuf'} -------------------------------------------------------------------------------- /resources/r/rivendell.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/r/rogersfam.co/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Rogers Family'} -------------------------------------------------------------------------------- /resources/r/rondoalive.xyz/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/r/rpvortex.online/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'RP Vortex (II)'} -------------------------------------------------------------------------------- /resources/s/s-shinjuku-rail.hostdon.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Kousoku_HP@西武新宿線'} -------------------------------------------------------------------------------- /resources/s/s.neguse.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'s.neguse.net'} -------------------------------------------------------------------------------- /resources/s/saltwatercity.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"saltwater city — kw'atl'kwa — 鹹水埠"} -------------------------------------------------------------------------------- /resources/s/sandbox.skoji.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'sandbox : skoji'} -------------------------------------------------------------------------------- /resources/s/schleuss.online/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/seizemeans.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Seize Means'} -------------------------------------------------------------------------------- /resources/s/share.elouworld.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"Exagone313's Mastodon instance"} -------------------------------------------------------------------------------- /resources/s/shortstackran.ch/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/sironi.tk/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'sironi.tk'} -------------------------------------------------------------------------------- /resources/s/slashine.onl/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"mastodon","name":"闪站惹人爱✨"} -------------------------------------------------------------------------------- /resources/s/smores.town/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'smores.town'} -------------------------------------------------------------------------------- /resources/s/sneak.berlin/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/snowdon.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Snowdon'} -------------------------------------------------------------------------------- /resources/s/sns.kianting.info/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'Mn̂g-kháu-tiânn 門口埕'} -------------------------------------------------------------------------------- /resources/s/soc.citizen4.eu/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/s/social.0ko.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.4score7pongs.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'4Score7Pongs'} -------------------------------------------------------------------------------- /resources/s/social.avery.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.axbom.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.binarydad.com/data.json5: -------------------------------------------------------------------------------- 1 | {"type":"mastodon","name":"BinaryDad"} -------------------------------------------------------------------------------- /resources/s/social.cosnomi.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Pleroma'} -------------------------------------------------------------------------------- /resources/s/social.cowcornerfeeds.co.in/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'The Cow Corner'} -------------------------------------------------------------------------------- /resources/s/social.densco.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'social.densco.net'} -------------------------------------------------------------------------------- /resources/s/social.diskseven.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.doma.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Doma Social'} -------------------------------------------------------------------------------- /resources/s/social.eden.one/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.eyluldogruel.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.fym.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:"FiveYellowMice's Pleroma"} -------------------------------------------------------------------------------- /resources/s/social.gemnoc.ca/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/s/social.gerotintin.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'ソーシャル/ゲロチンチン'} -------------------------------------------------------------------------------- /resources/s/social.here.blue/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.hoga.fr/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Hoga Social'} -------------------------------------------------------------------------------- /resources/s/social.imirhil.fr/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.krylc.cloud/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.lansky.name/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.malacology.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/s/social.metamuffin.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'social.metamuffin.org'} -------------------------------------------------------------------------------- /resources/s/social.mofu2charger-listenradio.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'まつどん'} -------------------------------------------------------------------------------- /resources/s/social.mythic-beasts.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'social.mythic-beasts.com'} -------------------------------------------------------------------------------- /resources/s/social.nahuelwexd.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.opennerds.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.pi.vaduzz.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Vaduzz Network'} -------------------------------------------------------------------------------- /resources/s/social.pmj.rocks/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.retrodon.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'RetroDon'} -------------------------------------------------------------------------------- /resources/s/social.shadowkat.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'SKS Pleroma'} -------------------------------------------------------------------------------- /resources/s/social.skewed.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'social.skewed.de'} -------------------------------------------------------------------------------- /resources/s/social.softmetz.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.teci.world/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'TECI Social'} -------------------------------------------------------------------------------- /resources/s/social.thisisjoes.site/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:"Joe's Mastodon"} -------------------------------------------------------------------------------- /resources/s/social.tryptophonic.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/s/social.typica.us/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Typica Social'} -------------------------------------------------------------------------------- /resources/s/social.undeadnetwork.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Undad-A-Social'} -------------------------------------------------------------------------------- /resources/s/social.vasilis.nl/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/social.vcfed.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'VCFed Mastodon'} -------------------------------------------------------------------------------- /resources/s/social.wildeboer.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'social.wildeboer.net'} -------------------------------------------------------------------------------- /resources/s/social.wiuwiu.de/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/s/sphere.fx4.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Our MonkeySphere'} -------------------------------------------------------------------------------- /resources/s/st.mstdn.b-shock.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'美食丼ステージング'} -------------------------------------------------------------------------------- /resources/s/stellaria.network/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pixelfed'} -------------------------------------------------------------------------------- /resources/s/strangeobject.space/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/s/strelizia.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'ストレリチア'} -------------------------------------------------------------------------------- /resources/s/sts.lqt.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma',name:'びわそーしゃる'} -------------------------------------------------------------------------------- /resources/s/sukebeneko.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'sukebeneko.com'} -------------------------------------------------------------------------------- /resources/s/surfin.dog/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'surfin.dog'} -------------------------------------------------------------------------------- /resources/s/syria.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:' Mastodon سوريا'} -------------------------------------------------------------------------------- /resources/t/t.aqn.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'t.aqn.jp'} -------------------------------------------------------------------------------- /resources/t/taruntarun.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'taruntarun.net' 5 | } 6 | -------------------------------------------------------------------------------- /resources/t/tchafia.be/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'TCHAFIA'} -------------------------------------------------------------------------------- /resources/t/techforgood.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Techforgood.social'} -------------------------------------------------------------------------------- /resources/t/telescope.garden/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Telescope 🌻 Garden'} -------------------------------------------------------------------------------- /resources/t/toot.blue/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon', name: 'Mastodon_toot.blue'} -------------------------------------------------------------------------------- /resources/t/toot.cat/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Toot.Cat'} -------------------------------------------------------------------------------- /resources/t/toot.jasonscheirer.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/t/toot.morikka.me/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/t/toot.thedoodleproject.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Doodle Toot'} -------------------------------------------------------------------------------- /resources/t/tootsmygoots.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Toots My Goots'} -------------------------------------------------------------------------------- /resources/t/tragically.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/t/tweetrex.co.uk/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Tweet Rex'} -------------------------------------------------------------------------------- /resources/t/twipped.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Twipped Social (Private)'} -------------------------------------------------------------------------------- /resources/t/typo.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'typo.social'} -------------------------------------------------------------------------------- /resources/u/ukadon.shillest.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'うかどん' 5 | } 6 | -------------------------------------------------------------------------------- /resources/u/undefined.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'undefined by NULL'} -------------------------------------------------------------------------------- /resources/u/under-bank.blue/data.json5: -------------------------------------------------------------------------------- 1 | { 2 | type: 'mastodon', 3 | name: 'UNDER-BANK.blue' 4 | } -------------------------------------------------------------------------------- /resources/u/unkomaker.hostdon.ne.jp/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'うんこ製造機v.3'} -------------------------------------------------------------------------------- /resources/u/upallnight.minnix.dev/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/u/usasaki.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'misskey',name:'うささきどっとねっと'} -------------------------------------------------------------------------------- /resources/v/va-11-hall-a.cafe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/v/veah.cocoa.moe/data.json5: -------------------------------------------------------------------------------- 1 | {type:'pleroma'} -------------------------------------------------------------------------------- /resources/v/vivaldi.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Vivaldi Social'} -------------------------------------------------------------------------------- /resources/v/vocalodon.net/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'Vocalodon' 5 | } 6 | -------------------------------------------------------------------------------- /resources/w/welldn.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'welldn'} -------------------------------------------------------------------------------- /resources/w/wiesbaden.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Fediverse für Wiesbaden'} -------------------------------------------------------------------------------- /resources/w/www.nekotodon.com/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/x/x0f.org/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'unidentified instance'} -------------------------------------------------------------------------------- /resources/x/xn--p1abe3d.xn--80asehdb/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'срёт.онлайн'} -------------------------------------------------------------------------------- /resources/x/xx0r.eu/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon',name:'Mastodon'} -------------------------------------------------------------------------------- /resources/y/yakumo.foundation/data.json5: -------------------------------------------------------------------------------- 1 | 2 | { 3 | type: 'mastodon', 4 | name: 'まおー財団 Glitch Edition' 5 | } 6 | -------------------------------------------------------------------------------- /resources/y/youthweb.social/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /resources/z/zusammenkunft.net/data.json5: -------------------------------------------------------------------------------- 1 | {type:'mastodon'} -------------------------------------------------------------------------------- /src/addPeers.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import fs from 'fs' 3 | import JSON5 from 'json5' 4 | import { detector, getName } from './detector' 5 | 6 | const domain = '2m.cutls.com' 7 | const main = async () => { 8 | const peersRaw = await axios.get(`https://${domain}/api/v1/instance/peers`) 9 | const peers: string[] = peersRaw.data 10 | const cacheRaw = fs.readFileSync('./output/cache.json').toString() 11 | const uaList = fs.readFileSync('./src/cmd/unavailable.txt').toString().split("\n") 12 | const cache = JSON.parse(cacheRaw) 13 | for (const peer of peers) { 14 | let alphabet = peer.slice(0, 1) 15 | if (parseInt(alphabet, 10)) alphabet = '0' 16 | if (cache[peer] && fs.existsSync(`./resources/${alphabet}/${peer}`)) continue 17 | if (!fs.existsSync(`./resources/${alphabet}`)) fs.mkdirSync(`./resources/${alphabet}`) 18 | if (uaList.includes(peer)) continue 19 | console.log('checking', peer) 20 | if (fs.existsSync(`./resources/${alphabet}/${peer}`)) continue 21 | try { 22 | const det = await detector(null, peer) 23 | if (!det.success) continue 24 | fs.mkdirSync(`./resources/${alphabet}/${peer}`) 25 | console.log('add', det, peer) 26 | const name = await getName(det.type, peer) 27 | const json = { 28 | type: det.type, 29 | name 30 | } 31 | fs.writeFileSync(`./resources/${alphabet}/${peer}/data.json5`, JSON5.stringify(json)) 32 | } catch { 33 | continue 34 | } 35 | 36 | } 37 | } 38 | main() -------------------------------------------------------------------------------- /src/cmd/delete.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import fs from 'fs' 3 | import JSON5 from 'json5' 4 | const main = () => { 5 | const deleteLists = fs.readFileSync('./src/cmd/delete.txt').toString().split("\n") 6 | for (const delRaw of deleteLists) { 7 | const del = delRaw.replace('no cache:', '') 8 | const a = del.slice(0, 1) 9 | fs.unlinkSync(`./resources/${a}/${del}/data.json5`) 10 | fs.rmdirSync(`./resources/${a}/${del}`) 11 | } 12 | } 13 | 14 | const alphabets = [ 15 | 'a', 16 | 'b', 17 | 'c', 18 | 'd', 19 | 'e', 20 | 'f', 21 | 'g', 22 | 'h', 23 | 'i', 24 | 'j', 25 | 'k', 26 | 'l', 27 | 'm', 28 | 'n', 29 | 'o', 30 | 'p', 31 | 'q', 32 | 'r', 33 | 's', 34 | 't', 35 | 'u', 36 | 'v', 37 | 'w', 38 | 'x', 39 | 'y', 40 | 'z', 41 | '0', 42 | ] 43 | const empty = () => { 44 | 45 | for (const alphabet of alphabets) { 46 | if (!fs.existsSync(`./resources/${alphabet}`)) continue 47 | const dirs = fs.readdirSync(`./resources/${alphabet}`) 48 | for (const domain of dirs) { 49 | if (!fs.statSync(`./resources/${alphabet}/${domain}`).isDirectory()) continue 50 | if (!fs.existsSync(`./resources/${alphabet}/${domain}/data.json5`)) { 51 | fs.rmdirSync(`./resources/${alphabet}/${domain}`) 52 | } 53 | } 54 | } 55 | } 56 | const fillName = async () => { 57 | for (const alphabet of alphabets) { 58 | if (!fs.existsSync(`./resources/${alphabet}`)) continue 59 | const dirs = fs.readdirSync(`./resources/${alphabet}`) 60 | for (const domain of dirs) { 61 | if (!fs.statSync(`./resources/${alphabet}/${domain}`).isDirectory()) continue 62 | if (fs.existsSync(`./resources/${alphabet}/${domain}/data.json5`)) { 63 | const read = fs.readFileSync(`./resources/${alphabet}/${domain}/data.json5`).toString() 64 | const obj = JSON5.parse(read) 65 | if (!obj.name && obj.type === 'mastodon') { 66 | try { 67 | const instanceDataRaw = await axios.get(`https://${domain}/api/v1/instance`, { timeout: 5000 }) 68 | const instanceData = instanceDataRaw.data 69 | const name = instanceData.title 70 | if (name.length >= 15) continue 71 | console.log(domain, 'is', name) 72 | obj.name = name 73 | fs.writeFileSync(`./resources/${alphabet}/${domain}/data.json5`, JSON5.stringify(obj)) 74 | } catch { 75 | console.error('Error:', domain) 76 | const a = domain.slice(0, 1) 77 | fs.unlinkSync(`./resources/${a}/${domain}/data.json5`) 78 | fs.rmdirSync(`./resources/${a}/${domain}`) 79 | continue 80 | } 81 | } else if (!obj.name && obj.type === 'misskey') { 82 | try { 83 | const instanceDataRaw = await axios.get(`https://${domain}/nodeinfo/2.0`, { timeout: 5000 }) 84 | const instanceData = instanceDataRaw.data 85 | const name = instanceData.metadata.nodeName 86 | if (name.length >= 15) continue 87 | console.log(domain, 'is', name) 88 | obj.name = name 89 | fs.writeFileSync(`./resources/${alphabet}/${domain}/data.json5`, JSON5.stringify(obj)) 90 | } catch { 91 | console.error('Error:', domain) 92 | continue 93 | const a = domain.slice(0, 1) 94 | fs.unlinkSync(`./resources/${a}/${domain}/data.json5`) 95 | fs.rmdirSync(`./resources/${a}/${domain}`) 96 | continue 97 | } 98 | } 99 | } 100 | } 101 | } 102 | } 103 | fillName() -------------------------------------------------------------------------------- /src/create.ts: -------------------------------------------------------------------------------- 1 | import { IDetector, ISticker, IStickerOutPut } from '../interfaces/json5' 2 | import JSON5 from 'json5' 3 | import fs from 'fs' 4 | import { createCss } from './createCss' 5 | import { detector } from './detector' 6 | const alphabets = [ 7 | 'a', 8 | 'b', 9 | 'c', 10 | 'd', 11 | 'e', 12 | 'f', 13 | 'g', 14 | 'h', 15 | 'i', 16 | 'j', 17 | 'k', 18 | 'l', 19 | 'm', 20 | 'n', 21 | 'o', 22 | 'p', 23 | 'q', 24 | 'r', 25 | 's', 26 | 't', 27 | 'u', 28 | 'v', 29 | 'w', 30 | 'x', 31 | 'y', 32 | 'z', 33 | '0', 34 | ] 35 | const def = { 36 | mastodon: { 37 | bgColor: ['#26a'], 38 | fontColor: '#fff', 39 | }, 40 | pleroma: { 41 | bgColor: ['#123'], 42 | fontColor: '#da5', 43 | }, 44 | misskey: { 45 | bgColor: ['#444'], 46 | fontColor: '#3c9', 47 | }, 48 | misskeylegacy: { 49 | bgColor: ['#444'], 50 | fontColor: '#3c9', 51 | }, 52 | pixelfed: { 53 | bgColor: ['#fff'], 54 | fontColor: '#000', 55 | }, 56 | } 57 | /* 58 | チェック 59 | ・ドメイン名のバリデーション 60 | */ 61 | export default async function main() { 62 | let writeCache: { [key: string]: string } = {} 63 | let write = [] 64 | const cacheRaw = fs.readFileSync('./output/cache.json').toString() 65 | const cache = JSON.parse(cacheRaw) 66 | try { 67 | for (const alphabet of alphabets) { 68 | if (!fs.existsSync(`./resources/${alphabet}`)) continue 69 | const dirs = fs.readdirSync(`./resources/${alphabet}`) 70 | for (const domain of dirs) { 71 | if (!fs.statSync(`./resources/${alphabet}/${domain}`).isDirectory()) continue 72 | const camelCase = camelize(domain) 73 | if (domain == 'resources') continue 74 | if (domain.match(/[/\\]|\s/)) continue 75 | const read = fs.readFileSync(`./resources/${alphabet}/${domain}/data.json5`).toString() 76 | let obj: ISticker = JSON5.parse(read) 77 | let newObj: any = {} 78 | newObj.domain = domain 79 | obj.name ? (newObj.name = obj.name) : (newObj.name = domain) 80 | if (obj.bgColor) newObj.bgColor = obj.bgColor 81 | if (obj.fontColor) newObj.fontColor = obj.fontColor 82 | newObj.type = obj.type 83 | if (!obj.favicon) { 84 | if (!cache || !cache[domain]) { 85 | console.log('no cache:' + domain) 86 | let json: IDetector 87 | try { 88 | json = await detector(null, domain) 89 | } catch { 90 | continue 91 | } 92 | if (!json.success) continue 93 | let favicon: string = '' 94 | const type = json.type 95 | let assets 96 | if (type == 'mastodon') assets = 'md' 97 | if (type == 'pleroma') assets = 'pl' 98 | if (type == 'misskey') assets = 'mi' 99 | if (type == 'misskeylegacy') assets = 'ml' 100 | if (type == 'pixelfed') assets = 'pf' 101 | if (!json.isDefault) { 102 | favicon = `https://images.weserv.nl/?url=${encodeURI(json.url)}&output=png&w=15` 103 | } else { 104 | favicon = `https://s.0px.io/a/${assets}.png` 105 | } 106 | let rawFavicon = favicon 107 | newObj.withoutCDN = rawFavicon 108 | if (!json.isDefault) rawFavicon = json.url 109 | newObj.isDefault = false 110 | if (json.isDefault && !obj.bgColor && !obj.fontColor) newObj.isDefault = true 111 | newObj.favicon = favicon 112 | writeCache[domain] = rawFavicon 113 | } else { 114 | newObj.withoutCDN = cache[domain] 115 | if (obj.favicon) newObj.favicon = obj.favicon 116 | newObj.isDefault = false 117 | if (!obj.favicon) { 118 | if (~cache[domain].indexOf('https://s.0px.io/a/')) { 119 | newObj.isDefault = true 120 | newObj.favicon = cache[domain] 121 | } else { 122 | newObj.favicon = `https://images.weserv.nl/?url=${encodeURI(cache[domain])}&output=png&w=15` 123 | } 124 | } 125 | writeCache[domain] = cache[domain] 126 | } 127 | } else { 128 | //どこかに画像を置いてもらうことになるよな… 129 | newObj.favicon = `https://images.weserv.nl/?url=${encodeURI(obj.favicon)}&output=png&w=15` 130 | newObj.withoutCDN = obj.favicon 131 | } 132 | write.push(newObj) 133 | } 134 | } 135 | const output = { 136 | data: write, 137 | updated: new Date().toString(), 138 | default: def, 139 | } 140 | fs.writeFileSync('./output/data.json', JSON.stringify(output)) 141 | fs.writeFileSync('./output/cache.json', JSON.stringify(writeCache)) 142 | createCss(output, 'mastodon') 143 | } catch (e) { 144 | console.error(e) 145 | fs.writeFileSync('./output/cache.json', JSON.stringify(writeCache)) 146 | } 147 | } 148 | main() 149 | 150 | function camelize(str: string) { 151 | let arr = str.split('.') 152 | let output = '' 153 | for (let i = 0; i < arr.length; i++) { 154 | let target = arr[i] 155 | if (i > 0) { 156 | output = output + target.substr(0, 1).toUpperCase() + target.substr(1) 157 | } 158 | if (i === 0) output = target 159 | } 160 | return output 161 | } 162 | -------------------------------------------------------------------------------- /src/createCss.ts: -------------------------------------------------------------------------------- 1 | import { IDataJson, IStickerOutPut } from '../interfaces/json5' 2 | import fs from 'fs' 3 | const decoder = new TextDecoder('utf-8') 4 | const mastodon = fs.readFileSync('./template/mastodon.sticker').toString() 5 | const append = { 6 | mastodon: mastodon 7 | } 8 | const sticker = fs.readFileSync('./template/sticker.sticker').toString() 9 | const twoLetters = { 10 | mastodon: 'md', 11 | pleroma: 'pl', 12 | misskey: 'mi', 13 | misskeylegacy: 'ml', 14 | pixelfed: 'pf', 15 | } 16 | 17 | export function createCss (raw: IDataJson, type: 'mastodon') { 18 | const obj = raw.data 19 | let output = '' 20 | for (let i = 0; i < obj.length; i++) { 21 | const target = obj[i] 22 | let { domain, name, bgColor, fontColor, favicon } = target 23 | const type = target.type as 'mastodon' | 'pleroma' | 'misskey' | 'misskeylegacy' | 'pixelfed' 24 | if (!name) name = domain 25 | const tl = twoLetters[type] 26 | let bgColorCSS = `var(--${tl})` 27 | let bgColorTCSS = `var(--${tl}t)` 28 | if (bgColor) { 29 | bgColorCSS = '' 30 | bgColorTCSS = '' 31 | for (let j = 0; j < bgColor.length; j++) { 32 | const bg = bgColor[j] 33 | bgColorCSS = bgColorCSS + bg + ',' 34 | bgColorTCSS = bgColorTCSS + bg + ' 84%,' 35 | } 36 | bgColorCSS = `linear-gradient(90deg, ${bgColorCSS} transparent)` 37 | bgColorTCSS = `linear-gradient(90deg, ${bgColorTCSS} transparent)` 38 | } 39 | let isDefault = false 40 | if (favicon == `https://s.0px.io/a/${tl}`) isDefault = true 41 | let faviconCSS = `no-repeat url('${favicon}')` 42 | if (isDefault) faviconCSS = `var(--${tl}f)` 43 | if (!fontColor) fontColor = `var(--${tl}c)` 44 | const str = sticker 45 | .replace(/{{domain}}/g, domain) 46 | .replace(/{{name}}/g, name) 47 | .replace(/{{bg}}/g, bgColorCSS) 48 | .replace(/{{bgt}}/g, bgColorTCSS) 49 | .replace(/{{favicon}}/g, faviconCSS) 50 | .replace(/{{color}}/g, fontColor) 51 | output = output + str 52 | } 53 | const css = append[type].replace(/{{updated}}/g, raw.updated) + output 54 | fs.writeFileSync('./output/data.css', css) 55 | } 56 | -------------------------------------------------------------------------------- /src/detector.ts: -------------------------------------------------------------------------------- 1 | import Jimp from 'jimp' 2 | import axios from 'axios' 3 | import superagent from 'superagent' 4 | import cheerio from 'cheerio' 5 | import url from 'url' 6 | import { IType } from '../interfaces/config' 7 | 8 | export const detector = async (type: IType | null, domain: string) => { 9 | if (domain === 'vivaldi.net') domain = 'social.vivaldi.net' 10 | let file = null 11 | if (!type) type = await detect(domain) 12 | if (!type) throw { success: false } 13 | const result = await axios.get(`https://${domain}`, { timeout: 10000, responseType: 'text' }) 14 | const $ = cheerio.load(result.data) 15 | file = $('link[rel=icon]').attr('href') 16 | if (!file) file = 'favicon.ico' 17 | file = url.resolve(`https://${domain}`, file) 18 | if (!file) throw { success: false } 19 | const gotimg = await Jimp.read(`https://images.weserv.nl/?url=${file}&output=png&w=50`) 20 | const compared = await getCompared(type) 21 | const diff = Jimp.distance(gotimg, compared) 22 | const isDefault = diff < 0.3 23 | return { success: true, difference: diff, type: type, isDefault: isDefault, url: file } 24 | } 25 | async function getCompared(type: null | string) { 26 | let file 27 | if (type == 'mastodon') file = 'mastodon.png' 28 | if (type == 'pleroma') file = 'pleroma.png' 29 | if (type == 'misskey') file = 'misskey.png' 30 | if (type == 'misskeylegacy') file = 'misskeyv11.png' 31 | if (type == 'pixelfed') file = 'pixelfed.png' 32 | const res = await Jimp.read('assets/' + file) 33 | const resized = res.resize(50, Jimp.AUTO) 34 | return resized 35 | } 36 | async function detect(domain: string) { 37 | if (domain === 'vivaldi.net') domain = 'social.vivaldi.net' 38 | let type: IType 39 | try { 40 | const donOrKey = await axios.get(`https://${domain}/favicon.ico`, { timeout: 5000 }) 41 | if (donOrKey.headers['content-type'] == 'text/html; charset=utf-8') throw 0 42 | try { 43 | const mastodon = await axios.get(`https://${domain}/api/v1/instance`, { timeout: 5000 }) 44 | type = 'mastodon' 45 | } catch { 46 | //Misskeyである可能性 47 | try { 48 | const misskey = await axios.get(`https://${domain}/nodeinfo/2.0`, { timeout: 5000 }) 49 | //13以降の動向が不明 50 | let v11 = false 51 | let data = misskey.data 52 | if (data.software.name === 'misskey') type = 'misskey' 53 | } catch (e) { 54 | type = null 55 | } 56 | } 57 | } catch { 58 | try { 59 | const isFedi = await axios.get(`https://${domain}/api/v1/instance`, { timeout: 5000 }) 60 | try { 61 | const pleroma = await axios.get(`https://${domain}/favicon.png`, { timeout: 5000 }) 62 | //Pleroma 63 | type = 'pleroma' 64 | } catch { 65 | //PixelFed 66 | type = 'pixelfed' 67 | } 68 | } catch { 69 | type = null 70 | } 71 | } 72 | return type 73 | } 74 | export const getName = async (type: IType, domain: string) => { 75 | if (domain === 'vivaldi.net') domain = 'social.vivaldi.net' 76 | if (type === 'mastodon' || type === 'pleroma') { 77 | const instanceDataRaw = await axios.get(`https://${domain}/api/v1/instance`, { timeout: 5000 }) 78 | const instanceData = instanceDataRaw.data 79 | return instanceData.title 80 | } else if (type === 'misskey') { 81 | const instanceDataRaw = await axios.get(`https://${domain}/nodeinfo/2.0`, { timeout: 5000 }) 82 | const instanceData = instanceDataRaw.data 83 | return instanceData.metadata.nodeName 84 | } 85 | } -------------------------------------------------------------------------------- /static/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/static/md.png -------------------------------------------------------------------------------- /static/mi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/static/mi.png -------------------------------------------------------------------------------- /static/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/static/ml.png -------------------------------------------------------------------------------- /static/pf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/static/pf.png -------------------------------------------------------------------------------- /static/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cutls/OpenSticker/546f4038ef9a5a7b3aadd9e1d32d22ff6cee4216/static/pl.png -------------------------------------------------------------------------------- /template/mastodon.sticker: -------------------------------------------------------------------------------- 1 | /* 2 | OpenSticker {{updated}} under MIT LICENSE 3 | (c)2020 weep, kyori19, cutls 4 | */ 5 | :root{--md:linear-gradient(90deg,#26a,transparent);--mdt:linear-gradient(90deg,#26a 84%,transparent);--mdc:#fff;--mdf:no-repeat url(https://s.0px.io/a/md);--pl:linear-gradient(90deg,#123,transparent);--plt:linear-gradient(90deg,#123 84%,transparent);--plc:#da5;--plf:no-repeat url(https://s.0px.io/a/pl);--mi:linear-gradient(90deg,#444,transparent);--mit:linear-gradient(90deg,#444 84%,transparent);--mic:#3c9;--mif:no-repeat url(https://s.0px.io/a/mi);--ml:linear-gradient(90deg,#444,transparent);--mlt:linear-gradient(90deg,#444 84%,transparent);--mlc:#3c9;--mlf:no-repeat url(https://s.0px.io/a/ml);--pf:linear-gradient(90deg,#fff,transparent);--pft:linear-gradient(90deg,#fff 84%,transparent);--pfc:#000;--pff:no-repeat url(https://s.0px.io/a/pf)} 6 | .status .display-name:after{display:block!important;padding-left:1pc!important}.notification__display-name:after,.status .display-name:after,.status__display-name.muted:after{font-size:9pt!important;height:1pc!important;white-space:pre!important;text-overflow:ellipsis!important;font-weight:bolder!important;background-repeat:no-repeat,no-repeat!important}.notification__display-name:after,.status__display-name.muted:after{display:inline!important;padding:0 1pc!important;margin:0!important;opacity:.4!important} 7 | -------------------------------------------------------------------------------- /template/sticker.sticker: -------------------------------------------------------------------------------- 1 | .status a[href^='https://{{domain}}/'] .display-name::after{color:{{color}} !important;background:{{favicon}},{{bg}}!important;background-repeat:no-repeat,no-repeat !important;content:'{{name}}' !important}.status__display-name[href^='https://{{domain}}/'].muted::after,.notification__display-name[href^='https://{{domain}}/']::after{color:{{color}} !important;background:{{favicon}},{{bgt}}!important;background-repeat:no-repeat,no-repeat !important;content:'{{name}}' !important} -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Basic Options */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | "target": "ES2019", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ 8 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 9 | // "lib": [], /* Specify library files to be included in the compilation. */ 10 | // "allowJs": true, /* Allow javascript files to be compiled. */ 11 | // "checkJs": true, /* Report errors in .js files. */ 12 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 13 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 14 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 15 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 16 | // "outFile": "./", /* Concatenate and emit output to single file. */ 17 | "outDir": "./dist", /* Redirect output structure to the directory. */ 18 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 19 | // "composite": true, /* Enable project compilation */ 20 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | 43 | /* Module Resolution Options */ 44 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 45 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 46 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 47 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 48 | // "typeRoots": [], /* List of folders to include type definitions from. */ 49 | // "types": [], /* Type declaration files to be included in compilation. */ 50 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 51 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 52 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 53 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 54 | 55 | /* Source Map Options */ 56 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 57 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 58 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 59 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 60 | 61 | /* Experimental Options */ 62 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 63 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 64 | 65 | /* Advanced Options */ 66 | "skipLibCheck": true, /* Skip type checking of declaration files. */ 67 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.7.2": 6 | version "7.10.5" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" 8 | integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== 9 | dependencies: 10 | regenerator-runtime "^0.13.4" 11 | 12 | "@jimp/bmp@^0.14.0": 13 | version "0.14.0" 14 | resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.14.0.tgz#6df246026554f276f7b354047c6fff9f5b2b5182" 15 | integrity sha512-5RkX6tSS7K3K3xNEb2ygPuvyL9whjanhoaB/WmmXlJS6ub4DjTqrapu8j4qnIWmO4YYtFeTbDTXV6v9P1yMA5A== 16 | dependencies: 17 | "@babel/runtime" "^7.7.2" 18 | "@jimp/utils" "^0.14.0" 19 | bmp-js "^0.1.0" 20 | 21 | "@jimp/core@^0.14.0": 22 | version "0.14.0" 23 | resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.14.0.tgz#870c9ca25b40be353ebda1d2abb48723d9010055" 24 | integrity sha512-S62FcKdtLtj3yWsGfJRdFXSutjvHg7aQNiFogMbwq19RP4XJWqS2nOphu7ScB8KrSlyy5nPF2hkWNhLRLyD82w== 25 | dependencies: 26 | "@babel/runtime" "^7.7.2" 27 | "@jimp/utils" "^0.14.0" 28 | any-base "^1.1.0" 29 | buffer "^5.2.0" 30 | exif-parser "^0.1.12" 31 | file-type "^9.0.0" 32 | load-bmfont "^1.3.1" 33 | mkdirp "^0.5.1" 34 | phin "^2.9.1" 35 | pixelmatch "^4.0.2" 36 | tinycolor2 "^1.4.1" 37 | 38 | "@jimp/custom@^0.14.0": 39 | version "0.14.0" 40 | resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.14.0.tgz#1dbbf0094df7403f4e03bc984ed92e7458842f74" 41 | integrity sha512-kQJMeH87+kWJdVw8F9GQhtsageqqxrvzg7yyOw3Tx/s7v5RToe8RnKyMM+kVtBJtNAG+Xyv/z01uYQ2jiZ3GwA== 42 | dependencies: 43 | "@babel/runtime" "^7.7.2" 44 | "@jimp/core" "^0.14.0" 45 | 46 | "@jimp/gif@^0.14.0": 47 | version "0.14.0" 48 | resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.14.0.tgz#db159f57c3cfd1566bbe8b124958791998614960" 49 | integrity sha512-DHjoOSfCaCz72+oGGEh8qH0zE6pUBaBxPxxmpYJjkNyDZP7RkbBkZJScIYeQ7BmJxmGN4/dZn+MxamoQlr+UYg== 50 | dependencies: 51 | "@babel/runtime" "^7.7.2" 52 | "@jimp/utils" "^0.14.0" 53 | gifwrap "^0.9.2" 54 | omggif "^1.0.9" 55 | 56 | "@jimp/jpeg@^0.14.0": 57 | version "0.14.0" 58 | resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.14.0.tgz#8a687a6a653bbbae38c522edef8f84bb418d9461" 59 | integrity sha512-561neGbr+87S/YVQYnZSTyjWTHBm9F6F1obYHiyU3wVmF+1CLbxY3FQzt4YolwyQHIBv36Bo0PY2KkkU8BEeeQ== 60 | dependencies: 61 | "@babel/runtime" "^7.7.2" 62 | "@jimp/utils" "^0.14.0" 63 | jpeg-js "^0.4.0" 64 | 65 | "@jimp/plugin-blit@^0.14.0": 66 | version "0.14.0" 67 | resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.14.0.tgz#5eb374be1201313b2113899fb842232d8fcfd345" 68 | integrity sha512-YoYOrnVHeX3InfgbJawAU601iTZMwEBZkyqcP1V/S33Qnz9uzH1Uj1NtC6fNgWzvX6I4XbCWwtr4RrGFb5CFrw== 69 | dependencies: 70 | "@babel/runtime" "^7.7.2" 71 | "@jimp/utils" "^0.14.0" 72 | 73 | "@jimp/plugin-blur@^0.14.0": 74 | version "0.14.0" 75 | resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.14.0.tgz#fe07e4932d5a2f5d8c9831e245561553224bfc60" 76 | integrity sha512-9WhZcofLrT0hgI7t0chf7iBQZib//0gJh9WcQMUt5+Q1Bk04dWs8vTgLNj61GBqZXgHSPzE4OpCrrLDBG8zlhQ== 77 | dependencies: 78 | "@babel/runtime" "^7.7.2" 79 | "@jimp/utils" "^0.14.0" 80 | 81 | "@jimp/plugin-circle@^0.14.0": 82 | version "0.14.0" 83 | resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.14.0.tgz#82c0e904a34e90fa672fb9c286bc892e92088ddf" 84 | integrity sha512-o5L+wf6QA44tvTum5HeLyLSc5eVfIUd5ZDVi5iRfO4o6GT/zux9AxuTSkKwnjhsG8bn1dDmywAOQGAx7BjrQVA== 85 | dependencies: 86 | "@babel/runtime" "^7.7.2" 87 | "@jimp/utils" "^0.14.0" 88 | 89 | "@jimp/plugin-color@^0.14.0": 90 | version "0.14.0" 91 | resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.14.0.tgz#772bd2d80a88bc66ea1331d010207870f169a74b" 92 | integrity sha512-JJz512SAILYV0M5LzBb9sbOm/XEj2fGElMiHAxb7aLI6jx+n0agxtHpfpV/AePTLm1vzzDxx6AJxXbKv355hBQ== 93 | dependencies: 94 | "@babel/runtime" "^7.7.2" 95 | "@jimp/utils" "^0.14.0" 96 | tinycolor2 "^1.4.1" 97 | 98 | "@jimp/plugin-contain@^0.14.0": 99 | version "0.14.0" 100 | resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.14.0.tgz#c68115420d182e696f81bbe76fb5e704909b2b6a" 101 | integrity sha512-RX2q233lGyaxiMY6kAgnm9ScmEkNSof0hdlaJAVDS1OgXphGAYAeSIAwzESZN4x3ORaWvkFefeVH9O9/698Evg== 102 | dependencies: 103 | "@babel/runtime" "^7.7.2" 104 | "@jimp/utils" "^0.14.0" 105 | 106 | "@jimp/plugin-cover@^0.14.0": 107 | version "0.14.0" 108 | resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.14.0.tgz#4755322589c5885e44e14e31b86b542e907297ce" 109 | integrity sha512-0P/5XhzWES4uMdvbi3beUgfvhn4YuQ/ny8ijs5kkYIw6K8mHcl820HahuGpwWMx56DJLHRl1hFhJwo9CeTRJtQ== 110 | dependencies: 111 | "@babel/runtime" "^7.7.2" 112 | "@jimp/utils" "^0.14.0" 113 | 114 | "@jimp/plugin-crop@^0.14.0": 115 | version "0.14.0" 116 | resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.14.0.tgz#4cbd856ca84ffc37230fad2534906f2f75aa3057" 117 | integrity sha512-Ojtih+XIe6/XSGtpWtbAXBozhCdsDMmy+THUJAGu2x7ZgKrMS0JotN+vN2YC3nwDpYkM+yOJImQeptSfZb2Sug== 118 | dependencies: 119 | "@babel/runtime" "^7.7.2" 120 | "@jimp/utils" "^0.14.0" 121 | 122 | "@jimp/plugin-displace@^0.14.0": 123 | version "0.14.0" 124 | resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.14.0.tgz#b0e6a57d00cb1f893f541413fe9d737d23c3b70c" 125 | integrity sha512-c75uQUzMgrHa8vegkgUvgRL/PRvD7paFbFJvzW0Ugs8Wl+CDMGIPYQ3j7IVaQkIS+cAxv+NJ3TIRBQyBrfVEOg== 126 | dependencies: 127 | "@babel/runtime" "^7.7.2" 128 | "@jimp/utils" "^0.14.0" 129 | 130 | "@jimp/plugin-dither@^0.14.0": 131 | version "0.14.0" 132 | resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.14.0.tgz#9185ec4c38e02edc9e5831f5d709f6ba891e1b93" 133 | integrity sha512-g8SJqFLyYexXQQsoh4dc1VP87TwyOgeTElBcxSXX2LaaMZezypmxQfLTzOFzZoK8m39NuaoH21Ou1Ftsq7LzVQ== 134 | dependencies: 135 | "@babel/runtime" "^7.7.2" 136 | "@jimp/utils" "^0.14.0" 137 | 138 | "@jimp/plugin-fisheye@^0.14.0": 139 | version "0.14.0" 140 | resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.14.0.tgz#9f26346cf2fbc660cc2008cd7fd30a83b5029e78" 141 | integrity sha512-BFfUZ64EikCaABhCA6mR3bsltWhPpS321jpeIQfJyrILdpFsZ/OccNwCgpW1XlbldDHIoNtXTDGn3E+vCE7vDg== 142 | dependencies: 143 | "@babel/runtime" "^7.7.2" 144 | "@jimp/utils" "^0.14.0" 145 | 146 | "@jimp/plugin-flip@^0.14.0": 147 | version "0.14.0" 148 | resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.14.0.tgz#7966d6aa3b5fe1aa4d2d561ff12b8ef5ccb9b071" 149 | integrity sha512-WtL1hj6ryqHhApih+9qZQYA6Ye8a4HAmdTzLbYdTMrrrSUgIzFdiZsD0WeDHpgS/+QMsWwF+NFmTZmxNWqKfXw== 150 | dependencies: 151 | "@babel/runtime" "^7.7.2" 152 | "@jimp/utils" "^0.14.0" 153 | 154 | "@jimp/plugin-gaussian@^0.14.0": 155 | version "0.14.0" 156 | resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.14.0.tgz#452bc1971a4467ad9b984aa67f4c200bf941bb65" 157 | integrity sha512-uaLwQ0XAQoydDlF9tlfc7iD9drYPriFe+jgYnWm8fbw5cN+eOIcnneEX9XCOOzwgLPkNCxGox6Kxjn8zY6GxtQ== 158 | dependencies: 159 | "@babel/runtime" "^7.7.2" 160 | "@jimp/utils" "^0.14.0" 161 | 162 | "@jimp/plugin-invert@^0.14.0": 163 | version "0.14.0" 164 | resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.14.0.tgz#cd31a555860e9f821394936d15af161c09c42921" 165 | integrity sha512-UaQW9X9vx8orQXYSjT5VcITkJPwDaHwrBbxxPoDG+F/Zgv4oV9fP+udDD6qmkgI9taU+44Fy+zm/J/gGcMWrdg== 166 | dependencies: 167 | "@babel/runtime" "^7.7.2" 168 | "@jimp/utils" "^0.14.0" 169 | 170 | "@jimp/plugin-mask@^0.14.0": 171 | version "0.14.0" 172 | resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.14.0.tgz#52619643ac6222f85e6b27dee33c771ca3a6a4c9" 173 | integrity sha512-tdiGM69OBaKtSPfYSQeflzFhEpoRZ+BvKfDEoivyTjauynbjpRiwB1CaiS8En1INTDwzLXTT0Be9SpI3LkJoEA== 174 | dependencies: 175 | "@babel/runtime" "^7.7.2" 176 | "@jimp/utils" "^0.14.0" 177 | 178 | "@jimp/plugin-normalize@^0.14.0": 179 | version "0.14.0" 180 | resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.14.0.tgz#bf39e356b6d473f582ce95633ad49c9cdb82492b" 181 | integrity sha512-AfY8sqlsbbdVwFGcyIPy5JH/7fnBzlmuweb+Qtx2vn29okq6+HelLjw2b+VT2btgGUmWWHGEHd86oRGSoWGyEQ== 182 | dependencies: 183 | "@babel/runtime" "^7.7.2" 184 | "@jimp/utils" "^0.14.0" 185 | 186 | "@jimp/plugin-print@^0.14.0": 187 | version "0.14.0" 188 | resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.14.0.tgz#1c43c2a92a7adc05b464863882cb89ce486d63e6" 189 | integrity sha512-MwP3sH+VS5AhhSTXk7pui+tEJFsxnTKFY3TraFJb8WFbA2Vo2qsRCZseEGwpTLhENB7p/JSsLvWoSSbpmxhFAQ== 190 | dependencies: 191 | "@babel/runtime" "^7.7.2" 192 | "@jimp/utils" "^0.14.0" 193 | load-bmfont "^1.4.0" 194 | 195 | "@jimp/plugin-resize@^0.14.0": 196 | version "0.14.0" 197 | resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.14.0.tgz#ef7fc6c2e45f8bcab62456baf8fd3bc415b02b64" 198 | integrity sha512-qFeMOyXE/Bk6QXN0GQo89+CB2dQcXqoxUcDb2Ah8wdYlKqpi53skABkgVy5pW3EpiprDnzNDboMltdvDslNgLQ== 199 | dependencies: 200 | "@babel/runtime" "^7.7.2" 201 | "@jimp/utils" "^0.14.0" 202 | 203 | "@jimp/plugin-rotate@^0.14.0": 204 | version "0.14.0" 205 | resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.14.0.tgz#3632bc159bf1c3b9ec9f459d9c05d02a11781ee7" 206 | integrity sha512-aGaicts44bvpTcq5Dtf93/8TZFu5pMo/61lWWnYmwJJU1RqtQlxbCLEQpMyRhKDNSfPbuP8nyGmaqXlM/82J0Q== 207 | dependencies: 208 | "@babel/runtime" "^7.7.2" 209 | "@jimp/utils" "^0.14.0" 210 | 211 | "@jimp/plugin-scale@^0.14.0": 212 | version "0.14.0" 213 | resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.14.0.tgz#d30f0cd1365b8e68f43fa423300ae7f124e9bf10" 214 | integrity sha512-ZcJk0hxY5ZKZDDwflqQNHEGRblgaR+piePZm7dPwPUOSeYEH31P0AwZ1ziceR74zd8N80M0TMft+e3Td6KGBHw== 215 | dependencies: 216 | "@babel/runtime" "^7.7.2" 217 | "@jimp/utils" "^0.14.0" 218 | 219 | "@jimp/plugin-shadow@^0.14.0": 220 | version "0.14.0" 221 | resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.14.0.tgz#471fdb9f109ff2d9e20d533d45e1e18e0b48c749" 222 | integrity sha512-p2igcEr/iGrLiTu0YePNHyby0WYAXM14c5cECZIVnq/UTOOIQ7xIcWZJ1lRbAEPxVVXPN1UibhZAbr3HAb5BjQ== 223 | dependencies: 224 | "@babel/runtime" "^7.7.2" 225 | "@jimp/utils" "^0.14.0" 226 | 227 | "@jimp/plugin-threshold@^0.14.0": 228 | version "0.14.0" 229 | resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.14.0.tgz#ebd72721c7d1d518c5bb6e494e55d97ac3351d3b" 230 | integrity sha512-N4BlDgm/FoOMV/DQM2rSpzsgqAzkP0DXkWZoqaQrlRxQBo4zizQLzhEL00T/YCCMKnddzgEhnByaocgaaa0fKw== 231 | dependencies: 232 | "@babel/runtime" "^7.7.2" 233 | "@jimp/utils" "^0.14.0" 234 | 235 | "@jimp/plugins@^0.14.0": 236 | version "0.14.0" 237 | resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.14.0.tgz#41dba85f15ab8dadb4162100eb54e5f27b93ee2c" 238 | integrity sha512-vDO3XT/YQlFlFLq5TqNjQkISqjBHT8VMhpWhAfJVwuXIpilxz5Glu4IDLK6jp4IjPR6Yg2WO8TmRY/HI8vLrOw== 239 | dependencies: 240 | "@babel/runtime" "^7.7.2" 241 | "@jimp/plugin-blit" "^0.14.0" 242 | "@jimp/plugin-blur" "^0.14.0" 243 | "@jimp/plugin-circle" "^0.14.0" 244 | "@jimp/plugin-color" "^0.14.0" 245 | "@jimp/plugin-contain" "^0.14.0" 246 | "@jimp/plugin-cover" "^0.14.0" 247 | "@jimp/plugin-crop" "^0.14.0" 248 | "@jimp/plugin-displace" "^0.14.0" 249 | "@jimp/plugin-dither" "^0.14.0" 250 | "@jimp/plugin-fisheye" "^0.14.0" 251 | "@jimp/plugin-flip" "^0.14.0" 252 | "@jimp/plugin-gaussian" "^0.14.0" 253 | "@jimp/plugin-invert" "^0.14.0" 254 | "@jimp/plugin-mask" "^0.14.0" 255 | "@jimp/plugin-normalize" "^0.14.0" 256 | "@jimp/plugin-print" "^0.14.0" 257 | "@jimp/plugin-resize" "^0.14.0" 258 | "@jimp/plugin-rotate" "^0.14.0" 259 | "@jimp/plugin-scale" "^0.14.0" 260 | "@jimp/plugin-shadow" "^0.14.0" 261 | "@jimp/plugin-threshold" "^0.14.0" 262 | timm "^1.6.1" 263 | 264 | "@jimp/png@^0.14.0": 265 | version "0.14.0" 266 | resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.14.0.tgz#0f2dddb5125c0795ca7e67c771204c5437fcda4b" 267 | integrity sha512-0RV/mEIDOrPCcNfXSPmPBqqSZYwGADNRVUTyMt47RuZh7sugbYdv/uvKmQSiqRdR0L1sfbCBMWUEa5G/8MSbdA== 268 | dependencies: 269 | "@babel/runtime" "^7.7.2" 270 | "@jimp/utils" "^0.14.0" 271 | pngjs "^3.3.3" 272 | 273 | "@jimp/tiff@^0.14.0": 274 | version "0.14.0" 275 | resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.14.0.tgz#a5b25bbe7c43fc3b07bad4e2ab90e0e164c1967f" 276 | integrity sha512-zBYDTlutc7j88G/7FBCn3kmQwWr0rmm1e0FKB4C3uJ5oYfT8645lftUsvosKVUEfkdmOaMAnhrf4ekaHcb5gQw== 277 | dependencies: 278 | "@babel/runtime" "^7.7.2" 279 | utif "^2.0.1" 280 | 281 | "@jimp/types@^0.14.0": 282 | version "0.14.0" 283 | resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.14.0.tgz#ef681ff702883c5f105b5e4e30d49abf39ee9e34" 284 | integrity sha512-hx3cXAW1KZm+b+XCrY3LXtdWy2U+hNtq0rPyJ7NuXCjU7lZR3vIkpz1DLJ3yDdS70hTi5QDXY3Cd9kd6DtloHQ== 285 | dependencies: 286 | "@babel/runtime" "^7.7.2" 287 | "@jimp/bmp" "^0.14.0" 288 | "@jimp/gif" "^0.14.0" 289 | "@jimp/jpeg" "^0.14.0" 290 | "@jimp/png" "^0.14.0" 291 | "@jimp/tiff" "^0.14.0" 292 | timm "^1.6.1" 293 | 294 | "@jimp/utils@^0.14.0": 295 | version "0.14.0" 296 | resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.14.0.tgz#296254e63118554c62c31c19ac6b8c4bfe6490e5" 297 | integrity sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A== 298 | dependencies: 299 | "@babel/runtime" "^7.7.2" 300 | regenerator-runtime "^0.13.3" 301 | 302 | "@types/accepts@*": 303 | version "1.3.5" 304 | resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" 305 | integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== 306 | dependencies: 307 | "@types/node" "*" 308 | 309 | "@types/body-parser@*": 310 | version "1.19.0" 311 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" 312 | integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 313 | dependencies: 314 | "@types/connect" "*" 315 | "@types/node" "*" 316 | 317 | "@types/cheerio@^0.22.21": 318 | version "0.22.21" 319 | resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" 320 | integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== 321 | dependencies: 322 | "@types/node" "*" 323 | 324 | "@types/connect@*": 325 | version "3.4.33" 326 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" 327 | integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== 328 | dependencies: 329 | "@types/node" "*" 330 | 331 | "@types/content-disposition@*": 332 | version "0.5.3" 333 | resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" 334 | integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== 335 | 336 | "@types/cookiejar@*": 337 | version "2.1.1" 338 | resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" 339 | integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== 340 | 341 | "@types/cookies@*": 342 | version "0.7.4" 343 | resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" 344 | integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== 345 | dependencies: 346 | "@types/connect" "*" 347 | "@types/express" "*" 348 | "@types/keygrip" "*" 349 | "@types/node" "*" 350 | 351 | "@types/express-serve-static-core@*": 352 | version "4.17.9" 353 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1" 354 | integrity sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA== 355 | dependencies: 356 | "@types/node" "*" 357 | "@types/qs" "*" 358 | "@types/range-parser" "*" 359 | 360 | "@types/express@*": 361 | version "4.17.7" 362 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59" 363 | integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== 364 | dependencies: 365 | "@types/body-parser" "*" 366 | "@types/express-serve-static-core" "*" 367 | "@types/qs" "*" 368 | "@types/serve-static" "*" 369 | 370 | "@types/http-assert@*": 371 | version "1.5.1" 372 | resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" 373 | integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== 374 | 375 | "@types/jimp@^0.2.28": 376 | version "0.2.28" 377 | resolved "https://registry.yarnpkg.com/@types/jimp/-/jimp-0.2.28.tgz#88dc2aae028eca50008d70c2f6926b2a2d4f30e7" 378 | integrity sha512-nLIVbImtcaEf90y2XQsMzfgWK5EZxfDg6EVWobrkFTFJiLqmx/yU5Jh+LYUN94ztzXX1GwQLFYHaEi8tfMeZzw== 379 | dependencies: 380 | jimp "*" 381 | 382 | "@types/keygrip@*": 383 | version "1.0.2" 384 | resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" 385 | integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== 386 | 387 | "@types/koa-compose@*": 388 | version "3.2.5" 389 | resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" 390 | integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== 391 | dependencies: 392 | "@types/koa" "*" 393 | 394 | "@types/koa-router@^7.4.1": 395 | version "7.4.1" 396 | resolved "https://registry.yarnpkg.com/@types/koa-router/-/koa-router-7.4.1.tgz#3702a4cabe4558cc4eec70d5574acc04beecff7c" 397 | integrity sha512-Hg78TXz78QYfEgdq3nTeRmQFEwJKZljsXb/DhtexmyrpRDRnl59oMglh9uPj3/WgKor0woANrYTnxA8gaWGK2A== 398 | dependencies: 399 | "@types/koa" "*" 400 | 401 | "@types/koa@*", "@types/koa@^2.11.3": 402 | version "2.11.3" 403 | resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.3.tgz#540ece376581b12beadf9a417dd1731bc31c16ce" 404 | integrity sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q== 405 | dependencies: 406 | "@types/accepts" "*" 407 | "@types/content-disposition" "*" 408 | "@types/cookies" "*" 409 | "@types/http-assert" "*" 410 | "@types/keygrip" "*" 411 | "@types/koa-compose" "*" 412 | "@types/node" "*" 413 | 414 | "@types/mime@*": 415 | version "2.0.3" 416 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" 417 | integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== 418 | 419 | "@types/node@*", "@types/node@^14.0.26": 420 | version "14.0.26" 421 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.26.tgz#22a3b8a46510da8944b67bfc27df02c34a35331c" 422 | integrity sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA== 423 | 424 | "@types/qs@*": 425 | version "6.9.4" 426 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" 427 | integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== 428 | 429 | "@types/range-parser@*": 430 | version "1.2.3" 431 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 432 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 433 | 434 | "@types/serve-static@*": 435 | version "1.13.4" 436 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.4.tgz#6662a93583e5a6cabca1b23592eb91e12fa80e7c" 437 | integrity sha512-jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug== 438 | dependencies: 439 | "@types/express-serve-static-core" "*" 440 | "@types/mime" "*" 441 | 442 | "@types/superagent@^4.1.8": 443 | version "4.1.8" 444 | resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-4.1.8.tgz#f663dcdd24705e07fce055003ace9b824f2a51c9" 445 | integrity sha512-iol9KxQ7SLHatBJUiZ4uABrS4VS1frLjqPednxZz82eoCzo3Uy3TOH0p0ZIBbfBj8E/xqOtvizjBs9h7xi/l2g== 446 | dependencies: 447 | "@types/cookiejar" "*" 448 | "@types/node" "*" 449 | 450 | accepts@^1.3.5: 451 | version "1.3.7" 452 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 453 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 454 | dependencies: 455 | mime-types "~2.1.24" 456 | negotiator "0.6.2" 457 | 458 | any-base@^1.1.0: 459 | version "1.1.0" 460 | resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" 461 | integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== 462 | 463 | any-promise@^1.1.0: 464 | version "1.3.0" 465 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 466 | integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 467 | 468 | arg@^4.1.0: 469 | version "4.1.3" 470 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 471 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 472 | 473 | asynckit@^0.4.0: 474 | version "0.4.0" 475 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 476 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 477 | 478 | axios@^0.21.1: 479 | version "0.21.1" 480 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" 481 | integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== 482 | dependencies: 483 | follow-redirects "^1.10.0" 484 | 485 | base64-js@^1.0.2: 486 | version "1.3.1" 487 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" 488 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== 489 | 490 | bmp-js@^0.1.0: 491 | version "0.1.0" 492 | resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" 493 | integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= 494 | 495 | boolbase@~1.0.0: 496 | version "1.0.0" 497 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 498 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 499 | 500 | buffer-equal@0.0.1: 501 | version "0.0.1" 502 | resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" 503 | integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= 504 | 505 | buffer-from@^1.0.0: 506 | version "1.1.1" 507 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 508 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 509 | 510 | buffer@^5.2.0: 511 | version "5.6.0" 512 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" 513 | integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== 514 | dependencies: 515 | base64-js "^1.0.2" 516 | ieee754 "^1.1.4" 517 | 518 | cache-content-type@^1.0.0: 519 | version "1.0.1" 520 | resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" 521 | integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== 522 | dependencies: 523 | mime-types "^2.1.18" 524 | ylru "^1.2.0" 525 | 526 | cheerio@^1.0.0-rc.3: 527 | version "1.0.0-rc.3" 528 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" 529 | integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== 530 | dependencies: 531 | css-select "~1.2.0" 532 | dom-serializer "~0.1.1" 533 | entities "~1.1.1" 534 | htmlparser2 "^3.9.1" 535 | lodash "^4.15.0" 536 | parse5 "^3.0.1" 537 | 538 | co@^4.6.0: 539 | version "4.6.0" 540 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 541 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 542 | 543 | combined-stream@^1.0.8: 544 | version "1.0.8" 545 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 546 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 547 | dependencies: 548 | delayed-stream "~1.0.0" 549 | 550 | component-emitter@^1.3.0: 551 | version "1.3.0" 552 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 553 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 554 | 555 | content-disposition@~0.5.2: 556 | version "0.5.3" 557 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 558 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 559 | dependencies: 560 | safe-buffer "5.1.2" 561 | 562 | content-type@^1.0.4: 563 | version "1.0.4" 564 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 565 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 566 | 567 | cookiejar@^2.1.2: 568 | version "2.1.2" 569 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" 570 | integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== 571 | 572 | cookies@~0.8.0: 573 | version "0.8.0" 574 | resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" 575 | integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== 576 | dependencies: 577 | depd "~2.0.0" 578 | keygrip "~1.1.0" 579 | 580 | css-select@~1.2.0: 581 | version "1.2.0" 582 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 583 | integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= 584 | dependencies: 585 | boolbase "~1.0.0" 586 | css-what "2.1" 587 | domutils "1.5.1" 588 | nth-check "~1.0.1" 589 | 590 | css-what@2.1: 591 | version "2.1.3" 592 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" 593 | integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== 594 | 595 | debug@^4.1.1: 596 | version "4.1.1" 597 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 598 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 599 | dependencies: 600 | ms "^2.1.1" 601 | 602 | debug@~3.1.0: 603 | version "3.1.0" 604 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 605 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 606 | dependencies: 607 | ms "2.0.0" 608 | 609 | deep-equal@~1.0.1: 610 | version "1.0.1" 611 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 612 | integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 613 | 614 | delayed-stream@~1.0.0: 615 | version "1.0.0" 616 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 617 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 618 | 619 | delegates@^1.0.0: 620 | version "1.0.0" 621 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 622 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 623 | 624 | depd@^1.1.2, depd@~1.1.2: 625 | version "1.1.2" 626 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 627 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 628 | 629 | depd@~2.0.0: 630 | version "2.0.0" 631 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 632 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 633 | 634 | destroy@^1.0.4: 635 | version "1.0.4" 636 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 637 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 638 | 639 | diff@^4.0.1: 640 | version "4.0.2" 641 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 642 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 643 | 644 | dom-serializer@0: 645 | version "0.2.2" 646 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" 647 | integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== 648 | dependencies: 649 | domelementtype "^2.0.1" 650 | entities "^2.0.0" 651 | 652 | dom-serializer@~0.1.1: 653 | version "0.1.1" 654 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" 655 | integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== 656 | dependencies: 657 | domelementtype "^1.3.0" 658 | entities "^1.1.1" 659 | 660 | dom-walk@^0.1.0: 661 | version "0.1.2" 662 | resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" 663 | integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== 664 | 665 | domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: 666 | version "1.3.1" 667 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" 668 | integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== 669 | 670 | domelementtype@^2.0.1: 671 | version "2.0.1" 672 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" 673 | integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== 674 | 675 | domhandler@^2.3.0: 676 | version "2.4.2" 677 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" 678 | integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== 679 | dependencies: 680 | domelementtype "1" 681 | 682 | domutils@1.5.1: 683 | version "1.5.1" 684 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 685 | integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= 686 | dependencies: 687 | dom-serializer "0" 688 | domelementtype "1" 689 | 690 | domutils@^1.5.1: 691 | version "1.7.0" 692 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" 693 | integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== 694 | dependencies: 695 | dom-serializer "0" 696 | domelementtype "1" 697 | 698 | ee-first@1.1.1: 699 | version "1.1.1" 700 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 701 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 702 | 703 | encodeurl@^1.0.2: 704 | version "1.0.2" 705 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 706 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 707 | 708 | entities@^1.1.1, entities@~1.1.1: 709 | version "1.1.2" 710 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" 711 | integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== 712 | 713 | entities@^2.0.0: 714 | version "2.0.3" 715 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" 716 | integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== 717 | 718 | escape-html@^1.0.3: 719 | version "1.0.3" 720 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 721 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 722 | 723 | exif-parser@^0.1.12: 724 | version "0.1.12" 725 | resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" 726 | integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= 727 | 728 | fast-safe-stringify@^2.0.7: 729 | version "2.0.7" 730 | resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" 731 | integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== 732 | 733 | file-type@^9.0.0: 734 | version "9.0.0" 735 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" 736 | integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== 737 | 738 | follow-redirects@^1.10.0: 739 | version "1.13.1" 740 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" 741 | integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== 742 | 743 | form-data@^3.0.0: 744 | version "3.0.0" 745 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" 746 | integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== 747 | dependencies: 748 | asynckit "^0.4.0" 749 | combined-stream "^1.0.8" 750 | mime-types "^2.1.12" 751 | 752 | formidable@^1.2.2: 753 | version "1.2.2" 754 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" 755 | integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== 756 | 757 | fresh@~0.5.2: 758 | version "0.5.2" 759 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 760 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 761 | 762 | gifwrap@^0.9.2: 763 | version "0.9.2" 764 | resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz#348e286e67d7cf57942172e1e6f05a71cee78489" 765 | integrity sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA== 766 | dependencies: 767 | image-q "^1.1.1" 768 | omggif "^1.0.10" 769 | 770 | global@~4.3.0: 771 | version "4.3.2" 772 | resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" 773 | integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= 774 | dependencies: 775 | min-document "^2.19.0" 776 | process "~0.5.1" 777 | 778 | htmlparser2@^3.9.1: 779 | version "3.10.1" 780 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" 781 | integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== 782 | dependencies: 783 | domelementtype "^1.3.1" 784 | domhandler "^2.3.0" 785 | domutils "^1.5.1" 786 | entities "^1.1.1" 787 | inherits "^2.0.1" 788 | readable-stream "^3.1.1" 789 | 790 | http-assert@^1.3.0: 791 | version "1.4.1" 792 | resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" 793 | integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== 794 | dependencies: 795 | deep-equal "~1.0.1" 796 | http-errors "~1.7.2" 797 | 798 | http-errors@^1.6.3, http-errors@^1.7.3: 799 | version "1.8.0" 800 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" 801 | integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== 802 | dependencies: 803 | depd "~1.1.2" 804 | inherits "2.0.4" 805 | setprototypeof "1.2.0" 806 | statuses ">= 1.5.0 < 2" 807 | toidentifier "1.0.0" 808 | 809 | http-errors@~1.7.2: 810 | version "1.7.3" 811 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 812 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 813 | dependencies: 814 | depd "~1.1.2" 815 | inherits "2.0.4" 816 | setprototypeof "1.1.1" 817 | statuses ">= 1.5.0 < 2" 818 | toidentifier "1.0.0" 819 | 820 | ieee754@^1.1.4: 821 | version "1.1.13" 822 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 823 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 824 | 825 | image-q@^1.1.1: 826 | version "1.1.1" 827 | resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056" 828 | integrity sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY= 829 | 830 | inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3: 831 | version "2.0.4" 832 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 833 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 834 | 835 | is-function@^1.0.1: 836 | version "1.0.2" 837 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" 838 | integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== 839 | 840 | is-generator-function@^1.0.7: 841 | version "1.0.7" 842 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" 843 | integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== 844 | 845 | jimp@*, jimp@^0.14.0: 846 | version "0.14.0" 847 | resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.14.0.tgz#fde55f69bdb918c1b01ac633d89a25853af85625" 848 | integrity sha512-8BXU+J8+SPmwwyq9ELihpSV4dWPTiOKBWCEgtkbnxxAVMjXdf3yGmyaLSshBfXc8sP/JQ9OZj5R8nZzz2wPXgA== 849 | dependencies: 850 | "@babel/runtime" "^7.7.2" 851 | "@jimp/custom" "^0.14.0" 852 | "@jimp/plugins" "^0.14.0" 853 | "@jimp/types" "^0.14.0" 854 | regenerator-runtime "^0.13.3" 855 | 856 | jpeg-js@^0.4.0: 857 | version "0.4.1" 858 | resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.1.tgz#937a3ae911eb6427f151760f8123f04c8bfe6ef7" 859 | integrity sha512-jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw== 860 | 861 | json5@^2.2.3: 862 | version "2.2.3" 863 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 864 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 865 | 866 | keygrip@~1.1.0: 867 | version "1.1.0" 868 | resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" 869 | integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== 870 | dependencies: 871 | tsscmp "1.0.6" 872 | 873 | koa-compose@^3.0.0: 874 | version "3.2.1" 875 | resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 876 | integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 877 | dependencies: 878 | any-promise "^1.1.0" 879 | 880 | koa-compose@^4.1.0: 881 | version "4.1.0" 882 | resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" 883 | integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== 884 | 885 | koa-convert@^1.2.0: 886 | version "1.2.0" 887 | resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 888 | integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 889 | dependencies: 890 | co "^4.6.0" 891 | koa-compose "^3.0.0" 892 | 893 | koa-router@^9.1.0: 894 | version "9.1.0" 895 | resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-9.1.0.tgz#47d1ce2109fd62b1d76eb42df90b635ff93b6831" 896 | integrity sha512-5xakU0Ip2oFXPaA5882NTLopb5iaNfipBmTU5AoGbgDHOsHqRQDnaMnazj8DmDCt2rSxNB2TBBVLO9OiM0TvdA== 897 | dependencies: 898 | debug "^4.1.1" 899 | http-errors "^1.7.3" 900 | koa-compose "^4.1.0" 901 | methods "^1.1.2" 902 | path-to-regexp "^6.1.0" 903 | 904 | koa@^2.13.0: 905 | version "2.13.0" 906 | resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501" 907 | integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== 908 | dependencies: 909 | accepts "^1.3.5" 910 | cache-content-type "^1.0.0" 911 | content-disposition "~0.5.2" 912 | content-type "^1.0.4" 913 | cookies "~0.8.0" 914 | debug "~3.1.0" 915 | delegates "^1.0.0" 916 | depd "^1.1.2" 917 | destroy "^1.0.4" 918 | encodeurl "^1.0.2" 919 | escape-html "^1.0.3" 920 | fresh "~0.5.2" 921 | http-assert "^1.3.0" 922 | http-errors "^1.6.3" 923 | is-generator-function "^1.0.7" 924 | koa-compose "^4.1.0" 925 | koa-convert "^1.2.0" 926 | on-finished "^2.3.0" 927 | only "~0.0.2" 928 | parseurl "^1.3.2" 929 | statuses "^1.5.0" 930 | type-is "^1.6.16" 931 | vary "^1.1.2" 932 | 933 | load-bmfont@^1.3.1, load-bmfont@^1.4.0: 934 | version "1.4.1" 935 | resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" 936 | integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== 937 | dependencies: 938 | buffer-equal "0.0.1" 939 | mime "^1.3.4" 940 | parse-bmfont-ascii "^1.0.3" 941 | parse-bmfont-binary "^1.0.5" 942 | parse-bmfont-xml "^1.1.4" 943 | phin "^2.9.1" 944 | xhr "^2.0.1" 945 | xtend "^4.0.0" 946 | 947 | lodash@^4.15.0: 948 | version "4.17.21" 949 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 950 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 951 | 952 | make-error@^1.1.1: 953 | version "1.3.6" 954 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 955 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 956 | 957 | media-typer@0.3.0: 958 | version "0.3.0" 959 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 960 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 961 | 962 | methods@^1.1.2: 963 | version "1.1.2" 964 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 965 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 966 | 967 | mime-db@1.44.0: 968 | version "1.44.0" 969 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 970 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 971 | 972 | mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.24: 973 | version "2.1.27" 974 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 975 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 976 | dependencies: 977 | mime-db "1.44.0" 978 | 979 | mime@^1.3.4: 980 | version "1.6.0" 981 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 982 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 983 | 984 | mime@^2.4.6: 985 | version "2.4.6" 986 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" 987 | integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== 988 | 989 | min-document@^2.19.0: 990 | version "2.19.0" 991 | resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" 992 | integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= 993 | dependencies: 994 | dom-walk "^0.1.0" 995 | 996 | minimist@^1.2.5: 997 | version "1.2.5" 998 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 999 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1000 | 1001 | mkdirp@^0.5.1: 1002 | version "0.5.5" 1003 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1004 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1005 | dependencies: 1006 | minimist "^1.2.5" 1007 | 1008 | ms@2.0.0: 1009 | version "2.0.0" 1010 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1011 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1012 | 1013 | ms@^2.1.1: 1014 | version "2.1.2" 1015 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1016 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1017 | 1018 | negotiator@0.6.2: 1019 | version "0.6.2" 1020 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1021 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1022 | 1023 | nth-check@~1.0.1: 1024 | version "1.0.2" 1025 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" 1026 | integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== 1027 | dependencies: 1028 | boolbase "~1.0.0" 1029 | 1030 | omggif@^1.0.10, omggif@^1.0.9: 1031 | version "1.0.10" 1032 | resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" 1033 | integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== 1034 | 1035 | on-finished@^2.3.0: 1036 | version "2.3.0" 1037 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1038 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1039 | dependencies: 1040 | ee-first "1.1.1" 1041 | 1042 | only@~0.0.2: 1043 | version "0.0.2" 1044 | resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 1045 | integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 1046 | 1047 | pako@^1.0.5: 1048 | version "1.0.11" 1049 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 1050 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 1051 | 1052 | parse-bmfont-ascii@^1.0.3: 1053 | version "1.0.6" 1054 | resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" 1055 | integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= 1056 | 1057 | parse-bmfont-binary@^1.0.5: 1058 | version "1.0.6" 1059 | resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" 1060 | integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= 1061 | 1062 | parse-bmfont-xml@^1.1.4: 1063 | version "1.1.4" 1064 | resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" 1065 | integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== 1066 | dependencies: 1067 | xml-parse-from-string "^1.0.0" 1068 | xml2js "^0.4.5" 1069 | 1070 | parse-headers@^2.0.0: 1071 | version "2.0.3" 1072 | resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" 1073 | integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== 1074 | 1075 | parse5@^3.0.1: 1076 | version "3.0.3" 1077 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" 1078 | integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== 1079 | dependencies: 1080 | "@types/node" "*" 1081 | 1082 | parseurl@^1.3.2: 1083 | version "1.3.3" 1084 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1085 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1086 | 1087 | path-to-regexp@^6.1.0: 1088 | version "6.1.0" 1089 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" 1090 | integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== 1091 | 1092 | phin@^2.9.1: 1093 | version "2.9.3" 1094 | resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" 1095 | integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== 1096 | 1097 | pixelmatch@^4.0.2: 1098 | version "4.0.2" 1099 | resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" 1100 | integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= 1101 | dependencies: 1102 | pngjs "^3.0.0" 1103 | 1104 | pngjs@^3.0.0, pngjs@^3.3.3: 1105 | version "3.4.0" 1106 | resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" 1107 | integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== 1108 | 1109 | process@~0.5.1: 1110 | version "0.5.2" 1111 | resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" 1112 | integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= 1113 | 1114 | qs@^6.9.4: 1115 | version "6.9.4" 1116 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" 1117 | integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== 1118 | 1119 | readable-stream@^3.1.1, readable-stream@^3.6.0: 1120 | version "3.6.0" 1121 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 1122 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 1123 | dependencies: 1124 | inherits "^2.0.3" 1125 | string_decoder "^1.1.1" 1126 | util-deprecate "^1.0.1" 1127 | 1128 | regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: 1129 | version "0.13.7" 1130 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 1131 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 1132 | 1133 | safe-buffer@5.1.2: 1134 | version "5.1.2" 1135 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1136 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1137 | 1138 | safe-buffer@~5.2.0: 1139 | version "5.2.1" 1140 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1141 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1142 | 1143 | sax@>=0.6.0: 1144 | version "1.2.4" 1145 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1146 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 1147 | 1148 | semver@^7.3.2: 1149 | version "7.3.2" 1150 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" 1151 | integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== 1152 | 1153 | setprototypeof@1.1.1: 1154 | version "1.1.1" 1155 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1156 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1157 | 1158 | setprototypeof@1.2.0: 1159 | version "1.2.0" 1160 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1161 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1162 | 1163 | source-map-support@^0.5.17: 1164 | version "0.5.19" 1165 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 1166 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 1167 | dependencies: 1168 | buffer-from "^1.0.0" 1169 | source-map "^0.6.0" 1170 | 1171 | source-map@^0.6.0: 1172 | version "0.6.1" 1173 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1174 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1175 | 1176 | "statuses@>= 1.5.0 < 2", statuses@^1.5.0: 1177 | version "1.5.0" 1178 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1179 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1180 | 1181 | string_decoder@^1.1.1: 1182 | version "1.3.0" 1183 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1184 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1185 | dependencies: 1186 | safe-buffer "~5.2.0" 1187 | 1188 | superagent@^5.3.1: 1189 | version "5.3.1" 1190 | resolved "https://registry.yarnpkg.com/superagent/-/superagent-5.3.1.tgz#d62f3234d76b8138c1320e90fa83dc1850ccabf1" 1191 | integrity sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ== 1192 | dependencies: 1193 | component-emitter "^1.3.0" 1194 | cookiejar "^2.1.2" 1195 | debug "^4.1.1" 1196 | fast-safe-stringify "^2.0.7" 1197 | form-data "^3.0.0" 1198 | formidable "^1.2.2" 1199 | methods "^1.1.2" 1200 | mime "^2.4.6" 1201 | qs "^6.9.4" 1202 | readable-stream "^3.6.0" 1203 | semver "^7.3.2" 1204 | 1205 | timm@^1.6.1: 1206 | version "1.6.2" 1207 | resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" 1208 | integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== 1209 | 1210 | tinycolor2@^1.4.1: 1211 | version "1.4.1" 1212 | resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" 1213 | integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= 1214 | 1215 | toidentifier@1.0.0: 1216 | version "1.0.0" 1217 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1218 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1219 | 1220 | ts-node@^8.10.2: 1221 | version "8.10.2" 1222 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" 1223 | integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== 1224 | dependencies: 1225 | arg "^4.1.0" 1226 | diff "^4.0.1" 1227 | make-error "^1.1.1" 1228 | source-map-support "^0.5.17" 1229 | yn "3.1.1" 1230 | 1231 | tsscmp@1.0.6: 1232 | version "1.0.6" 1233 | resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" 1234 | integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== 1235 | 1236 | type-is@^1.6.16: 1237 | version "1.6.18" 1238 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1239 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1240 | dependencies: 1241 | media-typer "0.3.0" 1242 | mime-types "~2.1.24" 1243 | 1244 | typescript@^3.9.7: 1245 | version "3.9.7" 1246 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" 1247 | integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== 1248 | 1249 | utif@^2.0.1: 1250 | version "2.0.1" 1251 | resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" 1252 | integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== 1253 | dependencies: 1254 | pako "^1.0.5" 1255 | 1256 | util-deprecate@^1.0.1: 1257 | version "1.0.2" 1258 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1259 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1260 | 1261 | vary@^1.1.2: 1262 | version "1.1.2" 1263 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1264 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1265 | 1266 | xhr@^2.0.1: 1267 | version "2.5.0" 1268 | resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" 1269 | integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== 1270 | dependencies: 1271 | global "~4.3.0" 1272 | is-function "^1.0.1" 1273 | parse-headers "^2.0.0" 1274 | xtend "^4.0.0" 1275 | 1276 | xml-parse-from-string@^1.0.0: 1277 | version "1.0.1" 1278 | resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" 1279 | integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= 1280 | 1281 | xml2js@^0.4.5: 1282 | version "0.4.23" 1283 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" 1284 | integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== 1285 | dependencies: 1286 | sax ">=0.6.0" 1287 | xmlbuilder "~11.0.0" 1288 | 1289 | xmlbuilder@~11.0.0: 1290 | version "11.0.1" 1291 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" 1292 | integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== 1293 | 1294 | xtend@^4.0.0: 1295 | version "4.0.2" 1296 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1297 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1298 | 1299 | ylru@^1.2.0: 1300 | version "1.2.1" 1301 | resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" 1302 | integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== 1303 | 1304 | yn@3.1.1: 1305 | version "3.1.1" 1306 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1307 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1308 | --------------------------------------------------------------------------------