scrabble-solver 2.13.0 → 2.13.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/README.md +3 -3
- package/lerna.json +1 -1
- package/package.json +1 -1
- package/packages/configs/build/locales/roRo.js +17 -14
- package/packages/configs/dictionaries/build/Dictionaries.d.ts +13 -0
- package/packages/configs/dictionaries/build/Dictionaries.js +46 -0
- package/packages/configs/dictionaries/build/constants/index.d.ts +3 -0
- package/packages/configs/dictionaries/build/constants/index.js +11 -0
- package/packages/configs/dictionaries/build/index.d.ts +3 -0
- package/packages/configs/dictionaries/build/index.js +23 -0
- package/packages/configs/dictionaries/build/lib/DiskCache.d.ts +11 -0
- package/packages/configs/dictionaries/build/lib/DiskCache.js +48 -0
- package/packages/configs/dictionaries/build/lib/LayeredCache.d.ts +13 -0
- package/packages/configs/dictionaries/build/lib/LayeredCache.js +55 -0
- package/packages/configs/dictionaries/build/lib/MemoryCache.d.ts +13 -0
- package/packages/configs/dictionaries/build/lib/MemoryCache.js +32 -0
- package/packages/configs/dictionaries/build/lib/createAsyncProxy.d.ts +3 -0
- package/packages/configs/dictionaries/build/lib/createAsyncProxy.js +18 -0
- package/packages/configs/dictionaries/build/lib/createCacheTimestampComparator.d.ts +5 -0
- package/packages/configs/dictionaries/build/lib/createCacheTimestampComparator.js +19 -0
- package/packages/configs/dictionaries/build/lib/downloadDictionary.d.ts +4 -0
- package/packages/configs/dictionaries/build/lib/downloadDictionary.js +16 -0
- package/packages/configs/dictionaries/build/lib/getDictionaryFilepath.d.ts +3 -0
- package/packages/configs/dictionaries/build/lib/getDictionaryFilepath.js +11 -0
- package/packages/configs/dictionaries/build/lib/index.d.ts +7 -0
- package/packages/configs/dictionaries/build/lib/index.js +20 -0
- package/packages/configs/dictionaries/build/types/Cache.d.ts +8 -0
- package/packages/configs/dictionaries/build/types/Cache.js +2 -0
- package/packages/configs/dictionaries/build/types/index.d.ts +1 -0
- package/packages/configs/dictionaries/build/types/index.js +2 -0
- package/packages/configs/package.json +3 -3
- package/packages/configs/src/locales/roRo.ts +17 -14
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/package-lock.json +2 -2
- package/packages/dictionaries/package.json +4 -4
- package/packages/logger/package-lock.json +2 -2
- package/packages/logger/package.json +1 -1
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +3 -3
- package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/277.js +17 -14
- package/packages/scrabble-solver/.next/server/chunks/44.js +22 -27
- package/packages/scrabble-solver/.next/server/chunks/{131.js → 907.js} +924 -2
- package/packages/scrabble-solver/.next/server/chunks/911.js +17 -14
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
- package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/{_app-9c8edd7786319b76.js → _app-b92880dde164b954.js} +1 -1
- package/packages/scrabble-solver/.next/trace +51 -51
- package/packages/scrabble-solver/package-lock.json +2 -2
- package/packages/scrabble-solver/package.json +8 -8
- package/packages/solver/package-lock.json +2 -2
- package/packages/solver/package.json +5 -5
- package/packages/types/package.json +2 -2
- package/packages/word-definitions/package-lock.json +2 -2
- package/packages/word-definitions/package.json +2 -2
- package/packages/word-lists/build/getEsEsWordList.js +10 -6
- package/packages/word-lists/build/getFrFrWordList.js +5 -5
- package/packages/word-lists/build/getRoRoWordList.js +5 -14
- package/packages/word-lists/package-lock.json +15 -2
- package/packages/word-lists/package.json +4 -2
- package/packages/word-lists/src/getEsEsWordList.ts +7 -6
- package/packages/word-lists/src/getFrFrWordList.ts +2 -6
- package/packages/word-lists/src/getRoRoWordList.ts +6 -16
- /package/packages/scrabble-solver/.next/static/{CltG6_MGtxzoDJ0EuX7kt → RJ5_dKU0dHcryeTVO6SSX}/_buildManifest.js +0 -0
- /package/packages/scrabble-solver/.next/static/{CltG6_MGtxzoDJ0EuX7kt → RJ5_dKU0dHcryeTVO6SSX}/_ssgManifest.js +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/scrabble-solver",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/scrabble-solver",
|
|
9
|
-
"version": "2.13.
|
|
9
|
+
"version": "2.13.1",
|
|
10
10
|
"license": "CC BY-NC-ND 4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@floating-ui/react": "^0.22.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/scrabble-solver",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Scrabble Solver 2 - App",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16"
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"@floating-ui/react": "^0.22.3",
|
|
32
32
|
"@kamilmielnik/trie": "^2.0.1",
|
|
33
33
|
"@reduxjs/toolkit": "^1.9.3",
|
|
34
|
-
"@scrabble-solver/configs": "^2.13.
|
|
35
|
-
"@scrabble-solver/constants": "^2.13.
|
|
36
|
-
"@scrabble-solver/dictionaries": "^2.13.
|
|
37
|
-
"@scrabble-solver/logger": "^2.13.
|
|
38
|
-
"@scrabble-solver/solver": "^2.13.
|
|
39
|
-
"@scrabble-solver/types": "^2.13.
|
|
40
|
-
"@scrabble-solver/word-definitions": "^2.13.
|
|
34
|
+
"@scrabble-solver/configs": "^2.13.1",
|
|
35
|
+
"@scrabble-solver/constants": "^2.13.1",
|
|
36
|
+
"@scrabble-solver/dictionaries": "^2.13.1",
|
|
37
|
+
"@scrabble-solver/logger": "^2.13.1",
|
|
38
|
+
"@scrabble-solver/solver": "^2.13.1",
|
|
39
|
+
"@scrabble-solver/types": "^2.13.1",
|
|
40
|
+
"@scrabble-solver/word-definitions": "^2.13.1",
|
|
41
41
|
"classnames": "^2.3.2",
|
|
42
42
|
"include-media": "^2.0.0",
|
|
43
43
|
"include-media-query-builder": "^1.1.0",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/solver",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/solver",
|
|
9
|
-
"version": "2.13.
|
|
9
|
+
"version": "2.13.1",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@kamilmielnik/trie": "^2.0.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/solver",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Scrabble Solver 2 - Solver",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@kamilmielnik/trie": "^2.0.1",
|
|
28
|
-
"@scrabble-solver/types": "^2.13.
|
|
28
|
+
"@scrabble-solver/types": "^2.13.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@scrabble-solver/configs": "^2.13.
|
|
32
|
-
"@scrabble-solver/constants": "^2.13.
|
|
33
|
-
"@scrabble-solver/dictionaries": "^2.13.
|
|
31
|
+
"@scrabble-solver/configs": "^2.13.1",
|
|
32
|
+
"@scrabble-solver/constants": "^2.13.1",
|
|
33
|
+
"@scrabble-solver/dictionaries": "^2.13.1"
|
|
34
34
|
},
|
|
35
35
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
36
36
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/types",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Scrabble Solver 2 - Types",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"clean:force": "npm run clean && rimraf package-lock.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@scrabble-solver/constants": "^2.13.
|
|
27
|
+
"@scrabble-solver/constants": "^2.13.1"
|
|
28
28
|
},
|
|
29
29
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
30
30
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-definitions",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/word-definitions",
|
|
9
|
-
"version": "2.13.
|
|
9
|
+
"version": "2.13.1",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-definitions",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Scrabble Solver 2 - Word definitions",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rimraf build/ node_modules/ package-lock.json"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@scrabble-solver/types": "^2.13.
|
|
26
|
+
"@scrabble-solver/types": "^2.13.1",
|
|
27
27
|
"cheerio": "^1.0.0-rc.12",
|
|
28
28
|
"follow-redirects": "^1.15.2",
|
|
29
29
|
"striptags": "^3.2.0"
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const types_1 = require("@scrabble-solver/types");
|
|
7
|
+
const latinize_1 = __importDefault(require("latinize"));
|
|
4
8
|
const lib_1 = require("./lib");
|
|
5
|
-
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/
|
|
9
|
+
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/fise-2.txt';
|
|
10
|
+
const N_PLACEHOLDER = '---n---';
|
|
6
11
|
const getEsEsWordList = async () => {
|
|
7
12
|
const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.ES_ES);
|
|
8
|
-
return words
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
13
|
+
return words
|
|
14
|
+
.map((word) => word.replaceAll('ñ', N_PLACEHOLDER))
|
|
15
|
+
.map(latinize_1.default)
|
|
16
|
+
.map((word) => word.replaceAll(N_PLACEHOLDER, 'ñ'));
|
|
13
17
|
};
|
|
14
18
|
exports.default = getEsEsWordList;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const types_1 = require("@scrabble-solver/types");
|
|
7
|
+
const latinize_1 = __importDefault(require("latinize"));
|
|
4
8
|
const lib_1 = require("./lib");
|
|
5
9
|
const FILE_URL = 'https://raw.githubusercontent.com/Thecoolsim/French-Scrabble-ODS8/main/French%20ODS%20dictionary.txt';
|
|
6
10
|
const getFrFrWordList = async () => {
|
|
7
11
|
const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.FR_FR);
|
|
8
|
-
return words.map(
|
|
9
|
-
};
|
|
10
|
-
const normalizeWord = (word) => {
|
|
11
|
-
// normalization from https://stackoverflow.com/a/37511463
|
|
12
|
-
return word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
12
|
+
return words.map(latinize_1.default);
|
|
13
13
|
};
|
|
14
14
|
exports.default = getFrFrWordList;
|
|
@@ -3,21 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const types_1 = require("@scrabble-solver/types");
|
|
7
|
+
const latinize_1 = __importDefault(require("latinize"));
|
|
7
8
|
const lib_1 = require("./lib");
|
|
8
|
-
const FILE_URL = 'https://
|
|
9
|
-
const FILE_TO_EXTRACT_FROM_ZIP = 'loc-flexiuni-5.0.txt';
|
|
9
|
+
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt';
|
|
10
10
|
const getRoRoWordList = async () => {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
await (0, lib_1.unzip)(zipTempFilename, FILE_TO_EXTRACT_FROM_ZIP, tempFilepath);
|
|
14
|
-
fs_1.default.unlinkSync(zipTempFilename);
|
|
15
|
-
const file = fs_1.default.readFileSync(tempFilepath, 'utf-8');
|
|
16
|
-
fs_1.default.unlinkSync(tempFilepath);
|
|
17
|
-
const words = (0, lib_1.extractWords)(replaceDiacritics(file.toLocaleString()), 'ro-RO');
|
|
18
|
-
return words;
|
|
19
|
-
};
|
|
20
|
-
const replaceDiacritics = (file) => {
|
|
21
|
-
return file.replaceAll('ă', 'a').replaceAll('â', 'a').replaceAll('î', 'i').replaceAll('ș', 's').replaceAll('ț', 't');
|
|
11
|
+
const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.RO_RO);
|
|
12
|
+
return words.map(latinize_1.default);
|
|
22
13
|
};
|
|
23
14
|
exports.default = getRoRoWordList;
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-lists",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/word-lists",
|
|
9
|
-
"version": "2.13.
|
|
9
|
+
"version": "2.13.1",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cheerio": "^1.0.0-rc.12",
|
|
13
13
|
"follow-redirects": "^1.15.2",
|
|
14
|
+
"latinize": "^1.0.0",
|
|
14
15
|
"unzipper": "^0.10.11"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
17
18
|
"@types/follow-redirects": "^1.14.1",
|
|
19
|
+
"@types/latinize": "^0.2.17",
|
|
18
20
|
"@types/unzipper": "^0.10.5"
|
|
19
21
|
}
|
|
20
22
|
},
|
|
@@ -27,6 +29,12 @@
|
|
|
27
29
|
"@types/node": "*"
|
|
28
30
|
}
|
|
29
31
|
},
|
|
32
|
+
"node_modules/@types/latinize": {
|
|
33
|
+
"version": "0.2.17",
|
|
34
|
+
"resolved": "https://registry.npmjs.org/@types/latinize/-/latinize-0.2.17.tgz",
|
|
35
|
+
"integrity": "sha512-TqSJE7HHuwaxaGLAWm+YlFBymfNaLdQdddmZutXRD7+kabPgpWAiQHazOixwz1IrHGtacM8Oed/cg8CzrYvEDQ==",
|
|
36
|
+
"dev": true
|
|
37
|
+
},
|
|
30
38
|
"node_modules/@types/node": {
|
|
31
39
|
"version": "18.15.13",
|
|
32
40
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz",
|
|
@@ -354,6 +362,11 @@
|
|
|
354
362
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
|
355
363
|
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
|
356
364
|
},
|
|
365
|
+
"node_modules/latinize": {
|
|
366
|
+
"version": "1.0.0",
|
|
367
|
+
"resolved": "https://registry.npmjs.org/latinize/-/latinize-1.0.0.tgz",
|
|
368
|
+
"integrity": "sha512-vAgAlB6nnbGmaLWOW3bHZ5EOUFYzV5h5LfgrRv43wWgWQXd1DorS7mMsgzc7XARPlQiokrNkv/9XzGmpYu44fg=="
|
|
369
|
+
},
|
|
357
370
|
"node_modules/listenercount": {
|
|
358
371
|
"version": "1.0.1",
|
|
359
372
|
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-lists",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Scrabble Solver 2 - Word lists",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -24,13 +24,15 @@
|
|
|
24
24
|
"clean:force": "npm run clean && rimraf package-lock.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@scrabble-solver/types": "^2.13.
|
|
27
|
+
"@scrabble-solver/types": "^2.13.1",
|
|
28
28
|
"cheerio": "^1.0.0-rc.12",
|
|
29
29
|
"follow-redirects": "^1.15.2",
|
|
30
|
+
"latinize": "^1.0.0",
|
|
30
31
|
"unzipper": "^0.10.11"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@types/follow-redirects": "^1.14.1",
|
|
35
|
+
"@types/latinize": "^0.2.17",
|
|
34
36
|
"@types/unzipper": "^0.10.5"
|
|
35
37
|
},
|
|
36
38
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Locale } from '@scrabble-solver/types';
|
|
2
|
+
import latinize from 'latinize';
|
|
2
3
|
|
|
3
4
|
import { getTxtWordList } from './lib';
|
|
4
5
|
|
|
5
|
-
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/
|
|
6
|
+
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/fise-2.txt';
|
|
7
|
+
const N_PLACEHOLDER = '---n---';
|
|
6
8
|
|
|
7
9
|
const getEsEsWordList = async (): Promise<string[]> => {
|
|
8
10
|
const words = await getTxtWordList(FILE_URL, Locale.ES_ES);
|
|
9
|
-
return words.map(normalizeWord);
|
|
10
|
-
};
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
return words
|
|
13
|
+
.map((word) => word.replaceAll('ñ', N_PLACEHOLDER))
|
|
14
|
+
.map(latinize)
|
|
15
|
+
.map((word) => word.replaceAll(N_PLACEHOLDER, 'ñ'));
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
export default getEsEsWordList;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Locale } from '@scrabble-solver/types';
|
|
2
|
+
import latinize from 'latinize';
|
|
2
3
|
|
|
3
4
|
import { getTxtWordList } from './lib';
|
|
4
5
|
|
|
@@ -6,12 +7,7 @@ const FILE_URL = 'https://raw.githubusercontent.com/Thecoolsim/French-Scrabble-O
|
|
|
6
7
|
|
|
7
8
|
const getFrFrWordList = async (): Promise<string[]> => {
|
|
8
9
|
const words = await getTxtWordList(FILE_URL, Locale.FR_FR);
|
|
9
|
-
return words.map(
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const normalizeWord = (word: string): string => {
|
|
13
|
-
// normalization from https://stackoverflow.com/a/37511463
|
|
14
|
-
return word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
10
|
+
return words.map(latinize);
|
|
15
11
|
};
|
|
16
12
|
|
|
17
13
|
export default getFrFrWordList;
|
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Locale } from '@scrabble-solver/types';
|
|
2
|
+
import latinize from 'latinize';
|
|
2
3
|
|
|
3
|
-
import {
|
|
4
|
+
import { getTxtWordList } from './lib';
|
|
4
5
|
|
|
5
|
-
const FILE_URL = 'https://
|
|
6
|
-
const FILE_TO_EXTRACT_FROM_ZIP = 'loc-flexiuni-5.0.txt';
|
|
6
|
+
const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt';
|
|
7
7
|
|
|
8
8
|
const getRoRoWordList = async (): Promise<string[]> => {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
await unzip(zipTempFilename, FILE_TO_EXTRACT_FROM_ZIP, tempFilepath);
|
|
12
|
-
fs.unlinkSync(zipTempFilename);
|
|
13
|
-
const file = fs.readFileSync(tempFilepath, 'utf-8');
|
|
14
|
-
fs.unlinkSync(tempFilepath);
|
|
15
|
-
const words = extractWords(replaceDiacritics(file.toLocaleString()), 'ro-RO');
|
|
16
|
-
return words;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const replaceDiacritics = (file: string): string => {
|
|
20
|
-
return file.replaceAll('ă', 'a').replaceAll('â', 'a').replaceAll('î', 'i').replaceAll('ș', 's').replaceAll('ț', 't');
|
|
9
|
+
const words = await getTxtWordList(FILE_URL, Locale.RO_RO);
|
|
10
|
+
return words.map(latinize);
|
|
21
11
|
};
|
|
22
12
|
|
|
23
13
|
export default getRoRoWordList;
|
|
File without changes
|
|
File without changes
|