@nekosuneprojects/gaming-infos 2.4.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/README.md +62 -334
- package/index.js +3 -225
- package/package.json +53 -58
- package/src/providers/vrchat.js +11 -0
- package/src/providers/warframe.js +7 -0
- package/src/registry.js +23 -0
- package/.github/workflows/npm-publish-github-packages.yml +0 -56
- package/.github/workflows/npm-publish.yml +0 -71
- package/.github/workflows/sync-api-cache.yml +0 -73
- package/CACHE_SYNC.md +0 -202
- package/CONTRIBUTING.md +0 -217
- package/DATA.md +0 -292
- package/data/.cache-manifest.json +0 -112
- package/data/arknightsendfield/characters/akekuri.json +0 -75
- package/data/arknightsendfield/characters/alesh.json +0 -75
- package/data/arknightsendfield/characters/antal.json +0 -75
- package/data/arknightsendfield/characters/arcane.json +0 -75
- package/data/arknightsendfield/characters/arclight.json +0 -75
- package/data/arknightsendfield/characters/ardelia.json +0 -75
- package/data/arknightsendfield/characters/avywenna.json +0 -76
- package/data/arknightsendfield/characters/camille.json +0 -77
- package/data/arknightsendfield/characters/catcher.json +0 -76
- package/data/arknightsendfield/characters/chenqianyu.json +0 -76
- package/data/arknightsendfield/characters/dapan.json +0 -76
- package/data/arknightsendfield/characters/ember.json +0 -76
- package/data/arknightsendfield/characters/endministrator.json +0 -63
- package/data/arknightsendfield/characters/estella.json +0 -76
- package/data/arknightsendfield/characters/fluorite.json +0 -75
- package/data/arknightsendfield/characters/gilberta.json +0 -76
- package/data/arknightsendfield/characters/laevatain.json +0 -76
- package/data/arknightsendfield/characters/lastrite.json +0 -76
- package/data/arknightsendfield/characters/lifeng.json +0 -75
- package/data/arknightsendfield/characters/liino.json +0 -76
- package/data/arknightsendfield/characters/mifu.json +0 -75
- package/data/arknightsendfield/characters/perlica.json +0 -76
- package/data/arknightsendfield/characters/pogranichnik.json +0 -75
- package/data/arknightsendfield/characters/purrchena.json +0 -50
- package/data/arknightsendfield/characters/rossi.json +0 -77
- package/data/arknightsendfield/characters/snowshine.json +0 -75
- package/data/arknightsendfield/characters/tangtang.json +0 -76
- package/data/arknightsendfield/characters/typhoeus.json +0 -57
- package/data/arknightsendfield/characters/wulfgard.json +0 -77
- package/data/arknightsendfield/characters/xaihi.json +0 -76
- package/data/arknightsendfield/characters/yvonne.json +0 -76
- package/data/arknightsendfield/characters/zhuangfangyi.json +0 -76
- package/data/arknightsendfield/meta.json +0 -14
- package/data/fortnite/characters/agentjones.json +0 -43
- package/data/fortnite/characters/agentpeely.json +0 -43
- package/data/fortnite/characters/andyfangerson.json +0 -42
- package/data/fortnite/characters/antonia.json +0 -43
- package/data/fortnite/characters/anwar.json +0 -44
- package/data/fortnite/characters/aphrodite.json +0 -43
- package/data/fortnite/characters/apollo.json +0 -36
- package/data/fortnite/characters/arcticassassin.json +0 -43
- package/data/fortnite/characters/artemis.json +0 -36
- package/data/fortnite/characters/battlewoodboulevard.json +0 -43
- package/data/fortnite/characters/beastmode.json +0 -45
- package/data/fortnite/characters/bogstick.json +0 -43
- package/data/fortnite/characters/boxy.json +0 -44
- package/data/fortnite/characters/bravoleader.json +0 -44
- package/data/fortnite/characters/briteraider.json +0 -43
- package/data/fortnite/characters/brutalboxcars.json +0 -46
- package/data/fortnite/characters/bryne.json +0 -44
- package/data/fortnite/characters/buildersbarracks.json +0 -38
- package/data/fortnite/characters/bullshark.json +0 -43
- package/data/fortnite/characters/bumpybay.json +0 -44
- package/data/fortnite/characters/burd.json +0 -44
- package/data/fortnite/characters/burdemart.json +0 -39
- package/data/fortnite/characters/burdtogo.json +0 -42
- package/data/fortnite/characters/busansanctuary.json +0 -39
- package/data/fortnite/characters/calamaricanyon.json +0 -41
- package/data/fortnite/characters/canyoncrossing.json +0 -45
- package/data/fortnite/characters/captainjones.json +0 -40
- package/data/fortnite/characters/centurion.json +0 -44
- package/data/fortnite/characters/cerberus.json +0 -43
- package/data/fortnite/characters/charon.json +0 -43
- package/data/fortnite/characters/chiara.json +0 -43
- package/data/fortnite/characters/clara.json +0 -43
- package/data/fortnite/characters/classifiedcanyon.json +0 -43
- package/data/fortnite/characters/clawsylodge.json +0 -41
- package/data/fortnite/characters/cletuscornhole.json +0 -43
- package/data/fortnite/characters/contractgiller.json +0 -44
- package/data/fortnite/characters/corruptioncorners.json +0 -42
- package/data/fortnite/characters/countessdaraku.json +0 -45
- package/data/fortnite/characters/crackshotscabin.json +0 -40
- package/data/fortnite/characters/creepycamps.json +0 -36
- package/data/fortnite/characters/crimecity.json +0 -47
- package/data/fortnite/characters/dara.json +0 -42
- package/data/fortnite/characters/darkruby.json +0 -43
- package/data/fortnite/characters/demonsdojo.json +0 -46
- package/data/fortnite/characters/diamonddiva.json +0 -43
- package/data/fortnite/characters/donutdistrict.json +0 -43
- package/data/fortnite/characters/drakonsteelrider.json +0 -43
- package/data/fortnite/characters/dummy.json +0 -45
- package/data/fortnite/characters/edwardscissorhands.json +0 -39
- package/data/fortnite/characters/etheria.json +0 -43
- package/data/fortnite/characters/evergreenterrace.json +0 -41
- package/data/fortnite/characters/fishmarket.json +0 -39
- package/data/fortnite/characters/fishstick.json +0 -45
- package/data/fortnite/characters/fishthicc.json +0 -43
- package/data/fortnite/characters/fortressofsolitude.json +0 -37
- package/data/fortnite/characters/foxyfloodgate.json +0 -43
- package/data/fortnite/characters/freakyfields.json +0 -38
- package/data/fortnite/characters/goldengrove.json +0 -41
- package/data/fortnite/characters/graveheart.json +0 -43
- package/data/fortnite/characters/grievouscampsite.json +0 -38
- package/data/fortnite/characters/guardianamara.json +0 -44
- package/data/fortnite/characters/gwenpool.json +0 -41
- package/data/fortnite/characters/hanamuracourtyard.json +0 -27
- package/data/fortnite/characters/heartbreakranger.json +0 -42
- package/data/fortnite/characters/heatwaveharbor.json +0 -41
- package/data/fortnite/characters/heroichope.json +0 -44
- package/data/fortnite/characters/hope.json +0 -43
- package/data/fortnite/characters/hopefulheights.json +0 -46
- package/data/fortnite/characters/humblehills.json +0 -41
- package/data/fortnite/characters/innovatorslone.json +0 -43
- package/data/fortnite/characters/insight.json +0 -43
- package/data/fortnite/characters/ironman.json +0 -40
- package/data/fortnite/characters/jittershock.json +0 -44
- package/data/fortnite/characters/joeycaliente.json +0 -44
- package/data/fortnite/characters/jonithescarlet.json +0 -43
- package/data/fortnite/characters/khabylame.json +0 -40
- package/data/fortnite/characters/khari.json +0 -44
- package/data/fortnite/characters/kitbash.json +0 -44
- package/data/fortnite/characters/kitesflight.json +0 -41
- package/data/fortnite/characters/knightmare.json +0 -43
- package/data/fortnite/characters/laguna.json +0 -43
- package/data/fortnite/characters/lakespringfield.json +0 -35
- package/data/fortnite/characters/lakespringfieldgasstation.json +0 -39
- package/data/fortnite/characters/lanallane.json +0 -42
- package/data/fortnite/characters/lattelanding.json +0 -41
- package/data/fortnite/characters/lavendra.json +0 -44
- package/data/fortnite/characters/leelah.json +0 -45
- package/data/fortnite/characters/liftylodge.json +0 -42
- package/data/fortnite/characters/lonewolflair.json +0 -42
- package/data/fortnite/characters/longshot.json +0 -41
- package/data/fortnite/characters/lostlake.json +0 -44
- package/data/fortnite/characters/loveranger.json +0 -44
- package/data/fortnite/characters/mae.json +0 -43
- package/data/fortnite/characters/magicmosses.json +0 -42
- package/data/fortnite/characters/maskedmeadows.json +0 -48
- package/data/fortnite/characters/mechateamshadow.json +0 -44
- package/data/fortnite/characters/medusa.json +0 -43
- package/data/fortnite/characters/meowscles.json +0 -42
- package/data/fortnite/characters/mephisto.json +0 -41
- package/data/fortnite/characters/metalmouth.json +0 -44
- package/data/fortnite/characters/mincemeat.json +0 -43
- package/data/fortnite/characters/munitionsexpert.json +0 -42
- package/data/fortnite/characters/myna.json +0 -42
- package/data/fortnite/characters/newsanctuary.json +0 -43
- package/data/fortnite/characters/nia.json +0 -42
- package/data/fortnite/characters/nightshiftforest.json +0 -43
- package/data/fortnite/characters/nisha.json +0 -42
- package/data/fortnite/characters/nolanchance.json +0 -43
- package/data/fortnite/characters/noorah.json +0 -44
- package/data/fortnite/characters/odyssey.json +0 -43
- package/data/fortnite/characters/openaironsen.json +0 -40
- package/data/fortnite/characters/oscar.json +0 -42
- package/data/fortnite/characters/outlawoasis.json +0 -40
- package/data/fortnite/characters/outpostenclave.json +0 -27
- package/data/fortnite/characters/oxrhq.json +0 -37
- package/data/fortnite/characters/paintedpalms.json +0 -41
- package/data/fortnite/characters/peabody.json +0 -42
- package/data/fortnite/characters/peelosopherbananocrates.json +0 -43
- package/data/fortnite/characters/peely.json +0 -41
- package/data/fortnite/characters/peelybone.json +0 -43
- package/data/fortnite/characters/persephone.json +0 -42
- package/data/fortnite/characters/phaedra.json +0 -42
- package/data/fortnite/characters/phantommeowscles.json +0 -43
- package/data/fortnite/characters/piperpace.json +0 -43
- package/data/fortnite/characters/poseidon.json +0 -42
- package/data/fortnite/characters/pumpedpower.json +0 -40
- package/data/fortnite/characters/pumpinpipes.json +0 -39
- package/data/fortnite/characters/pumpkinking.json +0 -40
- package/data/fortnite/characters/purradisemeowscles.json +0 -43
- package/data/fortnite/characters/rangersrest.json +0 -36
- package/data/fortnite/characters/rebeloutpost.json +0 -37
- package/data/fortnite/characters/renegadeshadow.json +0 -44
- package/data/fortnite/characters/resistancebase.json +0 -27
- package/data/fortnite/characters/rippedtides.json +0 -43
- package/data/fortnite/characters/rollingblossomsfarm.json +0 -41
- package/data/fortnite/characters/royalebomber.json +0 -38
- package/data/fortnite/characters/ruckus.json +0 -42
- package/data/fortnite/characters/rust.json +0 -41
- package/data/fortnite/characters/sakuracircle.json +0 -36
- package/data/fortnite/characters/sandystrip.json +0 -44
- package/data/fortnite/characters/saskia.json +0 -45
- package/data/fortnite/characters/seaportcity.json +0 -48
- package/data/fortnite/characters/shakensanctuary.json +0 -42
- package/data/fortnite/characters/shimmerdusk.json +0 -41
- package/data/fortnite/characters/shinyshafts.json +0 -38
- package/data/fortnite/characters/shogunssolitude.json +0 -46
- package/data/fortnite/characters/shuri.json +0 -39
- package/data/fortnite/characters/silashesk.json +0 -42
- package/data/fortnite/characters/slurproom.json +0 -40
- package/data/fortnite/characters/snowheart.json +0 -44
- package/data/fortnite/characters/snowstriker.json +0 -43
- package/data/fortnite/characters/solidsnake.json +0 -39
- package/data/fortnite/characters/sonor.json +0 -46
- package/data/fortnite/characters/spartanassassin.json +0 -43
- package/data/fortnite/characters/spirithuntersaeko.json +0 -41
- package/data/fortnite/characters/springfieldnationalparkstore.json +0 -38
- package/data/fortnite/characters/springfieldnuclearpowerplant.json +0 -39
- package/data/fortnite/characters/springfieldslurpworks.json +0 -40
- package/data/fortnite/characters/squibblyshores.json +0 -42
- package/data/fortnite/characters/squibblyspointlighthouse.json +0 -37
- package/data/fortnite/characters/starroakley.json +0 -45
- package/data/fortnite/characters/steelsight.json +0 -43
- package/data/fortnite/characters/sticks.json +0 -35
- package/data/fortnite/characters/sunkenshores.json +0 -42
- package/data/fortnite/characters/sunstrider.json +0 -42
- package/data/fortnite/characters/suntanspecialist.json +0 -43
- package/data/fortnite/characters/supernovaacademy.json +0 -27
- package/data/fortnite/characters/t60powerarmor.json +0 -39
- package/data/fortnite/characters/thebattlewoods.json +0 -44
- package/data/fortnite/characters/thegreatturtle.json +0 -37
- package/data/fortnite/characters/theoperator.json +0 -42
- package/data/fortnite/characters/thequackaway.json +0 -39
- package/data/fortnite/characters/thestabilizer.json +0 -38
- package/data/fortnite/characters/theunderwriter.json +0 -36
- package/data/fortnite/characters/toyboxdocks.json +0 -40
- package/data/fortnite/characters/trace.json +0 -43
- package/data/fortnite/characters/triagetrooper.json +0 -43
- package/data/fortnite/characters/triggerfish.json +0 -44
- package/data/fortnite/characters/trogscave.json +0 -38
- package/data/fortnite/characters/utopiacity.json +0 -27
- package/data/fortnite/characters/vengeancejones.json +0 -42
- package/data/fortnite/characters/victoriasaint.json +0 -43
- package/data/fortnite/characters/vineyshafts.json +0 -35
- package/data/fortnite/characters/volpez.json +0 -41
- package/data/fortnite/characters/warmachine.json +0 -40
- package/data/fortnite/characters/wastelandermagneto.json +0 -40
- package/data/fortnite/characters/wonkeeland.json +0 -41
- package/data/fortnite/meta.json +0 -14
- package/data/game-codes/.cache-manifest.json +0 -148
- package/data/game-codes/directory.json +0 -1196
- package/data/game-codes/games/arknights-endfield.json +0 -958
- package/data/game-codes/games/borderlands-1.json +0 -414
- package/data/game-codes/games/borderlands-2.json +0 -340
- package/data/game-codes/games/borderlands-3.json +0 -1025
- package/data/game-codes/games/borderlands-4.json +0 -3128
- package/data/game-codes/games/borderlands-the-pre-sequel.json +0 -599
- package/data/game-codes/games/brawl-stars.json +0 -4766
- package/data/game-codes/games/clash-of-clans.json +0 -4766
- package/data/game-codes/games/clash-royale.json +0 -5
- package/data/game-codes/games/cookie-run-kingdom.json +0 -5366
- package/data/game-codes/games/fortnite.json +0 -897
- package/data/game-codes/games/genshin-impact.json +0 -8520
- package/data/game-codes/games/honkai-impact-3rd.json +0 -405
- package/data/game-codes/games/honkai-star-rail.json +0 -9863
- package/data/game-codes/games/neverness-to-everness.json +0 -1695
- package/data/game-codes/games/roblox-doors.json +0 -1842
- package/data/game-codes/games/roblox-rivals.json +0 -2919
- package/data/game-codes/games/tower-of-fantasy.json +0 -2839
- package/data/game-codes/games/warframe.json +0 -20824
- package/data/game-codes/games/wuthering-waves.json +0 -2477
- package/data/game-codes/games/zenless-zone-zero.json +0 -3681
- package/data/game-codes/status.json +0 -580
- package/data/genshinimpact/characters/aino.json +0 -34
- package/data/genshinimpact/characters/albedo.json +0 -12
- package/data/genshinimpact/characters/alhaitham.json +0 -13
- package/data/genshinimpact/characters/aloy.json +0 -12
- package/data/genshinimpact/characters/alyosha.json +0 -34
- package/data/genshinimpact/characters/amber.json +0 -13
- package/data/genshinimpact/characters/aratakiitto.json +0 -13
- package/data/genshinimpact/characters/arlecchino.json +0 -13
- package/data/genshinimpact/characters/baizhu.json +0 -13
- package/data/genshinimpact/characters/barbara.json +0 -12
- package/data/genshinimpact/characters/beidou.json +0 -13
- package/data/genshinimpact/characters/bennett.json +0 -12
- package/data/genshinimpact/characters/candace.json +0 -13
- package/data/genshinimpact/characters/charlotte.json +0 -12
- package/data/genshinimpact/characters/chasca.json +0 -12
- package/data/genshinimpact/characters/chevreuse.json +0 -12
- package/data/genshinimpact/characters/chiori.json +0 -12
- package/data/genshinimpact/characters/chongyun.json +0 -13
- package/data/genshinimpact/characters/citlali.json +0 -12
- package/data/genshinimpact/characters/clorinde.json +0 -12
- package/data/genshinimpact/characters/collei.json +0 -13
- package/data/genshinimpact/characters/columbina.json +0 -34
- package/data/genshinimpact/characters/cyno.json +0 -13
- package/data/genshinimpact/characters/dahlia.json +0 -11
- package/data/genshinimpact/characters/dehya.json +0 -12
- package/data/genshinimpact/characters/diluc.json +0 -12
- package/data/genshinimpact/characters/diona.json +0 -12
- package/data/genshinimpact/characters/dori.json +0 -12
- package/data/genshinimpact/characters/durin.json +0 -12
- package/data/genshinimpact/characters/emilie.json +0 -12
- package/data/genshinimpact/characters/escoffier.json +0 -13
- package/data/genshinimpact/characters/eula.json +0 -12
- package/data/genshinimpact/characters/faruzan.json +0 -13
- package/data/genshinimpact/characters/fischl.json +0 -13
- package/data/genshinimpact/characters/flins.json +0 -34
- package/data/genshinimpact/characters/freminet.json +0 -12
- package/data/genshinimpact/characters/furina.json +0 -13
- package/data/genshinimpact/characters/gaming.json +0 -12
- package/data/genshinimpact/characters/ganyu.json +0 -12
- package/data/genshinimpact/characters/gorou.json +0 -13
- package/data/genshinimpact/characters/hutao.json +0 -13
- package/data/genshinimpact/characters/iansan.json +0 -12
- package/data/genshinimpact/characters/ifa.json +0 -34
- package/data/genshinimpact/characters/illuga.json +0 -34
- package/data/genshinimpact/characters/ineffa.json +0 -12
- package/data/genshinimpact/characters/jahoda.json +0 -34
- package/data/genshinimpact/characters/jean.json +0 -12
- package/data/genshinimpact/characters/kachina.json +0 -12
- package/data/genshinimpact/characters/kaedeharakazuha.json +0 -13
- package/data/genshinimpact/characters/kaeya.json +0 -12
- package/data/genshinimpact/characters/kamisatoayaka.json +0 -12
- package/data/genshinimpact/characters/kamisatoayato.json +0 -12
- package/data/genshinimpact/characters/kaveh.json +0 -13
- package/data/genshinimpact/characters/keqing.json +0 -12
- package/data/genshinimpact/characters/kinich.json +0 -12
- package/data/genshinimpact/characters/kirara.json +0 -12
- package/data/genshinimpact/characters/klee.json +0 -12
- package/data/genshinimpact/characters/kujousara.json +0 -12
- package/data/genshinimpact/characters/kukishinobu.json +0 -13
- package/data/genshinimpact/characters/lanyan.json +0 -12
- package/data/genshinimpact/characters/lauma.json +0 -34
- package/data/genshinimpact/characters/layla.json +0 -12
- package/data/genshinimpact/characters/linnea.json +0 -34
- package/data/genshinimpact/characters/lisa.json +0 -13
- package/data/genshinimpact/characters/lohen.json +0 -12
- package/data/genshinimpact/characters/lynette.json +0 -12
- package/data/genshinimpact/characters/lyney.json +0 -12
- package/data/genshinimpact/characters/mavuika.json +0 -12
- package/data/genshinimpact/characters/mika.json +0 -34
- package/data/genshinimpact/characters/mikaschmidt.json +0 -12
- package/data/genshinimpact/characters/mona.json +0 -13
- package/data/genshinimpact/characters/mualani.json +0 -12
- package/data/genshinimpact/characters/nahida.json +0 -13
- package/data/genshinimpact/characters/navia.json +0 -12
- package/data/genshinimpact/characters/nefer.json +0 -34
- package/data/genshinimpact/characters/neuvillette.json +0 -12
- package/data/genshinimpact/characters/nicole.json +0 -34
- package/data/genshinimpact/characters/nilou.json +0 -12
- package/data/genshinimpact/characters/ningguang.json +0 -12
- package/data/genshinimpact/characters/noelle.json +0 -13
- package/data/genshinimpact/characters/odette.json +0 -34
- package/data/genshinimpact/characters/ororon.json +0 -12
- package/data/genshinimpact/characters/prune.json +0 -11
- package/data/genshinimpact/characters/qiqi.json +0 -13
- package/data/genshinimpact/characters/raidenshogun.json +0 -13
- package/data/genshinimpact/characters/razor.json +0 -12
- package/data/genshinimpact/characters/rosaria.json +0 -13
- package/data/genshinimpact/characters/sandrone.json +0 -34
- package/data/genshinimpact/characters/sangonomiyakokomi.json +0 -13
- package/data/genshinimpact/characters/sayu.json +0 -12
- package/data/genshinimpact/characters/sethos.json +0 -12
- package/data/genshinimpact/characters/shenhe.json +0 -13
- package/data/genshinimpact/characters/shikanoinheizou.json +0 -13
- package/data/genshinimpact/characters/sigewinne.json +0 -12
- package/data/genshinimpact/characters/skirk.json +0 -12
- package/data/genshinimpact/characters/sucrose.json +0 -13
- package/data/genshinimpact/characters/tartaglia.json +0 -34
- package/data/genshinimpact/characters/thoma.json +0 -12
- package/data/genshinimpact/characters/tighnari.json +0 -13
- package/data/genshinimpact/characters/traveler.json +0 -34
- package/data/genshinimpact/characters/varesa.json +0 -12
- package/data/genshinimpact/characters/varka.json +0 -11
- package/data/genshinimpact/characters/venti.json +0 -13
- package/data/genshinimpact/characters/wanderer.json +0 -12
- package/data/genshinimpact/characters/wonderlandmanekin.json +0 -34
- package/data/genshinimpact/characters/wriothesley.json +0 -13
- package/data/genshinimpact/characters/xiangling.json +0 -13
- package/data/genshinimpact/characters/xianyun.json +0 -12
- package/data/genshinimpact/characters/xiao.json +0 -12
- package/data/genshinimpact/characters/xilonen.json +0 -12
- package/data/genshinimpact/characters/xingqiu.json +0 -13
- package/data/genshinimpact/characters/xinyan.json +0 -13
- package/data/genshinimpact/characters/yaemiko.json +0 -13
- package/data/genshinimpact/characters/yanfei.json +0 -13
- package/data/genshinimpact/characters/yaoyao.json +0 -13
- package/data/genshinimpact/characters/yelan.json +0 -12
- package/data/genshinimpact/characters/yoimiya.json +0 -13
- package/data/genshinimpact/characters/yumemizukimizuki.json +0 -12
- package/data/genshinimpact/characters/yunjin.json +0 -12
- package/data/genshinimpact/characters/zhongli.json +0 -12
- package/data/genshinimpact/characters/zibai.json +0 -12
- package/data/genshinimpact/meta.json +0 -14
- package/data/honkaistarrail/characters/acheron.json +0 -13
- package/data/honkaistarrail/characters/aglaea.json +0 -13
- package/data/honkaistarrail/characters/anaxa.json +0 -13
- package/data/honkaistarrail/characters/archer.json +0 -29
- package/data/honkaistarrail/characters/argenti.json +0 -13
- package/data/honkaistarrail/characters/arlan.json +0 -13
- package/data/honkaistarrail/characters/ashveil.json +0 -13
- package/data/honkaistarrail/characters/asta.json +0 -13
- package/data/honkaistarrail/characters/aventurine.json +0 -13
- package/data/honkaistarrail/characters/bailu.json +0 -13
- package/data/honkaistarrail/characters/blackswan.json +0 -13
- package/data/honkaistarrail/characters/blade.json +0 -13
- package/data/honkaistarrail/characters/boothill.json +0 -13
- package/data/honkaistarrail/characters/bronya.json +0 -13
- package/data/honkaistarrail/characters/castorice.json +0 -13
- package/data/honkaistarrail/characters/cerydra.json +0 -13
- package/data/honkaistarrail/characters/cipher.json +0 -13
- package/data/honkaistarrail/characters/clara.json +0 -13
- package/data/honkaistarrail/characters/constance.json +0 -13
- package/data/honkaistarrail/characters/cyrene.json +0 -13
- package/data/honkaistarrail/characters/danheng.json +0 -13
- package/data/honkaistarrail/characters/danhengimbibitorlunae.json +0 -29
- package/data/honkaistarrail/characters/danhengpermansorterrae.json +0 -29
- package/data/honkaistarrail/characters/drratio.json +0 -13
- package/data/honkaistarrail/characters/evanescia.json +0 -29
- package/data/honkaistarrail/characters/evernight.json +0 -29
- package/data/honkaistarrail/characters/feixiao.json +0 -13
- package/data/honkaistarrail/characters/firefly.json +0 -13
- package/data/honkaistarrail/characters/fugue.json +0 -29
- package/data/honkaistarrail/characters/fuxuan.json +0 -13
- package/data/honkaistarrail/characters/gallagher.json +0 -13
- package/data/honkaistarrail/characters/gepard.json +0 -13
- package/data/honkaistarrail/characters/gilgamesh.json +0 -29
- package/data/honkaistarrail/characters/guinaifen.json +0 -13
- package/data/honkaistarrail/characters/hanya.json +0 -13
- package/data/honkaistarrail/characters/herta.json +0 -13
- package/data/honkaistarrail/characters/himeko.json +0 -14
- package/data/honkaistarrail/characters/himekonova.json +0 -29
- package/data/honkaistarrail/characters/hook.json +0 -13
- package/data/honkaistarrail/characters/huohuo.json +0 -13
- package/data/honkaistarrail/characters/hyacine.json +0 -13
- package/data/honkaistarrail/characters/hysilens.json +0 -13
- package/data/honkaistarrail/characters/jade.json +0 -13
- package/data/honkaistarrail/characters/jiaoqiu.json +0 -13
- package/data/honkaistarrail/characters/jingliu.json +0 -13
- package/data/honkaistarrail/characters/jingyuan.json +0 -13
- package/data/honkaistarrail/characters/kafka.json +0 -13
- package/data/honkaistarrail/characters/lingsha.json +0 -13
- package/data/honkaistarrail/characters/lisushang.json +0 -13
- package/data/honkaistarrail/characters/luka.json +0 -13
- package/data/honkaistarrail/characters/luocha.json +0 -13
- package/data/honkaistarrail/characters/lynx.json +0 -13
- package/data/honkaistarrail/characters/march7th.json +0 -13
- package/data/honkaistarrail/characters/misha.json +0 -13
- package/data/honkaistarrail/characters/mortenaxblade.json +0 -29
- package/data/honkaistarrail/characters/moze.json +0 -13
- package/data/honkaistarrail/characters/mydei.json +0 -13
- package/data/honkaistarrail/characters/natasha.json +0 -13
- package/data/honkaistarrail/characters/pela.json +0 -13
- package/data/honkaistarrail/characters/phainon.json +0 -13
- package/data/honkaistarrail/characters/qingque.json +0 -13
- package/data/honkaistarrail/characters/rappa.json +0 -13
- package/data/honkaistarrail/characters/rintohsaka.json +0 -29
- package/data/honkaistarrail/characters/robin.json +0 -13
- package/data/honkaistarrail/characters/ruanmei.json +0 -13
- package/data/honkaistarrail/characters/saber.json +0 -29
- package/data/honkaistarrail/characters/sampo.json +0 -13
- package/data/honkaistarrail/characters/seele.json +0 -13
- package/data/honkaistarrail/characters/serval.json +0 -13
- package/data/honkaistarrail/characters/silverwolf.json +0 -13
- package/data/honkaistarrail/characters/silverwolflv999.json +0 -29
- package/data/honkaistarrail/characters/sparkle.json +0 -13
- package/data/honkaistarrail/characters/sparxie.json +0 -29
- package/data/honkaistarrail/characters/sunday.json +0 -29
- package/data/honkaistarrail/characters/thedahlia.json +0 -29
- package/data/honkaistarrail/characters/theherta.json +0 -29
- package/data/honkaistarrail/characters/tingyun.json +0 -13
- package/data/honkaistarrail/characters/topaz.json +0 -13
- package/data/honkaistarrail/characters/topaznumby.json +0 -29
- package/data/honkaistarrail/characters/trailblazer.json +0 -29
- package/data/honkaistarrail/characters/tribbie.json +0 -13
- package/data/honkaistarrail/characters/welt.json +0 -29
- package/data/honkaistarrail/characters/weltyang.json +0 -13
- package/data/honkaistarrail/characters/xueyi.json +0 -13
- package/data/honkaistarrail/characters/yanqing.json +0 -13
- package/data/honkaistarrail/characters/yaoguang.json +0 -13
- package/data/honkaistarrail/characters/yukong.json +0 -13
- package/data/honkaistarrail/characters/yunli.json +0 -13
- package/data/honkaistarrail/meta.json +0 -14
- package/data/nte/characters/adler.json +0 -15
- package/data/nte/characters/aurelia.json +0 -15
- package/data/nte/characters/baicang.json +0 -15
- package/data/nte/characters/chaos.json +0 -15
- package/data/nte/characters/chiz.json +0 -15
- package/data/nte/characters/daffodill.json +0 -15
- package/data/nte/characters/edgar.json +0 -15
- package/data/nte/characters/esperzero.json +0 -15
- package/data/nte/characters/fadia.json +0 -15
- package/data/nte/characters/haniel.json +0 -15
- package/data/nte/characters/hathor.json +0 -15
- package/data/nte/characters/hotori.json +0 -15
- package/data/nte/characters/iroi.json +0 -15
- package/data/nte/characters/jiuyuan.json +0 -15
- package/data/nte/characters/lacrimosa.json +0 -15
- package/data/nte/characters/mint.json +0 -15
- package/data/nte/characters/nanally.json +0 -15
- package/data/nte/characters/sakiri.json +0 -15
- package/data/nte/characters/shinku.json +0 -15
- package/data/nte/characters/skia.json +0 -15
- package/data/nte/characters/zankou.json +0 -51
- package/data/nte/meta.json +0 -14
- package/data/toweroffantasy/characters/alyss.json +0 -27
- package/data/toweroffantasy/characters/annabella.json +0 -23
- package/data/toweroffantasy/characters/asuka.json +0 -23
- package/data/toweroffantasy/characters/bailing.json +0 -23
- package/data/toweroffantasy/characters/brevey.json +0 -23
- package/data/toweroffantasy/characters/claudia.json +0 -23
- package/data/toweroffantasy/characters/cobaltb.json +0 -23
- package/data/toweroffantasy/characters/cocoritter.json +0 -23
- package/data/toweroffantasy/characters/crow.json +0 -23
- package/data/toweroffantasy/characters/echo.json +0 -23
- package/data/toweroffantasy/characters/ene.json +0 -23
- package/data/toweroffantasy/characters/feise.json +0 -25
- package/data/toweroffantasy/characters/fenrir.json +0 -23
- package/data/toweroffantasy/characters/fiona.json +0 -25
- package/data/toweroffantasy/characters/frigg.json +0 -23
- package/data/toweroffantasy/characters/gnonno.json +0 -23
- package/data/toweroffantasy/characters/hilda.json +0 -23
- package/data/toweroffantasy/characters/huang.json +0 -25
- package/data/toweroffantasy/characters/huma.json +0 -25
- package/data/toweroffantasy/characters/icarus.json +0 -23
- package/data/toweroffantasy/characters/jiyu.json +0 -25
- package/data/toweroffantasy/characters/king.json +0 -23
- package/data/toweroffantasy/characters/lan.json +0 -25
- package/data/toweroffantasy/characters/lin.json +0 -23
- package/data/toweroffantasy/characters/linghan.json +0 -23
- package/data/toweroffantasy/characters/liuhuo.json +0 -23
- package/data/toweroffantasy/characters/lyra.json +0 -23
- package/data/toweroffantasy/characters/meryl.json +0 -23
- package/data/toweroffantasy/characters/mingjing.json +0 -27
- package/data/toweroffantasy/characters/nanyin.json +0 -25
- package/data/toweroffantasy/characters/nemesis.json +0 -25
- package/data/toweroffantasy/characters/pepper.json +0 -23
- package/data/toweroffantasy/characters/plotti.json +0 -25
- package/data/toweroffantasy/characters/roslyn.json +0 -23
- package/data/toweroffantasy/characters/rubilia.json +0 -25
- package/data/toweroffantasy/characters/ruby.json +0 -25
- package/data/toweroffantasy/characters/sakifuwa.json +0 -23
- package/data/toweroffantasy/characters/samir.json +0 -23
- package/data/toweroffantasy/characters/shiro.json +0 -25
- package/data/toweroffantasy/characters/tianlang.json +0 -25
- package/data/toweroffantasy/characters/tsubasa.json +0 -23
- package/data/toweroffantasy/characters/umi.json +0 -23
- package/data/toweroffantasy/characters/yanmiao.json +0 -25
- package/data/toweroffantasy/characters/yanuo.json +0 -23
- package/data/toweroffantasy/characters/yulan.json +0 -23
- package/data/toweroffantasy/characters/zero.json +0 -23
- package/data/toweroffantasy/meta.json +0 -14
- package/data/vrchat/groups/clubzodiac.json +0 -8
- package/data/vrchat/groups/dirtydancers.json +0 -8
- package/data/vrchat/groups/drumsynews.json +0 -8
- package/data/vrchat/groups/ebola20.json +0 -8
- package/data/vrchat/groups/internationaldancersassociation.json +0 -8
- package/data/vrchat/groups/kannagang.json +0 -7
- package/data/vrchat/groups/lolisquad.json +0 -8
- package/data/vrchat/groups/nekonightsnightclub.json +0 -8
- package/data/vrchat/groups/nekostudios.json +0 -8
- package/data/vrchat/groups/nekosunecommunity.json +0 -8
- package/data/vrchat/groups/voidclub.json +0 -8
- package/data/vrchat/groups/voltdanceclub.json +0 -8
- package/data/vrchat/groups/vrceventsgroup.json +0 -8
- package/data/vrchat/groups/vrchatcommunitydiscord.json +0 -7
- package/data/vrchat/meta.json +0 -13
- package/data/vrchat/players/alto.json +0 -10
- package/data/vrchat/players/arcadum.json +0 -11
- package/data/vrchat/players/chairhandler.json +0 -10
- package/data/vrchat/players/chipz.json +0 -10
- package/data/vrchat/players/hikarivr.json +0 -11
- package/data/vrchat/players/kimple.json +0 -11
- package/data/vrchat/players/linkzr.json +0 -9
- package/data/vrchat/players/nagzz21.json +0 -10
- package/data/vrchat/players/nebride.json +0 -11
- package/data/vrchat/players/nekosunevr.json +0 -11
- package/data/vrchat/players/pokelawls.json +0 -10
- package/data/vrchat/players/qwonk.json +0 -9
- package/data/vrchat/players/roflgator.json +0 -11
- package/data/vrchat/players/scifri.json +0 -8
- package/data/vrchat/players/sodapoppin.json +0 -10
- package/data/vrchat/players/woops.json +0 -10
- package/data/vrchat/players/zentreya.json +0 -11
- package/data/vrchat/worlds/ascensionacademy.json +0 -8
- package/data/vrchat/worlds/clubvgl.json +0 -9
- package/data/vrchat/worlds/fightfinder.json +0 -9
- package/data/vrchat/worlds/hangouthouse.json +0 -8
- package/data/vrchat/worlds/nekostudioshalloween.json +0 -10
- package/data/vrchat/worlds/nekostudiosnewyear.json +0 -10
- package/data/vrchat/worlds/nekostudiosxmas.json +0 -10
- package/data/vrchat/worlds/nekosunevranimations2023.json +0 -10
- package/data/vrchat/worlds/nekosunevranimations20232024.json +0 -10
- package/data/vrchat/worlds/nekosunevranimations2024.json +0 -10
- package/data/vrchat/worlds/nekosunevranimations2025.json +0 -10
- package/data/vrchat/worlds/rumhamsavatarworld.json +0 -8
- package/data/vrchat/worlds/smewsranch.json +0 -8
- package/data/vrchat/worlds/smewsroom.json +0 -8
- package/data/vrchat/worlds/sunsetbar.json +0 -8
- package/data/vrchat/worlds/theblackcat.json +0 -10
- package/data/vrchat/worlds/thegreatpug.json +0 -9
- package/data/vrchat/worlds/themidnightbar.json +0 -8
- package/data/vrchat/worlds/voidclub.json +0 -8
- package/data/vrchat/worlds/voltdanceclub.json +0 -8
- package/data/vrchat/worlds/vrchathome.json +0 -9
- package/data/vrchat/worlds/whatalegend.json +0 -7
- package/data/warframe/characters/amesha.json +0 -226
- package/data/warframe/characters/ash.json +0 -1354
- package/data/warframe/characters/ashprime.json +0 -1994
- package/data/warframe/characters/atlas.json +0 -916
- package/data/warframe/characters/atlasprime.json +0 -1632
- package/data/warframe/characters/banshee.json +0 -1036
- package/data/warframe/characters/bansheeprime.json +0 -1750
- package/data/warframe/characters/baruuk.json +0 -555
- package/data/warframe/characters/baruukprime.json +0 -1298
- package/data/warframe/characters/bonewidow.json +0 -354
- package/data/warframe/characters/caliban.json +0 -434
- package/data/warframe/characters/calibanprime.json +0 -683
- package/data/warframe/characters/chroma.json +0 -1344
- package/data/warframe/characters/chromaprime.json +0 -1977
- package/data/warframe/characters/citrine.json +0 -220
- package/data/warframe/characters/cyte09.json +0 -218
- package/data/warframe/characters/dagath.json +0 -194
- package/data/warframe/characters/dante.json +0 -223
- package/data/warframe/characters/elytron.json +0 -300
- package/data/warframe/characters/ember.json +0 -1209
- package/data/warframe/characters/emberprime.json +0 -1678
- package/data/warframe/characters/equinox.json +0 -958
- package/data/warframe/characters/equinoxprime.json +0 -1644
- package/data/warframe/characters/excalibur.json +0 -1603
- package/data/warframe/characters/excaliburprime.json +0 -1524
- package/data/warframe/characters/excaliburumbra.json +0 -397
- package/data/warframe/characters/follie.json +0 -246
- package/data/warframe/characters/frost.json +0 -1330
- package/data/warframe/characters/frostprime.json +0 -1686
- package/data/warframe/characters/gara.json +0 -925
- package/data/warframe/characters/garaprime.json +0 -1494
- package/data/warframe/characters/garuda.json +0 -851
- package/data/warframe/characters/garudaprime.json +0 -1449
- package/data/warframe/characters/gauss.json +0 -506
- package/data/warframe/characters/gaussprime.json +0 -1077
- package/data/warframe/characters/grendel.json +0 -463
- package/data/warframe/characters/grendelprime.json +0 -772
- package/data/warframe/characters/gyre.json +0 -381
- package/data/warframe/characters/gyreprime.json +0 -403
- package/data/warframe/characters/harrow.json +0 -916
- package/data/warframe/characters/harrowprime.json +0 -1700
- package/data/warframe/characters/helminth.json +0 -220
- package/data/warframe/characters/hildryn.json +0 -627
- package/data/warframe/characters/hildrynprime.json +0 -996
- package/data/warframe/characters/hydroid.json +0 -1028
- package/data/warframe/characters/hydroidprime.json +0 -1621
- package/data/warframe/characters/inaros.json +0 -976
- package/data/warframe/characters/inarosprime.json +0 -1721
- package/data/warframe/characters/itzal.json +0 -465
- package/data/warframe/characters/ivara.json +0 -1349
- package/data/warframe/characters/ivaraprime.json +0 -1921
- package/data/warframe/characters/jade.json +0 -240
- package/data/warframe/characters/khora.json +0 -804
- package/data/warframe/characters/khoraprime.json +0 -1403
- package/data/warframe/characters/koumei.json +0 -221
- package/data/warframe/characters/kullervo.json +0 -191
- package/data/warframe/characters/lavos.json +0 -511
- package/data/warframe/characters/lavosprime.json +0 -711
- package/data/warframe/characters/limbo.json +0 -1363
- package/data/warframe/characters/limboprime.json +0 -2084
- package/data/warframe/characters/loki.json +0 -1209
- package/data/warframe/characters/lokiprime.json +0 -1457
- package/data/warframe/characters/mag.json +0 -2089
- package/data/warframe/characters/magprime.json +0 -2532
- package/data/warframe/characters/mesa.json +0 -1195
- package/data/warframe/characters/mesaprime.json +0 -2059
- package/data/warframe/characters/mirage.json +0 -1561
- package/data/warframe/characters/mirageprime.json +0 -2257
- package/data/warframe/characters/nekros.json +0 -1235
- package/data/warframe/characters/nekrosprime.json +0 -1882
- package/data/warframe/characters/nezha.json +0 -868
- package/data/warframe/characters/nezhaprime.json +0 -1695
- package/data/warframe/characters/nidus.json +0 -1027
- package/data/warframe/characters/nidusprime.json +0 -1706
- package/data/warframe/characters/nokko.json +0 -308
- package/data/warframe/characters/nova.json +0 -1226
- package/data/warframe/characters/novaprime.json +0 -1667
- package/data/warframe/characters/nyx.json +0 -1610
- package/data/warframe/characters/nyxprime.json +0 -1967
- package/data/warframe/characters/oberon.json +0 -1249
- package/data/warframe/characters/oberonprime.json +0 -1872
- package/data/warframe/characters/octavia.json +0 -1049
- package/data/warframe/characters/octaviaprime.json +0 -1735
- package/data/warframe/characters/odonata.json +0 -336
- package/data/warframe/characters/odonataprime.json +0 -787
- package/data/warframe/characters/oraxia.json +0 -246
- package/data/warframe/characters/orionsirius.json +0 -134
- package/data/warframe/characters/protea.json +0 -521
- package/data/warframe/characters/proteaprime.json +0 -992
- package/data/warframe/characters/qorvex.json +0 -214
- package/data/warframe/characters/revenant.json +0 -931
- package/data/warframe/characters/revenantprime.json +0 -1494
- package/data/warframe/characters/rhino.json +0 -1344
- package/data/warframe/characters/rhinoprime.json +0 -1675
- package/data/warframe/characters/saryn.json +0 -1210
- package/data/warframe/characters/sarynprime.json +0 -2042
- package/data/warframe/characters/sevagoth.json +0 -478
- package/data/warframe/characters/sevagothprime.json +0 -910
- package/data/warframe/characters/siriusorion.json +0 -247
- package/data/warframe/characters/styanax.json +0 -320
- package/data/warframe/characters/styanaxprime.json +0 -321
- package/data/warframe/characters/temple.json +0 -271
- package/data/warframe/characters/titania.json +0 -1227
- package/data/warframe/characters/titaniaprime.json +0 -2000
- package/data/warframe/characters/trinity.json +0 -1097
- package/data/warframe/characters/trinityprime.json +0 -1849
- package/data/warframe/characters/uriel.json +0 -215
- package/data/warframe/characters/valkyr.json +0 -1165
- package/data/warframe/characters/valkyrprime.json +0 -1969
- package/data/warframe/characters/vauban.json +0 -1067
- package/data/warframe/characters/vaubanprime.json +0 -1614
- package/data/warframe/characters/voidrig.json +0 -355
- package/data/warframe/characters/volt.json +0 -1324
- package/data/warframe/characters/voltprime.json +0 -1843
- package/data/warframe/characters/voruna.json +0 -293
- package/data/warframe/characters/vorunaprime.json +0 -431
- package/data/warframe/characters/wisp.json +0 -824
- package/data/warframe/characters/wispprime.json +0 -908
- package/data/warframe/characters/wukong.json +0 -927
- package/data/warframe/characters/wukongprime.json +0 -1754
- package/data/warframe/characters/xaku.json +0 -620
- package/data/warframe/characters/xakuprime.json +0 -879
- package/data/warframe/characters/yareli.json +0 -409
- package/data/warframe/characters/yareliprime.json +0 -683
- package/data/warframe/characters/zephyr.json +0 -1149
- package/data/warframe/characters/zephyrprime.json +0 -1864
- package/data/warframe/meta.json +0 -14
- package/data/wutheringwaves/meta.json +0 -14
- package/data/zenlesszonezero/meta.json +0 -14
- package/gamecodes.js +0 -204
- package/scripts/cache-sync-smoke.js +0 -139
- package/scripts/game-code-cache-smoke.js +0 -125
- package/scripts/sync-all-cache.js +0 -18
- package/scripts/sync-api-cache.js +0 -368
- package/scripts/sync-game-code-cache.js +0 -283
- package/scripts/sync-gaming-info-cache.js +0 -46
package/index.js
CHANGED
|
@@ -1,226 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
const gameCodes = require('./gamecodes');
|
|
1
|
+
'use strict';
|
|
2
|
+
const { createClient, createWarframe, createVRChat, listProviders, providers } = require('./src/registry');
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
const DEFAULT_API_BASE = 'https://api.nekosunevr.co.uk';
|
|
7
|
-
const DEFAULT_API_PATH = '/v5/games/api/gaming-infos';
|
|
8
|
-
const DEFAULT_TIMEOUT_MS = 4000;
|
|
9
|
-
|
|
10
|
-
function apiBase() {
|
|
11
|
-
return (process.env.GAMING_INFOS_API_BASE || DEFAULT_API_BASE).replace(/\/+$/, '');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function apiPath() {
|
|
15
|
-
return process.env.GAMING_INFOS_API_PATH || DEFAULT_API_PATH;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function apiDisabled() {
|
|
19
|
-
return process.env.GAMING_INFOS_DISABLE_API === '1' || process.env.GAMING_INFOS_DISABLE_API === 'true';
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function timeoutMs() {
|
|
23
|
-
const raw = Number(process.env.GAMING_INFOS_TIMEOUT_MS);
|
|
24
|
-
return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_TIMEOUT_MS;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function withLocalSlug(filePath, data) {
|
|
28
|
-
if (!data || Array.isArray(data) || typeof data !== 'object' || data.slug) return data;
|
|
29
|
-
return { ...data, slug: path.basename(filePath, '.json').toLowerCase() };
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Live lookups go through the NekoSuneVR V5 API first so data can be updated
|
|
33
|
-
// in real time without republishing this package. The bundled JSON under
|
|
34
|
-
// data/ is the offline fallback and is mirrored from APINODE by the hourly
|
|
35
|
-
// change-watch workflow.
|
|
36
|
-
async function fetchFromApi(game, type, name) {
|
|
37
|
-
if (apiDisabled() || typeof fetch !== 'function') return null;
|
|
38
|
-
|
|
39
|
-
const url = `${apiBase()}${apiPath()}/${encodeURIComponent(game.toLowerCase())}/${encodeURIComponent(type)}/${encodeURIComponent(name.toLowerCase())}`;
|
|
40
|
-
const controller = new AbortController();
|
|
41
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs());
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
const res = await fetch(url, { signal: controller.signal });
|
|
45
|
-
if (!res.ok) return null;
|
|
46
|
-
const body = await res.json();
|
|
47
|
-
if (!body || body.success === false) return null;
|
|
48
|
-
return body.data !== undefined ? body.data : body;
|
|
49
|
-
} catch (err) {
|
|
50
|
-
return null;
|
|
51
|
-
} finally {
|
|
52
|
-
clearTimeout(timer);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async function loadLocal(game, type, name) {
|
|
57
|
-
const filePath = path.join(DATA_DIR, game.toLowerCase(), type, `${name.toLowerCase()}.json`);
|
|
58
|
-
if (!fs.existsSync(filePath)) {
|
|
59
|
-
throw new Error(`${type} "${name}" not found for game "${game}"`);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const raw = await fs.promises.readFile(filePath, 'utf8');
|
|
63
|
-
return withLocalSlug(filePath, JSON.parse(raw));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
async function fetchListFromApi(game, type) {
|
|
67
|
-
if (apiDisabled() || typeof fetch !== 'function') return null;
|
|
68
|
-
|
|
69
|
-
const url = `${apiBase()}${apiPath()}/${encodeURIComponent(game.toLowerCase())}/${encodeURIComponent(type)}`;
|
|
70
|
-
const controller = new AbortController();
|
|
71
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs());
|
|
72
|
-
|
|
73
|
-
try {
|
|
74
|
-
const res = await fetch(url, { signal: controller.signal });
|
|
75
|
-
if (!res.ok) return null;
|
|
76
|
-
const body = await res.json();
|
|
77
|
-
if (!body || body.success === false) return null;
|
|
78
|
-
const data = body.data !== undefined ? body.data : body;
|
|
79
|
-
return Array.isArray(data) ? data : null;
|
|
80
|
-
} catch (err) {
|
|
81
|
-
return null;
|
|
82
|
-
} finally {
|
|
83
|
-
clearTimeout(timer);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
async function listLocal(game, type) {
|
|
88
|
-
const dir = path.join(DATA_DIR, game.toLowerCase(), type);
|
|
89
|
-
if (!fs.existsSync(dir)) return [];
|
|
90
|
-
|
|
91
|
-
const files = (await fs.promises.readdir(dir)).filter((file) => file.endsWith('.json')).sort((a, b) => a.localeCompare(b));
|
|
92
|
-
const items = [];
|
|
93
|
-
for (const file of files) {
|
|
94
|
-
const filePath = path.join(dir, file);
|
|
95
|
-
const raw = await fs.promises.readFile(filePath, 'utf8');
|
|
96
|
-
items.push(withLocalSlug(filePath, JSON.parse(raw)));
|
|
97
|
-
}
|
|
98
|
-
return items;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
async function list(game, type) {
|
|
102
|
-
if (!game || !type) {
|
|
103
|
-
return { error: 'game and type are both required' };
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const fromApi = await fetchListFromApi(game, type);
|
|
107
|
-
if (fromApi) return fromApi;
|
|
108
|
-
|
|
109
|
-
try {
|
|
110
|
-
return await listLocal(game, type);
|
|
111
|
-
} catch (err) {
|
|
112
|
-
return { error: err.message };
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
async function fetchGamesFromApi() {
|
|
117
|
-
if (apiDisabled() || typeof fetch !== 'function') return null;
|
|
118
|
-
|
|
119
|
-
const url = `${apiBase()}${apiPath()}`;
|
|
120
|
-
const controller = new AbortController();
|
|
121
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs());
|
|
122
|
-
|
|
123
|
-
try {
|
|
124
|
-
const res = await fetch(url, { signal: controller.signal });
|
|
125
|
-
if (!res.ok) return null;
|
|
126
|
-
const body = await res.json();
|
|
127
|
-
if (!body || body.success === false) return null;
|
|
128
|
-
const data = body.data !== undefined ? body.data : body;
|
|
129
|
-
return Array.isArray(data) ? data : null;
|
|
130
|
-
} catch (err) {
|
|
131
|
-
return null;
|
|
132
|
-
} finally {
|
|
133
|
-
clearTimeout(timer);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
async function listGamesLocal() {
|
|
138
|
-
const entries = await fs.promises.readdir(DATA_DIR, { withFileTypes: true });
|
|
139
|
-
const games = [];
|
|
140
|
-
for (const entry of entries) {
|
|
141
|
-
if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === 'game-codes') continue;
|
|
142
|
-
const metaPath = path.join(DATA_DIR, entry.name, 'meta.json');
|
|
143
|
-
if (!fs.existsSync(metaPath)) continue;
|
|
144
|
-
const raw = await fs.promises.readFile(metaPath, 'utf8');
|
|
145
|
-
games.push(JSON.parse(raw));
|
|
146
|
-
}
|
|
147
|
-
return games;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
async function games() {
|
|
151
|
-
const fromApi = await fetchGamesFromApi();
|
|
152
|
-
if (fromApi) return fromApi;
|
|
153
|
-
|
|
154
|
-
try {
|
|
155
|
-
return await listGamesLocal();
|
|
156
|
-
} catch (err) {
|
|
157
|
-
return { error: err.message };
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
async function load(game, type, name) {
|
|
162
|
-
if (!game || !type || !name) {
|
|
163
|
-
return { error: 'game, type, and name are all required' };
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const fromApi = await fetchFromApi(game, type, name);
|
|
167
|
-
if (fromApi) return fromApi;
|
|
168
|
-
|
|
169
|
-
try {
|
|
170
|
-
return await loadLocal(game, type, name);
|
|
171
|
-
} catch (err) {
|
|
172
|
-
return { error: err.message };
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
async function loadGameMeta(game) {
|
|
177
|
-
if (!game) return { error: 'game is required' };
|
|
178
|
-
|
|
179
|
-
const fromApi = await fetchFromApi(game, 'meta', game);
|
|
180
|
-
if (fromApi) return fromApi;
|
|
181
|
-
|
|
182
|
-
try {
|
|
183
|
-
const filePath = path.join(DATA_DIR, game.toLowerCase(), 'meta.json');
|
|
184
|
-
if (!fs.existsSync(filePath)) {
|
|
185
|
-
throw new Error(`meta info for game "${game}" not found`);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
const raw = await fs.promises.readFile(filePath, 'utf8');
|
|
189
|
-
return JSON.parse(raw);
|
|
190
|
-
} catch (err) {
|
|
191
|
-
return { error: err.message };
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
async function cacheInfo() {
|
|
196
|
-
try {
|
|
197
|
-
const filePath = path.join(DATA_DIR, '.cache-manifest.json');
|
|
198
|
-
if (!fs.existsSync(filePath)) return null;
|
|
199
|
-
return JSON.parse(await fs.promises.readFile(filePath, 'utf8'));
|
|
200
|
-
} catch (err) {
|
|
201
|
-
return { error: err.message };
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
module.exports = {
|
|
206
|
-
Games: () => games(),
|
|
207
|
-
Game: (game) => loadGameMeta(game),
|
|
208
|
-
Worlds: (game, name) => load(game, 'worlds', name),
|
|
209
|
-
Groups: (game, name) => load(game, 'groups', name),
|
|
210
|
-
Players: (game, name) => load(game, 'players', name),
|
|
211
|
-
Avatars: (game, name) => load(game, 'avatars', name),
|
|
212
|
-
Characters: (game, name) => load(game, 'characters', name),
|
|
213
|
-
NPCs: (game, name) => load(game, 'npcs', name),
|
|
214
|
-
Maps: (game, name) => load(game, 'maps', name),
|
|
215
|
-
Get: (game, type, name) => load(game, type, name),
|
|
216
|
-
List: (game, type) => list(game, type),
|
|
217
|
-
CacheInfo: () => cacheInfo(),
|
|
218
|
-
|
|
219
|
-
// Game redeem/creator code API helpers. These also use live APINODE first and
|
|
220
|
-
// automatically fall back to the hourly mirrored data/game-codes snapshot.
|
|
221
|
-
Codes: gameCodes.Codes,
|
|
222
|
-
CodesStatus: gameCodes.CodesStatus,
|
|
223
|
-
GameCodes: gameCodes.GameCodes,
|
|
224
|
-
GameCode: gameCodes.GameCode,
|
|
225
|
-
CodeCacheInfo: gameCodes.CodeCacheInfo
|
|
226
|
-
};
|
|
4
|
+
module.exports = Object.freeze({ createClient, createWarframe, createVRChat, listProviders, providers });
|
package/package.json
CHANGED
|
@@ -1,60 +1,55 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"npcs",
|
|
56
|
-
"maps"
|
|
57
|
-
],
|
|
58
|
-
"author": "NekoSuneVR",
|
|
59
|
-
"license": "MIT"
|
|
2
|
+
"name": "@nekosuneprojects/gaming-infos",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"description": "Modular multi-game information SDK using independently versioned Warframe and VRChat providers.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "commonjs",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=18"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "node --test",
|
|
12
|
+
"check": "node --check index.js && node --check src/registry.js && node --check src/providers/warframe.js && node --check src/providers/vrchat.js",
|
|
13
|
+
"prepack": "npm run check && npm test"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/NekoSuneProjectsNPM/gaming-infos.git"
|
|
18
|
+
},
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/NekoSuneProjectsNPM/gaming-infos/issues"
|
|
21
|
+
},
|
|
22
|
+
"funding": "https://github.com/NekoSuneProjectsNPM/gaming-infos?sponsor",
|
|
23
|
+
"keywords": [
|
|
24
|
+
"gaming",
|
|
25
|
+
"game-data",
|
|
26
|
+
"modular",
|
|
27
|
+
"warframe",
|
|
28
|
+
"warframe-api",
|
|
29
|
+
"worldstate",
|
|
30
|
+
"redeem-codes",
|
|
31
|
+
"vrchat",
|
|
32
|
+
"vrchat-api",
|
|
33
|
+
"worlds",
|
|
34
|
+
"groups",
|
|
35
|
+
"avatars",
|
|
36
|
+
"avatar-search"
|
|
37
|
+
],
|
|
38
|
+
"author": "NekoSuneVR",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@nekosuneprojects/warframe-api": "1.0.1",
|
|
42
|
+
"@nekosuneprojects/vrchat-api": "1.0.0"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"index.js",
|
|
46
|
+
"src/",
|
|
47
|
+
"README.md",
|
|
48
|
+
"CHANGELOG.md",
|
|
49
|
+
"LICENSE"
|
|
50
|
+
],
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public",
|
|
53
|
+
"registry": "https://registry.npmjs.org/"
|
|
54
|
+
}
|
|
60
55
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const VRChat = require('@nekosuneprojects/vrchat-api');
|
|
3
|
+
|
|
4
|
+
function create(options = {}) {
|
|
5
|
+
if (!options || typeof options !== 'object' || Array.isArray(options)) {
|
|
6
|
+
throw new TypeError('VRChat options must be an object');
|
|
7
|
+
}
|
|
8
|
+
return VRChat(options);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
module.exports = Object.freeze({ id: 'vrchat', create });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const Warframe = require('@nekosuneprojects/warframe-api');
|
|
3
|
+
function create(options = {}) {
|
|
4
|
+
if (!options || typeof options !== 'object' || Array.isArray(options)) throw new TypeError('Warframe options must be an object');
|
|
5
|
+
return Warframe(options);
|
|
6
|
+
}
|
|
7
|
+
module.exports = Object.freeze({ id: 'warframe', create });
|
package/src/registry.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const warframe = require('./providers/warframe');
|
|
3
|
+
const vrchat = require('./providers/vrchat');
|
|
4
|
+
|
|
5
|
+
const providers = Object.freeze({ warframe, vrchat });
|
|
6
|
+
|
|
7
|
+
function listProviders() { return Object.keys(providers); }
|
|
8
|
+
|
|
9
|
+
function createClient(game, options = {}) {
|
|
10
|
+
if (typeof game !== 'string' || !game.trim()) {
|
|
11
|
+
throw new TypeError('Game must be a non-empty string');
|
|
12
|
+
}
|
|
13
|
+
const key = game.trim().toLowerCase();
|
|
14
|
+
if (!Object.hasOwn(providers, key)) {
|
|
15
|
+
throw new RangeError(`Game provider not installed: ${game}`);
|
|
16
|
+
}
|
|
17
|
+
return providers[key].create(options);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function createWarframe(options = {}) { return createClient('warframe', options); }
|
|
21
|
+
function createVRChat(options = {}) { return createClient('vrchat', options); }
|
|
22
|
+
|
|
23
|
+
module.exports = { createClient, createWarframe, createVRChat, listProviders, providers };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
name: Node.js Package GitHub Mode
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types:
|
|
6
|
-
- published
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: write
|
|
10
|
-
issues: write
|
|
11
|
-
pull-requests: write
|
|
12
|
-
packages: write
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
build:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout repository
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: Setup Node.js
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: 24
|
|
25
|
-
|
|
26
|
-
- name: Install dependencies
|
|
27
|
-
run: npm ci
|
|
28
|
-
|
|
29
|
-
publish-gpr:
|
|
30
|
-
needs: build
|
|
31
|
-
runs-on: ubuntu-latest
|
|
32
|
-
steps:
|
|
33
|
-
- name: Checkout repository
|
|
34
|
-
uses: actions/checkout@v4
|
|
35
|
-
|
|
36
|
-
- name: Setup Node.js for GitHub Packages
|
|
37
|
-
uses: actions/setup-node@v4
|
|
38
|
-
with:
|
|
39
|
-
node-version: 24
|
|
40
|
-
registry-url: https://npm.pkg.github.com/
|
|
41
|
-
|
|
42
|
-
- name: Install dependencies
|
|
43
|
-
run: npm ci
|
|
44
|
-
|
|
45
|
-
# Read version from package.json
|
|
46
|
-
- name: Read version from package.json
|
|
47
|
-
id: read_version
|
|
48
|
-
run: |
|
|
49
|
-
VERSION=$(node -p "require('./package.json').version")
|
|
50
|
-
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
51
|
-
|
|
52
|
-
# Publish package to GitHub Packages
|
|
53
|
-
- name: Publish to GitHub Packages
|
|
54
|
-
run: npm publish
|
|
55
|
-
env:
|
|
56
|
-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
name: Node.js Package NPMJS
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types:
|
|
6
|
-
- published
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: write
|
|
10
|
-
issues: write
|
|
11
|
-
pull-requests: write
|
|
12
|
-
packages: write
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
release:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
# Checkout project repository
|
|
19
|
-
- name: Checkout
|
|
20
|
-
uses: actions/checkout@v4
|
|
21
|
-
|
|
22
|
-
# Setup Node.js environment
|
|
23
|
-
- name: Setup Node.js
|
|
24
|
-
uses: actions/setup-node@v4
|
|
25
|
-
with:
|
|
26
|
-
node-version: '24'
|
|
27
|
-
registry-url: 'https://registry.npmjs.org/'
|
|
28
|
-
|
|
29
|
-
# Read current package version
|
|
30
|
-
- name: Read version from package.json
|
|
31
|
-
id: read_version
|
|
32
|
-
run: |
|
|
33
|
-
VERSION=$(node -p "require('./package.json').version")
|
|
34
|
-
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
35
|
-
|
|
36
|
-
# Publish version to npm
|
|
37
|
-
- name: Publish to npm
|
|
38
|
-
run: npm publish --access public
|
|
39
|
-
env:
|
|
40
|
-
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
|
|
41
|
-
|
|
42
|
-
# Read the release notes from the already-versioned changelog.
|
|
43
|
-
- id: get_changelog
|
|
44
|
-
name: Get version changelog
|
|
45
|
-
shell: bash
|
|
46
|
-
run: |
|
|
47
|
-
CHANGELOG=$(awk -v version="${VERSION}" '
|
|
48
|
-
$0 ~ "^## \\[?" version "\\]?([[:space:]]+-|$)" { found=1; next }
|
|
49
|
-
found && /^## / { exit }
|
|
50
|
-
found { print }
|
|
51
|
-
' CHANGELOG.md)
|
|
52
|
-
|
|
53
|
-
if [[ -z "${CHANGELOG}" ]]; then
|
|
54
|
-
echo "No changelog section found for version ${VERSION}" >&2
|
|
55
|
-
exit 1
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
echo 'changelog<<CHANGELOG_EOF'
|
|
60
|
-
echo "${CHANGELOG}"
|
|
61
|
-
echo 'CHANGELOG_EOF'
|
|
62
|
-
} >> "${GITHUB_OUTPUT}"
|
|
63
|
-
|
|
64
|
-
# Update GitHub release
|
|
65
|
-
- name: Create or update GitHub Release
|
|
66
|
-
uses: softprops/action-gh-release@v2
|
|
67
|
-
with:
|
|
68
|
-
tag_name: v${{ env.VERSION }}
|
|
69
|
-
body: ${{ steps.get_changelog.outputs.changelog }}
|
|
70
|
-
env:
|
|
71
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
name: Sync APINODE fallback caches
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_dispatch:
|
|
5
|
-
schedule:
|
|
6
|
-
# Hourly change-watch at minute 23. The mirror hashes API content and only
|
|
7
|
-
# commits when APINODE actually added, changed, repaired or removed data.
|
|
8
|
-
- cron: "23 * * * *"
|
|
9
|
-
push:
|
|
10
|
-
branches:
|
|
11
|
-
- main
|
|
12
|
-
paths:
|
|
13
|
-
- "scripts/sync-api-cache.js"
|
|
14
|
-
- "scripts/sync-gaming-info-cache.js"
|
|
15
|
-
- "scripts/sync-game-code-cache.js"
|
|
16
|
-
- "scripts/sync-all-cache.js"
|
|
17
|
-
- "scripts/cache-sync-smoke.js"
|
|
18
|
-
- "scripts/game-code-cache-smoke.js"
|
|
19
|
-
- "gamecodes.js"
|
|
20
|
-
- "index.js"
|
|
21
|
-
- "package.json"
|
|
22
|
-
- "CACHE_SYNC.md"
|
|
23
|
-
- ".github/workflows/sync-api-cache.yml"
|
|
24
|
-
|
|
25
|
-
permissions:
|
|
26
|
-
contents: write
|
|
27
|
-
|
|
28
|
-
concurrency:
|
|
29
|
-
group: gaming-infos-api-cache
|
|
30
|
-
cancel-in-progress: false
|
|
31
|
-
|
|
32
|
-
jobs:
|
|
33
|
-
sync:
|
|
34
|
-
runs-on: ubuntu-latest
|
|
35
|
-
steps:
|
|
36
|
-
- name: Checkout
|
|
37
|
-
uses: actions/checkout@v4
|
|
38
|
-
with:
|
|
39
|
-
fetch-depth: 0
|
|
40
|
-
|
|
41
|
-
- name: Use Node.js 22
|
|
42
|
-
uses: actions/setup-node@v4
|
|
43
|
-
with:
|
|
44
|
-
node-version: 22
|
|
45
|
-
|
|
46
|
-
- name: Test atomic cache behavior
|
|
47
|
-
run: npm run test:all-cache
|
|
48
|
-
|
|
49
|
-
- name: Mirror APINODE gaming-infos and game codes
|
|
50
|
-
run: npm run sync:cache
|
|
51
|
-
env:
|
|
52
|
-
GAMING_INFOS_API_BASE: https://api.nekosunevr.co.uk
|
|
53
|
-
GAMING_INFOS_API_PATH: /v5/games/api/gaming-infos
|
|
54
|
-
GAME_CODES_API_PATH: /v5/games/api/codes
|
|
55
|
-
GAMING_INFOS_CACHE_TIMEOUT_MS: 20000
|
|
56
|
-
GAMING_INFOS_CACHE_RETRIES: 2
|
|
57
|
-
GAME_CODES_CACHE_TIMEOUT_MS: 20000
|
|
58
|
-
GAME_CODES_CACHE_RETRIES: 2
|
|
59
|
-
GAME_CODES_CACHE_GAME_DELAY_MS: 150
|
|
60
|
-
|
|
61
|
-
- name: Commit fallback changes
|
|
62
|
-
shell: bash
|
|
63
|
-
run: |
|
|
64
|
-
git add -A data
|
|
65
|
-
if git diff --cached --quiet; then
|
|
66
|
-
echo "Fallback caches already match APINODE."
|
|
67
|
-
exit 0
|
|
68
|
-
fi
|
|
69
|
-
|
|
70
|
-
git config user.name "github-actions[bot]"
|
|
71
|
-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
72
|
-
git commit -m "chore(cache): mirror APINODE fallback data [skip ci]"
|
|
73
|
-
git push
|