@besales/anonymizer 0.1.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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/anonymizer.d.ts +31 -0
  4. package/dist/anonymizer.d.ts.map +1 -0
  5. package/dist/anonymizer.js +175 -0
  6. package/dist/anonymizer.js.map +1 -0
  7. package/dist/constants.d.ts +11 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +16 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/detectors/contextual.detector.d.ts +10 -0
  12. package/dist/detectors/contextual.detector.d.ts.map +1 -0
  13. package/dist/detectors/contextual.detector.js +56 -0
  14. package/dist/detectors/contextual.detector.js.map +1 -0
  15. package/dist/detectors/detection-pipeline.d.ts +6 -0
  16. package/dist/detectors/detection-pipeline.d.ts.map +1 -0
  17. package/dist/detectors/detection-pipeline.js +102 -0
  18. package/dist/detectors/detection-pipeline.js.map +1 -0
  19. package/dist/detectors/detector.interface.d.ts +6 -0
  20. package/dist/detectors/detector.interface.d.ts.map +1 -0
  21. package/dist/detectors/detector.interface.js +3 -0
  22. package/dist/detectors/detector.interface.js.map +1 -0
  23. package/dist/detectors/dictionary.detector.d.ts +12 -0
  24. package/dist/detectors/dictionary.detector.d.ts.map +1 -0
  25. package/dist/detectors/dictionary.detector.js +222 -0
  26. package/dist/detectors/dictionary.detector.js.map +1 -0
  27. package/dist/detectors/regex.detector.d.ts +10 -0
  28. package/dist/detectors/regex.detector.d.ts.map +1 -0
  29. package/dist/detectors/regex.detector.js +41 -0
  30. package/dist/detectors/regex.detector.js.map +1 -0
  31. package/dist/index.d.ts +20 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +27 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/llm-protocol/response-validator.d.ts +5 -0
  36. package/dist/llm-protocol/response-validator.d.ts.map +1 -0
  37. package/dist/llm-protocol/response-validator.js +96 -0
  38. package/dist/llm-protocol/response-validator.js.map +1 -0
  39. package/dist/llm-protocol/system-prompt-builder.d.ts +2 -0
  40. package/dist/llm-protocol/system-prompt-builder.d.ts.map +1 -0
  41. package/dist/llm-protocol/system-prompt-builder.js +8 -0
  42. package/dist/llm-protocol/system-prompt-builder.js.map +1 -0
  43. package/dist/locales/index.d.ts +9 -0
  44. package/dist/locales/index.d.ts.map +1 -0
  45. package/dist/locales/index.js +15 -0
  46. package/dist/locales/index.js.map +1 -0
  47. package/dist/locales/locale.interface.d.ts +35 -0
  48. package/dist/locales/locale.interface.d.ts.map +1 -0
  49. package/dist/locales/locale.interface.js +3 -0
  50. package/dist/locales/locale.interface.js.map +1 -0
  51. package/dist/locales/ru/data/names.csv +1291 -0
  52. package/dist/locales/ru/data/stopwords.csv +236 -0
  53. package/dist/locales/ru/index.d.ts +3 -0
  54. package/dist/locales/ru/index.d.ts.map +1 -0
  55. package/dist/locales/ru/index.js +227 -0
  56. package/dist/locales/ru/index.js.map +1 -0
  57. package/dist/tokenizer/tokenizer.d.ts +13 -0
  58. package/dist/tokenizer/tokenizer.d.ts.map +1 -0
  59. package/dist/tokenizer/tokenizer.js +50 -0
  60. package/dist/tokenizer/tokenizer.js.map +1 -0
  61. package/dist/traversers/completions.traverser.d.ts +7 -0
  62. package/dist/traversers/completions.traverser.d.ts.map +1 -0
  63. package/dist/traversers/completions.traverser.js +111 -0
  64. package/dist/traversers/completions.traverser.js.map +1 -0
  65. package/dist/traversers/json.traverser.d.ts +12 -0
  66. package/dist/traversers/json.traverser.d.ts.map +1 -0
  67. package/dist/traversers/json.traverser.js +94 -0
  68. package/dist/traversers/json.traverser.js.map +1 -0
  69. package/dist/traversers/responses.traverser.d.ts +8 -0
  70. package/dist/traversers/responses.traverser.d.ts.map +1 -0
  71. package/dist/traversers/responses.traverser.js +86 -0
  72. package/dist/traversers/responses.traverser.js.map +1 -0
  73. package/dist/traversers/text.traverser.d.ts +6 -0
  74. package/dist/traversers/text.traverser.d.ts.map +1 -0
  75. package/dist/traversers/text.traverser.js +15 -0
  76. package/dist/traversers/text.traverser.js.map +1 -0
  77. package/dist/traversers/traverser.interface.d.ts +9 -0
  78. package/dist/traversers/traverser.interface.d.ts.map +1 -0
  79. package/dist/traversers/traverser.interface.js +3 -0
  80. package/dist/traversers/traverser.interface.js.map +1 -0
  81. package/dist/types/anonymize-result.interface.d.ts +23 -0
  82. package/dist/types/anonymize-result.interface.d.ts.map +1 -0
  83. package/dist/types/anonymize-result.interface.js +3 -0
  84. package/dist/types/anonymize-result.interface.js.map +1 -0
  85. package/dist/types/deanonymize-result.interface.d.ts +18 -0
  86. package/dist/types/deanonymize-result.interface.d.ts.map +1 -0
  87. package/dist/types/deanonymize-result.interface.js +3 -0
  88. package/dist/types/deanonymize-result.interface.js.map +1 -0
  89. package/dist/types/detected-entity.interface.d.ts +23 -0
  90. package/dist/types/detected-entity.interface.d.ts.map +1 -0
  91. package/dist/types/detected-entity.interface.js +3 -0
  92. package/dist/types/detected-entity.interface.js.map +1 -0
  93. package/dist/types/detection-context.d.ts +10 -0
  94. package/dist/types/detection-context.d.ts.map +1 -0
  95. package/dist/types/detection-context.js +12 -0
  96. package/dist/types/detection-context.js.map +1 -0
  97. package/dist/types/entity-type.d.ts +16 -0
  98. package/dist/types/entity-type.d.ts.map +1 -0
  99. package/dist/types/entity-type.js +18 -0
  100. package/dist/types/entity-type.js.map +1 -0
  101. package/dist/types/llm-message.interface.d.ts +23 -0
  102. package/dist/types/llm-message.interface.d.ts.map +1 -0
  103. package/dist/types/llm-message.interface.js +3 -0
  104. package/dist/types/llm-message.interface.js.map +1 -0
  105. package/dist/types/llm-validation.interface.d.ts +8 -0
  106. package/dist/types/llm-validation.interface.d.ts.map +1 -0
  107. package/dist/types/llm-validation.interface.js +3 -0
  108. package/dist/types/llm-validation.interface.js.map +1 -0
  109. package/dist/types/malformed-token.interface.d.ts +6 -0
  110. package/dist/types/malformed-token.interface.d.ts.map +1 -0
  111. package/dist/types/malformed-token.interface.js +3 -0
  112. package/dist/types/malformed-token.interface.js.map +1 -0
  113. package/dist/types/mapping-data.interface.d.ts +9 -0
  114. package/dist/types/mapping-data.interface.d.ts.map +1 -0
  115. package/dist/types/mapping-data.interface.js +12 -0
  116. package/dist/types/mapping-data.interface.js.map +1 -0
  117. package/package.json +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.traverser.js","sourceRoot":"","sources":["../../src/traversers/completions.traverser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { TraverserPort, ExtractedString } from './traverser.interface';
