aspose-barcode-cloud-node
Version:
Aspose.BarCode Cloud SDK for Node.js
1 lines • 84.2 kB
Source Map (JSON)
{"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"]}