Function: defineProfile()
defineProfile(
opts):X12Profile
Build a readonly X12Profile from a validated spec. Invalid input
throws "./errors.js".X12ProfileError with an actionable message:
missing/empty name, unknown option key (with a typo hint), or a quirk that
violates the locked hard rule (missing fixture, bad effect, unknown
expectedWarnings code).
extends composes parent profiles: lineage flattens + dedupes, quirks
merge by id (child wins on collision, non-colliding parent quirks survive),
and description is last-wins.
Parameters
opts
Returns
Example
import { defineProfile } from "@cosyte/x12";
const availity = defineProfile({
name: "availity",
description: "Availity clearinghouse 835 ERA conventions",
quirks: [
{
id: "payer-loop-ref-2u",
effect: "adds",
summary: "Payer Loop 1000A carries a REF*2U additional payer identifier.",
fixture: "remit/835-availity-quirk.edi",
sourceCategory: "Availity 835 ERA companion guide - payer-loop REF",
},
],
});
availity.name; // "availity"
availity.lineage; // ["availity"]
availity.describe().adds; // [{ id: "payer-loop-ref-2u", ... }]