@veritas-lex/contract-analysis-package 1.4.8 → 1.5.0
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.
- package/dist/auth/interfaces/jwt-user.interface.d.ts +2 -0
- package/dist/auth/interfaces/jwt-user.interface.d.ts.map +1 -1
- package/dist/config/database.config.d.ts +1 -2
- package/dist/config/database.config.d.ts.map +1 -1
- package/dist/config/database.config.js +2 -4
- package/dist/config/database.config.js.map +1 -1
- package/dist/config/storage.config.js +1 -1
- package/dist/config/storage.config.js.map +1 -1
- package/dist/config/validation.config.d.ts +0 -2
- package/dist/config/validation.config.d.ts.map +1 -1
- package/dist/config/validation.config.js +1 -2
- package/dist/config/validation.config.js.map +1 -1
- package/dist/constants/analysis-queue.constants.d.ts +2 -0
- package/dist/constants/analysis-queue.constants.d.ts.map +1 -1
- package/dist/constants/enums.d.ts +2 -2
- package/dist/constants/enums.d.ts.map +1 -1
- package/dist/constants/enums.js +2 -2
- package/dist/constants/enums.js.map +1 -1
- package/dist/database/entities/base-contract-key-date-rule.entity.js +1 -1
- package/dist/database/entities/base-contract-key-date-rule.entity.js.map +1 -1
- package/dist/database/entities/base-contract-red-flag.entity.js +1 -1
- package/dist/database/entities/base-contract-red-flag.entity.js.map +1 -1
- package/dist/database/entities/extraction-group-example.entity.d.ts +39 -0
- package/dist/database/entities/extraction-group-example.entity.d.ts.map +1 -0
- package/dist/database/entities/extraction-group-example.entity.js +93 -0
- package/dist/database/entities/extraction-group-example.entity.js.map +1 -0
- package/dist/database/entities/index.d.ts +1 -0
- package/dist/database/entities/index.d.ts.map +1 -1
- package/dist/database/entities/index.js +3 -1
- package/dist/database/entities/index.js.map +1 -1
- package/dist/database/index.d.ts +1 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +2 -1
- package/dist/database/index.js.map +1 -1
- package/dist/dto/index.d.ts +2 -0
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +16 -1
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/pii/analyze-pii.dto.d.ts +76 -0
- package/dist/dto/pii/analyze-pii.dto.d.ts.map +1 -0
- package/dist/dto/pii/analyze-pii.dto.js +173 -0
- package/dist/dto/pii/analyze-pii.dto.js.map +1 -0
- package/dist/dto/pii/deanonymized-text-response.dto.d.ts +15 -0
- package/dist/dto/pii/deanonymized-text-response.dto.d.ts.map +1 -0
- package/dist/dto/pii/deanonymized-text-response.dto.js +96 -0
- package/dist/dto/pii/deanonymized-text-response.dto.js.map +1 -0
- package/dist/dto/pii/index.d.ts +7 -0
- package/dist/dto/pii/index.d.ts.map +1 -0
- package/dist/dto/pii/index.js +27 -0
- package/dist/dto/pii/index.js.map +1 -0
- package/dist/dto/pii/pii-contract.dto.d.ts +86 -0
- package/dist/dto/pii/pii-contract.dto.d.ts.map +1 -0
- package/dist/dto/pii/pii-contract.dto.js +331 -0
- package/dist/dto/pii/pii-contract.dto.js.map +1 -0
- package/dist/dto/pii/pii-preview-query.dto.d.ts +9 -0
- package/dist/dto/pii/pii-preview-query.dto.d.ts.map +1 -0
- package/dist/dto/pii/pii-preview-query.dto.js +60 -0
- package/dist/dto/pii/pii-preview-query.dto.js.map +1 -0
- package/dist/dto/pii/reject-pii.dto.d.ts +8 -0
- package/dist/dto/pii/reject-pii.dto.d.ts.map +1 -0
- package/dist/dto/pii/reject-pii.dto.js +36 -0
- package/dist/dto/pii/reject-pii.dto.js.map +1 -0
- package/dist/helpers/log-utils.d.ts +2 -2
- package/dist/helpers/log-utils.js +2 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-pii.dto.d.ts","sourceRoot":"","sources":["../../../src/dto/pii/analyze-pii.dto.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,qBAAa,cAAc;IAGzB,WAAW,EAAE,MAAM,CAAC;IAIpB,KAAK,EAAE,MAAM,CAAC;IAId,GAAG,EAAE,MAAM,CAAC;IAIZ,KAAK,EAAE,MAAM,CAAC;IAId,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAI3B,oBAAoB,CAAC,EAAE;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,aAAa;IAOxB,IAAI,EAAE,MAAM,CAAC;IASb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAWlB,eAAe,CAAC,EAAE,MAAM,CAAC;IAUzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,eAAe;IAM1B,IAAI,EAAE,MAAM,CAAC;IAmBb,gBAAgB,EAAE,cAAc,EAAE,CAAC;IAUnC,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAM7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC5C"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScanContractPiiDto = exports.AnonymizePiiDto = exports.AnalyzePiiDto = exports.AnalyzerResult = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
16
|
+
/**
|
|
17
|
+
* Result from PII analyzer (Presidio compatible)
|
|
18
|
+
*/
|
|
19
|
+
class AnalyzerResult {
|
|
20
|
+
entity_type;
|
|
21
|
+
start;
|
|
22
|
+
end;
|
|
23
|
+
score;
|
|
24
|
+
analysis_explanation;
|
|
25
|
+
recognition_metadata;
|
|
26
|
+
}
|
|
27
|
+
exports.AnalyzerResult = AnalyzerResult;
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, swagger_1.ApiProperty)({ description: 'Type of PII entity detected', example: 'PERSON' }),
|
|
30
|
+
(0, class_validator_1.IsString)(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], AnalyzerResult.prototype, "entity_type", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, swagger_1.ApiProperty)({ description: 'Start position in text', example: 0 }),
|
|
35
|
+
(0, class_validator_1.IsNumber)(),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], AnalyzerResult.prototype, "start", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, swagger_1.ApiProperty)({ description: 'End position in text', example: 8 }),
|
|
40
|
+
(0, class_validator_1.IsNumber)(),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], AnalyzerResult.prototype, "end", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, swagger_1.ApiProperty)({ description: 'Confidence score (0-1)', example: 0.85 }),
|
|
45
|
+
(0, class_validator_1.IsNumber)(),
|
|
46
|
+
__metadata("design:type", Number)
|
|
47
|
+
], AnalyzerResult.prototype, "score", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, swagger_1.ApiPropertyOptional)({ description: 'Explanation of how the entity was detected' }),
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
__metadata("design:type", Object)
|
|
52
|
+
], AnalyzerResult.prototype, "analysis_explanation", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, swagger_1.ApiPropertyOptional)({ description: 'Metadata about the recognizer used' }),
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
__metadata("design:type", Object)
|
|
57
|
+
], AnalyzerResult.prototype, "recognition_metadata", void 0);
|
|
58
|
+
/**
|
|
59
|
+
* DTO for PII analysis request (Presidio compatible)
|
|
60
|
+
*/
|
|
61
|
+
class AnalyzePiiDto {
|
|
62
|
+
text;
|
|
63
|
+
language;
|
|
64
|
+
score_threshold;
|
|
65
|
+
entities;
|
|
66
|
+
}
|
|
67
|
+
exports.AnalyzePiiDto = AnalyzePiiDto;
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, swagger_1.ApiProperty)({
|
|
70
|
+
description: 'Text to analyze for PII entities',
|
|
71
|
+
example: 'John Doe lives at 123 Main St and his email is john@example.com',
|
|
72
|
+
}),
|
|
73
|
+
(0, class_validator_1.IsString)(),
|
|
74
|
+
(0, class_validator_1.MaxLength)(1000000, { message: 'Text cannot exceed 1MB (1,000,000 characters)' }),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], AnalyzePiiDto.prototype, "text", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
79
|
+
description: 'Language of the text (ISO 639-1 code)',
|
|
80
|
+
example: 'en',
|
|
81
|
+
default: 'en',
|
|
82
|
+
}),
|
|
83
|
+
(0, class_validator_1.IsOptional)(),
|
|
84
|
+
(0, class_validator_1.IsString)(),
|
|
85
|
+
__metadata("design:type", String)
|
|
86
|
+
], AnalyzePiiDto.prototype, "language", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
89
|
+
description: 'Minimum confidence score (0-1) for entity detection',
|
|
90
|
+
example: 0.5,
|
|
91
|
+
default: 0.5,
|
|
92
|
+
}),
|
|
93
|
+
(0, class_validator_1.IsOptional)(),
|
|
94
|
+
(0, class_validator_1.IsNumber)(),
|
|
95
|
+
(0, class_validator_1.Min)(0),
|
|
96
|
+
(0, class_validator_1.Max)(1),
|
|
97
|
+
__metadata("design:type", Number)
|
|
98
|
+
], AnalyzePiiDto.prototype, "score_threshold", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
101
|
+
description: 'Specific entity types to detect (e.g., PERSON, EMAIL_ADDRESS, PHONE_NUMBER)',
|
|
102
|
+
example: ['PERSON', 'EMAIL_ADDRESS', 'PHONE_NUMBER'],
|
|
103
|
+
isArray: true,
|
|
104
|
+
}),
|
|
105
|
+
(0, class_validator_1.IsOptional)(),
|
|
106
|
+
(0, class_validator_1.IsArray)(),
|
|
107
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
108
|
+
__metadata("design:type", Array)
|
|
109
|
+
], AnalyzePiiDto.prototype, "entities", void 0);
|
|
110
|
+
/**
|
|
111
|
+
* DTO for PII anonymization request (Presidio compatible)
|
|
112
|
+
*/
|
|
113
|
+
class AnonymizePiiDto {
|
|
114
|
+
text;
|
|
115
|
+
analyzer_results;
|
|
116
|
+
anonymization_type;
|
|
117
|
+
}
|
|
118
|
+
exports.AnonymizePiiDto = AnonymizePiiDto;
|
|
119
|
+
__decorate([
|
|
120
|
+
(0, swagger_1.ApiProperty)({
|
|
121
|
+
description: 'Text to anonymize',
|
|
122
|
+
example: 'John Doe lives at 123 Main St',
|
|
123
|
+
}),
|
|
124
|
+
(0, class_validator_1.IsString)(),
|
|
125
|
+
__metadata("design:type", String)
|
|
126
|
+
], AnonymizePiiDto.prototype, "text", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
(0, swagger_1.ApiProperty)({
|
|
129
|
+
description: 'Analyzer results containing detected PII entities',
|
|
130
|
+
type: 'array',
|
|
131
|
+
example: [
|
|
132
|
+
{
|
|
133
|
+
entity_type: 'PERSON',
|
|
134
|
+
start: 0,
|
|
135
|
+
end: 8,
|
|
136
|
+
score: 0.85,
|
|
137
|
+
analysis_explanation: null,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
isArray: true,
|
|
141
|
+
}),
|
|
142
|
+
(0, class_validator_1.IsArray)(),
|
|
143
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
144
|
+
(0, class_transformer_1.Type)(() => AnalyzerResult),
|
|
145
|
+
__metadata("design:type", Array)
|
|
146
|
+
], AnonymizePiiDto.prototype, "analyzer_results", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
149
|
+
description: 'Anonymization strategy: replace, redact, mask, hash, encrypt',
|
|
150
|
+
example: 'replace',
|
|
151
|
+
default: 'replace',
|
|
152
|
+
}),
|
|
153
|
+
(0, class_validator_1.IsOptional)(),
|
|
154
|
+
(0, class_validator_1.IsString)(),
|
|
155
|
+
(0, class_validator_1.IsEnum)(['replace', 'redact', 'mask', 'hash', 'encrypt']),
|
|
156
|
+
__metadata("design:type", String)
|
|
157
|
+
], AnonymizePiiDto.prototype, "anonymization_type", void 0);
|
|
158
|
+
/**
|
|
159
|
+
* DTO for triggering PII scan on a contract
|
|
160
|
+
*/
|
|
161
|
+
class ScanContractPiiDto {
|
|
162
|
+
contractId;
|
|
163
|
+
}
|
|
164
|
+
exports.ScanContractPiiDto = ScanContractPiiDto;
|
|
165
|
+
__decorate([
|
|
166
|
+
(0, swagger_1.ApiProperty)({
|
|
167
|
+
description: 'Contract ID to scan for PII',
|
|
168
|
+
example: '123e4567-e89b-12d3-a456-426614174000',
|
|
169
|
+
}),
|
|
170
|
+
(0, class_validator_1.IsString)(),
|
|
171
|
+
__metadata("design:type", String)
|
|
172
|
+
], ScanContractPiiDto.prototype, "contractId", void 0);
|
|
173
|
+
//# sourceMappingURL=analyze-pii.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-pii.dto.js","sourceRoot":"","sources":["../../../src/dto/pii/analyze-pii.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response DTO for de-anonymized contract text
|
|
3
|
+
*/
|
|
4
|
+
export declare class GetDeAnonymizedTextResponseDto {
|
|
5
|
+
contractId: string;
|
|
6
|
+
text: string;
|
|
7
|
+
isDeAnonymized: boolean;
|
|
8
|
+
replacementCount: number;
|
|
9
|
+
ocrEngine?: string;
|
|
10
|
+
pageCount?: number;
|
|
11
|
+
language: string;
|
|
12
|
+
characterCount: number;
|
|
13
|
+
restoredEntityTypes: string[];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=deanonymized-text-response.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deanonymized-text-response.dto.d.ts","sourceRoot":"","sources":["../../../src/dto/pii/deanonymized-text-response.dto.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,8BAA8B;IAKzC,UAAU,EAAE,MAAM,CAAC;IAMnB,IAAI,EAAE,MAAM,CAAC;IAMb,cAAc,EAAE,OAAO,CAAC;IAMxB,gBAAgB,EAAE,MAAM,CAAC;IAOzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,QAAQ,EAAE,MAAM,CAAC;IAMjB,cAAc,EAAE,MAAM,CAAC;IAQvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GetDeAnonymizedTextResponseDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
/**
|
|
15
|
+
* Response DTO for de-anonymized contract text
|
|
16
|
+
*/
|
|
17
|
+
class GetDeAnonymizedTextResponseDto {
|
|
18
|
+
contractId;
|
|
19
|
+
text;
|
|
20
|
+
isDeAnonymized;
|
|
21
|
+
replacementCount;
|
|
22
|
+
ocrEngine;
|
|
23
|
+
pageCount;
|
|
24
|
+
language;
|
|
25
|
+
characterCount;
|
|
26
|
+
restoredEntityTypes;
|
|
27
|
+
}
|
|
28
|
+
exports.GetDeAnonymizedTextResponseDto = GetDeAnonymizedTextResponseDto;
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, swagger_1.ApiProperty)({
|
|
31
|
+
description: 'Contract UUID',
|
|
32
|
+
example: '550e8400-e29b-41d4-a716-446655440000',
|
|
33
|
+
}),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], GetDeAnonymizedTextResponseDto.prototype, "contractId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, swagger_1.ApiProperty)({
|
|
38
|
+
description: 'Contract text with original PII restored (de-anonymized)',
|
|
39
|
+
example: 'This agreement is between John Smith and Acme Corporation...',
|
|
40
|
+
}),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], GetDeAnonymizedTextResponseDto.prototype, "text", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, swagger_1.ApiProperty)({
|
|
45
|
+
description: 'Whether this is de-anonymized text (always true for this endpoint)',
|
|
46
|
+
example: true,
|
|
47
|
+
}),
|
|
48
|
+
__metadata("design:type", Boolean)
|
|
49
|
+
], GetDeAnonymizedTextResponseDto.prototype, "isDeAnonymized", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, swagger_1.ApiProperty)({
|
|
52
|
+
description: 'Number of PII replacements performed',
|
|
53
|
+
example: 5,
|
|
54
|
+
}),
|
|
55
|
+
__metadata("design:type", Number)
|
|
56
|
+
], GetDeAnonymizedTextResponseDto.prototype, "replacementCount", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
59
|
+
description: 'OCR engine used (if applicable)',
|
|
60
|
+
required: false,
|
|
61
|
+
example: 'google',
|
|
62
|
+
}),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], GetDeAnonymizedTextResponseDto.prototype, "ocrEngine", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
67
|
+
description: 'Number of pages in the contract',
|
|
68
|
+
required: false,
|
|
69
|
+
example: 12,
|
|
70
|
+
}),
|
|
71
|
+
__metadata("design:type", Number)
|
|
72
|
+
], GetDeAnonymizedTextResponseDto.prototype, "pageCount", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, swagger_1.ApiProperty)({
|
|
75
|
+
description: 'Primary language of the contract',
|
|
76
|
+
example: 'en',
|
|
77
|
+
}),
|
|
78
|
+
__metadata("design:type", String)
|
|
79
|
+
], GetDeAnonymizedTextResponseDto.prototype, "language", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, swagger_1.ApiProperty)({
|
|
82
|
+
description: 'Character count of the text',
|
|
83
|
+
example: 15420,
|
|
84
|
+
}),
|
|
85
|
+
__metadata("design:type", Number)
|
|
86
|
+
], GetDeAnonymizedTextResponseDto.prototype, "characterCount", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, swagger_1.ApiProperty)({
|
|
89
|
+
description: 'List of PII entity types that were restored',
|
|
90
|
+
type: [String],
|
|
91
|
+
example: ['PERSON', 'EMAIL_ADDRESS', 'PHONE_NUMBER'],
|
|
92
|
+
isArray: true,
|
|
93
|
+
}),
|
|
94
|
+
__metadata("design:type", Array)
|
|
95
|
+
], GetDeAnonymizedTextResponseDto.prototype, "restoredEntityTypes", void 0);
|
|
96
|
+
//# sourceMappingURL=deanonymized-text-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deanonymized-text-response.dto.js","sourceRoot":"","sources":["../../../src/dto/pii/deanonymized-text-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AAEnE;;GAEG;AACH,MAAa,8BAA8B;IAKzC,UAAU,CAAS;IAMnB,IAAI,CAAS;IAMb,cAAc,CAAU;IAMxB,gBAAgB,CAAS;IAOzB,SAAS,CAAU;IAOnB,SAAS,CAAU;IAMnB,QAAQ,CAAS;IAMjB,cAAc,CAAS;IAQvB,mBAAmB,CAAW;CAC/B;AA1DD,wEA0DC;AArDC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,sCAAsC;KAChD,CAAC;;kEACiB;AAMnB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,8DAA8D;KACxE,CAAC;;4DACW;AAMb;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oEAAoE;QACjF,OAAO,EAAE,IAAI;KACd,CAAC;;sEACsB;AAMxB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,CAAC;KACX,CAAC;;wEACuB;AAOzB;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,QAAQ;KAClB,CAAC;;iEACiB;AAOnB;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE;KACZ,CAAC;;iEACiB;AAMnB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,IAAI;KACd,CAAC;;gEACe;AAMjB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,KAAK;KACf,CAAC;;sEACqB;AAQvB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC;QACpD,OAAO,EAAE,IAAI;KACd,CAAC;;2EAC4B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AnalyzerResult, AnalyzePiiDto, AnonymizePiiDto, ScanContractPiiDto, } from './analyze-pii.dto';
|
|
2
|
+
export type { AnalyzePiiResponseDto, AnonymizePiiResponseDto, AnonymizedItem, ScanContractPiiResponseDto, } from './analyze-pii.dto';
|
|
3
|
+
export { ApprovePiiDto, ApprovePiiResponseDto, RejectPiiResponseDto, PiiEntityDto, GetPiiEntitiesResponseDto, GetContractTextResponseDto, } from './pii-contract.dto';
|
|
4
|
+
export { GetDeAnonymizedTextResponseDto } from './deanonymized-text-response.dto';
|
|
5
|
+
export { RejectPiiDto } from './reject-pii.dto';
|
|
6
|
+
export { PiiPreviewQueryDto } from './pii-preview-query.dto';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dto/pii/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PiiPreviewQueryDto = exports.RejectPiiDto = exports.GetDeAnonymizedTextResponseDto = exports.GetContractTextResponseDto = exports.GetPiiEntitiesResponseDto = exports.PiiEntityDto = exports.RejectPiiResponseDto = exports.ApprovePiiResponseDto = exports.ApprovePiiDto = exports.ScanContractPiiDto = exports.AnonymizePiiDto = exports.AnalyzePiiDto = exports.AnalyzerResult = void 0;
|
|
4
|
+
// PII Analysis DTOs (Presidio compatible)
|
|
5
|
+
var analyze_pii_dto_1 = require("./analyze-pii.dto");
|
|
6
|
+
Object.defineProperty(exports, "AnalyzerResult", { enumerable: true, get: function () { return analyze_pii_dto_1.AnalyzerResult; } });
|
|
7
|
+
Object.defineProperty(exports, "AnalyzePiiDto", { enumerable: true, get: function () { return analyze_pii_dto_1.AnalyzePiiDto; } });
|
|
8
|
+
Object.defineProperty(exports, "AnonymizePiiDto", { enumerable: true, get: function () { return analyze_pii_dto_1.AnonymizePiiDto; } });
|
|
9
|
+
Object.defineProperty(exports, "ScanContractPiiDto", { enumerable: true, get: function () { return analyze_pii_dto_1.ScanContractPiiDto; } });
|
|
10
|
+
// PII Contract Workflow DTOs
|
|
11
|
+
var pii_contract_dto_1 = require("./pii-contract.dto");
|
|
12
|
+
Object.defineProperty(exports, "ApprovePiiDto", { enumerable: true, get: function () { return pii_contract_dto_1.ApprovePiiDto; } });
|
|
13
|
+
Object.defineProperty(exports, "ApprovePiiResponseDto", { enumerable: true, get: function () { return pii_contract_dto_1.ApprovePiiResponseDto; } });
|
|
14
|
+
Object.defineProperty(exports, "RejectPiiResponseDto", { enumerable: true, get: function () { return pii_contract_dto_1.RejectPiiResponseDto; } });
|
|
15
|
+
Object.defineProperty(exports, "PiiEntityDto", { enumerable: true, get: function () { return pii_contract_dto_1.PiiEntityDto; } });
|
|
16
|
+
Object.defineProperty(exports, "GetPiiEntitiesResponseDto", { enumerable: true, get: function () { return pii_contract_dto_1.GetPiiEntitiesResponseDto; } });
|
|
17
|
+
Object.defineProperty(exports, "GetContractTextResponseDto", { enumerable: true, get: function () { return pii_contract_dto_1.GetContractTextResponseDto; } });
|
|
18
|
+
// PII De-anonymization DTOs
|
|
19
|
+
var deanonymized_text_response_dto_1 = require("./deanonymized-text-response.dto");
|
|
20
|
+
Object.defineProperty(exports, "GetDeAnonymizedTextResponseDto", { enumerable: true, get: function () { return deanonymized_text_response_dto_1.GetDeAnonymizedTextResponseDto; } });
|
|
21
|
+
// PII Rejection DTOs
|
|
22
|
+
var reject_pii_dto_1 = require("./reject-pii.dto");
|
|
23
|
+
Object.defineProperty(exports, "RejectPiiDto", { enumerable: true, get: function () { return reject_pii_dto_1.RejectPiiDto; } });
|
|
24
|
+
// PII Preview Query DTOs
|
|
25
|
+
var pii_preview_query_dto_1 = require("./pii-preview-query.dto");
|
|
26
|
+
Object.defineProperty(exports, "PiiPreviewQueryDto", { enumerable: true, get: function () { return pii_preview_query_dto_1.PiiPreviewQueryDto; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/pii/index.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,qDAK2B;AAJzB,iHAAA,cAAc,OAAA;AACd,gHAAA,aAAa,OAAA;AACb,kHAAA,eAAe,OAAA;AACf,qHAAA,kBAAkB,OAAA;AASpB,6BAA6B;AAC7B,uDAO4B;AAN1B,iHAAA,aAAa,OAAA;AACb,yHAAA,qBAAqB,OAAA;AACrB,wHAAA,oBAAoB,OAAA;AACpB,gHAAA,YAAY,OAAA;AACZ,6HAAA,yBAAyB,OAAA;AACzB,8HAAA,0BAA0B,OAAA;AAG5B,4BAA4B;AAC5B,mFAAkF;AAAzE,gJAAA,8BAA8B,OAAA;AAEvC,qBAAqB;AACrB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AAErB,yBAAyB;AACzB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DTO for PII approval request
|
|
3
|
+
*/
|
|
4
|
+
export declare class ApprovePiiDto {
|
|
5
|
+
approved: boolean;
|
|
6
|
+
notes?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* DTO for PII approval response
|
|
10
|
+
*/
|
|
11
|
+
export declare class ApprovePiiResponseDto {
|
|
12
|
+
success: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
contractId: string;
|
|
15
|
+
status: string;
|
|
16
|
+
workflowResumed?: boolean;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* DTO for PII rejection response
|
|
21
|
+
*/
|
|
22
|
+
export declare class RejectPiiResponseDto {
|
|
23
|
+
success: boolean;
|
|
24
|
+
message: string;
|
|
25
|
+
contractId: string;
|
|
26
|
+
action: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* DTO for individual PII entity
|
|
30
|
+
*/
|
|
31
|
+
export declare class PiiEntityDto {
|
|
32
|
+
text: string;
|
|
33
|
+
type: string;
|
|
34
|
+
score: number;
|
|
35
|
+
risk_level: string;
|
|
36
|
+
start: number;
|
|
37
|
+
end: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* DTO for getting PII entities response
|
|
41
|
+
*/
|
|
42
|
+
export declare class GetPiiEntitiesResponseDto {
|
|
43
|
+
contractId: string;
|
|
44
|
+
hasPii: boolean;
|
|
45
|
+
hasHighRiskPii: boolean;
|
|
46
|
+
piiApproved: boolean;
|
|
47
|
+
pseudonymized: boolean;
|
|
48
|
+
scannedAt: Date;
|
|
49
|
+
approvedAt?: Date;
|
|
50
|
+
entities: PiiEntityDto[];
|
|
51
|
+
totalEntities: number;
|
|
52
|
+
hasMoreEntities?: boolean;
|
|
53
|
+
riskCounts: {
|
|
54
|
+
high: number;
|
|
55
|
+
medium: number;
|
|
56
|
+
low: number;
|
|
57
|
+
};
|
|
58
|
+
riskLevel?: string;
|
|
59
|
+
highRiskTypes?: string[];
|
|
60
|
+
entityPreviews?: Array<{
|
|
61
|
+
type: string;
|
|
62
|
+
preview: string;
|
|
63
|
+
riskLevel: string;
|
|
64
|
+
}>;
|
|
65
|
+
approvalOptions?: {
|
|
66
|
+
canProceed: boolean;
|
|
67
|
+
canProceedWithMasking: boolean;
|
|
68
|
+
canReject: boolean;
|
|
69
|
+
expiresAt: string;
|
|
70
|
+
};
|
|
71
|
+
totalPreviewEntities?: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* DTO for contract text response
|
|
75
|
+
*/
|
|
76
|
+
export declare class GetContractTextResponseDto {
|
|
77
|
+
contractId: string;
|
|
78
|
+
text: string;
|
|
79
|
+
isPseudonymized: boolean;
|
|
80
|
+
ocrEngine?: string;
|
|
81
|
+
pageCount: number;
|
|
82
|
+
language: string;
|
|
83
|
+
characterCount: number;
|
|
84
|
+
maskedEntities?: number;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=pii-contract.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pii-contract.dto.d.ts","sourceRoot":"","sources":["../../../src/dto/pii/pii-contract.dto.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,aAAa;IAMxB,QAAQ,EAAE,OAAO,CAAC;IAQlB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAKhC,OAAO,EAAE,OAAO,CAAC;IAMjB,OAAO,EAAE,MAAM,CAAC;IAMhB,UAAU,EAAE,MAAM,CAAC;IAMnB,MAAM,EAAE,MAAM,CAAC;IAOf,eAAe,CAAC,EAAE,OAAO,CAAC;IAO1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAK/B,OAAO,EAAE,OAAO,CAAC;IAMjB,OAAO,EAAE,MAAM,CAAC;IAMhB,UAAU,EAAE,MAAM,CAAC;IAOnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAY;IAEvB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,EAAE,MAAM,CAAC;IAGd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,yBAAyB;IAEpC,UAAU,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,OAAO,CAAC;IAGhB,cAAc,EAAE,OAAO,CAAC;IAGxB,WAAW,EAAE,OAAO,CAAC;IAGrB,aAAa,EAAE,OAAO,CAAC;IAGvB,SAAS,EAAE,IAAI,CAAC;IAGhB,UAAU,CAAC,EAAE,IAAI,CAAC;IAGlB,QAAQ,EAAE,YAAY,EAAE,CAAC;IAGzB,aAAa,EAAE,MAAM,CAAC;IAOtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IAOF,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAQzB,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IAMH,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAOF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,0BAA0B;IAErC,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,CAAC;IAGb,eAAe,EAAE,OAAO,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAMvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|