Confirmed-by-reading defects in main, as a checklist. Most are not reachable via the public HTTP API (read-only store / output not echoed), so no live curl — line refs are main.
Expansion cache key omits inputs that change the result
Other confirmed defects
Dead / latent (would only throw if the path were reached)
Confirmed against main; the TS port preserves several of these with documenting comments.
Confirmed-by-reading defects in
main, as a checklist. Most are not reachable via the public HTTP API (read-only store / output not echoed), so no live curl — line refs aremain.Expansion cache key omits inputs that change the result
no-cacheis a no-op.tx/params.js:142—case 'no-cache': … this.uid = crypto.randomUUID(), but the cache key (params.js:549hashSource) readsthis.FUid, neveruid(which is written-only). Sono-cache=truedoes not bust the expansion cache.tx/params.js:295—get hasHTTPLanguages(){ return this.FHTTPLanguages && this.FHTTPLanguages.source; }(and thedisplayLanguagesibling).Languageshas no.source, so these are always falsy ⇒ the language-folding blocks inhashSource()are dead ⇒ a cached expansion can be served in the wrong language.Other confirmed defects
isMoreRecentreturns a number, not a boolean.tx/library/canonical-resource.js:132-133:provider.ts⇒ inverted "is more recent" for a non-standardversionAlgorithm.undefined.tx/library/ucum-types.js:942—register(h){ this.handlers.set(h.code, h); }keys on.code, butCelsiusHandler/FahrenheitHandleronly overridegetCode()and never set.code⇒ both register asundefined(Fahrenheit overwrites Celsius) ⇒exists('Cel')/exists('[degF]')false ⇒ canonicalizing °C/°F throws "Not handled yet (special unit)".Dead / latent (would only throw if the path were reached)
tx/provider.js:508—deleteCodeSystemre-inserts the deleted CodeSystem (this.codeSystems.set(cs.url, cs); should beexisting) ⇒ the delete reverts itself.tx/library.js:658-659—loadUrlcallscp.codeSystems.set(...)on aCodeSystem[](arrays have no.set; the siblingloadNpmuses.push) ⇒ aurl:/url/cs:source throws at load.tx/operation-context.js:394— thestats()method is shadowed by thethis.statsfield (:59) ⇒ the cache-statistics accessor is unreachable (TypeError if called).tx/library/designations.js:49—if (this.null)but the getter isisNull(:38) ⇒ an empty text filter returns false for everything (matches nothing) in isolation.Confirmed against
main; the TS port preserves several of these with documenting comments.