scrabble-solver 2.10.10 → 2.11.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 (142) hide show
  1. package/lerna.json +1 -1
  2. package/package.json +8 -8
  3. package/packages/configs/package.json +3 -3
  4. package/packages/constants/package.json +1 -1
  5. package/packages/dictionaries/package-lock.json +2 -2
  6. package/packages/dictionaries/package.json +4 -4
  7. package/packages/logger/package-lock.json +8 -8
  8. package/packages/logger/package.json +1 -1
  9. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  10. package/packages/scrabble-solver/.next/build-manifest.json +12 -12
  11. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  12. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  13. package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
  14. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  15. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  16. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  17. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  18. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  19. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  20. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  21. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  22. package/packages/scrabble-solver/.next/required-server-files.json +1 -1
  23. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  24. package/packages/scrabble-solver/.next/server/chunks/{176.js → 277.js} +860 -767
  25. package/packages/scrabble-solver/.next/server/chunks/{290.js → 417.js} +3 -3
  26. package/packages/scrabble-solver/.next/server/chunks/50.js +371 -343
  27. package/packages/scrabble-solver/.next/server/chunks/664.js +15 -15
  28. package/packages/scrabble-solver/.next/server/chunks/859.js +17 -10
  29. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  30. package/packages/scrabble-solver/.next/server/next-font-manifest.js +1 -0
  31. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  32. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  33. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  34. package/packages/scrabble-solver/.next/server/pages/_app.js +4 -12
  35. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  36. package/packages/scrabble-solver/.next/server/pages/_document.js +2 -2
  37. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
  38. package/packages/scrabble-solver/.next/server/pages/_error.js +4 -4
  39. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +4 -4
  40. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  41. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +3 -3
  42. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  43. package/packages/scrabble-solver/.next/server/pages/api/solve.js +9 -14
  44. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
  45. package/packages/scrabble-solver/.next/server/pages/api/verify.js +3 -3
  46. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
  47. package/packages/scrabble-solver/.next/server/pages/api/visit.js +3 -3
  48. package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -1
  49. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  50. package/packages/scrabble-solver/.next/server/pages/index.js +250 -175
  51. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  52. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  53. package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
  54. package/packages/scrabble-solver/.next/static/45ye7793DY705HOcuK9lJ/_buildManifest.js +1 -0
  55. package/packages/scrabble-solver/.next/static/chunks/main-0ecb9ccfcb6c9b24.js +1 -0
  56. package/packages/scrabble-solver/.next/static/chunks/pages/404-e0f30450e9920dc3.js +1 -0
  57. package/packages/scrabble-solver/.next/static/chunks/pages/_app-d7acee5e526752d9.js +28 -0
  58. package/packages/scrabble-solver/.next/static/chunks/pages/{_error-8353112a01355ec2.js → _error-54de1933a164a1ff.js} +1 -1
  59. package/packages/scrabble-solver/.next/static/chunks/pages/index-35d2c1c79a201ae2.js +1 -0
  60. package/packages/scrabble-solver/.next/static/css/a48caa6f57de6e98.css +1 -0
  61. package/packages/scrabble-solver/.next/static/css/c49bbe944ddd1b39.css +2 -0
  62. package/packages/scrabble-solver/.next/trace +55 -55
  63. package/packages/scrabble-solver/package-lock.json +224 -253
  64. package/packages/scrabble-solver/package.json +11 -12
  65. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +1 -0
  66. package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +1 -1
  67. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss +13 -8
  68. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.tsx +5 -5
  69. package/packages/scrabble-solver/src/components/Loading/Loading.tsx +1 -1
  70. package/packages/scrabble-solver/src/components/Modal/Modal.module.scss +0 -1
  71. package/packages/scrabble-solver/src/components/NavButtons/NavButtons.tsx +4 -5
  72. package/packages/scrabble-solver/src/components/Results/Results.module.scss +15 -2
  73. package/packages/scrabble-solver/src/components/Results/Results.tsx +78 -67
  74. package/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.tsx +6 -2
  75. package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +9 -7
  76. package/packages/scrabble-solver/src/components/Solver/Solver.tsx +21 -49
  77. package/packages/scrabble-solver/src/components/Solver/components/FloatingSolveButton/FloatingSolveButton.module.scss +7 -0
  78. package/packages/scrabble-solver/src/components/Solver/components/{SolveButton/SolveButton.tsx → FloatingSolveButton/FloatingSolveButton.tsx} +6 -6
  79. package/packages/scrabble-solver/src/components/Solver/components/FloatingSolveButton/index.ts +1 -0
  80. package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +19 -4
  81. package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +13 -1
  82. package/packages/scrabble-solver/src/components/Solver/components/index.ts +1 -1
  83. package/packages/scrabble-solver/src/components/Spinner/Spinner.module.scss +11 -0
  84. package/packages/scrabble-solver/src/components/Spinner/Spinner.tsx +19 -0
  85. package/packages/scrabble-solver/src/components/Spinner/index.ts +1 -0
  86. package/packages/scrabble-solver/src/components/Tile/Tile.tsx +9 -9
  87. package/packages/scrabble-solver/src/components/index.ts +1 -1
  88. package/packages/scrabble-solver/src/hooks/index.ts +1 -0
  89. package/packages/scrabble-solver/src/hooks/useAppLayout.ts +29 -0
  90. package/packages/scrabble-solver/src/i18n/de.json +1 -0
  91. package/packages/scrabble-solver/src/i18n/en.json +1 -0
  92. package/packages/scrabble-solver/src/i18n/es.json +1 -0
  93. package/packages/scrabble-solver/src/i18n/fa.json +1 -0
  94. package/packages/scrabble-solver/src/i18n/fr.json +1 -0
  95. package/packages/scrabble-solver/src/i18n/index.ts +1 -1
  96. package/packages/scrabble-solver/src/i18n/pl.json +1 -0
  97. package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.module.scss +18 -0
  98. package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.tsx +27 -0
  99. package/packages/scrabble-solver/src/modals/DictionaryModal/index.ts +1 -0
  100. package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.tsx +7 -1
  101. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.module.scss +18 -1
  102. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +10 -13
  103. package/packages/scrabble-solver/src/modals/index.ts +1 -0
  104. package/packages/scrabble-solver/src/pages/api/solve.ts +9 -10
  105. package/packages/scrabble-solver/src/pages/index.tsx +20 -15
  106. package/packages/scrabble-solver/src/parameters/index.ts +0 -6
  107. package/packages/scrabble-solver/src/service-worker/routeSolveRequests.ts +4 -1
  108. package/packages/scrabble-solver/src/state/localStorage.ts +0 -9
  109. package/packages/scrabble-solver/src/styles/animations.scss +10 -0
  110. package/packages/scrabble-solver/src/styles/global.scss +1 -1
  111. package/packages/scrabble-solver/src/styles/variables.scss +1 -1
  112. package/packages/scrabble-solver/src/types/index.ts +1 -0
  113. package/packages/solver/package-lock.json +2 -2
  114. package/packages/solver/package.json +5 -5
  115. package/packages/types/package.json +2 -2
  116. package/packages/word-definitions/build/lib/normalizeDefinition.js +1 -1
  117. package/packages/word-definitions/package-lock.json +8 -8
  118. package/packages/word-definitions/package.json +2 -2
  119. package/packages/word-definitions/src/lib/normalizeDefinition.ts +1 -1
  120. package/packages/word-definitions/src/parse/__tests__/expected/en-US.oe.json +7 -0
  121. package/packages/word-definitions/src/parse/__tests__/input/en-US.oe.html +1337 -0
  122. package/packages/word-definitions/src/parse/parse.test.ts +1 -0
  123. package/packages/word-lists/package-lock.json +8 -8
  124. package/packages/word-lists/package.json +2 -2
  125. package/packages/configs/package-lock.json +0 -58
  126. package/packages/constants/package-lock.json +0 -13
  127. package/packages/scrabble-solver/.next/server/font-loader-manifest.js +0 -1
  128. package/packages/scrabble-solver/.next/static/chunks/main-74c4d6b2b5c362f3.js +0 -1
  129. package/packages/scrabble-solver/.next/static/chunks/pages/404-d5ff00df1c687977.js +0 -1
  130. package/packages/scrabble-solver/.next/static/chunks/pages/_app-3272e798504c40d8.js +0 -28
  131. package/packages/scrabble-solver/.next/static/chunks/pages/index-5c2544930e46c5ce.js +0 -1
  132. package/packages/scrabble-solver/.next/static/css/336e75db2b74b157.css +0 -2
  133. package/packages/scrabble-solver/.next/static/css/ec4e47a6b1866fe5.css +0 -1
  134. package/packages/scrabble-solver/.next/static/warzWo25tDxo_Eiv9T6f2/_buildManifest.js +0 -1
  135. package/packages/scrabble-solver/src/components/Solver/components/SolveButton/SolveButton.module.scss +0 -4
  136. package/packages/scrabble-solver/src/components/Solver/components/SolveButton/index.ts +0 -1
  137. package/packages/scrabble-solver/src/components/Well/Well.module.scss +0 -6
  138. package/packages/scrabble-solver/src/components/Well/Well.tsx +0 -17
  139. package/packages/scrabble-solver/src/components/Well/index.ts +0 -1
  140. package/packages/types/package-lock.json +0 -30
  141. /package/packages/scrabble-solver/.next/server/{font-loader-manifest.json → next-font-manifest.json} +0 -0
  142. /package/packages/scrabble-solver/.next/static/{warzWo25tDxo_Eiv9T6f2 → 45ye7793DY705HOcuK9lJ}/_ssgManifest.js +0 -0
