Repository navigation
Releases: haruhimemoe/pool
Releases · haruhimemoe/pool
Release list
v0.3.0
v0.2.0
Added
@haruhimemoe/pool/service, the contract between pools.haruhime.moe and packs.haruhime.moe:packInputSchema,poolsPackBodySchema(thePUT /api/service/pools/{ref}body),poolsRefSchema,poolsSyncAnswerSchema,poolsStatsAnswerSchema,MAX_DESCRIPTION_LENGTHand the visibilities. Each app had its own copy, and pools couldn't check the description limit.@haruhimemoe/pool/content-filter, a second entry point withhasBlockedLanguage(text): the slur and hate slogan blocklist packs.haruhime.moe and pools.haruhime.moe each had a copy of, unchanged. The main entry point never loads its word list.changesStarRating(mods),ratingMods(mods)andspeedRate(mods): which mods change a star rating, and how fast DT (1.5) and HT (0.75) play, with NC read as DT and DC as HT. packs.haruhime.moe and pools.haruhime.moe had their own copies.displayPoolName(name): a pool name safe to show and store, with control characters and line breaks turned into spaces and bidi controls removed. Keys carry names as typed, so the README now says to treat them as untrusted.
Changed
checkBucketCoderefuses a code that is another slot's code plus a number (NM1next toNM,RCnext toRC1) with the newclasherror, soaddBucketandrenameBucketrefuse it too. With both codes,slotLabelprints NM slot 1 asNM1, whichparsePoolTextreads as NM1's slot 1. Pools that already have such codes still validate and open.parsePoolTextreports a line that would create such a code with the newclasherror code.checkBucketCoderefuses a code with no letter (12) with the newdigitserror.parsePoolTextalready read such lines as beatmap IDs or a numbered list, so their labels didn't read back.
Fixed
parsePoolTextsplits lines on a lone CR, U+2028 and U+2029 too. Before, every line after the first was lost without an error.parsePoolTextreads a slot line whose beatmap is followed by a comma (NM1 129891, Freedom Dive), as ID lines already did.planMergecounts the same slot twice inincomingonce, so it previewsmergeSlotsexactly. Before, one slot could be both added and replaced, and a slot pasted back to its current map was reported as replaced.freemodSetsandmodSetsForreturn frozen sets, at both levels. Before, a caller could change the shared arrays for every other module.moveBucket(andwithBuckets) put the slots in the new pool order. Before, they kept the old order, unlike every other edit anddecodePackKey.