@nekosuneprojects/gaming-infos 2.2.0 → 2.4.0

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.
Files changed (716) hide show
  1. package/.github/workflows/sync-api-cache.yml +3 -2
  2. package/CACHE_SYNC.md +84 -54
  3. package/CHANGELOG.md +34 -3
  4. package/README.md +210 -371
  5. package/data/.cache-manifest.json +112 -0
  6. package/data/arknightsendfield/characters/akekuri.json +75 -0
  7. package/data/arknightsendfield/characters/alesh.json +75 -0
  8. package/data/arknightsendfield/characters/antal.json +75 -0
  9. package/data/arknightsendfield/characters/arcane.json +75 -0
  10. package/data/arknightsendfield/characters/arclight.json +75 -0
  11. package/data/arknightsendfield/characters/ardelia.json +75 -0
  12. package/data/arknightsendfield/characters/avywenna.json +76 -0
  13. package/data/arknightsendfield/characters/camille.json +77 -0
  14. package/data/arknightsendfield/characters/catcher.json +76 -0
  15. package/data/arknightsendfield/characters/chenqianyu.json +76 -0
  16. package/data/arknightsendfield/characters/dapan.json +76 -0
  17. package/data/arknightsendfield/characters/ember.json +76 -0
  18. package/data/arknightsendfield/characters/endministrator.json +63 -0
  19. package/data/arknightsendfield/characters/estella.json +76 -0
  20. package/data/arknightsendfield/characters/fluorite.json +75 -0
  21. package/data/arknightsendfield/characters/gilberta.json +76 -0
  22. package/data/arknightsendfield/characters/laevatain.json +76 -0
  23. package/data/arknightsendfield/characters/lastrite.json +76 -0
  24. package/data/arknightsendfield/characters/lifeng.json +75 -0
  25. package/data/arknightsendfield/characters/liino.json +76 -0
  26. package/data/arknightsendfield/characters/mifu.json +75 -0
  27. package/data/arknightsendfield/characters/perlica.json +76 -0
  28. package/data/arknightsendfield/characters/pogranichnik.json +75 -0
  29. package/data/arknightsendfield/characters/purrchena.json +50 -0
  30. package/data/arknightsendfield/characters/rossi.json +77 -0
  31. package/data/arknightsendfield/characters/snowshine.json +75 -0
  32. package/data/arknightsendfield/characters/tangtang.json +76 -0
  33. package/data/arknightsendfield/characters/typhoeus.json +57 -0
  34. package/data/arknightsendfield/characters/wulfgard.json +77 -0
  35. package/data/arknightsendfield/characters/xaihi.json +76 -0
  36. package/data/arknightsendfield/characters/yvonne.json +76 -0
  37. package/data/arknightsendfield/characters/zhuangfangyi.json +76 -0
  38. package/data/fortnite/characters/agentjones.json +43 -0
  39. package/data/fortnite/characters/agentpeely.json +43 -0
  40. package/data/fortnite/characters/andyfangerson.json +42 -0
  41. package/data/fortnite/characters/antonia.json +43 -0
  42. package/data/fortnite/characters/anwar.json +44 -0
  43. package/data/fortnite/characters/aphrodite.json +43 -0
  44. package/data/fortnite/characters/apollo.json +36 -0
  45. package/data/fortnite/characters/arcticassassin.json +43 -0
  46. package/data/fortnite/characters/artemis.json +36 -0
  47. package/data/fortnite/characters/battlewoodboulevard.json +43 -0
  48. package/data/fortnite/characters/beastmode.json +45 -0
  49. package/data/fortnite/characters/bogstick.json +43 -0
  50. package/data/fortnite/characters/boxy.json +44 -0
  51. package/data/fortnite/characters/bravoleader.json +44 -0
  52. package/data/fortnite/characters/briteraider.json +43 -0
  53. package/data/fortnite/characters/brutalboxcars.json +46 -0
  54. package/data/fortnite/characters/bryne.json +44 -0
  55. package/data/fortnite/characters/buildersbarracks.json +38 -0
  56. package/data/fortnite/characters/bullshark.json +43 -0
  57. package/data/fortnite/characters/bumpybay.json +44 -0
  58. package/data/fortnite/characters/burd.json +44 -0
  59. package/data/fortnite/characters/burdemart.json +39 -0
  60. package/data/fortnite/characters/burdtogo.json +42 -0
  61. package/data/fortnite/characters/busansanctuary.json +39 -0
  62. package/data/fortnite/characters/calamaricanyon.json +41 -0
  63. package/data/fortnite/characters/canyoncrossing.json +45 -0
  64. package/data/fortnite/characters/captainjones.json +40 -0
  65. package/data/fortnite/characters/centurion.json +44 -0
  66. package/data/fortnite/characters/cerberus.json +43 -0
  67. package/data/fortnite/characters/charon.json +43 -0
  68. package/data/fortnite/characters/chiara.json +43 -0
  69. package/data/fortnite/characters/clara.json +43 -0
  70. package/data/fortnite/characters/classifiedcanyon.json +43 -0
  71. package/data/fortnite/characters/clawsylodge.json +41 -0
  72. package/data/fortnite/characters/cletuscornhole.json +43 -0
  73. package/data/fortnite/characters/contractgiller.json +44 -0
  74. package/data/fortnite/characters/corruptioncorners.json +42 -0
  75. package/data/fortnite/characters/countessdaraku.json +45 -0
  76. package/data/fortnite/characters/crackshotscabin.json +40 -0
  77. package/data/fortnite/characters/creepycamps.json +36 -0
  78. package/data/fortnite/characters/crimecity.json +47 -0
  79. package/data/fortnite/characters/dara.json +42 -0
  80. package/data/fortnite/characters/darkruby.json +43 -0
  81. package/data/fortnite/characters/demonsdojo.json +46 -0
  82. package/data/fortnite/characters/diamonddiva.json +43 -0
  83. package/data/fortnite/characters/donutdistrict.json +43 -0
  84. package/data/fortnite/characters/drakonsteelrider.json +43 -0
  85. package/data/fortnite/characters/dummy.json +45 -0
  86. package/data/fortnite/characters/edwardscissorhands.json +39 -0
  87. package/data/fortnite/characters/etheria.json +43 -0
  88. package/data/fortnite/characters/evergreenterrace.json +41 -0
  89. package/data/fortnite/characters/fishmarket.json +39 -0
  90. package/data/fortnite/characters/fishstick.json +45 -0
  91. package/data/fortnite/characters/fishthicc.json +43 -0
  92. package/data/fortnite/characters/fortressofsolitude.json +37 -0
  93. package/data/fortnite/characters/foxyfloodgate.json +43 -0
  94. package/data/fortnite/characters/freakyfields.json +38 -0
  95. package/data/fortnite/characters/goldengrove.json +41 -0
  96. package/data/fortnite/characters/graveheart.json +43 -0
  97. package/data/fortnite/characters/grievouscampsite.json +38 -0
  98. package/data/fortnite/characters/guardianamara.json +44 -0
  99. package/data/fortnite/characters/gwenpool.json +41 -0
  100. package/data/fortnite/characters/hanamuracourtyard.json +27 -0
  101. package/data/fortnite/characters/heartbreakranger.json +42 -0
  102. package/data/fortnite/characters/heatwaveharbor.json +41 -0
  103. package/data/fortnite/characters/heroichope.json +44 -0
  104. package/data/fortnite/characters/hope.json +43 -0
  105. package/data/fortnite/characters/hopefulheights.json +46 -0
  106. package/data/fortnite/characters/humblehills.json +41 -0
  107. package/data/fortnite/characters/innovatorslone.json +43 -0
  108. package/data/fortnite/characters/insight.json +43 -0
  109. package/data/fortnite/characters/ironman.json +40 -0
  110. package/data/fortnite/characters/jittershock.json +44 -0
  111. package/data/fortnite/characters/joeycaliente.json +44 -0
  112. package/data/fortnite/characters/jonithescarlet.json +43 -0
  113. package/data/fortnite/characters/khabylame.json +40 -0
  114. package/data/fortnite/characters/khari.json +44 -0
  115. package/data/fortnite/characters/kitbash.json +44 -0
  116. package/data/fortnite/characters/kitesflight.json +41 -0
  117. package/data/fortnite/characters/knightmare.json +43 -0
  118. package/data/fortnite/characters/laguna.json +43 -0
  119. package/data/fortnite/characters/lakespringfield.json +35 -0
  120. package/data/fortnite/characters/lakespringfieldgasstation.json +39 -0
  121. package/data/fortnite/characters/lanallane.json +42 -0
  122. package/data/fortnite/characters/lattelanding.json +41 -0
  123. package/data/fortnite/characters/lavendra.json +44 -0
  124. package/data/fortnite/characters/leelah.json +45 -0
  125. package/data/fortnite/characters/liftylodge.json +42 -0
  126. package/data/fortnite/characters/lonewolflair.json +42 -0
  127. package/data/fortnite/characters/longshot.json +41 -0
  128. package/data/fortnite/characters/lostlake.json +44 -0
  129. package/data/fortnite/characters/loveranger.json +44 -0
  130. package/data/fortnite/characters/mae.json +43 -0
  131. package/data/fortnite/characters/magicmosses.json +42 -0
  132. package/data/fortnite/characters/maskedmeadows.json +48 -0
  133. package/data/fortnite/characters/mechateamshadow.json +44 -0
  134. package/data/fortnite/characters/medusa.json +43 -0
  135. package/data/fortnite/characters/meowscles.json +42 -0
  136. package/data/fortnite/characters/mephisto.json +41 -0
  137. package/data/fortnite/characters/metalmouth.json +44 -0
  138. package/data/fortnite/characters/mincemeat.json +43 -0
  139. package/data/fortnite/characters/munitionsexpert.json +42 -0
  140. package/data/fortnite/characters/myna.json +42 -0
  141. package/data/fortnite/characters/newsanctuary.json +43 -0
  142. package/data/fortnite/characters/nia.json +42 -0
  143. package/data/fortnite/characters/nightshiftforest.json +43 -0
  144. package/data/fortnite/characters/nisha.json +42 -0
  145. package/data/fortnite/characters/nolanchance.json +43 -0
  146. package/data/fortnite/characters/noorah.json +44 -0
  147. package/data/fortnite/characters/odyssey.json +43 -0
  148. package/data/fortnite/characters/openaironsen.json +40 -0
  149. package/data/fortnite/characters/oscar.json +42 -0
  150. package/data/fortnite/characters/outlawoasis.json +40 -0
  151. package/data/fortnite/characters/outpostenclave.json +27 -0
  152. package/data/fortnite/characters/oxrhq.json +37 -0
  153. package/data/fortnite/characters/paintedpalms.json +41 -0
  154. package/data/fortnite/characters/peabody.json +42 -0
  155. package/data/fortnite/characters/peelosopherbananocrates.json +43 -0
  156. package/data/fortnite/characters/peely.json +41 -0
  157. package/data/fortnite/characters/peelybone.json +43 -0
  158. package/data/fortnite/characters/persephone.json +42 -0
  159. package/data/fortnite/characters/phaedra.json +42 -0
  160. package/data/fortnite/characters/phantommeowscles.json +43 -0
  161. package/data/fortnite/characters/piperpace.json +43 -0
  162. package/data/fortnite/characters/poseidon.json +42 -0
  163. package/data/fortnite/characters/pumpedpower.json +40 -0
  164. package/data/fortnite/characters/pumpinpipes.json +39 -0
  165. package/data/fortnite/characters/pumpkinking.json +40 -0
  166. package/data/fortnite/characters/purradisemeowscles.json +43 -0
  167. package/data/fortnite/characters/rangersrest.json +36 -0
  168. package/data/fortnite/characters/rebeloutpost.json +37 -0
  169. package/data/fortnite/characters/renegadeshadow.json +44 -0
  170. package/data/fortnite/characters/resistancebase.json +27 -0
  171. package/data/fortnite/characters/rippedtides.json +43 -0
  172. package/data/fortnite/characters/rollingblossomsfarm.json +41 -0
  173. package/data/fortnite/characters/royalebomber.json +38 -0
  174. package/data/fortnite/characters/ruckus.json +42 -0
  175. package/data/fortnite/characters/rust.json +41 -0
  176. package/data/fortnite/characters/sakuracircle.json +36 -0
  177. package/data/fortnite/characters/sandystrip.json +44 -0
  178. package/data/fortnite/characters/saskia.json +45 -0
  179. package/data/fortnite/characters/seaportcity.json +48 -0
  180. package/data/fortnite/characters/shakensanctuary.json +42 -0
  181. package/data/fortnite/characters/shimmerdusk.json +41 -0
  182. package/data/fortnite/characters/shinyshafts.json +38 -0
  183. package/data/fortnite/characters/shogunssolitude.json +46 -0
  184. package/data/fortnite/characters/shuri.json +39 -0
  185. package/data/fortnite/characters/silashesk.json +42 -0
  186. package/data/fortnite/characters/slurproom.json +40 -0
  187. package/data/fortnite/characters/snowheart.json +44 -0
  188. package/data/fortnite/characters/snowstriker.json +43 -0
  189. package/data/fortnite/characters/solidsnake.json +39 -0
  190. package/data/fortnite/characters/sonor.json +46 -0
  191. package/data/fortnite/characters/spartanassassin.json +43 -0
  192. package/data/fortnite/characters/spirithuntersaeko.json +41 -0
  193. package/data/fortnite/characters/springfieldnationalparkstore.json +38 -0
  194. package/data/fortnite/characters/springfieldnuclearpowerplant.json +39 -0
  195. package/data/fortnite/characters/springfieldslurpworks.json +40 -0
  196. package/data/fortnite/characters/squibblyshores.json +42 -0
  197. package/data/fortnite/characters/squibblyspointlighthouse.json +37 -0
  198. package/data/fortnite/characters/starroakley.json +45 -0
  199. package/data/fortnite/characters/steelsight.json +43 -0
  200. package/data/fortnite/characters/sticks.json +35 -0
  201. package/data/fortnite/characters/sunkenshores.json +42 -0
  202. package/data/fortnite/characters/sunstrider.json +42 -0
  203. package/data/fortnite/characters/suntanspecialist.json +43 -0
  204. package/data/fortnite/characters/supernovaacademy.json +27 -0
  205. package/data/fortnite/characters/t60powerarmor.json +39 -0
  206. package/data/fortnite/characters/thebattlewoods.json +44 -0
  207. package/data/fortnite/characters/thegreatturtle.json +37 -0
  208. package/data/fortnite/characters/theoperator.json +42 -0
  209. package/data/fortnite/characters/thequackaway.json +39 -0
  210. package/data/fortnite/characters/thestabilizer.json +38 -0
  211. package/data/fortnite/characters/theunderwriter.json +36 -0
  212. package/data/fortnite/characters/toyboxdocks.json +40 -0
  213. package/data/fortnite/characters/trace.json +43 -0
  214. package/data/fortnite/characters/triagetrooper.json +43 -0
  215. package/data/fortnite/characters/triggerfish.json +44 -0
  216. package/data/fortnite/characters/trogscave.json +38 -0
  217. package/data/fortnite/characters/utopiacity.json +27 -0
  218. package/data/fortnite/characters/vengeancejones.json +42 -0
  219. package/data/fortnite/characters/victoriasaint.json +43 -0
  220. package/data/fortnite/characters/vineyshafts.json +35 -0
  221. package/data/fortnite/characters/volpez.json +41 -0
  222. package/data/fortnite/characters/warmachine.json +40 -0
  223. package/data/fortnite/characters/wastelandermagneto.json +40 -0
  224. package/data/fortnite/characters/wonkeeland.json +41 -0
  225. package/data/game-codes/.cache-manifest.json +148 -0
  226. package/data/game-codes/directory.json +1196 -0
  227. package/data/game-codes/games/arknights-endfield.json +958 -0
  228. package/data/game-codes/games/borderlands-1.json +414 -0
  229. package/data/game-codes/games/borderlands-2.json +340 -0
  230. package/data/game-codes/games/borderlands-3.json +1025 -0
  231. package/data/game-codes/games/borderlands-4.json +3128 -0
  232. package/data/game-codes/games/borderlands-the-pre-sequel.json +599 -0
  233. package/data/game-codes/games/brawl-stars.json +4766 -0
  234. package/data/game-codes/games/clash-of-clans.json +4766 -0
  235. package/data/game-codes/games/clash-royale.json +5 -0
  236. package/data/game-codes/games/cookie-run-kingdom.json +5366 -0
  237. package/data/game-codes/games/fortnite.json +897 -0
  238. package/data/game-codes/games/genshin-impact.json +8520 -0
  239. package/data/game-codes/games/honkai-impact-3rd.json +405 -0
  240. package/data/game-codes/games/honkai-star-rail.json +9863 -0
  241. package/data/game-codes/games/neverness-to-everness.json +1695 -0
  242. package/data/game-codes/games/roblox-doors.json +1842 -0
  243. package/data/game-codes/games/roblox-rivals.json +2919 -0
  244. package/data/game-codes/games/tower-of-fantasy.json +2839 -0
  245. package/data/game-codes/games/warframe.json +20824 -0
  246. package/data/game-codes/games/wuthering-waves.json +2477 -0
  247. package/data/game-codes/games/zenless-zone-zero.json +3681 -0
  248. package/data/game-codes/status.json +580 -0
  249. package/data/genshinimpact/characters/aino.json +34 -0
  250. package/data/genshinimpact/characters/albedo.json +10 -9
  251. package/data/genshinimpact/characters/alhaitham.json +11 -10
  252. package/data/genshinimpact/characters/aloy.json +10 -9
  253. package/data/genshinimpact/characters/alyosha.json +34 -0
  254. package/data/genshinimpact/characters/amber.json +11 -10
  255. package/data/genshinimpact/characters/aratakiitto.json +11 -10
  256. package/data/genshinimpact/characters/arlecchino.json +11 -10
  257. package/data/genshinimpact/characters/baizhu.json +11 -10
  258. package/data/genshinimpact/characters/barbara.json +10 -9
  259. package/data/genshinimpact/characters/beidou.json +11 -10
  260. package/data/genshinimpact/characters/bennett.json +10 -9
  261. package/data/genshinimpact/characters/candace.json +11 -10
  262. package/data/genshinimpact/characters/charlotte.json +10 -9
  263. package/data/genshinimpact/characters/chasca.json +10 -9
  264. package/data/genshinimpact/characters/chevreuse.json +10 -9
  265. package/data/genshinimpact/characters/chiori.json +10 -9
  266. package/data/genshinimpact/characters/chongyun.json +11 -10
  267. package/data/genshinimpact/characters/citlali.json +10 -9
  268. package/data/genshinimpact/characters/clorinde.json +10 -9
  269. package/data/genshinimpact/characters/collei.json +11 -10
  270. package/data/genshinimpact/characters/columbina.json +34 -0
  271. package/data/genshinimpact/characters/cyno.json +11 -10
  272. package/data/genshinimpact/characters/dahlia.json +9 -8
  273. package/data/genshinimpact/characters/dehya.json +10 -9
  274. package/data/genshinimpact/characters/diluc.json +10 -9
  275. package/data/genshinimpact/characters/diona.json +10 -9
  276. package/data/genshinimpact/characters/dori.json +10 -9
  277. package/data/genshinimpact/characters/durin.json +10 -9
  278. package/data/genshinimpact/characters/emilie.json +10 -9
  279. package/data/genshinimpact/characters/escoffier.json +11 -10
  280. package/data/genshinimpact/characters/eula.json +10 -9
  281. package/data/genshinimpact/characters/faruzan.json +11 -10
  282. package/data/genshinimpact/characters/fischl.json +11 -10
  283. package/data/genshinimpact/characters/flins.json +34 -0
  284. package/data/genshinimpact/characters/freminet.json +10 -9
  285. package/data/genshinimpact/characters/furina.json +11 -10
  286. package/data/genshinimpact/characters/gaming.json +10 -9
  287. package/data/genshinimpact/characters/ganyu.json +10 -9
  288. package/data/genshinimpact/characters/gorou.json +11 -10
  289. package/data/genshinimpact/characters/hutao.json +11 -10
  290. package/data/genshinimpact/characters/iansan.json +10 -9
  291. package/data/genshinimpact/characters/ifa.json +34 -0
  292. package/data/genshinimpact/characters/illuga.json +34 -0
  293. package/data/genshinimpact/characters/ineffa.json +10 -9
  294. package/data/genshinimpact/characters/jahoda.json +34 -0
  295. package/data/genshinimpact/characters/jean.json +10 -9
  296. package/data/genshinimpact/characters/kachina.json +10 -9
  297. package/data/genshinimpact/characters/kaedeharakazuha.json +11 -10
  298. package/data/genshinimpact/characters/kaeya.json +10 -9
  299. package/data/genshinimpact/characters/kamisatoayaka.json +10 -9
  300. package/data/genshinimpact/characters/kamisatoayato.json +10 -9
  301. package/data/genshinimpact/characters/kaveh.json +11 -10
  302. package/data/genshinimpact/characters/keqing.json +10 -9
  303. package/data/genshinimpact/characters/kinich.json +10 -9
  304. package/data/genshinimpact/characters/kirara.json +10 -9
  305. package/data/genshinimpact/characters/klee.json +10 -9
  306. package/data/genshinimpact/characters/kujousara.json +10 -9
  307. package/data/genshinimpact/characters/kukishinobu.json +11 -10
  308. package/data/genshinimpact/characters/lanyan.json +10 -9
  309. package/data/genshinimpact/characters/lauma.json +34 -0
  310. package/data/genshinimpact/characters/layla.json +10 -9
  311. package/data/genshinimpact/characters/linnea.json +34 -0
  312. package/data/genshinimpact/characters/lisa.json +11 -10
  313. package/data/genshinimpact/characters/lohen.json +10 -9
  314. package/data/genshinimpact/characters/lynette.json +10 -9
  315. package/data/genshinimpact/characters/lyney.json +10 -9
  316. package/data/genshinimpact/characters/mavuika.json +10 -9
  317. package/data/genshinimpact/characters/mika.json +34 -0
  318. package/data/genshinimpact/characters/mikaschmidt.json +10 -9
  319. package/data/genshinimpact/characters/mona.json +11 -10
  320. package/data/genshinimpact/characters/mualani.json +10 -9
  321. package/data/genshinimpact/characters/nahida.json +11 -10
  322. package/data/genshinimpact/characters/navia.json +10 -9
  323. package/data/genshinimpact/characters/nefer.json +34 -0
  324. package/data/genshinimpact/characters/neuvillette.json +10 -9
  325. package/data/genshinimpact/characters/nicole.json +34 -0
  326. package/data/genshinimpact/characters/nilou.json +10 -9
  327. package/data/genshinimpact/characters/ningguang.json +10 -9
  328. package/data/genshinimpact/characters/noelle.json +11 -10
  329. package/data/genshinimpact/characters/odette.json +34 -0
  330. package/data/genshinimpact/characters/ororon.json +10 -9
  331. package/data/genshinimpact/characters/prune.json +9 -8
  332. package/data/genshinimpact/characters/qiqi.json +11 -10
  333. package/data/genshinimpact/characters/raidenshogun.json +11 -10
  334. package/data/genshinimpact/characters/razor.json +10 -9
  335. package/data/genshinimpact/characters/rosaria.json +11 -10
  336. package/data/genshinimpact/characters/sandrone.json +34 -0
  337. package/data/genshinimpact/characters/sangonomiyakokomi.json +11 -10
  338. package/data/genshinimpact/characters/sayu.json +10 -9
  339. package/data/genshinimpact/characters/sethos.json +10 -9
  340. package/data/genshinimpact/characters/shenhe.json +11 -10
  341. package/data/genshinimpact/characters/shikanoinheizou.json +11 -10
  342. package/data/genshinimpact/characters/sigewinne.json +10 -9
  343. package/data/genshinimpact/characters/skirk.json +10 -9
  344. package/data/genshinimpact/characters/sucrose.json +11 -10
  345. package/data/genshinimpact/characters/tartaglia.json +34 -0
  346. package/data/genshinimpact/characters/thoma.json +10 -9
  347. package/data/genshinimpact/characters/tighnari.json +11 -10
  348. package/data/genshinimpact/characters/traveler.json +34 -0
  349. package/data/genshinimpact/characters/varesa.json +10 -9
  350. package/data/genshinimpact/characters/varka.json +9 -8
  351. package/data/genshinimpact/characters/venti.json +11 -10
  352. package/data/genshinimpact/characters/wanderer.json +10 -9
  353. package/data/genshinimpact/characters/wonderlandmanekin.json +34 -0
  354. package/data/genshinimpact/characters/wriothesley.json +11 -10
  355. package/data/genshinimpact/characters/xiangling.json +11 -10
  356. package/data/genshinimpact/characters/xianyun.json +10 -9
  357. package/data/genshinimpact/characters/xiao.json +10 -9
  358. package/data/genshinimpact/characters/xilonen.json +10 -9
  359. package/data/genshinimpact/characters/xingqiu.json +11 -10
  360. package/data/genshinimpact/characters/xinyan.json +11 -10
  361. package/data/genshinimpact/characters/yaemiko.json +11 -10
  362. package/data/genshinimpact/characters/yanfei.json +11 -10
  363. package/data/genshinimpact/characters/yaoyao.json +11 -10
  364. package/data/genshinimpact/characters/yelan.json +10 -9
  365. package/data/genshinimpact/characters/yoimiya.json +11 -10
  366. package/data/genshinimpact/characters/yumemizukimizuki.json +10 -9
  367. package/data/genshinimpact/characters/yunjin.json +10 -9
  368. package/data/genshinimpact/characters/zhongli.json +10 -9
  369. package/data/genshinimpact/characters/zibai.json +10 -9
  370. package/data/genshinimpact/meta.json +12 -12
  371. package/data/honkaistarrail/characters/acheron.json +11 -10
  372. package/data/honkaistarrail/characters/aglaea.json +11 -10
  373. package/data/honkaistarrail/characters/anaxa.json +11 -10
  374. package/data/honkaistarrail/characters/archer.json +29 -0
  375. package/data/honkaistarrail/characters/argenti.json +11 -10
  376. package/data/honkaistarrail/characters/arlan.json +11 -10
  377. package/data/honkaistarrail/characters/ashveil.json +11 -10
  378. package/data/honkaistarrail/characters/asta.json +11 -10
  379. package/data/honkaistarrail/characters/aventurine.json +11 -10
  380. package/data/honkaistarrail/characters/bailu.json +11 -10
  381. package/data/honkaistarrail/characters/blackswan.json +11 -10
  382. package/data/honkaistarrail/characters/blade.json +11 -10
  383. package/data/honkaistarrail/characters/boothill.json +11 -10
  384. package/data/honkaistarrail/characters/bronya.json +11 -10
  385. package/data/honkaistarrail/characters/castorice.json +11 -10
  386. package/data/honkaistarrail/characters/cerydra.json +11 -10
  387. package/data/honkaistarrail/characters/cipher.json +11 -10
  388. package/data/honkaistarrail/characters/clara.json +11 -10
  389. package/data/honkaistarrail/characters/constance.json +11 -10
  390. package/data/honkaistarrail/characters/cyrene.json +11 -10
  391. package/data/honkaistarrail/characters/danheng.json +11 -10
  392. package/data/honkaistarrail/characters/danhengimbibitorlunae.json +29 -0
  393. package/data/honkaistarrail/characters/danhengpermansorterrae.json +29 -0
  394. package/data/honkaistarrail/characters/drratio.json +11 -10
  395. package/data/honkaistarrail/characters/evanescia.json +29 -0
  396. package/data/honkaistarrail/characters/evernight.json +29 -0
  397. package/data/honkaistarrail/characters/feixiao.json +11 -10
  398. package/data/honkaistarrail/characters/firefly.json +11 -10
  399. package/data/honkaistarrail/characters/fugue.json +29 -0
  400. package/data/honkaistarrail/characters/fuxuan.json +11 -10
  401. package/data/honkaistarrail/characters/gallagher.json +11 -10
  402. package/data/honkaistarrail/characters/gepard.json +11 -10
  403. package/data/honkaistarrail/characters/gilgamesh.json +29 -0
  404. package/data/honkaistarrail/characters/guinaifen.json +11 -10
  405. package/data/honkaistarrail/characters/hanya.json +11 -10
  406. package/data/honkaistarrail/characters/herta.json +11 -10
  407. package/data/honkaistarrail/characters/himeko.json +12 -11
  408. package/data/honkaistarrail/characters/himekonova.json +29 -0
  409. package/data/honkaistarrail/characters/hook.json +11 -10
  410. package/data/honkaistarrail/characters/huohuo.json +11 -10
  411. package/data/honkaistarrail/characters/hyacine.json +11 -10
  412. package/data/honkaistarrail/characters/hysilens.json +11 -10
  413. package/data/honkaistarrail/characters/jade.json +11 -10
  414. package/data/honkaistarrail/characters/jiaoqiu.json +11 -10
  415. package/data/honkaistarrail/characters/jingliu.json +11 -10
  416. package/data/honkaistarrail/characters/jingyuan.json +11 -10
  417. package/data/honkaistarrail/characters/kafka.json +11 -10
  418. package/data/honkaistarrail/characters/lingsha.json +11 -10
  419. package/data/honkaistarrail/characters/lisushang.json +11 -10
  420. package/data/honkaistarrail/characters/luka.json +11 -10
  421. package/data/honkaistarrail/characters/luocha.json +11 -10
  422. package/data/honkaistarrail/characters/lynx.json +11 -10
  423. package/data/honkaistarrail/characters/march7th.json +11 -10
  424. package/data/honkaistarrail/characters/misha.json +11 -10
  425. package/data/honkaistarrail/characters/mortenaxblade.json +29 -0
  426. package/data/honkaistarrail/characters/moze.json +11 -10
  427. package/data/honkaistarrail/characters/mydei.json +11 -10
  428. package/data/honkaistarrail/characters/natasha.json +11 -10
  429. package/data/honkaistarrail/characters/pela.json +11 -10
  430. package/data/honkaistarrail/characters/phainon.json +11 -10
  431. package/data/honkaistarrail/characters/qingque.json +11 -10
  432. package/data/honkaistarrail/characters/rappa.json +11 -10
  433. package/data/honkaistarrail/characters/rintohsaka.json +29 -0
  434. package/data/honkaistarrail/characters/robin.json +11 -10
  435. package/data/honkaistarrail/characters/ruanmei.json +11 -10
  436. package/data/honkaistarrail/characters/saber.json +29 -0
  437. package/data/honkaistarrail/characters/sampo.json +11 -10
  438. package/data/honkaistarrail/characters/seele.json +11 -10
  439. package/data/honkaistarrail/characters/serval.json +11 -10
  440. package/data/honkaistarrail/characters/silverwolf.json +11 -10
  441. package/data/honkaistarrail/characters/silverwolflv999.json +29 -0
  442. package/data/honkaistarrail/characters/sparkle.json +11 -10
  443. package/data/honkaistarrail/characters/sparxie.json +29 -0
  444. package/data/honkaistarrail/characters/sunday.json +29 -0
  445. package/data/honkaistarrail/characters/thedahlia.json +29 -0
  446. package/data/honkaistarrail/characters/theherta.json +29 -0
  447. package/data/honkaistarrail/characters/tingyun.json +11 -10
  448. package/data/honkaistarrail/characters/topaz.json +11 -10
  449. package/data/honkaistarrail/characters/topaznumby.json +29 -0
  450. package/data/honkaistarrail/characters/trailblazer.json +29 -0
  451. package/data/honkaistarrail/characters/tribbie.json +11 -10
  452. package/data/honkaistarrail/characters/welt.json +29 -0
  453. package/data/honkaistarrail/characters/weltyang.json +11 -10
  454. package/data/honkaistarrail/characters/xueyi.json +11 -10
  455. package/data/honkaistarrail/characters/yanqing.json +11 -10
  456. package/data/honkaistarrail/characters/yaoguang.json +11 -10
  457. package/data/honkaistarrail/characters/yukong.json +11 -10
  458. package/data/honkaistarrail/characters/yunli.json +11 -10
  459. package/data/honkaistarrail/meta.json +12 -12
  460. package/data/nte/characters/adler.json +13 -12
  461. package/data/nte/characters/aurelia.json +13 -12
  462. package/data/nte/characters/baicang.json +13 -12
  463. package/data/nte/characters/chaos.json +13 -12
  464. package/data/nte/characters/chiz.json +13 -12
  465. package/data/nte/characters/daffodill.json +13 -12
  466. package/data/nte/characters/edgar.json +13 -12
  467. package/data/nte/characters/esperzero.json +13 -12
  468. package/data/nte/characters/fadia.json +13 -12
  469. package/data/nte/characters/haniel.json +13 -12
  470. package/data/nte/characters/hathor.json +13 -12
  471. package/data/nte/characters/hotori.json +13 -12
  472. package/data/nte/characters/iroi.json +13 -12
  473. package/data/nte/characters/jiuyuan.json +13 -12
  474. package/data/nte/characters/lacrimosa.json +13 -12
  475. package/data/nte/characters/mint.json +13 -12
  476. package/data/nte/characters/nanally.json +13 -12
  477. package/data/nte/characters/sakiri.json +13 -12
  478. package/data/nte/characters/shinku.json +13 -12
  479. package/data/nte/characters/skia.json +13 -12
  480. package/data/nte/characters/zankou.json +51 -0
  481. package/data/nte/meta.json +12 -12
  482. package/data/toweroffantasy/characters/alyss.json +27 -0
  483. package/data/toweroffantasy/characters/annabella.json +23 -0
  484. package/data/toweroffantasy/characters/asuka.json +23 -0
  485. package/data/toweroffantasy/characters/bailing.json +23 -0
  486. package/data/toweroffantasy/characters/brevey.json +23 -0
  487. package/data/toweroffantasy/characters/claudia.json +23 -0
  488. package/data/toweroffantasy/characters/cobaltb.json +23 -0
  489. package/data/toweroffantasy/characters/cocoritter.json +23 -0
  490. package/data/toweroffantasy/characters/crow.json +23 -0
  491. package/data/toweroffantasy/characters/echo.json +23 -0
  492. package/data/toweroffantasy/characters/ene.json +23 -0
  493. package/data/toweroffantasy/characters/feise.json +25 -0
  494. package/data/toweroffantasy/characters/fenrir.json +23 -0
  495. package/data/toweroffantasy/characters/fiona.json +25 -0
  496. package/data/toweroffantasy/characters/frigg.json +23 -0
  497. package/data/toweroffantasy/characters/gnonno.json +23 -0
  498. package/data/toweroffantasy/characters/hilda.json +23 -0
  499. package/data/toweroffantasy/characters/huang.json +25 -0
  500. package/data/toweroffantasy/characters/huma.json +25 -0
  501. package/data/toweroffantasy/characters/icarus.json +23 -0
  502. package/data/toweroffantasy/characters/jiyu.json +25 -0
  503. package/data/toweroffantasy/characters/king.json +23 -0
  504. package/data/toweroffantasy/characters/lan.json +25 -0
  505. package/data/toweroffantasy/characters/lin.json +23 -0
  506. package/data/toweroffantasy/characters/linghan.json +23 -0
  507. package/data/toweroffantasy/characters/liuhuo.json +23 -0
  508. package/data/toweroffantasy/characters/lyra.json +23 -0
  509. package/data/toweroffantasy/characters/meryl.json +23 -0
  510. package/data/toweroffantasy/characters/mingjing.json +27 -0
  511. package/data/toweroffantasy/characters/nanyin.json +25 -0
  512. package/data/toweroffantasy/characters/nemesis.json +25 -0
  513. package/data/toweroffantasy/characters/pepper.json +23 -0
  514. package/data/toweroffantasy/characters/plotti.json +25 -0
  515. package/data/toweroffantasy/characters/roslyn.json +23 -0
  516. package/data/toweroffantasy/characters/rubilia.json +25 -0
  517. package/data/toweroffantasy/characters/ruby.json +25 -0
  518. package/data/toweroffantasy/characters/sakifuwa.json +23 -0
  519. package/data/toweroffantasy/characters/samir.json +23 -0
  520. package/data/toweroffantasy/characters/shiro.json +25 -0
  521. package/data/toweroffantasy/characters/tianlang.json +25 -0
  522. package/data/toweroffantasy/characters/tsubasa.json +23 -0
  523. package/data/toweroffantasy/characters/umi.json +23 -0
  524. package/data/toweroffantasy/characters/yanmiao.json +25 -0
  525. package/data/toweroffantasy/characters/yanuo.json +23 -0
  526. package/data/toweroffantasy/characters/yulan.json +23 -0
  527. package/data/toweroffantasy/characters/zero.json +23 -0
  528. package/data/vrchat/groups/clubzodiac.json +2 -1
  529. package/data/vrchat/groups/dirtydancers.json +2 -1
  530. package/data/vrchat/groups/drumsynews.json +2 -1
  531. package/data/vrchat/groups/ebola20.json +2 -1
  532. package/data/vrchat/groups/internationaldancersassociation.json +2 -1
  533. package/data/vrchat/groups/kannagang.json +2 -1
  534. package/data/vrchat/groups/lolisquad.json +2 -1
  535. package/data/vrchat/groups/nekonightsnightclub.json +2 -1
  536. package/data/vrchat/groups/nekostudios.json +2 -1
  537. package/data/vrchat/groups/nekosunecommunity.json +2 -1
  538. package/data/vrchat/groups/voidclub.json +2 -1
  539. package/data/vrchat/groups/voltdanceclub.json +2 -1
  540. package/data/vrchat/groups/vrceventsgroup.json +2 -1
  541. package/data/vrchat/groups/vrchatcommunitydiscord.json +2 -1
  542. package/data/vrchat/meta.json +11 -11
  543. package/data/vrchat/players/alto.json +8 -7
  544. package/data/vrchat/players/arcadum.json +9 -8
  545. package/data/vrchat/players/chairhandler.json +8 -7
  546. package/data/vrchat/players/chipz.json +8 -7
  547. package/data/vrchat/players/hikarivr.json +10 -9
  548. package/data/vrchat/players/kimple.json +9 -8
  549. package/data/vrchat/players/linkzr.json +7 -6
  550. package/data/vrchat/players/nagzz21.json +8 -7
  551. package/data/vrchat/players/nebride.json +9 -8
  552. package/data/vrchat/players/nekosunevr.json +10 -9
  553. package/data/vrchat/players/pokelawls.json +8 -7
  554. package/data/vrchat/players/qwonk.json +7 -6
  555. package/data/vrchat/players/roflgator.json +9 -8
  556. package/data/vrchat/players/scifri.json +6 -5
  557. package/data/vrchat/players/sodapoppin.json +8 -7
  558. package/data/vrchat/players/woops.json +8 -7
  559. package/data/vrchat/players/zentreya.json +9 -8
  560. package/data/vrchat/worlds/ascensionacademy.json +6 -5
  561. package/data/vrchat/worlds/clubvgl.json +7 -6
  562. package/data/vrchat/worlds/fightfinder.json +7 -6
  563. package/data/vrchat/worlds/hangouthouse.json +6 -5
  564. package/data/vrchat/worlds/nekostudioshalloween.json +8 -7
  565. package/data/vrchat/worlds/nekostudiosnewyear.json +8 -7
  566. package/data/vrchat/worlds/nekostudiosxmas.json +8 -7
  567. package/data/vrchat/worlds/nekosunevranimations2023.json +8 -7
  568. package/data/vrchat/worlds/nekosunevranimations20232024.json +10 -0
  569. package/data/vrchat/worlds/nekosunevranimations2024.json +8 -7
  570. package/data/vrchat/worlds/nekosunevranimations2025.json +8 -7
  571. package/data/vrchat/worlds/rumhamsavatarworld.json +6 -5
  572. package/data/vrchat/worlds/smewsranch.json +6 -5
  573. package/data/vrchat/worlds/smewsroom.json +6 -5
  574. package/data/vrchat/worlds/sunsetbar.json +6 -5
  575. package/data/vrchat/worlds/theblackcat.json +9 -8
  576. package/data/vrchat/worlds/thegreatpug.json +7 -6
  577. package/data/vrchat/worlds/themidnightbar.json +6 -5
  578. package/data/vrchat/worlds/voidclub.json +6 -5
  579. package/data/vrchat/worlds/voltdanceclub.json +6 -5
  580. package/data/vrchat/worlds/vrchathome.json +7 -6
  581. package/data/vrchat/worlds/whatalegend.json +5 -4
  582. package/data/warframe/characters/amesha.json +226 -0
  583. package/data/warframe/characters/ash.json +1354 -0
  584. package/data/warframe/characters/ashprime.json +1994 -0
  585. package/data/warframe/characters/atlas.json +916 -0
  586. package/data/warframe/characters/atlasprime.json +1632 -0
  587. package/data/warframe/characters/banshee.json +1036 -0
  588. package/data/warframe/characters/bansheeprime.json +1750 -0
  589. package/data/warframe/characters/baruuk.json +555 -0
  590. package/data/warframe/characters/baruukprime.json +1298 -0
  591. package/data/warframe/characters/bonewidow.json +354 -0
  592. package/data/warframe/characters/caliban.json +434 -0
  593. package/data/warframe/characters/calibanprime.json +683 -0
  594. package/data/warframe/characters/chroma.json +1344 -0
  595. package/data/warframe/characters/chromaprime.json +1977 -0
  596. package/data/warframe/characters/citrine.json +220 -0
  597. package/data/warframe/characters/cyte09.json +218 -0
  598. package/data/warframe/characters/dagath.json +194 -0
  599. package/data/warframe/characters/dante.json +223 -0
  600. package/data/warframe/characters/elytron.json +300 -0
  601. package/data/warframe/characters/ember.json +1209 -0
  602. package/data/warframe/characters/emberprime.json +1678 -0
  603. package/data/warframe/characters/equinox.json +958 -0
  604. package/data/warframe/characters/equinoxprime.json +1644 -0
  605. package/data/warframe/characters/excalibur.json +1603 -0
  606. package/data/warframe/characters/excaliburprime.json +1524 -0
  607. package/data/warframe/characters/excaliburumbra.json +397 -0
  608. package/data/warframe/characters/follie.json +246 -0
  609. package/data/warframe/characters/frost.json +1330 -0
  610. package/data/warframe/characters/frostprime.json +1686 -0
  611. package/data/warframe/characters/gara.json +925 -0
  612. package/data/warframe/characters/garaprime.json +1494 -0
  613. package/data/warframe/characters/garuda.json +851 -0
  614. package/data/warframe/characters/garudaprime.json +1449 -0
  615. package/data/warframe/characters/gauss.json +506 -0
  616. package/data/warframe/characters/gaussprime.json +1077 -0
  617. package/data/warframe/characters/grendel.json +463 -0
  618. package/data/warframe/characters/grendelprime.json +772 -0
  619. package/data/warframe/characters/gyre.json +381 -0
  620. package/data/warframe/characters/gyreprime.json +403 -0
  621. package/data/warframe/characters/harrow.json +916 -0
  622. package/data/warframe/characters/harrowprime.json +1700 -0
  623. package/data/warframe/characters/helminth.json +220 -0
  624. package/data/warframe/characters/hildryn.json +627 -0
  625. package/data/warframe/characters/hildrynprime.json +996 -0
  626. package/data/warframe/characters/hydroid.json +1028 -0
  627. package/data/warframe/characters/hydroidprime.json +1621 -0
  628. package/data/warframe/characters/inaros.json +976 -0
  629. package/data/warframe/characters/inarosprime.json +1721 -0
  630. package/data/warframe/characters/itzal.json +465 -0
  631. package/data/warframe/characters/ivara.json +1349 -0
  632. package/data/warframe/characters/ivaraprime.json +1921 -0
  633. package/data/warframe/characters/jade.json +240 -0
  634. package/data/warframe/characters/khora.json +804 -0
  635. package/data/warframe/characters/khoraprime.json +1403 -0
  636. package/data/warframe/characters/koumei.json +221 -0
  637. package/data/warframe/characters/kullervo.json +191 -0
  638. package/data/warframe/characters/lavos.json +511 -0
  639. package/data/warframe/characters/lavosprime.json +711 -0
  640. package/data/warframe/characters/limbo.json +1363 -0
  641. package/data/warframe/characters/limboprime.json +2084 -0
  642. package/data/warframe/characters/loki.json +1209 -0
  643. package/data/warframe/characters/lokiprime.json +1457 -0
  644. package/data/warframe/characters/mag.json +2089 -0
  645. package/data/warframe/characters/magprime.json +2532 -0
  646. package/data/warframe/characters/mesa.json +1195 -0
  647. package/data/warframe/characters/mesaprime.json +2059 -0
  648. package/data/warframe/characters/mirage.json +1561 -0
  649. package/data/warframe/characters/mirageprime.json +2257 -0
  650. package/data/warframe/characters/nekros.json +1235 -0
  651. package/data/warframe/characters/nekrosprime.json +1882 -0
  652. package/data/warframe/characters/nezha.json +868 -0
  653. package/data/warframe/characters/nezhaprime.json +1695 -0
  654. package/data/warframe/characters/nidus.json +1027 -0
  655. package/data/warframe/characters/nidusprime.json +1706 -0
  656. package/data/warframe/characters/nokko.json +308 -0
  657. package/data/warframe/characters/nova.json +1226 -0
  658. package/data/warframe/characters/novaprime.json +1667 -0
  659. package/data/warframe/characters/nyx.json +1610 -0
  660. package/data/warframe/characters/nyxprime.json +1967 -0
  661. package/data/warframe/characters/oberon.json +1249 -0
  662. package/data/warframe/characters/oberonprime.json +1872 -0
  663. package/data/warframe/characters/octavia.json +1049 -0
  664. package/data/warframe/characters/octaviaprime.json +1735 -0
  665. package/data/warframe/characters/odonata.json +336 -0
  666. package/data/warframe/characters/odonataprime.json +787 -0
  667. package/data/warframe/characters/oraxia.json +246 -0
  668. package/data/warframe/characters/orionsirius.json +134 -0
  669. package/data/warframe/characters/protea.json +521 -0
  670. package/data/warframe/characters/proteaprime.json +992 -0
  671. package/data/warframe/characters/qorvex.json +214 -0
  672. package/data/warframe/characters/revenant.json +931 -0
  673. package/data/warframe/characters/revenantprime.json +1494 -0
  674. package/data/warframe/characters/rhino.json +1344 -0
  675. package/data/warframe/characters/rhinoprime.json +1675 -0
  676. package/data/warframe/characters/saryn.json +1210 -0
  677. package/data/warframe/characters/sarynprime.json +2042 -0
  678. package/data/warframe/characters/sevagoth.json +478 -0
  679. package/data/warframe/characters/sevagothprime.json +910 -0
  680. package/data/warframe/characters/siriusorion.json +247 -0
  681. package/data/warframe/characters/styanax.json +320 -0
  682. package/data/warframe/characters/styanaxprime.json +321 -0
  683. package/data/warframe/characters/temple.json +271 -0
  684. package/data/warframe/characters/titania.json +1227 -0
  685. package/data/warframe/characters/titaniaprime.json +2000 -0
  686. package/data/warframe/characters/trinity.json +1097 -0
  687. package/data/warframe/characters/trinityprime.json +1849 -0
  688. package/data/warframe/characters/uriel.json +215 -0
  689. package/data/warframe/characters/valkyr.json +1165 -0
  690. package/data/warframe/characters/valkyrprime.json +1969 -0
  691. package/data/warframe/characters/vauban.json +1067 -0
  692. package/data/warframe/characters/vaubanprime.json +1614 -0
  693. package/data/warframe/characters/voidrig.json +355 -0
  694. package/data/warframe/characters/volt.json +1324 -0
  695. package/data/warframe/characters/voltprime.json +1843 -0
  696. package/data/warframe/characters/voruna.json +293 -0
  697. package/data/warframe/characters/vorunaprime.json +431 -0
  698. package/data/warframe/characters/wisp.json +824 -0
  699. package/data/warframe/characters/wispprime.json +908 -0
  700. package/data/warframe/characters/wukong.json +927 -0
  701. package/data/warframe/characters/wukongprime.json +1754 -0
  702. package/data/warframe/characters/xaku.json +620 -0
  703. package/data/warframe/characters/xakuprime.json +879 -0
  704. package/data/warframe/characters/yareli.json +409 -0
  705. package/data/warframe/characters/yareliprime.json +683 -0
  706. package/data/warframe/characters/zephyr.json +1149 -0
  707. package/data/warframe/characters/zephyrprime.json +1864 -0
  708. package/gamecodes.js +30 -4
  709. package/index.js +5 -3
  710. package/package.json +15 -3
  711. package/scripts/cache-sync-smoke.js +50 -3
  712. package/scripts/game-code-cache-smoke.js +46 -6
  713. package/scripts/sync-api-cache.js +87 -38
  714. package/scripts/sync-game-code-cache.js +42 -3
  715. package/data/game-codes/.gitkeep +0 -0
  716. package/data/vrchat/avatars/.gitkeep +0 -0
