scrabble-solver 2.12.5 → 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.
Files changed (135) hide show
  1. package/README.md +12 -10
  2. package/lerna.json +1 -1
  3. package/package.json +1 -1
  4. package/packages/configs/build/locales/index.d.ts +1 -0
  5. package/packages/configs/build/locales/index.js +3 -1
  6. package/packages/configs/build/locales/roRo.d.ts +3 -0
  7. package/packages/configs/build/locales/roRo.js +38 -0
  8. package/packages/configs/dictionaries/build/Dictionaries.d.ts +13 -0
  9. package/packages/configs/dictionaries/build/Dictionaries.js +46 -0
  10. package/packages/configs/dictionaries/build/constants/index.d.ts +3 -0
  11. package/packages/configs/dictionaries/build/constants/index.js +11 -0
  12. package/packages/configs/dictionaries/build/index.d.ts +3 -0
  13. package/packages/configs/dictionaries/build/index.js +23 -0
  14. package/packages/configs/dictionaries/build/lib/DiskCache.d.ts +11 -0
  15. package/packages/configs/dictionaries/build/lib/DiskCache.js +48 -0
  16. package/packages/configs/dictionaries/build/lib/LayeredCache.d.ts +13 -0
  17. package/packages/configs/dictionaries/build/lib/LayeredCache.js +55 -0
  18. package/packages/configs/dictionaries/build/lib/MemoryCache.d.ts +13 -0
  19. package/packages/configs/dictionaries/build/lib/MemoryCache.js +32 -0
  20. package/packages/configs/dictionaries/build/lib/createAsyncProxy.d.ts +3 -0
  21. package/packages/configs/dictionaries/build/lib/createAsyncProxy.js +18 -0
  22. package/packages/configs/dictionaries/build/lib/createCacheTimestampComparator.d.ts +5 -0
  23. package/packages/configs/dictionaries/build/lib/createCacheTimestampComparator.js +19 -0
  24. package/packages/configs/dictionaries/build/lib/downloadDictionary.d.ts +4 -0
  25. package/packages/configs/dictionaries/build/lib/downloadDictionary.js +16 -0
  26. package/packages/configs/dictionaries/build/lib/getDictionaryFilepath.d.ts +3 -0
  27. package/packages/configs/dictionaries/build/lib/getDictionaryFilepath.js +11 -0
  28. package/packages/configs/dictionaries/build/lib/index.d.ts +7 -0
  29. package/packages/configs/dictionaries/build/lib/index.js +20 -0
  30. package/packages/configs/dictionaries/build/types/Cache.d.ts +8 -0
  31. package/packages/configs/dictionaries/build/types/Cache.js +2 -0
  32. package/packages/configs/dictionaries/build/types/index.d.ts +1 -0
  33. package/packages/configs/dictionaries/build/types/index.js +2 -0
  34. package/packages/configs/package.json +3 -3
  35. package/packages/configs/src/locales/index.ts +1 -0
  36. package/packages/configs/src/locales/roRo.ts +39 -0
  37. package/packages/constants/package.json +1 -1
  38. package/packages/dictionaries/package-lock.json +2 -2
  39. package/packages/dictionaries/package.json +4 -4
  40. package/packages/logger/package-lock.json +2 -2
  41. package/packages/logger/package.json +1 -1
  42. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  43. package/packages/scrabble-solver/.next/build-manifest.json +4 -4
  44. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  45. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  46. package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
  47. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  48. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  49. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  50. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  51. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  52. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  53. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  54. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  55. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  56. package/packages/scrabble-solver/.next/server/chunks/277.js +129 -39
  57. package/packages/scrabble-solver/.next/server/chunks/44.js +75 -31
  58. package/packages/scrabble-solver/.next/server/chunks/865.js +16 -4
  59. package/packages/scrabble-solver/.next/server/chunks/{131.js → 907.js} +924 -2
  60. package/packages/scrabble-solver/.next/server/chunks/911.js +48 -1
  61. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  62. package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
  63. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  64. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  65. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  66. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
  67. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +49 -2
  68. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  69. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
  70. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  71. package/packages/scrabble-solver/.next/server/pages/api/solve.js +9 -5
  72. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
  73. package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
  74. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
  75. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  76. package/packages/scrabble-solver/.next/server/pages/index.js +9 -9
  77. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  78. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  79. package/packages/scrabble-solver/.next/static/{aKRf05U1XHnDU2-82b9mQ → RJ5_dKU0dHcryeTVO6SSX}/_buildManifest.js +1 -1
  80. package/packages/scrabble-solver/.next/static/chunks/pages/_app-b92880dde164b954.js +32 -0
  81. package/packages/scrabble-solver/.next/static/chunks/pages/{index-82b2939158c7729f.js → index-f56eaa969a831c70.js} +1 -1
  82. package/packages/scrabble-solver/.next/trace +51 -51
  83. package/packages/scrabble-solver/package-lock.json +2 -2
  84. package/packages/scrabble-solver/package.json +8 -8
  85. package/packages/scrabble-solver/src/i18n/constants.ts +12 -1
  86. package/packages/scrabble-solver/src/i18n/i18n.ts +2 -0
  87. package/packages/scrabble-solver/src/i18n/ro.json +70 -0
  88. package/packages/scrabble-solver/src/icons/FlagRo.svg +5 -0
  89. package/packages/scrabble-solver/src/icons/index.ts +1 -0
  90. package/packages/scrabble-solver/src/lib/detectLocale.ts +10 -4
  91. package/packages/solver/package-lock.json +2 -2
  92. package/packages/solver/package.json +5 -5
  93. package/packages/types/build/Locale.d.ts +2 -1
  94. package/packages/types/build/Locale.js +1 -0
  95. package/packages/types/package.json +2 -2
  96. package/packages/types/src/Locale.ts +1 -0
  97. package/packages/word-definitions/build/crawl/crawl.js +2 -0
  98. package/packages/word-definitions/build/crawl/crawlRomanian.d.ts +2 -0
  99. package/packages/word-definitions/build/crawl/crawlRomanian.js +11 -0
  100. package/packages/word-definitions/build/parse/index.d.ts +1 -0
  101. package/packages/word-definitions/build/parse/index.js +3 -1
  102. package/packages/word-definitions/build/parse/parse.js +2 -0
  103. package/packages/word-definitions/build/parse/parseRomanian.d.ts +3 -0
  104. package/packages/word-definitions/build/parse/parseRomanian.js +16 -0
  105. package/packages/word-definitions/package-lock.json +20 -161
  106. package/packages/word-definitions/package.json +2 -2
  107. package/packages/word-definitions/src/crawl/crawl.ts +2 -0
  108. package/packages/word-definitions/src/crawl/crawlRomanian.ts +11 -0
  109. package/packages/word-definitions/src/parse/__tests__/expected/ro-RO.aciua.json +7 -0
  110. package/packages/word-definitions/src/parse/__tests__/input/ro-RO.aciua.html +33 -0
  111. package/packages/word-definitions/src/parse/index.ts +1 -0
  112. package/packages/word-definitions/src/parse/parse.test.ts +1 -0
  113. package/packages/word-definitions/src/parse/parse.ts +2 -0
  114. package/packages/word-definitions/src/parse/parseRomanian.ts +20 -0
  115. package/packages/word-lists/build/getEsEsWordList.js +10 -6
  116. package/packages/word-lists/build/getFrFrWordList.js +5 -5
  117. package/packages/word-lists/build/getPlPlWordList.js +1 -17
  118. package/packages/word-lists/build/getRoRoWordList.d.ts +2 -0
  119. package/packages/word-lists/build/getRoRoWordList.js +14 -0
  120. package/packages/word-lists/build/getWordList.js +2 -0
  121. package/packages/word-lists/build/lib/index.d.ts +1 -0
  122. package/packages/word-lists/build/lib/index.js +3 -1
  123. package/packages/word-lists/build/lib/unzip.d.ts +2 -0
  124. package/packages/word-lists/build/lib/unzip.js +23 -0
  125. package/packages/word-lists/package-lock.json +15 -2
  126. package/packages/word-lists/package.json +4 -2
  127. package/packages/word-lists/src/getEsEsWordList.ts +7 -6
  128. package/packages/word-lists/src/getFrFrWordList.ts +2 -6
  129. package/packages/word-lists/src/getPlPlWordList.ts +2 -19
  130. package/packages/word-lists/src/getRoRoWordList.ts +13 -0
  131. package/packages/word-lists/src/getWordList.ts +2 -0
  132. package/packages/word-lists/src/lib/index.ts +1 -0
  133. package/packages/word-lists/src/lib/unzip.ts +20 -0
  134. package/packages/scrabble-solver/.next/static/chunks/pages/_app-e7f3d1c9c09c8f91.js +0 -32
  135. /package/packages/scrabble-solver/.next/static/{aKRf05U1XHnDU2-82b9mQ → RJ5_dKU0dHcryeTVO6SSX}/_ssgManifest.js +0 -0
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/scrabble-solver",
3
- "version": "2.12.5",
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.12.5",
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.12.5",
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.12.5",
35
- "@scrabble-solver/constants": "^2.12.5",
36
- "@scrabble-solver/dictionaries": "^2.12.5",
37
- "@scrabble-solver/logger": "^2.12.5",
38
- "@scrabble-solver/solver": "^2.12.5",
39
- "@scrabble-solver/types": "^2.12.5",
40
- "@scrabble-solver/word-definitions": "^2.12.5",
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",
@@ -2,7 +2,7 @@ import { COMMA_ARABIC, COMMA_LATIN } from '@scrabble-solver/constants';
2
2
  import { Locale } from '@scrabble-solver/types';
