ts-edifact
Version:
Edifact parser library
1,368 lines • 81.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PercentageDetails = exports.PaymentTermsBasis = exports.PaymentInstructions = exports.Package = exports.NameAndAddress = exports.MaintenanceOperationDetails = exports.MonetaryAmount = exports.Measurements = exports.LocationIdentification = exports.LineItem = exports.InformationRequired = exports.PartiesAndInstruction = exports.ItemDescription = exports.Identity = exports.HierarchyInformation = exports.HandlingInstructions = exports.GeneralIndicator = exports.RelatedInformationNumbers = exports.GoodsIdentityNumber = exports.ProcessingInformation = exports.FreeText = exports.FinancialInstitutionInformation = exports.ApplicationErrorInformation = exports.EquipmentDetails = exports.AttachedEquipment = exports.ExternalFileLinkIdentification = exports.DateTimePeriod = exports.MessageDetails = exports.MessageSummary = exports.DeliveryLimitations = exports.DangerousGoods = exports.Currencies = exports.ContactInformation = exports.ConsignmentPackingSequence = exports.CommunicationContact = exports.ComponentDetails = exports.ControlTotal = exports.ComputerEnvironmentDetails = exports.CharacteristicClassID = exports.CharacteristicValue = exports.BusinessFunction = exports.BeginOfMessage = exports.AuthenticationResult = exports.MonetaryAmountFunction = exports.AdditionalPriceInformation = exports.AdditionalInformation = exports.AllowanceOrCharge = exports.AdjustmentDetails = exports.toSegmentObject = exports.sanitizeFloat = void 0;
exports.MessageTrailer = exports.SectionControl = exports.MessageHeader = exports.TransportServiceRequirements = exports.TermsOfDeliveryOrTransport = exports.TransportMovementDetails = exports.TransportInformationD11a = exports.TransportInformationD02b = exports.DetailsOfTransport = exports.TaxDetails = exports.Status = exports.SplitGoodsPlacement = exports.SequenceDetails = exports.SchedulingConditions = exports.SealNumber = exports.RateDetails = exports.RangeDetails = exports.AccountingJournalIdentification = exports.Reference = exports.RequirementsAndConditions = exports.QuantityVariances = exports.Quantity = exports.PaymentTerms = exports.PriceDetails = exports.AdditionalProductId = exports.ProductGroupInformation = exports.PackageIdentification = void 0;
function sanitizeFloat(str, decimalSymbol) {
const updatedStr = str.replace(decimalSymbol, ".");
return parseFloat(updatedStr);
}
exports.sanitizeFloat = sanitizeFloat;
function toSegmentObject(data, version, decimalSeparator) {
switch (data.name) {
case "AJT":
return new AdjustmentDetails(data);
case "ALC":
return new AllowanceOrCharge(data);
case "ALI":
return new AdditionalInformation(data);
case "APR":
return new AdditionalPriceInformation(data, decimalSeparator);
case "ARD":
return new MonetaryAmountFunction(data);
case "AUT":
return new AuthenticationResult(data);
case "BGM":
return new BeginOfMessage(data);
case "BUS":
return new BusinessFunction(data);
case "CAV":
return new CharacteristicValue(data);
case "CCI":
return new CharacteristicClassID(data);
case "CED":
return new ComputerEnvironmentDetails(data);
case "CNT":
return new ControlTotal(data, decimalSeparator);
case "COD":
return new ComponentDetails(data);
case "COM":
return new CommunicationContact(data);
case "CPS":
return new ConsignmentPackingSequence(data);
case "CTA":
return new ContactInformation(data);
case "CUX":
return new Currencies(data, decimalSeparator);
case "DGS":
return new DangerousGoods(data);
case "DLM":
return new DeliveryLimitations(data);
case "DMS":
return new MessageSummary(data);
case "DOC":
return new MessageDetails(data);
case "DTM":
return new DateTimePeriod(data);
case "EFI":
return new ExternalFileLinkIdentification(data);
case "EQA":
return new AttachedEquipment(data);
case "EQD":
return new EquipmentDetails(data);
case "ERC":
return new ApplicationErrorInformation(data);
case "FII":
return new FinancialInstitutionInformation(data);
case "FTX":
return new FreeText(data);
case "GEI":
return new ProcessingInformation(data);
case "GIN":
return new GoodsIdentityNumber(data);
case "GIR":
return new RelatedInformationNumbers(data);
case "GIS":
return new GeneralIndicator(data);
case "HAN":
return new HandlingInstructions(data);
case "HYN":
return new HierarchyInformation(data);
case "IDE":
return new Identity(data);
case "IMD":
return new ItemDescription(data);
case "INP":
return new PartiesAndInstruction(data);
case "IRQ":
return new InformationRequired(data);
case "LIN":
return new LineItem(data);
case "LOC":
return new LocationIdentification(data);
case "MEA":
return new Measurements(data);
case "MOA":
return new MonetaryAmount(data, decimalSeparator);
case "MTD":
return new MaintenanceOperationDetails(data);
case "NAD":
return new NameAndAddress(data);
case "PAC":
return new Package(data);
case "PAI":
return new PaymentInstructions(data);
case "PAT":
return new PaymentTermsBasis(data);
case "PCD":
return new PercentageDetails(data, decimalSeparator);
case "PCI":
return new PackageIdentification(data);
case "PGI":
return new ProductGroupInformation(data);
case "PIA":
return new AdditionalProductId(data);
case "PRI":
return new PriceDetails(data, decimalSeparator);
case "PYT":
return new PaymentTerms(data);
case "QTY":
return new Quantity(data);
case "QVR":
return new QuantityVariances(data, decimalSeparator);
case "RCS":
return new RequirementsAndConditions(data);
case "RFF":
return new Reference(data);
case "RJL":
return new AccountingJournalIdentification(data);
case "RNG":
return new RangeDetails(data, decimalSeparator);
case "RTE":
return new RateDetails(data, decimalSeparator);
case "SEL":
return new SealNumber(data);
case "SCC":
return new SchedulingConditions(data);
case "SEQ":
return new SequenceDetails(data);
case "SGP":
return new SplitGoodsPlacement(data);
case "STS":
return new Status(data);
case "TAX":
return new TaxDetails(data);
case "TDT":
const lversion = version.toLowerCase();
if (lversion === "d18b" || lversion === "d18a"
|| lversion === "d17b" || lversion === "d17a"
|| lversion === "d16b" || lversion === "d16a"
|| lversion === "d15b" || lversion === "d15a"
|| lversion === "d14b" || lversion === "d14a"
|| lversion === "d13b" || lversion === "d13a"
|| lversion === "d12b" || lversion === "d12a"
|| lversion === "d11b" || lversion === "d11a") {
return new TransportInformationD11a(data);
}
else if (version === "d10b" || version === "d10a"
|| lversion === "d09b" || lversion === "d09a"
|| lversion === "d08b" || lversion === "d08a"
|| lversion === "d07b" || lversion === "d07a"
|| lversion === "d06b" || lversion === "d06a"
|| lversion === "d05b" || lversion === "d05a"
|| lversion === "d04b" || lversion === "d04a"
|| lversion === "d03b" || lversion === "d03a"
|| lversion === "d02b" || lversion === "d02a") {
return new TransportInformationD02b(data);
}
else {
return new DetailsOfTransport(data);
}
case "TMD":
return new TransportMovementDetails(data);
case "TOD":
return new TermsOfDeliveryOrTransport(data);
case "TSR":
return new TransportServiceRequirements(data);
case "UNH":
return new MessageHeader(data);
case "UNS":
return new SectionControl(data);
case "UNT":
return new MessageTrailer(data);
default:
throw new Error(`Unsupported segment: ${data.name}`);
}
}
exports.toSegmentObject = toSegmentObject;
class AdjustmentDetails {
constructor(data) {
this.tag = "AJT";
this.adjustmentReasonDescriptionCode = data.elements[0][0];
if (data.elements.length > 1) {
this.lineItemIdentifier = data.elements[1][0];
}
}
}
exports.AdjustmentDetails = AdjustmentDetails;
class AllowanceOrChargeInformation {
constructor(data) {
this.allowanceOrChargeIdentifier = data[0];
this.allowanceOrChargeIdentificationCode = data[1];
}
}
class SpecialServicesIdentification {
constructor(data) {
this.specialServiceDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.specialServiceDescription = data[3];
this.specialServiceDescription2 = data[4];
}
}
class AllowanceOrCharge {
constructor(data) {
this.tag = "ALC";
this.allowanceOrChargeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.allowanceOrChargeInformation = new AllowanceOrChargeInformation(data.elements[1]);
}
if (data.elements.length > 2) {
this.settlementMeansCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.calculationSequenceCode = data.elements[3][0];
}
if (data.elements.length > 4) {
this.specialServicesIdentification = new SpecialServicesIdentification(data.elements[4]);
}
}
}
exports.AllowanceOrCharge = AllowanceOrCharge;
class AdditionalInformation {
constructor(data) {
this.tag = "ALI";
if (data.elements.length > 0) {
this.countryOfOriginIdentifier = data.elements[0][0];
}
if (data.elements.length > 1) {
this.dutyRegimeTypeCode = data.elements[1][0];
}
if (data.elements.length > 2) {
this.specialConditionCode1 = data.elements[2][0];
}
if (data.elements.length > 3) {
this.specialConditionCode2 = data.elements[3][0];
}
if (data.elements.length > 4) {
this.specialConditionCode3 = data.elements[4][0];
}
if (data.elements.length > 5) {
this.specialConditionCode4 = data.elements[5][0];
}
if (data.elements.length > 6) {
this.specialConditionCode5 = data.elements[6][0];
}
}
}
exports.AdditionalInformation = AdditionalInformation;
class PriceMultiplierInformation {
constructor(data, decimalSeparator) {
this.priceMuliplierRate = sanitizeFloat(data[0], decimalSeparator);
this.priceMuliplierTypeCodeQualifier = data[1];
}
}
class ReasonForChange {
constructor(data) {
this.changeReasonDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCoe = data[2];
this.changeReasonDescription = data[3];
}
}
class AdditionalPriceInformation {
constructor(data, decimalSeparator) {
this.tag = "APR";
if (data.elements.length > 0) {
this.tradeClassCode = data.elements[0][0];
}
if (data.elements.length > 1) {
this.priceMultiplierInformation = new PriceMultiplierInformation(data.elements[1], decimalSeparator);
}
if (data.elements.length > 2) {
this.reasonForChange = new ReasonForChange(data.elements[2]);
}
}
}
exports.AdditionalPriceInformation = AdditionalPriceInformation;
class MonetaryAmountFunctionData {
constructor(data) {
this.monetaryAmountFunctionDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.monetaryAmountFunctionDescription = data[3];
}
}
class MonetaryAmountFunctionDetail {
constructor(data) {
this.monetaryAmountFunctionDetailDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.monetaryAmountFunctionDetailDescription = data[3];
}
}
class MonetaryAmountFunction {
constructor(data) {
this.tag = "ARD";
if (data.elements.length > 0) {
this.monetaryAmountFunction = new MonetaryAmountFunctionData(data.elements[0]);
}
if (data.elements.length > 1) {
this.monetaryAmountFunctionDetail = new MonetaryAmountFunctionDetail(data.elements[1]);
}
}
}
exports.MonetaryAmountFunction = MonetaryAmountFunction;
class AuthenticationResult {
constructor(data) {
this.tag = "AUT";
this.validationResultText = data.elements[0][0];
if (data.elements.length > 1) {
this.validationKeyIdentifier = data.elements[1][0];
}
}
}
exports.AuthenticationResult = AuthenticationResult;
class MessageName {
constructor(data) {
this.documentNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.documentName = data[3];
}
}
class MessageIdentification {
constructor(data) {
this.documentIdentifier = data[0];
this.versionIdentifier = data[1];
this.revisionIdentifier = data[2];
}
}
class BeginOfMessage {
constructor(data) {
this.tag = "BGM";
if (data.elements.length > 0) {
this.messageName = new MessageName(data.elements[0]);
}
if (data.elements.length > 1) {
this.messageIdentification = new MessageIdentification(data.elements[1]);
}
if (data.elements.length > 2) {
this.messageFunctionCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.responseTypeCode = data.elements[3][0];
}
if (data.elements.length > 4) {
this.documentStatusCode = data.elements[4][0];
}
if (data.elements.length > 5) {
this.languageNameCode = data.elements[5][0];
}
}
}
exports.BeginOfMessage = BeginOfMessage;
class BusinessFunctionData {
constructor(data) {
this.businessFunctionTypeCodeQualifier = data[0];
this.businessFunctionCode = data[1];
this.codeListIdentificationCode = data[2];
this.codeListResponsibleAgencyCode = data[3];
this.businessDescription = data[4];
}
}
class BankOperation {
constructor(data) {
this.bankOperationCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
}
}
class BusinessFunction {
constructor(data) {
this.tag = "BUS";
if (data.elements.length > 0) {
this.businessFunction = new BusinessFunctionData(data.elements[0]);
}
if (data.elements.length > 1) {
this.geographicAreaCode = data.elements[1][0];
}
if (data.elements.length > 2) {
this.financialTransactionTypeCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.bankOperation = new BankOperation(data.elements[3]);
}
if (data.elements.length > 4) {
this.intraCompanyPaymentIndicatorCode = data.elements[4][0];
}
}
}
exports.BusinessFunction = BusinessFunction;
class CharacteristicValueData {
constructor(data) {
this.characteristicValueDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.characteristicValueDescription = data[3];
this.characteristicValueDescription2 = data[4];
}
}
class CharacteristicValue {
constructor(data) {
this.tag = "CAV";
this.characteristicValue = new CharacteristicValueData(data.elements[0]);
}
}
exports.CharacteristicValue = CharacteristicValue;
class CharacteristicDescription {
constructor(data) {
this.characteristicDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.characteristicDescription = data[3];
this.characteristicDescription2 = data[4];
}
}
class CharacteristicClassID {
constructor(data) {
this.tag = "CCI";
if (data.elements.length > 0) {
this.classTypeCode = data.elements[0][0];
}
if (data.elements.length > 1) {
this.measurementDetails = new MeasurementDetails(data.elements[1]);
}
if (data.elements.length > 2) {
this.characteristicDescription = new CharacteristicDescription(data.elements[2]);
}
if (data.elements.length > 3) {
this.characteristicRelevanceCode = data.elements[3][0];
}
}
}
exports.CharacteristicClassID = CharacteristicClassID;
class ComputerEnviornmentIdentification {
constructor(data) {
this.computerEnvironmentNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.computerEnvironmentName = data[3];
this.versionIdentifier = data[4];
this.releaseIdentifier = data[5];
this.objectIdentifier = data[6];
}
}
class ComputerEnvironmentDetails {
constructor(data) {
this.tag = "CED";
this.computerEnvironmentDetailsCodeQualifier = data.elements[0][0];
this.computerEnviornmentIdentification = new ComputerEnviornmentIdentification(data.elements[1]);
if (data.elements.length > 3) {
this.fileGenerationCommandName = data.elements[3][0];
}
}
}
exports.ComputerEnvironmentDetails = ComputerEnvironmentDetails;
class Control {
constructor(data, decimalSeparator) {
this.controlTotalTypeCodeQualifier = data[0];
this.controlTotalValue = sanitizeFloat(data[1], decimalSeparator);
this.measurementUnitCode = data[2];
}
}
class ControlTotal {
constructor(data, decimalSeparator) {
this.tag = "CNT";
this.control = new Control(data.elements[0], decimalSeparator);
}
}
exports.ControlTotal = ControlTotal;
class TypeOfUnit {
constructor(data) {
this.unitOrComponentTypeDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.unitOrComponentTypeDescription = data[3];
}
}
class ComponentMaterial {
constructor(data) {
this.componentMaterialDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.componentMaterialDescription = data[3];
}
}
class ComponentDetails {
constructor(data) {
this.tag = "COD";
if (data.elements.length > 0) {
this.typeOfUnit = new TypeOfUnit(data.elements[0]);
}
if (data.elements.length > 1) {
this.componentMaterial = new ComponentMaterial(data.elements[1]);
}
}
}
exports.ComponentDetails = ComponentDetails;
class CommunicationContactData {
constructor(data) {
this.communicationAddressIdentifier = data[0];
this.communicationAddressCodeQualifier = data[1];
}
}
class CommunicationContact {
constructor(data) {
this.tag = "COM";
this.communicationContact = new CommunicationContactData(data.elements[0]);
}
}
exports.CommunicationContact = CommunicationContact;
class ConsignmentPackingSequence {
constructor(data) {
this.tag = "CPS";
this.hierarchicalStructureLevelIdentifier = data.elements[0][0];
if (data.elements.length > 1) {
this.hierarchicalStructureParentIdentifier = data.elements[1][0];
}
if (data.elements.length > 2) {
this.packagingLevelCode = data.elements[2][0];
}
}
}
exports.ConsignmentPackingSequence = ConsignmentPackingSequence;
class DepartmentOrEmployeeDetails {
constructor(data) {
this.departmentOrEmployeeNameCode = data[0];
this.departmentOrEmployeeName = data[1];
}
}
class ContactInformation {
constructor(data) {
this.tag = "CTA";
if (data.elements.length > 0) {
this.contactFunctionCode = data.elements[0][0];
}
if (data.elements.length > 1) {
this.departmentOrEmployeeDetails = new DepartmentOrEmployeeDetails(data.elements[1]);
}
}
}
exports.ContactInformation = ContactInformation;
class CurrencyDetails {
constructor(data) {
this.currencyUsageCodeQualifier = data[0];
this.currencyIdentificationCode = data[1];
this.currencyTypeCodeQualifier = data[2];
if (data.length > 3) {
this.currencyRate = parseInt(data[3]);
}
}
}
class Currencies {
constructor(data, decimalSymbol) {
this.tag = "CUX";
if (data.elements.length > 0) {
this.currencyDetails1 = new CurrencyDetails(data.elements[0]);
}
if (data.elements.length > 1) {
this.currencyDetails2 = new CurrencyDetails(data.elements[1]);
}
if (data.elements.length > 2) {
this.currencyExchangeRate = sanitizeFloat(data.elements[2][0], decimalSymbol);
}
if (data.elements.length > 3) {
this.exchangeRateCurrencyMarketIdentifier = data.elements[3][0];
}
}
}
exports.Currencies = Currencies;
class HazardCode {
constructor(data) {
this.hazardIdentificationCode = data[0];
this.additionalHazardClassificationIdentifier = data[1];
this.hazardCodeVersionIdentifier = data[2];
}
}
class UnitedNationsDagneoursGoodsInformation {
constructor(data) {
if (data.length > 0) {
this.unitedNationsangerousGoodsIdentifier = parseInt(data[0]);
}
this.dangerousGoodsFlashpointValue = data[1];
}
}
class DangerousGoodsShipmentFlashpoint {
constructor(data) {
if (data.length > 0) {
this.shipmentFlashpointValue = parseInt(data[0]);
}
this.measurementUnitCode = data[1];
}
}
class HazardIdentificationPlacardDetails {
constructor(data) {
this.orangeHazardPlacardUpperPardIdentifier = data[0];
this.orangeHazardPlacardLowerPartIdentifier = data[1];
}
}
class DangerousGoodsLabel {
constructor(data) {
this.dangerousGoodsMarkingIdentifier1 = data[0];
this.dangerousGoodsMarkingIdentifier2 = data[1];
this.dangerousGoodsMarkingIdentifier3 = data[2];
}
}
class DangerousGoods {
constructor(data) {
this.tag = "DGS";
this.dangerousGoodsRegulationsCode = data.elements[0][0];
if (data.elements.length > 1) {
this.hazardCode = new HazardCode(data.elements[1]);
}
if (data.elements.length > 2) {
this.undgInformation = new UnitedNationsDagneoursGoodsInformation(data.elements[2]);
}
if (data.elements.length > 3) {
this.dangerousGoodsShipmentFlashpoint = new DangerousGoodsShipmentFlashpoint(data.elements[3]);
}
if (data.elements.length > 4) {
this.packagingDangerLevelCode = data.elements[4][0];
}
if (data.elements.length > 5) {
this.emergencyProcedureForShipsIdentifier = data.elements[5][0];
}
if (data.elements.length > 6) {
this.hazardMedicalFirstAidGuideIdentifier = data.elements[6][0];
}
if (data.elements.length > 7) {
this.transportEmergencyCardIdentifier = data.elements[7][0];
}
if (data.elements.length > 8) {
this.hazardIdentificationPlacardDetails = new HazardIdentificationPlacardDetails(data.elements[8]);
}
if (data.elements.length > 9) {
this.dangerousGoodsLabel = new DangerousGoodsLabel(data.elements[9]);
}
if (data.elements.length > 10) {
this.packingInstructionTypeCode = data.elements[10][0];
}
if (data.elements.length > 11) {
this.hazardousMeansOfTransportCategoryCode = data.elements[11][0];
}
if (data.elements.length > 12) {
this.hazardousCargoTransportAuthorizationCode = data.elements[12][0];
}
}
}
exports.DangerousGoods = DangerousGoods;
class DeliveryLimitations {
constructor(data) {
this.tag = "DLM";
if (data.elements.length > 0) {
this.backOrderArrangementTypeCode = data.elements[0][0];
}
if (data.elements.length > 1) {
this.instruction = new Instruction(data.elements[1]);
}
if (data.elements.length > 2) {
this.specialServicesIdentification = new SpecialServicesIdentification(data.elements[2]);
}
if (data.elements.length > 3) {
this.substitutionConditionCode = data.elements[3][0];
}
}
}
exports.DeliveryLimitations = DeliveryLimitations;
class MessageSummary {
constructor(data) {
this.tag = "DMS";
if (data.elements.length > 0) {
this.messageIdentification = new MessageIdentification(data.elements[0]);
}
if (data.elements.length > 1) {
this.messageName = new MessageName(data.elements[1]);
}
if (data.elements.length > 2) {
this.itemTotalQuantity = parseInt(data.elements[2][0]);
}
}
}
exports.MessageSummary = MessageSummary;
class MessageDetailsData {
constructor(data) {
this.documentIdentifer = data[0];
this.documentStatusCode = data[1];
this.documentSourceDescription = data[2];
this.languageNameCode = data[3];
this.versionIdentifier = data[4];
this.revisionIdentifier = data[5];
}
}
class MessageDetails {
constructor(data) {
this.tag = "DOC";
this.messageName = new MessageName(data.elements[0]);
if (data.elements.length > 1) {
this.messageDetails = new MessageDetailsData(data.elements[1]);
}
if (data.elements.length > 2) {
this.communicationMediumTypeCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.documentCopiesRequiredQuantity = parseInt(data.elements[3][0]);
}
if (data.elements.length > 4) {
this.doucmentOriginalsRequiredQuantity = parseInt(data.elements[4][0]);
}
}
}
exports.MessageDetails = MessageDetails;
class DateTimePeriod {
constructor(data) {
this.tag = "DTM";
this.dateTimeOrPeriodFunctionCodeQualifier = data.elements[0][0];
if (data.elements[0].length > 1) {
this.dateTimeOrPeriodText = data.elements[0][1];
}
if (data.elements[0].length > 2) {
this.dateTimeOrPeriodFormatCode = data.elements[0][2];
}
}
}
exports.DateTimePeriod = DateTimePeriod;
class FileIdentification {
constructor(data) {
this.fileName = data[0];
this.itemDescription = data[1];
}
}
class FileDetails {
constructor(data) {
this.fileFormatName = data[0];
this.versionIdentifier = data[1];
this.dataFormatDescriptionCode = data[2];
this.dataFormatDescription = data[3];
}
}
class ExternalFileLinkIdentification {
constructor(data) {
this.tag = "EFI";
this.fileIdentification = new FileIdentification(data.elements[0]);
if (data.elements.length > 1) {
this.fileDetails = new FileDetails(data.elements[1]);
}
if (data.elements.length > 2) {
this.sequencePositionIdentifier = data.elements[2][0];
}
if (data.elements.length > 3) {
this.fileCompressionTechniqueName = data.elements[3][0];
}
}
}
exports.ExternalFileLinkIdentification = ExternalFileLinkIdentification;
class AttachedEquipment {
constructor(data) {
this.tag = "EQA";
this.equipmentTypeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.equipmentIdentification = new EquipmentIdentification(data.elements[1]);
}
}
}
exports.AttachedEquipment = AttachedEquipment;
class EquipmentIdentification {
constructor(data) {
this.equipmentIdentifier = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.countryNameCode = data[3];
}
}
class EquipmentSizeAndType {
constructor(data) {
this.equipmentSizeAndTypeDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.equipmentSizeAndTypeDescription = data[3];
}
}
class EquipmentDetails {
constructor(data) {
this.tag = "EQD";
this.equipmentTypeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.equipmentIdentification = new EquipmentIdentification(data.elements[1]);
}
if (data.elements.length > 2) {
this.equipmentSizeAndType = new EquipmentSizeAndType(data.elements[2]);
}
if (data.elements.length > 3) {
this.equipmentSupplierCode = data.elements[3][0];
}
if (data.elements.length > 4) {
this.equipmentStatusCode = data.elements[4][0];
}
if (data.elements.length > 5) {
this.fullOrEmptyIndicatorCode = data.elements[5][0];
}
}
}
exports.EquipmentDetails = EquipmentDetails;
class ApplicationErrorDetail {
constructor(data) {
this.applicationErrorCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
}
}
class ApplicationErrorInformation {
constructor(data) {
this.tag = "ERC";
this.applicationErrorDetail = new ApplicationErrorDetail(data.elements[0]);
}
}
exports.ApplicationErrorInformation = ApplicationErrorInformation;
class AccountHolderIdentification {
constructor(data) {
this.accountHolderIdentifier = data[0];
this.accountHolderName = data[1];
this.accountHolderName2 = data[2];
this.currencyIdentificationCode = data[3];
}
}
class InstitutionIdentification {
constructor(data) {
this.institutionNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.institutionBranchIdentifier = data[3];
this.codeListIdentificationCode2 = data[4];
this.codeListResponsibleAgencyCode2 = data[5];
this.institutionName = data[6];
this.institutionBranchLocationName = data[7];
}
}
class FinancialInstitutionInformation {
constructor(data) {
this.tag = "FII";
this.partyFunctionCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.accountHolderIdentification = new AccountHolderIdentification(data.elements[1]);
}
if (data.elements.length > 2) {
this.institutionIdentification = new InstitutionIdentification(data.elements[2]);
}
if (data.elements.length > 3) {
this.countryNameCode = data.elements[3][0];
}
}
}
exports.FinancialInstitutionInformation = FinancialInstitutionInformation;
class TextReference {
constructor(data) {
this.freeTextValueCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
}
}
class TextLiteral {
constructor(data) {
this.freeTextValue1 = data[0];
this.freeTextValue2 = data[1];
this.freeTextValue3 = data[2];
this.freeTextValue4 = data[3];
this.freeTextValue5 = data[4];
}
}
class FreeText {
constructor(data) {
this.tag = "FTX";
this.textSubjectCodeQualifier = data.elements[0][0];
this.freeTextFunctionCode = data.elements[1][0];
if (data.elements.length > 2) {
this.textReference = new TextReference(data.elements[2]);
}
if (data.elements.length > 3) {
this.textLiteral = new TextLiteral(data.elements[3]);
}
if (data.elements.length > 4) {
this.languageNameCode = data.elements[4][0];
}
if (data.elements.length > 5) {
this.freeTextFormatCode = data.elements[5][0];
}
}
}
exports.FreeText = FreeText;
class ProcessingIndicator {
constructor(data) {
this.processingIndicatorDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.processTypeDescriptionCode = data[3];
}
}
class ProcessingInformation {
constructor(data) {
this.tag = "GEI";
this.processingInformationCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.processingIndicator = new ProcessingIndicator(data.elements[1]);
}
if (data.elements.length > 2) {
this.processTypeDescriptionCode = data.elements[2][0];
}
}
}
exports.ProcessingInformation = ProcessingInformation;
class IdentityNumberRange {
constructor(data) {
this.objectIdentifier1 = data[0];
this.objectIdentifier2 = data[1];
}
}
class GoodsIdentityNumber {
constructor(data) {
this.tag = "GIN";
this.objectIdentificationCodeQualifier = data.elements[0][0];
this.identityNumberRange1 = new IdentityNumberRange(data.elements[1]);
if (data.elements.length > 2) {
this.identityNumberRange2 = new IdentityNumberRange(data.elements[2]);
}
if (data.elements.length > 3) {
this.identityNumberRange3 = new IdentityNumberRange(data.elements[3]);
}
if (data.elements.length > 4) {
this.identityNumberRange4 = new IdentityNumberRange(data.elements[4]);
}
if (data.elements.length > 5) {
this.identityNumberRange5 = new IdentityNumberRange(data.elements[5]);
}
}
}
exports.GoodsIdentityNumber = GoodsIdentityNumber;
class IdentificationNumber {
constructor(data) {
this.objectIdentifier = data[0];
this.objectIdentificationCodeQualifier = data[1];
this.statusDescriptionCode = data[2];
}
}
class RelatedInformationNumbers {
constructor(data) {
this.tag = "GIR";
this.setTypeCodeQualifier = data.elements[0][0];
this.identificationNumber1 = new IdentificationNumber(data.elements[1]);
if (data.elements.length > 2) {
this.identificationNumber2 = new IdentificationNumber(data.elements[2]);
}
if (data.elements.length > 3) {
this.identificationNumber3 = new IdentificationNumber(data.elements[3]);
}
if (data.elements.length > 4) {
this.identificationNumber4 = new IdentificationNumber(data.elements[4]);
}
if (data.elements.length > 5) {
this.identificationNumber5 = new IdentificationNumber(data.elements[5]);
}
}
}
exports.RelatedInformationNumbers = RelatedInformationNumbers;
class GeneralIndicator {
constructor(data) {
this.tag = "GIS";
this.processingIndicator = new ProcessingIndicator(data.elements[0]);
}
}
exports.GeneralIndicator = GeneralIndicator;
class HandlingInstructionsData {
constructor(data) {
this.handlingInstructionDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.handlingInstructionDescription = data[3];
}
}
class HazardousMaterial {
constructor(data) {
this.hazardousMaterialCategoryNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.hazardousMaterialCategoryName = data[3];
}
}
class HandlingInstructions {
constructor(data) {
this.tag = "HAN";
if (data.elements.length > 0) {
this.handlingInstructions = new HandlingInstructionsData(data.elements[0]);
}
if (data.elements.length > 1) {
this.hazardousMaterial = new HazardousMaterial(data.elements[1]);
}
}
}
exports.HandlingInstructions = HandlingInstructions;
class HierarchyInformation {
constructor(data) {
this.tag = "HYN";
this.hierarchyObjectCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.hierarchicalStructureRelationshipCode = data.elements[1][0];
}
if (data.elements.length > 2) {
this.actionCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.itemNumberIdentification = new ItemNumberIdentification(data.elements[3]);
}
if (data.elements.length > 4) {
this.hierarchicalStructureParentIdentifier = data.elements[4][0];
}
}
}
exports.HierarchyInformation = HierarchyInformation;
class PositionIdentification {
constructor(data) {
this.hierarchicalStructureLevelIdentifier = data[0];
this.sequencePositionIdentifier = data[1];
}
}
class Identity {
constructor(data) {
this.tag = "IDE";
this.objectTypeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.identificationNumber = new IdentificationNumber(data.elements[1]);
}
if (data.elements.length > 2) {
this.partyIdentificationDetails = new PartyIdentificationDetails(data.elements[2]);
}
if (data.elements.length > 3) {
this.statusDescriptionCode = data.elements[3][0];
}
if (data.elements.length > 4) {
this.configurationLevelNumber = parseInt(data.elements[4][0]);
}
if (data.elements.length > 5) {
this.positionIdentification = new PositionIdentification(data.elements[5]);
}
if (data.elements.length > 6) {
this.characteristicDescription = new CharacteristicDescription(data.elements[6]);
}
}
}
exports.Identity = Identity;
class ItemCharacteristic {
constructor(data) {
this.itemCharacteristicCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
}
}
class ItemDescriptionData {
constructor(data) {
this.itemDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.itemDescription = data[3];
this.itemDescription2 = data[4];
this.languageNameCode = data[5];
}
}
class ItemDescription {
constructor(data) {
this.tag = "IMD";
if (data.elements.length > 0) {
this.descriptionFormatCode = data.elements[0][0];
}
if (data.elements.length > 1) {
this.itemCharacteristic = new ItemCharacteristic(data.elements[1]);
}
if (data.elements.length > 2) {
this.itemDescription = new ItemDescriptionData(data.elements[2]);
}
if (data.elements.length > 3) {
this.surfaceOrLayerCode = data.elements[3][0];
}
}
}
exports.ItemDescription = ItemDescription;
class PartiesToInstruction {
constructor(data) {
this.enactingPartyIdentifier = data[0];
this.instructionReceivingPartyIdentifier = data[1];
}
}
class Instruction {
constructor(data) {
this.instructionTypeCodeQualifier = data[0];
this.instructionDescriptionCode = data[1];
this.codeListIdentificationCode = data[2];
this.codeListResponsibleAgencyCode = data[3];
this.instructionDescription = data[4];
}
}
class StatusOfInstruction {
constructor(data) {
this.statusDescriptionCode = data[0];
this.partyName = data[1];
}
}
class PartiesAndInstruction {
constructor(data) {
this.tag = "INP";
if (data.elements.length > 0) {
this.partiesToInstruction = new PartiesToInstruction(data.elements[0]);
}
if (data.elements.length > 1) {
this.instruction = new Instruction(data.elements[1]);
}
if (data.elements.length > 2) {
this.statusOfInstruction = new StatusOfInstruction(data.elements[2]);
}
if (data.elements.length > 3) {
this.actionRequestNotificationDescriptionCode = data.elements[3][0];
}
}
}
exports.PartiesAndInstruction = PartiesAndInstruction;
class InformationRequest {
constructor(data) {
this.requestInformationDescriptionCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.requestInformationDescription = data[3];
}
}
class InformationRequired {
constructor(data) {
this.tag = "IRQ";
this.informationRequest = new InformationRequest(data.elements[0]);
}
}
exports.InformationRequired = InformationRequired;
class ItemNumberIdentification {
constructor(data) {
this.itemIdentifier = data[0];
this.itemTypeIdentificationCode = data[1];
this.codeListIdentificationCode = data[2];
this.codeListResponsibleAgencyCode = data[3];
}
}
class SubLineInformation {
constructor(data) {
this.subLineIndicatorCode = data[0];
this.lineItemIdentifier = data[1];
}
}
class LineItem {
constructor(data) {
this.tag = "LIN";
if (data.elements.length > 0) {
this.lineItemIdendifier = data.elements[0][0];
}
if (data.elements.length > 1) {
this.actionRequestNotificationDescriptionCode = data.elements[1][0];
}
if (data.elements.length > 2) {
this.itemNumberIdentification = new ItemNumberIdentification(data.elements[2]);
}
if (data.elements.length > 3) {
this.subLineInformatin = new SubLineInformation(data.elements[3]);
}
if (data.elements.length > 4) {
this.configurationLevelNumber = parseInt(data.elements[4][0]);
}
if (data.elements.length > 5) {
this.configurationOperationCode = data.elements[5][0];
}
}
}
exports.LineItem = LineItem;
class LocationIdentificationData {
constructor(data) {
this.locationNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.locationName = data[3];
}
}
class RelatedLocationOneIdentification {
constructor(data) {
this.firstRelatedLocationNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.firstRelatedLocationName = data[3];
}
}
class RelatedLocationTwoIdentification {
constructor(data) {
this.secondRelatedLocationNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.secondRelatedLocationName = data[3];
}
}
class LocationIdentification {
constructor(data) {
this.tag = "LOC";
this.locationFunctionCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.locationIdentification = new LocationIdentificationData(data.elements[1]);
}
if (data.elements.length > 2) {
this.relatedLocationOneIdentification = new RelatedLocationOneIdentification(data.elements[2]);
}
if (data.elements.length > 3) {
this.relatedLocationTwoIdentification = new RelatedLocationTwoIdentification(data.elements[3]);
}
if (data.elements.length > 4) {
this.relationCode = data.elements[4][0];
}
}
}
exports.LocationIdentification = LocationIdentification;
class MeasurementDetails {
constructor(data) {
this.measuredAttributeCode = data[0];
this.measurementSignificanceCode = data[1];
this.nonDiscreteMeasurementNameCode = data[2];
this.nonDiscreteMeasurementName = data[3];
}
}
class ValueRange {
constructor(data) {
this.measurementUnitCode = data[0];
this.measure = data[1];
if (data.length > 2) {
this.rangeMinimumQuantity = parseInt(data[2]);
}
if (data.length > 3) {
this.rangeMaximumQuantity = parseInt(data[3]);
}
if (data.length > 4) {
this.significantDigitsQuantity = parseInt(data[4]);
}
}
}
class Measurements {
constructor(data) {
this.tag = "MEA";
this.measurementPurposeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.measurementDetails = new MeasurementDetails(data.elements[1]);
}
if (data.elements.length > 2) {
this.valueRange = new ValueRange(data.elements[2]);
}
if (data.elements.length > 3) {
this.surfaceOrLayerCode = data.elements[3][0];
}
}
}
exports.Measurements = Measurements;
class MonetaryAmountData {
constructor(data, decimalSeparator) {
this.monetaryAmountTypeCodeQualifier = data[0];
if (data.length > 1) {
this.monetaryAmount = sanitizeFloat(data[1], decimalSeparator);
}
this.currencyIdentificationCode = data[2];
this.currencyTypeCodeQualifier = data[3];
this.statusDescriptionCode = data[4];
}
}
class MonetaryAmount {
constructor(data, decimalSeparator) {
this.tag = "MOA";
this.monetaryAmount = new MonetaryAmountData(data.elements[0], decimalSeparator);
}
}
exports.MonetaryAmount = MonetaryAmount;
class MaintenanceOperationDetails {
constructor(data) {
this.tag = "MTD";
this.objectTypeCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.maintenanceOperationCode = data.elements[1][0];
}
if (data.elements.length > 2) {
this.maintenanceOperationOperatorCode = data.elements[2][0];
}
if (data.elements.length > 3) {
this.maintenanceOperationPayerCode = data.elements[3][0];
}
}
}
exports.MaintenanceOperationDetails = MaintenanceOperationDetails;
class PartyIdentificationDetails {
constructor(data) {
this.partyIdentifier = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
}
}
class NameAndAddressData {
constructor(data) {
this.nameAndAddressDescription1 = data[0];
this.nameAndAddressDescription2 = data[1];
this.nameAndAddressDescription3 = data[2];
this.nameAndAddressDescription4 = data[3];
this.nameAndAddressDescription5 = data[4];
}
}
class PartyName {
constructor(data) {
this.partyName1 = data[0];
this.partyName2 = data[1];
this.partyName3 = data[2];
this.partyName4 = data[3];
this.partyName5 = data[4];
this.partyNameFormatCode = data[5];
}
}
class Street {
constructor(data) {
this.streetAndNumberOrPostOfficeBoxIdentifier1 = data[0];
this.streetAndNumberOrPostOfficeBoxIdentifier2 = data[0];
this.streetAndNumberOrPostOfficeBoxIdentifier3 = data[0];
this.streetAndNumberOrPostOfficeBoxIdentifier4 = data[0];
}
}
class CountrySubEntityDetails {
constructor(data) {
this.countrySubEntityNameCode = data[0];
this.codeListIdentificationCode = data[1];
this.codeListResponsibleAgencyCode = data[2];
this.countrySubEntityName = data[3];
}
}
class NameAndAddress {
constructor(data) {
this.tag = "NAD";
this.partyFunctionCodeQualifier = data.elements[0][0];
if (data.elements.length > 1) {
this.partyIdentificationDetails = new PartyIdentificationDetails(data.elements[1]);
}
if (data.elements.length > 2) {
this.nameAndAddress = new NameAndAddressData(data.elements[2]);
}
if (data.elements.length > 3) {
this.partyName = new PartyName(data.elements[3]);
}
if (data.elements.length > 4) {
this.street = new Street(data.elements[4]);
}
if (data.elements.length > 5) {
this.cityName = data.elements[5][0];
}
if (data.elements.length > 6) {
this.countrySubEntityDetails = new CountrySubEntityDetails(data.elements[6]);
}
if (data.elements.length > 7) {
this.postalIdentificationCode = data.elements[7][0];
}
if (data.elements.length > 8) {
this.count