@@ -3,8 +3,9 @@ name: Sync APINODE fallback caches
3
3
  on:
4
4
  workflow_dispatch:
5
5
  schedule:
6
- # Daily at 03:23 UTC. GitHub Actions cron uses UTC.
7
- - cron: "23 3 * * *"
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 * * * *"
8
9
  push:
9
10
  branches:
10
11
  - main
package/CACHE_SYNC.md CHANGED
@@ -9,13 +9,36 @@ The repository keeps **two independent last-good fallback snapshots** synchroniz
9
9
 
10
10
  ## Schedule
11
11
 
12
- The GitHub Action runs **once every day at 03:23 UTC** and can also be started manually with `workflow_dispatch`.
12
+ The GitHub Action runs an **hourly APINODE change-watch at minute 23** and can also be started manually with `workflow_dispatch`.
13
13
 
14
- It also runs when the cache implementation itself changes so a newly deployed cache format can be populated immediately.
14
+ The mirror uses full content hashes, so an hourly check with no stable API data changes creates **no commit**. If APINODE adds, updates, repairs, moves, or removes a game-info file or game-code record, the next successful hourly pass mirrors that change into this repository.
15
15
 
16
- ## Mirrored gaming-infos datasets
16
+ ## Gaming Infos dataset discovery
17
17
 
