node-zugferd
Version:
A Node.js library for creating ZUGFeRD/Factur-X compliant documents. Generating XML and embedding it into PDF/A files, enabling seamless e-invoicing and digital document compliance.
269 lines (267 loc) • 12.7 kB
JavaScript
// src/codelists/index.ts
var getByPath = (obj, path) => path.split(".").reduce((acc, key) => acc?.[key], obj);
var createEnum = (data, options) => {
return Object.fromEntries(
data.map((item) => [
getByPath(item, options.keyProp),
getByPath(item, options.valueProp)
])
);
};
// src/codelists/currency.gen.ts
var PUBLISHED = /* @__PURE__ */ new Date("2025-01-31T23:00:00.000Z");
var CURRENCY = [
{ key: "UAE_DIRHAM", name: "UAE Dirham", value: "AED" },
{ key: "AFGHANI", name: "Afghani", value: "AFN" },
{ key: "LEK", name: "Lek", value: "ALL" },
{ key: "ARMENIAN_DRAM", name: "Armenian Dram", value: "AMD" },
{
key: "NETHERLANDS_ANTILLEAN_GUILDER",
name: "Netherlands Antillean Guilder",
value: "ANG"
},
{ key: "KWANZA", name: "Kwanza", value: "AOA" },
{ key: "ARGENTINE_PESO", name: "Argentine Peso", value: "ARS" },
{ key: "AUSTRALIAN_DOLLAR", name: "Australian Dollar", value: "AUD" },
{ key: "ARUBAN_FLORIN", name: "Aruban Florin", value: "AWG" },
{ key: "AZERBAIJAN_MANAT", name: "Azerbaijan Manat", value: "AZN" },
{ key: "CONVERTIBLE_MARK", name: "Convertible Mark", value: "BAM" },
{ key: "BARBADOS_DOLLAR", name: "Barbados Dollar", value: "BBD" },
{ key: "TAKA", name: "Taka", value: "BDT" },
{ key: "BULGARIAN_LEV", name: "Bulgarian Lev", value: "BGN" },
{ key: "BAHRAINI_DINAR", name: "Bahraini Dinar", value: "BHD" },
{ key: "BURUNDI_FRANC", name: "Burundi Franc", value: "BIF" },
{ key: "BERMUDIAN_DOLLAR", name: "Bermudian Dollar", value: "BMD" },
{ key: "BRUNEI_DOLLAR", name: "Brunei Dollar", value: "BND" },
{ key: "BOLIVIANO", name: "Boliviano", value: "BOB" },
{ key: "MVDOL", name: "Mvdol", value: "BOV" },
{ key: "BRAZILIAN_REAL", name: "Brazilian Real", value: "BRL" },
{ key: "BAHAMIAN_DOLLAR", name: "Bahamian Dollar", value: "BSD" },
{ key: "NGULTRUM", name: "Ngultrum", value: "BTN" },
{ key: "PULA", name: "Pula", value: "BWP" },
{ key: "BELARUSIAN_RUBLE", name: "Belarusian Ruble", value: "BYN" },
{ key: "BELIZE_DOLLAR", name: "Belize Dollar", value: "BZD" },
{ key: "CANADIAN_DOLLAR", name: "Canadian Dollar", value: "CAD" },
{ key: "CONGOLESE_FRANC", name: "Congolese Franc", value: "CDF" },
{ key: "WIR_EURO", name: "WIR Euro", value: "CHE" },
{ key: "SWISS_FRANC", name: "Swiss Franc", value: "CHF" },
{ key: "WIR_FRANC", name: "WIR Franc", value: "CHW" },
{ key: "UNIDAD_DE_FOMENTO", name: "Unidad de Fomento", value: "CLF" },
{ key: "CHILEAN_PESO", name: "Chilean Peso", value: "CLP" },
{ key: "YUAN_RENMINBI", name: "Yuan Renminbi", value: "CNY" },
{ key: "COLOMBIAN_PESO", name: "Colombian Peso", value: "COP" },
{ key: "UNIDAD_DE_VALOR_REAL", name: "Unidad de Valor Real", value: "COU" },
{ key: "COSTA_RICAN_COLON", name: "Costa Rican Colon", value: "CRC" },
{ key: "CUBAN_PESO", name: "Cuban Peso", value: "CUP" },
{ key: "CABO_VERDE_ESCUDO", name: "Cabo Verde Escudo", value: "CVE" },
{ key: "CZECH_KORUNA", name: "Czech Koruna", value: "CZK" },
{ key: "DJIBOUTI_FRANC", name: "Djibouti Franc", value: "DJF" },
{ key: "DANISH_KRONE", name: "Danish Krone", value: "DKK" },
{ key: "DOMINICAN_PESO", name: "Dominican Peso", value: "DOP" },
{ key: "ALGERIAN_DINAR", name: "Algerian Dinar", value: "DZD" },
{ key: "EGYPTIAN_POUND", name: "Egyptian Pound", value: "EGP" },
{ key: "NAKFA", name: "Nakfa", value: "ERN" },
{ key: "ETHIOPIAN_BIRR", name: "Ethiopian Birr", value: "ETB" },
{ key: "EURO", name: "Euro", value: "EUR" },
{ key: "FIJI_DOLLAR", name: "Fiji Dollar", value: "FJD" },
{
key: "FALKLAND_ISLANDS_POUND",
name: "Falkland Islands Pound",
value: "FKP"
},
{ key: "POUND_STERLING", name: "Pound Sterling", value: "GBP" },
{ key: "LARI", name: "Lari", value: "GEL" },
{ key: "GHANA_CEDI", name: "Ghana Cedi", value: "GHS" },
{ key: "GIBRALTAR_POUND", name: "Gibraltar Pound", value: "GIP" },
{ key: "DALASI", name: "Dalasi", value: "GMD" },
{ key: "GUINEAN_FRANC", name: "Guinean Franc", value: "GNF" },
{ key: "QUETZAL", name: "Quetzal", value: "GTQ" },
{ key: "GUYANA_DOLLAR", name: "Guyana Dollar", value: "GYD" },
{ key: "HONG_KONG_DOLLAR", name: "Hong Kong Dollar", value: "HKD" },
{ key: "LEMPIRA", name: "Lempira", value: "HNL" },
{ key: "GOURDE", name: "Gourde", value: "HTG" },
{ key: "FORINT", name: "Forint", value: "HUF" },
{ key: "RUPIAH", name: "Rupiah", value: "IDR" },
{ key: "NEW_ISRAELI_SHEQEL", name: "New Israeli Sheqel", value: "ILS" },
{ key: "INDIAN_RUPEE", name: "Indian Rupee", value: "INR" },
{ key: "IRAQI_DINAR", name: "Iraqi Dinar", value: "IQD" },
{ key: "IRANIAN_RIAL", name: "Iranian Rial", value: "IRR" },
{ key: "ICELAND_KRONA", name: "Iceland Krona", value: "ISK" },
{ key: "JAMAICAN_DOLLAR", name: "Jamaican Dollar", value: "JMD" },
{ key: "JORDANIAN_DINAR", name: "Jordanian Dinar", value: "JOD" },
{ key: "YEN", name: "Yen", value: "JPY" },
{ key: "KENYAN_SHILLING", name: "Kenyan Shilling", value: "KES" },
{ key: "SOM", name: "Som", value: "KGS" },
{ key: "RIEL", name: "Riel", value: "KHR" },
{ key: "COMORIAN_FRANC", name: "Comorian Franc", value: "KMF" },
{ key: "NORTH_KOREAN_WON", name: "North Korean Won", value: "KPW" },
{ key: "WON", name: "Won", value: "KRW" },
{ key: "KUWAITI_DINAR", name: "Kuwaiti Dinar", value: "KWD" },
{ key: "CAYMAN_ISLANDS_DOLLAR", name: "Cayman Islands Dollar", value: "KYD" },
{ key: "TENGE", name: "Tenge", value: "KZT" },
{ key: "LAO_KIP", name: "Lao Kip", value: "LAK" },
{ key: "LEBANESE_POUND", name: "Lebanese Pound", value: "LBP" },
{ key: "SRI_LANKA_RUPEE", name: "Sri Lanka Rupee", value: "LKR" },
{ key: "LIBERIAN_DOLLAR", name: "Liberian Dollar", value: "LRD" },
{ key: "LOTI", name: "Loti", value: "LSL" },
{ key: "LIBYAN_DINAR", name: "Libyan Dinar", value: "LYD" },
{ key: "MOROCCAN_DIRHAM", name: "Moroccan Dirham", value: "MAD" },
{ key: "MOLDOVAN_LEU", name: "Moldovan Leu", value: "MDL" },
{ key: "MALAGASY_ARIARY", name: "Malagasy Ariary", value: "MGA" },
{ key: "DENAR", name: "Denar", value: "MKD" },
{ key: "KYAT", name: "Kyat", value: "MMK" },
{ key: "TUGRIK", name: "Tugrik", value: "MNT" },
{ key: "PATACA", name: "Pataca", value: "MOP" },
{ key: "OUGUIYA", name: "Ouguiya", value: "MRU" },
{ key: "MAURITIUS_RUPEE", name: "Mauritius Rupee", value: "MUR" },
{ key: "RUFIYAA", name: "Rufiyaa", value: "MVR" },
{ key: "MALAWI_KWACHA", name: "Malawi Kwacha", value: "MWK" },
{ key: "MEXICAN_PESO", name: "Mexican Peso", value: "MXN" },
{
key: "MEXICAN_UNIDAD_DE_INVERSION_UDI",
name: "Mexican Unidad de Inversion (UDI)",
value: "MXV"
},
{ key: "MALAYSIAN_RINGGIT", name: "Malaysian Ringgit", value: "MYR" },
{ key: "MOZAMBIQUE_METICAL", name: "Mozambique Metical", value: "MZN" },
{ key: "NAMIBIA_DOLLAR", name: "Namibia Dollar", value: "NAD" },
{ key: "NAIRA", name: "Naira", value: "NGN" },
{ key: "CORDOBA_ORO", name: "Cordoba Oro", value: "NIO" },
{ key: "NORWEGIAN_KRONE", name: "Norwegian Krone", value: "NOK" },
{ key: "NEPALESE_RUPEE", name: "Nepalese Rupee", value: "NPR" },
{ key: "NEW_ZEALAND_DOLLAR", name: "New Zealand Dollar", value: "NZD" },
{ key: "RIAL_OMANI", name: "Rial Omani", value: "OMR" },
{ key: "BALBOA", name: "Balboa", value: "PAB" },
{ key: "SOL", name: "Sol", value: "PEN" },
{ key: "KINA", name: "Kina", value: "PGK" },
{ key: "PHILIPPINE_PESO", name: "Philippine Peso", value: "PHP" },
{ key: "PAKISTAN_RUPEE", name: "Pakistan Rupee", value: "PKR" },
{ key: "ZLOTY", name: "Zloty", value: "PLN" },
{ key: "GUARANI", name: "Guarani", value: "PYG" },
{ key: "QATARI_RIAL", name: "Qatari Rial", value: "QAR" },
{ key: "ROMANIAN_LEU", name: "Romanian Leu", value: "RON" },
{ key: "SERBIAN_DINAR", name: "Serbian Dinar", value: "RSD" },
{ key: "RUSSIAN_RUBLE", name: "Russian Ruble", value: "RUB" },
{ key: "RWANDA_FRANC", name: "Rwanda Franc", value: "RWF" },
{ key: "SAUDI_RIYAL", name: "Saudi Riyal", value: "SAR" },
{
key: "SOLOMON_ISLANDS_DOLLAR",
name: "Solomon Islands Dollar",
value: "SBD"
},
{ key: "SEYCHELLES_RUPEE", name: "Seychelles Rupee", value: "SCR" },
{ key: "SUDANESE_POUND", name: "Sudanese Pound", value: "SDG" },
{ key: "SWEDISH_KRONA", name: "Swedish Krona", value: "SEK" },
{ key: "SINGAPORE_DOLLAR", name: "Singapore Dollar", value: "SGD" },
{ key: "SAINT_HELENA_POUND", name: "Saint Helena Pound", value: "SHP" },
{
key: "SIERRA_LEONE_NEW_VALUATION_2022",
name: "Sierra Leone (new valuation 2022)",
value: "SLE"
},
{ key: "SOMALI_SHILLING", name: "Somali Shilling", value: "SOS" },
{ key: "SURINAM_DOLLAR", name: "Surinam Dollar", value: "SRD" },
{ key: "SOUTH_SUDANESE_POUND", name: "South Sudanese Pound", value: "SSP" },
{ key: "DOBRA", name: "Dobra", value: "STN" },
{ key: "EL_SALVADOR_COLON", name: "El Salvador Colon", value: "SVC" },
{ key: "SYRIAN_POUND", name: "Syrian Pound", value: "SYP" },
{ key: "LILANGENI", name: "Lilangeni", value: "SZL" },
{ key: "BAHT", name: "Baht", value: "THB" },
{ key: "SOMONI", name: "Somoni", value: "TJS" },
{
key: "TURKMENISTAN_NEW_MANAT",
name: "Turkmenistan New Manat",
value: "TMT"
},
{ key: "TUNISIAN_DINAR", name: "Tunisian Dinar", value: "TND" },
{ key: "PAANGA", name: "Pa\u2019anga", value: "TOP" },
{ key: "TURKISH_LIRA", name: "Turkish Lira", value: "TRY" },
{
key: "TRINIDAD_AND_TOBAGO_DOLLAR",
name: "Trinidad and Tobago Dollar",
value: "TTD"
},
{ key: "NEW_TAIWAN_DOLLAR", name: "New Taiwan Dollar", value: "TWD" },
{ key: "TANZANIAN_SHILLING", name: "Tanzanian Shilling", value: "TZS" },
{ key: "HRYVNIA", name: "Hryvnia", value: "UAH" },
{ key: "UGANDA_SHILLING", name: "Uganda Shilling", value: "UGX" },
{ key: "US_DOLLAR", name: "US Dollar", value: "USD" },
{ key: "US_DOLLAR_NEXT_DAY", name: "US Dollar (Next day)", value: "USN" },
{
key: "URUGUAY_PESO_EN_UNIDADES_INDEXADAS_UI",
name: "Uruguay Peso en Unidades Indexadas (UI)",
value: "UYI"
},
{ key: "PESO_URUGUAYO", name: "Peso Uruguayo", value: "UYU" },
{ key: "UNIDAD_PREVISIONAL", name: "Unidad Previsional", value: "UYW" },
{ key: "UZBEKISTAN_SUM", name: "Uzbekistan Sum", value: "UZS" },
{
key: "BOLIVAR_SOBERANO_NEW_VALUATION",
name: "Bol\xEDvar Soberano, new valuation",
value: "VED"
},
{ key: "BOLIVAR_SOBERANO", name: "Bol\xEDvar Soberano", value: "VES" },
{ key: "DONG", name: "Dong", value: "VND" },
{ key: "VATU", name: "Vatu", value: "VUV" },
{ key: "TALA", name: "Tala", value: "WST" },
{ key: "CFA_FRANC_BEAC", name: "CFA Franc BEAC", value: "XAF" },
{ key: "SILVER", name: "Silver", value: "XAG" },
{ key: "GOLD", name: "Gold", value: "XAU" },
{
key: "BOND_MARKETS_UNIT_EUROPEAN_COMPOSITE_UNIT_EURCO",
name: "Bond Markets Unit European Composite Unit (EURCO)",
value: "XBA"
},
{
key: "BOND_MARKETS_UNIT_EUROPEAN_MONETARY_UNIT_EMU_6",
name: "Bond Markets Unit European Monetary Unit (E.M.U.-6)",
value: "XBB"
},
{
key: "BOND_MARKETS_UNIT_EUROPEAN_UNIT_OF_ACCOUNT_9_EUA_9",
name: "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)",
value: "XBC"
},
{
key: "BOND_MARKETS_UNIT_EUROPEAN_UNIT_OF_ACCOUNT_17_EUA_17",
name: "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)",
value: "XBD"
},
{ key: "EAST_CARIBBEAN_DOLLAR", name: "East Caribbean Dollar", value: "XCD" },
{
key: "SDR_SPECIAL_DRAWING_RIGHT",
name: "SDR (Special Drawing Right)",
value: "XDR"
},
{ key: "CFA_FRANC_BCEAO", name: "CFA Franc BCEAO", value: "XOF" },
{ key: "PALLADIUM", name: "Palladium", value: "XPD" },
{ key: "CFP_FRANC", name: "CFP Franc", value: "XPF" },
{ key: "PLATINUM", name: "Platinum", value: "XPT" },
{ key: "SUCRE", name: "Sucre", value: "XSU" },
{
key: "CODES_SPECIFICALLY_RESERVED_FOR_TESTING_PURPOSES",
name: "Codes specifically reserved for testing purposes",
value: "XTS"
},
{ key: "ADB_UNIT_OF_ACCOUNT", name: "ADB Unit of Account", value: "XUA" },
{
key: "THE_CODES_ASSIGNED_FOR_TRANSACTIONS_WHERE_NO_CURRENCY_IS_INVOLVED",
name: "The codes assigned for transactions where no currency is involved",
value: "XXX"
},
{ key: "YEMENI_RIAL", name: "Yemeni Rial", value: "YER" },
{ key: "RAND", name: "Rand", value: "ZAR" },
{ key: "ZAMBIAN_KWACHA", name: "Zambian Kwacha", value: "ZMW" },
{ key: "ZIMBABWE_GOLD", name: "Zimbabwe Gold", value: "ZWG" }
];
var currencyCode = CURRENCY.map(({ value }) => value);
var Currency = createEnum(CURRENCY, {
keyProp: "key",
valueProp: "value"
});
export {
CURRENCY,
Currency,
PUBLISHED,
currencyCode
};