@@ -134,8 +134,6 @@ import { useFilesStore } from '../store/files.js'
134134import { useSignStore } from ' ../store/sign.js'
135135import { useSidebarStore } from ' ../store/sidebar.js'
136136import type {
137- LoadedValidationEnvelopeDocument ,
138- LoadedValidationFileDocument ,
139137 SignerDetailRecord ,
140138 ValidatedChildFileRecord ,
141139 ValidationFileRecord ,
@@ -200,6 +198,20 @@ type ValidationMetadataDimension = {
200198 h: number
201199}
202200
201+ type ValidationDocumentState = ValidationFileRecord & {
202+ signers: SignerDetailRecord []
203+ metadata: NonNullable <ValidationFileRecord [' metadata' ]>
204+ settings: NonNullable <ValidationFileRecord [' settings' ]>
205+ }
206+
207+ type LoadedValidationEnvelopeDocumentState = ValidationDocumentState & {
208+ nodeType: ' envelope'
209+ }
210+
211+ type LoadedValidationFileDocumentState = ValidationDocumentState & {
212+ nodeType: ' file'
213+ }
214+
203215type UnknownRecord = Record <string , unknown >
204216
205217function isRecord(value : unknown ): value is Record <string , unknown > {
@@ -420,8 +432,44 @@ function isValidationDocumentRecord(data: unknown): data is ValidationFileRecord
420432 return true
421433}
422434
423- function toValidationDocument(data : unknown ): ValidationFileRecord | null {
424- return isValidationDocumentRecord (data ) ? data : null
435+ const DEFAULT_VALIDATION_METADATA: NonNullable <ValidationFileRecord [' metadata' ]> = {
436+ extension: ' pdf' ,
437+ p: 0 ,
438+ }
439+
440+ const DEFAULT_VALIDATION_SETTINGS: NonNullable <ValidationFileRecord [' settings' ]> = {
441+ canSign: false ,
442+ canRequestSign: false ,
443+ phoneNumber: ' ' ,
444+ hasSignatureFile: false ,
445+ needIdentificationDocuments: false ,
446+ identificationDocumentsWaitingApproval: false ,
447+ }
448+
449+ function toValidationDocument(data : unknown ): ValidationDocumentState | null {
450+ if (! isValidationDocumentRecord (data )) {
451+ return null
452+ }
453+
454+ const metadata = isValidationMetadata (data .metadata )
455+ ? data .metadata
456+ : {
457+ ... DEFAULT_VALIDATION_METADATA ,
458+ p: data .totalPages ,
459+ }
460+
461+ const settings = isValidationSettings (data .settings )
462+ ? data .settings
463+ : DEFAULT_VALIDATION_SETTINGS
464+
465+ const signers = Array .isArray (data .signers ) ? data .signers : []
466+
467+ return {
468+ ... data ,
469+ metadata ,
470+ settings ,
471+ signers ,
472+ }
425473}
426474
427475function getValidationErrorMessage(response : ValidationErrorResponse | undefined , fallback : string ): string {
@@ -431,11 +479,11 @@ function getValidationErrorMessage(response: ValidationErrorResponse | undefined
431479 return fallback
432480}
433481
434- function isLoadedValidationEnvelopeDocument(document : ValidationFileRecord | null ): document is LoadedValidationEnvelopeDocument {
482+ function isLoadedValidationEnvelopeDocument(document : ValidationDocumentState | null ): document is LoadedValidationEnvelopeDocumentState {
435483 return document ?.nodeType === ' envelope'
436484}
437485
438- function isLoadedValidationFileDocument(document : ValidationFileRecord | null ): document is LoadedValidationFileDocument {
486+ function isLoadedValidationFileDocument(document : ValidationDocumentState | null ): document is LoadedValidationFileDocumentState {
439487 return document ?.nodeType === ' file'
440488}
441489
@@ -459,7 +507,7 @@ const logo = ref(logoGray)
459507const uuidToValidate = ref (route .value .params .uuid ?? ' ' )
460508const hasInfo = ref (false )
461509const loading = ref (false )
462- const document = ref <ValidationFileRecord | null >(null )
510+ const document = ref <ValidationDocumentState | null >(null )
463511const legalInformation = ref (loadState (' libresign' , ' legal_information' , ' ' ))
464512const clickedValidate = ref (false )
465513const getUUID = ref (false )
@@ -491,8 +539,8 @@ const isEnvelope = computed(() => document.value?.nodeType === 'envelope')
491539
492540const validationComponent = computed (() => (isEnvelope .value ? EnvelopeValidation : FileValidation ))
493541const validationDocument = computed (() => document .value )
494- const validationEnvelopeDocument = computed <LoadedValidationEnvelopeDocument | null >(() => (isLoadedValidationEnvelopeDocument (document .value ) ? document .value : null ))
495- const validationFileDocument = computed <LoadedValidationFileDocument | null >(() => (isLoadedValidationFileDocument (document .value ) ? document .value : null ))
542+ const validationEnvelopeDocument = computed <LoadedValidationEnvelopeDocumentState | null >(() => (isLoadedValidationEnvelopeDocument (document .value ) ? document .value : null ))
543+ const validationFileDocument = computed <LoadedValidationFileDocumentState | null >(() => (isLoadedValidationFileDocument (document .value ) ? document .value : null ))
496544
497545const canValidate = computed (() => {
498546 if (! uuidToValidate .value ) {
0 commit comments