3
3
  import { FunctionComponent, SVGAttributes } from 'react';
4
4
 
5
- import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagUs } from 'icons';
5
+ import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagRo, FlagUs } from 'icons';
6
6
 
7
7
  interface LocaleFeatures {
8
8
  comma: string;
@@ -94,4 +94,15 @@ export const LOCALE_FEATURES: Record<Locale, LocaleFeatures> = {
94
94
  separator: `${COMMA_LATIN} `,
95
95
  vowels: true,
96
96
  },
97
+ [Locale.RO_RO]: {
98
+ comma: COMMA_LATIN,
99
+ consonants: true,
100
+ direction: 'ltr',
101
+ Icon: FlagRo,
102
+ label: 'Română',
103
+ locale: Locale.RO_RO,
104
+ name: 'Romanian',
105
+ separator: `${COMMA_LATIN} `,
106
+ vowels: true,
107
+ },
97
108
  };
@@ -8,6 +8,7 @@ import es from './es.json';
8
8
  import fa from './fa.json';
9
9
  import fr from './fr.json';
10
10
  import pl from './pl.json';
11
+ import ro from './ro.json';
11
12
 
12
13
  const i18n: Record<Locale, Translations> = {
13
14
  [Locale.DE_DE]: de,
@@ -17,6 +18,7 @@ const i18n: Record<Locale, Translations> = {
17
18
  [Locale.FA_IR]: fa,
18
19
  [Locale.FR_FR]: fr,
19
20
  [Locale.PL_PL]: pl,
21
+ [Locale.RO_RO]: ro,
20
22
  };
21
23
 
22
24
  export default i18n;
@@ -0,0 +1,70 @@
1
+ {
2
+ "cell.enter-word": "Introducere cuvant",
3
+ "cell.filter-cell": "Destinatia",
4
+ "cell.set-blank": "Marcare camp liber",
5
+ "cell.set-not-blank": "Marcare camp ocupat ",
6
+ "cell.tile.location": "Tabla: camp ({{x}}, {{y}})",
7
+ "cell.toggle-direction": "Directie scriere",
8
+ "common.blanks": "Campuri libere",
9
+ "common.clear": "Stergere",
10
+ "common.close": "Inchidere",
11
+ "common.consonants": "Consoane",
12
+ "common.loading": "Incarcare",
13
+ "common.next": "Pasul urmator",
14
+ "common.points": "Puncte",
15
+ "common.previous": "Pasul anterior",
16
+ "common.tiles": "Piese",
17
+ "common.two-letter-tiles": "2 litere",
18
+ "common.vowels": "Vocale",
19
+ "common.word": "Cuvant",
20
+ "common.words": "Cuvinte",
21
+ "dictionary": "Dictionar",
22
+ "dictionary.empty-state.no-definitions": "Cuvantul exista in dictionar dar nu are o definitie.",
23
+ "dictionary.empty-state.no-results": "Definitia nu a fost gasita in dictionar",
24
+ "dictionary.empty-state.not-allowed": "Cuvantul nu este permis.",
25
+ "dictionary.empty-state.uninitialized": "Aici va fi definitia cuvantului.",
26
+ "dictionary.input.placeholder": "Cautare dictionar…",
27
+ "dictionary.input.title": "Cuvinte separate prin virgula",
28
+ "empty-state.error": "Eroare",
29
+ "empty-state.info": "Informatii",
30
+ "empty-state.success": "Succes",
31
+ "empty-state.warning": "Atentionare",
32
+ "github": "Vezi acest proiect pe GitHub",
33
+ "keyMap": "Comanda rapida la tastatura",
34
+ "keyMap.board": "Tabla joc",
35
+ "keyMap.board.toggle-blank": "Marcheaza/Deselecteaza campul ca liber",
36
+ "keyMap.board.toggle-direction": "Schimbati directia de tastare",
37
+ "keyMap.board-and-rack": "Tabla si literele extrase",
38
+ "keyMap.board-and-rack.insert-two-letter-tile": "Introducere piesa 2 litere",
39
+ "keyMap.board-and-rack.navigate": "Navigare",
40
+ "keyMap.board-and-rack.remove-tile": "Indeparteaza piesa",
41
+ "keyMap.board-and-rack.submit": "Pornire cautare",
42
+ "keyMap.rack": "Grupa litere",
43
+ "keyMap.rack.insert-blank": "Introduce camp liber (spacebar)",
44
+ "menu": "Meniu",
45
+ "rack.placeholder": "Litere…",
46
+ "rack.tile.location": "Grupa litere: piesa ({{index}})",
47
+ "rack.touchscreen.placeholder": "Litere…",
48
+ "remaining-tiles": "Litere ramase",
49
+ "results": "Rezultate",
50
+ "results.empty-state.no-results": "Nu a fost gasit nici un rezultat.",
51
+ "results.empty-state.outdated": "Rezultatele nu sunt actuale.",
52
+ "results.empty-state.uninitialized": "Cuvintele formate din literele tale vor fi afisate aici.",
53
+ "results.input.placeholder": "Cautare solutii... (RegExp)",
54
+ "results.insert": "Introducere",
55
+ "results.preview": "Previzualizare",
56
+ "results.solve": "Gasire solutii",
57
+ "settings": "Setari",
58
+ "settings.autoGroupTiles": "Litere ramase",
59
+ "settings.autoGroupTiles.left": "In partea stanga",
60
+ "settings.autoGroupTiles.right": "In partea dreapta",
61
+ "settings.autoGroupTiles.null": "Nu se grupeaza",
62
+ "settings.game": "Joc",
63
+ "settings.inputMode": "Mod introducere",
64
+ "settings.inputMode.keyboard": "Tastatura",
65
+ "settings.inputMode.touchscreen": "Ecran",
66
+ "settings.language": "Limba",
67
+ "words": "Cuvinte create",
68
+ "words.invalid": "Invalid",
69
+ "words.valid": "Valid"
70
+ }
@@ -0,0 +1,5 @@
1
+ <svg viewBox="0 0 3 2" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="3" height="2" fill="#002B7F" />
3
+ <rect width="2" height="2" x="1" fill="#FCD116" />
4
+ <rect width="1" height="2" x="2" fill="#CE1126" />
5
+ </svg>
@@ -27,6 +27,7 @@ export { default as FlagFill } from './FlagFill.svg';
27
27
  export { default as FlagFr } from './FlagFr.svg';
28
28
  export { default as FlagGb } from './FlagGb.svg';
29
29
  export { default as FlagPl } from './FlagPl.svg';
30
+ export { default as FlagRo } from './FlagRo.svg';
30
31
  export { default as FlagUs } from './FlagUs.svg';
31
32
  export { default as Github } from './Github.svg';
32
33
  export { default as InfoCircleFill } from './InfoCircleFill.svg';
@@ -1,22 +1,28 @@
1
1
  import { Locale } from '@scrabble-solver/types';
2
2
 
3
3
  const detectLocale = (): Locale => {
4
- if (window.navigator.languages.includes('pl') || window.navigator.languages.includes('pl-PL')) {
4
+ const languages = window.navigator.languages;
5
+
6
+ if (languages.includes('pl') || languages.includes('pl-PL')) {
5
7
  return Locale.PL_PL;
6
8
  }
7
9
 
8
- if (window.navigator.languages.includes('en-GB')) {
10
+ if (languages.includes('en-GB')) {
9
11
  return Locale.EN_GB;
10
12
  }
11
13
 
12
- if (window.navigator.languages.includes('fa') || window.navigator.languages.includes('fa-IR')) {
14
+ if (languages.includes('fa') || languages.includes('fa-IR')) {
13
15
  return Locale.FA_IR;
14
16
  }
15
17
 
16
- if (window.navigator.languages.includes('fr-FR')) {
18
+ if (languages.includes('fr-FR')) {
17
19
  return Locale.FR_FR;
18
20
  }
19
21
 
22
+ if (languages.includes('ro') || languages.includes('ro-RO')) {
23
+ return Locale.RO_RO;
24
+ }
25
+
20
26
  return Locale.EN_US;
21
27
  };
22
28
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.12.5",
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.12.5",
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.12.5",
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.12.5"
28
+ "@scrabble-solver/types": "^2.13.1"
29
29
  },
30
30
  "devDependencies": {
31
- "@scrabble-solver/configs": "^2.12.5",
32
- "@scrabble-solver/constants": "^2.12.5",
33
- "@scrabble-solver/dictionaries": "^2.12.5"
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
  }
@@ -10,7 +10,8 @@ declare enum Locale {
10
10
  ES_ES = "es-ES",
11
11
  FA_IR = "fa-IR",
12
12
  FR_FR = "fr-FR",
13
- PL_PL = "pl-PL"
13
+ PL_PL = "pl-PL",
14
+ RO_RO = "ro-RO"
14
15
  }
15
16
  export declare const isLocale: (locale: unknown) => locale is Locale;
16
17
  export default Locale;
@@ -15,6 +15,7 @@ var Locale;
15
15
  Locale["FA_IR"] = "fa-IR";
16
16
  Locale["FR_FR"] = "fr-FR";
17
17
  Locale["PL_PL"] = "pl-PL";
18
+ Locale["RO_RO"] = "ro-RO";
18
19
  })(Locale || (Locale = {}));
19
20
  const locales = Object.values(Locale);
20
21
  const isLocale = (locale) => locales.includes(locale);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.12.5",
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.12.5"
27
+ "@scrabble-solver/constants": "^2.13.1"
28
28
  },
29
29
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
30
30
  }
