import {z} from 'zod' export type GetApiBccCaptureArgs = {tguid?: string | undefined}; export type GetApiBccCaptureOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const instanceBean = z.object({tguid: z.string().optional(), type: z.enum(["PROFILE", "FIELD", "QR_CODE", "FINGERPRINT", "FACE", "SIGNATURE", "PALM", "BABY_PALM", "IMAGE", "IRIS", "FACES", "AUXILIARY_IMAGES"]).optional(), registration: z.string().optional()}); export const verifyResultObject = z.object({type: z.enum(["PROFILE", "FIELD", "QR_CODE", "FINGERPRINT", "FACE", "SIGNATURE", "PALM", "BABY_PALM", "IMAGE", "IRIS", "FACES", "AUXILIARY_IMAGES"]).optional(), index: z.object({}).optional(), score: z.number().int().optional()}); export const historyEvent = z.object({tguid: z.string().optional(), timestamp: z.string().optional(), type: z.enum(["ENROLL", "UPDATE", "DISABLE_TRANSACTION", "DELETE_BIOMETRIC", "INCORRECT_ENROLL_TREATMENT"]).optional()}); export const imageBean = z.object({buffer: z.array(z.string()).optional(), originalFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional(), toFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional(), resolution: z.number().int().optional()}); export const minutiaBean = z.object({sequence: z.number().int().optional(), type: z.enum(["MINUTIA_BIFURCATION", "MINUTIA_TERMINATION", "MINUTIA_UNKNOWN", "CORE", "DELTA", "LEFT_EYE", "RIGHT_EYE"]).optional(), origin: z.enum(["ORIGINAL", "MANUAL"]).optional(), quality: z.number().int().optional(), x: z.number().optional(), y: z.number().optional(), angle: z.number().optional(), angle2: z.number().optional(), angle3: z.number().optional(), original: z.boolean().optional(), manual: z.boolean().optional()}); export const templateBean = z.object({buffer: z.array(z.string()).optional(), format: z.enum(["UNKNOWN", "ISO", "ANSI", "GRIAULE"]).optional(), minutiae: z.array(minutiaBean).optional(), quality: z.number().int().optional(), logDescription: z.string().optional()}); export const fingerprint = z.object({index: z.enum(["NONE", "ANY_FINGER", "LEFT_LITTLE", "LEFT_RING", "LEFT_MIDDLE", "LEFT_INDEX", "LEFT_THUMB", "RIGHT_THUMB", "RIGHT_INDEX", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_LITTLE", "LEFT_FOUR", "RIGHT_FOUR", "TWO_THUMBS"]).optional(), type: z.enum(["SEQUENCE_CONTROL", "ROLLED", "NONE"]).optional(), typeIndexKey: z.string().optional(), image: imageBean.optional(), height: z.number().int().optional(), width: z.number().int().optional(), template: templateBean.optional(), captureType: z.enum(["NONE", "FLAT", "FLAT_TWO_FINGERS", "FLAT_TWO_THUMBS", "FLAT_FOUR_FINGERS", "ROLLED", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "RIGHT_FULL", "RIGHT_WRITER", "LEFT_INDEX", "LEFT_LITTLE", "LEFT_MIDDLE", "LEFT_RING", "LEFT_THUMB", "RIGHT_INDEX", "RIGHT_LITTLE", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_THUMB", "LEFT_PALM", "RIGHT_PALM"]).optional(), anomaly: z.enum(["NONE", "ADACTILY", "ANKYLOSIS", "ECTRODACTYLY", "HIPERPHALANGY", "POLYDACTYLY", "MICRODACTYLY", "MACRODACTYLY", "SYNDATYLY", "DAMAGED", "BANDAGED", "IGNORED", "AMPUTATED", "LOW_QUALITY"]).optional(), date: z.string().optional(), nfiq: z.number().int().optional(), contrast: z.number().int().optional(), captured: z.boolean().optional(), extracted: z.boolean().optional(), marca: z.string().optional(), modelo: z.string().optional(), serial: z.string().optional(), wsqBuffer: z.array(z.string()).optional(), imageBuffer: z.array(z.string()).optional(), imageFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional(), resolution: z.number().int().optional(), quality: z.number().int().optional(), templateBuffer: z.array(z.string()).optional()}); export const palm = z.object({index: z.enum(["NONE", "ANY_PALM", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_FULL", "RIGHT_WRITER", "LEFT_PALM", "RIGHT_PALM", "LEFT_PALM_2", "RIGHT_PALM_2", "LEFT_PALM_3", "RIGHT_PALM_3", "LEFT_PALM_4", "RIGHT_PALM_4", "LEFT_PALM_5", "RIGHT_PALM_5", "LEFT_PALM_6", "RIGHT_PALM_6", "LEFT_PALM_7", "RIGHT_PALM_7", "LEFT_PALM_8", "RIGHT_PALM_8", "LEFT_PALM_9", "RIGHT_PALM_9", "LEFT_PALM_10", "RIGHT_PALM_10"]).optional(), image: imageBean.optional(), height: z.number().int().optional(), width: z.number().int().optional(), template: templateBean.optional(), captureType: z.enum(["NONE", "FLAT", "FLAT_TWO_FINGERS", "FLAT_TWO_THUMBS", "FLAT_FOUR_FINGERS", "ROLLED", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "RIGHT_FULL", "RIGHT_WRITER", "LEFT_INDEX", "LEFT_LITTLE", "LEFT_MIDDLE", "LEFT_RING", "LEFT_THUMB", "RIGHT_INDEX", "RIGHT_LITTLE", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_THUMB", "LEFT_PALM", "RIGHT_PALM"]).optional(), anomaly: z.enum(["NONE", "ADACTILY", "ANKYLOSIS", "ECTRODACTYLY", "HIPERPHALANGY", "POLYDACTYLY", "MICRODACTYLY", "MACRODACTYLY", "SYNDATYLY", "DAMAGED", "BANDAGED", "IGNORED", "AMPUTATED", "LOW_QUALITY"]).optional(), quality: z.number().int().optional(), date: z.string().optional(), converted: z.boolean().optional(), captured: z.boolean().optional(), wsqBuffer: z.array(z.string()).optional(), imageBuffer: z.array(z.string()).optional(), imageFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional(), resolution: z.number().int().optional(), templateBuffer: z.array(z.string()).optional()}); export const position = z.object({x: z.number().int().optional(), y: z.number().int().optional()}); export const bodyImage = z.object({index: z.number().int().optional(), location: z.enum(["FACE", "BACK_HEAD", "LEFT_FRONT_NECK", "RIGHT_FRONT_NECK", "LEFT_SHOLDER", "RIGHT_SHOLDER", "LEFT_CHEST", "RIGHT_CHEST", "LEFT_ARM_SIMPLE", "RIGHT_ARM_SIMPLE", "LEFT_FOREARM_SIMPLE", "RIGHT_FOREARM_SIMPLE", "LEFT_WRIST", "RIGHT_WRIST", "LEFT_HAND", "RIGHT_HAND", "STOMACH", "ABDOMEN", "LEFT_RIB", "RIGHT_RIB", "LEFT_WAIST", "RIGHT_WAIST", "GROIN", "LEFT_THIGH_SIMPLE", "RIGHT_THIGH_SIMPLE", "LEFT_KNEE_SIMPLE", "RIGHT_KNEE_SIMPLE", "LEFT_LOWER_LEG", "RIGHT_LOWER_LEG", "LEFT_FOOT", "RIGHT_FOOT", "LEFT_BACK_NECK", "RIGHT_BACK_NECK", "LEFT_BACK_SHOLDER", "RIGHT_BACK_SHOLDER", "LEFT_UPPER_BACK", "RIGHT_UPPER_BACK", "LEFT_LOWER_BACK", "RIGHT_LOWER_BACK", "LEFT_GLUTEUS", "RIGHT_GLUTEUS", "LEFT_ELBOW_SIMPLE", "RIGHT_ELBOW_SIMPLE", "LEFT_REAR_ARM", "RIGHT_REAR_ARM", "LEFT_REAR_FOREARM", "RIGHT_REAR_FOREARM", "LEFT_REAR_LEG", "RIGHT_REAR_LEG", "LEFT_CALF", "RIGHT_CALF", "LEFT_ANKLE", "RIGHT_ANKLE", "LEFT_HEEL", "RIGHT_HEEL", "LEFT_RING", "RIGHT_RING", "LEFT_FOREARM", "RIGHT_FOREARM", "RIGHT_FOOT_EXTERNAL_EDGE", "LEFT_FOOT_EXTERNAL_EDGE", "LEFT_ARM", "RIGHT_ARM", "BUCINATORS", "RIGHT_CALCACIANA", "LEFT_CALCACIANA", "CAROTIDIANAS", "CERVICAL", "LEFT_KEY", "RIGHT_KEY", "RIGHT_HAND_CONVEYOR", "LEFT_HAND_CONVEYOR", "LEFT_ELBOW", "RIGHT_ELBOW", "LEFT_THIGH", "RIGHT_THIGH", "RIGHT_CRURAL", "LEFT_CRURAL", "RIGHT_DELTOID", "LEFT_DELTOID", "RIGHT_DORSAL", "LEFT_DORSAL", "RIGHT_BACK_FOOT", "LEFT_BACK_FOOT", "EPIGASTRIC", "RIGHT_ESCAPE", "LEFT_ESCAPE", "ESCROTAL", "SPONDILEIA", "EXTERNAL", "RIGHT_HAND_DORSAL_FACE", "LEFT_HAND_DORSAL_FACE", "RIGHT_FLANK", "LEFT_FLANK", "RIGHT_ILIAC_DEEP", "LEFT_ILIAC_DEEP", "FRONTAL", "RIGHT_GLUTEOUS", "LEFT_GLUTEOUS", "HIOIDEA", "RIGHT_HYPOCONDRIC", "LEFT_HYPOCONDRIC", "HYPOGASTRIC", "RIGHT_ILIAC", "LEFT_ILIAC", "RIGHT_INDEX", "LEFT_INDEX", "INGUICS", "LEFT_KNEE", "RIGHT_KNEE", "LIP", "LEWIS_LIPS", "EXTERNAL_RIGHT_LEG_SIDE", "EXTERNAL_LEFT_LEG_SIDE", "INTERNAL_RIGHT_LEG_SIDE", "INTERNAL_LEFT_LEG_SIDE", "RIGHT_LOW_BACK", "LEFT_LOW_BACK", "MALARES", "RIGHT_MALEOLAR", "LEFT_MALEOLAR", "RIGHT_MAMMAR", "LEFT_MAMMAR", "MASSATERINE", "RIGHT_MIDDLE", "LEFT_MIDDLE", "MENTONIAN", "MESOGASTRIC", "RIGHT_LITTLE", "LEFT_LITTLE", "NASAL", "OCCIPITAL", "EYE", "ORBITS", "PARIETAL", "PENIAL", "RIGHT_LEG", "LEFT_LEG", "RIGHT_THUMB", "LEFT_THUMB", "RIGHT_POPLITEAL", "LEFT_POPLITEAL", "RIGHT_INTERNAL_ELBOW", "LEFT_INTERNAL_ELBOW", "PUBIAN", "RIGHT_FIST", "LEFT_FIST", "RIGHT_ROTARY", "LEFT_ROTARY", "SACROCOCYCLE", "TEMPORAL", "RIGHT_THORACIC", "LEFT_THORACIC", "UMBILICAL"]).optional(), type: z.enum(["FRONTAL", "LEFT_SIDE", "RIGHT_SIDE", "LEFT_IRIS", "RIGHT_IRIS", "TATTOO", "SCAR", "MARK"]).optional(), description: z.string().optional(), image: imageBean.optional(), icaoImage: imageBean.optional(), template: templateBean.optional(), processed: z.boolean().optional(), date: z.string().optional(), quality: z.number().int().optional(), icao: z.boolean().optional(), faceLeftEye: position.optional(), faceRightEye: position.optional(), faceMouth: position.optional(), icaoLeftEye: position.optional(), icaoRightEye: position.optional(), icaoMouth: position.optional(), marca: z.string().optional(), modelo: z.string().optional(), serial: z.string().optional(), imageBuffer: z.array(z.string()).optional(), imageFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional(), templateBuffer: z.array(z.string()).optional(), icaoImageBuffer: z.array(z.string()).optional()}); export const signature = z.object({index: z.number().int().optional(), date: z.string().optional(), image: imageBean.optional(), notSignable: z.boolean().optional(), marca: z.string().optional(), modelo: z.string().optional(), serial: z.string().optional(), imageBuffer: z.array(z.string()).optional(), imageFormat: z.enum(["RAW", "RGB", "BMP", "BMP24BITS", "GIF", "JPEG", "JPEG2000", "PNG", "TIFF", "WSQ"]).optional()}); export const localTime = z.object({hour: z.number().int().optional(), minute: z.number().int().optional(), second: z.number().int().optional(), nano: z.number().int().optional()}); export const fieldSubEntity = z.object({set: z.string().optional(), name: z.string().optional(), descriptionEnUs: z.string().optional(), descriptionPtBr: z.string().optional(), descriptionEsEs: z.string().optional(), descriptionDrAf: z.string().optional(), descriptionArIq: z.string().optional(), required: z.boolean().optional(), type: z.enum(["string", "stringBig", "integer", "date", "enumeration", "linkedEnumeration", "time", "toggleButton"]).optional(), kind: z.enum(["KEY", "BIOGRAPHIC", "LABEL"]).optional(), ebtsField: z.string().optional(), values: z.string().optional(), dateMask: z.string().optional(), timeMask: z.string().optional(), value: z.string().optional(), filePath: z.string().optional(), visible: z.boolean().optional(), cardscan: z.boolean().optional(), candidateList: z.boolean().optional(), order: z.number().int().optional(), containerSize: z.number().int().optional(), inputSize: z.number().int().optional(), key: z.string().optional(), valueAsDate: z.string().optional(), subLabel: z.string().optional(), valueAsTime: localTime.optional()}); export const externalId = z.object({keyName: z.string().optional(), keyValue: z.string().optional()}); export const profile = z.object({pguid: z.string().optional(), tguid: z.string().optional(), responsiblePguid: z.string().optional(), insertionDate: z.string().optional(), transactionDate: z.string().optional(), gbdsStatus: z.enum(["NONE", "READY", "PROCESS_PENDING", "GBDS_SENDING", "GBDS_SENT", "GBDS_IN_PROGRESS", "SEARCH_MATCH", "SEARCH_NOT_MATCH", "GBDS_OK", "GBDS_ETR_ANALYSIS", "GBDS_ETR_FRAUD_SAME_BIOMETRY", "GBDS_ETR_FRAUD_DIFF_BIOMETRY", "GBDS_ETR_RECOLLECT", "GBDS_ETR_OK", "GBDS_FAILED", "GBDS_REFUSED", "ERROR", "GBDS_MIR_PENDING", "GBDS_MIR_APPROVED", "GBDS_MIR_REJECTED"]).optional(), history: z.array(historyEvent).optional(), currentTransaction: z.boolean().optional(), startDate: z.string().optional(), stopDate: z.array(z.string()).optional(), restartDate: z.array(z.string()).optional(), fingerprints: z.array(fingerprint).optional(), palms: z.array(palm).optional(), bodyImages: z.array(bodyImage).optional(), signature: signature.optional(), labels: z.array(z.string()).optional(), fields: z.array(fieldSubEntity).optional(), externalIDName: z.string().optional(), externalIDValue: z.string().optional(), externalIds: z.array(externalId).optional()}); export const softwareStatus = z.object({vendor: z.string().optional(), version: z.string().optional(), name: z.string().optional()}); export const cameraDeviceMetadata = z.object({productName: z.string().optional(), serialNumber: z.string().optional(), firmwareVersion: z.string().optional()}); export const signatureDeviceMetadata = z.object({model: z.string().optional(), serialNumber: z.string().optional()}); export const user = z.object({username: z.string().optional(), name: z.string().optional()}); export const profileMetadata = z.object({profileVersion: z.string().optional(), appName: z.string().optional(), insertion: z.string().optional(), start: z.string().optional(), restart: z.array(z.string()).optional(), stop: z.array(z.string()).optional(), biAmputated: z.boolean().optional(), macAddress: z.array(z.string()).optional(), softwareStatus: softwareStatus.optional(), fingerprintPluggedDevices: z.array(z.string()).optional(), fingerprintStartedDevices: z.array(z.string()).optional(), faceDevice: cameraDeviceMetadata.optional(), bodyDevice: cameraDeviceMetadata.optional(), signatureDevice: signatureDeviceMetadata.optional(), irisDevice: z.enum(["CROSSMATCH", "IRITECH", "HUMMINGBIRD"]).optional(), fields: z.array(fieldSubEntity).optional(), fingerprints: z.array(fingerprint).optional(), palms: z.array(palm).optional(), bodyImages: z.array(bodyImage).optional(), signature: signature.optional(), user: user.optional(), externalIDName: z.string().optional(), externalIDValue: z.string().optional()}); export const windowInfo = z.object({x: z.number().optional(), y: z.number().optional(), width: z.number().optional(), height: z.number().optional(), state: z.enum(["NORMAL", "MAXIMIZED"]).optional()}); export const colorSpace = z.object({type: z.number().int().optional(), numComponents: z.number().int().optional(), cs_sRGB: z.boolean().optional()}); export const colorModel = z.object({transparency: z.number().int().optional(), numComponents: z.number().int().optional(), numColorComponents: z.number().int().optional(), colorSpace: colorSpace.optional(), transferType: z.number().int().optional(), componentSize: z.array(z.number().int()).optional(), pixelSize: z.number().int().optional(), alphaPremultiplied: z.boolean().optional()}); export const sampleModel = z.object({width: z.number().int().optional(), height: z.number().int().optional(), numBands: z.number().int().optional(), dataType: z.number().int().optional(), transferType: z.number().int().optional(), numDataElements: z.number().int().optional(), sampleSize: z.array(z.number().int()).optional()}); export const dataBuffer = z.object({dataType: z.number().int().optional(), offset: z.number().int().optional(), size: z.number().int().optional(), offsets: z.array(z.number().int()).optional(), numBanks: z.number().int().optional()}); export const point = z.object({x: z.number().optional(), y: z.number().optional()}); export const dimension = z.object({width: z.number().optional(), height: z.number().optional()}); export const rectangle2D: z.ZodType = z.object({bounds2D: z.lazy(() => rectangle2D.optional()), empty: z.boolean().optional(), y: z.number().optional(), maxX: z.number().optional(), maxY: z.number().optional(), x: z.number().optional(), width: z.number().optional(), minY: z.number().optional(), minX: z.number().optional(), bounds: z.lazy(() => rectangle.optional()), height: z.number().optional(), centerX: z.number().optional(), centerY: z.number().optional()}); export const rectangle: z.ZodType = z.object({x: z.number().optional(), y: z.number().optional(), width: z.number().optional(), height: z.number().optional(), empty: z.boolean().optional(), location: point.optional(), size: dimension.optional(), bounds2D: rectangle2D.optional(), maxX: z.number().optional(), maxY: z.number().optional(), minY: z.number().optional(), minX: z.number().optional(), centerX: z.number().optional(), centerY: z.number().optional()}); export const raster: z.ZodType = z.object({sampleModel: sampleModel.optional(), dataBuffer: dataBuffer.optional(), minX: z.number().int().optional(), minY: z.number().int().optional(), width: z.number().int().optional(), height: z.number().int().optional(), sampleModelTranslateX: z.number().int().optional(), sampleModelTranslateY: z.number().int().optional(), numBands: z.number().int().optional(), numDataElements: z.number().int().optional(), parent: z.lazy(() => raster.optional()), bounds: rectangle.optional(), transferType: z.number().int().optional()}); export const writableRaster: z.ZodType = z.object({sampleModel: sampleModel.optional(), dataBuffer: dataBuffer.optional(), minX: z.number().int().optional(), minY: z.number().int().optional(), width: z.number().int().optional(), height: z.number().int().optional(), sampleModelTranslateX: z.number().int().optional(), sampleModelTranslateY: z.number().int().optional(), numBands: z.number().int().optional(), numDataElements: z.number().int().optional(), parent: raster.optional(), writableParent: z.lazy(() => writableRaster.optional()), bounds: rectangle.optional(), transferType: z.number().int().optional()}); export const imageProducer = z.object({}); export const color = z.object({red: z.number().int().optional(), green: z.number().int().optional(), blue: z.number().int().optional(), alpha: z.number().int().optional(), rgb: z.number().int().optional(), transparency: z.number().int().optional(), colorSpace: colorSpace.optional()}); export const fontPeer = z.object({}); export const affineTransform = z.object({scaleX: z.number().optional(), shearY: z.number().optional(), shearX: z.number().optional(), scaleY: z.number().optional(), translateX: z.number().optional(), translateY: z.number().optional(), type: z.number().int().optional(), identity: z.boolean().optional(), determinant: z.number().optional()}); export const attribute = z.object({}); export const font = z.object({name: z.string().optional(), style: z.number().int().optional(), size: z.number().int().optional(), peer: fontPeer.optional(), attributes: z.record(z.string(), z.object({})).optional(), family: z.string().optional(), transform: affineTransform.optional(), numGlyphs: z.number().int().optional(), availableAttributes: z.array(attribute).optional(), fontName: z.string().optional(), italicAngle: z.number().optional(), missingGlyphCode: z.number().int().optional(), psname: z.string().optional(), size2D: z.number().optional(), bold: z.boolean().optional(), italic: z.boolean().optional(), plain: z.boolean().optional(), transformed: z.boolean().optional()}); export const fontRenderContext = z.object({transform: affineTransform.optional(), transformType: z.number().int().optional(), antiAliased: z.boolean().optional(), antiAliasingHint: z.object({}).optional(), fractionalMetricsHint: z.object({}).optional(), transformed: z.boolean().optional()}); export const fontMetrics = z.object({font: font.optional(), height: z.number().int().optional(), descent: z.number().int().optional(), ascent: z.number().int().optional(), maxAscent: z.number().int().optional(), maxDecent: z.number().int().optional(), maxDescent: z.number().int().optional(), maxAdvance: z.number().int().optional(), fontRenderContext: fontRenderContext.optional(), leading: z.number().int().optional(), widths: z.array(z.number().int()).optional()}); export const shape = z.object({bounds: rectangle.optional(), bounds2D: rectangle2D.optional()}); export const graphics = z.object({color: color.optional(), fontMetrics: fontMetrics.optional(), clipRect: rectangle.optional(), clip: shape.optional(), font: font.optional(), clipBounds: rectangle.optional()}); export const renderedImage: z.ZodType = z.object({data: raster.optional(), width: z.number().int().optional(), minY: z.number().int().optional(), minX: z.number().int().optional(), height: z.number().int().optional(), sampleModel: sampleModel.optional(), tileHeight: z.number().int().optional(), tileWidth: z.number().int().optional(), colorModel: colorModel.optional(), minTileX: z.number().int().optional(), minTileY: z.number().int().optional(), numXTiles: z.number().int().optional(), numYTiles: z.number().int().optional(), propertyNames: z.array(z.string()).optional(), sources: z.array(z.lazy(() => renderedImage)).optional(), tileGridXOffset: z.number().int().optional(), tileGridYOffset: z.number().int().optional()}); export const bufferedImage = z.object({accelerationPriority: z.number().optional(), colorModel: colorModel.optional(), raster: writableRaster.optional(), type: z.number().int().optional(), data: raster.optional(), source: imageProducer.optional(), width: z.number().int().optional(), minY: z.number().int().optional(), minX: z.number().int().optional(), height: z.number().int().optional(), transparency: z.number().int().optional(), alphaRaster: writableRaster.optional(), alphaPremultiplied: z.boolean().optional(), sampleModel: sampleModel.optional(), tileHeight: z.number().int().optional(), tileWidth: z.number().int().optional(), graphics: graphics.optional(), minTileX: z.number().int().optional(), minTileY: z.number().int().optional(), numXTiles: z.number().int().optional(), numYTiles: z.number().int().optional(), propertyNames: z.array(z.string()).optional(), sources: z.array(renderedImage).optional(), tileGridXOffset: z.number().int().optional(), tileGridYOffset: z.number().int().optional(), writableTileIndices: z.array(point).optional()}); export const regionIndexBean = z.object({index: z.enum(["LEFT_LITTLE", "LEFT_RING", "LEFT_MIDDLE", "LEFT_INDEX", "LEFT_THUMB", "RIGHT_THUMB", "RIGHT_INDEX", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_LITTLE", "LEFT_FOUR", "RIGHT_FOUR", "TWO_THUMBS", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_FULL", "RIGHT_WRITER"]).optional(), order: z.number().int().optional()}); export const fieldBean = z.object({name: z.string().optional(), value: z.string().optional()}); export const regionBean: z.ZodType = z.object({sequence: z.number().int().optional(), x: z.number().optional(), y: z.number().optional(), width: z.number().optional(), height: z.number().optional(), order: z.number().int().optional(), subtype: z.enum(["FRONTAL_FACE", "LEFT_SIDE", "RIGHT_SIDE", "SIGNATURE", "SINGLE_FINGERPRINT", "TWO_THUMBS", "TWO_FINGERPRINTS", "FOUR_FINGERPRINTS", "FIVE_FINGERPRINTS", "TEN_FINGERPRINTS", "SINGLE_PALMPRINT", "OCR_KEY", "OCR_BIOGRAPHIC", "OCR_LABEL", "BAR_CODE_KEY", "BAR_CODE_BIOGRAPHIC", "BAR_CODE_LABEL"]).optional(), captureType: z.enum(["MAIN", "SEQUENCE_CONTROL"]).optional(), regionIndexes: z.array(regionIndexBean).optional(), field: fieldBean.optional(), angle: z.number().optional(), type: z.enum(["FACE", "FINGERPRINT", "PALMPRINT", "SIGNATURE", "KEY", "BIOGRAPHIC", "LABEL"]).optional(), indexes: z.array(z.enum(["LEFT_LITTLE", "LEFT_RING", "LEFT_MIDDLE", "LEFT_INDEX", "LEFT_THUMB", "RIGHT_THUMB", "RIGHT_INDEX", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_LITTLE", "LEFT_FOUR", "RIGHT_FOUR", "TWO_THUMBS", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_FULL", "RIGHT_WRITER"])).optional(), palms: z.array(z.enum(["INTERDIGITAL", "THENAR", "HYPOTHENAR", "WRITER", "FULL"])).optional(), handside: z.enum(["LEFT", "RIGHT", "BOTH"]).optional(), self: z.lazy(() => regionBean.optional()), fingers: z.array(z.enum(["LITTLE", "RING", "MIDDLE", "INDEX", "THUMB", "FOUR"])).optional()}); export const pageBean = z.object({code: z.string().optional(), name: z.string().optional(), order: z.number().int().optional(), content: z.array(z.string()).optional(), image: bufferedImage.optional(), width: z.number().int().optional(), height: z.number().int().optional(), resolution: z.number().int().optional(), regions: z.array(regionBean).optional()}); export const layoutBean = z.object({registration: z.string().optional(), name: z.string().optional(), language: z.string().optional(), description: z.string().optional(), date: z.string().optional(), pages: z.array(pageBean).optional(), pageCount: z.number().int().optional(), user: z.string().optional(), type: z.enum(["ORIGINAL", "EDITED"]).optional(), allFields: z.array(fieldBean).optional(), thumbnailContent: z.array(z.string()).optional(), label: z.string().optional(), logDescription: z.string().optional()}); export const batchAnomalyBean = z.object({sequence: z.number().int().optional(), type: z.enum(["MAIN", "SEQUENCE_CONTROL"]).optional(), index: z.enum(["LEFT_LITTLE", "LEFT_RING", "LEFT_MIDDLE", "LEFT_INDEX", "LEFT_THUMB", "RIGHT_THUMB", "RIGHT_INDEX", "RIGHT_MIDDLE", "RIGHT_RING", "RIGHT_LITTLE", "LEFT_FOUR", "RIGHT_FOUR", "TWO_THUMBS", "LEFT_INTERDIGITAL", "LEFT_THENAR", "LEFT_HYPOTHENAR", "RIGHT_INTERDIGITAL", "RIGHT_THENAR", "RIGHT_HYPOTHENAR", "LEFT_FULL", "LEFT_WRITER", "RIGHT_FULL", "RIGHT_WRITER"]).optional(), anomaly: z.enum(["NONE", "ADACTILY", "ANKYLOSIS", "ECTRODACTILY", "HIPERFALANGIA", "POLYDACTILY", "MICRODACTILY", "MACRODACTILY", "SINDATILY", "DAMAGED", "BANDAGED", "IGNORED", "AMPUTATED", "BASE_CLEAN"]).optional()}); export const configBean = z.object({regionStrokeColor: z.string().optional(), regionFillColor: z.string().optional(), selectedRegionStrokeColor: z.string().optional(), selectedRegionFillColor: z.string().optional(), regionTitleFontColor: z.string().optional(), regionNormalFontColor: z.string().optional(), regionTitleFont: z.string().optional(), regionTitleFontSize: z.number().int().optional(), regionNormalFont: z.string().optional(), regionNormalFontSize: z.number().int().optional(), touchFactor: z.number().optional(), unit: z.string().optional()}); export const serverResponse = z.object({result: z.enum(["OK", "ERROR"]).optional(), serverState: z.enum(["IDLE", "INITIALIZING", "RUNNING", "FINISHING", "ERROR"]).optional(), tguid: z.string().optional(), type: z.enum(["PROFILE", "FIELD", "QR_CODE", "FINGERPRINT", "FACE", "SIGNATURE", "PALM", "BABY_PALM", "IMAGE", "IRIS", "FACES", "AUXILIARY_IMAGES"]).optional(), message: z.object({}).optional(), status: z.enum(["NONE", "READY", "INITIALIZING", "CAPTURING", "CAPTURED", "EXTRA_BUTTON", "CLOSED", "SAVE_IT", "CANCELLED", "ERROR", "VERIFYING", "VERIFIED", "NOT_VERIFIED", "UPDATING", "UPDATED", "ADJUSTING_IMAGES", "IMAGES_ADJUSTED", "EDITING_LAYOUT", "LAYOUT_EDITED"]).optional(), operation: z.enum(["NONE", "CONFIG", "CONSOLE", "ABOUT", "VERIFY", "INIT", "OPEN", "LAYOUT_ADJUST", "LAYOUT_EDITION"]).optional(), command: z.enum(["NONE", "CONFIG", "CONSOLE", "ABOUT", "VERIFY", "INIT", "OPEN", "LAYOUT_ADJUST", "LAYOUT_EDITION"]).optional(), name: z.string().optional(), sequenceControlType: z.enum(["NONE", "CTRL_221", "CTRL_442"]).optional(), count: z.number().int().optional(), instances: z.array(instanceBean).optional(), verifyResult: verifyResultObject.optional(), validValues: z.array(z.object({})).optional(), wsq: z.string().optional(), registration: z.string().optional(), profile: profile.optional(), babyProfile: profile.optional(), profileMetadata: profileMetadata.optional(), babyProfileMetadata: profileMetadata.optional(), windowInfo: windowInfo.optional(), layout: layoutBean.optional(), anomalies: z.array(batchAnomalyBean).optional(), extraButton: z.string().optional(), layoutConfig: configBean.optional(), babyPalms: z.array(palm).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * getProfile * * GET /bcc/capture */ export const getApiBccCapture = async (args: GetApiBccCaptureArgs, options?: GetApiBccCaptureOptions) => { const {baseUrl = "http://:8085/gbds/v2", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.tguid != null) query.append("tguid", String(args.tguid)) const url = `${baseUrl.replace(/\/+$/, '')}/bcc/capture${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(serverResponse, await res.json()) };