@@ -38,10 +38,6 @@ export const BOARD_TILE_SIZE_MIN = 20;
38
38
 
39
39
  export const BORDER_WIDTH = 1;
40
40
 
41
- export const COLUMN_MIN_HEIGHT = 588.5;
42
-
43
- export const DICTIONARY_HEIGHT = 260;
44
-
45
41
  export const TILE_SIZE = 80;
46
42
 
47
43
  export const PLAIN_TILES_COLOR_DEFAULT = COLOR_GREEN;
@@ -73,9 +69,7 @@ export const RACK_TILE_SIZE_MAX = 80;
73
69
 
74
70
  export const REMAINING_TILES_TILE_SIZE = 50;
75
71
 
76
- export const RESULTS_HEADER_HEIGHT = 34;
77
72
  export const RESULTS_ITEM_HEIGHT = 40;
78
- export const RESULTS_INPUT_HEIGHT = 40;
79
73
 
80
74
  export const TILE_APPEAR_DURATION = 200;
81
75
 
@@ -23,7 +23,10 @@ const isSlowDevice = (): boolean | undefined => {
23
23
  }
24
24
 
25
25
  const count = Math.min(localDurations.length, serverDurations.length);
26
- return average(localDurations.slice(0, count)) > average(serverDurations.slice(0, count));
26
+ const local = localDurations.slice(0, count).sort().slice(1, -1);
27
+ const server = serverDurations.slice(0, count).sort().slice(1, -1);
28
+
29
+ return average(local) > average(server);
27
30
  };