@@ -11,6 +11,7 @@ enum Locale {
11
11
  FA_IR = 'fa-IR',
12
12
  FR_FR = 'fr-FR',
13
13
  PL_PL = 'pl-PL',
14
+ RO_RO = 'ro-RO',
14
15
  }
15
16
 
16
17
  const locales = Object.values(Locale);
@@ -9,6 +9,7 @@ const crawlFarsi_1 = __importDefault(require("./crawlFarsi"));
9
9
  const crawlFrench_1 = __importDefault(require("./crawlFrench"));
10
10
  const crawlGerman_1 = __importDefault(require("./crawlGerman"));
11
11
  const crawlPolish_1 = __importDefault(require("./crawlPolish"));
12
+ const crawlRomanian_1 = __importDefault(require("./crawlRomanian"));
12
13
  const crawlSpanish_1 = __importDefault(require("./crawlSpanish"));
13
14
  const crawlPerLocale = {
14
15
  [types_1.Locale.DE_DE]: crawlGerman_1.default,
@@ -18,6 +19,7 @@ const crawlPerLocale = {
18
19
  [types_1.Locale.FA_IR]: crawlFarsi_1.default,
19
20
  [types_1.Locale.FR_FR]: crawlFrench_1.default,
20
21
  [types_1.Locale.PL_PL]: crawlPolish_1.default,
22
+ [types_1.Locale.RO_RO]: crawlRomanian_1.default,
21
23
  };
22
24
  const crawl = (locale, word) => {
23
25
  return crawlPerLocale[locale](word);
@@ -0,0 +1,2 @@
1
+ declare const crawlRomanian: (word: string) => Promise<string>;
2
+ export default crawlRomanian;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("../lib");
4
+ const crawlRomanian = (word) => {
5
+ return (0, lib_1.request)({
6
+ protocol: 'https',
7
+ hostname: 'dexonline.ro',
8
+ path: `/definitie/${encodeURIComponent(word)}`,
9
+ });
10
+ };
11
+ exports.default = crawlRomanian;
@@ -4,4 +4,5 @@ export { default as parseFarsi } from './parseFarsi';
4
4
  export { default as parseFrench } from './parseFrench';
5
5
  export { default as parseGerman } from './parseGerman';
6
6
  export { default as parsePolish } from './parsePolish';
7
+ export { default as parseRomanian } from './parseRomanian';
7
8
  export { default as parseSpanish } from './parseSpanish';
@@ -3,7 +3,7 @@ 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
- exports.parseSpanish = exports.parsePolish = exports.parseGerman = exports.parseFrench = exports.parseFarsi = exports.parseEnglish = exports.parse = void 0;
6
+ exports.parseSpanish = exports.parseRomanian = exports.parsePolish = exports.parseGerman = exports.parseFrench = exports.parseFarsi = exports.parseEnglish = exports.parse = void 0;
7
7
  var parse_1 = require("./parse");
8
8
  Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return __importDefault(parse_1).default; } });
