@qualweb/cui-checks 0.2.2 → 0.3.1
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/CuiChecksModule.d.ts.map +1 -1
- package/dist/CuiChecksModule.js +3 -2
- package/dist/CuiChecksRunner.d.ts +3 -1
- package/dist/CuiChecksRunner.d.ts.map +1 -1
- package/dist/CuiChecksRunner.js +19 -1
- package/dist/__webpack/common-words-pt.txt +10929 -0
- package/dist/__webpack/cui.bundle.js +64533 -1
- package/dist/checks/QW-CUI-C1.d.ts +1 -1
- package/dist/checks/QW-CUI-C1.d.ts.map +1 -1
- package/dist/checks/QW-CUI-C1.js +10 -21
- package/dist/checks/QW-CUI-C10.d.ts +7 -0
- package/dist/checks/QW-CUI-C10.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C10.js +27 -0
- package/dist/checks/QW-CUI-C2.d.ts +7 -0
- package/dist/checks/QW-CUI-C2.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C2.js +63 -0
- package/dist/checks/QW-CUI-C3.d.ts +7 -0
- package/dist/checks/QW-CUI-C3.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C3.js +56 -0
- package/dist/checks/QW-CUI-C4.d.ts +7 -0
- package/dist/checks/QW-CUI-C4.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C4.js +41 -0
- package/dist/checks/QW-CUI-C5.d.ts +7 -0
- package/dist/checks/QW-CUI-C5.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C5.js +66 -0
- package/dist/checks/QW-CUI-C6.d.ts +7 -0
- package/dist/checks/QW-CUI-C6.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C6.js +52 -0
- package/dist/checks/QW-CUI-C7.d.ts +7 -0
- package/dist/checks/QW-CUI-C7.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C7.js +52 -0
- package/dist/checks/QW-CUI-C8.d.ts +7 -0
- package/dist/checks/QW-CUI-C8.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C8.js +27 -0
- package/dist/checks/QW-CUI-C9.d.ts +7 -0
- package/dist/checks/QW-CUI-C9.d.ts.map +1 -0
- package/dist/checks/QW-CUI-C9.js +27 -0
- package/dist/checks/index.d.ts +9 -0
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +9 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/CUIChecksTester.object.d.ts +9 -1
- package/dist/lib/CUIChecksTester.object.d.ts.map +1 -1
- package/dist/lib/CUIChecksTester.object.js +34 -15
- package/dist/lib/Check.object.d.ts +9 -2
- package/dist/lib/Check.object.d.ts.map +1 -1
- package/dist/lib/Check.object.js +4 -2
- package/dist/lib/checks.json +116 -19
- package/dist/lib/currency.d.ts +8 -0
- package/dist/lib/currency.d.ts.map +1 -0
- package/dist/lib/currency.js +76 -0
- package/dist/lib/dates.d.ts +2 -0
- package/dist/lib/dates.d.ts.map +1 -0
- package/dist/lib/dates.js +99 -0
- package/dist/lib/decorator.d.ts +5 -0
- package/dist/lib/decorator.d.ts.map +1 -0
- package/dist/lib/decorator.js +45 -0
- package/dist/lib/language.d.ts +9 -0
- package/dist/lib/language.d.ts.map +1 -0
- package/dist/lib/language.js +21 -0
- package/dist/lib/mapping.d.ts +7 -3
- package/dist/lib/mapping.d.ts.map +1 -1
- package/dist/lib/mapping.js +27 -2
- package/dist/lib/readability.d.ts +23 -0
- package/dist/lib/readability.d.ts.map +1 -0
- package/dist/lib/readability.js +161 -0
- package/dist/lib/selectors.d.ts +8 -0
- package/dist/lib/selectors.d.ts.map +1 -0
- package/dist/lib/selectors.js +2 -0
- package/dist/lib/types.d.ts +6 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/units.d.ts +2 -0
- package/dist/lib/units.d.ts.map +1 -0
- package/dist/lib/units.js +34 -0
- package/package.json +27 -6
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare function setBrowserFilePath(pathStr: string): void;
|
|
2
|
+
export declare function getCommonWords(): Promise<string>;
|
|
3
|
+
export declare function extractWords(textContent: string): string[];
|
|
4
|
+
export declare function countComplexWordsPT(phrases: string[]): Promise<number>;
|
|
5
|
+
export declare function countLetters(str: string): number;
|
|
6
|
+
interface ITextCounters {
|
|
7
|
+
letters: number;
|
|
8
|
+
words: number;
|
|
9
|
+
syllables: number;
|
|
10
|
+
complexWords: number;
|
|
11
|
+
phrases: number;
|
|
12
|
+
}
|
|
13
|
+
type Grade = 'Alta legibilidade' | 'Média legibilidade' | 'Baixa legibilidade' | '';
|
|
14
|
+
export interface IReadibiltyScores {
|
|
15
|
+
resultGrade: Grade;
|
|
16
|
+
result: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function calculateReadabilityScores(counters: ITextCounters, language: string): IReadibiltyScores;
|
|
19
|
+
export declare function getCounters(text: string, language: string): Promise<ITextCounters>;
|
|
20
|
+
export declare function countPhrases(textContent: string): number;
|
|
21
|
+
export declare function readability(text: string, language: string): Promise<IReadibiltyScores>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=readability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readability.d.ts","sourceRoot":"","sources":["../../src/lib/readability.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,QAEjD;AAQD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAYtD;AAOD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAG1D;AAmBD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,KAAK,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,EAAE,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,KAAK,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiBvG;AAyCD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGxF;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQ5F"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.readability = exports.countPhrases = exports.getCounters = exports.calculateReadabilityScores = exports.countLetters = exports.countComplexWordsPT = exports.extractWords = exports.getCommonWords = exports.setBrowserFilePath = void 0;
|
|
7
|
+
const syllable_pt_1 = __importDefault(require("syllable-pt"));
|
|
8
|
+
const en_1 = require("hyphen/en");
|
|
9
|
+
let browserFilePath = '';
|
|
10
|
+
function setBrowserFilePath(pathStr) {
|
|
11
|
+
browserFilePath = pathStr;
|
|
12
|
+
}
|
|
13
|
+
exports.setBrowserFilePath = setBrowserFilePath;
|
|
14
|
+
async function getCommonWords() {
|
|
15
|
+
try {
|
|
16
|
+
const response = await fetch(browserFilePath);
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
console.error('Error reading file:', response.statusText);
|
|
19
|
+
throw new Error(response.statusText);
|
|
20
|
+
}
|
|
21
|
+
return await response.text();
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error('Error fetching file:', error);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.getCommonWords = getCommonWords;
|
|
29
|
+
function extractWords(textContent) {
|
|
30
|
+
const pattern = /[a-zA-Zá-úÁ-ÚüÜçÇ]+(?:-[a-zA-Zá-úÁ-ÚüÜçÇ]+)*/gu;
|
|
31
|
+
return textContent.match(pattern) || [];
|
|
32
|
+
}
|
|
33
|
+
exports.extractWords = extractWords;
|
|
34
|
+
function getPhrases(textContent) {
|
|
35
|
+
const regexPhrases = /[.!?]/g;
|
|
36
|
+
return textContent.split(regexPhrases);
|
|
37
|
+
}
|
|
38
|
+
function isNotComplexHeuristicPT(word) {
|
|
39
|
+
if (/\b[A-Z]{2,}(?:\d+)?(?:\.[A-Z]+)*\b/.test(word)) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if (word[0].toUpperCase() === word[0]) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
let commonWordsSet = null;
|
|
48
|
+
async function countComplexWordsPT(phrases) {
|
|
49
|
+
if (!commonWordsSet) {
|
|
50
|
+
const commonWordsText = await getCommonWords();
|
|
51
|
+
commonWordsSet = new Set(commonWordsText
|
|
52
|
+
.split(/\r?\n/)
|
|
53
|
+
.map(word => word.toLowerCase().trim()));
|
|
54
|
+
}
|
|
55
|
+
let complexWords = 0;
|
|
56
|
+
for (const phrase of phrases) {
|
|
57
|
+
const words = extractWords(phrase);
|
|
58
|
+
for (const word of words) {
|
|
59
|
+
if (isNotComplexHeuristicPT(word))
|
|
60
|
+
continue;
|
|
61
|
+
if (!commonWordsSet.has(word.toLowerCase())) {
|
|
62
|
+
complexWords++;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return complexWords;
|
|
67
|
+
}
|
|
68
|
+
exports.countComplexWordsPT = countComplexWordsPT;
|
|
69
|
+
function countLetters(str) {
|
|
70
|
+
return [...str].filter((char) => /\p{L}/u.test(char)).length;
|
|
71
|
+
}
|
|
72
|
+
exports.countLetters = countLetters;
|
|
73
|
+
function calculateReadabilityScores(counters, language) {
|
|
74
|
+
const metrics = {
|
|
75
|
+
resultGrade: '',
|
|
76
|
+
result: 0
|
|
77
|
+
};
|
|
78
|
+
metrics['result'] = readabilityFormulas[language](counters);
|
|
79
|
+
if (metrics['result'] < 13) {
|
|
80
|
+
metrics['resultGrade'] = 'Alta legibilidade';
|
|
81
|
+
}
|
|
82
|
+
else if (metrics['result'] >= 13 && metrics['result'] < 17) {
|
|
83
|
+
metrics['resultGrade'] = 'Média legibilidade';
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
metrics['resultGrade'] = 'Baixa legibilidade';
|
|
87
|
+
}
|
|
88
|
+
return metrics;
|
|
89
|
+
}
|
|
90
|
+
exports.calculateReadabilityScores = calculateReadabilityScores;
|
|
91
|
+
const getCountersMap = {
|
|
92
|
+
pt: async (text) => {
|
|
93
|
+
const counters = { letters: 0, words: 0, syllables: 0, complexWords: 0, phrases: 0 };
|
|
94
|
+
let words = extractWords(text);
|
|
95
|
+
let phrases = getPhrases(text);
|
|
96
|
+
counters['phrases'] = countPhrases(text);
|
|
97
|
+
counters['letters'] += countLetters(text);
|
|
98
|
+
counters['complexWords'] = await countComplexWordsPT(phrases);
|
|
99
|
+
for (let word of words) {
|
|
100
|
+
let countSyllable = await (0, syllable_pt_1.default)(word);
|
|
101
|
+
counters['words']++;
|
|
102
|
+
counters['syllables'] += countSyllable.split(' ').length;
|
|
103
|
+
}
|
|
104
|
+
return counters;
|
|
105
|
+
},
|
|
106
|
+
en: async (text) => {
|
|
107
|
+
const counters = { letters: 0, words: 0, syllables: 0, complexWords: 0, phrases: 0 };
|
|
108
|
+
let words = extractWords(text);
|
|
109
|
+
counters['phrases'] = countPhrases(text);
|
|
110
|
+
counters['letters'] += countLetters(text);
|
|
111
|
+
counters['complexWords'] = 0;
|
|
112
|
+
for (let word of words) {
|
|
113
|
+
counters['words']++;
|
|
114
|
+
const hyphenated = await (0, en_1.hyphenate)(word);
|
|
115
|
+
let syllableCount = hyphenated.split('\u00AD').length;
|
|
116
|
+
if (syllableCount >= 3) {
|
|
117
|
+
counters['complexWords']++;
|
|
118
|
+
}
|
|
119
|
+
counters['syllables'] += syllableCount;
|
|
120
|
+
}
|
|
121
|
+
return counters;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
async function getCounters(text, language) {
|
|
125
|
+
const fn = getCountersMap[language];
|
|
126
|
+
return fn(text);
|
|
127
|
+
}
|
|
128
|
+
exports.getCounters = getCounters;
|
|
129
|
+
function countPhrases(textContent) {
|
|
130
|
+
const regexPhrases = /[.!?]/g;
|
|
131
|
+
let phrases = textContent.match(regexPhrases);
|
|
132
|
+
return phrases != null ? phrases.length : 1;
|
|
133
|
+
}
|
|
134
|
+
exports.countPhrases = countPhrases;
|
|
135
|
+
async function readability(text, language) {
|
|
136
|
+
if (!(language in readabilityFormulas) || !(language in getCountersMap)) {
|
|
137
|
+
throw new Error(`Unsupported language: ${language}`);
|
|
138
|
+
}
|
|
139
|
+
const counters = await getCounters(text, language);
|
|
140
|
+
let score = calculateReadabilityScores(counters, language);
|
|
141
|
+
return score;
|
|
142
|
+
}
|
|
143
|
+
exports.readability = readability;
|
|
144
|
+
const readabilityFormulas = {
|
|
145
|
+
pt: (counters) => {
|
|
146
|
+
let fleschKincaidGradeLevel = Number.parseFloat((0.36 * (counters.words / counters.phrases) + 10.4 * (counters.syllables / counters.words) - 18).toFixed(1));
|
|
147
|
+
let gunningFogIndexScore = Number.parseFloat((0.49 * (counters.words / counters.phrases) + 19 * (counters.complexWords / counters.words)).toFixed(1));
|
|
148
|
+
let automatedReadabilityIndex = Number.parseFloat((4.6 * (counters.letters / counters.words) + 0.44 * (counters.words / counters.phrases) - 20).toFixed(1));
|
|
149
|
+
let colemanLiauIndexScore = Number.parseFloat((5.4 * (counters.letters / counters.words) - 21 * (counters.phrases / counters.words) - 14).toFixed(1));
|
|
150
|
+
return Math.round((fleschKincaidGradeLevel + gunningFogIndexScore + automatedReadabilityIndex + colemanLiauIndexScore) / 4);
|
|
151
|
+
},
|
|
152
|
+
en: (counters) => {
|
|
153
|
+
let fleschKincaidGradeLevel = Number.parseFloat((0.39 * (counters.words / counters.phrases) + 11.8 * (counters.syllables / counters.words) - 15.59).toFixed(1));
|
|
154
|
+
let gunningFogIndexScore = Number.parseFloat((0.4 * (counters.words / counters.phrases) + 100 * (counters.complexWords / counters.words)).toFixed(1));
|
|
155
|
+
let automatedReadabilityIndex = Number.parseFloat((4.71 * (counters.letters / counters.words) + 0.5 * (counters.words / counters.phrases) - 21.43).toFixed(1));
|
|
156
|
+
let colemanLiauIndexScore = Number.parseFloat((0.0588 * (counters.letters / counters.words) -
|
|
157
|
+
0.296 * ((counters.phrases * 100) / counters.words) -
|
|
158
|
+
15.8).toFixed(1));
|
|
159
|
+
return Math.round((fleschKincaidGradeLevel + gunningFogIndexScore + automatedReadabilityIndex + colemanLiauIndexScore) / 4);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/lib/selectors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAC,MAAM,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAC;IAChB,MAAM,EAAC,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/lib/units.ts"],"names":[],"mappings":"AA2BA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAC,IAAI,EAAC,MAAM,GAAG,OAAO,GAAG,IAAI,CAyBhF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recognizeUnitByLocale = void 0;
|
|
4
|
+
const recognizers_text_number_with_unit_1 = require("@microsoft/recognizers-text-number-with-unit");
|
|
5
|
+
const cultureMapping = {
|
|
6
|
+
'en': recognizers_text_number_with_unit_1.Culture.English,
|
|
7
|
+
'fr': recognizers_text_number_with_unit_1.Culture.French,
|
|
8
|
+
'de': recognizers_text_number_with_unit_1.Culture.German,
|
|
9
|
+
'it': recognizers_text_number_with_unit_1.Culture.Italian,
|
|
10
|
+
'es': recognizers_text_number_with_unit_1.Culture.Spanish,
|
|
11
|
+
'pt': recognizers_text_number_with_unit_1.Culture.Portuguese,
|
|
12
|
+
'nl': recognizers_text_number_with_unit_1.Culture.Dutch,
|
|
13
|
+
};
|
|
14
|
+
function recognizeUnitByLocale(locale, text) {
|
|
15
|
+
const language = locale.split('-')[0];
|
|
16
|
+
if (!(language in cultureMapping)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
let results = (0, recognizers_text_number_with_unit_1.recognizeDimension)(text, cultureMapping[language]);
|
|
20
|
+
console.log('Recognized dimensions:', JSON.stringify(results));
|
|
21
|
+
if (results.length > 0) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
for (const lang in cultureMapping) {
|
|
25
|
+
if (lang !== language) {
|
|
26
|
+
results = (0, recognizers_text_number_with_unit_1.recognizeDimension)(text, cultureMapping[lang]);
|
|
27
|
+
if (results.length > 0) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
exports.recognizeUnitByLocale = recognizeUnitByLocale;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qualweb/cui-checks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Accessibility tests for conversational user interfaces",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*"
|
|
@@ -20,12 +20,13 @@
|
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"tsc": "tsc",
|
|
23
|
-
"test": "mocha",
|
|
23
|
+
"test": "mocha --require ts-node/register --tsconfig ./tsconfig.test.json",
|
|
24
24
|
"lint": "eslint",
|
|
25
25
|
"format": "prettier src/**/*.ts --write",
|
|
26
26
|
"clean": "rimraf dist",
|
|
27
27
|
"build": "tsc --build tsconfig.prod.json && webpack",
|
|
28
|
-
"prepublishOnly": "npm run build"
|
|
28
|
+
"prepublishOnly": "npm run build",
|
|
29
|
+
"postinstall": "node -e \"const fs=require('fs'); if(fs.existsSync('./fix-syllable-pt.js')) require('./fix-syllable-pt.js')\""
|
|
29
30
|
},
|
|
30
31
|
"homepage": "https://github.com/qualweb/qualweb/blob/main/packages/cui-checks",
|
|
31
32
|
"repository": {
|
|
@@ -39,22 +40,42 @@
|
|
|
39
40
|
"author": "",
|
|
40
41
|
"license": "ISC",
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@qualweb/core": "^0.8.
|
|
43
|
+
"@qualweb/core": "^0.8.5",
|
|
43
44
|
"@qualweb/locale": "0.2.2",
|
|
44
45
|
"@qualweb/qw-page": "0.3.2",
|
|
45
|
-
"@qualweb/util": "0.6.
|
|
46
|
+
"@qualweb/util": "0.6.4",
|
|
46
47
|
"@tsconfig/recommended": "^1.0.3",
|
|
48
|
+
"@types/hyphen": "^1.6.7",
|
|
49
|
+
"@types/intl": "^1.2.2",
|
|
50
|
+
"@types/langdetect": "^0.2.2",
|
|
51
|
+
"@types/luxon": "^3.6.2",
|
|
47
52
|
"@types/mocha": "^10.0.6",
|
|
48
|
-
"@types/node": "^16.
|
|
53
|
+
"@types/node": "^16.18.126",
|
|
49
54
|
"@types/node-fetch": "^2.6.11",
|
|
55
|
+
"@types/sinon": "^17.0.3",
|
|
56
|
+
"@types/utf8": "^3.0.3",
|
|
50
57
|
"chai": "^4.4.1",
|
|
51
58
|
"mocha": "^10.2.0",
|
|
59
|
+
"npm": "^11.1.0",
|
|
60
|
+
"nyc": "^17.1.0",
|
|
52
61
|
"prettier": "^3.1.1",
|
|
53
62
|
"puppeteer": "^22.12.1",
|
|
54
63
|
"rimraf": "^5.0.5",
|
|
64
|
+
"sinon": "^19.0.2",
|
|
65
|
+
"ts-jest": "^29.2.5",
|
|
55
66
|
"ts-node": "^10.9.2",
|
|
56
67
|
"typescript": "^4.7.4",
|
|
57
68
|
"webpack": "^5.89.0",
|
|
58
69
|
"webpack-cli": "^4.9.1"
|
|
70
|
+
},
|
|
71
|
+
"dependencies": {
|
|
72
|
+
"@microsoft/recognizers-text-number-with-unit": "^1.3.0",
|
|
73
|
+
"hyphen": "^1.10.6",
|
|
74
|
+
"locale-currency": "^0.0.4",
|
|
75
|
+
"luxon": "^3.6.1",
|
|
76
|
+
"syllable": "^5.0.1",
|
|
77
|
+
"syllable-pt": "^1.0.4",
|
|
78
|
+
"tinyld": "^1.3.4",
|
|
79
|
+
"utf8": "^3.0.0"
|
|
59
80
|
}
|
|
60
81
|
}
|