28
31
 
29
32
  const routeSolveRequests = () => {
@@ -3,7 +3,6 @@ import store2 from 'store2';
3
3
 
4
4
  const BOARD = 'board';
5
5
  const CONFIG_ID = 'config-id';
6
- const HAS_VISITED = 'has-visited';
7
6
  const LOCALE = 'locale';
8
7
  const RACK = 'rack';
9
8
 
@@ -28,14 +27,6 @@ const localStorage = {
28
27
  store.set(CONFIG_ID, configId, true);
29
28
  },
30
29
 
31
- getHasVisited(): boolean {
32
- return Boolean(store.get(HAS_VISITED));
33
- },
34
-
35
- setHasVisited(hasVisited: boolean): void {
36
- store.set(HAS_VISITED, hasVisited, true);
37
- },
38
-
39
30
  getLocale(): Locale | undefined {
40
31
  return store.get(LOCALE);
41
32
  },
@@ -28,6 +28,16 @@
28
28
  }
29
29
  }
30
30
 
31
+ @keyframes rotate {
32
+ 0% {
33
+ transform: rotate(0deg);
34
+ }
35
+
36
+ 100% {
37
+ transform: rotate(360deg);
38
+ }
39
+ }
40
+
31
41
  @keyframes pulse {
32
42
  0% {
33
43
  transform: scale(1);
@@ -54,5 +54,5 @@ h4 {
54
54
 
55
55
  [lang='fa-IR'] {
56
56
  --font--family: 'Vazirmatn', sans-serif;
57
- --font--family--title: 'Vazirmatn', sans-serif;
57
+ --font--family--title: var(--font--family);
58
58
  }
@@ -86,10 +86,10 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
86
86
  --z-index--close-button: 101;
87
87
  --z-index--tooltip: 102;
88
88
 
89
+ --button--icon--size: 24px;
89
90
  --dictionary--height: 260px;
90
91
  --modal--width: 370px;
91
92
  --solver-column--width: 580px;
92
93
  --square-button--size: 32px;
93
- --button--icon--size: 24px;
94
94
  --text-input--height: 40px;
95
95
  }
@@ -50,6 +50,7 @@ export type TranslationKey =
50
50
  | 'common.vowels'
51
51
  | 'common.word'
52
52
  | 'common.words'
53
+ | 'dictionary'
53
54
  | 'dictionary.empty-state.no-definitions'
54
55
  | 'dictionary.empty-state.no-results'
55
56
  | 'dictionary.empty-state.not-allowed'
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.10.10",
3
+ "version": "2.11.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/solver",
9
- "version": "2.10.10",
9
+ "version": "2.11.0",
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.10.10",
3
+ "version": "2.11.0",
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.10.10"
28
+ "@scrabble-solver/types": "^2.11.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@scrabble-solver/configs": "^2.10.10",
32
- "@scrabble-solver/constants": "^2.10.10",
33
- "@scrabble-solver/dictionaries": "^2.10.10"
31
+ "@scrabble-solver/configs": "^2.11.0",
32
+ "@scrabble-solver/constants": "^2.11.0",
33
+ "@scrabble-solver/dictionaries": "^2.11.0"
34
34
  },
35
35
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
36
36
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.10.10",
3
+ "version": "2.11.0",
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.10.10"
27
+ "@scrabble-solver/constants": "^2.11.0"
28
28
  },
