UNPKG

myinvois-sdk

Version:

TypeScript SDK for interacting with the Malaysia e-invoicing system (MyInvois) API

71 lines (70 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SignedInvoice = void 0; const base_model_1 = require("./base-model"); /** * Represents a signed invoice */ class SignedInvoice extends base_model_1.BaseModel { /** * Creates a new signed invoice * @param invoice The invoice to sign * @param signatureInfo The signature information */ constructor(invoice, signatureInfo) { super(); this._invoice = invoice; this._signatureInfo = signatureInfo; } // Getter for invoice get invoice() { return this._invoice; } // Getter for signatureInfo get signatureInfo() { return this._signatureInfo; } /** * Converts the signed invoice to a JSON representation */ toJSON() { const invoiceJSON = this._invoice.toJSON(); // Add UBLExtensions and Signature to the invoice invoiceJSON.Invoice[0].UBLExtensions = [ { "UBLExtension": [ { "ExtensionURI": [ { "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" } ], "ExtensionContent": [ { "UBLDocumentSignatures": [ this._signatureInfo.toJSON() ] } ] } ] } ]; invoiceJSON.Invoice[0].Signature = [ { "ID": [ { "_": "urn:oasis:names:specification:ubl:signature:Invoice" } ], "SignatureMethod": [ { "_": "urn:oasis:names:specification:ubl:dsig:enveloped:xades" } ] } ]; return invoiceJSON; } } exports.SignedInvoice = SignedInvoice;