import { businessRefusalNotices } from "@conusai-kit/business/refusals" import type { Locale } from "@conusai-kit/i18n" import { en as keys } from "../i18n/en.js" export type LedgerMessages = { [K in keyof typeof keys]: string } /** * The module's messages, and every Ledger refusal's problem code with the sentence a person reads for it * (the kit's, in the loader's locale; a revision or idempotency conflict in this module's own words). Plain * strings, so the loader hands them to the forms, which read a refusal with `serviceNotice`. */ export type LedgerLabels = LedgerMessages & { readonly refusals: Readonly> } export function ledgerLabels(t: (key: string) => string, locale: Locale): LedgerLabels { const messages = Object.fromEntries(Object.keys(keys).map((key) => [key, t(key)])) as LedgerMessages return { ...messages, refusals: businessRefusalNotices(locale, { revision_conflict: messages.revisionConflict, idempotency_conflict: messages.idempotencyConflict, }), } }