18
- | Game | API type(s) |
18
+ Gaming Infos cache schema 2 no longer depends only on a hard-coded game manifest.
19
+
20
+ The mirror first requests:
21
+
22
+ ```http
23
+ GET /v5/games/api/gaming-infos
24
+ ```
25
+
26
+ Modern APINODE responses expose each game's stable `slug` and dataset `types`, for example:
27
+
28
+ ```json
29
+ {
30
+ "slug": "codblackops2",
31
+ "types": ["characters", "npcs", "maps"]
32
+ }
33
+ ```
34
+
35
+ The mirror merges those declarations into its safety/baseline manifest and then fetches every discovered game/type. This means the full Call of Duty catalog, and future public Gaming Infos games/types, can propagate into the repository without adding one hard-coded mirror entry per title.
36
+
37
+ The built-in baseline remains for compatibility with older APINODE deployments and can still be replaced explicitly with `GAMING_INFOS_CACHE_MANIFEST_JSON`.
38
+
39
+ Current important datasets include:
40
+
41
+ | Game / family | API type(s) |
19
42
  |---|---|
20
43
  | VRChat | `players`, `groups`, `worlds`, `avatars` |
21
44
  | Genshin Impact | `characters` |
@@ -23,14 +46,17 @@ It also runs when the cache implementation itself changes so a newly deployed ca
23
46
  | Neverness to Everness | `characters` |
