scrabble-solver 2.14.0 → 2.15.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 (143) hide show
  1. package/.nx/workspace-data/file-map.json +438 -406
  2. package/.nx/workspace-data/lockfile.hash +1 -1
  3. package/.nx/workspace-data/parsed-lock-file.json +32 -56
  4. package/.nx/workspace-data/project-graph.json +32 -58
  5. package/README.md +12 -10
  6. package/lerna.json +1 -1
  7. package/package.json +12 -3
  8. package/packages/configs/build/games/index.d.ts +4 -3
  9. package/packages/configs/build/games/index.js +17 -9
  10. package/packages/configs/build/games/kelimelik.d.ts +16 -0
  11. package/packages/configs/build/games/kelimelik.js +64 -0
  12. package/packages/configs/build/games/literaki.d.ts +1 -2
  13. package/packages/configs/build/games/literaki.js +2 -2
  14. package/packages/configs/build/games/scrabble.d.ts +1 -2
  15. package/packages/configs/build/games/scrabble.js +2 -2
  16. package/packages/configs/build/games/superScrabble.d.ts +1 -2
  17. package/packages/configs/build/games/superScrabble.js +2 -2
  18. package/packages/configs/build/languages/index.d.ts +1 -0
  19. package/packages/configs/build/languages/index.js +1 -0
  20. package/packages/configs/build/languages/romanian.d.ts +1 -0
  21. package/packages/configs/build/languages/romanian.js +29 -1
  22. package/packages/configs/build/languages/turkish.d.ts +3 -0
  23. package/packages/configs/build/languages/turkish.js +75 -0
  24. package/packages/configs/package.json +3 -3
  25. package/packages/configs/src/games/index.ts +4 -3
  26. package/packages/configs/src/games/kelimelik.ts +62 -0
  27. package/packages/configs/src/games/literaki.ts +1 -3
  28. package/packages/configs/src/games/scrabble.ts +1 -3
  29. package/packages/configs/src/games/superScrabble.ts +1 -3
  30. package/packages/configs/src/languages/index.ts +1 -0
  31. package/packages/configs/src/languages/romanian.ts +30 -1
  32. package/packages/configs/src/languages/turkish.ts +75 -0
  33. package/packages/constants/build/index.js +2 -2
  34. package/packages/constants/package.json +1 -1
  35. package/packages/constants/src/index.ts +2 -2
  36. package/packages/dictionaries/package-lock.json +2 -2
  37. package/packages/dictionaries/package.json +4 -4
  38. package/packages/logger/package-lock.json +2 -2
  39. package/packages/logger/package.json +1 -1
  40. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  41. package/packages/scrabble-solver/.next/build-manifest.json +14 -14
  42. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  43. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  44. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  45. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  46. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  47. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  48. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  49. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  50. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  51. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  52. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  53. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  54. package/packages/scrabble-solver/.next/required-server-files.json +1 -1
  55. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  56. package/packages/scrabble-solver/.next/server/chunks/331.js +3 -3
  57. package/packages/scrabble-solver/.next/server/chunks/807.js +1 -1
  58. package/packages/scrabble-solver/.next/server/chunks/911.js +1 -1
  59. package/packages/scrabble-solver/.next/server/chunks/977.js +1 -1
  60. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  61. package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
  62. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  63. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  64. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  65. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
  66. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  67. package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
  68. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  69. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  70. package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
  71. package/packages/scrabble-solver/.next/static/{TxfjxrH5h31sPQxPhrJzG → _wmO1o8nRNndcRUW0qFct}/_buildManifest.js +1 -1
  72. package/packages/scrabble-solver/.next/static/chunks/framework-a6ccb1a1ec9e2929.js +1 -0
  73. package/packages/scrabble-solver/.next/static/chunks/main-95ec913189851e35.js +1 -0
  74. package/packages/scrabble-solver/.next/static/chunks/pages/_app-079be27740c6daa8.js +1 -0
  75. package/packages/scrabble-solver/.next/static/chunks/pages/{index-86d9ad372c48c8b7.js → index-4143525ec0fa83bb.js} +1 -1
  76. package/packages/scrabble-solver/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  77. package/packages/scrabble-solver/.next/static/css/{14625ff7b4d265d0.css → ac3349339fcf58f2.css} +1 -1
  78. package/packages/scrabble-solver/.next/trace +45 -45
  79. package/packages/scrabble-solver/next-env.d.ts +1 -1
  80. package/packages/scrabble-solver/package-lock.json +2 -2
  81. package/packages/scrabble-solver/package.json +8 -8
  82. package/packages/scrabble-solver/public/service-worker.js +2 -2
  83. package/packages/scrabble-solver/public/service-worker.js.map +1 -1
  84. package/packages/scrabble-solver/src/components/Board/Board.tsx +3 -3
  85. package/packages/scrabble-solver/src/components/Radio/Radio.module.scss +3 -2
  86. package/packages/scrabble-solver/src/i18n/constants.ts +12 -1
  87. package/packages/scrabble-solver/src/i18n/i18n.ts +2 -0
  88. package/packages/scrabble-solver/src/i18n/languages/turkish.json +78 -0
  89. package/packages/scrabble-solver/src/icons/FlagTr.svg +4 -0
  90. package/packages/scrabble-solver/src/icons/index.ts +1 -0
  91. package/packages/scrabble-solver/src/pages/_app.tsx +11 -2
  92. package/packages/solver/package-lock.json +2 -2
  93. package/packages/solver/package.json +5 -5
  94. package/packages/types/build/Game.d.ts +1 -0
  95. package/packages/types/build/Game.js +1 -0
  96. package/packages/types/build/Locale.d.ts +2 -1
  97. package/packages/types/build/Locale.js +1 -0
  98. package/packages/types/package.json +2 -2
  99. package/packages/types/src/Game.ts +1 -0
  100. package/packages/types/src/Locale.ts +1 -0
  101. package/packages/word-definitions/build/crawl.js +1 -0
  102. package/packages/word-definitions/build/index.d.ts +1 -1
  103. package/packages/word-definitions/build/index.js +1 -3
  104. package/packages/word-definitions/build/languages/index.d.ts +1 -0
  105. package/packages/word-definitions/build/languages/index.js +2 -1
  106. package/packages/word-definitions/build/languages/turkish.d.ts +3 -0
  107. package/packages/word-definitions/build/languages/turkish.js +31 -0
  108. package/packages/word-definitions/build/lib/index.d.ts +3 -3
  109. package/packages/word-definitions/build/lib/index.js +17 -7
  110. package/packages/word-definitions/build/parse.js +1 -0
  111. package/packages/word-definitions/package-lock.json +2 -2
  112. package/packages/word-definitions/package.json +2 -2
  113. package/packages/word-definitions/src/__tests__/expected/tr-TR.lojik.json +4 -0
  114. package/packages/word-definitions/src/__tests__/input/tr-TR.lojik.html +1 -0
  115. package/packages/word-definitions/src/crawl.ts +2 -1
  116. package/packages/word-definitions/src/index.ts +1 -2
  117. package/packages/word-definitions/src/languages/index.ts +1 -0
  118. package/packages/word-definitions/src/languages/turkish.ts +32 -0
  119. package/packages/word-definitions/src/lib/index.ts +3 -3
  120. package/packages/word-definitions/src/parse.test.ts +1 -0
  121. package/packages/word-definitions/src/parse.ts +2 -1
  122. package/packages/word-lists/build/getWordList.js +1 -0
  123. package/packages/word-lists/build/languages/index.d.ts +1 -0
  124. package/packages/word-lists/build/languages/index.js +2 -1
  125. package/packages/word-lists/build/languages/turkish.d.ts +1 -0
  126. package/packages/word-lists/build/languages/turkish.js +10 -0
  127. package/packages/word-lists/package-lock.json +2 -2
  128. package/packages/word-lists/package.json +2 -2
  129. package/packages/word-lists/src/getWordList.ts +2 -1
  130. package/packages/word-lists/src/languages/index.ts +1 -0
  131. package/packages/word-lists/src/languages/turkish.ts +9 -0
  132. package/.nx/cache/d/server-process.json +0 -1
  133. package/.nx/cache/file-map.json +0 -2594
  134. package/.nx/cache/lockfile.hash +0 -1
  135. package/.nx/cache/nx_files.nxt +0 -0
  136. package/.nx/cache/parsed-lock-file.json +0 -31627
  137. package/.nx/cache/project-graph.json +0 -31916
  138. package/packages/scrabble-solver/.next/prerender-manifest.js +0 -1
  139. package/packages/scrabble-solver/.next/static/chunks/framework-c623a49d0bf89652.js +0 -49
  140. package/packages/scrabble-solver/.next/static/chunks/main-8b0b4e610892a916.js +0 -1
  141. package/packages/scrabble-solver/.next/static/chunks/pages/_app-2912876c7b6e698e.js +0 -17
  142. package/packages/scrabble-solver/.next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -1
  143. /package/packages/scrabble-solver/.next/static/{TxfjxrH5h31sPQxPhrJzG → _wmO1o8nRNndcRUW0qFct}/_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.1",
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.1",
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.1",
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.1"
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.1",
31
+ "@scrabble-solver/constants": "^2.15.1",
32
+ "@scrabble-solver/dictionaries": "^2.15.1"
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.1",
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.1"
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.1",
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.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.14.0",
3
+ "version": "2.15.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/"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/types": "^2.14.0",
26
+ "@scrabble-solver/types": "^2.15.1",
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[]>;