scrabble-solver 2.18.3 → 2.18.4

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 (161) hide show
  1. package/.nx/workspace-data/d/server-process.json +3 -3
  2. package/.nx/workspace-data/file-map.json +737 -704
  3. package/.nx/workspace-data/lockfile-dependencies.hash +1 -1
  4. package/.nx/workspace-data/lockfile-nodes.hash +1 -1
  5. package/.nx/workspace-data/nx_files.nxt +0 -0
  6. package/.nx/workspace-data/parsed-lock-file.dependencies.json +528 -713
  7. package/.nx/workspace-data/parsed-lock-file.nodes.json +965 -1370
  8. package/.nx/workspace-data/project-graph.json +1559 -2155
  9. package/.nx/workspace-data/source-maps.json +44 -8
  10. package/.oxlintrc.json +0 -1
  11. package/CLAUDE.md +9 -7
  12. package/bun.lock +230 -279
  13. package/lerna.json +1 -1
  14. package/package.json +5 -5
  15. package/packages/configs/package.json +3 -3
  16. package/packages/constants/package.json +1 -1
  17. package/packages/dictionaries/bin/update-dictionaries.js +2 -5
  18. package/packages/dictionaries/build/Dictionaries.d.ts +1 -1
  19. package/packages/dictionaries/build/Dictionaries.js +9 -4
  20. package/packages/dictionaries/build/lib/DiskCache.js +1 -1
  21. package/packages/dictionaries/build/lib/downloadDictionary.d.ts +1 -1
  22. package/packages/dictionaries/build/lib/downloadDictionary.js +12 -7
  23. package/packages/dictionaries/package.json +4 -4
  24. package/packages/dictionaries/src/Dictionaries.ts +13 -6
  25. package/packages/dictionaries/src/lib/DiskCache.ts +2 -2
  26. package/packages/dictionaries/src/lib/downloadDictionary.ts +14 -6
  27. package/packages/logger/README.md +18 -0
  28. package/packages/logger/build/constants.d.ts +3 -0
  29. package/packages/logger/build/constants.js +4 -1
  30. package/packages/logger/build/describeError.d.ts +5 -0
  31. package/packages/logger/build/describeError.js +23 -0
  32. package/packages/logger/build/events.d.ts +92 -0
  33. package/packages/logger/build/events.js +13 -0
  34. package/packages/logger/build/formatCsvRow.d.ts +2 -0
  35. package/packages/logger/build/formatCsvRow.js +20 -0
  36. package/packages/logger/build/index.d.ts +5 -1
  37. package/packages/logger/build/index.js +13 -3
  38. package/packages/logger/build/logError.d.ts +4 -0
  39. package/packages/logger/build/logError.js +17 -0
  40. package/packages/logger/build/logEvent.d.ts +3 -0
  41. package/packages/logger/build/logEvent.js +29 -0
  42. package/packages/logger/package.json +7 -8
  43. package/packages/logger/scripts/export-csv.ts +113 -0
  44. package/packages/logger/scripts/readEvents.ts +34 -0
  45. package/packages/logger/scripts/tsconfig.json +10 -0
  46. package/packages/logger/src/constants.ts +9 -0
  47. package/packages/logger/src/describeError.test.ts +44 -0
  48. package/packages/logger/src/describeError.ts +30 -0
  49. package/packages/logger/src/events.ts +103 -0
  50. package/packages/logger/src/formatCsvRow.test.ts +41 -0
  51. package/packages/logger/src/formatCsvRow.ts +24 -0
  52. package/packages/logger/src/index.ts +13 -1
  53. package/packages/logger/src/logError.ts +24 -0
  54. package/packages/logger/src/logEvent.test.ts +59 -0
  55. package/packages/logger/src/logEvent.ts +26 -0
  56. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  57. package/packages/scrabble-solver/.next/build-manifest.json +15 -15
  58. package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
  59. package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
  60. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  61. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  62. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  63. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  64. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  65. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  66. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  67. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  68. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  69. package/packages/scrabble-solver/.next/diagnostics/framework.json +1 -1
  70. package/packages/scrabble-solver/.next/dynamic-css-manifest.json +1 -1
  71. package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
  72. package/packages/scrabble-solver/.next/react-loadable-manifest.json +6 -6
  73. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  74. package/packages/scrabble-solver/.next/server/chunks/546.js +1 -1
  75. package/packages/scrabble-solver/.next/server/chunks/612.js +5 -0
  76. package/packages/scrabble-solver/.next/server/chunks/712.js +1 -1
  77. package/packages/scrabble-solver/.next/server/chunks/715.js +1 -0
  78. package/packages/scrabble-solver/.next/server/chunks/961.js +1 -1
  79. package/packages/scrabble-solver/.next/server/dynamic-css-manifest.js +1 -1
  80. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  81. package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +1 -1
  82. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  83. package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
  84. package/packages/scrabble-solver/.next/server/pages/_document.js +2 -2
  85. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
  86. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  87. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
  88. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  89. package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
  90. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
  91. package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
  92. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
  93. package/packages/scrabble-solver/.next/server/pages/api/visit.js +1 -1
  94. package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -1
  95. package/packages/scrabble-solver/.next/server/pages/index.html +2 -2
  96. package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
  97. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  98. package/packages/scrabble-solver/.next/server/pages/not-found.html +2 -2
  99. package/packages/scrabble-solver/.next/static/{8WnIUTe-yJvPD6stltvYI → TAqjh9l5VJQOfJ4SzgPk2}/_buildManifest.js +1 -1
  100. package/packages/scrabble-solver/.next/static/chunks/101-f341f70c10d71212.js +3 -0
  101. package/packages/scrabble-solver/.next/static/chunks/693.d295da7c7b873986.js +1 -0
  102. package/packages/scrabble-solver/.next/static/chunks/980.dd35e807b18063c1.js +1 -0
  103. package/packages/scrabble-solver/.next/static/chunks/{main-7e52da35a4beea0b.js → main-6e9ac37e28d2b899.js} +1 -1
  104. package/packages/scrabble-solver/.next/static/chunks/pages/_app-9340d51f5a6787fc.js +1 -0
  105. package/packages/scrabble-solver/.next/static/chunks/pages/index-ea21d96a88f25000.js +1 -0
  106. package/packages/scrabble-solver/.next/static/chunks/{webpack-d7138f1ef6b8c9d6.js → webpack-d73aa4aae49cd800.js} +1 -1
  107. package/packages/scrabble-solver/.next/static/css/{92f85ce358a0a468.css → 4dbcacc1122ac6b9.css} +1 -1
  108. package/packages/scrabble-solver/.next/static/css/8b8087461767360a.css +1 -0
  109. package/packages/scrabble-solver/.next/static/css/{65bcc9440e067113.css → 98051ed25076b896.css} +1 -1
  110. package/packages/scrabble-solver/.next/trace +22 -22
  111. package/packages/scrabble-solver/.next/trace-build +1 -1
  112. package/packages/scrabble-solver/package.json +10 -10
  113. package/packages/scrabble-solver/public/service-worker.js +1 -1
  114. package/packages/scrabble-solver/src/api/BadRequestError.ts +6 -0
  115. package/packages/scrabble-solver/src/api/index.ts +2 -1
  116. package/packages/scrabble-solver/src/api/withApiLog.ts +85 -0
  117. package/packages/scrabble-solver/src/components/Button/Button.module.scss +1 -1
  118. package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +4 -4
  119. package/packages/scrabble-solver/src/components/Solver/Solver.tsx +2 -2
  120. package/packages/scrabble-solver/src/hooks/useColumns.ts +5 -7
  121. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +2 -2
  122. package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +1 -1
  123. package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx +2 -2
  124. package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx +2 -2
  125. package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts +22 -30
  126. package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/index.ts +36 -42
  127. package/packages/scrabble-solver/src/pages/api/solve.ts +32 -42
  128. package/packages/scrabble-solver/src/pages/api/verify.ts +35 -43
  129. package/packages/scrabble-solver/src/pages/api/visit.ts +38 -13
  130. package/packages/scrabble-solver/src/pages/index.tsx +2 -2
  131. package/packages/scrabble-solver/src/parameters/index.ts +0 -2
  132. package/packages/scrabble-solver/src/sdk/solve.ts +3 -9
  133. package/packages/scrabble-solver/src/sdk/verify.ts +2 -10
  134. package/packages/scrabble-solver/src/sdk/visit.ts +8 -3
  135. package/packages/scrabble-solver/src/state/sagas.ts +7 -1
  136. package/packages/scrabble-solver/src/styles/_tokens.scss +0 -2
  137. package/packages/scrabble-solver/src/styles/mixins.scss +0 -5
  138. package/packages/scrabble-solver/src/styles/variables.module.scss +0 -1
  139. package/packages/scrabble-solver/src/styles/variables.module.scss.d.ts +0 -1
  140. package/packages/scrabble-solver/src/styles/variables.scss +1 -1
  141. package/packages/scrabble-solver/src/types/api.ts +7 -0
  142. package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
  143. package/packages/solver/package.json +5 -5
  144. package/packages/types/package.json +2 -2
  145. package/packages/word-definitions/package.json +2 -2
  146. package/packages/word-lists/package.json +2 -2
  147. package/playwright-report/index.html +1 -1
  148. package/packages/logger/build/logger.d.ts +0 -1
  149. package/packages/logger/build/logger.js +0 -28
  150. package/packages/logger/scripts/stats.js +0 -73
  151. package/packages/logger/src/logger.ts +0 -30
  152. package/packages/scrabble-solver/.next/server/chunks/392.js +0 -1
  153. package/packages/scrabble-solver/.next/static/chunks/101-829ab8a8d310e7a0.js +0 -3
  154. package/packages/scrabble-solver/.next/static/chunks/693.677c88e0eb1340b5.js +0 -1
  155. package/packages/scrabble-solver/.next/static/chunks/980.7ce17464fc56648a.js +0 -1
  156. package/packages/scrabble-solver/.next/static/chunks/pages/_app-e3fe880e24c024ab.js +0 -1
  157. package/packages/scrabble-solver/.next/static/chunks/pages/index-b073a1686818dd26.js +0 -1
  158. package/packages/scrabble-solver/.next/static/css/a691348b788f8bc0.css +0 -1
  159. package/packages/scrabble-solver/src/api/getServerLoggingData.ts +0 -17
  160. package/packages/scrabble-solver/src/hooks/useIsCompactLayout.ts +0 -14
  161. /package/packages/scrabble-solver/.next/static/{8WnIUTe-yJvPD6stltvYI → TAqjh9l5VJQOfJ4SzgPk2}/_ssgManifest.js +0 -0