24
47
  | Wuthering Waves | `characters` (Resonators) |
25
48
  | Warframe | `characters` (Warframes) |
26
- | Fortnite | `characters` (current/released Battle Royale characters) |
49
+ | Fortnite | `characters` = released Outfits/skins, `npcs` = Battle Royale NPCs, `maps` = Named Locations/maps |
50
+ | Call of Duty mainline | `characters`, `npcs`, `maps` per title, auto-discovered from APINODE |
27
51
  | Zenless Zone Zero | `characters` (Agents) |
28
52
  | Tower of Fantasy | `characters` (Simulacra) |
29
53
  | Arknights: Endfield | `characters` (Operators) |
30
54
 
55
+ Call of Duty covers mainline slugs from `cod2003` through `codblackops7`, plus `codmodernwarfare4`. The 2026 MW4 dataset is restricted upstream to official Activision beta/public announcement information; the fallback never expands that policy by scraping separate unofficial data.
56
+
31
57
  ## Mirrored Game Codes endpoints
32
58
 
33
- The daily mirror also caches:
59
+ The hourly mirror also caches:
34
60
 
35
61
  ```text
36
62
  GET /v5/games/api/codes
@@ -50,21 +76,7 @@ The per-game request uses `includeUnknown=true`, so the fallback contains all th
50
76
  }
51
77
  ```