29
29
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
30
30
  }
@@ -7,7 +7,7 @@ const striptags_1 = __importDefault(require("striptags"));
7
7
  const EMPHASIS_TAGS = ['a', 'b', 'em', 'internalXref'];
8
8
  const normalizeHtmlTags = (definition) => (0, striptags_1.default)((0, striptags_1.default)(definition, EMPHASIS_TAGS), undefined, '"');
9
9
  const normalizeLineBreaks = (definition) => definition.replace(/\r\n/g, '\n');
10
- const normalizeWhitespace = (definition) => definition.replace(/[ ]+/g, ' ');
10
+ const normalizeWhitespace = (definition) => definition.replace(/[^\S\n ]+/g, ' ').replace(/[ ]+/g, ' ');
11
11
  const normalizeQuotes = (definition) => definition.replace(/\."/g, '".');
12
12
  /**
13
13
  * `(1.2) definition` -> `definition`
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.10.10",
3
+ "version": "2.11.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-definitions",
9
- "version": "2.10.10",
9
+ "version": "2.11.0",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "cheerio": "^1.0.0-rc.12",
@@ -27,9 +27,9 @@
27
27
  }
28
28
  },
29
29
  "node_modules/@types/node": {
30
- "version": "18.14.1",
31
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.1.tgz",
32
- "integrity": "sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==",
30
+ "version": "18.15.0",
31
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz",
32
+ "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==",
33
33
  "dev": true
34
34
  },
35
35
  "node_modules/boolbase": {
@@ -249,9 +249,9 @@
249
249
  }
250
250
  },
251
251
  "@types/node": {
252
- "version": "18.14.1",
253
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.1.tgz",
254
- "integrity": "sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==",
252
+ "version": "18.15.0",
253
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz",
254
+ "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==",
255
255
  "dev": true
256
256
  },
257
257
  "boolbase": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.10.10",
3
+ "version": "2.11.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/ node_modules/ package-lock.json"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/types": "^2.10.10",
26
+ "@scrabble-solver/types": "^2.11.0",
27
27
  "cheerio": "^1.0.0-rc.12",
28
28
  "follow-redirects": "^1.15.2",
29
29
  "striptags": "^3.2.0"
@@ -8,7 +8,7 @@ const normalizeHtmlTags: Normalize = (definition) => striptags(striptags(definit
8
8
 
9
9
  const normalizeLineBreaks: Normalize = (definition) => definition.replace(/\r\n/g, '\n');
10
10
 
11
- const normalizeWhitespace: Normalize = (definition) => definition.replace(/[ ]+/g, ' ');
11
+ const normalizeWhitespace: Normalize = (definition) => definition.replace(/[^\S\n ]+/g, ' ').replace(/[ ]+/g, ' ');
12
12
 
13
13
  const normalizeQuotes: Normalize = (definition) => definition.replace(/\."/g, '".');
14
14
 
@@ -0,0 +1,7 @@
1
+ {
2
+ "definitions": [
3
+ "oersted",
4
+ "Kenzaburo 1935– Japanese writer"
5
+ ],
6
+ "exists": true
7
+ }