// Ordered by code, mirroring the SMPP 5.0 command_status table, so gaps stay visible. export const errors = { ESME_ROK: 0x0000, ESME_RINVMSGLEN: 0x0001, ESME_RINVCMDLEN: 0x0002, ESME_RINVCMDID: 0x0003, ESME_RINVBNDSTS: 0x0004, ESME_RALYBND: 0x0005, ESME_RINVPRTFLG: 0x0006, ESME_RINVREGDLVFLG: 0x0007, ESME_RSYSERR: 0x0008, ESME_RINVSRCADR: 0x000A, ESME_RINVDSTADR: 0x000B, ESME_RINVMSGID: 0x000C, ESME_RBINDFAIL: 0x000D, ESME_RINVPASWD: 0x000E, ESME_RINVSYSID: 0x000F, ESME_RCANCELFAIL: 0x0011, ESME_RREPLACEFAIL: 0x0013, ESME_RMSGQFUL: 0x0014, ESME_RINVSERTYP: 0x0015, ESME_RINVNUMDESTS: 0x0033, ESME_RINVDLNAME: 0x0034, ESME_RINVDESTFLAG: 0x0040, ESME_RINVSUBREP: 0x0042, ESME_RINVESMCLASS: 0x0043, ESME_RCNTSUBDL: 0x0044, ESME_RSUBMITFAIL: 0x0045, ESME_RINVSRCTON: 0x0048, ESME_RINVSRCNPI: 0x0049, ESME_RINVDSTTON: 0x0050, ESME_RINVDSTNPI: 0x0051, ESME_RINVSYSTYP: 0x0053, ESME_RINVREPFLAG: 0x0054, ESME_RINVNUMMSGS: 0x0055, ESME_RTHROTTLED: 0x0058, ESME_RINVSCHED: 0x0061, ESME_RINVEXPIRY: 0x0062, ESME_RINVDFTMSGID: 0x0063, ESME_RX_T_APPN: 0x0064, ESME_RX_P_APPN: 0x0065, ESME_RX_R_APPN: 0x0066, ESME_RQUERYFAIL: 0x0067, ESME_RINVTLVSTREAM: 0x00C0, ESME_RTLVNOTALLWD: 0x00C1, ESME_RINVTLVLEN: 0x00C2, ESME_RMISSINGTLV: 0x00C3, ESME_RINVTLVVAL: 0x00C4, ESME_RDELIVERYFAILURE: 0x00FE, ESME_RUNKNOWNERR: 0x00FF, ESME_RSERTYPUNAUTH: 0x0100, ESME_RPROHIBITED: 0x0101, ESME_RSERTYPUNAVAIL: 0x0102, ESME_RSERTYPDENIED: 0x0103, ESME_RINVDCS: 0x0104, ESME_RINVSRCADDRSUBUNIT: 0x0105, ESME_RINVDSTADDRSUBUNIT: 0x0106, ESME_RINVBCASTFREQINT: 0x0107, ESME_RINVBCASTALIAS_NAME: 0x0108, ESME_RINVBCASTAREAFMT: 0x0109, ESME_RINVNUMBCAST_AREAS: 0x010A, ESME_RINVBCASTCNTTYPE: 0x010B, ESME_RINVBCASTMSGCLASS: 0x010C, ESME_RBCASTFAIL: 0x010D, ESME_RBCASTQUERYFAIL: 0x010E, ESME_RBCASTCANCELFAIL: 0x010F, ESME_RINVBCAST_REP: 0x0110, ESME_RINVBCASTSRVGRP: 0x0111, ESME_RINVBCASTCHANIND: 0x0112, } as const; export type ErrorName = keyof typeof errors; export const errorsById: Record = {}; for (const [name, code] of Object.entries(errors)) { errorsById[code] = name; } export function isErrorName(value: unknown): value is ErrorName { return typeof value === 'string' && Object.hasOwn(errors, value); } export function errorNameById(id: number): ErrorName | undefined { const name = errorsById[id]; return isErrorName(name) ? name : undefined; }