* feat: pb resolution endpoint
* my favourite thing about typescript tooling is how it automatically applies fixes that completely break your code because it knows nothing about anything
* fix: i'm running tests on github actions because the devcontainer doesn't work on arm
* i am aliyah
* fix: cuz of the
* f
* f(prime)
* guggington2
* pain
* pain two
* [chunithm] Update to CHUNITHM X-VERSE
* add xverse-omni to every chart
* xverse-intl
* add search terms
* fix(tests): songTitle match type must be case-insensitively unique
* daydreama + energizing flame
* ci: add concurrency control between server and seeds deploy
* chunithm: rank PBs by noteLamp and clearLamp too
This prevents the scenario where a user's rank on a chart goes down because they
improved their skill lamp and thus counts as a "raise".
* add search term for mayonnaise fried chicken
* random ass revival
* fix(orphans): delete orphaned score after deorphaning process
* fix: don't die on one bad orphan
* fix: do not delete the orphan when an error is propagated up
* unify deorphan logic across everything
* fix imports
* fix: put in the query
* fix: minor spelling mistak
* build(client): add 'lintfix' target matching the server
* docs(lr2hook): suggest lr2_chainload instead of BokutachiLauncher.exe
BokutachiLauncher.exe is no longer a part of BokutachiHook.
* refactor(server/lr2hook): G-ATTACK, P-ATTACK and HAZARD are not HARD
* feat(server/lr2hook): parse extendedJudgements
* feat(server/lr2hook): use fast-slow and early/late judgements
* test(server/lr2hook): make clear that in this test notesPlayed != notesTotal
* feat(server/lr2hook): calculate BP by hand when exiting chart early
* feat(server/lr2hook): parse rseed
* feat(server/lr2hook): parse extendedHpGraphs
* feat(server/lr2hook): parse unixTimestamp
* feat(server/lr2hook): use unixTimestamp as score play time
Especially useful as BokutachiHook now retries sending scores after some
time on connections errors.
* feat(common/bms+server/lr2hook+docs): add gaugeHistory{Easy,Groove,Hard}
Could also save graphs for unimplemented gauges, not done here as I
don't know if they are ever going to be implemented while they take some
decent space.
* feat(client/bms): support several gauges
Ugly IIFE inside IIFE is work-around for eslint bug `Expected a 'break'
statement before 'case'`.
* fix: iidx-mdb-parse ParseIIDXData: check for moreData before using continue;
* feat: initial iidx 33 support
* feat: iidx 33 eamuse csv support
* feat: iidx 33 tables and folders
* fix: some charts missing from iidx 33
Why on gods green earth does a chart with forced CN not ALSO set the
user score to say "CN mode"? Literally why? The play says LN mode.
Ridiculous. Fucking beatoraja engineering.
* sdvx: add ac MAXXIVE CLEAR lamp
* seperate USC lamps from SDVX for tests
* Add maxxive in converter for api-cg/sdvx
* feat: add migration
* fix: pre-empt service support
* lint(fix)
* fix: my typescript tooling stopped working
* fix: test
---------
Co-authored-by: blobdash <fruityenloops@gmail.com>
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
* [chunithm] split lamp into combo lamp and clear lamp
* ignore nonsense lint
* fix myt converter tests
* fix chunitachi batch manual
* mfw edited wrong file
* fix(migration): only migrate lamp-related showcases
* remove chart lamp showcases
* remove unused imports
* fix: limit re-pb to chunithm scores, migrate chart lamp showcases to comboLamp
* fix migration of comboLamp progress
* fix: updateMany with multi: true
* fix: when updating references, ensure only known IDs are in
* fix(client): make red stand out more
* fix(client): lamp sorting
* feat(server): validate clear and combo lamps based on judgements
* fix(server): validate combo lamps based on score boundary
* fix: reword validation errors to stay consistent
* fix: correct explanation
* fix: how was I this stupid?
* fix: update blacklisted scores too
* fix: bulk write all the updates
* fix: bulkWrite harder
* fix: i probably need sleep
* all of game-settings to bulkWrite
* fix folder lamp goal nonsense
* maybe fix colors
* fix: name PB merges
* chore: properly test PB merge
* mfw reversed
* fix(SessionRaiseBreakdown): lamp name
* rename to noteLamp
* why is eslint even complaining here?
* rename the enums
* fix tests
* tweak colors of lamps
* feat: chunithm score graph
* feat: add life
* feat: add song duration data for all songs
* fix: make chunithm graphs non-nullable
* fix: test data
* fix: potrząsanie kanalizacją
* fix: misleading old function name
* fix: make duration optional for chunithm
* fix: add the missing duration
* [maimai DX] PRiSM final
* add Supersonic Generation
This is a PRiSM PLUS song in Japanese region, but a PRiSM song in International.
As a way to compromise, the display version is PRiSM PLUS, but it also shows up in
the PRiSM folder. This should be removed when PRiSM PLUS hits Tachi for real.
* add PRiSM Omnimix
* disable BUDDiES PLUS tables
* add PRiSM Omnimix to versions in config
* pick correct default table
* fix test data
* fix mock db
* feat(score-import): Initial support for jubeat imports from CG
* feat(client): enable jubeat imports from cg through dashboard
* feat(api-cg/jb): further implementation of jubeat import from cg
* feat(api-cg/jb): create test
* fix(api-cg/jb): test on testingdb only has one chart
* refactor(api-cg/jb): cleanup converter
* fix(api-cg/jb): fix test mkOutput usage
* fix(api-cg/jb): validation of the int to enum conversion from cg
* feat(client): frontent jubeat import routes for cg
* feat(bot): add jubeat cg import command