9
9
  var parseEnglish_1 = require("./parseEnglish");
@@ -16,5 +16,7 @@ var parseGerman_1 = require("./parseGerman");
16
16
  Object.defineProperty(exports, "parseGerman", { enumerable: true, get: function () { return __importDefault(parseGerman_1).default; } });
17
17
  var parsePolish_1 = require("./parsePolish");
18
18
  Object.defineProperty(exports, "parsePolish", { enumerable: true, get: function () { return __importDefault(parsePolish_1).default; } });
19
+ var parseRomanian_1 = require("./parseRomanian");
20
+ Object.defineProperty(exports, "parseRomanian", { enumerable: true, get: function () { return __importDefault(parseRomanian_1).default; } });
19
21
  var parseSpanish_1 = require("./parseSpanish");
20
22
  Object.defineProperty(exports, "parseSpanish", { enumerable: true, get: function () { return __importDefault(parseSpanish_1).default; } });
@@ -10,6 +10,7 @@ const parseFarsi_1 = __importDefault(require("./parseFarsi"));
10
10
  const parseFrench_1 = __importDefault(require("./parseFrench"));
11
11
  const parseGerman_1 = __importDefault(require("./parseGerman"));
12
12
  const parsePolish_1 = __importDefault(require("./parsePolish"));
