{"version":3,"sources":["../src/httpClient.ts","../src/multipart.ts","../src/models.ts","../src/api.ts","../src/JWTAuth.ts","../src/Configuration.ts"],"sourcesContent":["import http from 'http';\nimport https from 'https';\nimport { ApiErrorResponse } from './models';\n\nexport interface StringKeyWithStringValue {\n    [key: string]: string;\n}\n\nexport interface HttpOptions {\n    uri: string;\n    body?: any;\n    encoding?: BufferEncoding | null;\n    form?: StringKeyWithStringValue;\n    headers?: StringKeyWithStringValue;\n    json?: boolean;\n    method?: string;\n    qs?: StringKeyWithStringValue;\n}\n\nexport interface HttpResponse {\n    statusCode: number;\n    statusMessage: string;\n    headers: NodeJS.Dict<string | string[]>;\n    body: any;\n}\n\nexport interface HttpResult {\n    response: HttpResponse;\n    body: any;\n}\n\nexport interface HttpRejectType {\n    response: HttpResponse | null;\n    errorResponse: ApiErrorResponse | null;\n    error: Error;\n}\n\nexport class HttpClient {\n    public requestAsync(options: HttpOptions): Promise<HttpResult> {\n        const url: URL = options.qs\n            ? new URL(`?${new URLSearchParams(options.qs).toString()}`, options.uri)\n            : new URL(options.uri);\n\n        const requestBody = this.buildRequestBody(options);\n\n        const requestOptions: http.RequestOptions = {\n            method: options.method,\n            headers: options.headers,\n        };\n\n        const responseEncoding: BufferEncoding | null = options.encoding === null ? null : options.encoding || 'utf-8';\n\n        return this.doHttpRequest(url, requestBody, requestOptions, responseEncoding);\n    }\n\n    private buildRequestBody(options: HttpOptions) {\n        let requestBody = options.body;\n        if (options.form) {\n            // Override requestBody for form with form content\n            requestBody = new URLSearchParams(options.form).toString();\n            options.headers = Object.assign(\n                {\n                    'Content-Type': 'application/x-www-form-urlencoded',\n                },\n                options.headers\n            );\n        }\n        if (options.json) {\n            // Override requestBody with JSON value\n            requestBody = JSON.stringify(options.body);\n            options.headers = Object.assign(\n                {\n                    'Content-Type': 'application/json',\n                },\n                options.headers\n            );\n        }\n        return requestBody;\n    }\n\n    private doHttpRequest(\n        url: URL,\n        requestBody: any,\n        requestOptions: http.RequestOptions,\n        responseEncoding: BufferEncoding | null\n    ): Promise<HttpResult> {\n        return new Promise((resolve, reject: (result: HttpRejectType) => void) => {\n            function requestCallback(res: http.IncomingMessage) {\n                if (responseEncoding) {\n                    // encoding = null for binary responses\n                    res.setEncoding(responseEncoding);\n                }\n                const chunks: any[] | Uint8Array[] = [];\n\n                res.on('data', (chunk) => {\n                    chunks.push(chunk);\n                });\n\n                res.on('end', () => {\n                    const respBody = responseEncoding ? chunks.join('') : Buffer.concat(chunks);\n\n                    const response: HttpResponse = {\n                        statusCode: res.statusCode!,\n                        statusMessage: res.statusMessage!,\n                        headers: res.headers,\n                        body: respBody,\n                    };\n\n                    if (response.statusCode >= 200 && response.statusCode <= 299) {\n                        resolve({\n                            response: response,\n                            body: respBody,\n                        });\n                    } else {\n                        var rejectObject: HttpRejectType = {\n                            response: response,\n                            error: new Error(`Error on '${url}': ${res.statusCode} ${res.statusMessage}`),\n                            errorResponse: null,\n                        };\n                        var errorResponse = null;\n                        try {\n                            errorResponse = JSON.parse(respBody.toString()) as ApiErrorResponse;\n                        } catch (parseError) {}\n\n                        if (errorResponse) {\n                            rejectObject.errorResponse = errorResponse;\n                        } else {\n                            rejectObject.error.message += `. ${respBody}`;\n                        }\n                        reject(rejectObject);\n                    }\n                });\n            }\n\n            const req =\n                url.protocol === 'http:'\n                    ? http.request(url, requestOptions, requestCallback)\n                    : https.request(url, requestOptions, requestCallback);\n\n            req.on('error', (error) => {\n                reject({\n                    response: null,\n                    error: error,\n                    errorResponse: null,\n                });\n            });\n\n            if (requestBody) {\n                req.write(requestBody);\n            }\n\n            req.end();\n        });\n    }\n}\n","import crypto from 'crypto';\nimport { StringKeyWithStringValue } from 'httpClient';\n\nexport interface FormParamsType extends Array<Array<string>> {}\n\ninterface IRequestFile {\n    name: string;\n    filename: string;\n    data: Buffer;\n    contentType?: string;\n}\n\nexport class RequestFile implements IRequestFile {\n    constructor(\n        readonly name: string,\n        readonly filename: string,\n        readonly data: Buffer,\n        readonly contentType?: string\n    ) {}\n}\n\nexport class Multipart {\n    readonly boundary: string;\n    readonly body: Buffer;\n    readonly headers: StringKeyWithStringValue;\n\n    constructor(textFields: FormParamsType, files?: IRequestFile[]) {\n        const random = crypto.randomUUID();\n        this.boundary = '------------------------' + random.replace(/-/g, '');\n\n        const bodyLines = [];\n        for (const tuple of textFields) {\n            bodyLines.push(`--${this.boundary}`);\n            bodyLines.push(`Content-Disposition: form-data; name=\"${tuple[0]}\"`);\n            bodyLines.push('');\n            bodyLines.push(tuple[1]);\n        }\n        for (const file of files || []) {\n            bodyLines.push(`--${this.boundary}`);\n            bodyLines.push(\n                `Content-Disposition: form-data; name=\"${file.name}\"; filename=\"${file.filename || 'filename'}\"`\n            );\n            bodyLines.push(`Content-Type: ${file.contentType || 'application/octet-stream'}`);\n            bodyLines.push('');\n            bodyLines.push(file.data.toString('binary'));\n        }\n        bodyLines.push(`--${this.boundary}--`);\n\n        this.body = Buffer.from(bodyLines.join('\\r\\n'), 'binary');\n\n        this.headers = {\n            'Content-Type': `multipart/form-data; boundary=${this.boundary}`,\n            'Content-Length': this.body.length.toString(),\n        };\n    }\n}\n","/**\n * Api Error.\n */\nexport class ApiError {\n    /**\n     * Gets or sets api error code.\n     */\n    'code': string;\n    /**\n     * Gets or sets error message.\n     */\n    'message': string;\n    /**\n     * Gets or sets error description.\n     */\n    'description'?: string;\n    /**\n     * Gets or sets server datetime.\n     */\n    'dateTime'?: Date;\n    'innerError'?: ApiError;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'code',\n            baseName: 'code',\n            type: 'string',\n        },\n        {\n            name: 'message',\n            baseName: 'message',\n            type: 'string',\n        },\n        {\n            name: 'description',\n            baseName: 'description',\n            type: 'string',\n        },\n        {\n            name: 'dateTime',\n            baseName: 'dateTime',\n            type: 'Date',\n        },\n        {\n            name: 'innerError',\n            baseName: 'innerError',\n            type: 'ApiError',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return ApiError.attributeTypeMap;\n    }\n}\n\n/**\n * ApiError Response\n */\nexport class ApiErrorResponse {\n    /**\n     * Gets or sets request Id.\n     */\n    'requestId': string;\n    'error': ApiError;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'requestId',\n            baseName: 'requestId',\n            type: 'string',\n        },\n        {\n            name: 'error',\n            baseName: 'error',\n            type: 'ApiError',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return ApiErrorResponse.attributeTypeMap;\n    }\n}\n\n/**\n * Specifies the file format of the image.\n */\nexport enum BarcodeImageFormat {\n    Png = 'Png',\n    Jpeg = 'Jpeg',\n    Svg = 'Svg',\n    Tiff = 'Tiff',\n    Gif = 'Gif',\n}\n\n/**\n * Barcode image optional parameters\n */\nexport class BarcodeImageParams {\n    'imageFormat'?: BarcodeImageFormat;\n    'textLocation'?: CodeLocation;\n    /**\n     * Specify the displaying bars and content Color.  Value: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.  For example: AliceBlue or #FF000000  Default value: Black.\n     */\n    'foregroundColor'?: string;\n    /**\n     * Background color of the barcode image.  Value: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.  For example: AliceBlue or #FF000000  Default value: White.\n     */\n    'backgroundColor'?: string;\n    'units'?: GraphicsUnit;\n    /**\n     * Resolution of the BarCode image.  One value for both dimensions.  Default value: 96 dpi.  Decimal separator is dot.\n     */\n    'resolution'?: number;\n    /**\n     * Height of the barcode image in given units. Default units: pixel.  Decimal separator is dot.\n     */\n    'imageHeight'?: number;\n    /**\n     * Width of the barcode image in given units. Default units: pixel.  Decimal separator is dot.\n     */\n    'imageWidth'?: number;\n    /**\n     * BarCode image rotation angle, measured in degree, e.g. RotationAngle = 0 or RotationAngle = 360 means no rotation.  If RotationAngle NOT equal to 90, 180, 270 or 0, it may increase the difficulty for the scanner to read the image.  Default value: 0.\n     */\n    'rotationAngle'?: number;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'imageFormat',\n            baseName: 'imageFormat',\n            type: 'BarcodeImageFormat',\n        },\n        {\n            name: 'textLocation',\n            baseName: 'textLocation',\n            type: 'CodeLocation',\n        },\n        {\n            name: 'foregroundColor',\n            baseName: 'foregroundColor',\n            type: 'string',\n        },\n        {\n            name: 'backgroundColor',\n            baseName: 'backgroundColor',\n            type: 'string',\n        },\n        {\n            name: 'units',\n            baseName: 'units',\n            type: 'GraphicsUnit',\n        },\n        {\n            name: 'resolution',\n            baseName: 'resolution',\n            type: 'number',\n        },\n        {\n            name: 'imageHeight',\n            baseName: 'imageHeight',\n            type: 'number',\n        },\n        {\n            name: 'imageWidth',\n            baseName: 'imageWidth',\n            type: 'number',\n        },\n        {\n            name: 'rotationAngle',\n            baseName: 'rotationAngle',\n            type: 'number',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return BarcodeImageParams.attributeTypeMap;\n    }\n}\n\n/**\n * Represents information about barcode.\n */\nexport class BarcodeResponse {\n    /**\n     * Barcode data.\n     */\n    'barcodeValue'?: string;\n    /**\n     * Type of the barcode.\n     */\n    'type'?: string;\n    /**\n     * Region with barcode.\n     */\n    'region'?: Array<RegionPoint>;\n    /**\n     * Checksum of barcode.\n     */\n    'checksum'?: string;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'barcodeValue',\n            baseName: 'barcodeValue',\n            type: 'string',\n        },\n        {\n            name: 'type',\n            baseName: 'type',\n            type: 'string',\n        },\n        {\n            name: 'region',\n            baseName: 'region',\n            type: 'Array<RegionPoint>',\n        },\n        {\n            name: 'checksum',\n            baseName: 'checksum',\n            type: 'string',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return BarcodeResponse.attributeTypeMap;\n    }\n}\n\n/**\n * Represents information about barcode list.\n */\nexport class BarcodeResponseList {\n    /**\n     * List of barcodes which are present in image.\n     */\n    'barcodes': Array<BarcodeResponse>;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'barcodes',\n            baseName: 'barcodes',\n            type: 'Array<BarcodeResponse>',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return BarcodeResponseList.attributeTypeMap;\n    }\n}\nexport enum CodeLocation {\n    Below = 'Below',\n    Above = 'Above',\n    None = 'None',\n}\n\n/**\n * See Aspose.BarCode.Aspose.BarCode.BarCodeRecognition.DecodeType\n */\nexport enum DecodeBarcodeType {\n    MostCommonlyUsed = 'MostCommonlyUsed',\n    Qr = 'QR',\n    AustraliaPost = 'AustraliaPost',\n    AustralianPosteParcel = 'AustralianPosteParcel',\n    Aztec = 'Aztec',\n    Codabar = 'Codabar',\n    CodablockF = 'CodablockF',\n    Code11 = 'Code11',\n    Code128 = 'Code128',\n    Code16K = 'Code16K',\n    Code32 = 'Code32',\n    Code39 = 'Code39',\n    Code39FullAscii = 'Code39FullASCII',\n    Code93 = 'Code93',\n    CompactPdf417 = 'CompactPdf417',\n    DataLogic2of5 = 'DataLogic2of5',\n    DataMatrix = 'DataMatrix',\n    DatabarExpanded = 'DatabarExpanded',\n    DatabarExpandedStacked = 'DatabarExpandedStacked',\n    DatabarLimited = 'DatabarLimited',\n    DatabarOmniDirectional = 'DatabarOmniDirectional',\n    DatabarStacked = 'DatabarStacked',\n    DatabarStackedOmniDirectional = 'DatabarStackedOmniDirectional',\n    DatabarTruncated = 'DatabarTruncated',\n    DeutschePostIdentcode = 'DeutschePostIdentcode',\n    DeutschePostLeitcode = 'DeutschePostLeitcode',\n    DotCode = 'DotCode',\n    DutchKix = 'DutchKIX',\n    Ean13 = 'EAN13',\n    Ean14 = 'EAN14',\n    Ean8 = 'EAN8',\n    Gs1Aztec = 'GS1Aztec',\n    Gs1Code128 = 'GS1Code128',\n    Gs1CompositeBar = 'GS1CompositeBar',\n    Gs1DataMatrix = 'GS1DataMatrix',\n    Gs1DotCode = 'GS1DotCode',\n    Gs1HanXin = 'GS1HanXin',\n    Gs1MicroPdf417 = 'GS1MicroPdf417',\n    Gs1Qr = 'GS1QR',\n    HanXin = 'HanXin',\n    HibcAztecLic = 'HIBCAztecLIC',\n    HibcAztecPas = 'HIBCAztecPAS',\n    HibcCode128Lic = 'HIBCCode128LIC',\n    HibcCode128Pas = 'HIBCCode128PAS',\n    HibcCode39Lic = 'HIBCCode39LIC',\n    HibcCode39Pas = 'HIBCCode39PAS',\n    HibcDataMatrixLic = 'HIBCDataMatrixLIC',\n    HibcDataMatrixPas = 'HIBCDataMatrixPAS',\n    Hibcqrlic = 'HIBCQRLIC',\n    Hibcqrpas = 'HIBCQRPAS',\n    Iata2of5 = 'IATA2of5',\n    Isbn = 'ISBN',\n    Ismn = 'ISMN',\n    Issn = 'ISSN',\n    Itf14 = 'ITF14',\n    Itf6 = 'ITF6',\n    Interleaved2of5 = 'Interleaved2of5',\n    ItalianPost25 = 'ItalianPost25',\n    MacroPdf417 = 'MacroPdf417',\n    Mailmark = 'Mailmark',\n    Matrix2of5 = 'Matrix2of5',\n    MaxiCode = 'MaxiCode',\n    MicrE13B = 'MicrE13B',\n    MicroPdf417 = 'MicroPdf417',\n    MicroQr = 'MicroQR',\n    Msi = 'MSI',\n    OneCode = 'OneCode',\n    Opc = 'OPC',\n    PatchCode = 'PatchCode',\n    Pdf417 = 'Pdf417',\n    Pharmacode = 'Pharmacode',\n    Planet = 'Planet',\n    Postnet = 'Postnet',\n    Pzn = 'PZN',\n    RectMicroQr = 'RectMicroQR',\n    Rm4Scc = 'RM4SCC',\n    Scc14 = 'SCC14',\n    Sscc18 = 'SSCC18',\n    Standard2of5 = 'Standard2of5',\n    Supplement = 'Supplement',\n    SwissPostParcel = 'SwissPostParcel',\n    Upca = 'UPCA',\n    Upce = 'UPCE',\n    Vin = 'VIN',\n}\n\n/**\n * See Aspose.BarCode.Generation.EncodeTypes\n */\nexport enum EncodeBarcodeType {\n    Qr = 'QR',\n    AustraliaPost = 'AustraliaPost',\n    AustralianPosteParcel = 'AustralianPosteParcel',\n    Aztec = 'Aztec',\n    Codabar = 'Codabar',\n    CodablockF = 'CodablockF',\n    Code11 = 'Code11',\n    Code128 = 'Code128',\n    Code16K = 'Code16K',\n    Code32 = 'Code32',\n    Code39 = 'Code39',\n    Code39FullAscii = 'Code39FullASCII',\n    Code93 = 'Code93',\n    DataLogic2of5 = 'DataLogic2of5',\n    DataMatrix = 'DataMatrix',\n    DatabarExpanded = 'DatabarExpanded',\n    DatabarExpandedStacked = 'DatabarExpandedStacked',\n    DatabarLimited = 'DatabarLimited',\n    DatabarOmniDirectional = 'DatabarOmniDirectional',\n    DatabarStacked = 'DatabarStacked',\n    DatabarStackedOmniDirectional = 'DatabarStackedOmniDirectional',\n    DatabarTruncated = 'DatabarTruncated',\n    DeutschePostIdentcode = 'DeutschePostIdentcode',\n    DeutschePostLeitcode = 'DeutschePostLeitcode',\n    DotCode = 'DotCode',\n    DutchKix = 'DutchKIX',\n    Ean13 = 'EAN13',\n    Ean14 = 'EAN14',\n    Ean8 = 'EAN8',\n    Gs1Aztec = 'GS1Aztec',\n    Gs1CodablockF = 'GS1CodablockF',\n    Gs1Code128 = 'GS1Code128',\n    Gs1DataMatrix = 'GS1DataMatrix',\n    Gs1DotCode = 'GS1DotCode',\n    Gs1HanXin = 'GS1HanXin',\n    Gs1MicroPdf417 = 'GS1MicroPdf417',\n    Gs1Qr = 'GS1QR',\n    HanXin = 'HanXin',\n    Iata2of5 = 'IATA2of5',\n    Isbn = 'ISBN',\n    Ismn = 'ISMN',\n    Issn = 'ISSN',\n    Itf14 = 'ITF14',\n    Itf6 = 'ITF6',\n    Interleaved2of5 = 'Interleaved2of5',\n    ItalianPost25 = 'ItalianPost25',\n    Msi = 'MSI',\n    MacroPdf417 = 'MacroPdf417',\n    Mailmark = 'Mailmark',\n    Matrix2of5 = 'Matrix2of5',\n    MaxiCode = 'MaxiCode',\n    MicroPdf417 = 'MicroPdf417',\n    MicroQr = 'MicroQR',\n    Opc = 'OPC',\n    OneCode = 'OneCode',\n    Pzn = 'PZN',\n    PatchCode = 'PatchCode',\n    Pdf417 = 'Pdf417',\n    Pharmacode = 'Pharmacode',\n    Planet = 'Planet',\n    Postnet = 'Postnet',\n    Rm4Scc = 'RM4SCC',\n    RectMicroQr = 'RectMicroQR',\n    Scc14 = 'SCC14',\n    Sscc18 = 'SSCC18',\n    SingaporePost = 'SingaporePost',\n    Standard2of5 = 'Standard2of5',\n    SwissPostParcel = 'SwissPostParcel',\n    Upca = 'UPCA',\n    Upce = 'UPCE',\n    UpcaGs1Code128Coupon = 'UpcaGs1Code128Coupon',\n    UpcaGs1DatabarCoupon = 'UpcaGs1DatabarCoupon',\n    Vin = 'VIN',\n}\n\n/**\n * Data to encode in barcode\n */\nexport class EncodeData {\n    'dataType'?: EncodeDataType;\n    /**\n     * String represents data to encode\n     */\n    'data': string;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'dataType',\n            baseName: 'dataType',\n            type: 'EncodeDataType',\n        },\n        {\n            name: 'data',\n            baseName: 'data',\n            type: 'string',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return EncodeData.attributeTypeMap;\n    }\n}\n\n/**\n * Types of data can be encoded to barcode\n */\nexport enum EncodeDataType {\n    StringData = 'StringData',\n    Base64Bytes = 'Base64Bytes',\n    HexBytes = 'HexBytes',\n}\n\n/**\n * Barcode generation parameters\n */\nexport class GenerateParams {\n    'barcodeType': EncodeBarcodeType;\n    'encodeData': EncodeData;\n    'barcodeImageParams'?: BarcodeImageParams;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'barcodeType',\n            baseName: 'barcodeType',\n            type: 'EncodeBarcodeType',\n        },\n        {\n            name: 'encodeData',\n            baseName: 'encodeData',\n            type: 'EncodeData',\n        },\n        {\n            name: 'barcodeImageParams',\n            baseName: 'barcodeImageParams',\n            type: 'BarcodeImageParams',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return GenerateParams.attributeTypeMap;\n    }\n}\n\n/**\n * Subset of Aspose.Drawing.GraphicsUnit.\n */\nexport enum GraphicsUnit {\n    Pixel = 'Pixel',\n    Point = 'Point',\n    Inch = 'Inch',\n    Millimeter = 'Millimeter',\n}\n\n/**\n * Kind of image to recognize\n */\nexport enum RecognitionImageKind {\n    Photo = 'Photo',\n    ScannedDocument = 'ScannedDocument',\n    ClearImage = 'ClearImage',\n}\n\n/**\n * Recognition mode.\n */\nexport enum RecognitionMode {\n    Fast = 'Fast',\n    Normal = 'Normal',\n    Excellent = 'Excellent',\n}\n\n/**\n * Barcode recognize request\n */\nexport class RecognizeBase64Request {\n    /**\n     * Array of decode types to find on barcode\n     */\n    'barcodeTypes': Array<DecodeBarcodeType>;\n    /**\n     * Barcode image bytes encoded as base-64.\n     */\n    'fileBase64': string;\n    'recognitionMode'?: RecognitionMode;\n    'recognitionImageKind'?: RecognitionImageKind;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'barcodeTypes',\n            baseName: 'barcodeTypes',\n            type: 'Array<DecodeBarcodeType>',\n        },\n        {\n            name: 'fileBase64',\n            baseName: 'fileBase64',\n            type: 'string',\n        },\n        {\n            name: 'recognitionMode',\n            baseName: 'recognitionMode',\n            type: 'RecognitionMode',\n        },\n        {\n            name: 'recognitionImageKind',\n            baseName: 'recognitionImageKind',\n            type: 'RecognitionImageKind',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return RecognizeBase64Request.attributeTypeMap;\n    }\n}\n\n/**\n * Wrapper around Drawing.Point for proper specification.\n */\nexport class RegionPoint {\n    /**\n     * X-coordinate\n     */\n    'x'?: number;\n    /**\n     * Y-coordinate\n     */\n    'y'?: number;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'x',\n            baseName: 'x',\n            type: 'number',\n        },\n        {\n            name: 'y',\n            baseName: 'y',\n            type: 'number',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return RegionPoint.attributeTypeMap;\n    }\n}\n\n/**\n * Scan barcode request.\n */\nexport class ScanBase64Request {\n    /**\n     * Barcode image bytes encoded as base-64.\n     */\n    'fileBase64': string;\n\n    static attributeTypeMap: Array<{ name: string; baseName: string; type: string }> = [\n        {\n            name: 'fileBase64',\n            baseName: 'fileBase64',\n            type: 'string',\n        },\n    ];\n\n    static getAttributeTypeMap() {\n        return ScanBase64Request.attributeTypeMap;\n    }\n}\n\n// GenerateApi\n\n/**\n * Generate barcode using GET request with parameters in route and query string.\n */\nexport class GenerateRequestWrapper {\n    /**\n     * Type of barcode to generate.\n     */\n    'barcodeType': EncodeBarcodeType;\n    /**\n     * String represents data to encode\n     */\n    'data': string;\n    /**\n     * Type of data to encode.\nDefault value: StringData.\n     */\n    'dataType'?: EncodeDataType;\n    /**\n     * Barcode output image format.\nDefault value: png\n     */\n    'imageFormat'?: BarcodeImageFormat;\n    /**\n     * Specify the displaying Text Location, set to CodeLocation.None to hide CodeText.\nDefault value: Depends on BarcodeType. CodeLocation.Below for 1D Barcodes. CodeLocation.None for 2D Barcodes.\n     */\n    'textLocation'?: CodeLocation;\n    /**\n     * Specify the displaying bars and content Color.\nValue: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.\nFor example: AliceBlue or #FF000000\nDefault value: Black.\n     */\n    'foregroundColor'?: string = \"'Black'\";\n    /**\n     * Background color of the barcode image.\nValue: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.\nFor example: AliceBlue or #FF000000\nDefault value: White.\n     */\n    'backgroundColor'?: string = \"'White'\";\n    /**\n     * Common Units for all measuring in query. Default units: pixel.\n     */\n    'units'?: GraphicsUnit;\n    /**\n     * Resolution of the BarCode image.\nOne value for both dimensions.\nDefault value: 96 dpi.\nDecimal separator is dot.\n     */\n    'resolution'?: number;\n    /**\n     * Height of the barcode image in given units. Default units: pixel.\nDecimal separator is dot.\n     */\n    'imageHeight'?: number;\n    /**\n     * Width of the barcode image in given units. Default units: pixel.\nDecimal separator is dot.\n     */\n    'imageWidth'?: number;\n    /**\n     * BarCode image rotation angle, measured in degree, e.g. RotationAngle = 0 or RotationAngle = 360 means no rotation.\nIf RotationAngle NOT equal to 90, 180, 270 or 0, it may increase the difficulty for the scanner to read the image.\nDefault value: 0.\n     */\n    'rotationAngle'?: number;\n\n    /**\n     * @param barcodeType Type of barcode to generate.\n     \n     * @param data String represents data to encode\n     */\n    constructor(barcodeType: EncodeBarcodeType, data: string) {\n        this.barcodeType = barcodeType;\n        this.data = data;\n    }\n}\n\n/**\n * Generate barcode using POST request with parameters in body in json or xml format.\n */\nexport class GenerateBodyRequestWrapper {\n    /**\n     *\n     */\n    'generateParams': GenerateParams;\n\n    /**\n     * @param generateParams\n     */\n    constructor(generateParams: GenerateParams) {\n        this.generateParams = generateParams;\n    }\n}\n\n/**\n * Generate barcode using POST request with parameters in multipart form.\n */\nexport class GenerateMultipartRequestWrapper {\n    /**\n     *\n     */\n    'barcodeType': EncodeBarcodeType;\n    /**\n     * String represents data to encode\n     */\n    'data': string;\n    /**\n     *\n     */\n    'dataType'?: EncodeDataType;\n    /**\n     *\n     */\n    'imageFormat'?: BarcodeImageFormat;\n    /**\n     *\n     */\n    'textLocation'?: CodeLocation;\n    /**\n     * Specify the displaying bars and content Color.  Value: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.  For example: AliceBlue or #FF000000  Default value: Black.\n     */\n    'foregroundColor'?: string = \"'Black'\";\n    /**\n     * Background color of the barcode image.  Value: Color name from https://reference.aspose.com/drawing/net/system.drawing/color/ or ARGB value started with #.  For example: AliceBlue or #FF000000  Default value: White.\n     */\n    'backgroundColor'?: string = \"'White'\";\n    /**\n     *\n     */\n    'units'?: GraphicsUnit;\n    /**\n     * Resolution of the BarCode image.  One value for both dimensions.  Default value: 96 dpi.  Decimal separator is dot.\n     */\n    'resolution'?: number;\n    /**\n     * Height of the barcode image in given units. Default units: pixel.  Decimal separator is dot.\n     */\n    'imageHeight'?: number;\n    /**\n     * Width of the barcode image in given units. Default units: pixel.  Decimal separator is dot.\n     */\n    'imageWidth'?: number;\n    /**\n     * BarCode image rotation angle, measured in degree, e.g. RotationAngle = 0 or RotationAngle = 360 means no rotation.  If RotationAngle NOT equal to 90, 180, 270 or 0, it may increase the difficulty for the scanner to read the image.  Default value: 0.\n     */\n    'rotationAngle'?: number;\n\n    /**\n     * @param barcodeType \n     \n     * @param data String represents data to encode\n     */\n    constructor(barcodeType: EncodeBarcodeType, data: string) {\n        this.barcodeType = barcodeType;\n        this.data = data;\n    }\n}\n\n// RecognizeApi\n\n/**\n * Recognize barcode from file on server using GET requests with parameters in route and query string.\n */\nexport class RecognizeRequestWrapper {\n    /**\n     * Type of barcode to recognize\n     */\n    'barcodeType': DecodeBarcodeType;\n    /**\n     * Url to barcode image\n     */\n    'fileUrl': string;\n    /**\n     * Recognition mode\n     */\n    'recognitionMode'?: RecognitionMode;\n    /**\n     * Image kind for recognition\n     */\n    'recognitionImageKind'?: RecognitionImageKind;\n\n    /**\n     * @param barcodeType Type of barcode to recognize\n     \n     * @param fileUrl Url to barcode image\n     */\n    constructor(barcodeType: DecodeBarcodeType, fileUrl: string) {\n        this.barcodeType = barcodeType;\n        this.fileUrl = fileUrl;\n    }\n}\n\n/**\n * Recognize barcode from file in request body using POST requests with parameters in body in json or xml format.\n */\nexport class RecognizeBase64RequestWrapper {\n    /**\n     *\n     */\n    'recognizeBase64Request': RecognizeBase64Request;\n\n    /**\n     * @param recognizeBase64Request\n     */\n    constructor(recognizeBase64Request: RecognizeBase64Request) {\n        this.recognizeBase64Request = recognizeBase64Request;\n    }\n}\n\n/**\n * Recognize barcode from file in request body using POST requests with parameters in multipart form.\n */\nexport class RecognizeMultipartRequestWrapper {\n    /**\n     *\n     */\n    'barcodeType': DecodeBarcodeType;\n    /**\n     * Barcode image file\n     */\n    'fileBytes': Buffer;\n    /**\n     *\n     */\n    'recognitionMode'?: RecognitionMode;\n    /**\n     *\n     */\n    'recognitionImageKind'?: RecognitionImageKind;\n\n    /**\n     * @param barcodeType \n     \n     * @param fileBytes Barcode image file\n     */\n    constructor(barcodeType: DecodeBarcodeType, fileBytes: Buffer) {\n        this.barcodeType = barcodeType;\n        this.fileBytes = fileBytes;\n    }\n}\n\n// ScanApi\n\n/**\n * Scan barcode from file on server using GET requests with parameter in query string.\n */\nexport class ScanRequestWrapper {\n    /**\n     * Url to barcode image\n     */\n    'fileUrl': string;\n\n    /**\n     * @param fileUrl Url to barcode image\n     */\n    constructor(fileUrl: string) {\n        this.fileUrl = fileUrl;\n    }\n}\n\n/**\n * Scan barcode from file in request body using POST requests with parameter in body in json or xml format.\n */\nexport class ScanBase64RequestWrapper {\n    /**\n     *\n     */\n    'scanBase64Request': ScanBase64Request;\n\n    /**\n     * @param scanBase64Request\n     */\n    constructor(scanBase64Request: ScanBase64Request) {\n        this.scanBase64Request = scanBase64Request;\n    }\n}\n\n/**\n * Scan barcode from file in request body using POST requests with parameter in multipart form.\n */\nexport class ScanMultipartRequestWrapper {\n    /**\n     * Barcode image file\n     */\n    'fileBytes': Buffer;\n\n    /**\n     * @param fileBytes Barcode image file\n     */\n    constructor(fileBytes: Buffer) {\n        this.fileBytes = fileBytes;\n    }\n}\n","import { Configuration } from './Configuration';\nimport { HttpClient, HttpOptions, HttpResponse, HttpResult } from './httpClient';\nimport { Multipart, RequestFile, FormParamsType } from './multipart';\n\nexport * from './models';\n\nimport {\n    ApiError,\n    ApiErrorResponse,\n    BarcodeImageFormat,\n    BarcodeImageParams,\n    BarcodeResponse,\n    BarcodeResponseList,\n    CodeLocation,\n    DecodeBarcodeType,\n    EncodeBarcodeType,\n    EncodeData,\n    EncodeDataType,\n    GenerateParams,\n    GraphicsUnit,\n    RecognitionImageKind,\n    RecognitionMode,\n    RecognizeBase64Request,\n    RegionPoint,\n    ScanBase64Request,\n} from './models';\n\nimport {\n    GenerateRequestWrapper,\n    GenerateBodyRequestWrapper,\n    GenerateMultipartRequestWrapper,\n    RecognizeRequestWrapper,\n    RecognizeBase64RequestWrapper,\n    RecognizeMultipartRequestWrapper,\n    ScanRequestWrapper,\n    ScanBase64RequestWrapper,\n    ScanMultipartRequestWrapper,\n} from './models';\n\nlet primitives = ['string', 'boolean', 'double', 'integer', 'long', 'float', 'number', 'any'];\n\nclass ObjectSerializer {\n    public static findCorrectType(data: any, expectedType: string) {\n        if (data == null) {\n            return expectedType;\n        }\n\n        if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {\n            return expectedType;\n        }\n\n        if (expectedType === 'Date') {\n            return expectedType;\n        }\n\n        if (enumsMap[expectedType]) {\n            return expectedType;\n        }\n\n        if (!typeMap[expectedType]) {\n            return expectedType; // w/e we don't know the type\n        }\n\n        // Check the discriminator\n        let discriminatorProperty = typeMap[expectedType].discriminator;\n        if (discriminatorProperty == null) {\n            return expectedType; // the type does not have a discriminator. use it.\n        }\n\n        if (data[discriminatorProperty]) {\n            return data[discriminatorProperty]; // use the type given in the discriminator\n        }\n\n        return expectedType; // discriminator was not present (or an empty string)\n    }\n\n    public static serialize(data: any, type: string) {\n        if (data == null) {\n            return data;\n        }\n\n        if (primitives.indexOf(type.toLowerCase()) !== -1) {\n            return data;\n        }\n\n        if (type.lastIndexOf('Array<', 0) === 0) {\n            // string.startsWith pre es6\n            let subType: string = type.replace('Array<', ''); // Array<Type> => Type>\n            subType = subType.substring(0, subType.length - 1); // Type> => Type\n            let transformedData: any[] = [];\n            for (let index in data) {\n                let date = data[index];\n                transformedData.push(ObjectSerializer.serialize(date, subType));\n            }\n\n            return transformedData;\n        }\n\n        if (type === 'Date') {\n            return data.toString();\n        }\n\n        if (enumsMap[type] && Object.values(enumsMap[type]).includes(data)) {\n            return data;\n        }\n\n        if (!typeMap[type]) {\n            // in case we don't know the type\n            return data;\n        }\n\n        // get the map for the correct type.\n        let attributeTypes = typeMap[type].getAttributeTypeMap();\n        let instance: { [index: string]: any } = {};\n        for (let index in attributeTypes) {\n            let attributeType = attributeTypes[index];\n            instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);\n        }\n\n        return instance;\n    }\n\n    public static deserialize(data: any, type: string) {\n        // polymorphism may change the actual type.\n        type = ObjectSerializer.findCorrectType(data, type);\n\n        if (data == null) {\n            return data;\n        }\n\n        if (primitives.indexOf(type.toLowerCase()) !== -1) {\n            return data;\n        }\n\n        if (type.lastIndexOf('Array<', 0) === 0) {\n            // string.startsWith pre es6\n            let subType: string = type.replace('Array<', ''); // Array<Type> => Type>\n            subType = subType.substring(0, subType.length - 1); // Type> => Type\n            let transformedData: any[] = [];\n            for (let index in data) {\n                let date = data[index];\n                transformedData.push(ObjectSerializer.deserialize(date, subType));\n            }\n            return transformedData;\n        }\n\n        if (type === 'Date') {\n            return new Date(data);\n        }\n\n        if (enumsMap[type]) {\n            // is Enum\n            return data;\n        }\n\n        if (!typeMap[type]) {\n            // don't know the type\n            return data;\n        }\n\n        if (typeof data === 'string') {\n            // data should be deserialized before usage\n            data = JSON.parse(data);\n        }\n\n        let instance = new typeMap[type]();\n        let attributeTypes = typeMap[type].getAttributeTypeMap();\n        for (const attributeType of attributeTypes) {\n            const key = attributeType.baseName.replace(/^(.)/, ($1: string) => {\n                return $1.toLowerCase();\n            });\n            instance[attributeType.name] = ObjectSerializer.deserialize(data[key], attributeType.type);\n        }\n\n        return instance;\n    }\n}\n\nlet enumsMap: { [index: string]: any } = {\n    BarcodeImageFormat: BarcodeImageFormat,\n    CodeLocation: CodeLocation,\n    DecodeBarcodeType: DecodeBarcodeType,\n    EncodeBarcodeType: EncodeBarcodeType,\n    EncodeDataType: EncodeDataType,\n    GraphicsUnit: GraphicsUnit,\n    RecognitionImageKind: RecognitionImageKind,\n    RecognitionMode: RecognitionMode,\n};\n\nlet typeMap: { [index: string]: any } = {\n    ApiError: ApiError,\n    ApiErrorResponse: ApiErrorResponse,\n    BarcodeImageParams: BarcodeImageParams,\n    BarcodeResponse: BarcodeResponse,\n    BarcodeResponseList: BarcodeResponseList,\n    EncodeData: EncodeData,\n    GenerateParams: GenerateParams,\n    RecognizeBase64Request: RecognizeBase64Request,\n    RegionPoint: RegionPoint,\n    ScanBase64Request: ScanBase64Request,\n};\n\nexport class GenerateApi {\n    protected defaultHeaders: any = {\n        'x-aspose-client': 'nodejs sdk',\n        'x-aspose-client-version': '25.3.0',\n    };\n    protected _configuration: Configuration;\n    private _client: HttpClient;\n\n    constructor(configuration: Configuration) {\n        this._configuration = configuration;\n        this._client = new HttpClient();\n    }\n\n    /**\n     *\n     * @summary Generate barcode using GET request with parameters in route and query string.\n     * @param request GenerateRequestWrapper\n     */\n    public async generate(request: GenerateRequestWrapper): Promise<{ response: HttpResponse; body: Buffer }> {\n        const requestPath =\n            this._configuration.getApiBaseUrl() +\n            '/barcode/generate/{barcodeType}'.replace('{' + 'barcodeType' + '}', String(request.barcodeType));\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.barcodeType' is not null or undefined\n        if (request.barcodeType == null) {\n            throw new Error('Required parameter request.barcodeType was null or undefined when calling generate.');\n        }\n\n        // verify required parameter 'request.data' is not null or undefined\n        if (request.data == null) {\n            throw new Error('Required parameter request.data was null or undefined when calling generate.');\n        }\n\n        if (request.dataType != null) {\n            queryParameters['dataType'] = ObjectSerializer.serialize(request.dataType, 'EncodeDataType');\n        }\n\n        if (request.data != null) {\n            queryParameters['data'] = ObjectSerializer.serialize(request.data, 'string');\n        }\n\n        if (request.imageFormat != null) {\n            queryParameters['imageFormat'] = ObjectSerializer.serialize(request.imageFormat, 'BarcodeImageFormat');\n        }\n\n        if (request.textLocation != null) {\n            queryParameters['textLocation'] = ObjectSerializer.serialize(request.textLocation, 'CodeLocation');\n        }\n\n        if (request.foregroundColor != null) {\n            queryParameters['foregroundColor'] = ObjectSerializer.serialize(request.foregroundColor, 'string');\n        }\n\n        if (request.backgroundColor != null) {\n            queryParameters['backgroundColor'] = ObjectSerializer.serialize(request.backgroundColor, 'string');\n        }\n\n        if (request.units != null) {\n            queryParameters['units'] = ObjectSerializer.serialize(request.units, 'GraphicsUnit');\n        }\n\n        if (request.resolution != null) {\n            queryParameters['resolution'] = ObjectSerializer.serialize(request.resolution, 'number');\n        }\n\n        if (request.imageHeight != null) {\n            queryParameters['imageHeight'] = ObjectSerializer.serialize(request.imageHeight, 'number');\n        }\n\n        if (request.imageWidth != null) {\n            queryParameters['imageWidth'] = ObjectSerializer.serialize(request.imageWidth, 'number');\n        }\n\n        if (request.rotationAngle != null) {\n            queryParameters['rotationAngle'] = ObjectSerializer.serialize(request.rotationAngle, 'number');\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'GET',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n            encoding: null,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'Buffer'),\n        };\n    }\n\n    /**\n     *\n     * @summary Generate barcode using POST request with parameters in body in json or xml format.\n     * @param request GenerateBodyRequestWrapper\n     */\n    public async generateBody(request: GenerateBodyRequestWrapper): Promise<{ response: HttpResponse; body: Buffer }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/generate-body';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.generateParams' is not null or undefined\n        if (request.generateParams == null) {\n            throw new Error(\n                'Required parameter request.generateParams was null or undefined when calling generateBody.'\n            );\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n            body: ObjectSerializer.serialize(request.generateParams, 'GenerateParams'),\n            json: true,\n            encoding: null,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'Buffer'),\n        };\n    }\n\n    /**\n     *\n     * @summary Generate barcode using POST request with parameters in multipart form.\n     * @param request GenerateMultipartRequestWrapper\n     */\n    public async generateMultipart(\n        request: GenerateMultipartRequestWrapper\n    ): Promise<{ response: HttpResponse; body: Buffer }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/generate-multipart';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n        const formParams: FormParamsType = [];\n\n        // verify required parameter 'request.barcodeType' is not null or undefined\n        if (request.barcodeType == null) {\n            throw new Error(\n                'Required parameter request.barcodeType was null or undefined when calling generateMultipart.'\n            );\n        }\n\n        // verify required parameter 'request.data' is not null or undefined\n        if (request.data == null) {\n            throw new Error('Required parameter request.data was null or undefined when calling generateMultipart.');\n        }\n\n        if (request.barcodeType != null) {\n            formParams.push(['barcodeType', ObjectSerializer.serialize(request.barcodeType, 'EncodeBarcodeType')]);\n        }\n        if (request.dataType != null) {\n            formParams.push(['dataType', ObjectSerializer.serialize(request.dataType, 'EncodeDataType')]);\n        }\n        if (request.data != null) {\n            formParams.push(['data', ObjectSerializer.serialize(request.data, 'string')]);\n        }\n        if (request.imageFormat != null) {\n            formParams.push(['imageFormat', ObjectSerializer.serialize(request.imageFormat, 'BarcodeImageFormat')]);\n        }\n        if (request.textLocation != null) {\n            formParams.push(['textLocation', ObjectSerializer.serialize(request.textLocation, 'CodeLocation')]);\n        }\n        if (request.foregroundColor != null) {\n            formParams.push(['foregroundColor', ObjectSerializer.serialize(request.foregroundColor, 'string')]);\n        }\n        if (request.backgroundColor != null) {\n            formParams.push(['backgroundColor', ObjectSerializer.serialize(request.backgroundColor, 'string')]);\n        }\n        if (request.units != null) {\n            formParams.push(['units', ObjectSerializer.serialize(request.units, 'GraphicsUnit')]);\n        }\n        if (request.resolution != null) {\n            formParams.push(['resolution', ObjectSerializer.serialize(request.resolution, 'number')]);\n        }\n        if (request.imageHeight != null) {\n            formParams.push(['imageHeight', ObjectSerializer.serialize(request.imageHeight, 'number')]);\n        }\n        if (request.imageWidth != null) {\n            formParams.push(['imageWidth', ObjectSerializer.serialize(request.imageWidth, 'number')]);\n        }\n        if (request.rotationAngle != null) {\n            formParams.push(['rotationAngle', ObjectSerializer.serialize(request.rotationAngle, 'number')]);\n        }\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n            encoding: null,\n        };\n\n        let fileArray = new Array<RequestFile>();\n\n        const multipartForm = new Multipart(formParams, fileArray);\n        requestOptions.body = multipartForm.body;\n        requestOptions.headers = { ...requestOptions.headers, ...multipartForm.headers };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'Buffer'),\n        };\n    }\n}\n\nexport class RecognizeApi {\n    protected defaultHeaders: any = {\n        'x-aspose-client': 'nodejs sdk',\n        'x-aspose-client-version': '25.3.0',\n    };\n    protected _configuration: Configuration;\n    private _client: HttpClient;\n\n    constructor(configuration: Configuration) {\n        this._configuration = configuration;\n        this._client = new HttpClient();\n    }\n\n    /**\n     *\n     * @summary Recognize barcode from file on server using GET requests with parameters in route and query string.\n     * @param request RecognizeRequestWrapper\n     */\n    public async recognize(\n        request: RecognizeRequestWrapper\n    ): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/recognize';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.barcodeType' is not null or undefined\n        if (request.barcodeType == null) {\n            throw new Error('Required parameter request.barcodeType was null or undefined when calling recognize.');\n        }\n\n        // verify required parameter 'request.fileUrl' is not null or undefined\n        if (request.fileUrl == null) {\n            throw new Error('Required parameter request.fileUrl was null or undefined when calling recognize.');\n        }\n\n        if (request.barcodeType != null) {\n            queryParameters['barcodeType'] = ObjectSerializer.serialize(request.barcodeType, 'DecodeBarcodeType');\n        }\n\n        if (request.fileUrl != null) {\n            queryParameters['fileUrl'] = ObjectSerializer.serialize(request.fileUrl, 'string');\n        }\n\n        if (request.recognitionMode != null) {\n            queryParameters['recognitionMode'] = ObjectSerializer.serialize(request.recognitionMode, 'RecognitionMode');\n        }\n\n        if (request.recognitionImageKind != null) {\n            queryParameters['recognitionImageKind'] = ObjectSerializer.serialize(\n                request.recognitionImageKind,\n                'RecognitionImageKind'\n            );\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'GET',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n\n    /**\n     *\n     * @summary Recognize barcode from file in request body using POST requests with parameters in body in json or xml format.\n     * @param request RecognizeBase64RequestWrapper\n     */\n    public async recognizeBase64(\n        request: RecognizeBase64RequestWrapper\n    ): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/recognize-body';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.recognizeBase64Request' is not null or undefined\n        if (request.recognizeBase64Request == null) {\n            throw new Error(\n                'Required parameter request.recognizeBase64Request was null or undefined when calling recognizeBase64.'\n            );\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n            body: ObjectSerializer.serialize(request.recognizeBase64Request, 'RecognizeBase64Request'),\n            json: true,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n\n    /**\n     *\n     * @summary Recognize barcode from file in request body using POST requests with parameters in multipart form.\n     * @param request RecognizeMultipartRequestWrapper\n     */\n    public async recognizeMultipart(\n        request: RecognizeMultipartRequestWrapper\n    ): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/recognize-multipart';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n        const formParams: FormParamsType = [];\n\n        // verify required parameter 'request.barcodeType' is not null or undefined\n        if (request.barcodeType == null) {\n            throw new Error(\n                'Required parameter request.barcodeType was null or undefined when calling recognizeMultipart.'\n            );\n        }\n\n        // verify required parameter 'request.fileBytes' is not null or undefined\n        if (request.fileBytes == null) {\n            throw new Error(\n                'Required parameter request.fileBytes was null or undefined when calling recognizeMultipart.'\n            );\n        }\n\n        if (request.barcodeType != null) {\n            formParams.push(['barcodeType', ObjectSerializer.serialize(request.barcodeType, 'DecodeBarcodeType')]);\n        }\n        if (request.recognitionMode != null) {\n            formParams.push([\n                'recognitionMode',\n                ObjectSerializer.serialize(request.recognitionMode, 'RecognitionMode'),\n            ]);\n        }\n        if (request.recognitionImageKind != null) {\n            formParams.push([\n                'recognitionImageKind',\n                ObjectSerializer.serialize(request.recognitionImageKind, 'RecognitionImageKind'),\n            ]);\n        }\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n        };\n\n        let fileArray = new Array<RequestFile>();\n        fileArray = request.fileBytes == null ? [] : [new RequestFile('file', '', request.fileBytes)];\n        const multipartForm = new Multipart(formParams, fileArray);\n        requestOptions.body = multipartForm.body;\n        requestOptions.headers = { ...requestOptions.headers, ...multipartForm.headers };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n}\n\nexport class ScanApi {\n    protected defaultHeaders: any = {\n        'x-aspose-client': 'nodejs sdk',\n        'x-aspose-client-version': '25.3.0',\n    };\n    protected _configuration: Configuration;\n    private _client: HttpClient;\n\n    constructor(configuration: Configuration) {\n        this._configuration = configuration;\n        this._client = new HttpClient();\n    }\n\n    /**\n     *\n     * @summary Scan barcode from file on server using GET requests with parameter in query string.\n     * @param request ScanRequestWrapper\n     */\n    public async scan(request: ScanRequestWrapper): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/scan';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.fileUrl' is not null or undefined\n        if (request.fileUrl == null) {\n            throw new Error('Required parameter request.fileUrl was null or undefined when calling scan.');\n        }\n\n        if (request.fileUrl != null) {\n            queryParameters['fileUrl'] = ObjectSerializer.serialize(request.fileUrl, 'string');\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'GET',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n\n    /**\n     *\n     * @summary Scan barcode from file in request body using POST requests with parameter in body in json or xml format.\n     * @param request ScanBase64RequestWrapper\n     */\n    public async scanBase64(\n        request: ScanBase64RequestWrapper\n    ): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/scan-body';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n\n        // verify required parameter 'request.scanBase64Request' is not null or undefined\n        if (request.scanBase64Request == null) {\n            throw new Error(\n                'Required parameter request.scanBase64Request was null or undefined when calling scanBase64.'\n            );\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n            body: ObjectSerializer.serialize(request.scanBase64Request, 'ScanBase64Request'),\n            json: true,\n        };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n\n    /**\n     *\n     * @summary Scan barcode from file in request body using POST requests with parameter in multipart form.\n     * @param request ScanMultipartRequestWrapper\n     */\n    public async scanMultipart(\n        request: ScanMultipartRequestWrapper\n    ): Promise<{ response: HttpResponse; body: BarcodeResponseList }> {\n        const requestPath = this._configuration.getApiBaseUrl() + '/barcode/scan-multipart';\n        let queryParameters: any = {};\n        let headerParams: any = (Object as any).assign({}, this.defaultHeaders);\n        const formParams: FormParamsType = [];\n\n        // verify required parameter 'request.fileBytes' is not null or undefined\n        if (request.fileBytes == null) {\n            throw new Error('Required parameter request.fileBytes was null or undefined when calling scanMultipart.');\n        }\n\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            qs: queryParameters,\n            headers: headerParams,\n            uri: requestPath,\n        };\n\n        let fileArray = new Array<RequestFile>();\n        fileArray = request.fileBytes == null ? [] : [new RequestFile('file', '', request.fileBytes)];\n        const multipartForm = new Multipart(formParams, fileArray);\n        requestOptions.body = multipartForm.body;\n        requestOptions.headers = { ...requestOptions.headers, ...multipartForm.headers };\n\n        await this._configuration.authentication.applyToRequestAsync(requestOptions);\n\n        const result: HttpResult = await this._client.requestAsync(requestOptions);\n\n        return {\n            response: result.response,\n            body: ObjectSerializer.deserialize(result.body, 'BarcodeResponseList'),\n        };\n    }\n}\n","import { Configuration } from './Configuration';\nimport { Authentication } from './Authentication';\nimport { HttpClient, HttpOptions } from './httpClient';\n\nexport class JWTAuth implements Authentication {\n    private _accessToken?: string;\n    private readonly _configuration: Configuration;\n    private _client: HttpClient;\n\n    constructor(configuration: Configuration) {\n        this._configuration = configuration;\n\n        if (configuration.accessToken) {\n            // Use saved token\n            this._accessToken = configuration.accessToken;\n        }\n        this._client = new HttpClient();\n    }\n\n    /**\n     * Apply authentication settings to header and query params.\n     */\n    public async applyToRequestAsync(requestOptions: HttpOptions): Promise<void> {\n        if (this._accessToken == null) {\n            this._accessToken = await this.requestToken();\n        }\n\n        if (requestOptions && requestOptions.headers) {\n            requestOptions.headers.Authorization = 'Bearer ' + this._accessToken;\n        }\n\n        return Promise.resolve();\n    }\n\n    private async requestToken(): Promise<string> {\n        if (!this._configuration.clientId || !this._configuration.clientSecret) {\n            throw new Error(\"Required 'clientId' or 'clientSecret' not specified in configuration.\");\n        }\n        const requestOptions: HttpOptions = {\n            method: 'POST',\n            uri: this._configuration.tokenUrl,\n            form: {\n                grant_type: 'client_credentials',\n                client_id: this._configuration.clientId,\n                client_secret: this._configuration.clientSecret,\n            },\n        };\n\n        const result = await this._client.requestAsync(requestOptions);\n        const parsed = JSON.parse(result.body);\n        return parsed.access_token;\n    }\n}\n","﻿import { JWTAuth } from './JWTAuth';\nimport { Authentication } from './Authentication';\n\nexport enum ApiVersion {\n    v4 = 'v4.0',\n}\n\nexport class Configuration {\n    /**\n     * Authentication type.\n     */\n    public authentication: Authentication;\n\n    /**\n     * Client Id.\n     */\n    public clientId: string;\n\n    /**\n     * Client Secret.\n     */\n    public clientSecret: string;\n\n    /**\n     * Base Url.\n     */\n    public baseUrl: string;\n\n    readonly version: ApiVersion = ApiVersion.v4;\n    readonly accessToken: string;\n    readonly tokenUrl: string;\n\n    constructor(clientId: string, clientSecret: string, baseUrl?: string, accessToken?: string, tokenUrl?: string) {\n        this.clientId = clientId;\n        this.clientSecret = clientSecret;\n\n        if (baseUrl) {\n            this.baseUrl = baseUrl;\n        } else {\n            this.baseUrl = 'https://api.aspose.cloud';\n        }\n\n        this.tokenUrl = tokenUrl ?? 'https://id.aspose.cloud/connect/token';\n\n        if (accessToken) {\n            this.accessToken = accessToken;\n        } else {\n            this.accessToken = '';\n        }\n\n        this.authentication = new JWTAuth(this) as Authentication;\n    }\n\n    /**\n     * Returns api base url\n     */\n    public getApiBaseUrl(): string {\n        return this.baseUrl + '/' + this.version;\n    }\n}\n"],"mappings":"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","names":["http","https","HttpClient","options","url","requestBody","requestOptions","responseEncoding","resolve","reject","requestCallback","res","chunks","chunk","respBody","response","rejectObject","errorResponse","parseError","req","error","crypto","RequestFile","name","filename","data","contentType","Multipart","textFields","files","random","bodyLines","tuple","file","_ApiError","ApiError","_ApiErrorResponse","ApiErrorResponse","BarcodeImageFormat","_BarcodeImageParams","BarcodeImageParams","_BarcodeResponse","BarcodeResponse","_BarcodeResponseList","BarcodeResponseList","CodeLocation","DecodeBarcodeType","EncodeBarcodeType","_EncodeData","EncodeData","EncodeDataType","_GenerateParams","GenerateParams","GraphicsUnit","RecognitionImageKind","RecognitionMode","_RecognizeBase64Request","RecognizeBase64Request","_RegionPoint","RegionPoint","_ScanBase64Request","ScanBase64Request","GenerateRequestWrapper","barcodeType","data","GenerateBodyRequestWrapper","generateParams","GenerateMultipartRequestWrapper","RecognizeRequestWrapper","fileUrl","RecognizeBase64RequestWrapper","recognizeBase64Request","RecognizeMultipartRequestWrapper","fileBytes","ScanRequestWrapper","ScanBase64RequestWrapper","scanBase64Request","ScanMultipartRequestWrapper","primitives","ObjectSerializer","_ObjectSerializer","data","expectedType","enumsMap","typeMap","discriminatorProperty","type","subType","transformedData","index","date","attributeTypes","instance","attributeType","key","$1","BarcodeImageFormat","CodeLocation","DecodeBarcodeType","EncodeBarcodeType","EncodeDataType","GraphicsUnit","RecognitionImageKind","RecognitionMode","ApiError","ApiErrorResponse","BarcodeImageParams","BarcodeResponse","BarcodeResponseList","EncodeData","GenerateParams","RecognizeBase64Request","RegionPoint","ScanBase64Request","GenerateApi","configuration","HttpClient","request","__async","requestPath","queryParameters","headerParams","requestOptions","result","formParams","fileArray","multipartForm","Multipart","__spreadValues","RecognizeApi","RequestFile","ScanApi","JWTAuth","configuration","HttpClient","requestOptions","__async","result","ApiVersion","Configuration","clientId","clientSecret","baseUrl","accessToken","tokenUrl","JWTAuth"]}