52
78
 
53
- The mirror does not call every `/:game/:code` endpoint. `GameCode(game, code)` can search the full cached per-game snapshot during an outage, which keeps the daily request count low.
54
-
55
- Game-code fallback layout:
56
-
57
- ```text
58
- data/game-codes/
59
- ├── directory.json
60
- ├── status.json
61
- ├── .cache-manifest.json
62
- └── games/
63
- ├── fortnite.json
64
- ├── warframe.json
65
- ├── genshin-impact.json
66
- └── ...
67
- ```
79
+ The repository does not store ticking `expiresInSeconds` / `countdown` values as authoritative file changes. Those values are rehydrated from stable `expiresAt` dates when the package reads a local fallback, preventing pointless hourly commits.
68
80
 
69
81
  ## Atomic synchronization / deletion behavior
70
82
 
@@ -72,59 +84,78 @@ Each cache is authoritative only **after its complete API download succeeds**.
72
84
 
73
85
  For Gaming Infos:
74
86
 
75
- 1. Temporarily preserve `data/game-codes/` outside the gaming-info snapshot.
76
- 2. Fetch the root gaming-infos endpoint.
77
- 3. Fetch every configured game's meta endpoint.
78
- 4. Fetch every configured type-list endpoint.
79
- 5. Validate every response and entry slug.
80
- 6. Build a completely separate temporary snapshot.
81
- 7. Atomically replace the gaming-info `data/` snapshot.
82
- 8. Restore the previous game-code fallback before the code phase begins.
87
+ 1. Temporarily preserve `data/game-codes/` outside the Gaming Infos snapshot.
88
+ 2. Fetch the root Gaming Infos endpoint.
89
+ 3. Merge valid root `slug` + `types` declarations into the effective manifest.
90
+ 4. Fetch every effective game's meta endpoint.
91
+ 5. Fetch every discovered/configured type-list endpoint.
92
+ 6. Validate every response and entity slug.
93
+ 7. Build a completely separate temporary snapshot.
94
+ 8. Atomically replace the Gaming Infos `data/` snapshot only after every required request succeeds.
95
+ 9. Restore the previous Game Codes fallback before the code phase begins.
83
96
 