13
+ const parseRomanian_1 = __importDefault(require("./parseRomanian"));
13
14
  const parseSpanish_1 = __importDefault(require("./parseSpanish"));
14
15
  const parsePerLocale = {
15
16
  [types_1.Locale.DE_DE]: parseGerman_1.default,
@@ -19,6 +20,7 @@ const parsePerLocale = {
19
20
  [types_1.Locale.FA_IR]: parseFarsi_1.default,
20
21
  [types_1.Locale.FR_FR]: parseFrench_1.default,
21
22
  [types_1.Locale.PL_PL]: parsePolish_1.default,
23
+ [types_1.Locale.RO_RO]: parseRomanian_1.default,
22
24
  };
23
25
  const parse = (locale, html) => {
24
26
  const { definitions, exists } = parsePerLocale[locale](html);
@@ -0,0 +1,3 @@
1
+ import { ParseResult } from '../types';
2
+ declare const parseRomanian: (html: string) => ParseResult;
3
+ export default parseRomanian;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cheerio_1 = require("cheerio");
4
+ const parseRomanian = (html) => {
5
+ const $ = (0, cheerio_1.load)(html);
6
+ const $activeTab = $('.tab-pane.show.active');
7
+ $('.type-example').remove();
8
+ const $definitions = $activeTab.find('li.type-meaning.depth-0 > .meaningContainer .def.html');
9
+ $definitions.find('.meaningTree').remove();
10
+ const definitions = Array.from($definitions).map((definition) => $(definition).text().replace(/\n/g, ''));
11
+ return {
12
+ definitions,
13
+ exists: definitions.length > 0,
14
+ };
15
+ };
16
+ exports.default = parseRomanian;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.12.5",
4
- "lockfileVersion": 2,
3
+ "version": "2.13.1",
4
+ "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-definitions",
9
- "version": "2.12.5",
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",
@@ -18,19 +18,22 @@
18
18
  }
19
19
  },
