pii-vault 0.1.0 → 0.2.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/README.md +22 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/recognizer.d.ts +7 -0
- package/dist/recognizer.d.ts.map +1 -1
- package/dist/recognizer.js +135 -0
- package/dist/recognizer.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,11 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
**Presidio-compatible PII detection, anonymization, and reversible tokenization.**
|
|
4
4
|
|
|
5
|
+
[](https://crates.io/crates/pii-vault)
|
|
6
|
+
[](https://www.npmjs.com/package/pii-vault)
|
|
7
|
+
[](https://pypi.org/project/pii-vault/)
|
|
8
|
+
[](LICENSE-MIT)
|
|
9
|
+
|
|
5
10
|
Multi-language implementations sharing a common specification. Detect 40+ PII entity types, anonymize with multiple strategies (replace, mask, hash, redact), and reversibly tokenize with a persistent vault.
|
|
6
11
|
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Rust
|
|
16
|
+
cargo add pii-vault
|
|
17
|
+
|
|
18
|
+
# TypeScript / JavaScript
|
|
19
|
+
npm install pii-vault
|
|
20
|
+
|
|
21
|
+
# Python
|
|
22
|
+
pip install pii-vault
|
|
23
|
+
|
|
24
|
+
# Go
|
|
25
|
+
go get github.com/Jiansen/pii-vault/go
|
|
26
|
+
```
|
|
27
|
+
|
|
7
28
|
## Features
|
|
8
29
|
|
|
9
30
|
- **29 built-in recognizers** covering 15 countries (US, UK, CN, IN, AU, DE, IT, ES, KR, SG, FI, SE, PL, JP, FR, CA, BR)
|
|
31
|
+
- **Presidio-aligned regex patterns** for core entity types (email, credit card, IP, crypto)
|
|
10
32
|
- **Shared spec**: Recognizer patterns defined as JSON, consumed by all language implementations
|
|
11
33
|
- **Vault**: Deterministic, reversible tokenization with collision handling and context disambiguation
|
|
12
34
|
- **Multiple anonymization strategies**: Replace, Mask, Hash, Redact, Vault
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { EntityType, RecognizerResult, resultText } from './entity';
|
|
2
|
-
export { Recognizer, RegexRecognizer, RecognizerDef, luhnCheck, cnIdCheck } from './recognizer';
|
|
2
|
+
export { Recognizer, RegexRecognizer, RecognizerDef, luhnCheck, cnIdCheck, ukDrivingLicenceCheck } from './recognizer';
|
|
3
3
|
export { Analyzer, AnalyzerResult } from './analyzer';
|
|
4
4
|
export { Vault, VaultEntry } from './vault';
|
|
5
5
|
export { Anonymizer, Operator, AnonymizedResult, AnonymizedItem } from './anonymizer';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Anonymizer = exports.Vault = exports.Analyzer = exports.cnIdCheck = exports.luhnCheck = exports.RegexRecognizer = exports.resultText = exports.EntityType = void 0;
|
|
3
|
+
exports.Anonymizer = exports.Vault = exports.Analyzer = exports.ukDrivingLicenceCheck = exports.cnIdCheck = exports.luhnCheck = exports.RegexRecognizer = exports.resultText = exports.EntityType = void 0;
|
|
4
4
|
var entity_1 = require("./entity");
|
|
5
5
|
Object.defineProperty(exports, "EntityType", { enumerable: true, get: function () { return entity_1.EntityType; } });
|
|
6
6
|
Object.defineProperty(exports, "resultText", { enumerable: true, get: function () { return entity_1.resultText; } });
|
|
@@ -8,6 +8,7 @@ var recognizer_1 = require("./recognizer");
|
|
|
8
8
|
Object.defineProperty(exports, "RegexRecognizer", { enumerable: true, get: function () { return recognizer_1.RegexRecognizer; } });
|
|
9
9
|
Object.defineProperty(exports, "luhnCheck", { enumerable: true, get: function () { return recognizer_1.luhnCheck; } });
|
|
10
10
|
Object.defineProperty(exports, "cnIdCheck", { enumerable: true, get: function () { return recognizer_1.cnIdCheck; } });
|
|
11
|
+
Object.defineProperty(exports, "ukDrivingLicenceCheck", { enumerable: true, get: function () { return recognizer_1.ukDrivingLicenceCheck; } });
|
|
11
12
|
var analyzer_1 = require("./analyzer");
|
|
12
13
|
Object.defineProperty(exports, "Analyzer", { enumerable: true, get: function () { return analyzer_1.Analyzer; } });
|
|
13
14
|
var vault_1 = require("./vault");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoE;AAA3D,oGAAA,UAAU,OAAA;AAAoB,oGAAA,UAAU,OAAA;AACjD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoE;AAA3D,oGAAA,UAAU,OAAA;AAAoB,oGAAA,UAAU,OAAA;AACjD,2CAAuH;AAAlG,6GAAA,eAAe,OAAA;AAAiB,uGAAA,SAAS,OAAA;AAAE,uGAAA,SAAS,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAChG,uCAAsD;AAA7C,oGAAA,QAAQ,OAAA;AACjB,iCAA4C;AAAnC,8FAAA,KAAK,OAAA;AACd,2CAAsF;AAA7E,wGAAA,UAAU,OAAA"}
|
package/dist/recognizer.d.ts
CHANGED
|
@@ -38,4 +38,11 @@ export declare class RegexRecognizer implements Recognizer {
|
|
|
38
38
|
}
|
|
39
39
|
export declare function luhnCheck(number: string): boolean;
|
|
40
40
|
export declare function cnIdCheck(id: string): boolean;
|
|
41
|
+
export declare function ibanCheck(iban: string): boolean;
|
|
42
|
+
export declare function deTaxIdCheck(id: string): boolean;
|
|
43
|
+
export declare function auAbnCheck(abn: string): boolean;
|
|
44
|
+
export declare function auTfnCheck(tfn: string): boolean;
|
|
45
|
+
export declare function auAcnCheck(acn: string): boolean;
|
|
46
|
+
export declare function auMedicareCheck(medicare: string): boolean;
|
|
47
|
+
export declare function ukDrivingLicenceCheck(licence: string): boolean;
|
|
41
48
|
//# sourceMappingURL=recognizer.d.ts.map
|
package/dist/recognizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recognizer.d.ts","sourceRoot":"","sources":["../src/recognizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,eAAgB,YAAW,UAAU;IAUpC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAThC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAET,GAAG,EAAE,aAAa;IAe/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAK9C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE;IAgCjE,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"recognizer.d.ts","sourceRoot":"","sources":["../src/recognizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,eAAgB,YAAW,UAAU;IAUpC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAThC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAET,GAAG,EAAE,aAAa;IAe/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAK9C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE;IAgCjE,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;CAgBjB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAejD;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAW7C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAe/C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAgBhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB9D"}
|
package/dist/recognizer.js
CHANGED
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RegexRecognizer = void 0;
|
|
4
4
|
exports.luhnCheck = luhnCheck;
|
|
5
5
|
exports.cnIdCheck = cnIdCheck;
|
|
6
|
+
exports.ibanCheck = ibanCheck;
|
|
7
|
+
exports.deTaxIdCheck = deTaxIdCheck;
|
|
8
|
+
exports.auAbnCheck = auAbnCheck;
|
|
9
|
+
exports.auTfnCheck = auTfnCheck;
|
|
10
|
+
exports.auAcnCheck = auAcnCheck;
|
|
11
|
+
exports.auMedicareCheck = auMedicareCheck;
|
|
12
|
+
exports.ukDrivingLicenceCheck = ukDrivingLicenceCheck;
|
|
6
13
|
const entity_1 = require("./entity");
|
|
7
14
|
class RegexRecognizer {
|
|
8
15
|
constructor(def) {
|
|
@@ -72,6 +79,34 @@ class RegexRecognizer {
|
|
|
72
79
|
if (!cnIdCheck(matched))
|
|
73
80
|
return false;
|
|
74
81
|
break;
|
|
82
|
+
case 'iban':
|
|
83
|
+
if (!ibanCheck(matched))
|
|
84
|
+
return false;
|
|
85
|
+
break;
|
|
86
|
+
case 'de_tax_id':
|
|
87
|
+
if (!deTaxIdCheck(matched))
|
|
88
|
+
return false;
|
|
89
|
+
break;
|
|
90
|
+
case 'au_abn':
|
|
91
|
+
if (!auAbnCheck(matched))
|
|
92
|
+
return false;
|
|
93
|
+
break;
|
|
94
|
+
case 'au_tfn':
|
|
95
|
+
if (!auTfnCheck(matched))
|
|
96
|
+
return false;
|
|
97
|
+
break;
|
|
98
|
+
case 'au_acn':
|
|
99
|
+
if (!auAcnCheck(matched))
|
|
100
|
+
return false;
|
|
101
|
+
break;
|
|
102
|
+
case 'au_medicare':
|
|
103
|
+
if (!auMedicareCheck(matched))
|
|
104
|
+
return false;
|
|
105
|
+
break;
|
|
106
|
+
case 'uk_driving_licence':
|
|
107
|
+
if (!ukDrivingLicenceCheck(matched))
|
|
108
|
+
return false;
|
|
109
|
+
break;
|
|
75
110
|
}
|
|
76
111
|
}
|
|
77
112
|
return true;
|
|
@@ -110,4 +145,104 @@ function cnIdCheck(id) {
|
|
|
110
145
|
}
|
|
111
146
|
return id[17].toUpperCase() === checkChars[sum % 11];
|
|
112
147
|
}
|
|
148
|
+
function ibanCheck(iban) {
|
|
149
|
+
const cleaned = iban.replace(/[\s-]/g, '');
|
|
150
|
+
if (cleaned.length < 5 || cleaned.length > 34)
|
|
151
|
+
return false;
|
|
152
|
+
const rearranged = cleaned.slice(4) + cleaned.slice(0, 4);
|
|
153
|
+
const numeric = rearranged.split('').map(c => {
|
|
154
|
+
const code = c.charCodeAt(0);
|
|
155
|
+
if (code >= 48 && code <= 57)
|
|
156
|
+
return c;
|
|
157
|
+
return String(code - 55);
|
|
158
|
+
}).join('');
|
|
159
|
+
let remainder = 0;
|
|
160
|
+
for (let i = 0; i < numeric.length; i += 7) {
|
|
161
|
+
const chunk = String(remainder) + numeric.slice(i, i + 7);
|
|
162
|
+
remainder = parseInt(chunk, 10) % 97;
|
|
163
|
+
}
|
|
164
|
+
return remainder === 1;
|
|
165
|
+
}
|
|
166
|
+
function deTaxIdCheck(id) {
|
|
167
|
+
const digits = id.replace(/\D/g, '');
|
|
168
|
+
if (digits.length !== 11)
|
|
169
|
+
return false;
|
|
170
|
+
const d = digits.split('').map(Number);
|
|
171
|
+
if (d[0] === 0)
|
|
172
|
+
return false;
|
|
173
|
+
const first10 = new Set(d.slice(0, 10));
|
|
174
|
+
if (first10.size === 1)
|
|
175
|
+
return false;
|
|
176
|
+
let product = 10;
|
|
177
|
+
for (let i = 0; i < 10; i++) {
|
|
178
|
+
let total = (d[i] + product) % 10;
|
|
179
|
+
if (total === 0)
|
|
180
|
+
total = 10;
|
|
181
|
+
product = (total * 2) % 11;
|
|
182
|
+
}
|
|
183
|
+
let check = 11 - product;
|
|
184
|
+
if (check === 10)
|
|
185
|
+
check = 0;
|
|
186
|
+
return check === d[10];
|
|
187
|
+
}
|
|
188
|
+
function auAbnCheck(abn) {
|
|
189
|
+
const digits = abn.replace(/\D/g, '').split('').map(Number);
|
|
190
|
+
if (digits.length !== 11)
|
|
191
|
+
return false;
|
|
192
|
+
const weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
|
|
193
|
+
const d = [...digits];
|
|
194
|
+
d[0] -= 1;
|
|
195
|
+
const sum = d.reduce((acc, v, i) => acc + v * weights[i], 0);
|
|
196
|
+
return sum % 89 === 0;
|
|
197
|
+
}
|
|
198
|
+
function auTfnCheck(tfn) {
|
|
199
|
+
const digits = tfn.replace(/\D/g, '').split('').map(Number);
|
|
200
|
+
if (digits.length !== 9)
|
|
201
|
+
return false;
|
|
202
|
+
const weights = [1, 4, 3, 7, 5, 8, 6, 9, 10];
|
|
203
|
+
const sum = digits.reduce((acc, v, i) => acc + v * weights[i], 0);
|
|
204
|
+
return sum % 11 === 0;
|
|
205
|
+
}
|
|
206
|
+
function auAcnCheck(acn) {
|
|
207
|
+
const digits = acn.replace(/\D/g, '').split('').map(Number);
|
|
208
|
+
if (digits.length !== 9)
|
|
209
|
+
return false;
|
|
210
|
+
const weights = [8, 7, 6, 5, 4, 3, 2, 1];
|
|
211
|
+
const sum = digits.slice(0, 8).reduce((acc, v, i) => acc + v * weights[i], 0);
|
|
212
|
+
const check = (10 - (sum % 10)) % 10;
|
|
213
|
+
return check === digits[8];
|
|
214
|
+
}
|
|
215
|
+
function auMedicareCheck(medicare) {
|
|
216
|
+
const digits = medicare.replace(/\D/g, '').split('').map(Number);
|
|
217
|
+
if (digits.length < 10 || digits.length > 11)
|
|
218
|
+
return false;
|
|
219
|
+
if (digits[0] < 2 || digits[0] > 6)
|
|
220
|
+
return false;
|
|
221
|
+
const weights = [1, 3, 7, 9, 1, 3, 7, 9];
|
|
222
|
+
const sum = digits.slice(0, 8).reduce((acc, v, i) => acc + v * weights[i], 0);
|
|
223
|
+
return sum % 10 === digits[8];
|
|
224
|
+
}
|
|
225
|
+
function ukDrivingLicenceCheck(licence) {
|
|
226
|
+
const text = licence.toUpperCase();
|
|
227
|
+
if (text.length !== 16)
|
|
228
|
+
return false;
|
|
229
|
+
const surname = text.slice(0, 5);
|
|
230
|
+
// All 9s = no valid surname
|
|
231
|
+
if (surname === '99999')
|
|
232
|
+
return false;
|
|
233
|
+
// Surname must be letters followed by optional 9-padding (no 9 before a letter)
|
|
234
|
+
let seenNine = false;
|
|
235
|
+
for (const c of surname) {
|
|
236
|
+
if (c === '9') {
|
|
237
|
+
seenNine = true;
|
|
238
|
+
}
|
|
239
|
+
else if (seenNine) {
|
|
240
|
+
return false; // Letter after 9 = invalid padding
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Must start with at least one letter
|
|
244
|
+
if (surname[0] >= '0' && surname[0] <= '9')
|
|
245
|
+
return false;
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
113
248
|
//# sourceMappingURL=recognizer.js.map
|
package/dist/recognizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recognizer.js","sourceRoot":"","sources":["../src/recognizer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"recognizer.js","sourceRoot":"","sources":["../src/recognizer.ts"],"names":[],"mappings":"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"}
|