2
+ export interface JsonTraverserOptions {
3
+ targetPaths?: string[];
4
+ excludePaths?: string[];
5
+ }
6
+ export declare class JsonTraverser implements TraverserPort<Record<string, unknown>> {
7
+ extractStrings(input: Record<string, unknown>, options?: JsonTraverserOptions): ExtractedString[];
8
+ reassemble(input: Record<string, unknown>, processed: Map<string, string>): Record<string, unknown>;
9
+ }
10
+ export declare function getByPath(obj: unknown, path: string): unknown;
11
+ export declare function setByPath(obj: unknown, path: string, value: unknown): void;
12
+ //# sourceMappingURL=json.traverser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.traverser.d.ts","sourceRoot":"","sources":["../../src/traversers/json.traverser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IAEnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAMD,qBAAa,aACX,YAAW,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,cAAc,CACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,eAAe,EAAE;IAqBpB,UAAU,CACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAU3B;AAeD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAW7D;AAKD,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,IAAI,CAsBN"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonTraverser = void 0;
4
+ exports.getByPath = getByPath;
5
+ exports.setByPath = setByPath;
6
+ class JsonTraverser {
7
+ extractStrings(input, options) {
8
+ const result = [];
9
+ const excludeSet = new Set(options?.excludePaths ?? []);
10
+ if (options?.targetPaths && options.targetPaths.length > 0) {
11
+ for (const targetPath of options.targetPaths) {
12
+ if (excludeSet.has(targetPath))
13
+ continue;
14
+ const value = getByPath(input, targetPath);
15
+ if (typeof value === 'string' && value.length > 0) {
16
+ result.push({ path: targetPath, value });
17
+ }
18
+ }
19
+ }
20
+ else {
21
+ walkObject(input, '', result, excludeSet);
22
+ }
23
+ return result;
24
+ }
25
+ reassemble(input, processed) {
26
+ const cloned = structuredClone(input);
27
+ for (const [path, value] of processed) {
28
+ setByPath(cloned, path, value);
29
+ }
30
+ return cloned;
31
+ }
32
+ }
33
+ exports.JsonTraverser = JsonTraverser;
34
+ function parsePath(path) {
35
+ return path.split(/[.[\]]+/).filter(Boolean);
36
+ }
37
+ function getByPath(obj, path) {
38
+ const segments = parsePath(path);
39
+ let current = obj;
40
+ for (const seg of segments) {
41
+ if (current === null || current === undefined)
42
+ return undefined;
43
+ if (typeof current !== 'object')
44
+ return undefined;
45
+ current = current[seg];
46
+ }
47
+ return current;
48
+ }
49
+ function setByPath(obj, path, value) {
50
+ const segments = parsePath(path);
51
+ if (segments.length === 0)
52
+ return;
53
+ let current = obj;
54
+ for (let i = 0; i < segments.length - 1; i++) {
55
+ const seg = segments[i];
56
+ if (current === null || current === undefined || typeof current !== 'object')
57
+ return;
58
+ const record = current;
59
+ if (record[seg] === undefined || record[seg] === null) {
60
+ const nextSeg = segments[i + 1];
61
+ record[seg] = /^\d+$/.test(nextSeg) ? [] : {};
62
+ }
63
+ current = record[seg];
64
+ }
65
+ if (current !== null && current !== undefined && typeof current === 'object') {
66
+ current[segments[segments.length - 1]] = value;
67
+ }
68
+ }
69
+ function walkObject(obj, currentPath, result, excludeSet) {
70
+ if (obj === null || obj === undefined)
71
+ return;
72
+ if (typeof obj === 'string') {
73
+ if (obj.length > 0 && !excludeSet.has(currentPath)) {
74
+ result.push({ path: currentPath, value: obj });
75
+ }
76
+ return;
77
+ }
78
+ if (Array.isArray(obj)) {
79
+ obj.forEach((item, i) => {
80
+ const itemPath = currentPath ? `${currentPath}[${i}]` : `[${i}]`;
81
+ walkObject(item, itemPath, result, excludeSet);
82
+ });
83
+ return;
84
+ }
85
+ if (typeof obj === 'object') {
86
+ for (const [key, val] of Object.entries(obj)) {
87
+ const keyPath = currentPath ? `${currentPath}.${key}` : key;
88
+ if (excludeSet.has(keyPath))
89
+ continue;
90
+ walkObject(val, keyPath, result, excludeSet);
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=json.traverser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.traverser.js","sourceRoot":"","sources":["../../src/traversers/json.traverser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { TraverserPort, ExtractedString } from './traverser.interface';
2
+ export declare class ResponsesTraverser implements TraverserPort<Record<string, unknown>> {
3
+ private readonly jsonTraverser;
4
+ extractStrings(input: Record<string, unknown>): ExtractedString[];
5
+ reassemble(input: Record<string, unknown>, processed: Map<string, string>): Record<string, unknown>;
6
+ private resolveTargetPaths;
7
+ }
8
+ //# sourceMappingURL=responses.traverser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.traverser.d.ts","sourceRoot":"","sources":["../../src/traversers/responses.traverser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAuBvE,qBAAa,kBACX,YAAW,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE;IAQjE,UAAU,CACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO1B,OAAO,CAAC,kBAAkB;CA4E3B"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponsesTraverser = void 0;
4
+ const json_traverser_1 = require("./json.traverser");
5
+ const DEFAULT_EXCLUDE_PATHS = [
6
+ 'model',
7
+ 'temperature',
8
+ 'max_output_tokens',
9
+ 'top_p',
10
+ 'metadata',
11
+ 'store',
12
+ 'tools',
13
+ 'id',
14
+ 'object',
15
+ 'status',
16
+ 'usage',
17
+ 'created_at',
18
+ ];
19
+ class ResponsesTraverser {
20
+ jsonTraverser = new json_traverser_1.JsonTraverser();
21
+ extractStrings(input) {
22
+ const targetPaths = this.resolveTargetPaths(input);
23
+ return this.jsonTraverser.extractStrings(input, {
24
+ targetPaths: targetPaths.length > 0 ? targetPaths : undefined,
25
+ excludePaths: DEFAULT_EXCLUDE_PATHS,
26
+ });
27
+ }
28
+ reassemble(input, processed) {
29
+ return this.jsonTraverser.reassemble(input, processed);
30
+ }
31
+ resolveTargetPaths(payload) {
32
+ const paths = [];
33
+ if (typeof payload['input'] === 'string') {
34
+ paths.push('input');
35
+ }
36
+ if (Array.isArray(payload['input'])) {
37
+ const input = payload['input'];
38
+ input.forEach((item, i) => {
39
+ if (item && typeof item === 'object') {
40
+ const record = item;
41
+ if (Array.isArray(record['content'])) {
42
+ record['content'].forEach((part, j) => {
43
+ if (part && typeof part === 'object') {
44
+ const partRecord = part;
45
+ if (partRecord['type'] === 'input_text' &&
46
+ typeof partRecord['text'] === 'string') {
47
+ paths.push(`input[${i}].content[${j}].text`);
48
+ }
49
+ }
50
+ });
51
+ }
52
+ }
53
+ });
54
+ }
55
+ if (typeof payload['instructions'] === 'string') {
56
+ paths.push('instructions');
57
+ }
58
+ if (Array.isArray(payload['output'])) {
59
+ const output = payload['output'];
60
+ output.forEach((item, i) => {
61
+ if (!item || typeof item !== 'object')
62
+ return;
63
+ const record = item;
64
+ if (record['type'] === 'message' &&
65
+ Array.isArray(record['content'])) {
66
+ record['content'].forEach((part, j) => {
67
+ if (part && typeof part === 'object') {
68
+ const partRecord = part;
69
+ if (partRecord['type'] === 'output_text' &&
70
+ typeof partRecord['text'] === 'string') {
71
+ paths.push(`output[${i}].content[${j}].text`);
72
+ }
73
+ }
74
+ });
75
+ }
76
+ if (record['type'] === 'function_call' &&
77
+ typeof record['arguments'] === 'string') {
78
+ paths.push(`output[${i}].arguments`);
79
+ }
80
+ });
81
+ }
82
+ return paths;
83
+ }
84
+ }
85
+ exports.ResponsesTraverser = ResponsesTraverser;
86
+ //# sourceMappingURL=responses.traverser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.traverser.js","sourceRoot":"","sources":["../../src/traversers/responses.traverser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { TraverserPort, ExtractedString } from './traverser.interface';
2
+ export declare class TextTraverser implements TraverserPort<string> {
3
+ extractStrings(input: string): ExtractedString[];
4
+ reassemble(_input: string, processed: Map<string, string>): string;
5
+ }
6
+ //# sourceMappingURL=text.traverser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.traverser.d.ts","sourceRoot":"","sources":["../../src/traversers/text.traverser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEvE,qBAAa,aAAc,YAAW,aAAa,CAAC,MAAM,CAAC;IACzD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAKhD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAGnE"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextTraverser = void 0;
4
+ class TextTraverser {
5
+ extractStrings(input) {
6
+ if (!input)
7
+ return [];
8
+ return [{ path: 'text', value: input }];
9
+ }
10
+ reassemble(_input, processed) {
11
+ return processed.get('text') ?? _input;
12
+ }
13
+ }
14
+ exports.TextTraverser = TextTraverser;
15
+ //# sourceMappingURL=text.traverser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.traverser.js","sourceRoot":"","sources":["../../src/traversers/text.traverser.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACxB,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,SAA8B;QACvD,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IACzC,CAAC;CACF;AATD,sCASC"}
@@ -0,0 +1,9 @@
1
+ export interface ExtractedString {
2
+ path: string;
3
+ value: string;
4
+ }
5
+ export interface TraverserPort<TInput> {
6
+ extractStrings(input: TInput): ExtractedString[];
7
+ reassemble(input: TInput, processed: Map<string, string>): TInput;
8
+ }
9
+ //# sourceMappingURL=traverser.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverser.interface.d.ts","sourceRoot":"","sources":["../../src/traversers/traverser.interface.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,aAAa,CAAC,MAAM;IAEnC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;IAGjD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACnE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=traverser.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverser.interface.js","sourceRoot":"","sources":["../../src/traversers/traverser.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { DetectedEntityMeta } from './detected-entity.interface';
2
+ import { EntityType } from './entity-type';
3
+ import { CompletionsMessage } from './llm-message.interface';
4
+ import { MappingData } from './mapping-data.interface';
5
+ export interface AnonymizeTextResult {
6
+ anonymized: string;
7
+ mappingData: MappingData;
8
+ detectedEntities: DetectedEntityMeta[];
9
+ stats: Partial<Record<EntityType, number>>;
10
+ }
11
+ export interface AnonymizeMessagesResult {
12
+ messages: CompletionsMessage[];
13
+ mappingData: MappingData;
14
+ detectedEntities: DetectedEntityMeta[];
15
+ stats: Partial<Record<EntityType, number>>;
16
+ }
17
+ export interface AnonymizePayloadResult<T extends Record<string, unknown>> {
18
+ payload: T;
19
+ mappingData: MappingData;
20
+ detectedEntities: DetectedEntityMeta[];
21
+ stats: Partial<Record<EntityType, number>>;
22
+ }
23
+ //# sourceMappingURL=anonymize-result.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anonymize-result.interface.d.ts","sourceRoot":"","sources":["../../src/types/anonymize-result.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,MAAM,WAAW,mBAAmB;IAElC,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,WAAW,CAAC;IAEzB,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IAEvC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAGD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAGD,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=anonymize-result.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anonymize-result.interface.js","sourceRoot":"","sources":["../../src/types/anonymize-result.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { CompletionsMessage } from './llm-message.interface';
2
+ import { MalformedToken } from './malformed-token.interface';
3
+ export interface DeanonymizeTextResult {
4
+ restored: string;
5
+ unresolvedTokens: string[];
6
+ malformedTokens: MalformedToken[];
7
+ }
8
+ export interface DeanonymizeMessagesResult {
9
+ messages: CompletionsMessage[];
10
+ unresolvedTokens: string[];
11
+ malformedTokens: MalformedToken[];
12
+ }
13
+ export interface DeanonymizePayloadResult<T extends Record<string, unknown>> {
14
+ payload: T;
15
+ unresolvedTokens: string[];
16
+ malformedTokens: MalformedToken[];
17
+ }
18
+ //# sourceMappingURL=deanonymize-result.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deanonymize-result.interface.d.ts","sourceRoot":"","sources":["../../src/types/deanonymize-result.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAGD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAGD,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,OAAO,EAAE,CAAC,CAAC;IACX,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=deanonymize-result.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deanonymize-result.interface.js","sourceRoot":"","sources":["../../src/types/deanonymize-result.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { EntityType } from './entity-type';
2
+ export interface DetectedEntity {
3
+ type: EntityType;
4
+ value: string;
5
+ position: {
6
+ start: number;
7
+ end: number;
8
+ };
9
+ detectedBy: 'regex' | 'dictionary' | 'contextual';
10
+ confidence: number;
11
+ }
12
+ export interface DetectedEntityMeta {
13
+ type: EntityType;
14
+ token: string;
15
+ position: {
16
+ start: number;
17
+ end: number;
18
+ };
19
+ detectedBy: 'regex' | 'dictionary' | 'contextual';
20
+ confidence: number;
21
+ sourcePath: string | null;
22
+ }
23
+ //# sourceMappingURL=detected-entity.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detected-entity.interface.d.ts","sourceRoot":"","sources":["../../src/types/detected-entity.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,UAAU,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,UAAU,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=detected-entity.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detected-entity.interface.js","sourceRoot":"","sources":["../../src/types/detected-entity.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export declare const DETECTION_CONTEXT: {
2
+ readonly SALES_CALL_TRANSCRIPT: "sales_call_transcript";
3
+ readonly CHAT_MESSAGE: "chat_message";
4
+ readonly OUTREACH_MESSAGE: "outreach_message";
5
+ readonly TRAINING_SCENARIO: "training_scenario";
6
+ readonly LEAK_ANALYSIS: "leak_analysis";
7
+ readonly GENERIC: "generic";
8
+ };
9
+ export type DetectionContext = (typeof DETECTION_CONTEXT)[keyof typeof DETECTION_CONTEXT];
10
+ //# sourceMappingURL=detection-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection-context.d.ts","sourceRoot":"","sources":["../../src/types/detection-context.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DETECTION_CONTEXT = void 0;
4
+ exports.DETECTION_CONTEXT = {
5
+ SALES_CALL_TRANSCRIPT: 'sales_call_transcript',
6
+ CHAT_MESSAGE: 'chat_message',
7
+ OUTREACH_MESSAGE: 'outreach_message',
8
+ TRAINING_SCENARIO: 'training_scenario',
9
+ LEAK_ANALYSIS: 'leak_analysis',
10
+ GENERIC: 'generic',
11
+ };
12
+ //# sourceMappingURL=detection-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection-context.js","sourceRoot":"","sources":["../../src/types/detection-context.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,qBAAqB,EAAE,uBAAuB;IAC9C,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;CACV,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare const ENTITY_TYPE: {
2
+ readonly PERSON: "PERSON";
3
+ readonly PHONE: "PHONE";
4
+ readonly EMAIL: "EMAIL";
5
+ readonly INN: "INN";
6
+ readonly PASSPORT: "PASSPORT";
7
+ readonly CARD: "CARD";
8
+ readonly AMOUNT: "AMOUNT";
9
+ readonly DATE_OF_BIRTH: "DATE_OF_BIRTH";
10
+ readonly ADDRESS: "ADDRESS";
11
+ readonly COMPANY: "COMPANY";
12
+ readonly ACCOUNT: "ACCOUNT";
13
+ };
14
+ export type EntityType = (typeof ENTITY_TYPE)[keyof typeof ENTITY_TYPE];
15
+ export declare const ENTITY_TYPES: readonly EntityType[];
16
+ //# sourceMappingURL=entity-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-type.d.ts","sourceRoot":"","sources":["../../src/types/entity-type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW;;;;;;;;;;;;CAYd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACxE,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAA+B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENTITY_TYPES = exports.ENTITY_TYPE = void 0;
4
+ exports.ENTITY_TYPE = {
5
+ PERSON: 'PERSON',
6
+ PHONE: 'PHONE',
7
+ EMAIL: 'EMAIL',
8
+ INN: 'INN',
9
+ PASSPORT: 'PASSPORT',
10
+ CARD: 'CARD',
11
+ AMOUNT: 'AMOUNT',
12
+ DATE_OF_BIRTH: 'DATE_OF_BIRTH',
13
+ ADDRESS: 'ADDRESS',
14
+ COMPANY: 'COMPANY',
15
+ ACCOUNT: 'ACCOUNT',
16
+ };
17
+ exports.ENTITY_TYPES = Object.values(exports.ENTITY_TYPE);
18
+ //# sourceMappingURL=entity-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-type.js","sourceRoot":"","sources":["../../src/types/entity-type.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAGE,QAAA,YAAY,GAA0B,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface CompletionsMessage {
2
+ role: 'system' | 'user' | 'assistant' | 'tool';
3
+ content: string | CompletionsContentPart[] | null;
4
+ tool_calls?: CompletionsToolCall[];
5
+ tool_call_id?: string;
6
+ name?: string;
7
+ }
8
+ export interface CompletionsContentPart {
9
+ type: 'text' | 'image_url';
10
+ text?: string;
11
+ image_url?: {
12
+ url: string;
13
+ };
14
+ }
15
+ export interface CompletionsToolCall {
16
+ id: string;
17
+ type: 'function';
18
+ function: {
19
+ name: string;
20
+ arguments: string;
21
+ };
22
+ }
23
+ //# sourceMappingURL=llm-message.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-message.interface.d.ts","sourceRoot":"","sources":["../../src/types/llm-message.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAClD,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=llm-message.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-message.interface.js","sourceRoot":"","sources":["../../src/types/llm-message.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { MalformedToken } from './malformed-token.interface';
2
+ export interface LlmResponseValidation {
3
+ isValid: boolean;
4
+ missingTokens: string[];
5
+ malformedTokens: MalformedToken[];
6
+ validTokens: string[];
7
+ }
8
+ //# sourceMappingURL=llm-validation.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-validation.interface.d.ts","sourceRoot":"","sources":["../../src/types/llm-validation.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=llm-validation.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-validation.interface.js","sourceRoot":"","sources":["../../src/types/llm-validation.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface MalformedToken {
2
+ found: string;
3
+ suggestedMatch: string | null;
4
+ confidence: number;
5
+ }
6
+ //# sourceMappingURL=malformed-token.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malformed-token.interface.d.ts","sourceRoot":"","sources":["../../src/types/malformed-token.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=malformed-token.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malformed-token.interface.js","sourceRoot":"","sources":["../../src/types/malformed-token.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { EntityType } from './entity-type';
2
+ export interface MappingData {
3
+ version: 1;
4
+ tokens: Record<string, string>;
5
+ nextCounters: Partial<Record<EntityType, number>>;
6
+ reverseIndex: Record<string, string>;
7
+ }
8
+ export declare function createEmptyMapping(): MappingData;
9
+ //# sourceMappingURL=mapping-data.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-data.interface.d.ts","sourceRoot":"","sources":["../../src/types/mapping-data.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,CAAC,CAAC;IAOX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG/B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAOlD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAGD,wBAAgB,kBAAkB,IAAI,WAAW,CAOhD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createEmptyMapping = createEmptyMapping;
4
+ function createEmptyMapping() {
5
+ return {
6
+ version: 1,
7
+ tokens: {},
8
+ nextCounters: {},
9
+ reverseIndex: {},
10
+ };
11
+ }
12
+ //# sourceMappingURL=mapping-data.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-data.interface.js","sourceRoot":"","sources":["../../src/types/mapping-data.interface.ts"],"names":[],"mappings":";;AAiCA,gDAOC;AAPD,SAAgB,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}