scrabble-solver 2.14.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/.nx/cache/nx_files.nxt +0 -0
  2. package/.nx/workspace-data/file-map.json +440 -408
  3. package/.nx/workspace-data/lockfile.hash +1 -1
  4. package/README.md +12 -10
  5. package/lerna.json +1 -1
  6. package/package.json +12 -3
  7. package/packages/configs/build/games/index.d.ts +4 -3
  8. package/packages/configs/build/games/index.js +17 -9
  9. package/packages/configs/build/games/kelimelik.d.ts +16 -0
  10. package/packages/configs/build/games/kelimelik.js +64 -0
  11. package/packages/configs/build/games/literaki.d.ts +1 -2
  12. package/packages/configs/build/games/literaki.js +2 -2
  13. package/packages/configs/build/games/scrabble.d.ts +1 -2
  14. package/packages/configs/build/games/scrabble.js +2 -2
  15. package/packages/configs/build/games/superScrabble.d.ts +1 -2
  16. package/packages/configs/build/games/superScrabble.js +2 -2
  17. package/packages/configs/build/languages/index.d.ts +1 -0
  18. package/packages/configs/build/languages/index.js +1 -0
  19. package/packages/configs/build/languages/turkish.d.ts +3 -0
  20. package/packages/configs/build/languages/turkish.js +75 -0
  21. package/packages/configs/package.json +3 -3
  22. package/packages/configs/src/games/index.ts +4 -3
  23. package/packages/configs/src/games/kelimelik.ts +62 -0
  24. package/packages/configs/src/games/literaki.ts +1 -3
  25. package/packages/configs/src/games/scrabble.ts +1 -3
  26. package/packages/configs/src/games/superScrabble.ts +1 -3
  27. package/packages/configs/src/languages/index.ts +1 -0
  28. package/packages/configs/src/languages/turkish.ts +75 -0
  29. package/packages/constants/build/index.js +2 -2
  30. package/packages/constants/package.json +1 -1
  31. package/packages/constants/src/index.ts +2 -2
  32. package/packages/dictionaries/package-lock.json +2 -2
  33. package/packages/dictionaries/package.json +4 -4
  34. package/packages/logger/package-lock.json +2 -2
  35. package/packages/logger/package.json +1 -1
  36. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  37. package/packages/scrabble-solver/.next/build-manifest.json +5 -5
  38. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  39. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  40. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  41. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  42. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  43. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  44. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  45. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  46. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  47. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  48. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  49. package/packages/scrabble-solver/.next/prerender-manifest.js +1 -1
  50. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  51. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  52. package/packages/scrabble-solver/.next/server/chunks/807.js +1 -1
  53. package/packages/scrabble-solver/.next/server/chunks/911.js +1 -1
  54. package/packages/scrabble-solver/.next/server/chunks/977.js +1 -1
  55. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  56. package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
  57. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  58. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  59. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  60. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
  61. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  62. package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
  63. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  64. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  65. package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
  66. package/packages/scrabble-solver/.next/static/{TxfjxrH5h31sPQxPhrJzG → C0yfLTukP3L3iDqdXbbBv}/_buildManifest.js +1 -1
  67. package/packages/scrabble-solver/.next/static/chunks/pages/_app-e73bbdbc75537614.js +17 -0
  68. package/packages/scrabble-solver/.next/static/chunks/pages/{index-86d9ad372c48c8b7.js → index-4143525ec0fa83bb.js} +1 -1
  69. package/packages/scrabble-solver/.next/static/css/{14625ff7b4d265d0.css → ac3349339fcf58f2.css} +1 -1
  70. package/packages/scrabble-solver/.next/trace +45 -45
  71. package/packages/scrabble-solver/package-lock.json +2 -2
  72. package/packages/scrabble-solver/package.json +8 -8
  73. package/packages/scrabble-solver/public/service-worker.js +2 -2
  74. package/packages/scrabble-solver/public/service-worker.js.map +1 -1
  75. package/packages/scrabble-solver/src/components/Board/Board.tsx +3 -3
  76. package/packages/scrabble-solver/src/components/Radio/Radio.module.scss +3 -2
  77. package/packages/scrabble-solver/src/i18n/constants.ts +12 -1
  78. package/packages/scrabble-solver/src/i18n/i18n.ts +2 -0
  79. package/packages/scrabble-solver/src/i18n/languages/turkish.json +78 -0
  80. package/packages/scrabble-solver/src/icons/FlagTr.svg +4 -0
  81. package/packages/scrabble-solver/src/icons/index.ts +1 -0
  82. package/packages/scrabble-solver/src/pages/_app.tsx +11 -2
  83. package/packages/solver/package-lock.json +2 -2
  84. package/packages/solver/package.json +5 -5
  85. package/packages/types/build/Game.d.ts +1 -0
  86. package/packages/types/build/Game.js +1 -0
  87. package/packages/types/build/Locale.d.ts +2 -1
  88. package/packages/types/build/Locale.js +1 -0
  89. package/packages/types/package.json +2 -2
  90. package/packages/types/src/Game.ts +1 -0
  91. package/packages/types/src/Locale.ts +1 -0
  92. package/packages/word-definitions/build/crawl.js +1 -0
  93. package/packages/word-definitions/build/index.d.ts +1 -1
  94. package/packages/word-definitions/build/index.js +1 -3
  95. package/packages/word-definitions/build/languages/index.d.ts +1 -0
  96. package/packages/word-definitions/build/languages/index.js +2 -1
  97. package/packages/word-definitions/build/languages/turkish.d.ts +3 -0
  98. package/packages/word-definitions/build/languages/turkish.js +31 -0
  99. package/packages/word-definitions/build/lib/index.d.ts +3 -3
  100. package/packages/word-definitions/build/lib/index.js +17 -7
  101. package/packages/word-definitions/build/parse.js +1 -0
  102. package/packages/word-definitions/package-lock.json +2 -2
  103. package/packages/word-definitions/package.json +2 -2
  104. package/packages/word-definitions/src/__tests__/expected/tr-TR.lojik.json +4 -0
  105. package/packages/word-definitions/src/__tests__/input/tr-TR.lojik.html +1 -0
  106. package/packages/word-definitions/src/crawl.ts +2 -1
  107. package/packages/word-definitions/src/index.ts +1 -2
  108. package/packages/word-definitions/src/languages/index.ts +1 -0
  109. package/packages/word-definitions/src/languages/turkish.ts +32 -0
  110. package/packages/word-definitions/src/lib/index.ts +3 -3
  111. package/packages/word-definitions/src/parse.test.ts +1 -0
  112. package/packages/word-definitions/src/parse.ts +2 -1
  113. package/packages/word-lists/build/getWordList.js +1 -0
  114. package/packages/word-lists/build/languages/index.d.ts +1 -0
  115. package/packages/word-lists/build/languages/index.js +2 -1
  116. package/packages/word-lists/build/languages/turkish.d.ts +1 -0
  117. package/packages/word-lists/build/languages/turkish.js +10 -0
  118. package/packages/word-lists/package-lock.json +2 -2
  119. package/packages/word-lists/package.json +2 -2
  120. package/packages/word-lists/src/getWordList.ts +2 -1
  121. package/packages/word-lists/src/languages/index.ts +1 -0
  122. package/packages/word-lists/src/languages/turkish.ts +9 -0
  123. package/packages/scrabble-solver/.next/static/chunks/pages/_app-2912876c7b6e698e.js +0 -17
  124. /package/packages/scrabble-solver/.next/static/{TxfjxrH5h31sPQxPhrJzG → C0yfLTukP3L3iDqdXbbBv}/_ssgManifest.js +0 -0
