Function: applyAstmProfile()
applyAstmProfile(
profile,warning):AstmRecordWarning
Apply a profile to a single warning. Returns a downgraded PROFILE_QUIRK_APPLIED
warning when the profile expects this deviation; otherwise returns the original
warning unchanged (referential identity preserved, so an un-tolerated warning is
never reallocated). A warning that is already expected (e.g. re-processed) is
passed through untouched.
The safety gate is re-checked here, and that is not redundant.
defineAstmProfile refuses a safety-critical code at definition time, but
AstmProfile is a plain interface: a hand-authored object literal
type-checks, and parseAstmRecords(raw, { profile }) and setDefaultAstmProfile
both accept one without re-running the factory. A definition-time-only gate
therefore guards a door that has a second entrance. A safety-critical code is
not downgraded here whatever the profile says, so the original warning
survives and strict still escalates it. Silently declining to downgrade, rather
than throwing, is the fail-safe direction: the signal is preserved either way, and
a parse is not turned into an exception by a profile the caller built by hand.
Parameters
profile
The active profile.
warning
One accumulated warning.
Returns
The re-badged warning when tolerated, else the original.
Example
import { applyAstmProfile, astmProfiles, unknownEscapeSequence } from "@cosyte/astm";
const w = unknownEscapeSequence({ recordIndex: 4, recordType: "R", fieldIndex: 5 });
const out = applyAstmProfile(astmProfiles.referenceCorpus, w);
out.code; // "PROFILE_QUIRK_APPLIED"
out.toleratedCode; // "ASTM_UNKNOWN_ESCAPE_SEQUENCE"