20
20
  "node_modules/@types/follow-redirects": {
21
- "version": "1.14.1",
22
- "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz",
23
- "integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==",
21
+ "version": "1.14.3",
22
+ "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.3.tgz",
23
+ "integrity": "sha512-VN4w0rKWI4DVySabR5/9P65nwcVEAr1taWFyYW3YR7rHYO/bOgG+LHpWfSzthPmCEfmawuXsMd4huQeSoc7jpg==",
24
24
  "dev": true,
25
25
  "dependencies": {
26
26
  "@types/node": "*"
27
27
  }
28
28
  },
29
29
  "node_modules/@types/node": {
30
- "version": "20.5.0",
31
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz",
32
- "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==",
33
- "dev": true
30
+ "version": "20.8.10",
31
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz",
32
+ "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==",
33
+ "dev": true,
34
+ "dependencies": {
35
+ "undici-types": "~5.26.4"
36
+ }
34
37
  },
35
38
  "node_modules/boolbase": {
36
39
  "version": "1.0.0",
@@ -162,9 +165,9 @@
162
165
  }
163
166
  },
164
167
  "node_modules/follow-redirects": {
165
- "version": "1.15.2",
166
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
167
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
168
+ "version": "1.15.3",
169
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
170
+ "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
168
171
  "funding": [
169
172
  {
170
173
  "type": "individual",
@@ -236,156 +239,12 @@
236
239
  "version": "3.2.0",
237
240
  "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz",
238
241
  "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw=="
239
- }
240
- },
241
- "dependencies": {
242
- "@types/follow-redirects": {
243
- "version": "1.14.1",
244
- "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz",
245
- "integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==",
246
- "dev": true,
247
- "requires": {
248
- "@types/node": "*"
249
- }
250
242
  },
251
- "@types/node": {
252
- "version": "20.5.0",
253
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz",
254
- "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==",
243
+ "node_modules/undici-types": {
244
+ "version": "5.26.5",
245
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
246
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
255
247
  "dev": true
256
- },
257
- "boolbase": {
258
- "version": "1.0.0",
259
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
260
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
261
- },
262
- "cheerio": {
263
- "version": "1.0.0-rc.12",
264
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
265
- "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
266
- "requires": {
267
- "cheerio-select": "^2.1.0",
268
- "dom-serializer": "^2.0.0",
269
- "domhandler": "^5.0.3",
270
- "domutils": "^3.0.1",
271
- "htmlparser2": "^8.0.1",
272
- "parse5": "^7.0.0",
273
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
274
- }
275
- },
276
- "cheerio-select": {
277
- "version": "2.1.0",
278
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
279
- "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
280
- "requires": {
281
- "boolbase": "^1.0.0",
282
- "css-select": "^5.1.0",
283
- "css-what": "^6.1.0",
284
- "domelementtype": "^2.3.0",
285
- "domhandler": "^5.0.3",
286
- "domutils": "^3.0.1"
287
- }
288
- },
289
- "css-select": {
290
- "version": "5.1.0",
291
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
292
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
293
- "requires": {
294
- "boolbase": "^1.0.0",
295
- "css-what": "^6.1.0",
296
- "domhandler": "^5.0.2",
297
- "domutils": "^3.0.1",
298
- "nth-check": "^2.0.1"
299
- }
300
- },
301
- "css-what": {
302
- "version": "6.1.0",
303
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
304
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
305
- },
306
- "dom-serializer": {
307
- "version": "2.0.0",
308
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
309
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
310
- "requires": {
311
- "domelementtype": "^2.3.0",
312
- "domhandler": "^5.0.2",
313
- "entities": "^4.2.0"
314
- }
315
- },
316
- "domelementtype": {
317
- "version": "2.3.0",
318
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
319
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
320
- },
321
- "domhandler": {
322
- "version": "5.0.3",
323
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
324
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
325
- "requires": {
326
- "domelementtype": "^2.3.0"
327
- }
328
- },
329
- "domutils": {
330
- "version": "3.1.0",
331
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
332
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
333
- "requires": {
334
- "dom-serializer": "^2.0.0",
335
- "domelementtype": "^2.3.0",
336
- "domhandler": "^5.0.3"
337
- }
338
- },
339
- "entities": {
340
- "version": "4.5.0",
341
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
342
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
343
- },
344
- "follow-redirects": {
345
- "version": "1.15.2",
346
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
347
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
348
- },
349
- "htmlparser2": {
350
- "version": "8.0.2",
351
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
352
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
353
- "requires": {
354
- "domelementtype": "^2.3.0",
355
- "domhandler": "^5.0.3",
356
- "domutils": "^3.0.1",
357
- "entities": "^4.4.0"
358
- }
359
- },
360
- "nth-check": {
361
- "version": "2.1.1",
362
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
363
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
364
- "requires": {
365
- "boolbase": "^1.0.0"
366
- }
367
- },
368
- "parse5": {
369
- "version": "7.1.2",
370
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
371
- "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
372
- "requires": {
373
- "entities": "^4.4.0"
374
- }
375
- },
376
- "parse5-htmlparser2-tree-adapter": {
377
- "version": "7.0.0",
378
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
379
- "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
380
- "requires": {
381
- "domhandler": "^5.0.2",
382
- "parse5": "^7.0.0"
383
- }
384
- },
385
- "striptags": {
386
- "version": "3.2.0",
387
- "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz",
388
- "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw=="
389
248
  }
390
249
  }
391
250
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.12.5",
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.12.5",
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"