84
97
  For Game Codes:
85
98
 
86
99
  1. Fetch `/codes` and validate its game directory.
87
100
  2. Fetch cache-only `/codes/status`.
88
101
  3. Fetch every listed game's full `Active` / `Expired` / `Unknown` snapshot.
89
- 4. Build a separate temporary `data/game-codes/` tree.
90
- 5. Only after every game succeeds, atomically replace the old game-code snapshot.
102
+ 4. Normalize volatile request-time/countdown values.
103
+ 5. Build a separate temporary `data/game-codes/` tree.
104
+ 6. Only after every game succeeds, atomically replace the old Game Codes snapshot.
91
105
 
92
- Because successful API snapshots are authoritative, **adds, changes and removals are mirrored**. If APINODE removes an entry/code/game, the corresponding fallback disappears on the next successful daily sync.
106
+ Because successful API snapshots are authoritative, **adds, changes and removals are mirrored**. If APINODE moves an old Fortnite record between datasets, or removes/changes a Call of Duty entity, the next fully successful mirror reproduces that structure in the fallback.
93
107
 
94
108
  If APINODE is down, times out, returns 429/5xx, or one required endpoint fails halfway through, that cache is **not replaced**. The previous last-good fallback remains available.
95
109
 
96
- ## Package API
110
+ ## APINODE synchronization / repair propagation
111
+
112
+ APINODE performs content synchronization and data-quality repair before this repository consumes the public API. That includes bad Game Code cleanup, image repair, Fortnite dataset separation, and the database-backed Call of Duty public-data sync.
113
+
114
+ ```text
115
+ APINODE source refresh / repair
116
+ ↓
117
+ Gaming Infos + Game Codes API
118
+ ↓
119
+ hourly GitHub change-watch
120
+ ↓
121
+ repository data/ fallback
122
+ ```
97
123
 
