@muni-sanfer/types-gestor-documental 0.0.1-beta.20 → 0.0.1-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -521,6 +521,7 @@ export interface CaseFileEntryEntity {
521
521
  sha256?: string | null;
522
522
  size?: number | null;
523
523
  hasAdvancedSignature: boolean;
524
+ signatureCheck?: JsonValue | null;
524
525
  incorporatedByEmployeeId: string;
525
526
  incorporatedByFullName: string;
526
527
  voidedAt?: string | null;
@@ -658,6 +659,7 @@ export interface DocDigitalInboundEntity {
658
659
  fileId?: string | null;
659
660
  fileName?: string | null;
660
661
  attachments: JsonValue;
662
+ signatureCheck?: JsonValue | null;
661
663
  registeredAt?: string | null;
662
664
  registeredByEmployeeId?: string | null;
663
665
  registeredByFullName?: string | null;
@@ -7,6 +7,7 @@ import { type TextSnippetContract } from './textSnippet.contract';
7
7
  import { type HolidayContract } from './holiday.contract';
8
8
  import { type IndicatorsContract } from './indicators.contract';
9
9
  import { type AuditContract } from './audit.contract';
10
+ import { type SignatureCheckContract } from './signatureCheck.contract';
10
11
  import { type ScanContract } from './scan.contract';
11
12
  import { type PartsOfficeContract } from './partsOffice.contract';
12
13
  import { type ProcedureContract } from './procedure.contract';
@@ -29,6 +30,7 @@ export * from './textSnippet.contract';
29
30
  export * from './holiday.contract';
30
31
  export * from './indicators.contract';
31
32
  export * from './audit.contract';
33
+ export * from './signatureCheck.contract';
32
34
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
33
35
  export declare const GestorDocumentalPatterns: {
34
36
  readonly documentType: {
@@ -184,6 +186,9 @@ export declare const GestorDocumentalPatterns: {
184
186
  readonly getEvents: "gestorDocumental.audit.getEvents";
185
187
  readonly export: "gestorDocumental.audit.export";
186
188
  };
189
+ readonly signatureCheck: {
190
+ readonly check: "gestorDocumental.signatureCheck.check";
191
+ };
187
192
  };
188
193
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
189
- export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract & TextSnippetContract & HolidayContract & IndicatorsContract & AuditContract;
194
+ export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract & TextSnippetContract & HolidayContract & IndicatorsContract & AuditContract & SignatureCheckContract;
@@ -24,6 +24,7 @@ const textSnippet_contract_1 = require("./textSnippet.contract");
24
24
  const holiday_contract_1 = require("./holiday.contract");
25
25
  const indicators_contract_1 = require("./indicators.contract");
26
26
  const audit_contract_1 = require("./audit.contract");
27
+ const signatureCheck_contract_1 = require("./signatureCheck.contract");
27
28
  const scan_contract_1 = require("./scan.contract");
28
29
  const partsOffice_contract_1 = require("./partsOffice.contract");
29
30
  const procedure_contract_1 = require("./procedure.contract");
@@ -46,6 +47,7 @@ __exportStar(require("./textSnippet.contract"), exports);
46
47
  __exportStar(require("./holiday.contract"), exports);
47
48
  __exportStar(require("./indicators.contract"), exports);
48
49
  __exportStar(require("./audit.contract"), exports);
50
+ __exportStar(require("./signatureCheck.contract"), exports);
49
51
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
50
52
  exports.GestorDocumentalPatterns = {
51
53
  documentType: documentType_contract_1.DocumentTypePatterns,
@@ -63,4 +65,5 @@ exports.GestorDocumentalPatterns = {
63
65
  holiday: holiday_contract_1.HolidayPatterns,
64
66
  indicators: indicators_contract_1.IndicatorsPatterns,
65
67
  audit: audit_contract_1.AuditPatterns,
68
+ signatureCheck: signatureCheck_contract_1.SignatureCheckPatterns,
66
69
  };
@@ -0,0 +1,14 @@
1
+ import { type PdfSignatureReportEntity } from '../entities';
2
+ /** Patrones NATS de `signatureCheck`: revisión de las firmas electrónicas de un PDF. */
3
+ export declare const SignatureCheckPatterns: {
4
+ readonly check: "gestorDocumental.signatureCheck.check";
5
+ };
6
+ export interface SignatureCheckContract {
7
+ /** Revisa un PDF ya subido al gestor de archivos (la herramienta «Validar firmas» lo sube antes). */
8
+ [SignatureCheckPatterns.check]: {
9
+ payload: {
10
+ fileId: string;
11
+ };
12
+ response: PdfSignatureReportEntity;
13
+ };
14
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SignatureCheckPatterns = void 0;
4
+ /** Patrones NATS de `signatureCheck`: revisión de las firmas electrónicas de un PDF. */
5
+ exports.SignatureCheckPatterns = {
6
+ check: 'gestorDocumental.signatureCheck.check',
7
+ };
@@ -1,5 +1,6 @@
1
1
  import { CaseFileAccessEntity, CaseFileActorEntity, CaseFileEntity, CaseFileEntryEntity, CaseFileMetadataChangeEntity, CaseFileParticipantEntity, CaseFileTrackingEntity, DocumentEntity, ProcedureEntity } from '../../base/entities';
2
2
  import { DocumentTypeSummaryEntity } from '../document';
3
+ import { type PdfSignatureReportEntity } from '../signatureCheck';
3
4
  /** Expediente al que se hace referencia desde otro lado: cómo se cita y en qué estado está. */
4
5
  export interface CaseFileLinkEntity {
5
6
  id: CaseFileEntity['id'];
@@ -56,6 +57,8 @@ export interface CaseFileEntryResponseEntity {
56
57
  sha256: CaseFileEntryEntity['sha256'];
57
58
  size: CaseFileEntryEntity['size'];
58
59
  hasAdvancedSignature: CaseFileEntryEntity['hasAdvancedSignature'];
60
+ /** Revisión de sus firmas al incorporarlo, en los archivos externos en PDF. */
61
+ signatureCheck: PdfSignatureReportEntity | null;
59
62
  incorporatedByEmployeeId: CaseFileEntryEntity['incorporatedByEmployeeId'];
60
63
  incorporatedByFullName: CaseFileEntryEntity['incorporatedByFullName'];
61
64
  createdAt: CaseFileEntryEntity['createdAt'];
@@ -13,3 +13,4 @@ export * from './textSnippet';
13
13
  export * from './holiday';
14
14
  export * from './indicators';
15
15
  export * from './audit';
16
+ export * from './signatureCheck';
@@ -29,3 +29,4 @@ __exportStar(require("./textSnippet"), exports);
29
29
  __exportStar(require("./holiday"), exports);
30
30
  __exportStar(require("./indicators"), exports);
31
31
  __exportStar(require("./audit"), exports);
32
+ __exportStar(require("./signatureCheck"), exports);
@@ -1,3 +1,4 @@
1
+ import { type PdfSignatureReportEntity } from '../signatureCheck';
1
2
  import { type DocumentDispatchResponseEntity, type DocumentExternalRecipientResponseEntity, type DocumentLinkEntity } from '../document';
2
3
  /** Institución del Estado en DocDigital. */
3
4
  export interface DocDigitalEntityEntity {
@@ -54,6 +55,8 @@ export interface PartsOfficeInboundEntity {
54
55
  senderPosition: string | null;
55
56
  fileName: string | null;
56
57
  hasFile: boolean;
58
+ /** Revisión de las firmas del documento principal al recibirlo. */
59
+ signatureCheck: PdfSignatureReportEntity | null;
57
60
  attachments: {
58
61
  name: string;
59
62
  url: string | null;
@@ -0,0 +1 @@
1
+ export * from './signatureCheck.entity';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./signatureCheck.entity"), exports);
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Resultado de una firma o del archivo completo: válida, inválida (algo no cuadra) o indeterminada (lo firmado está
3
+ * íntegro, pero falta confirmar algo: la cadena de confianza, la vigencia o cambios posteriores sin firmar).
4
+ */
5
+ export type PdfSignatureStatus = 'Valid' | 'Invalid' | 'Indeterminate';
6
+ /** Una firma electrónica de un PDF, como se pudo comprobar. */
7
+ export interface PdfSignatureEntity {
8
+ /** Orden en el archivo: 1 es la primera. */
9
+ index: number;
10
+ /** Firma de una persona o sello de tiempo del documento. */
11
+ kind: 'Signature' | 'Timestamp';
12
+ signerName: string | null;
13
+ /** Identificador del titular en el certificado (en Chile, suele ser el RUN). */
14
+ signerSerialNumber: string | null;
15
+ organization: string | null;
16
+ issuerName: string | null;
17
+ certificateSerial: string | null;
18
+ certificateValidFrom: string | null;
19
+ certificateValidTo: string | null;
20
+ signingTime: string | null;
21
+ /** De dónde sale la hora de la firma: sello de tiempo (la más confiable), el certificado firmado o el PDF. */
22
+ signingTimeSource: 'Timestamp' | 'SignedAttribute' | 'PdfDate' | null;
23
+ reason: string | null;
24
+ location: string | null;
25
+ hasTimestamp: boolean;
26
+ /** Lo firmado no cambió y la firma corresponde al certificado. */
27
+ intact: boolean;
28
+ /** La firma abarca el archivo completo (las anteriores a la última, solo su versión). */
29
+ coversWholeDocument: boolean;
30
+ /** El certificado estaba vigente al firmar. `null` si no se sabe cuándo se firmó. */
31
+ certificateValidAtSigning: boolean | null;
32
+ /** Cadena hasta un certificado raíz de confianza. `null` si no hay raíces configuradas. */
33
+ trusted: boolean | null;
34
+ status: PdfSignatureStatus;
35
+ /** Lo que no cuadra o no se pudo confirmar, en palabras. */
36
+ problems: string[];
37
+ }
38
+ /** Revisión de las firmas de un PDF. */
39
+ export interface PdfSignatureReportEntity {
40
+ checkedAt: string;
41
+ status: 'NoSignatures' | PdfSignatureStatus;
42
+ signatures: PdfSignatureEntity[];
43
+ /** Hay contenido agregado después de la última firma, que no está firmado. */
44
+ modifiedAfterLastSignature: boolean;
45
+ /** Se configuraron certificados raíz para confirmar la cadena de confianza. */
46
+ trustConfigured: boolean;
47
+ /** Huella SHA-256 del archivo revisado. */
48
+ fileSha256: string;
49
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muni-sanfer/types-gestor-documental",
3
- "version": "0.0.1-beta.20",
3
+ "version": "0.0.1-beta.21",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -653,6 +653,7 @@ export interface CaseFileEntryEntity {
653
653
  sha256?: string | null;
654
654
  size?: number | null;
655
655
  hasAdvancedSignature: boolean;
656
+ signatureCheck?: JsonValue | null;
656
657
  incorporatedByEmployeeId: string;
657
658
  incorporatedByFullName: string;
658
659
  voidedAt?: string | null;
@@ -799,6 +800,7 @@ export interface DocDigitalInboundEntity {
799
800
  fileId?: string | null;
800
801
  fileName?: string | null;
801
802
  attachments: JsonValue;
803
+ signatureCheck?: JsonValue | null;
802
804
  registeredAt?: string | null;
803
805
  registeredByEmployeeId?: string | null;
804
806
  registeredByFullName?: string | null;
@@ -7,6 +7,7 @@ import { TextSnippetPatterns, type TextSnippetContract } from './textSnippet.con
7
7
  import { HolidayPatterns, type HolidayContract } from './holiday.contract';
8
8
  import { IndicatorsPatterns, type IndicatorsContract } from './indicators.contract';
9
9
  import { AuditPatterns, type AuditContract } from './audit.contract';
10
+ import { SignatureCheckPatterns, type SignatureCheckContract } from './signatureCheck.contract';
10
11
  import { ScanPatterns, type ScanContract } from './scan.contract';
11
12
  import { PartsOfficePatterns, type PartsOfficeContract } from './partsOffice.contract';
12
13
  import { ProcedurePatterns, type ProcedureContract } from './procedure.contract';
@@ -30,6 +31,7 @@ export * from './textSnippet.contract';
30
31
  export * from './holiday.contract';
31
32
  export * from './indicators.contract';
32
33
  export * from './audit.contract';
34
+ export * from './signatureCheck.contract';
33
35
 
34
36
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
35
37
  export const GestorDocumentalPatterns = {
@@ -48,6 +50,7 @@ export const GestorDocumentalPatterns = {
48
50
  holiday: HolidayPatterns,
49
51
  indicators: IndicatorsPatterns,
50
52
  audit: AuditPatterns,
53
+ signatureCheck: SignatureCheckPatterns,
51
54
  } as const;
52
55
 
53
56
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
@@ -65,4 +68,5 @@ export type GestorDocumentalContract = DocumentTypeContract &
65
68
  TextSnippetContract &
66
69
  HolidayContract &
67
70
  IndicatorsContract &
68
- AuditContract;
71
+ AuditContract &
72
+ SignatureCheckContract;
@@ -0,0 +1,11 @@
1
+ import { type PdfSignatureReportEntity } from '../entities';
2
+
3
+ /** Patrones NATS de `signatureCheck`: revisión de las firmas electrónicas de un PDF. */
4
+ export const SignatureCheckPatterns = {
5
+ check: 'gestorDocumental.signatureCheck.check',
6
+ } as const;
7
+
8
+ export interface SignatureCheckContract {
9
+ /** Revisa un PDF ya subido al gestor de archivos (la herramienta «Validar firmas» lo sube antes). */
10
+ [SignatureCheckPatterns.check]: { payload: { fileId: string }; response: PdfSignatureReportEntity };
11
+ }
@@ -10,6 +10,7 @@ import {
10
10
  ProcedureEntity,
11
11
  } from '../../base/entities';
12
12
  import { DocumentTypeSummaryEntity } from '../document';
13
+ import { type PdfSignatureReportEntity } from '../signatureCheck';
13
14
 
14
15
  /** Expediente al que se hace referencia desde otro lado: cómo se cita y en qué estado está. */
15
16
  export interface CaseFileLinkEntity {
@@ -70,6 +71,8 @@ export interface CaseFileEntryResponseEntity {
70
71
  sha256: CaseFileEntryEntity['sha256'];
71
72
  size: CaseFileEntryEntity['size'];
72
73
  hasAdvancedSignature: CaseFileEntryEntity['hasAdvancedSignature'];
74
+ /** Revisión de sus firmas al incorporarlo, en los archivos externos en PDF. */
75
+ signatureCheck: PdfSignatureReportEntity | null;
73
76
  incorporatedByEmployeeId: CaseFileEntryEntity['incorporatedByEmployeeId'];
74
77
  incorporatedByFullName: CaseFileEntryEntity['incorporatedByFullName'];
75
78
  createdAt: CaseFileEntryEntity['createdAt'];
@@ -13,3 +13,4 @@ export * from './textSnippet';
13
13
  export * from './holiday';
14
14
  export * from './indicators';
15
15
  export * from './audit';
16
+ export * from './signatureCheck';
@@ -1,3 +1,4 @@
1
+ import { type PdfSignatureReportEntity } from '../signatureCheck';
1
2
  import {
2
3
  type DocumentDispatchResponseEntity,
3
4
  type DocumentExternalRecipientResponseEntity,
@@ -63,6 +64,8 @@ export interface PartsOfficeInboundEntity {
63
64
  senderPosition: string | null;
64
65
  fileName: string | null;
65
66
  hasFile: boolean;
67
+ /** Revisión de las firmas del documento principal al recibirlo. */
68
+ signatureCheck: PdfSignatureReportEntity | null;
66
69
  attachments: { name: string; url: string | null; hasFile: boolean }[];
67
70
  createdAt: string;
68
71
  registeredAt: string | null;
@@ -0,0 +1 @@
1
+ export * from './signatureCheck.entity';
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Resultado de una firma o del archivo completo: válida, inválida (algo no cuadra) o indeterminada (lo firmado está
3
+ * íntegro, pero falta confirmar algo: la cadena de confianza, la vigencia o cambios posteriores sin firmar).
4
+ */
5
+ export type PdfSignatureStatus = 'Valid' | 'Invalid' | 'Indeterminate';
6
+
7
+ /** Una firma electrónica de un PDF, como se pudo comprobar. */
8
+ export interface PdfSignatureEntity {
9
+ /** Orden en el archivo: 1 es la primera. */
10
+ index: number;
11
+ /** Firma de una persona o sello de tiempo del documento. */
12
+ kind: 'Signature' | 'Timestamp';
13
+ signerName: string | null;
14
+ /** Identificador del titular en el certificado (en Chile, suele ser el RUN). */
15
+ signerSerialNumber: string | null;
16
+ organization: string | null;
17
+ issuerName: string | null;
18
+ certificateSerial: string | null;
19
+ certificateValidFrom: string | null;
20
+ certificateValidTo: string | null;
21
+ signingTime: string | null;
22
+ /** De dónde sale la hora de la firma: sello de tiempo (la más confiable), el certificado firmado o el PDF. */
23
+ signingTimeSource: 'Timestamp' | 'SignedAttribute' | 'PdfDate' | null;
24
+ reason: string | null;
25
+ location: string | null;
26
+ hasTimestamp: boolean;
27
+ /** Lo firmado no cambió y la firma corresponde al certificado. */
28
+ intact: boolean;
29
+ /** La firma abarca el archivo completo (las anteriores a la última, solo su versión). */
30
+ coversWholeDocument: boolean;
31
+ /** El certificado estaba vigente al firmar. `null` si no se sabe cuándo se firmó. */
32
+ certificateValidAtSigning: boolean | null;
33
+ /** Cadena hasta un certificado raíz de confianza. `null` si no hay raíces configuradas. */
34
+ trusted: boolean | null;
35
+ status: PdfSignatureStatus;
36
+ /** Lo que no cuadra o no se pudo confirmar, en palabras. */
37
+ problems: string[];
38
+ }
39
+
40
+ /** Revisión de las firmas de un PDF. */
41
+ export interface PdfSignatureReportEntity {
42
+ checkedAt: string;
43
+ status: 'NoSignatures' | PdfSignatureStatus;
44
+ signatures: PdfSignatureEntity[];
45
+ /** Hay contenido agregado después de la última firma, que no está firmado. */
46
+ modifiedAfterLastSignature: boolean;
47
+ /** Se configuraron certificados raíz para confirmar la cadena de confianza. */
48
+ trustConfigured: boolean;
49
+ /** Huella SHA-256 del archivo revisado. */
50
+ fileSha256: string;
51
+ }