@@ -9,7 +9,7 @@ import { useDispatch } from 'react-redux';
9
9
 
10
10
  import { useAppLayout } from 'hooks';
11
11
  import { LOCALE_FEATURES } from 'i18n';
12
- import { BORDER_WIDTH, TRANSITION } from 'parameters';
12
+ import { TRANSITION } from 'parameters';
13
13
  import {
14
14
  boardSlice,
15
15
  cellFilterSlice,
@@ -176,8 +176,8 @@ const Board: FunctionComponent<Props> = ({ className }) => {
176
176
  ref={floatingFocus.refs.setFloating}
177
177
  style={{
178
178
  position: floatingFocus.strategy,
179
- top: floatingFocus.y + cellSize - (showCoordinates === 'hidden' ? 0 : BORDER_WIDTH),
180
- left: floatingFocus.x - (showCoordinates === 'hidden' ? 0 : BORDER_WIDTH),
179
+ top: floatingFocus.y + cellSize,
180
+ left: floatingFocus.x,
181
181
  width: cellSize,
182
182
  height: cellSize,
183
183
  opacity: hasFocus ? 1 : 0,
@@ -51,8 +51,9 @@ $radio-box-size: $radio-size + 2 * $radio-inner-border;
51
51
  &::after {
52
52
  content: ' ';
53
53
  position: absolute;
54
- top: $radio-inner-border;
55
- left: $radio-inner-border;
54
+ top: 50%;
55
+ left: 50%;
56
+ transform: translate(-50%, -50%);
56
57
  width: $radio-inner-size;
57
58
  height: $radio-inner-size;
58
59
  background-color: transparent;
@@ -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, FlagRo, FlagUs } from 'icons';
5
+ import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagRo, FlagTr, FlagUs } from 'icons';
6
6
 
7
7
  interface LocaleFeatures {
8
8
  comma: string;
@@ -105,4 +105,15 @@ export const LOCALE_FEATURES: Record<Locale, LocaleFeatures> = {
105
105
  separator: `${COMMA_LATIN} `,
106
106
  vowels: true,
107
107
  },
108
+ [Locale.TR_TR]: {
109
+ comma: COMMA_LATIN,
110
+ consonants: true,
111
+ direction: 'ltr',
112
+ Icon: FlagTr,
113
+ label: 'Türkçe',
114
+ locale: Locale.TR_TR,
115
+ name: 'Turkish',
116
+ separator: `${COMMA_LATIN} `,
117
+ vowels: true,
118
+ },
108
119
  };
@@ -9,6 +9,7 @@ import persian from './languages/persian.json';
9
9
  import polish from './languages/polish.json';
10
10
  import romanian from './languages/romanian.json';
11
11
  import spanish from './languages/spanish.json';
12
+ import turkish from './languages/turkish.json';
12
13
 
13
14
  const i18n: Record<Locale, Translations> = {
14
15
  [Locale.DE_DE]: german,
@@ -19,6 +20,7 @@ const i18n: Record<Locale, Translations> = {
19
20
  [Locale.FR_FR]: french,
20
21
  [Locale.PL_PL]: polish,
21
22
  [Locale.RO_RO]: romanian,
23
+ [Locale.TR_TR]: turkish,
22
24
  };
23
25
 
24
26
  export default i18n;
@@ -0,0 +1,78 @@
1
+ {
2
+ "cell.enter-word": "Kelimeyi girin",
3
+ "cell.filter-cell.exclude": "Hedefi hariç tut",
4
+ "cell.filter-cell.include": "Hedef varış noktası",
5
+ "cell.set-blank": "Boş olarak işaretle",
6
+ "cell.set-not-blank": "Boş değil olarak işaretle",
7
+ "cell.tile.location": "Tahta: harfler ({{x}}, {{y}})",
8
+ "cell.toggle-direction": "Yazma yönü - geçiş yapmak için tıklayın",
9
+ "common.arrows": "Ok tuşları",
10
+ "common.blanks": "Jokerler",
11
+ "common.clear": "Sıfırla",
12
+ "common.close": "Kapat",
13
+ "common.consonants": "Ünlü harfler",
14
+ "common.loading": "Yükleniyor",
15
+ "common.next": "Sonraki",
16
+ "common.points": "Puanlar",
17
+ "common.previous": "Öncesi",
18
+ "common.space": "Boşluk çubuğu",
19
+ "common.tiles": "Taşlar",
20
+ "common.two-letter-tiles": "İki Harfli",
21
+ "common.vowels": "Ünsüz harfler",
22
+ "common.word": "Kelime",
23
+ "common.words": "Kelimeler",
24
+ "dictionary": "Sözlük",
25
+ "dictionary.empty-state.no-definitions": "Kelime sözlükte var ama tanımı yok.",
26
+ "dictionary.empty-state.no-results": "Sözlükte kelime tanımı bulunamadı.",
27
+ "dictionary.empty-state.not-allowed": "Bu kelimeye izin verilmiyor.",
28
+ "dictionary.empty-state.uninitialized": "En son vurgulanan kelimenin sözlük tanımı burada gösterilecektir.",
29
+ "dictionary.input.placeholder": "Sözlükte ara...",
30
+ "dictionary.input.title": "Virgülle ayrılmış kelimeler",
31
+ "empty-state.error": "Hata",
32
+ "empty-state.info": "Bilgi",
33
+ "empty-state.success": "Evet!",
34
+ "empty-state.warning": "Aman hayır!",
35
+ "github": "GitHub'da bu projeye bakın",
36
+ "keyMap": "Klavye Kısayolları",
37
+ "keyMap.board": "Tahta",
38
+ "keyMap.board.toggle-blank": "Taşı joker olarak işaretle/olmaktan çıkar",
39
+ "keyMap.board.toggle-cell-filter": "Hedef filtresini değiştir",
40
+ "keyMap.board.toggle-direction": "Yazma yönünü değiştir",
41
+ "keyMap.board-and-rack": "Tahta ve Deste",
42
+ "keyMap.board-and-rack.insert-two-letter-tile": "İki harfli kutucuğu ekle",
43
+ "keyMap.board-and-rack.navigate": "Gezinme",
44
+ "keyMap.board-and-rack.remove-tile": "Taşı kaldır",
45
+ "keyMap.board-and-rack.submit": "Çözmeye başla",
46
+ "keyMap.rack": "Deste",
47
+ "keyMap.rack.insert-blank": "Joker ekle (spacebar)",
48
+ "menu": "Menü",
49
+ "rack.placeholder": "Taşlar…",
50
+ "rack.tile.location": "Deste: harfler ({{index}})",
51
+ "rack.touchscreen.placeholder": "Taşlar…",
52
+ "remaining-tiles": "Kalan taşlar",
53
+ "results": "Sonuçlar",
54
+ "results.empty-state.no-results": "Sonuç bulunamadı - kelime üretilemedi.",
55
+ "results.empty-state.outdated": "Sonuçlar güncelliğini yitirmiştir.",
56
+ "results.empty-state.uninitialized": "Harflerinizden oluşturulan kelimeler burada gösterilecektir.",
57
+ "results.input.placeholder": "Sonuçları Ara... (RegExp)",
58
+ "results.insert": "Sokmak",
59
+ "results.preview": "Önizleme",
60
+ "results.solve": "Çöz",
61
+ "settings": "Ayarlar",
62
+ "settings.autoGroupTiles": "Kalan taşları grupla",
63
+ "settings.autoGroupTiles.left": "Soldaki",
64
+ "settings.autoGroupTiles.right": "Sağdaki",
65
+ "settings.autoGroupTiles.null": "Gruplamayın",
66
+ "settings.game": "Oyun",
67
+ "settings.inputMode": "Giriş Methodu",
68
+ "settings.inputMode.keyboard": "Klavye",
69
+ "settings.inputMode.touchscreen": "Dokunmatik ekran",
70
+ "settings.language": "Dil",
71
+ "settings.showCoordinates": "Koordinatlar",
72
+ "settings.showCoordinates.alternative": "Alternatif",
73
+ "settings.showCoordinates.hidden": "Gizlenmiş",
74
+ "settings.showCoordinates.original": "Orijinal",
75
+ "words": "Oluşturulan kelimeler",
76
+ "words.invalid": "Geçersiz",
77
+ "words.valid": "Geçerli"
78
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -30000 90000 60000">
2
+ <path fill="#e30a17" d="m0-30000h90000v60000H0z" />
3
+ <path fill="#fff" d="m41750 0 13568-4408-8386 11541V-7133l8386 11541zm925 8021a15000 15000 0 1 1 0-16042 12000 12000 0 1 0 0 16042z" />
4
+ </svg>
@@ -27,6 +27,7 @@ export { default as FlagFr } from './FlagFr.svg';
27
27
  export { default as FlagGb } from './FlagGb.svg';
28
28
  export { default as FlagPl } from './FlagPl.svg';
29
29
  export { default as FlagRo } from './FlagRo.svg';
30
+ export { default as FlagTr } from './FlagTr.svg';
30
31
  export { default as FlagUs } from './FlagUs.svg';
31
32
  export { default as GeoAlt } from './GeoAlt.svg';
32
33
  export { default as Github } from './Github.svg';
@@ -18,7 +18,8 @@ const KEYWORDS = [
18
18
  'Scrabble',
19
19
  'Solver',
20
20
  'Super Scrabble',
21
- 'Super Scrabble Solver',
21
+ 'Kelimelik',
22
+ 'Literaki',
22
23
  'Board',
23
24
  'Open-source',
24
25
  'Open',
@@ -26,14 +27,22 @@ const KEYWORDS = [
26
27
  'Word',
27
28
  'Finder',
28
29
  'Cheating',
29
- 'Literaki',
30
30
  'Word',
31
31
  'English',
32
32
  'Français',
33
+ 'French',
33
34
  'Deutsch',
35
+ 'German',
34
36
  'Polski',
37
+ 'Polish',
35
38
  'فارسی',
39
+ 'Farsi',
36
40
  'Español',
41
+ 'Spanish',
42
+ 'Română',
43
+ 'Romanian',
44
+ 'Türkçe',
45
+ 'Turkish',
37
46
  'SOWPODS',
38
47
  'TWL06',
39
48
  'SJP',
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/solver",
9
- "version": "2.14.0",
9
+ "version": "2.15.0",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "@kamilmielnik/trie": "^3.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "Scrabble Solver 2 - Solver",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -24,12 +24,12 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@kamilmielnik/trie": "^3.0.0",
27
- "@scrabble-solver/types": "^2.14.0"
27
+ "@scrabble-solver/types": "^2.15.0"
28
28
  },
29
29
  "devDependencies": {
30
- "@scrabble-solver/configs": "^2.14.0",
31
- "@scrabble-solver/constants": "^2.14.0",
32
- "@scrabble-solver/dictionaries": "^2.14.0"
30
+ "@scrabble-solver/configs": "^2.15.0",
31
+ "@scrabble-solver/constants": "^2.15.0",
32
+ "@scrabble-solver/dictionaries": "^2.15.0"
33
33
  },
34
34
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
35
35
  }
@@ -1,4 +1,5 @@
1
1
  declare enum Game {
2
+ Kelimelik = "kelimelik",
2
3
  Literaki = "literaki",
3
4
  Scrabble = "scrabble",
4
5
  SuperScrabble = "super-scrabble"
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isGame = void 0;
4
4
  var Game;
5
5
  (function (Game) {
6
+ Game["Kelimelik"] = "kelimelik";
6
7
  Game["Literaki"] = "literaki";
7
8
  Game["Scrabble"] = "scrabble";
8
9
  Game["SuperScrabble"] = "super-scrabble";
@@ -11,7 +11,8 @@ declare 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
+ RO_RO = "ro-RO",
15
+ TR_TR = "tr-TR"
15
16
  }
16
17
  export declare const isLocale: (locale: unknown) => locale is Locale;
17
18
  export default Locale;
@@ -16,6 +16,7 @@ var Locale;
16
16
  Locale["FR_FR"] = "fr-FR";
17
17
  Locale["PL_PL"] = "pl-PL";
18
18
  Locale["RO_RO"] = "ro-RO";
19
+ Locale["TR_TR"] = "tr-TR";
19
20
  })(Locale || (Locale = {}));
20
21
  const locales = Object.values(Locale);
21
22
  const isLocale = (locale) => locales.includes(locale);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "Scrabble Solver 2 - Types",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -23,7 +23,7 @@
23
23
  "clean": "rimraf build/"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/constants": "^2.14.0"
26
+ "@scrabble-solver/constants": "^2.15.0"
27
27
  },
28
28
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
29
29
  }
@@ -1,4 +1,5 @@
1
1
  enum Game {
2
+ Kelimelik = 'kelimelik',
2
3
  Literaki = 'literaki',
3
4
  Scrabble = 'scrabble',
4
5
  SuperScrabble = 'super-scrabble',
@@ -12,6 +12,7 @@ enum Locale {
12
12
  FR_FR = 'fr-FR',
13
13
  PL_PL = 'pl-PL',
14
14
  RO_RO = 'ro-RO',
15
+ TR_TR = 'tr-TR',
15
16
  }
16
17
 
17
18
  const locales = Object.values(Locale);
@@ -12,6 +12,7 @@ const crawlPerLocale = {
12
12
  [types_1.Locale.FR_FR]: languages_1.french.crawl,
13
13
  [types_1.Locale.PL_PL]: languages_1.polish.crawl,
14
14
  [types_1.Locale.RO_RO]: languages_1.romanian.crawl,
15
+ [types_1.Locale.TR_TR]: languages_1.turkish.crawl,
15
16
  };
16
17
  const crawl = (locale, word) => {
17
18
  return crawlPerLocale[locale](word);
@@ -1,5 +1,5 @@
1
- export { getWordDefinition } from './getWordDefinition';
2
1
  export * from './crawl';
2
+ export * from './getWordDefinition';
3
3
  export * from './languages';
4
4
  export * from './lib';
5
5
  export * from './parse';
@@ -14,10 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getWordDefinition = void 0;
18
- var getWordDefinition_1 = require("./getWordDefinition");
19
- Object.defineProperty(exports, "getWordDefinition", { enumerable: true, get: function () { return getWordDefinition_1.getWordDefinition; } });
20
17
  __exportStar(require("./crawl"), exports);
18
+ __exportStar(require("./getWordDefinition"), exports);
21
19
  __exportStar(require("./languages"), exports);
22
20
  __exportStar(require("./lib"), exports);
23
21
  __exportStar(require("./parse"), exports);
@@ -5,3 +5,4 @@ export * as persian from './persian';
5
5
  export * as polish from './polish';
6
6
  export * as romanian from './romanian';
7
7
  export * as spanish from './spanish';
8
+ export * as turkish from './turkish';
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.spanish = exports.romanian = exports.polish = exports.persian = exports.french = exports.german = exports.english = void 0;
26
+ exports.turkish = exports.spanish = exports.romanian = exports.polish = exports.persian = exports.french = exports.german = exports.english = void 0;
27
27
  exports.english = __importStar(require("./english"));
28
28
  exports.german = __importStar(require("./german"));
29
29
  exports.french = __importStar(require("./french"));
@@ -31,3 +31,4 @@ exports.persian = __importStar(require("./persian"));
31
31
  exports.polish = __importStar(require("./polish"));
32
32
  exports.romanian = __importStar(require("./romanian"));
33
33
  exports.spanish = __importStar(require("./spanish"));
34
+ exports.turkish = __importStar(require("./turkish"));
@@ -0,0 +1,3 @@
1
+ import { ParsingResult } from '../types';
2
+ export declare const crawl: (word: string) => Promise<string>;
3
+ export declare const parse: (json: string) => ParsingResult;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parse = exports.crawl = void 0;
4
+ const lib_1 = require("../lib");
5
+ const crawl = (word) => {
6
+ return (0, lib_1.request)({
7
+ protocol: 'https',
8
+ hostname: 'sozluk.gov.tr',
9
+ path: `/gts?ara=${encodeURIComponent(word)}`,
10
+ headers: {
11
+ 'content-type': 'text/json',
12
+ },
13
+ });
14
+ };
15
+ exports.crawl = crawl;
16
+ const parse = (json) => {
17
+ const response = JSON.parse(json);
18
+ if (response.error) {
19
+ return {
20
+ definitions: [],
21
+ exists: false,
22
+ };
23
+ }
24
+ const [wordInfo] = response;
25
+ const definitions = wordInfo.anlamlarListe.map((entry) => entry.anlam.replace('►', '').trim());
26
+ return {
27
+ definitions,
28
+ exists: definitions.length > 0,
29
+ };
30
+ };
31
+ exports.parse = parse;
@@ -1,3 +1,3 @@
1
- export { normalizeDefinition } from './normalizeDefinition';
2
- export { request } from './request';
3
- export { unique } from './unique';
1
+ export * from './normalizeDefinition';
2
+ export * from './request';
3
+ export * from './unique';
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unique = exports.request = exports.normalizeDefinition = void 0;
4
- var normalizeDefinition_1 = require("./normalizeDefinition");
5
- Object.defineProperty(exports, "normalizeDefinition", { enumerable: true, get: function () { return normalizeDefinition_1.normalizeDefinition; } });
6
- var request_1 = require("./request");
7
- Object.defineProperty(exports, "request", { enumerable: true, get: function () { return request_1.request; } });
8
- var unique_1 = require("./unique");
9
- Object.defineProperty(exports, "unique", { enumerable: true, get: function () { return unique_1.unique; } });
17
+ __exportStar(require("./normalizeDefinition"), exports);
18
+ __exportStar(require("./request"), exports);
19
+ __exportStar(require("./unique"), exports);
@@ -13,6 +13,7 @@ const parsePerLocale = {
13
13
  [types_1.Locale.FR_FR]: languages_1.french.parse,
14
14
  [types_1.Locale.PL_PL]: languages_1.polish.parse,
15
15
  [types_1.Locale.RO_RO]: languages_1.romanian.parse,
16
+ [types_1.Locale.TR_TR]: languages_1.turkish.parse,
16
17
  };
17
18
  const parse = (locale, html) => {
18
19
  const { definitions, exists } = parsePerLocale[locale](html);
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-definitions",
9
- "version": "2.14.0",
9
+ "version": "2.15.0",
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.14.0",
3
+ "version": "2.15.0",
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/"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/types": "^2.14.0",
26
+ "@scrabble-solver/types": "^2.15.0",
27
27
  "cheerio": "^1.0.0-rc.12",
28
28
  "follow-redirects": "^1.15.6",
29
29
  "striptags": "^3.2.0"
@@ -0,0 +1,4 @@
1
+ {
2
+ "definitions": ["Mantıkla ilgili", "mantıklı", "mantık"],
3
+ "exists": true
4
+ }
@@ -0,0 +1 @@
1
+ [{"madde_id":"44658","kac":"0","kelime_no":"33889","cesit":"0","anlam_gor":"0","on_taki":null,"on_taki_html":null,"madde":"lojik","madde_html":"<strong>lojik<\/strong>","cesit_say":"0","anlam_say":"3","taki":"ği","cogul_mu":"0","ozel_mi":"0","egik_mi":"0","lisan_kodu":"13","lisan":"Fransızca logique","telaffuz_html":null,"lisan_html":null,"telaffuz":"l ince okunur","birlesikler":null,"font":null,"madde_duz":"lojik","gosterim_tarihi":null,"anlamlarListe":[{"anlam_id":"58622","madde_id":"44658","anlam_sira":"1","fiil":"0","tipkes":"0","anlam":"Mantıkla ilgili","anlam_html":null,"gos":"0","gos_kelime":"0","gos_kultur":"0","ozelliklerListe":[{"ozellik_id":"20","tur":"3","tam_adi":"sıfat","kisa_adi":"sf.","ekno":"31"}]},{"anlam_id":"58623","madde_id":"44658","anlam_sira":"2","fiil":"0","tipkes":"0","anlam":"► mantıklı","anlam_html":"<p>► mantıklı<\/p>\n","gos":"0","gos_kelime":"0","gos_kultur":"0","orneklerListe":[{"ornek_id":"54500","anlam_id":"58623","ornek_sira":"1","ornek":"Osman mekanik araçları, bu araçların işleyişini göz önüne alarak aslına uymayı gözden kaçırmayan lojik bir sorumlulukla tasvir etmiştir.","kac":"1","yazar_id":"2221","yazar_vd":"","yazar":[{"yazar_id":"2221","tam_adi":"Sezer Tansuğ","kisa_adi":"S. Tansuğ","ekno":"2454"}]}]},{"anlam_id":"58624","madde_id":"44658","anlam_sira":"3","fiil":"0","tipkes":"0","anlam":"► mantık","anlam_html":"<p>► mantık<\/p>\n","gos":"1","gos_kelime":"0","gos_kultur":"0","ozelliklerListe":[{"ozellik_id":"19","tur":"3","tam_adi":"isim","kisa_adi":"a.","ekno":"30"},{"ozellik_id":"57","tur":"1","tam_adi":"felsefe","kisa_adi":"fel.","ekno":"106"}]}]}]
@@ -1,6 +1,6 @@
1
1
  import { Locale } from '@scrabble-solver/types';
2
2
 
3
- import { english, french, german, persian, polish, romanian, spanish } from './languages';
3
+ import { english, french, german, persian, polish, romanian, spanish, turkish } from './languages';
4
4
 
5
5
  const crawlPerLocale: Record<Locale, (word: string) => Promise<string>> = {
6
6
  [Locale.DE_DE]: german.crawl,
@@ -11,6 +11,7 @@ const crawlPerLocale: Record<Locale, (word: string) => Promise<string>> = {
11
11
  [Locale.FR_FR]: french.crawl,
12
12
  [Locale.PL_PL]: polish.crawl,
13
13
  [Locale.RO_RO]: romanian.crawl,
14
+ [Locale.TR_TR]: turkish.crawl,
14
15
  };
15
16
 
16
17
  export const crawl = (locale: Locale, word: string): Promise<string> => {
@@ -1,6 +1,5 @@
1
- export { getWordDefinition } from './getWordDefinition';
2
-
3
1
  export * from './crawl';
2
+ export * from './getWordDefinition';
4
3
  export * from './languages';
5
4
  export * from './lib';
6
5
  export * from './parse';
@@ -5,3 +5,4 @@ export * as persian from './persian';
5
5
  export * as polish from './polish';
6
6
  export * as romanian from './romanian';
7
7
  export * as spanish from './spanish';
8
+ export * as turkish from './turkish';
@@ -0,0 +1,32 @@
1
+ import { request } from '../lib';
2
+ import { ParsingResult } from '../types';
3
+
4
+ export const crawl = (word: string): Promise<string> => {
5
+ return request({
6
+ protocol: 'https',
7
+ hostname: 'sozluk.gov.tr',
8
+ path: `/gts?ara=${encodeURIComponent(word)}`,
9
+ headers: {
10
+ 'content-type': 'text/json',
11
+ },
12
+ });
13
+ };
14
+
15
+ export const parse = (json: string): ParsingResult => {
16
+ const response = JSON.parse(json);
17
+
18
+ if (response.error) {
19
+ return {
20
+ definitions: [],
21
+ exists: false,
22
+ };
23
+ }
24
+
25
+ const [wordInfo] = response;
26
+ const definitions = wordInfo.anlamlarListe.map((entry: { anlam: string }) => entry.anlam.replace('►', '').trim());
27
+
28
+ return {
29
+ definitions,
30
+ exists: definitions.length > 0,
31
+ };
32
+ };
@@ -1,3 +1,3 @@
1
- export { normalizeDefinition } from './normalizeDefinition';
2
- export { request } from './request';
3
- export { unique } from './unique';
1
+ export * from './normalizeDefinition';
2
+ export * from './request';
3
+ export * from './unique';
@@ -23,6 +23,7 @@ const tests = [
23
23
  { locale: Locale.ES_ES, word: 'corma' },
24
24
  { locale: Locale.ES_ES, word: 'portero' },
25
25
  { locale: Locale.RO_RO, word: 'aciua' },
26
+ { locale: Locale.TR_TR, word: 'lojik' },
26
27
  ];
27
28
 
28
29
  describe('parse', () => {
@@ -1,6 +1,6 @@
1
1
  import { Locale } from '@scrabble-solver/types';
2
2
 
3
- import { english, french, german, persian, polish, romanian, spanish } from './languages';
3
+ import { english, french, german, persian, polish, romanian, spanish, turkish } from './languages';
4
4
  import { normalizeDefinition, unique } from './lib';
5
5
  import { ParsingResult } from './types';
6
6
 
@@ -13,6 +13,7 @@ const parsePerLocale: Record<Locale, (html: string) => ParsingResult> = {
13
13
  [Locale.FR_FR]: french.parse,
14
14
  [Locale.PL_PL]: polish.parse,
15
15
  [Locale.RO_RO]: romanian.parse,
16
+ [Locale.TR_TR]: turkish.parse,
16
17
  };
17
18
 
18
19
  export const parse = (locale: Locale, html: string): ParsingResult => {
@@ -12,6 +12,7 @@ const localeMap = {
12
12
  [types_1.Locale.FR_FR]: languages_1.french.getWordList,
13
13
  [types_1.Locale.PL_PL]: languages_1.polish.getWordList,
14
14
  [types_1.Locale.RO_RO]: languages_1.romanian.getWordList,
15
+ [types_1.Locale.TR_TR]: languages_1.turkish.getWordList,
15
16
  };
16
17
  const getWordList = (locale) => localeMap[locale]();
17
18
  exports.getWordList = getWordList;
@@ -5,3 +5,4 @@ export * as persian from './persian';
5
5
  export * as polish from './polish';
6
6
  export * as romanian from './romanian';
7
7
  export * as spanish from './spanish';
8
+ export * as turkish from './turkish';
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.spanish = exports.romanian = exports.polish = exports.persian = exports.french = exports.german = exports.english = void 0;
26
+ exports.turkish = exports.spanish = exports.romanian = exports.polish = exports.persian = exports.french = exports.german = exports.english = void 0;
27
27
  exports.english = __importStar(require("./english"));
28
28
  exports.german = __importStar(require("./german"));
29
29
  exports.french = __importStar(require("./french"));
@@ -31,3 +31,4 @@ exports.persian = __importStar(require("./persian"));
31
31
  exports.polish = __importStar(require("./polish"));
32
32
  exports.romanian = __importStar(require("./romanian"));
33
33
  exports.spanish = __importStar(require("./spanish"));
34
+ exports.turkish = __importStar(require("./turkish"));
@@ -0,0 +1 @@
1
+ export declare const getWordList: () => Promise<string[]>;