@rudra-js/attested 0.7.3 → 0.7.5
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 +10 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/numerals.d.ts.map +1 -1
- package/dist/numerals.js +62 -88
- package/dist/numerals.js.map +1 -1
- package/dist/phrases.d.ts +3 -2
- package/dist/phrases.d.ts.map +1 -1
- package/dist/phrases.js +71 -27
- package/dist/phrases.js.map +1 -1
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +67 -66
- package/dist/verify.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/numerals.ts +52 -98
- package/src/phrases.ts +73 -31
- package/src/verify.ts +73 -77
package/README.md
CHANGED
|
@@ -102,15 +102,22 @@ is two numbers and a fact of 23 does not stand behind it.
|
|
|
102
102
|
### Layer two — wording. This is the best-effort half.
|
|
103
103
|
|
|
104
104
|
Claims with no number in them: "cheap", "bargain", "on sale", "best-selling",
|
|
105
|
-
"selling fast", "in stock", "free delivery". There is no value to
|
|
106
|
-
there is nothing to invert. It stays a denylist, it stays open and
|
|
105
|
+
"selling fast", "in stock", "free delivery", "trending". There is no value to
|
|
106
|
+
check, so there is nothing to invert. It stays a denylist, it stays open and
|
|
107
107
|
English-first, and every result it produces says so:
|
|
108
108
|
|
|
109
109
|
```ts
|
|
110
110
|
verify('Selling fast', { values: [] }).wording;
|
|
111
|
-
// { supported: false, strength: 'best-effort', checked:
|
|
111
|
+
// { supported: false, strength: 'best-effort', checked: 122, findings: [...] }
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
+
The list also carries generic environmental claims — "eco-friendly", "carbon
|
|
115
|
+
neutral", "sustainable". Under EU Directive 2024/825, applied through each
|
|
116
|
+
country's own law from 27 September 2026, a generic environmental claim is
|
|
117
|
+
unfair unless the trader can show recognised excellent environmental
|
|
118
|
+
performance, and a "neutral" claim based on offsetting is unfair outright. The
|
|
119
|
+
list leaves out the bare word "green", which is too often a colour.
|
|
120
|
+
|
|
114
121
|
Add your own for your own language, and name the wording you stand behind:
|
|
115
122
|
|
|
116
123
|
```ts
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { verify, verifyFields, type BatchResult, type Facts, type FieldResult, type Finding, type Layer, type LayerReport, type VerifyResult, } from './verify.js';
|
|
2
|
-
export { BANNED_PHRASES } from './phrases.js';
|
|
2
|
+
export { BANNED_PHRASES, foldLookalikes } from './phrases.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
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,EACL,MAAM,EACN,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,GAQb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,GAQb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/numerals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numerals.d.ts","sourceRoot":"","sources":["../src/numerals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"numerals.d.ts","sourceRoot":"","sources":["../src/numerals.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAC;CAChD;AA+FD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAGlD;AAkCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ1F"}
|
package/dist/numerals.js
CHANGED
|
@@ -7,21 +7,23 @@ const RUN = `\\p{Nd}+(?:[${SEPARATORS}]\\p{Nd}+)*`;
|
|
|
7
7
|
const MAGNITUDE = '(?:[十百千万萬億亿兆]|[kKMB](?!\\p{L}))';
|
|
8
8
|
const OTHER_NUMERAL = '[\\p{No}\\p{Nl}]+';
|
|
9
9
|
const SCAN = new RegExp(`${RUN}${MAGNITUDE}|${RUN}|${OTHER_NUMERAL}`, 'gu');
|
|
10
|
-
const
|
|
10
|
+
const GROUPING_MARK = new RegExp(`[${GROUPING_ONLY}]`, 'u');
|
|
11
|
+
const SEPARATOR = new RegExp(`[${SEPARATORS}]`, 'gu');
|
|
11
12
|
const IS_DIGIT = /^\p{Nd}$/u;
|
|
12
13
|
const STARTS_DIGIT = /^\p{Nd}/u;
|
|
13
14
|
const ENDS_DIGIT = /\p{Nd}$/u;
|
|
14
|
-
const
|
|
15
|
+
const runStartOf = new Map();
|
|
15
16
|
function digitValue(char) {
|
|
16
17
|
const code = char.codePointAt(0) ?? 0;
|
|
17
|
-
let
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
while (
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
let runStart = runStartOf.get(code);
|
|
19
|
+
if (runStart === undefined) {
|
|
20
|
+
runStart = code;
|
|
21
|
+
while (runStart > 0 && IS_DIGIT.test(String.fromCodePoint(runStart - 1)))
|
|
22
|
+
runStart -= 1;
|
|
23
|
+
runStartOf.set(code, runStart);
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const offsetInRun = code - runStart;
|
|
26
|
+
return offsetInRun % 10;
|
|
25
27
|
}
|
|
26
28
|
function toAscii(token) {
|
|
27
29
|
let out = '';
|
|
@@ -44,108 +46,80 @@ function canonical(whole, fraction) {
|
|
|
44
46
|
function isGrouping(groups) {
|
|
45
47
|
if (groups.length === 1)
|
|
46
48
|
return true;
|
|
47
|
-
if ((groups
|
|
49
|
+
if ((groups.at(-1) ?? '').length !== 3)
|
|
48
50
|
return false;
|
|
49
|
-
let three = true;
|
|
50
|
-
let two = true;
|
|
51
|
-
for (let index = 1; index < groups.length - 1; index += 1) {
|
|
52
|
-
const size = (groups[index] ?? '').length;
|
|
53
|
-
if (size !== 3)
|
|
54
|
-
three = false;
|
|
55
|
-
if (size !== 2)
|
|
56
|
-
two = false;
|
|
57
|
-
}
|
|
58
51
|
const lead = (groups[0] ?? '').length;
|
|
59
|
-
|
|
52
|
+
const middle = groups.slice(1, -1);
|
|
53
|
+
if (middle.every((group) => group.length === 3))
|
|
60
54
|
return lead >= 1 && lead <= 3;
|
|
61
|
-
if (
|
|
55
|
+
if (middle.every((group) => group.length === 2))
|
|
62
56
|
return lead >= 1 && lead <= 2;
|
|
63
57
|
return false;
|
|
64
58
|
}
|
|
65
|
-
function
|
|
66
|
-
for (const
|
|
67
|
-
if (
|
|
68
|
-
return false;
|
|
69
|
-
if (DECIMAL_ONLY.includes(separator))
|
|
59
|
+
function sameGroupingMark(marks) {
|
|
60
|
+
for (const mark of marks) {
|
|
61
|
+
if (mark !== marks[0] || mark === DECIMAL_ONLY)
|
|
70
62
|
return false;
|
|
71
63
|
}
|
|
72
64
|
return true;
|
|
73
65
|
}
|
|
74
66
|
function formsOf(token) {
|
|
75
67
|
const ascii = toAscii(token);
|
|
76
|
-
const groups =
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (SEPARATORS.includes(char)) {
|
|
81
|
-
groups.push(current);
|
|
82
|
-
separators.push(char);
|
|
83
|
-
current = '';
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
current += char;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
groups.push(current);
|
|
90
|
-
if (separators.length === 0)
|
|
91
|
-
return [canonical(groups[0] ?? '', '')];
|
|
68
|
+
const groups = ascii.split(SEPARATOR);
|
|
69
|
+
const marks = ascii.match(SEPARATOR) ?? [];
|
|
70
|
+
if (marks.length === 0)
|
|
71
|
+
return [canonical(ascii, '')];
|
|
92
72
|
const forms = [];
|
|
93
|
-
|
|
73
|
+
const grouped = sameGroupingMark(marks) && isGrouping(groups);
|
|
74
|
+
if (grouped)
|
|
94
75
|
forms.push(canonical(groups.join(''), ''));
|
|
95
76
|
const whole = groups.slice(0, -1);
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
77
|
+
const fraction = groups.at(-1) ?? '';
|
|
78
|
+
const groupingMarks = marks.slice(0, -1);
|
|
79
|
+
const decimalMark = marks.at(-1) ?? '';
|
|
80
|
+
if (grouped && groupingMarks.length === 0 && fraction.length === 3)
|
|
81
|
+
return forms;
|
|
82
|
+
if (GROUPING_ONLY.includes(decimalMark))
|
|
83
|
+
return forms;
|
|
84
|
+
if (!sameGroupingMark(groupingMarks))
|
|
85
|
+
return forms;
|
|
86
|
+
if (groupingMarks[0] === decimalMark)
|
|
87
|
+
return forms;
|
|
88
|
+
if (!isGrouping(whole))
|
|
89
|
+
return forms;
|
|
90
|
+
forms.push(canonical(whole.join(''), fraction));
|
|
107
91
|
return forms;
|
|
108
92
|
}
|
|
109
|
-
function
|
|
110
|
-
if (!STARTS_DIGIT.test(token))
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (!ENDS_DIGIT.test(token)) {
|
|
115
|
-
found.push({ token, forms: [], kind: 'magnitude' });
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
93
|
+
function numeralsOf(token) {
|
|
94
|
+
if (!STARTS_DIGIT.test(token))
|
|
95
|
+
return [{ token, forms: [], kind: 'other-numeral' }];
|
|
96
|
+
if (!ENDS_DIGIT.test(token))
|
|
97
|
+
return [{ token, forms: [], kind: 'magnitude' }];
|
|
118
98
|
const forms = formsOf(token);
|
|
119
|
-
if (forms.length > 0)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
found.push({ token, forms: [toAscii(token)], kind: 'digits' });
|
|
99
|
+
if (forms.length > 0)
|
|
100
|
+
return [{ token, forms, kind: 'digits' }];
|
|
101
|
+
if (!GROUPING_MARK.test(token))
|
|
102
|
+
return [{ token, forms: [toAscii(token)], kind: 'digits' }];
|
|
103
|
+
return token
|
|
104
|
+
.split(GROUPING_MARK)
|
|
105
|
+
.filter((part) => part.length > 0)
|
|
106
|
+
.flatMap((part) => numeralsOf(part));
|
|
131
107
|
}
|
|
132
108
|
export function numeralsIn(text) {
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
collect(found, match[0]);
|
|
136
|
-
return found;
|
|
109
|
+
const visible = stripMarks(stripInvisible(text));
|
|
110
|
+
return [...visible.matchAll(SCAN)].flatMap((match) => numeralsOf(match[0]));
|
|
137
111
|
}
|
|
138
112
|
const BARE_EXPONENT = /^[+-]?\d+(?:\.\d+)?[eE][+-]?\d+$/;
|
|
139
113
|
const DIGIT_LIMIT = 1000;
|
|
140
114
|
function positional(written) {
|
|
141
|
-
const
|
|
142
|
-
if (
|
|
115
|
+
const exponentAt = written.search(/[eE]/);
|
|
116
|
+
if (exponentAt < 0)
|
|
143
117
|
return written;
|
|
144
|
-
const power = Number(written.slice(
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
const digits =
|
|
148
|
-
const place = (
|
|
118
|
+
const power = Number(written.slice(exponentAt + 1));
|
|
119
|
+
const mantissa = written.slice(0, exponentAt).replace(/^[+-]/, '');
|
|
120
|
+
const dot = mantissa.indexOf('.');
|
|
121
|
+
const digits = mantissa.replace('.', '');
|
|
122
|
+
const place = (dot < 0 ? mantissa.length : dot) + power;
|
|
149
123
|
if (place <= 0) {
|
|
150
124
|
if (digits.length - place > DIGIT_LIMIT)
|
|
151
125
|
return '';
|
|
@@ -158,7 +132,7 @@ function positional(written) {
|
|
|
158
132
|
}
|
|
159
133
|
return `${digits.slice(0, place)}.${digits.slice(place)}`;
|
|
160
134
|
}
|
|
161
|
-
function
|
|
135
|
+
function textOf(value) {
|
|
162
136
|
if (typeof value === 'number')
|
|
163
137
|
return positional(String(value));
|
|
164
138
|
if (typeof value !== 'string')
|
|
@@ -169,7 +143,7 @@ function digitsOf(value) {
|
|
|
169
143
|
export function supportedValues(values) {
|
|
170
144
|
const supported = new Set();
|
|
171
145
|
for (const value of values) {
|
|
172
|
-
for (const numeral of numeralsIn(
|
|
146
|
+
for (const numeral of numeralsIn(textOf(value))) {
|
|
173
147
|
for (const form of numeral.forms)
|
|
174
148
|
supported.add(form);
|
|
175
149
|
}
|
package/dist/numerals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numerals.js","sourceRoot":"","sources":["../src/numerals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,SAAS,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"numerals.js","sourceRoot":"","sources":["../src/numerals.ts"],"names":[],"mappings":"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"}
|
package/dist/phrases.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const BANNED_PHRASES: readonly string[];
|
|
2
|
+
export declare function foldLookalikes(text: string, byLook?: boolean): string;
|
|
2
3
|
export declare function normalisePhrasing(text: string, byLook?: boolean): string;
|
|
3
4
|
export interface Span {
|
|
4
5
|
start: number;
|
|
@@ -6,8 +7,8 @@ export interface Span {
|
|
|
6
7
|
}
|
|
7
8
|
export interface Indexed {
|
|
8
9
|
text: string;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
squeezed: string;
|
|
11
|
+
offsets: number[];
|
|
11
12
|
}
|
|
12
13
|
export declare function indexPhrasing(text: string): Indexed;
|
|
13
14
|
export declare function spansIn(indexed: Indexed, phrase: string): Span[];
|
package/dist/phrases.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phrases.d.ts","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"phrases.d.ts","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EA2H3C,CAAC;AAgEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAKnE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAMtE;AAQD,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYnD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CA2BhE"}
|
package/dist/phrases.js
CHANGED
|
@@ -60,6 +60,9 @@ export const BANNED_PHRASES = [
|
|
|
60
60
|
'limited time',
|
|
61
61
|
'today only',
|
|
62
62
|
'ends soon',
|
|
63
|
+
'ends today',
|
|
64
|
+
'ends tonight',
|
|
65
|
+
'ends at midnight',
|
|
63
66
|
'hurry',
|
|
64
67
|
'act fast',
|
|
65
68
|
'do not miss',
|
|
@@ -80,7 +83,45 @@ export const BANNED_PHRASES = [
|
|
|
80
83
|
'star rating',
|
|
81
84
|
'customer favourite',
|
|
82
85
|
'customer favorite',
|
|
86
|
+
'trending',
|
|
87
|
+
'others are looking',
|
|
88
|
+
'people are looking',
|
|
89
|
+
'others are viewing',
|
|
90
|
+
'people are viewing',
|
|
91
|
+
'others are buying',
|
|
92
|
+
'people are buying',
|
|
93
|
+
'in other carts',
|
|
94
|
+
'in other baskets',
|
|
83
95
|
'money back',
|
|
96
|
+
'eco friendly',
|
|
97
|
+
'environmentally friendly',
|
|
98
|
+
'planet friendly',
|
|
99
|
+
'earth friendly',
|
|
100
|
+
'nature friendly',
|
|
101
|
+
'climate friendly',
|
|
102
|
+
'carbon friendly',
|
|
103
|
+
'good for the planet',
|
|
104
|
+
'kind to the planet',
|
|
105
|
+
'gentle on the environment',
|
|
106
|
+
'ecological',
|
|
107
|
+
'ecologically',
|
|
108
|
+
'environmentally correct',
|
|
109
|
+
'eco conscious',
|
|
110
|
+
'environmentally conscious',
|
|
111
|
+
'sustainable',
|
|
112
|
+
'sustainably',
|
|
113
|
+
'biodegradable',
|
|
114
|
+
'compostable',
|
|
115
|
+
'biobased',
|
|
116
|
+
'energy efficient',
|
|
117
|
+
'carbon neutral',
|
|
118
|
+
'climate neutral',
|
|
119
|
+
'net zero',
|
|
120
|
+
'carbon negative',
|
|
121
|
+
'carbon positive',
|
|
122
|
+
'climate positive',
|
|
123
|
+
'carbon offset',
|
|
124
|
+
'zero waste',
|
|
84
125
|
];
|
|
85
126
|
const CONFUSABLES = {
|
|
86
127
|
а: 'a',
|
|
@@ -114,7 +155,6 @@ const CONFUSABLES = {
|
|
|
114
155
|
ϳ: 'j',
|
|
115
156
|
ѵ: 'v',
|
|
116
157
|
};
|
|
117
|
-
// Capitals that lowercasing reads wrong: Ν becomes ν, which reads as v.
|
|
118
158
|
const CAPITALS = {
|
|
119
159
|
Β: 'b',
|
|
120
160
|
Ζ: 'z',
|
|
@@ -130,21 +170,25 @@ const CAPITALS = {
|
|
|
130
170
|
Ϝ: 'f',
|
|
131
171
|
Ԍ: 'g',
|
|
132
172
|
};
|
|
173
|
+
const BEFORE_NFKC = {
|
|
174
|
+
ϲ: 'c',
|
|
175
|
+
Ϲ: 'c',
|
|
176
|
+
};
|
|
133
177
|
const LINE_BREAK = /[\n\v\f\r\u0085\u2028\u2029]/;
|
|
134
|
-
|
|
135
|
-
// NFKC would turn the lunate sigmas into ς and Σ, which the fold can't read as c.
|
|
136
|
-
const compatible = stripInvisible(text).replace(/[ϲϹ]/g, 'c').normalize('NFKC');
|
|
137
|
-
let cased = compatible;
|
|
138
|
-
if (byLook) {
|
|
139
|
-
cased = '';
|
|
140
|
-
for (const char of compatible)
|
|
141
|
-
cased += CAPITALS[char] ?? char;
|
|
142
|
-
}
|
|
143
|
-
const lowered = stripMarks(cased.toLowerCase().normalize('NFC'));
|
|
178
|
+
function foldChars(text, table) {
|
|
144
179
|
let folded = '';
|
|
145
|
-
for (const char of
|
|
146
|
-
folded +=
|
|
147
|
-
return folded
|
|
180
|
+
for (const char of text)
|
|
181
|
+
folded += table[char] ?? char;
|
|
182
|
+
return folded;
|
|
183
|
+
}
|
|
184
|
+
export function foldLookalikes(text, byLook = false) {
|
|
185
|
+
const compatible = foldChars(stripInvisible(text), BEFORE_NFKC).normalize('NFKC');
|
|
186
|
+
const cased = byLook ? foldChars(compatible, CAPITALS) : compatible;
|
|
187
|
+
const lowered = stripMarks(cased.toLowerCase().normalize('NFC'));
|
|
188
|
+
return foldChars(lowered, CONFUSABLES);
|
|
189
|
+
}
|
|
190
|
+
export function normalisePhrasing(text, byLook = false) {
|
|
191
|
+
return foldLookalikes(text, byLook)
|
|
148
192
|
.replace(/[\u2018\u2019]/g, "'")
|
|
149
193
|
.replace(/[-_\u2010-\u2015]+/g, ' ')
|
|
150
194
|
.replace(/\s+/g, (run) => (LINE_BREAK.test(run) ? '\n' : ' '))
|
|
@@ -155,37 +199,37 @@ function isGlued(char) {
|
|
|
155
199
|
return char !== undefined && ASCII_WORD.test(char);
|
|
156
200
|
}
|
|
157
201
|
export function indexPhrasing(text) {
|
|
158
|
-
const
|
|
159
|
-
const
|
|
202
|
+
const kept = [];
|
|
203
|
+
const offsets = [];
|
|
160
204
|
for (let index = 0; index < text.length; index += 1) {
|
|
161
205
|
const char = text[index] ?? '';
|
|
162
206
|
if (char === ' ' || char === '\n')
|
|
163
207
|
continue;
|
|
164
|
-
|
|
165
|
-
|
|
208
|
+
kept.push(char);
|
|
209
|
+
offsets.push(index);
|
|
166
210
|
}
|
|
167
|
-
return { text,
|
|
211
|
+
return { text, squeezed: kept.join(''), offsets };
|
|
168
212
|
}
|
|
169
213
|
export function spansIn(indexed, phrase) {
|
|
170
|
-
const { text,
|
|
214
|
+
const { text, squeezed, offsets } = indexed;
|
|
171
215
|
const spans = [];
|
|
172
|
-
const needle = phrase
|
|
216
|
+
const needle = indexPhrasing(phrase).squeezed;
|
|
173
217
|
if (needle.length === 0)
|
|
174
218
|
return spans;
|
|
175
219
|
const guardStart = ASCII_WORD.test(needle[0] ?? '');
|
|
176
220
|
const guardEnd = ASCII_WORD.test(needle[needle.length - 1] ?? '');
|
|
177
221
|
let from = 0;
|
|
178
222
|
for (;;) {
|
|
179
|
-
const at =
|
|
223
|
+
const at = squeezed.indexOf(needle, from);
|
|
180
224
|
if (at === -1)
|
|
181
225
|
return spans;
|
|
182
|
-
const start =
|
|
183
|
-
const end =
|
|
226
|
+
const start = offsets[at] ?? 0;
|
|
227
|
+
const end = offsets[at + needle.length - 1] ?? 0;
|
|
184
228
|
const next = text[end + 1];
|
|
185
229
|
const plural = next === 's' && !isGlued(text[end + 2]);
|
|
186
|
-
const
|
|
187
|
-
const
|
|
188
|
-
if (!
|
|
230
|
+
const gluedBefore = guardStart && isGlued(text[start - 1]);
|
|
231
|
+
const gluedAfter = guardEnd && isGlued(next) && !plural;
|
|
232
|
+
if (!gluedBefore && !gluedAfter)
|
|
189
233
|
spans.push({ start, end });
|
|
190
234
|
from = at + 1;
|
|
191
235
|
}
|
package/dist/phrases.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phrases.js","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,OAAO;IACP,SAAS;IACT,UAAU;IACV,YAAY;IACZ,SAAS;IACT,aAAa;IACb,YAAY;IACZ,WAAW;IACX,aAAa;IACb,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,cAAc;IACd,WAAW;IACX,eAAe;IACf,MAAM;IACN,aAAa;IACb,YAAY;IACZ,UAAU;IACV,UAAU;IACV,YAAY;IACZ,WAAW;IACX,eAAe;IACf,eAAe;IACf,cAAc;IACd,cAAc;IACd,YAAY;IACZ,eAAe;IACf,UAAU;IACV,UAAU;IACV,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,UAAU;IACV,cAAc;IACd,WAAW;IACX,eAAe;IACf,aAAa;IACb,aAAa;IACb,eAAe;IACf,WAAW;IACX,UAAU;IACV,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,aAAa;IACb,cAAc;IACd,YAAY;IACZ,WAAW;IACX,OAAO;IACP,UAAU;IACV,aAAa;IACb,YAAY;IACZ,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,cAAc;IACd,cAAc;IACd,UAAU;IACV,WAAW;IACX,cAAc;IACd,eAAe;IACf,eAAe;IACf,YAAY;IACZ,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,mBAAmB;IACnB,YAAY;CACb,CAAC;AAEF,MAAM,WAAW,GAA2B;IAC1C,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;CACP,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"phrases.js","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"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"}
|
package/dist/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;CAC3B;AAkJD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAE/D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAgBtF"}
|