98
- Gaming Infos functions remain available:
124
+ ## Package API
99
125
 
100
126
  ```js
101
127
  const info = require('@nekosuneprojects/gaming-infos');
102
128
 
103
- await info.Games();
129
+ // Fortnite
130
+ await info.List('fortnite', 'characters');
131
+ await info.List('fortnite', 'npcs');
132
+ await info.List('fortnite', 'maps');
133
+
134
+ // Call of Duty
135
+ await info.List('codblackops2', 'characters');
136
+ await info.List('codblackops2', 'npcs');
137
+ await info.List('codblackops2', 'maps');
138
+ await info.List('codmodernwarfare4', 'maps');
139
+
140
+ await info.Characters('codblackops2', 'character-slug');
141
+ await info.NPCs('codblackops2', 'npc-slug');
142
+ await info.Maps('codblackops2', 'map-slug');
143
+
144
+ // Other Gaming Infos
104
145
  await info.List('vrchat', 'avatars');
105
146
  await info.Characters('wutheringwaves', 'cartethyia');
106
- ```
107
-
108
- Game Codes helpers use live APINODE first and the daily fallback second:
109
147
 
110
- ```js
111
- await info.Codes(); // GET /v5/games/api/codes
112
- await info.CodesStatus(); // GET /v5/games/api/codes/status
113
- await info.GameCodes('fortnite'); // Active + Expired
148
+ // Game Codes
149
+ await info.Codes();
150
+ await info.CodesStatus();
114
151
  await info.GameCodes('fortnite', { includeUnknown: true });
115
152
  await info.GameCode('fortnite', 'NEKOSUNEVR');
116
- await info.CodeCacheInfo();
117
153
  ```