@@ -1,288 +1,602 @@
1
1
  {
2
2
  "version": "6.0",
3
- "nxVersion": "23.1.1",
3
+ "nxVersion": "23.1.2",
4
4
  "pathMappings": {},
5
5
  "nxJsonPlugins": [],
6
6
  "fileMap": {
7
7
  "nonProjectFiles": [
8
8
  {
9
- "file": "playwright.config.ts",
10
- "hash": "14922681992318383863"
9
+ "file": "CLAUDE.md",
10
+ "hash": "11457118587793169514"
11
11
  },
12
12
  {
13
- "file": "e2e/bugs/2-q-tile-in-english.spec.ts",
14
- "hash": "17366215059024965214"
13
+ "file": "lerna.json",
14
+ "hash": "12752780130007130070"
15
15
  },
16
16
  {
17
- "file": "e2e/features/words-table-filtering.spec.ts",
18
- "hash": "4250721146421215814"
17
+ "file": ".github/workflows/npx.yml",
18
+ "hash": "4240979117022341034"
19
19
  },
20
20
  {
21
- "file": "e2e/features/430-highlight-unreachable-cells-results.spec.ts",
22
- "hash": "1969486636068038353"
21
+ "file": "LICENSE",
22
+ "hash": "2488235562441806084"
23
23
  },
24
24
  {
25
- "file": "HISTORY.md",
26
- "hash": "11882088838610928434"
25
+ "file": "e2e/features/words-table-sorting.spec.ts",
26
+ "hash": "14832933169720081823"
27
27
  },
28
28
  {
29
29
  "file": "screencast.gif",
30
30
  "hash": "14764794611724280022"
31
31
  },
32
32
  {
33
- "file": ".github/workflows/oxfmt.yml",
34
- "hash": "8910153274813196941"
33
+ "file": "e2e/bugs/401-board-state-on-game-change.spec.ts",
34
+ "hash": "10130939760491578972"
35
35
  },
36
36
  {
37
- "file": "bun.lock",
38
- "hash": "4392430931439206907"
37
+ "file": ".github/workflows/e2e.yml",
38
+ "hash": "756942984287424904"
39
39
  },
40
40
  {
41
- "file": "e2e/features/result-candidate-picker.spec.ts",
42
- "hash": "8249809365904389020"
41
+ "file": ".npmignore",
42
+ "hash": "9160986732333189952"
43
43
  },
44
44
  {
45
- "file": "e2e/app.spec.ts",
46
- "hash": "9762558754058781920"
45
+ "file": "bun-test-globals.d.ts",
46
+ "hash": "11720446903047261515"
47
47
  },
48
48
  {
49
- "file": "e2e/features/words-dictionary-search.spec.ts",
50
- "hash": "6599728434887805373"
49
+ "file": "e2e/app.spec.ts",
50
+ "hash": "9762558754058781920"
51
51
  },
52
52
  {
53
- "file": "bun-test-globals.d.ts",
54
- "hash": "11720446903047261515"
53
+ "file": ".github/workflows/unit.yml",
54
+ "hash": "6367944978607806241"
55
55
  },
56
56
  {
57
- "file": "e2e/features/words-preview.spec.ts",
58
- "hash": "475335710487739917"
57
+ "file": "bunfig.toml",
58
+ "hash": "16900079901051178068"
59
59
  },
60
60
  {
61
- "file": "nx.json",
62
- "hash": "12408965950466853583"
61
+ "file": "e2e/bugs/129-esc-sidebar.spec.ts",
62
+ "hash": "10037722022499569849"
63
63
  },
64
64
  {
65
- "file": ".github/workflows/bunx.yml",
66
- "hash": "16496206658100803274"
65
+ "file": "e2e/features/91-hover-remaining-tile-highlights.spec.ts",
66
+ "hash": "1842517384050477694"
67
67
  },
68
68
  {
69
- "file": ".github/workflows/build.yml",
70
- "hash": "17106141158538620602"
69
+ "file": ".gitignore",
70
+ "hash": "18203720615087927405"
71
71
  },
72
72
  {
73
- "file": "e2e/features/hidden-coordinates-migration.spec.ts",
74
- "hash": "8535626969697947307"
73
+ "file": "README.md",
74
+ "hash": "2499170030027897848"
75
75
  },
76
76
  {
77
- "file": "e2e/features/91-hover-remaining-tile-highlights.spec.ts",
78
- "hash": "1842517384050477694"
77
+ "file": "bin/scrabble-solver.js",
78
+ "hash": "1416719023314596262"
79
79
  },
80
80
  {
81
- "file": "e2e/lib/index.ts",
82
- "hash": "14256056309923157734"
81
+ "file": "e2e/bugs/380-transliteration-when-pasting.spec.ts",
82
+ "hash": "2954952014100260528"
83
83
  },
84
84
  {
85
- "file": ".gitignore",
86
- "hash": "18203720615087927405"
85
+ "file": "package.json",
86
+ "hash": "11947601310677226983"
87
87
  },
88
88
  {
89
- "file": ".npmrc",
90
- "hash": "8550214904053156014"
89
+ "file": "playwright.config.ts",
90
+ "hash": "14922681992318383863"
91
91
  },
92
92
  {
93
93
  "file": "e2e/bugs/363-dictionary-input-unique-words.spec.ts",
94
94
  "hash": "10136099788036984424"
95
95
  },
96
96
  {
97
- "file": "LICENSE",
98
- "hash": "2488235562441806084"
97
+ "file": "scripts/record-screencast.ts",
98
+ "hash": "16353608524314846588"
99
99
  },
100
100
  {
101
- "file": "bun.test.preload.ts",
102
- "hash": "12359177232622253161"
101
+ "file": "e2e/bugs/3-x-tile-in-polish.spec.ts",
102
+ "hash": "4050675244690088022"
103
103
  },
104
104
  {
105
- "file": "bunfig.toml",
106
- "hash": "16900079901051178068"
105
+ "file": ".github/workflows/bunx.yml",
106
+ "hash": "16496206658100803274"
107
107
  },
108
108
  {
109
- "file": "bin/scrabble-solver.js",
110
- "hash": "1416719023314596262"
109
+ "file": ".oxfmtrc.json",
110
+ "hash": "12617766590679978798"
111
111
  },
112
112
  {
113
- "file": "e2e/lib/selectors.ts",
114
- "hash": "17112827263300867627"
113
+ "file": "e2e/features/solver-paths.spec.ts",
114
+ "hash": "11907260094486577784"
115
115
  },
116
116
  {
117
117
  "file": "e2e/features/198-highlight-unreachable-cells.spec.ts",
118
118
  "hash": "11074290547022718664"
119
119
  },
120
120
  {
121
- "file": "e2e/bugs/333-disabled-radio-cursor.spec.ts",
122
- "hash": "17113448168267699041"
121
+ "file": "e2e/lib/index.ts",
122
+ "hash": "14256056309923157734"
123
123
  },
124
124
  {
125
- "file": "e2e/features/words-empty-state.spec.ts",
126
- "hash": "12475023107794537593"
125
+ "file": "e2e/features/430-highlight-unreachable-cells-results.spec.ts",
126
+ "hash": "1969486636068038353"
127
127
  },
128
128
  {
129
- "file": ".github/workflows/deploy.yml",
130
- "hash": "11085092697452560447"
129
+ "file": "e2e/features/hidden-coordinates-migration.spec.ts",
130
+ "hash": "8535626969697947307"
131
131
  },
132
132
  {
133
- "file": "CLAUDE.md",
134
- "hash": "4018767478939122859"
133
+ "file": "e2e/tsconfig.json",
134
+ "hash": "2230050970062101790"
135
135
  },
136
136
  {
137
- "file": "e2e/bugs/112-character-bonus.spec.ts",
138
- "hash": "9328272452764966883"
137
+ "file": "e2e/bugs/398-digraphs-in-created-words.spec.ts",
138
+ "hash": "6790148591986632062"
139
139
  },
140
140
  {
141
- "file": "lerna.json",
142
- "hash": "17405275453339828740"
141
+ "file": "e2e/lib/selectors.ts",
142
+ "hash": "17112827263300867627"
143
143
  },
144
144
  {
145
- "file": ".github/workflows/e2e.yml",
146
- "hash": "756942984287424904"
145
+ "file": "e2e/bugs/112-character-bonus.spec.ts",
146
+ "hash": "9328272452764966883"
147
147
  },
148
148
  {
149
- "file": "e2e/bugs/445-tile-text-selection.spec.ts",
150
- "hash": "147537701567140844"
149
+ "file": ".github/workflows/build.yml",
150
+ "hash": "17106141158538620602"
151
151
  },
152
152
  {
153
- "file": "e2e/tsconfig.json",
154
- "hash": "2230050970062101790"
153
+ "file": "e2e/lib/actions.ts",
154
+ "hash": "1157387122914483099"
155
155
  },
156
156
  {
157
- "file": "e2e/features/words-table-sorting.spec.ts",
158
- "hash": "14832933169720081823"
157
+ "file": "bun.lock",
158
+ "hash": "11166827701791038656"
159
159
  },
160
160
  {
161
- "file": "e2e/features/solver-paths.spec.ts",
162
- "hash": "11907260094486577784"
161
+ "file": "e2e/bugs/342-results-sorting.spec.ts",
162
+ "hash": "5175622516060397429"
163
163
  },
164
164
  {
165
- "file": ".oxlintrc.json",
166
- "hash": "7931377307846033965"
165
+ "file": "e2e/features/words-interactions.spec.ts",
166
+ "hash": "2582231914305296208"
167
167
  },
168
168
  {
169
- "file": "e2e/bugs/401-board-state-on-game-change.spec.ts",
170
- "hash": "10130939760491578972"
169
+ "file": ".github/workflows/deploy.yml",
170
+ "hash": "11085092697452560447"
171
171
  },
172
172
  {
173
- "file": ".npmignore",
174
- "hash": "9160986732333189952"
173
+ "file": "e2e/bugs/2-q-tile-in-english.spec.ts",
174
+ "hash": "17366215059024965214"
175
175
  },
176
176
  {
177
- "file": "e2e/features/427-highlight-created-words.spec.ts",
178
- "hash": "5763281473805807913"
177
+ "file": "e2e/features/result-candidate-picker.spec.ts",
178
+ "hash": "8249809365904389020"
179
179
  },
180
180
  {
181
- "file": "e2e/bugs/129-esc-sidebar.spec.ts",
182
- "hash": "10037722022499569849"
181
+ "file": "e2e/features/words-preview.spec.ts",
182
+ "hash": "475335710487739917"
183
183
  },
184
184
  {
185
- "file": "scripts/record-screencast.ts",
186
- "hash": "16353608524314846588"
185
+ "file": "e2e/bugs/352-dictionary-race-condition.spec.ts",
186
+ "hash": "16189750433969723201"
187
187
  },
188
188
  {
189
- "file": "e2e/bugs/452-stale-translations-cache.spec.ts",
190
- "hash": "15385368273807688766"
189
+ "file": "e2e/features/427-highlight-created-words.spec.ts",
190
+ "hash": "5763281473805807913"
191
191
  },
192
192
  {
193
- "file": "e2e/bugs/398-digraphs-in-created-words.spec.ts",
194
- "hash": "6790148591986632062"
193
+ "file": "bump-version.js",
194
+ "hash": "3680747442718205672"
195
195
  },
196
196
  {
197
- "file": "e2e/features/words-interactions.spec.ts",
198
- "hash": "2582231914305296208"
197
+ "file": "bun.test.preload.ts",
198
+ "hash": "12359177232622253161"
199
199
  },
200
200
  {
201
- "file": ".gitattributes",
202
- "hash": "8169140259024525487"
201
+ "file": ".oxlintrc.json",
202
+ "hash": "18423691386284033850"
203
203
  },
204
204
  {
205
- "file": ".github/workflows/oxlint.yml",
206
- "hash": "1395882258753359117"
205
+ "file": "e2e/features/words-dictionary-search.spec.ts",
206
+ "hash": "6599728434887805373"
207
207
  },
208
208
  {
209
- "file": "e2e/bugs/342-results-sorting.spec.ts",
210
- "hash": "5175622516060397429"
209
+ "file": "e2e/bugs/333-disabled-radio-cursor.spec.ts",
210
+ "hash": "17113448168267699041"
211
211
  },
212
212
  {
213
- "file": ".github/workflows/unit.yml",
214
- "hash": "6367944978607806241"
213
+ "file": "e2e/bugs/451-results-list-gap-hover.spec.ts",
214
+ "hash": "14859008705940821749"
215
215
  },
216
216
  {
217
- "file": "e2e/bugs/380-transliteration-when-pasting.spec.ts",
218
- "hash": "2954952014100260528"
217
+ "file": "HISTORY.md",
218
+ "hash": "11882088838610928434"
219
219
  },
220
220
  {
221
- "file": ".github/workflows/npx.yml",
222
- "hash": "4240979117022341034"
221
+ "file": "tsconfig.json",
222
+ "hash": "10516769175896352176"
223
223
  },
224
224
  {
225
- "file": "bump-version.js",
226
- "hash": "3680747442718205672"
225
+ "file": ".gitattributes",
226
+ "hash": "8169140259024525487"
227
227
  },
228
228
  {
229
- "file": "e2e/bugs/3-x-tile-in-polish.spec.ts",
230
- "hash": "4050675244690088022"
229
+ "file": ".github/workflows/oxfmt.yml",
230
+ "hash": "8910153274813196941"
231
231
  },
232
232
  {
233
- "file": "e2e/bugs/30-click-inside-radio-icon.spec.ts",
234
- "hash": "7281927320715965013"
233
+ "file": "e2e/bugs/452-stale-translations-cache.spec.ts",
234
+ "hash": "15385368273807688766"
235
235
  },
236
236
  {
237
- "file": "e2e/bugs/451-results-list-gap-hover.spec.ts",
238
- "hash": "14859008705940821749"
237
+ "file": ".npmrc",
238
+ "hash": "8550214904053156014"
239
239
  },
240
240
  {
241
- "file": "README.md",
242
- "hash": "2499170030027897848"
241
+ "file": "e2e/features/results-interactions.spec.ts",
242
+ "hash": "18105923336224213035"
243
243
  },
244
244
  {
245
- "file": ".oxfmtrc.json",
246
- "hash": "12617766590679978798"
245
+ "file": "nx.json",
246
+ "hash": "12408965950466853583"
247
247
  },
248
248
  {
249
- "file": "e2e/features/results-interactions.spec.ts",
250
- "hash": "18105923336224213035"
249
+ "file": "e2e/bugs/445-tile-text-selection.spec.ts",
250
+ "hash": "147537701567140844"
251
251
  },
252
252
  {
253
- "file": "package.json",
254
- "hash": "215818382481174516"
253
+ "file": "e2e/features/words-table-filtering.spec.ts",
254
+ "hash": "4250721146421215814"
255
255
  },
256
256
  {
257
- "file": "e2e/bugs/352-dictionary-race-condition.spec.ts",
258
- "hash": "16189750433969723201"
257
+ "file": "e2e/bugs/30-click-inside-radio-icon.spec.ts",
258
+ "hash": "7281927320715965013"
259
259
  },
260
260
  {
261
- "file": "tsconfig.json",
262
- "hash": "10516769175896352176"
261
+ "file": ".github/workflows/oxlint.yml",
262
+ "hash": "1395882258753359117"
263
263
  },
264
264
  {
265
- "file": "e2e/lib/actions.ts",
266
- "hash": "1157387122914483099"
265
+ "file": "e2e/features/words-empty-state.spec.ts",
266
+ "hash": "12475023107794537593"
267
267
  }
268
268
  ],
269
269
  "projectFileMap": {
270
- "@scrabble-solver/scrabble-solver": [
270
+ "@scrabble-solver/types": [
271
271
  {
272
- "file": "packages/scrabble-solver/.env",
273
- "hash": "136731195756083770"
272
+ "file": "packages/types/README.md",
273
+ "hash": "5575595901601075739"
274
274
  },
275
275
  {
276
- "file": "packages/scrabble-solver/.gitignore",
277
- "hash": "15189751008409879200"
276
+ "file": "packages/types/package.json",
277
+ "hash": "13858010959983227380",
278
+ "deps": [
279
+ "@scrabble-solver/constants"
280
+ ]
278
281
  },
279
282
  {
280
- "file": "packages/scrabble-solver/AGENTS.md",
281
- "hash": "5971960282387966776"
283
+ "file": "packages/types/src/Bingo.ts",
284
+ "hash": "3029863815320440338"
282
285
  },
283
286
  {
284
- "file": "packages/scrabble-solver/CLAUDE.md",
285
- "hash": "13810932929442405996"
287
+ "file": "packages/types/src/Board.test.ts",
288
+ "hash": "6858527203567250899"
289
+ },
290
+ {
291
+ "file": "packages/types/src/Board.ts",
292
+ "hash": "10707341963175252073"
293
+ },
294
+ {
295
+ "file": "packages/types/src/BoardJson.ts",
296
+ "hash": "18021606779460231822"
297
+ },
298
+ {
299
+ "file": "packages/types/src/BoardWord.ts",
300
+ "hash": "12283073680601896013"
301
+ },
302
+ {
303
+ "file": "packages/types/src/Bonus.ts",
304
+ "hash": "5717286701263266565"
305
+ },
306
+ {
307
+ "file": "packages/types/src/BonusJson.ts",
308
+ "hash": "8193407530116730877"
309
+ },
310
+ {
311
+ "file": "packages/types/src/BonusValue.ts",
312
+ "hash": "15813289002325634994"
313
+ },
314
+ {
315
+ "file": "packages/types/src/Cell.ts",
316
+ "hash": "8626587745419165844"
317
+ },
318
+ {
319
+ "file": "packages/types/src/CellJson.ts",
320
+ "hash": "8500080559998889033"
321
+ },
322
+ {
323
+ "file": "packages/types/src/CharacterBonus.ts",
324
+ "hash": "13332621774449008748"
325
+ },
326
+ {
327
+ "file": "packages/types/src/Collision.ts",
328
+ "hash": "11514928176519920102"
329
+ },
330
+ {
331
+ "file": "packages/types/src/Config.ts",
332
+ "hash": "2576430300055128471"
333
+ },
334
+ {
335
+ "file": "packages/types/src/ConfigJson.ts",
336
+ "hash": "2916011851215747296"
337
+ },
338
+ {
339
+ "file": "packages/types/src/Dictionary.ts",
340
+ "hash": "104582099610553637"
341
+ },
342
+ {
343
+ "file": "packages/types/src/Direction.ts",
344
+ "hash": "162328705187601124"
345
+ },
346
+ {
347
+ "file": "packages/types/src/Game.ts",
348
+ "hash": "5971717923769719097"
349
+ },
350
+ {
351
+ "file": "packages/types/src/Locale.ts",
352
+ "hash": "15496768620571102969"
353
+ },
354
+ {
355
+ "file": "packages/types/src/Result.ts",
356
+ "hash": "14160089412871044080"
357
+ },
358
+ {
359
+ "file": "packages/types/src/ResultJson.ts",
360
+ "hash": "6777063720137099065"
361
+ },
362
+ {
363
+ "file": "packages/types/src/ShowCoordinates.ts",
364
+ "hash": "17680033096808781432"
365
+ },
366
+ {
367
+ "file": "packages/types/src/TextDirection.ts",
368
+ "hash": "3385420391327595232"
369
+ },
370
+ {
371
+ "file": "packages/types/src/Tile.ts",
372
+ "hash": "6732286771517417774"
373
+ },
374
+ {
375
+ "file": "packages/types/src/TileConfig.ts",
376
+ "hash": "3850213128358277492"
377
+ },
378
+ {
379
+ "file": "packages/types/src/TileJson.ts",
380
+ "hash": "8360282375401690806"
381
+ },
382
+ {
383
+ "file": "packages/types/src/WordBonus.ts",
384
+ "hash": "13727795112998703187"
385
+ },
386
+ {
387
+ "file": "packages/types/src/WordDefinition.ts",
388
+ "hash": "6656289218902883084"
389
+ },
390
+ {
391
+ "file": "packages/types/src/WordDefinitionJson.ts",
392
+ "hash": "3359175117295750499"
393
+ },
394
+ {
395
+ "file": "packages/types/src/index.ts",
396
+ "hash": "11143611118118153953"
397
+ },
398
+ {
399
+ "file": "packages/types/src/lib/getBoardWords.ts",
400
+ "hash": "8591599229512249121"
401
+ },
402
+ {
403
+ "file": "packages/types/src/lib/getCells.test.ts",
404
+ "hash": "14306685756589248846"
405
+ },
406
+ {
407
+ "file": "packages/types/src/lib/getCells.ts",
408
+ "hash": "12526278467088314219"
409
+ },
410
+ {
411
+ "file": "packages/types/src/lib/getCollidingWords.ts",
412
+ "hash": "12384492219817749593"
413
+ },
414
+ {
415
+ "file": "packages/types/src/lib/getCollision.ts",
416
+ "hash": "3088300365026692842"
417
+ },
418
+ {
419
+ "file": "packages/types/src/lib/getCollisions.test.ts",
420
+ "hash": "8045722639681404015"
421
+ },
422
+ {
423
+ "file": "packages/types/src/lib/getCollisions.ts",
424
+ "hash": "6839560680742447211"
425
+ },
426
+ {
427
+ "file": "packages/types/src/lib/getPlacedCell.ts",
428
+ "hash": "5996228405248005869"
429
+ },
430
+ {
431
+ "file": "packages/types/src/lib/getWordThrough.ts",
432
+ "hash": "7514306073495826236"
433
+ },
434
+ {
435
+ "file": "packages/types/src/lib/getWordsInRows.ts",
436
+ "hash": "2761596368339884188"
437
+ },
438
+ {
439
+ "file": "packages/types/src/lib/index.ts",
440
+ "hash": "2022799956333309276"
441
+ },
442
+ {
443
+ "file": "packages/types/src/lib/isSameBoardWord.ts",
444
+ "hash": "18116011051940038222"
445
+ },
446
+ {
447
+ "file": "packages/types/src/lib/toBoardWord.ts",
448
+ "hash": "2715682257448468663"
449
+ },
450
+ {
451
+ "file": "packages/types/src/lib/transpose.ts",
452
+ "hash": "17502626176706084094"
453
+ },
454
+ {
455
+ "file": "packages/types/src/type-guards/index.ts",
456
+ "hash": "1905867585366548660"
457
+ },
458
+ {
459
+ "file": "packages/types/src/type-guards/isBingo.ts",
460
+ "hash": "5713154189700125193"
461
+ },
462
+ {
463
+ "file": "packages/types/src/type-guards/isBoardJson.test.ts",
464
+ "hash": "12769737663292885979"
465
+ },
466
+ {
467
+ "file": "packages/types/src/type-guards/isBoardJson.ts",
468
+ "hash": "2348480616741108544"
469
+ },
470
+ {
471
+ "file": "packages/types/src/type-guards/isCellJson.ts",
472
+ "hash": "16134937159323536072"
473
+ },
474
+ {
475
+ "file": "packages/types/src/type-guards/isError.ts",
476
+ "hash": "5878313337491303689"
477
+ },
478
+ {
479
+ "file": "packages/types/src/type-guards/isGame.ts",
480
+ "hash": "3354569224852368381"
481
+ },
482
+ {
483
+ "file": "packages/types/src/type-guards/isLocale.ts",
484
+ "hash": "1464440797325155484"
485
+ },
486
+ {
487
+ "file": "packages/types/src/type-guards/isMultiplierBingo.ts",
488
+ "hash": "14732259220776403774"
489
+ },
490
+ {
491
+ "file": "packages/types/src/type-guards/isObject.ts",
492
+ "hash": "12200389762297734518"
493
+ },
494
+ {
495
+ "file": "packages/types/src/type-guards/isScoreBingo.ts",
496
+ "hash": "14339416360566062353"
497
+ },
498
+ {
499
+ "file": "packages/types/src/type-guards/isTileJson.ts",
500
+ "hash": "3449719558739618084"
501
+ },
502
+ {
503
+ "file": "packages/types/tsconfig.json",
504
+ "hash": "14393573143758511966"
505
+ }
506
+ ],
507
+ "@scrabble-solver/solver": [
508
+ {
509
+ "file": "packages/solver/README.md",
510
+ "hash": "16792748008091431053"
511
+ },
512
+ {
513
+ "file": "packages/solver/benchmarks/index.ts",
514
+ "hash": "14789261453090652608"
515
+ },
516
+ {
517
+ "file": "packages/solver/benchmarks/lib.ts",
518
+ "hash": "18074034230022269603"
519
+ },
520
+ {
521
+ "file": "packages/solver/benchmarks/renderChart.ts",
522
+ "hash": "15994103137482312366"
523
+ },
524
+ {
525
+ "file": "packages/solver/benchmarks/results/chart.svg",
526
+ "hash": "16382274360395559218"
527
+ },
528
+ {
529
+ "file": "packages/solver/benchmarks/runBenchmarks.ts",
530
+ "hash": "10247467763253649567"
531
+ },
532
+ {
533
+ "file": "packages/solver/benchmarks/scenarios.ts",
534
+ "hash": "5574802733879787909"
535
+ },
536
+ {
537
+ "file": "packages/solver/benchmarks/types.ts",
538
+ "hash": "3907848021848470505"
539
+ },
540
+ {
541
+ "file": "packages/solver/benchmarks/updateReadme.ts",
542
+ "hash": "10419931668096319955"
543
+ },
544
+ {
545
+ "file": "packages/solver/package.json",
546
+ "hash": "16802692736191021349",
547
+ "deps": [
548
+ "@scrabble-solver/configs",
549
+ "@scrabble-solver/constants",
550
+ "@scrabble-solver/dictionaries",
551
+ "npm:@kamilmielnik/gaddag@2.0.0",
552
+ "@scrabble-solver/types"
553
+ ]
554
+ },
555
+ {
556
+ "file": "packages/solver/src/MoveGenerator.test.ts",
557
+ "hash": "15452379511681303925"
558
+ },
559
+ {
560
+ "file": "packages/solver/src/MoveGenerator.ts",
561
+ "hash": "6412866049897267609"
562
+ },
563
+ {
564
+ "file": "packages/solver/src/ReferenceSolver.ts",
565
+ "hash": "11090417647170047696"
566
+ },
567
+ {
568
+ "file": "packages/solver/src/index.ts",
569
+ "hash": "16059031500551576732"
570
+ },
571
+ {
572
+ "file": "packages/solver/src/solve.test.ts",
573
+ "hash": "9408692374365636486"
574
+ },
575
+ {
576
+ "file": "packages/solver/src/solve.ts",
577
+ "hash": "3102663659329392320"
578
+ },
579
+ {
580
+ "file": "packages/solver/tsconfig.json",
581
+ "hash": "6201931798302628133"
582
+ }
583
+ ],
584
+ "@scrabble-solver/scrabble-solver": [
585
+ {
586
+ "file": "packages/scrabble-solver/.env",
587
+ "hash": "136731195756083770"
588
+ },
589
+ {
590
+ "file": "packages/scrabble-solver/.gitignore",
591
+ "hash": "15189751008409879200"
592
+ },
593
+ {
594
+ "file": "packages/scrabble-solver/AGENTS.md",
595
+ "hash": "5971960282387966776"
596
+ },
597
+ {
598
+ "file": "packages/scrabble-solver/CLAUDE.md",
599
+ "hash": "13810932929442405996"
286
600
  },
287
601
  {
288
602
  "file": "packages/scrabble-solver/README.md",
@@ -298,11 +612,11 @@
298
612
  },
299
613
  {
300
614
  "file": "packages/scrabble-solver/package.json",
301
- "hash": "7923329093285733967",
615
+ "hash": "1112933436427082948",
302
616
  "deps": [
303
617
  "npm:@svgr/webpack@8.1.0",
304
618
  "npm:@types/react@19.2.18",
305
- "npm:@types/react-dom@19.2.4",
619
+ "npm:@types/react-dom@19.2.5",
306
620
  "npm:@types/react-highlight-words@0.20.1",
307
621
  "npm:@types/react-modal@3.16.3",
308
622
  "npm:@types/react-portal@4.0.7",
@@ -322,7 +636,7 @@
322
636
  "npm:env-cmd@11.0.0",
323
637
  "npm:include-media@2.0.0",
324
638
  "npm:include-media-query-builder@1.1.0",
325
- "npm:next@16.3.2",
639
+ "npm:next@16.3.3",
326
640
  "npm:normalize.css@8.0.1",
327
641
  "npm:react@19.2.8",
328
642
  "npm:react-cool-onclickoutside@1.7.0",
@@ -458,12 +772,12 @@
458
772
  "hash": "15823533101561394619"
459
773
  },
460
774
  {
461
- "file": "packages/scrabble-solver/src/api/getServerLoggingData.ts",
462
- "hash": "730271380462104463"
775
+ "file": "packages/scrabble-solver/src/api/BadRequestError.ts",
776
+ "hash": "13013431922280644725"
463
777
  },
464
778
  {
465
779
  "file": "packages/scrabble-solver/src/api/index.ts",
466
- "hash": "2308539428247109505"
780
+ "hash": "15724393036896486377"
467
781
  },
468
782
  {
469
783
  "file": "packages/scrabble-solver/src/api/isBoardValid.ts",
@@ -481,6 +795,10 @@
481
795
  "file": "packages/scrabble-solver/src/api/isRowValid.ts",
482
796
  "hash": "12553606709144929539"
483
797
  },
798
+ {
799
+ "file": "packages/scrabble-solver/src/api/withApiLog.ts",
800
+ "hash": "1974412193303185228"
801
+ },
484
802
  {
485
803
  "file": "packages/scrabble-solver/src/components/Alert/Alert.module.scss",
486
804
  "hash": "3546260336538294049"
@@ -619,7 +937,7 @@
619
937
  },
620
938
  {
621
939
  "file": "packages/scrabble-solver/src/components/Button/Button.module.scss",
622
- "hash": "12965010827351775256"
940
+ "hash": "2198096054053321415"
623
941
  },
624
942
  {
625
943
  "file": "packages/scrabble-solver/src/components/Button/Button.tsx",
@@ -923,11 +1241,11 @@
923
1241
  },
924
1242
  {
925
1243
  "file": "packages/scrabble-solver/src/components/Solver/Solver.module.scss",
926
- "hash": "1400418932443966276"
1244
+ "hash": "15306944177444535283"
927
1245
  },
928
1246
  {
929
1247
  "file": "packages/scrabble-solver/src/components/Solver/Solver.tsx",
930
- "hash": "5049742673877865695"
1248
+ "hash": "804898176872842917"
931
1249
  },
932
1250
  {
933
1251
  "file": "packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.module.scss",
@@ -1047,7 +1365,7 @@
1047
1365
  },
1048
1366
  {
1049
1367
  "file": "packages/scrabble-solver/src/hooks/useColumns.ts",
1050
- "hash": "9277297021097181108"
1368
+ "hash": "12050928765447366765"
1051
1369
  },
1052
1370
  {
1053
1371
  "file": "packages/scrabble-solver/src/hooks/useDeferredRender.ts",
@@ -1061,10 +1379,6 @@
1061
1379
  "file": "packages/scrabble-solver/src/hooks/useEffectOnce.ts",
1062
1380
  "hash": "2157152540076068434"
1063
1381
  },
1064
- {
1065
- "file": "packages/scrabble-solver/src/hooks/useIsCompactLayout.ts",
1066
- "hash": "13133574128280191861"
1067
- },
1068
1382
  {
1069
1383
  "file": "packages/scrabble-solver/src/hooks/useIsTouchDevice.ts",
1070
1384
  "hash": "14953307621420324170"
@@ -1551,7 +1865,7 @@
1551
1865
  },
1552
1866
  {
1553
1867
  "file": "packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx",
1554
- "hash": "17906223666035529420"
1868
+ "hash": "1809440694180729724"
1555
1869
  },
1556
1870
  {
1557
1871
  "file": "packages/scrabble-solver/src/modals/ResultsModal/index.ts",
@@ -1675,11 +1989,11 @@
1675
1989
  },
1676
1990
  {
1677
1991
  "file": "packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss",
1678
- "hash": "1217210392594082332"
1992
+ "hash": "7344004865969041366"
1679
1993
  },
1680
1994
  {
1681
1995
  "file": "packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx",
1682
- "hash": "2486000700432017028"
1996
+ "hash": "3429892286416297801"
1683
1997
  },
1684
1998
  {
1685
1999
  "file": "packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordRow.tsx",
@@ -1691,7 +2005,7 @@
1691
2005
  },
1692
2006
  {
1693
2007
  "file": "packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx",
1694
- "hash": "5839487806774879261"
2008
+ "hash": "5307995691694877975"
1695
2009
  },
1696
2010
  {
1697
2011
  "file": "packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/index.ts",
@@ -1719,23 +2033,23 @@
1719
2033
  },
1720
2034
  {
1721
2035
  "file": "packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts",
1722
- "hash": "9890897606093034143"
2036
+ "hash": "1967958297614328714"
1723
2037
  },
1724
2038
  {
1725
2039
  "file": "packages/scrabble-solver/src/pages/api/dictionary/[locale]/index.ts",
1726
- "hash": "565360377616244471"
2040
+ "hash": "6673959472171367117"
1727
2041
  },
1728
2042
  {
1729
2043
  "file": "packages/scrabble-solver/src/pages/api/solve.ts",
1730
- "hash": "8137689477208410413"
2044
+ "hash": "947375829218057693"
1731
2045
  },
1732
2046
  {
1733
2047
  "file": "packages/scrabble-solver/src/pages/api/verify.ts",
1734
- "hash": "18369440124853268699"
2048
+ "hash": "3790574901569475976"
1735
2049
  },
1736
2050
  {
1737
2051
  "file": "packages/scrabble-solver/src/pages/api/visit.ts",
1738
- "hash": "10744025525167564156"
2052
+ "hash": "6153803873861172569"
1739
2053
  },
1740
2054
  {
1741
2055
  "file": "packages/scrabble-solver/src/pages/index.module.scss",
@@ -1743,7 +2057,7 @@
1743
2057
  },
1744
2058
  {
1745
2059
  "file": "packages/scrabble-solver/src/pages/index.tsx",
1746
- "hash": "5426356031601226929"
2060
+ "hash": "787432111286516088"
1747
2061
  },
1748
2062
  {
1749
2063
  "file": "packages/scrabble-solver/src/pages/not-found.tsx",
@@ -1751,7 +2065,7 @@
1751
2065
  },
1752
2066
  {
1753
2067
  "file": "packages/scrabble-solver/src/parameters/index.ts",
1754
- "hash": "13366046524140791642"
2068
+ "hash": "8405259256414922853"
1755
2069
  },
1756
2070
  {
1757
2071
  "file": "packages/scrabble-solver/src/sdk/fetch.ts",
@@ -1771,15 +2085,15 @@
1771
2085
  },
1772
2086
  {
1773
2087
  "file": "packages/scrabble-solver/src/sdk/solve.ts",
1774
- "hash": "14093469962660680952"
2088
+ "hash": "11992479015734282017"
1775
2089
  },
1776
2090
  {
1777
2091
  "file": "packages/scrabble-solver/src/sdk/verify.ts",
1778
- "hash": "5260636144623723651"
2092
+ "hash": "572529841461744290"
1779
2093
  },
1780
2094
  {
1781
2095
  "file": "packages/scrabble-solver/src/sdk/visit.ts",
1782
- "hash": "11075775441144503022"
2096
+ "hash": "10803734795460003993"
1783
2097
  },
1784
2098
  {
1785
2099
  "file": "packages/scrabble-solver/src/service-worker/appShell.test.ts",
@@ -2063,7 +2377,7 @@
2063
2377
  },
2064
2378
  {
2065
2379
  "file": "packages/scrabble-solver/src/state/sagas.ts",
2066
- "hash": "16506044484506785064"
2380
+ "hash": "11742796238265820171"
2067
2381
  },
2068
2382
  {
2069
2383
  "file": "packages/scrabble-solver/src/state/selectors.ts",
@@ -2163,7 +2477,7 @@
2163
2477
  },
2164
2478
  {
2165
2479
  "file": "packages/scrabble-solver/src/styles/_tokens.scss",
2166
- "hash": "5301326514563158030"
2480
+ "hash": "15548534758324964977"
2167
2481
  },
2168
2482
  {
2169
2483
  "file": "packages/scrabble-solver/src/styles/animations.scss",
@@ -2175,19 +2489,19 @@
2175
2489
  },
2176
2490
  {
2177
2491
  "file": "packages/scrabble-solver/src/styles/mixins.scss",
2178
- "hash": "10790310721514413103"
2492
+ "hash": "5617887924123036177"
2179
2493
  },
2180
2494
  {
2181
2495
  "file": "packages/scrabble-solver/src/styles/variables.module.scss",
2182
- "hash": "15011268155533308778"
2496
+ "hash": "4461964143587637005"
2183
2497
  },
2184
2498
  {
2185
2499
  "file": "packages/scrabble-solver/src/styles/variables.scss",
2186
- "hash": "13700578714992658834"
2500
+ "hash": "5243086748379757694"
2187
2501
  },
2188
2502
  {
2189
2503
  "file": "packages/scrabble-solver/src/types/api.ts",
2190
- "hash": "5400178518570826006"
2504
+ "hash": "12549278436546673808"
2191
2505
  },
2192
2506
  {
2193
2507
  "file": "packages/scrabble-solver/src/types/index.ts",
@@ -2198,108 +2512,6 @@
2198
2512
  "hash": "10943461411870959230"
2199
2513
  }
2200
2514
  ],
2201
- "@scrabble-solver/configs": [
2202
- {
2203
- "file": "packages/configs/README.md",
2204
- "hash": "6408492212348349035"
2205
- },
2206
- {
2207
- "file": "packages/configs/package.json",
2208
- "hash": "5025672026874155857",
2209
- "deps": [
2210
- "@scrabble-solver/constants",
2211
- "@scrabble-solver/types"
2212
- ]
2213
- },
2214
- {
2215
- "file": "packages/configs/src/games/crossplay.ts",
2216
- "hash": "16021566614416518615"
2217
- },
2218
- {
2219
- "file": "packages/configs/src/games/index.ts",
2220
- "hash": "4897796642372198566"
2221
- },
2222
- {
2223
- "file": "packages/configs/src/games/kelimelik.ts",
2224
- "hash": "8950283052021127979"
2225
- },
2226
- {
2227
- "file": "packages/configs/src/games/letterLeague.ts",
2228
- "hash": "8462198127509215788"
2229
- },
2230
- {
2231
- "file": "packages/configs/src/games/literaki.ts",
2232
- "hash": "7033507003854208537"
2233
- },
2234
- {
2235
- "file": "packages/configs/src/games/scrabble.ts",
2236
- "hash": "18218540760290077603"
2237
- },
2238
- {
2239
- "file": "packages/configs/src/games/scrabbleDuel.ts",
2240
- "hash": "4836733622693563212"
2241
- },
2242
- {
2243
- "file": "packages/configs/src/games/superScrabble.ts",
2244
- "hash": "17447393258816850978"
2245
- },
2246
- {
2247
- "file": "packages/configs/src/games/wyrazy.ts",
2248
- "hash": "9999946482226811057"
2249
- },
2250
- {
2251
- "file": "packages/configs/src/getConfig.ts",
2252
- "hash": "2532535760263476394"
2253
- },
2254
- {
2255
- "file": "packages/configs/src/hasConfig.ts",
2256
- "hash": "3549979696544493656"
2257
- },
2258
- {
2259
- "file": "packages/configs/src/index.ts",
2260
- "hash": "12104092412421460190"
2261
- },
2262
- {
2263
- "file": "packages/configs/src/languages/english.ts",
2264
- "hash": "7535121473879804895"
2265
- },
2266
- {
2267
- "file": "packages/configs/src/languages/french.ts",
2268
- "hash": "12248709442008050794"
2269
- },
2270
- {
2271
- "file": "packages/configs/src/languages/german.ts",
2272
- "hash": "15430977815804666604"
2273
- },
2274
- {
2275
- "file": "packages/configs/src/languages/index.ts",
2276
- "hash": "6554636328320279077"
2277
- },
2278
- {
2279
- "file": "packages/configs/src/languages/persian.ts",
2280
- "hash": "1614638689491705120"
2281
- },
2282
- {
2283
- "file": "packages/configs/src/languages/polish.ts",
2284
- "hash": "4040223889503065921"
2285
- },
2286
- {
2287
- "file": "packages/configs/src/languages/romanian.ts",
2288
- "hash": "15366974472215186064"
2289
- },
2290
- {
2291
- "file": "packages/configs/src/languages/spanish.ts",
2292
- "hash": "289235670795048535"
2293
- },
2294
- {
2295
- "file": "packages/configs/src/languages/turkish.ts",
2296
- "hash": "10240746041524805456"
2297
- },
2298
- {
2299
- "file": "packages/configs/tsconfig.json",
2300
- "hash": "14393573143758511966"
2301
- }
2302
- ],
2303
2515
  "@scrabble-solver/word-lists": [
2304
2516
  {
2305
2517
  "file": "packages/word-lists/README.md",
@@ -2307,7 +2519,7 @@
2307
2519
  },
2308
2520
  {
2309
2521
  "file": "packages/word-lists/package.json",
2310
- "hash": "3157428880919276467",
2522
+ "hash": "10453808869055671507",
2311
2523
  "deps": [
2312
2524
  "npm:@types/follow-redirects@1.14.4",
2313
2525
  "npm:@types/unzipper@0.10.11",
@@ -2331,301 +2543,185 @@
2331
2543
  "hash": "18236496125766674592"
2332
2544
  },
2333
2545
  {
2334
- "file": "packages/word-lists/src/languages/french.ts",
2335
- "hash": "999885887967626988"
2336
- },
2337
- {
2338
- "file": "packages/word-lists/src/languages/german.ts",
2339
- "hash": "7794882289943390115"
2340
- },
2341
- {
2342
- "file": "packages/word-lists/src/languages/index.ts",
2343
- "hash": "632033483089466746"
2344
- },
2345
- {
2346
- "file": "packages/word-lists/src/languages/persian.ts",
2347
- "hash": "3960698128232122588"
2348
- },
2349
- {
2350
- "file": "packages/word-lists/src/languages/polish.ts",
2351
- "hash": "3075535021753564703"
2352
- },
2353
- {
2354
- "file": "packages/word-lists/src/languages/romanian.ts",
2355
- "hash": "9300620863531476643"
2356
- },
2357
- {
2358
- "file": "packages/word-lists/src/languages/spanish.ts",
2359
- "hash": "4087018936035514"
2360
- },
2361
- {
2362
- "file": "packages/word-lists/src/languages/turkish.ts",
2363
- "hash": "16755045246219415596"
2364
- },
2365
- {
2366
- "file": "packages/word-lists/src/lib/downloadFile.ts",
2367
- "hash": "13607329874891283679"
2368
- },
2369
- {
2370
- "file": "packages/word-lists/src/lib/downloadHtml.ts",
2371
- "hash": "1310045368305737951"
2372
- },
2373
- {
2374
- "file": "packages/word-lists/src/lib/extractWords.ts",
2375
- "hash": "14559448128270437612"
2376
- },
2377
- {
2378
- "file": "packages/word-lists/src/lib/findFirstWordIndex.ts",
2379
- "hash": "9840318512275784332"
2380
- },
2381
- {
2382
- "file": "packages/word-lists/src/lib/getHash.ts",
2383
- "hash": "8975814297070890934"
2384
- },
2385
- {
2386
- "file": "packages/word-lists/src/lib/getTempFilepath.ts",
2387
- "hash": "17463482587297340183"
2388
- },
2389
- {
2390
- "file": "packages/word-lists/src/lib/getTxtWordList.ts",
2391
- "hash": "6788551474673366316"
2392
- },
2393
- {
2394
- "file": "packages/word-lists/src/lib/index.ts",
2395
- "hash": "3470132537045022332"
2396
- },
2397
- {
2398
- "file": "packages/word-lists/src/lib/transliterateDiacritics.ts",
2399
- "hash": "477062649907390802"
2400
- },
2401
- {
2402
- "file": "packages/word-lists/src/lib/unique.ts",
2403
- "hash": "4387364396041720073"
2404
- },
2405
- {
2406
- "file": "packages/word-lists/src/lib/unzip.ts",
2407
- "hash": "1152622296142869825"
2408
- },
2409
- {
2410
- "file": "packages/word-lists/tsconfig.json",
2411
- "hash": "14393573143758511966"
2412
- }
2413
- ],
2414
- "@scrabble-solver/word-definitions": [
2415
- {
2416
- "file": "packages/word-definitions/README.md",
2417
- "hash": "17568556648423613638"
2418
- },
2419
- {
2420
- "file": "packages/word-definitions/package.json",
2421
- "hash": "15500804503325848599",
2422
- "deps": [
2423
- "npm:@types/follow-redirects@1.14.4",
2424
- "npm:domhandler@6.0.1",
2425
- "@scrabble-solver/types",
2426
- "npm:cheerio@1.2.0",
2427
- "npm:follow-redirects@1.16.0",
2428
- "npm:striptags@3.2.0"
2429
- ]
2430
- },
2431
- {
2432
- "file": "packages/word-definitions/src/__tests__/expected/de-DE.hm.json",
2433
- "hash": "10237785854707267601"
2434
- },
2435
- {
2436
- "file": "packages/word-definitions/src/__tests__/expected/de-DE.ho.json",
2437
- "hash": "12063011714052156607"
2438
- },
2439
- {
2440
- "file": "packages/word-definitions/src/__tests__/expected/de-DE.kolla.json",
2441
- "hash": "14885831526660416837"
2442
- },
2443
- {
2444
- "file": "packages/word-definitions/src/__tests__/expected/de-DE.vom.json",
2445
- "hash": "15963236354499184653"
2446
- },
2447
- {
2448
- "file": "packages/word-definitions/src/__tests__/expected/en-US.awe.json",
2449
- "hash": "14580643472990180452"
2450
- },
2451
- {
2452
- "file": "packages/word-definitions/src/__tests__/expected/en-US.oe.json",
2453
- "hash": "9229353683886497101"
2454
- },
2455
- {
2456
- "file": "packages/word-definitions/src/__tests__/expected/en-US.pawn.json",
2457
- "hash": "10953986206901064364"
2546
+ "file": "packages/word-lists/src/languages/french.ts",
2547
+ "hash": "999885887967626988"
2458
2548
  },
2459
2549
  {
2460
- "file": "packages/word-definitions/src/__tests__/expected/en-US.pawnee.json",
2461
- "hash": "15895847196809219851"
2550
+ "file": "packages/word-lists/src/languages/german.ts",
2551
+ "hash": "7794882289943390115"
2462
2552
  },
2463
2553
  {
2464
- "file": "packages/word-definitions/src/__tests__/expected/en-US.pean.json",
2465
- "hash": "5197962880502282518"
2554
+ "file": "packages/word-lists/src/languages/index.ts",
2555
+ "hash": "632033483089466746"
2466
2556
  },
2467
2557
  {
2468
- "file": "packages/word-definitions/src/__tests__/expected/en-US.wiz.json",
2469
- "hash": "12441341838833685826"
2558
+ "file": "packages/word-lists/src/languages/persian.ts",
2559
+ "hash": "3960698128232122588"
2470
2560
  },
2471
2561
  {
2472
- "file": "packages/word-definitions/src/__tests__/expected/en-US.zzzzqq.json",
2473
- "hash": "2633780522676006583"
2562
+ "file": "packages/word-lists/src/languages/polish.ts",
2563
+ "hash": "3075535021753564703"
2474
2564
  },
2475
2565
  {
2476
- "file": "packages/word-definitions/src/__tests__/expected/es-ES.corma.json",
2477
- "hash": "12106710832334575972"
2566
+ "file": "packages/word-lists/src/languages/romanian.ts",
2567
+ "hash": "9300620863531476643"
2478
2568
  },
2479
2569
  {
2480
- "file": "packages/word-definitions/src/__tests__/expected/es-ES.portero.json",
2481
- "hash": "14488169472975769438"
2570
+ "file": "packages/word-lists/src/languages/spanish.ts",
2571
+ "hash": "4087018936035514"
2482
2572
  },
2483
2573
  {
2484
- "file": "packages/word-definitions/src/__tests__/expected/ro-RO.aciua.json",
2485
- "hash": "16979195584190955408"
2574
+ "file": "packages/word-lists/src/languages/turkish.ts",
2575
+ "hash": "16755045246219415596"
2486
2576
  },
2487
2577
  {
2488
- "file": "packages/word-definitions/src/__tests__/expected/tr-TR.lojik.json",
2489
- "hash": "8158496020673125131"
2578
+ "file": "packages/word-lists/src/lib/downloadFile.ts",
2579
+ "hash": "13607329874891283679"
2490
2580
  },
2491
2581
  {
2492
- "file": "packages/word-definitions/src/__tests__/input/de-DE.hm.html",
2493
- "hash": "9556515440909131198"
2582
+ "file": "packages/word-lists/src/lib/downloadHtml.ts",
2583
+ "hash": "1310045368305737951"
2494
2584
  },
2495
2585
  {
2496
- "file": "packages/word-definitions/src/__tests__/input/de-DE.ho.html",
2497
- "hash": "17490613757795254086"
2586
+ "file": "packages/word-lists/src/lib/extractWords.ts",
2587
+ "hash": "14559448128270437612"
2498
2588
  },
2499
2589
  {
2500
- "file": "packages/word-definitions/src/__tests__/input/de-DE.kolla.html",
2501
- "hash": "7808792531948326040"
2590
+ "file": "packages/word-lists/src/lib/findFirstWordIndex.ts",
2591
+ "hash": "9840318512275784332"
2502
2592
  },
2503
2593
  {
2504
- "file": "packages/word-definitions/src/__tests__/input/de-DE.vom.html",
2505
- "hash": "6890899341792994601"
2594
+ "file": "packages/word-lists/src/lib/getHash.ts",
2595
+ "hash": "8975814297070890934"
2506
2596
  },
2507
2597
  {
2508
- "file": "packages/word-definitions/src/__tests__/input/en-US.awe.json",
2509
- "hash": "2029969773052086170"
2598
+ "file": "packages/word-lists/src/lib/getTempFilepath.ts",
2599
+ "hash": "17463482587297340183"
2510
2600
  },
2511
2601
  {
2512
- "file": "packages/word-definitions/src/__tests__/input/en-US.oe.json",
2513
- "hash": "5247873960357704798"
2602
+ "file": "packages/word-lists/src/lib/getTxtWordList.ts",
2603
+ "hash": "6788551474673366316"
2514
2604
  },
2515
2605
  {
2516
- "file": "packages/word-definitions/src/__tests__/input/en-US.pawn.json",
2517
- "hash": "16079569368363361246"
2606
+ "file": "packages/word-lists/src/lib/index.ts",
2607
+ "hash": "3470132537045022332"
2518
2608
  },
2519
2609
  {
2520
- "file": "packages/word-definitions/src/__tests__/input/en-US.pawnee.json",
2521
- "hash": "10518146393108099357"
2610
+ "file": "packages/word-lists/src/lib/transliterateDiacritics.ts",
2611
+ "hash": "477062649907390802"
2522
2612
  },
2523
2613
  {
2524
- "file": "packages/word-definitions/src/__tests__/input/en-US.pean.json",
2525
- "hash": "12681866612706235362"
2614
+ "file": "packages/word-lists/src/lib/unique.ts",
2615
+ "hash": "4387364396041720073"
2526
2616
  },
2527
2617
  {
2528
- "file": "packages/word-definitions/src/__tests__/input/en-US.wiz.json",
2529
- "hash": "4572613351902564"
2618
+ "file": "packages/word-lists/src/lib/unzip.ts",
2619
+ "hash": "1152622296142869825"
2530
2620
  },
2531
2621
  {
2532
- "file": "packages/word-definitions/src/__tests__/input/en-US.zzzzqq.json",
2533
- "hash": "565364869759680309"
2534
- },
2622
+ "file": "packages/word-lists/tsconfig.json",
2623
+ "hash": "14393573143758511966"
2624
+ }
2625
+ ],
2626
+ "@scrabble-solver/configs": [
2535
2627
  {
2536
- "file": "packages/word-definitions/src/__tests__/input/es-ES.corma.html",
2537
- "hash": "4810834112940957964"
2628
+ "file": "packages/configs/README.md",
2629
+ "hash": "6408492212348349035"
2538
2630
  },
2539
2631
  {
2540
- "file": "packages/word-definitions/src/__tests__/input/es-ES.portero.html",
2541
- "hash": "3285999281074013554"
2632
+ "file": "packages/configs/package.json",
2633
+ "hash": "15174590282591946403",
2634
+ "deps": [
2635
+ "@scrabble-solver/constants",
2636
+ "@scrabble-solver/types"
2637
+ ]
2542
2638
  },
2543
2639
  {
2544
- "file": "packages/word-definitions/src/__tests__/input/ro-RO.aciua.html",
2545
- "hash": "5290984517286373353"
2640
+ "file": "packages/configs/src/games/crossplay.ts",
2641
+ "hash": "16021566614416518615"
2546
2642
  },
2547
2643
  {
2548
- "file": "packages/word-definitions/src/__tests__/input/tr-TR.lojik.html",
2549
- "hash": "7167173069304005721"
2644
+ "file": "packages/configs/src/games/index.ts",
2645
+ "hash": "4897796642372198566"
2550
2646
  },
2551
2647
  {
2552
- "file": "packages/word-definitions/src/crawl.ts",
2553
- "hash": "6329813709530241756"
2648
+ "file": "packages/configs/src/games/kelimelik.ts",
2649
+ "hash": "8950283052021127979"
2554
2650
  },
2555
2651
  {
2556
- "file": "packages/word-definitions/src/getWordDefinition.ts",
2557
- "hash": "17988115002442336154"
2652
+ "file": "packages/configs/src/games/letterLeague.ts",
2653
+ "hash": "8462198127509215788"
2558
2654
  },
2559
2655
  {
2560
- "file": "packages/word-definitions/src/index.ts",
2561
- "hash": "10934322227063310399"
2656
+ "file": "packages/configs/src/games/literaki.ts",
2657
+ "hash": "7033507003854208537"
2562
2658
  },
2563
2659
  {
2564
- "file": "packages/word-definitions/src/languages/english.ts",
2565
- "hash": "4504048033706076049"
2660
+ "file": "packages/configs/src/games/scrabble.ts",
2661
+ "hash": "18218540760290077603"
2566
2662
  },
2567
2663
  {
2568
- "file": "packages/word-definitions/src/languages/french.ts",
2569
- "hash": "15672290074498743970"
2664
+ "file": "packages/configs/src/games/scrabbleDuel.ts",
2665
+ "hash": "4836733622693563212"
2570
2666
  },
2571
2667
  {
2572
- "file": "packages/word-definitions/src/languages/german.ts",
2573
- "hash": "12972031723114991444"
2668
+ "file": "packages/configs/src/games/superScrabble.ts",
2669
+ "hash": "17447393258816850978"
2574
2670
  },
2575
2671
  {
2576
- "file": "packages/word-definitions/src/languages/index.ts",
2577
- "hash": "632033483089466746"
2672
+ "file": "packages/configs/src/games/wyrazy.ts",
2673
+ "hash": "9999946482226811057"
2578
2674
  },
2579
2675
  {
2580
- "file": "packages/word-definitions/src/languages/persian.ts",
2581
- "hash": "13467555341365476711"
2676
+ "file": "packages/configs/src/getConfig.ts",
2677
+ "hash": "2532535760263476394"
2582
2678
  },
2583
2679
  {
2584
- "file": "packages/word-definitions/src/languages/polish.ts",
2585
- "hash": "11430864907736135187"
2680
+ "file": "packages/configs/src/hasConfig.ts",
2681
+ "hash": "3549979696544493656"
2586
2682
  },
2587
2683
  {
2588
- "file": "packages/word-definitions/src/languages/romanian.ts",
2589
- "hash": "7978139755480451257"
2684
+ "file": "packages/configs/src/index.ts",
2685
+ "hash": "12104092412421460190"
2590
2686
  },
2591
2687
  {
2592
- "file": "packages/word-definitions/src/languages/spanish.ts",
2593
- "hash": "1141030879998142551"
2688
+ "file": "packages/configs/src/languages/english.ts",
2689
+ "hash": "7535121473879804895"
2594
2690
  },
2595
2691
  {
2596
- "file": "packages/word-definitions/src/languages/turkish.ts",
2597
- "hash": "9080639594070141138"
2692
+ "file": "packages/configs/src/languages/french.ts",
2693
+ "hash": "12248709442008050794"
2598
2694
  },
2599
2695
  {
2600
- "file": "packages/word-definitions/src/lib/index.ts",
2601
- "hash": "6323235562661083405"
2696
+ "file": "packages/configs/src/languages/german.ts",
2697
+ "hash": "15430977815804666604"
2602
2698
  },
2603
2699
  {
2604
- "file": "packages/word-definitions/src/lib/normalizeDefinition.ts",
2605
- "hash": "17425560022581103973"
2700
+ "file": "packages/configs/src/languages/index.ts",
2701
+ "hash": "6554636328320279077"
2606
2702
  },
2607
2703
  {
2608
- "file": "packages/word-definitions/src/lib/request.ts",
2609
- "hash": "964101176544737231"
2704
+ "file": "packages/configs/src/languages/persian.ts",
2705
+ "hash": "1614638689491705120"
2610
2706
  },
2611
2707
  {
2612
- "file": "packages/word-definitions/src/lib/unique.ts",
2613
- "hash": "4387364396041720073"
2708
+ "file": "packages/configs/src/languages/polish.ts",
2709
+ "hash": "4040223889503065921"
2614
2710
  },
2615
2711
  {
2616
- "file": "packages/word-definitions/src/parse.test.ts",
2617
- "hash": "8569066879643926718"
2712
+ "file": "packages/configs/src/languages/romanian.ts",
2713
+ "hash": "15366974472215186064"
2618
2714
  },
2619
2715
  {
2620
- "file": "packages/word-definitions/src/parse.ts",
2621
- "hash": "1813663728859205889"
2716
+ "file": "packages/configs/src/languages/spanish.ts",
2717
+ "hash": "289235670795048535"
2622
2718
  },
2623
2719
  {
2624
- "file": "packages/word-definitions/src/types.ts",
2625
- "hash": "8293904135449925504"
2720
+ "file": "packages/configs/src/languages/turkish.ts",
2721
+ "hash": "10240746041524805456"
2626
2722
  },
2627
2723
  {
2628
- "file": "packages/word-definitions/tsconfig.json",
2724
+ "file": "packages/configs/tsconfig.json",
2629
2725
  "hash": "14393573143758511966"
2630
2726
  }
2631
2727
  ],
@@ -2640,11 +2736,11 @@
2640
2736
  },
2641
2737
  {
2642
2738
  "file": "packages/dictionaries/bin/update-dictionaries.js",
2643
- "hash": "9641816824340442544"
2739
+ "hash": "2236779845496200956"
2644
2740
  },
2645
2741
  {
2646
2742
  "file": "packages/dictionaries/package.json",
2647
- "hash": "12150387463145305002",
2743
+ "hash": "11097605135182034125",
2648
2744
  "deps": [
2649
2745
  "npm:@kamilmielnik/gaddag@2.0.0",
2650
2746
  "@scrabble-solver/logger",
@@ -2654,7 +2750,7 @@
2654
2750
  },
2655
2751
  {
2656
2752
  "file": "packages/dictionaries/src/Dictionaries.ts",
2657
- "hash": "2561895391754704286"
2753
+ "hash": "14918658150800081480"
2658
2754
  },
2659
2755
  {
2660
2756
  "file": "packages/dictionaries/src/constants.ts",
@@ -2670,7 +2766,7 @@
2670
2766
  },
2671
2767
  {
2672
2768
  "file": "packages/dictionaries/src/lib/DiskCache.ts",
2673
- "hash": "2531927136976486343"
2769
+ "hash": "8144087943761638324"
2674
2770
  },
2675
2771
  {
2676
2772
  "file": "packages/dictionaries/src/lib/LayeredCache.ts",
@@ -2690,7 +2786,7 @@
2690
2786
  },
2691
2787
  {
2692
2788
  "file": "packages/dictionaries/src/lib/downloadDictionary.ts",
2693
- "hash": "5221985439340190769"
2789
+ "hash": "3573310123029763803"
2694
2790
  },
2695
2791
  {
2696
2792
  "file": "packages/dictionaries/src/lib/getDictionaryFilepath.ts",
@@ -2709,372 +2805,309 @@
2709
2805
  "hash": "14393573143758511966"
2710
2806
  }
2711
2807
  ],
2712
- "@scrabble-solver/constants": [
2713
- {
2714
- "file": "packages/constants/README.md",
2715
- "hash": "15117377322618686888"
2716
- },
2717
- {
2718
- "file": "packages/constants/package.json",
2719
- "hash": "15340135538977440175"
2720
- },
2721
- {
2722
- "file": "packages/constants/src/index.ts",
2723
- "hash": "2132305088706286749"
2724
- },
2725
- {
2726
- "file": "packages/constants/tsconfig.json",
2727
- "hash": "14393573143758511966"
2728
- }
2729
- ],
2730
- "@scrabble-solver/logger": [
2731
- {
2732
- "file": "packages/logger/README.md",
2733
- "hash": "16076881737681040638"
2734
- },
2735
- {
2736
- "file": "packages/logger/package.json",
2737
- "hash": "17377256431166553939",
2738
- "deps": [
2739
- "npm:winston@3.19.0"
2740
- ]
2741
- },
2742
- {
2743
- "file": "packages/logger/scripts/stats.js",
2744
- "hash": "89643083846681828"
2745
- },
2746
- {
2747
- "file": "packages/logger/src/constants.ts",
2748
- "hash": "9027236667651974941"
2749
- },
2750
- {
2751
- "file": "packages/logger/src/index.ts",
2752
- "hash": "5834074882708409826"
2753
- },
2754
- {
2755
- "file": "packages/logger/src/logger.ts",
2756
- "hash": "3288628780241056943"
2757
- },
2758
- {
2759
- "file": "packages/logger/tsconfig.json",
2760
- "hash": "14393573143758511966"
2761
- }
2762
- ],
2763
- "@scrabble-solver/types": [
2808
+ "@scrabble-solver/word-definitions": [
2764
2809
  {
2765
- "file": "packages/types/README.md",
2766
- "hash": "5575595901601075739"
2810
+ "file": "packages/word-definitions/README.md",
2811
+ "hash": "17568556648423613638"
2767
2812
  },
2768
2813
  {
2769
- "file": "packages/types/package.json",
2770
- "hash": "387554122921110837",
2814
+ "file": "packages/word-definitions/package.json",
2815
+ "hash": "725158472823611437",
2771
2816
  "deps": [
2772
- "@scrabble-solver/constants"
2817
+ "npm:@types/follow-redirects@1.14.4",
2818
+ "npm:domhandler@6.0.1",
2819
+ "@scrabble-solver/types",
2820
+ "npm:cheerio@1.2.0",
2821
+ "npm:follow-redirects@1.16.0",
2822
+ "npm:striptags@3.2.0"
2773
2823
  ]
2774
2824
  },
2775
2825
  {
2776
- "file": "packages/types/src/Bingo.ts",
2777
- "hash": "3029863815320440338"
2778
- },
2779
- {
2780
- "file": "packages/types/src/Board.test.ts",
2781
- "hash": "6858527203567250899"
2782
- },
2783
- {
2784
- "file": "packages/types/src/Board.ts",
2785
- "hash": "10707341963175252073"
2826
+ "file": "packages/word-definitions/src/__tests__/expected/de-DE.hm.json",
2827
+ "hash": "10237785854707267601"
2786
2828
  },
2787
2829
  {
2788
- "file": "packages/types/src/BoardJson.ts",
2789
- "hash": "18021606779460231822"
2830
+ "file": "packages/word-definitions/src/__tests__/expected/de-DE.ho.json",
2831
+ "hash": "12063011714052156607"
2790
2832
  },
2791
2833
  {
2792
- "file": "packages/types/src/BoardWord.ts",
2793
- "hash": "12283073680601896013"
2834
+ "file": "packages/word-definitions/src/__tests__/expected/de-DE.kolla.json",
2835
+ "hash": "14885831526660416837"
2794
2836
  },
2795
2837
  {
2796
- "file": "packages/types/src/Bonus.ts",
2797
- "hash": "5717286701263266565"
2838
+ "file": "packages/word-definitions/src/__tests__/expected/de-DE.vom.json",
2839
+ "hash": "15963236354499184653"
2798
2840
  },
2799
2841
  {
2800
- "file": "packages/types/src/BonusJson.ts",
2801
- "hash": "8193407530116730877"
2842
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.awe.json",
2843
+ "hash": "14580643472990180452"
2802
2844
  },
2803
2845
  {
2804
- "file": "packages/types/src/BonusValue.ts",
2805
- "hash": "15813289002325634994"
2846
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.oe.json",
2847
+ "hash": "9229353683886497101"
2806
2848
  },
2807
2849
  {
2808
- "file": "packages/types/src/Cell.ts",
2809
- "hash": "8626587745419165844"
2850
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.pawn.json",
2851
+ "hash": "10953986206901064364"
2810
2852
  },
2811
2853
  {
2812
- "file": "packages/types/src/CellJson.ts",
2813
- "hash": "8500080559998889033"
2854
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.pawnee.json",
2855
+ "hash": "15895847196809219851"
2814
2856
  },
2815
2857
  {
2816
- "file": "packages/types/src/CharacterBonus.ts",
2817
- "hash": "13332621774449008748"
2858
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.pean.json",
2859
+ "hash": "5197962880502282518"
2818
2860
  },
2819
2861
  {
2820
- "file": "packages/types/src/Collision.ts",
2821
- "hash": "11514928176519920102"
2862
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.wiz.json",
2863
+ "hash": "12441341838833685826"
2822
2864
  },
2823
2865
  {
2824
- "file": "packages/types/src/Config.ts",
2825
- "hash": "2576430300055128471"
2866
+ "file": "packages/word-definitions/src/__tests__/expected/en-US.zzzzqq.json",
2867
+ "hash": "2633780522676006583"
2826
2868
  },
2827
2869
  {
2828
- "file": "packages/types/src/ConfigJson.ts",
2829
- "hash": "2916011851215747296"
2870
+ "file": "packages/word-definitions/src/__tests__/expected/es-ES.corma.json",
2871
+ "hash": "12106710832334575972"
2830
2872
  },
2831
2873
  {
2832
- "file": "packages/types/src/Dictionary.ts",
2833
- "hash": "104582099610553637"
2874
+ "file": "packages/word-definitions/src/__tests__/expected/es-ES.portero.json",
2875
+ "hash": "14488169472975769438"
2834
2876
  },
2835
2877
  {
2836
- "file": "packages/types/src/Direction.ts",
2837
- "hash": "162328705187601124"
2878
+ "file": "packages/word-definitions/src/__tests__/expected/ro-RO.aciua.json",
2879
+ "hash": "16979195584190955408"
2838
2880
  },
2839
2881
  {
2840
- "file": "packages/types/src/Game.ts",
2841
- "hash": "5971717923769719097"
2882
+ "file": "packages/word-definitions/src/__tests__/expected/tr-TR.lojik.json",
2883
+ "hash": "8158496020673125131"
2842
2884
  },
2843
2885
  {
2844
- "file": "packages/types/src/Locale.ts",
2845
- "hash": "15496768620571102969"
2886
+ "file": "packages/word-definitions/src/__tests__/input/de-DE.hm.html",
2887
+ "hash": "9556515440909131198"
2846
2888
  },
2847
2889
  {
2848
- "file": "packages/types/src/Result.ts",
2849
- "hash": "14160089412871044080"
2890
+ "file": "packages/word-definitions/src/__tests__/input/de-DE.ho.html",
2891
+ "hash": "17490613757795254086"
2850
2892
  },
2851
2893
  {
2852
- "file": "packages/types/src/ResultJson.ts",
2853
- "hash": "6777063720137099065"
2894
+ "file": "packages/word-definitions/src/__tests__/input/de-DE.kolla.html",
2895
+ "hash": "7808792531948326040"
2854
2896
  },
2855
2897
  {
2856
- "file": "packages/types/src/ShowCoordinates.ts",
2857
- "hash": "17680033096808781432"
2898
+ "file": "packages/word-definitions/src/__tests__/input/de-DE.vom.html",
2899
+ "hash": "6890899341792994601"
2858
2900
  },
2859
2901
  {
2860
- "file": "packages/types/src/TextDirection.ts",
2861
- "hash": "3385420391327595232"
2902
+ "file": "packages/word-definitions/src/__tests__/input/en-US.awe.json",
2903
+ "hash": "2029969773052086170"
2862
2904
  },
2863
2905
  {
2864
- "file": "packages/types/src/Tile.ts",
2865
- "hash": "6732286771517417774"
2906
+ "file": "packages/word-definitions/src/__tests__/input/en-US.oe.json",
2907
+ "hash": "5247873960357704798"
2866
2908
  },
2867
2909
  {
2868
- "file": "packages/types/src/TileConfig.ts",
2869
- "hash": "3850213128358277492"
2910
+ "file": "packages/word-definitions/src/__tests__/input/en-US.pawn.json",
2911
+ "hash": "16079569368363361246"
2870
2912
  },
2871
2913
  {
2872
- "file": "packages/types/src/TileJson.ts",
2873
- "hash": "8360282375401690806"
2914
+ "file": "packages/word-definitions/src/__tests__/input/en-US.pawnee.json",
2915
+ "hash": "10518146393108099357"
2874
2916
  },
2875
2917
  {
2876
- "file": "packages/types/src/WordBonus.ts",
2877
- "hash": "13727795112998703187"
2918
+ "file": "packages/word-definitions/src/__tests__/input/en-US.pean.json",
2919
+ "hash": "12681866612706235362"
2878
2920
  },
2879
2921
  {
2880
- "file": "packages/types/src/WordDefinition.ts",
2881
- "hash": "6656289218902883084"
2922
+ "file": "packages/word-definitions/src/__tests__/input/en-US.wiz.json",
2923
+ "hash": "4572613351902564"
2882
2924
  },
2883
2925
  {
2884
- "file": "packages/types/src/WordDefinitionJson.ts",
2885
- "hash": "3359175117295750499"
2926
+ "file": "packages/word-definitions/src/__tests__/input/en-US.zzzzqq.json",
2927
+ "hash": "565364869759680309"
2886
2928
  },
2887
2929
  {
2888
- "file": "packages/types/src/index.ts",
2889
- "hash": "11143611118118153953"
2930
+ "file": "packages/word-definitions/src/__tests__/input/es-ES.corma.html",
2931
+ "hash": "4810834112940957964"
2890
2932
  },
2891
2933
  {
2892
- "file": "packages/types/src/lib/getBoardWords.ts",
2893
- "hash": "8591599229512249121"
2934
+ "file": "packages/word-definitions/src/__tests__/input/es-ES.portero.html",
2935
+ "hash": "3285999281074013554"
2894
2936
  },
2895
2937
  {
2896
- "file": "packages/types/src/lib/getCells.test.ts",
2897
- "hash": "14306685756589248846"
2938
+ "file": "packages/word-definitions/src/__tests__/input/ro-RO.aciua.html",
2939
+ "hash": "5290984517286373353"
2898
2940
  },
2899
2941
  {
2900
- "file": "packages/types/src/lib/getCells.ts",
2901
- "hash": "12526278467088314219"
2942
+ "file": "packages/word-definitions/src/__tests__/input/tr-TR.lojik.html",
2943
+ "hash": "7167173069304005721"
2902
2944
  },
2903
2945
  {
2904
- "file": "packages/types/src/lib/getCollidingWords.ts",
2905
- "hash": "12384492219817749593"
2946
+ "file": "packages/word-definitions/src/crawl.ts",
2947
+ "hash": "6329813709530241756"
2906
2948
  },
2907
2949
  {
2908
- "file": "packages/types/src/lib/getCollision.ts",
2909
- "hash": "3088300365026692842"
2950
+ "file": "packages/word-definitions/src/getWordDefinition.ts",
2951
+ "hash": "17988115002442336154"
2910
2952
  },
2911
2953
  {
2912
- "file": "packages/types/src/lib/getCollisions.test.ts",
2913
- "hash": "8045722639681404015"
2954
+ "file": "packages/word-definitions/src/index.ts",
2955
+ "hash": "10934322227063310399"
2914
2956
  },
2915
2957
  {
2916
- "file": "packages/types/src/lib/getCollisions.ts",
2917
- "hash": "6839560680742447211"
2958
+ "file": "packages/word-definitions/src/languages/english.ts",
2959
+ "hash": "4504048033706076049"
2918
2960
  },
2919
2961
  {
2920
- "file": "packages/types/src/lib/getPlacedCell.ts",
2921
- "hash": "5996228405248005869"
2962
+ "file": "packages/word-definitions/src/languages/french.ts",
2963
+ "hash": "15672290074498743970"
2922
2964
  },
2923
2965
  {
2924
- "file": "packages/types/src/lib/getWordThrough.ts",
2925
- "hash": "7514306073495826236"
2966
+ "file": "packages/word-definitions/src/languages/german.ts",
2967
+ "hash": "12972031723114991444"
2926
2968
  },
2927
2969
  {
2928
- "file": "packages/types/src/lib/getWordsInRows.ts",
2929
- "hash": "2761596368339884188"
2970
+ "file": "packages/word-definitions/src/languages/index.ts",
2971
+ "hash": "632033483089466746"
2930
2972
  },
2931
2973
  {
2932
- "file": "packages/types/src/lib/index.ts",
2933
- "hash": "2022799956333309276"
2974
+ "file": "packages/word-definitions/src/languages/persian.ts",
2975
+ "hash": "13467555341365476711"
2934
2976
  },
2935
2977
  {
2936
- "file": "packages/types/src/lib/isSameBoardWord.ts",
2937
- "hash": "18116011051940038222"
2978
+ "file": "packages/word-definitions/src/languages/polish.ts",
2979
+ "hash": "11430864907736135187"
2938
2980
  },
2939
2981
  {
2940
- "file": "packages/types/src/lib/toBoardWord.ts",
2941
- "hash": "2715682257448468663"
2982
+ "file": "packages/word-definitions/src/languages/romanian.ts",
2983
+ "hash": "7978139755480451257"
2942
2984
  },
2943
2985
  {
2944
- "file": "packages/types/src/lib/transpose.ts",
2945
- "hash": "17502626176706084094"
2986
+ "file": "packages/word-definitions/src/languages/spanish.ts",
2987
+ "hash": "1141030879998142551"
2946
2988
  },
2947
2989
  {
2948
- "file": "packages/types/src/type-guards/index.ts",
2949
- "hash": "1905867585366548660"
2990
+ "file": "packages/word-definitions/src/languages/turkish.ts",
2991
+ "hash": "9080639594070141138"
2950
2992
  },
2951
2993
  {
2952
- "file": "packages/types/src/type-guards/isBingo.ts",
2953
- "hash": "5713154189700125193"
2994
+ "file": "packages/word-definitions/src/lib/index.ts",
2995
+ "hash": "6323235562661083405"
2954
2996
  },
2955
2997
  {
2956
- "file": "packages/types/src/type-guards/isBoardJson.test.ts",
2957
- "hash": "12769737663292885979"
2998
+ "file": "packages/word-definitions/src/lib/normalizeDefinition.ts",
2999
+ "hash": "17425560022581103973"
2958
3000
  },
2959
3001
  {
2960
- "file": "packages/types/src/type-guards/isBoardJson.ts",
2961
- "hash": "2348480616741108544"
3002
+ "file": "packages/word-definitions/src/lib/request.ts",
3003
+ "hash": "964101176544737231"
2962
3004
  },
2963
3005
  {
2964
- "file": "packages/types/src/type-guards/isCellJson.ts",
2965
- "hash": "16134937159323536072"
3006
+ "file": "packages/word-definitions/src/lib/unique.ts",
3007
+ "hash": "4387364396041720073"
2966
3008
  },
2967
3009
  {
2968
- "file": "packages/types/src/type-guards/isError.ts",
2969
- "hash": "5878313337491303689"
3010
+ "file": "packages/word-definitions/src/parse.test.ts",
3011
+ "hash": "8569066879643926718"
2970
3012
  },
2971
3013
  {
2972
- "file": "packages/types/src/type-guards/isGame.ts",
2973
- "hash": "3354569224852368381"
3014
+ "file": "packages/word-definitions/src/parse.ts",
3015
+ "hash": "1813663728859205889"
2974
3016
  },
2975
3017
  {
2976
- "file": "packages/types/src/type-guards/isLocale.ts",
2977
- "hash": "1464440797325155484"
3018
+ "file": "packages/word-definitions/src/types.ts",
3019
+ "hash": "8293904135449925504"
2978
3020
  },
2979
3021
  {
2980
- "file": "packages/types/src/type-guards/isMultiplierBingo.ts",
2981
- "hash": "14732259220776403774"
2982
- },
3022
+ "file": "packages/word-definitions/tsconfig.json",
3023
+ "hash": "14393573143758511966"
3024
+ }
3025
+ ],
3026
+ "@scrabble-solver/constants": [
2983
3027
  {
2984
- "file": "packages/types/src/type-guards/isObject.ts",
2985
- "hash": "12200389762297734518"
3028
+ "file": "packages/constants/README.md",
3029
+ "hash": "15117377322618686888"
2986
3030
  },
2987
3031
  {
2988
- "file": "packages/types/src/type-guards/isScoreBingo.ts",
2989
- "hash": "14339416360566062353"
3032
+ "file": "packages/constants/package.json",
3033
+ "hash": "2731456536555755993"
2990
3034
  },
2991
3035
  {
2992
- "file": "packages/types/src/type-guards/isTileJson.ts",
2993
- "hash": "3449719558739618084"
3036
+ "file": "packages/constants/src/index.ts",
3037
+ "hash": "2132305088706286749"
2994
3038
  },
2995
3039
  {
2996
- "file": "packages/types/tsconfig.json",
3040
+ "file": "packages/constants/tsconfig.json",
2997
3041
  "hash": "14393573143758511966"
2998
3042
  }
2999
3043
  ],
3000
- "@scrabble-solver/solver": [
3001
- {
3002
- "file": "packages/solver/README.md",
3003
- "hash": "16792748008091431053"
3004
- },
3044
+ "@scrabble-solver/logger": [
3005
3045
  {
3006
- "file": "packages/solver/benchmarks/index.ts",
3007
- "hash": "14789261453090652608"
3046
+ "file": "packages/logger/README.md",
3047
+ "hash": "14161914294850172351"
3008
3048
  },
3009
3049
  {
3010
- "file": "packages/solver/benchmarks/lib.ts",
3011
- "hash": "18074034230022269603"
3050
+ "file": "packages/logger/package.json",
3051
+ "hash": "9033520643779973498"
3012
3052
  },
3013
3053
  {
3014
- "file": "packages/solver/benchmarks/renderChart.ts",
3015
- "hash": "15994103137482312366"
3054
+ "file": "packages/logger/scripts/export-csv.ts",
3055
+ "hash": "5448648107884125354"
3016
3056
  },
3017
3057
  {
3018
- "file": "packages/solver/benchmarks/results/chart.svg",
3019
- "hash": "16382274360395559218"
3058
+ "file": "packages/logger/scripts/readEvents.ts",
3059
+ "hash": "11238194725488445598"
3020
3060
  },
3021
3061
  {
3022
- "file": "packages/solver/benchmarks/runBenchmarks.ts",
3023
- "hash": "10247467763253649567"
3062
+ "file": "packages/logger/scripts/tsconfig.json",
3063
+ "hash": "12706915436272074008"
3024
3064
  },
3025
3065
  {
3026
- "file": "packages/solver/benchmarks/scenarios.ts",
3027
- "hash": "5574802733879787909"
3066
+ "file": "packages/logger/src/constants.ts",
3067
+ "hash": "4731805253037646983"
3028
3068
  },
3029
3069
  {
3030
- "file": "packages/solver/benchmarks/types.ts",
3031
- "hash": "3907848021848470505"
3070
+ "file": "packages/logger/src/describeError.test.ts",
3071
+ "hash": "7422612791369373312"
3032
3072
  },
3033
3073
  {
3034
- "file": "packages/solver/benchmarks/updateReadme.ts",
3035
- "hash": "10419931668096319955"
3074
+ "file": "packages/logger/src/describeError.ts",
3075
+ "hash": "18374250696318558955"
3036
3076
  },
3037
3077
  {
3038
- "file": "packages/solver/package.json",
3039
- "hash": "7653316768342400273",
3040
- "deps": [
3041
- "@scrabble-solver/configs",
3042
- "@scrabble-solver/constants",
3043
- "@scrabble-solver/dictionaries",
3044
- "npm:@kamilmielnik/gaddag@2.0.0",
3045
- "@scrabble-solver/types"
3046
- ]
3078
+ "file": "packages/logger/src/events.ts",
3079
+ "hash": "2243066833203502788"
3047
3080
  },
3048
3081
  {
3049
- "file": "packages/solver/src/MoveGenerator.test.ts",
3050
- "hash": "15452379511681303925"
3082
+ "file": "packages/logger/src/formatCsvRow.test.ts",
3083
+ "hash": "2192505737388879856"
3051
3084
  },
3052
3085
  {
3053
- "file": "packages/solver/src/MoveGenerator.ts",
3054
- "hash": "6412866049897267609"
3086
+ "file": "packages/logger/src/formatCsvRow.ts",
3087
+ "hash": "17607093186898608366"
3055
3088
  },
3056
3089
  {
3057
- "file": "packages/solver/src/ReferenceSolver.ts",
3058
- "hash": "11090417647170047696"
3090
+ "file": "packages/logger/src/index.ts",
3091
+ "hash": "1847815873403738133"
3059
3092
  },
3060
3093
  {
3061
- "file": "packages/solver/src/index.ts",
3062
- "hash": "16059031500551576732"
3094
+ "file": "packages/logger/src/logError.ts",
3095
+ "hash": "1181073503993025343"
3063
3096
  },
3064
3097
  {
3065
- "file": "packages/solver/src/solve.test.ts",
3066
- "hash": "9408692374365636486"
3098
+ "file": "packages/logger/src/logEvent.test.ts",
3099
+ "hash": "12108319419505050616"
3067
3100
  },
3068
3101
  {
3069
- "file": "packages/solver/src/solve.ts",
3070
- "hash": "3102663659329392320"
3102
+ "file": "packages/logger/src/logEvent.ts",
3103
+ "hash": "753974904166916719"
3071
3104
  },
3072
3105
  {
3073
- "file": "packages/solver/tsconfig.json",
3074
- "hash": "6201931798302628133"
3106
+ "file": "packages/logger/tsconfig.json",
3107
+ "hash": "14393573143758511966"
3075
3108
  }
3076
3109
  ]
3077
3110
  }
3078
3111
  },
3079
- "externalNodesHash": "3279929502636171989"
3112
+ "externalNodesHash": "12688605494044727151"
3080
3113
  }