118
154
 
119
- Per-game fallback filtering is supported for `category` and `claimType` as well.
120
-
121
155
  ## Commands
122
156
 
123
157
  ```bash
124
- # Test both atomic cache systems
125
158
  npm run test:all-cache
126
-
127
- # Mirror both Gaming Infos and Game Codes
128
159
  npm run sync:cache
129
160
 
130
161
  # Debug individually
@@ -147,15 +178,16 @@ Useful variables:
147
178
  | `GAMING_INFOS_API_BASE` | `https://api.nekosunevr.co.uk` | APINODE host used by both caches |
148
179
  | `GAMING_INFOS_API_PATH` | `/v5/games/api/gaming-infos` | Gaming Infos path |
149
180
  | `GAME_CODES_API_PATH` | `/v5/games/api/codes` | Game Codes path |
181
+ | `GAMING_INFOS_CACHE_MANIFEST_JSON` | baseline + root discovery | Optional explicit baseline manifest |
150
182
  | `GAMING_INFOS_CACHE_TIMEOUT_MS` | `15000` | Gaming Infos per-request timeout |
151
183
  | `GAMING_INFOS_CACHE_RETRIES` | `2` | Gaming Infos retry count |
152
- | `GAME_CODES_CACHE_TIMEOUT_MS` | `15000` | Game Codes per-request timeout |
184
+ | `GAME_CODES_CACHE_TIMEOUT_MS` | `15000` | Game Codes sync request timeout |
153
185
  | `GAME_CODES_CACHE_RETRIES` | `2` | Game Codes retry count |
154
186
  | `GAME_CODES_CACHE_GAME_DELAY_MS` | `150` | Small delay between game-list requests |
155
187
 
156
188
  ## Runtime fallback behavior
157
189
 
158
- The package does **not** use the cache instead of live data. It remains API-first:
190
+ The package remains API-first:
159
191
 
160
192
  ```text
161
193
  application
@@ -165,8 +197,6 @@ live APINODE
165
197
  └─ unavailable/error → last-good bundled fallback
166
198
  ```
167
199
 
168
- A successful changed Gaming Infos snapshot records `data/.cache-manifest.json`. Game Codes records its own `data/game-codes/.cache-manifest.json`. Both include source URL, content hash, counts, synchronization time and add/change/remove statistics.
169
-
170
- The hash comparison ignores manifest timestamps, so an unchanged API dataset does not create a pointless daily commit.
200
+ A successful changed Gaming Infos snapshot records `data/.cache-manifest.json` with schema version 2, its effective game/type manifest, content hash, counts and add/change/remove statistics. Game Codes records `data/game-codes/.cache-manifest.json` separately. The hash comparison ignores manifest timestamps and other explicitly volatile values.
171
201
 
172
- Note: npm releases are immutable. Repository fallback files update daily, but an already-installed npm version keeps the bundled snapshot from that package release until upgraded. Live API reads still remain current whenever APINODE is available.
202
+ Note: npm releases are immutable. Repository fallback files update automatically, but an already-installed npm version keeps the snapshot bundled with that release until upgraded. Live API reads still remain current whenever APINODE is available.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 2.4.0 - 2026-08-24
11
+
12
+ ### Added
13
+ - Added mainline Call of Duty Gaming Infos coverage from `cod2003` (Call of Duty 2003) through `codblackops7`, plus `codmodernwarfare4` for official 2026 beta/public announcement data.
14
+ - Added per-title Call of Duty `characters`, `npcs`, and `maps` datasets. `characters` is intended for playable/main characters, protagonists, Operators and Specialists; `npcs` contains other campaign/game character records; `maps` contains public multiplayer/Zombies/Warzone/map/mission records.
15
+ - Added Call of Duty examples and the complete supported slug list to `README.md`.
16
+ - Added mirror smoke coverage for APINODE root `slug`/`types` auto-discovery.
17
+
18
+ ### Changed
19
+ - Gaming Infos fallback synchronization now auto-discovers games and dataset types from APINODE's root response instead of requiring every new game/type to be hard-coded into the package mirror.
20
+ - Gaming Infos cache manifests now use schema version 2 and record that dataset types were auto-discovered.
21
+ - Updated package metadata and keywords for Call of Duty, Modern Warfare, Black Ops, characters, NPCs and maps.
22
+ - Bumped the package source version to `2.4.0`.
23
+
24
+ ### Data policy
25
+ - Historical Call of Duty data is limited to public released-game sources. Cut, unused, cancelled, unofficial unreleased, non-canon, prototype/concept and image-only categories are excluded.
26
+ - Modern Warfare 4 data is limited to official Activision beta/public announcement information while the title is pre-release; leaks/datamines are not mirrored.
27
+
28
+ ## 2.3.0 - 2026-08-24
29
+
30
+ ### Added
31
+ - Added `NPCs(game, name)` and `Maps(game, name)` helpers.
32
+ - Added dedicated Fortnite `npcs` and `maps` datasets alongside `characters`.
33
+ - Fortnite `characters` now means released Outfit/skin records rather than Battle Royale NPCs.
34
+
35
+ ### Changed
36
+ - The fallback mirror now fetches `fortnite/characters`, `fortnite/npcs`, and `fortnite/maps` independently from APINODE.
37
+ - The repository APINODE change-watch runs hourly and only commits real content changes.
38
+ - Volatile Game Code countdown fields are excluded from fallback hashes and are rehydrated from `expiresAt` when the local fallback is read.
39
+ - Updated package metadata for Fortnite skins, NPCs, and maps.
40
+
10
41
  ## 2.2.0 - 2026-08-24
11
42
 
12
43
  ### Added
@@ -22,12 +53,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
53
 
23
54
  ### Changed
24
55
  - `npm run sync:cache` now mirrors both Gaming Infos and Game Codes.
25
- - The automatic cache workflow now runs once daily at 03:23 UTC instead of every six hours.
56
+ - The automatic cache workflow was changed to a daily schedule in this release and was subsequently upgraded to an hourly change-watch in 2.3.0.
26
57
  - Gaming Infos and Game Codes are mirrored as independent atomic snapshots so a failure in one cache cannot destroy the other cache's last-good data.
27
- - Successful mirror runs now synchronize additions, updates, and removals from APINODE while failed or partial runs preserve the previous fallback snapshot.
58
+ - Successful mirror runs synchronize additions, updates, and removals from APINODE while failed or partial runs preserve the previous fallback snapshot.
28
59
  - Local fallback entities expose stable slugs so offline lookups match live API behavior more closely.
29
60
  - Expanded the package description and keywords for the new games, VRChat avatars, and redeem/creator-code support.
30
- - Reworked `README.md` to document the full supported-game matrix, API-first fallback behavior, Game Codes API helpers, daily sync workflow, cache commands, configuration, and examples.
61
+ - Reworked `README.md` to document the full supported-game matrix, API-first fallback behavior, Game Codes API helpers, sync workflow, cache commands, configuration, and examples.
31
62
 
32
63
  ## 2.1.0 - 2026-08-02
33
64