scrabble-solver 2.16.1 → 2.16.2

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 (118) hide show
  1. package/.nx/workspace-data/d/server-process.json +2 -2
  2. package/.nx/workspace-data/file-map.json +437 -393
  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 +110 -90
  7. package/.nx/workspace-data/parsed-lock-file.nodes.json +96 -60
  8. package/.nx/workspace-data/project-graph.json +220 -162
  9. package/README.md +1 -2
  10. package/bump-version.js +28 -7
  11. package/bun.lock +55 -41
  12. package/cypress/e2e/features/198-highlight-unreachable-cells.ts +101 -0
  13. package/cypress/e2e/features/91-hover-remaining-tile-highlights.ts +90 -0
  14. package/cypress/e2e/features.spec.cy.ts +2 -0
  15. package/lerna.json +1 -1
  16. package/package.json +4 -4
  17. package/packages/configs/package.json +3 -3
  18. package/packages/constants/package.json +1 -1
  19. package/packages/dictionaries/package.json +4 -4
  20. package/packages/logger/package.json +1 -1
  21. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  22. package/packages/scrabble-solver/.next/build-manifest.json +6 -6
  23. package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
  24. package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
  25. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  26. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  27. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  28. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  29. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  30. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  31. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  32. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  33. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  34. package/packages/scrabble-solver/.next/dev/build-manifest.json +31 -0
  35. package/packages/scrabble-solver/.next/dev/cache/webpack/client-development/0.pack.gz +0 -0
  36. package/packages/scrabble-solver/.next/dev/cache/webpack/client-development/index.pack.gz +0 -0
  37. package/packages/scrabble-solver/.next/dev/react-loadable-manifest.json +1 -0
  38. package/packages/scrabble-solver/.next/dev/server/middleware-build-manifest.js +31 -0
  39. package/packages/scrabble-solver/.next/dev/server/middleware-react-loadable-manifest.js +1 -0
  40. package/packages/scrabble-solver/.next/dev/server/next-font-manifest.js +1 -0
  41. package/packages/scrabble-solver/.next/dev/server/next-font-manifest.json +1 -0
  42. package/packages/scrabble-solver/.next/dev/server/pages/_app.js +4082 -0
  43. package/packages/scrabble-solver/.next/dev/server/pages/_error.js +4126 -0
  44. package/packages/scrabble-solver/.next/dev/server/pages/index.js +4804 -0
  45. package/packages/scrabble-solver/.next/dev/server/pages-manifest.json +6 -0
  46. package/packages/scrabble-solver/.next/dev/server/webpack-runtime.js +231 -0
  47. package/packages/scrabble-solver/.next/dev/static/chunks/pages/_app.js +5131 -0
  48. package/packages/scrabble-solver/.next/dev/static/chunks/webpack.js +1238 -0
  49. package/packages/scrabble-solver/.next/dev/static/development/_buildManifest.js +1 -0
  50. package/packages/scrabble-solver/.next/dev/static/development/_ssgManifest.js +1 -0
  51. package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
  52. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  53. package/packages/scrabble-solver/.next/server/chunks/712.js +1 -1
  54. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  55. package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
  56. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  57. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  58. package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
  59. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  60. package/packages/scrabble-solver/.next/server/pages/not-found.html +1 -1
  61. package/packages/scrabble-solver/.next/static/{-2mw8IrOEpCcsQa6oPYhR → a98wTJsZR6CASwFn19QFv}/_buildManifest.js +1 -1
  62. package/packages/scrabble-solver/.next/static/chunks/pages/_app-31e560b7b14739d6.js +7 -0
  63. package/packages/scrabble-solver/.next/static/chunks/pages/index-35f70f1627836521.js +1 -0
  64. package/packages/scrabble-solver/.next/static/css/0af35adb4bab56f0.css +2 -0
  65. package/packages/scrabble-solver/.next/static/css/a78e04fe95452380.css +1 -0
  66. package/packages/scrabble-solver/.next/trace +21 -21
  67. package/packages/scrabble-solver/.next/trace-build +1 -1
  68. package/packages/scrabble-solver/package.json +8 -8
  69. package/packages/scrabble-solver/public/service-worker.js +1 -1
  70. package/packages/scrabble-solver/src/components/Board/Board.tsx +3 -1
  71. package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +3 -0
  72. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +6 -0
  73. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +11 -2
  74. package/packages/scrabble-solver/src/components/Board/lib.ts +83 -2
  75. package/packages/scrabble-solver/src/components/Board/selectors.ts +20 -1
  76. package/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.tsx +4 -1
  77. package/packages/scrabble-solver/src/components/Tile/TilePure.tsx +20 -18
  78. package/packages/scrabble-solver/src/i18n/languages/english.json +3 -0
  79. package/packages/scrabble-solver/src/i18n/languages/french.json +3 -0
  80. package/packages/scrabble-solver/src/i18n/languages/german.json +3 -0
  81. package/packages/scrabble-solver/src/i18n/languages/persian.json +3 -0
  82. package/packages/scrabble-solver/src/i18n/languages/polish.json +3 -0
  83. package/packages/scrabble-solver/src/i18n/languages/romanian.json +3 -0
  84. package/packages/scrabble-solver/src/i18n/languages/spanish.json +3 -0
  85. package/packages/scrabble-solver/src/i18n/languages/turkish.json +3 -0
  86. package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.module.scss +4 -0
  87. package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.tsx +35 -2
  88. package/packages/scrabble-solver/src/modals/SettingsModal/SettingsModal.tsx +8 -0
  89. package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +4 -4
  90. package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/HighlightUnreachableCellsSetting.module.scss +12 -0
  91. package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/HighlightUnreachableCellsSetting.tsx +51 -0
  92. package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/index.ts +1 -0
  93. package/packages/scrabble-solver/src/modals/SettingsModal/components/index.ts +1 -0
  94. package/packages/scrabble-solver/src/state/hoveredTile/index.ts +4 -0
  95. package/packages/scrabble-solver/src/state/hoveredTile/initialState.ts +5 -0
  96. package/packages/scrabble-solver/src/state/hoveredTile/selectors.ts +3 -0
  97. package/packages/scrabble-solver/src/state/hoveredTile/slice.ts +16 -0
  98. package/packages/scrabble-solver/src/state/hoveredTile/types.ts +3 -0
  99. package/packages/scrabble-solver/src/state/index.ts +1 -0
  100. package/packages/scrabble-solver/src/state/localStorage.ts +1 -0
  101. package/packages/scrabble-solver/src/state/settings/initialState.ts +1 -0
  102. package/packages/scrabble-solver/src/state/settings/selectors.ts +5 -0
  103. package/packages/scrabble-solver/src/state/settings/slice.ts +5 -0
  104. package/packages/scrabble-solver/src/state/settings/types.ts +1 -0
  105. package/packages/scrabble-solver/src/state/store.ts +2 -0
  106. package/packages/scrabble-solver/src/state/types.ts +2 -0
  107. package/packages/scrabble-solver/src/types/index.ts +3 -0
  108. package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
  109. package/packages/solver/package.json +5 -5
  110. package/packages/types/package.json +2 -2
  111. package/packages/word-definitions/package.json +2 -2
  112. package/packages/word-lists/package.json +2 -2
  113. package/todo.txt +0 -4
  114. package/packages/scrabble-solver/.next/static/chunks/pages/_app-9c9aaea7b6881765.js +0 -7
  115. package/packages/scrabble-solver/.next/static/chunks/pages/index-e9ea63e97865edcf.js +0 -1
  116. package/packages/scrabble-solver/.next/static/css/78726ae7cf7a5497.css +0 -2
  117. package/packages/scrabble-solver/.next/static/css/addf6fd4f75742d0.css +0 -1
  118. /package/packages/scrabble-solver/.next/static/{-2mw8IrOEpCcsQa6oPYhR → a98wTJsZR6CASwFn19QFv}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -84,7 +84,7 @@ Some of the word lists below are sourced from the companion repository [kamilmie
84
84
  | 🇵🇱 Polish | [💾](https://sjp.pl/slownik/growy/) [SJP.PL](https://sjp.pl/slownik/dp.phtml) | [SJP.PL](https://sjp.pl) | współposiądźmyż (1512) |
85
85
  | 🇷🇴 Romanian | [💾](https://dexonline.ro/static/download/scrabble/loc-flexiuni-5.0.zip) [LOC 5](https://dexonline.ro/scrabble) | [dexonline](https://dexonline.ro/) | luxemburghezele (1944) |
86
86
  | 🇪🇸 Spanish | [💾](https://github.com/kamilmielnik/scrabble-dictionaries/blob/master/spanish/file-2017.txt) [FILE 2017](https://www.facebook.com/Escrablistica) | [Diccionarios.com](https://www.diccionarios.com/) | flexibilizabais (1323) |
87
- | 🇹🇷 Turkish | [💾](https://github.com/kamilmielnik/scrabble-dictionaries/blob/master/turkish/kelimelik.txt) Turkish | [Türk Dil Kurumu Sözlükleri](https://sozluk.gov.tr/) | peygamberdevesi (1323) |
87
+ | 🇹🇷 Turkish | [💾](https://github.com/kamilmielnik/scrabble-dictionaries/blob/master/turkish/kelimelik.txt) Kelimelik | [Türk Dil Kurumu Sözlükleri](https://sozluk.gov.tr/) | peygamberdevesi (1323) |
88
88
 
89
89
  ## Run
90
90
 
@@ -189,7 +189,6 @@ bun run --filter @scrabble-solver/word-lists build
189
189
  - [Bun](https://bun.sh/docs)
190
190
  - [Node.js](https://nodejs.org/)
191
191
  - [Next.js](https://nextjs.org/)
192
- - [Express](https://expressjs.com/)
193
192
  - [Workbox](https://developer.chrome.com/docs/workbox/)
194
193
  - [React](https://reactjs.org/)
195
194
  - [Redux](https://redux.js.org/)
package/bump-version.js CHANGED
@@ -4,7 +4,10 @@
4
4
  * the "dependencies" from underlying packages/ would have been installed and any package scripts
5
5
  * that work on subpackages would not work - specifically: bun start.
6
6
  *
7
- * This script exists to ensure that the dependency version is bumped during the release.
7
+ * This script ensures the dependency version in the root package.json and the workspace metadata
8
+ * in bun.lock (each package's "version" field and every "@scrabble-solver/*" inter-package
9
+ * dependency) are synced to the current app version after `lerna version --force-publish` has
10
+ * bumped the per-package package.json files in lockstep.
8
11
  */
9
12
 
10
13
  const fs = require('fs');
@@ -14,14 +17,32 @@ const getCurrentAppVersion = () => {
14
17
  return packageJson.version;
15
18
  };
16
19
 
17
- const updateDependencyVersion = (filename, dependency, version) => {
18
- const packageJsonString = fs.readFileSync(filename, 'utf-8');
19
- const replacement = `"${dependency}": "^${version}",`;
20
- const replaced = packageJsonString.replace(new RegExp(`"${dependency}": ".*",`), replacement);
20
+ const updateRootPackageJson = (filename, version) => {
21
+ const content = fs.readFileSync(filename, 'utf-8');
22
+ const replaced = content.replace(
23
+ /("@scrabble-solver\/scrabble-solver":\s*)"[^"]+"/,
24
+ `$1"^${version}"`,
25
+ );
21
26
 
22
27
  fs.writeFileSync(filename, replaced);
23
28
  };
24
29
 
30
+ const updateBunLock = (filename, version) => {
31
+ let content = fs.readFileSync(filename, 'utf-8');
32
+
33
+ content = content.replace(
34
+ /("@scrabble-solver\/[^"]+":\s*)"\^[^"]+"/g,
35
+ `$1"^${version}"`,
36
+ );
37
+
38
+ content = content.replace(
39
+ /("version":\s*)"[^"]+"/g,
40
+ `$1"${version}"`,
41
+ );
42
+
43
+ fs.writeFileSync(filename, content);
44
+ };
45
+
25
46
  const currentAppVersion = getCurrentAppVersion();
26
- updateDependencyVersion('package.json', '@scrabble-solver/scrabble-solver', currentAppVersion);
27
- updateDependencyVersion('bun.lock', '@scrabble-solver/scrabble-solver', currentAppVersion);
47
+ updateRootPackageJson('package.json', currentAppVersion);
48
+ updateBunLock('bun.lock', currentAppVersion);
package/bun.lock CHANGED
@@ -5,7 +5,7 @@
5
5
  "": {
6
6
  "name": "scrabble-solver",
7
7
  "dependencies": {
8
- "@scrabble-solver/scrabble-solver": "^2.16.1",
8
+ "@scrabble-solver/scrabble-solver": "^2.16.2",
9
9
  "concurrently": "^9.2.1",
10
10
  "open-cli": "^9.0.0",
11
11
  "wait-on": "^9.0.5",
@@ -13,11 +13,11 @@
13
13
  "devDependencies": {
14
14
  "@babel/core": "^7.29.0",
15
15
  "@babel/plugin-proposal-class-properties": "^7.18.6",
16
- "@babel/preset-env": "^7.29.2",
16
+ "@babel/preset-env": "^7.29.3",
17
17
  "@testing-library/cypress": "^10.1.3",
18
18
  "@types/bun": "^1.3.13",
19
19
  "@types/node": "^25.6.0",
20
- "@typescript/native-preview": "^7.0.0-dev.20260430.1",
20
+ "@typescript/native-preview": "^7.0.0-dev.20260501.1",
21
21
  "cypress": "^15.14.2",
22
22
  "cypress-real-events": "^1.15.0",
23
23
  "eslint-import-resolver-typescript": "^4.4.4",
@@ -36,51 +36,51 @@
36
36
  },
37
37
  "packages/configs": {
38
38
  "name": "@scrabble-solver/configs",
39
- "version": "2.16.0",
39
+ "version": "2.16.2",
40
40
  "dependencies": {
41
- "@scrabble-solver/constants": "^2.16.0",
42
- "@scrabble-solver/types": "^2.16.0",
41
+ "@scrabble-solver/constants": "^2.16.2",
42
+ "@scrabble-solver/types": "^2.16.2",
43
43
  },
44
44
  },
45
45
  "packages/constants": {
46
46
  "name": "@scrabble-solver/constants",
47
- "version": "2.16.0",
47
+ "version": "2.16.2",
48
48
  },
49
49
  "packages/dictionaries": {
50
50
  "name": "@scrabble-solver/dictionaries",
51
- "version": "2.16.0",
51
+ "version": "2.16.2",
52
52
  "bin": {
53
53
  "remove-dictionaries": "./bin/remove-dictionaries.js",
54
54
  "update-dictionaries": "./bin/update-dictionaries.js",
55
55
  },
56
56
  "dependencies": {
57
57
  "@kamilmielnik/trie": "^5.0.0",
58
- "@scrabble-solver/logger": "^2.16.0",
59
- "@scrabble-solver/types": "^2.16.0",
60
- "@scrabble-solver/word-lists": "^2.16.0",
58
+ "@scrabble-solver/logger": "^2.16.2",
59
+ "@scrabble-solver/types": "^2.16.2",
60
+ "@scrabble-solver/word-lists": "^2.16.2",
61
61
  },
62
62
  },
63
63
  "packages/logger": {
64
64
  "name": "@scrabble-solver/logger",
65
- "version": "2.16.0",
65
+ "version": "2.16.2",
66
66
  "dependencies": {
67
67
  "winston": "^3.19.0",
68
68
  },
69
69
  },
70
70
  "packages/scrabble-solver": {
71
71
  "name": "@scrabble-solver/scrabble-solver",
72
- "version": "2.16.0",
72
+ "version": "2.16.2",
73
73
  "dependencies": {
74
74
  "@floating-ui/react": "^0.27.19",
75
75
  "@kamilmielnik/trie": "^5.0.0",
76
76
  "@reduxjs/toolkit": "^2.11.2",
77
- "@scrabble-solver/configs": "^2.16.0",
78
- "@scrabble-solver/constants": "^2.16.0",
79
- "@scrabble-solver/dictionaries": "^2.16.0",
80
- "@scrabble-solver/logger": "^2.16.0",
81
- "@scrabble-solver/solver": "^2.16.0",
82
- "@scrabble-solver/types": "^2.16.0",
83
- "@scrabble-solver/word-definitions": "^2.16.0",
77
+ "@scrabble-solver/configs": "^2.16.2",
78
+ "@scrabble-solver/constants": "^2.16.2",
79
+ "@scrabble-solver/dictionaries": "^2.16.2",
80
+ "@scrabble-solver/logger": "^2.16.2",
81
+ "@scrabble-solver/solver": "^2.16.2",
82
+ "@scrabble-solver/types": "^2.16.2",
83
+ "@scrabble-solver/word-definitions": "^2.16.2",
84
84
  "classnames": "^2.5.1",
85
85
  "env-cmd": "^11.0.0",
86
86
  "include-media": "^2.0.0",
@@ -118,29 +118,29 @@
118
118
  },
119
119
  "packages/solver": {
120
120
  "name": "@scrabble-solver/solver",
121
- "version": "2.16.0",
121
+ "version": "2.16.2",
122
122
  "dependencies": {
123
123
  "@kamilmielnik/trie": "^5.0.0",
124
- "@scrabble-solver/types": "^2.16.0",
124
+ "@scrabble-solver/types": "^2.16.2",
125
125
  },
126
126
  "devDependencies": {
127
- "@scrabble-solver/configs": "^2.16.0",
128
- "@scrabble-solver/constants": "^2.16.0",
129
- "@scrabble-solver/dictionaries": "^2.16.0",
127
+ "@scrabble-solver/configs": "^2.16.2",
128
+ "@scrabble-solver/constants": "^2.16.2",
129
+ "@scrabble-solver/dictionaries": "^2.16.2",
130
130
  },
131
131
  },
132
132
  "packages/types": {
133
133
  "name": "@scrabble-solver/types",
134
- "version": "2.16.0",
134
+ "version": "2.16.2",
135
135
  "dependencies": {
136
- "@scrabble-solver/constants": "^2.16.0",
136
+ "@scrabble-solver/constants": "^2.16.2",
137
137
  },
138
138
  },
139
139
  "packages/word-definitions": {
140
140
  "name": "@scrabble-solver/word-definitions",
141
- "version": "2.16.0",
141
+ "version": "2.16.2",
142
142
  "dependencies": {
143
- "@scrabble-solver/types": "^2.16.0",
143
+ "@scrabble-solver/types": "^2.16.2",
144
144
  "cheerio": "^1.2.0",
145
145
  "follow-redirects": "^1.16.0",
146
146
  "striptags": "^3.2.0",
@@ -152,9 +152,9 @@
152
152
  },
153
153
  "packages/word-lists": {
154
154
  "name": "@scrabble-solver/word-lists",
155
- "version": "2.16.0",
155
+ "version": "2.16.2",
156
156
  "dependencies": {
157
- "@scrabble-solver/types": "^2.16.0",
157
+ "@scrabble-solver/types": "^2.16.2",
158
158
  "cheerio": "^1.2.0",
159
159
  "follow-redirects": "^1.16.0",
160
160
  "transliteration": "^2.6.1",
@@ -171,7 +171,7 @@
171
171
 
172
172
  "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="],
173
173
 
174
- "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
174
+ "@babel/compat-data": ["@babel/compat-data@7.29.3", "", {}, "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg=="],
175
175
 
176
176
  "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="],
177
177
 
@@ -223,6 +223,8 @@
223
223
 
224
224
  "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ["@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA=="],
225
225
 
226
+ "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": ["@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg=="],
227
+
226
228
  "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw=="],
227
229
 
228
230
  "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ["@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g=="],
@@ -355,7 +357,7 @@
355
357
 
356
358
  "@babel/plugin-transform-unicode-sets-regex": ["@babel/plugin-transform-unicode-sets-regex@7.28.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q=="],
357
359
 
358
- "@babel/preset-env": ["@babel/preset-env@7.29.2", "", { "dependencies": { "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.28.6", "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-class-static-block": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.15", "babel-plugin-polyfill-corejs3": "^0.14.0", "babel-plugin-polyfill-regenerator": "^0.6.6", "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw=="],
360
+ "@babel/preset-env": ["@babel/preset-env@7.29.3", "", { "dependencies": { "@babel/compat-data": "^7.29.3", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.28.6", "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-class-static-block": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.15", "babel-plugin-polyfill-corejs3": "^0.14.0", "babel-plugin-polyfill-regenerator": "^0.6.6", "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ySZypNLAIH1ClygLDQzVMoGQRViATnkHkYYV6TcNDz+8+jwZCdsguGvsb3EY5d9wyWyhmF1iSuFM0Yh5XPnqSA=="],
359
361
 
360
362
  "@babel/preset-modules": ["@babel/preset-modules@0.1.6-no-external-plugins", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA=="],
361
363
 
@@ -947,21 +949,21 @@
947
949
 
948
950
  "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="],
949
951
 
950
- "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260430.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260430.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260430.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260430.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260430.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260430.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260430.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260430.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-HHk3tPpzPKqHY4AHMxGK6i960Dd1kIvnSnT3mzD1hNO/sUVG2YdWvWBIActGkRnKS94AZBpekOr1bQP7O2OwIg=="],
952
+ "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260501.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260501.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260501.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260501.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260501.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260501.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260501.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260501.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-skD0ig8IzPwSY1L8VmNgfaxkfT8ImBwKeIypfZyJA+zHzWvroRKbRbT2GryOSREl22ZqLOuDfcq+7BdA0rjF2Q=="],
951
953
 
952
- "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260430.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-1Rk5JoMlmlF4GzeNxQmpaZSSPFa056DCrGLjhXwVIqRf8+pGNKKxyD2ugGSyOeLShqYb1XUoE9LhsAhdh1xgSA=="],
954
+ "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260501.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-OIYsqKouI2U7W5Q6VgUz7+t9FpIXNFk30xSUG7gGlN1bdDniWfW7t5n6mzEtiHUVTxRgJQBjXGAlhVa6A9h+pg=="],
953
955
 
954
- "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260430.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-wjXJtELfI0QIYxGCqqKMR3DonPUlMP4aWOYRPiN5ylDtdV+OqCC16zvH7C+No7xvlf8dDxlV1ZTyuRCWL6CQmw=="],
956
+ "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260501.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-hQ5UsEyOz3ErQE3sKKHMCfJJGQenD0DSCi2ob+ywElXirG2NyFNA8cmx1g+MIm1lpQeEQslWZhe9EGwo9DJAbg=="],
955
957
 
956
- "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260430.1", "", { "os": "linux", "cpu": "arm" }, "sha512-3eqYkqy1XpbIJC1XkGbkwAvTtSCw6dSjYzJaw9bvow4fS1totTFZP/2K9ecXQ3gIZaPS4Ome/SpkZHl1cy9eZA=="],
958
+ "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260501.1", "", { "os": "linux", "cpu": "arm" }, "sha512-agkTW/t85XSJKWGcXdUV9ZmSi3Akh3POK+HhWehigEJR3W/jebiO9njifETfoUF6cpoYkFn+CZvfAJ00IWGZfA=="],
957
959
 
958
- "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260430.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-PeCFDB1glivpkqqKsQJ1RrM4f5B1yXzXFF+eKwgEZ+evcQ3N+BgeR7BpuRhOpHU9ixJchKjU1bXgcHOAaM+Rkw=="],
960
+ "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260501.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-fbaFKE1UvtsQ6i1eJjBiNbglR9ywXrW/CH1sqYPEtr0WgTUpixbE6inQOXjB0jlEA9RzQq+QMzDyaCDmU82Dkw=="],
959
961
 
960
- "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260430.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Eg7nbRV57ayq0Pjuott/36UbQlVlpz2YRVLM5h8RyXx6SwvgrdYxNv/1zULLB0UlWdyKkK3bXILmR8YmNvbl+g=="],
962
+ "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260501.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Sd8D+S88P7K0IH1U+a8pK20ZD+GM54t48/GLw9ebSklfCdt0iKdHgprjKIcl54C3SocGCcvEBPr1thwtTO9Vtg=="],
961
963
 
962
- "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260430.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-0LAjufJKUZnHmp0bxlndjphDQlIeUXA0czZCrKENtKySeGMXrM9PAFtSx94ldWVXDTZ9ZP1r+FxbIvP9pRORzA=="],
964
+ "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260501.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-07sJNDnU7KHfo/trv/cBXpgFBELDYJAsTx5kNvBckSQUxbX+p/b9oQ3eFbtK3zDP4EEKdeiD9EelIy22atBnzA=="],
963
965
 
964
- "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260430.1", "", { "os": "win32", "cpu": "x64" }, "sha512-FvLWX7d3b/IhL0656tnjep7dOMnI7CPrg+5oI1MKIY74qgvR+8VRo6aGj0IRCwtAJeklpxBpljEcIGuS5Yc/pQ=="],
966
+ "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260501.1", "", { "os": "win32", "cpu": "x64" }, "sha512-8rzd/eQZyBuR+IRiPnIQrCwSuXIGBFiL8LsUMFqQt2WAUlQ0gGWBlLJHUVU4YNlju9QROjNHUGpJ52XGZbFv0Q=="],
965
967
 
966
968
  "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="],
967
969
 
@@ -2785,6 +2787,8 @@
2785
2787
 
2786
2788
  "@apideck/better-ajv-errors/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="],
2787
2789
 
2790
+ "@babel/helper-compilation-targets/@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
2791
+
2788
2792
  "@babel/helper-define-polyfill-provider/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": "bin/resolve" }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="],
2789
2793
 
2790
2794
  "@commander-js/extra-typings/commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="],
@@ -2879,6 +2883,8 @@
2879
2883
 
2880
2884
  "@svgr/plugin-svgo/cosmiconfig": ["cosmiconfig@8.3.6", "", { "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "peerDependencies": { "typescript": ">=4.9.5" } }, "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA=="],
2881
2885
 
2886
+ "@svgr/webpack/@babel/preset-env": ["@babel/preset-env@7.29.2", "", { "dependencies": { "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.28.6", "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-class-static-block": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.15", "babel-plugin-polyfill-corejs3": "^0.14.0", "babel-plugin-polyfill-regenerator": "^0.6.6", "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw=="],
2887
+
2882
2888
  "@swc/helpers/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
2883
2889
 
2884
2890
  "@tufjs/models/minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="],
@@ -2897,6 +2903,8 @@
2897
2903
 
2898
2904
  "axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="],
2899
2905
 
2906
+ "babel-plugin-polyfill-corejs2/@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
2907
+
2900
2908
  "bin-links/cmd-shim": ["cmd-shim@7.0.0", "", {}, "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw=="],
2901
2909
 
2902
2910
  "bin-links/read-cmd-shim": ["read-cmd-shim@5.0.0", "", {}, "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw=="],
@@ -3321,6 +3329,8 @@
3321
3329
 
3322
3330
  "widest-line/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
3323
3331
 
3332
+ "workbox-build/@babel/preset-env": ["@babel/preset-env@7.29.2", "", { "dependencies": { "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.28.6", "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", "@babel/plugin-transform-class-properties": "^7.28.6", "@babel/plugin-transform-class-static-block": "^7.28.6", "@babel/plugin-transform-classes": "^7.28.6", "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.28.6", "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.15", "babel-plugin-polyfill-corejs3": "^0.14.0", "babel-plugin-polyfill-regenerator": "^0.6.6", "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw=="],
3333
+
3324
3334
  "workbox-build/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="],
3325
3335
 
3326
3336
  "workbox-build/glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": "dist/esm/bin.mjs" }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="],
@@ -3379,6 +3389,8 @@
3379
3389
 
3380
3390
  "@svgr/plugin-svgo/cosmiconfig/path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
3381
3391
 
3392
+ "@svgr/webpack/@babel/preset-env/@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
3393
+
3382
3394
  "@tufjs/models/minimatch/brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="],
3383
3395
 
3384
3396
  "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ=="],
@@ -3665,6 +3677,8 @@
3665
3677
 
3666
3678
  "widest-line/string-width/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
3667
3679
 
3680
+ "workbox-build/@babel/preset-env/@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="],
3681
+
3668
3682
  "workbox-build/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
3669
3683
 
3670
3684
  "workbox-build/glob/minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="],
@@ -0,0 +1,101 @@
1
+ import {
2
+ closeModal,
3
+ getBoardTile,
4
+ getOpenModal,
5
+ getSettingOption,
6
+ getSettingsButton,
7
+ typeBoard,
8
+ typeRack,
9
+ unregisterServiceWorkers,
10
+ visitIndex,
11
+ } from '../../support';
12
+
13
+ /*
14
+ * @see https://github.com/kamilmielnik/scrabble-solver/issues/198
15
+ */
16
+ describe('#198 - Highlight unreachable cells', () => {
17
+ beforeEach(async () => {
18
+ await unregisterServiceWorkers();
19
+ });
20
+
21
+ afterEach(() => {
22
+ cy.clearLocalStorage();
23
+ });
24
+
25
+ it('has no effect when the rack is empty', () => {
26
+ visitIndex();
27
+ typeBoard('cat', 'horizontal', 7, 7);
28
+ setHighlightUnreachableCells('On');
29
+
30
+ expectReachable(0, 0);
31
+ expectReachable(14, 14);
32
+ expectReachable(7, 7);
33
+ expectReachable(7, 8);
34
+ });
35
+
36
+ it('has no effect when the setting is off', () => {
37
+ visitIndex();
38
+ typeRack('abcdefg');
39
+
40
+ expectReachable(0, 0);
41
+ expectReachable(14, 14);
42
+ expectReachable(7, 7);
43
+ });
44
+
45
+ it('dims unreachable cells on an empty board when rack has tiles', () => {
46
+ visitIndex();
47
+ typeRack('abc');
48
+ setHighlightUnreachableCells('On');
49
+
50
+ expectReachable(7, 7);
51
+ expectReachable(5, 7);
52
+ expectReachable(7, 5);
53
+
54
+ expectUnreachable(0, 0);
55
+ expectUnreachable(14, 14);
56
+ expectUnreachable(4, 7);
57
+ expectUnreachable(6, 6);
58
+ });
59
+
60
+ it('dims cells far from any placed tile or rack reach', () => {
61
+ visitIndex();
62
+ typeBoard('cat', 'horizontal', 7, 7);
63
+ typeRack('ab');
64
+ setHighlightUnreachableCells('On');
65
+
66
+ expectReachable(7, 7);
67
+ expectReachable(6, 7);
68
+ expectReachable(10, 7);
69
+ expectReachable(8, 6);
70
+
71
+ expectUnreachable(0, 0);
72
+ expectUnreachable(14, 14);
73
+ expectUnreachable(0, 14);
74
+ });
75
+
76
+ it('updates dimming when toggled off after being on', () => {
77
+ visitIndex();
78
+ typeRack('abc');
79
+ setHighlightUnreachableCells('On');
80
+ expectUnreachable(0, 0);
81
+
82
+ setHighlightUnreachableCells('Off');
83
+ expectReachable(0, 0);
84
+ expectReachable(14, 14);
85
+ });
86
+ });
87
+
88
+ const setHighlightUnreachableCells = (value: 'On' | 'Off') => {
89
+ getSettingsButton().realClick();
90
+ getOpenModal().should('be.visible');
91
+ getSettingOption('Highlight unreachable cells', value).check();
92
+ closeModal();
93
+ };
94
+
95
+ const expectUnreachable = (x: number, y: number) => {
96
+ getBoardTile(x, y).parent().invoke('attr', 'class').should('include', 'unreachable');
97
+ };
98
+
99
+ const expectReachable = (x: number, y: number) => {
100
+ getBoardTile(x, y).parent().invoke('attr', 'class').should('not.include', 'unreachable');
101
+ };
@@ -0,0 +1,90 @@
1
+ import {
2
+ getBoardTile,
3
+ getOpenModal,
4
+ getRackTile,
5
+ typeBoard,
6
+ typeRack,
7
+ unregisterServiceWorkers,
8
+ visitIndex,
9
+ } from '../../support';
10
+
11
+ /*
12
+ * @see https://github.com/kamilmielnik/scrabble-solver/issues/91
13
+ */
14
+ describe('#91 - Hovering remaining tile highlights all same tiles on the board and rack', () => {
15
+ beforeEach(async () => {
16
+ await unregisterServiceWorkers();
17
+ });
18
+
19
+ afterEach(() => {
20
+ cy.clearLocalStorage();
21
+ });
22
+
23
+ it('highlights matching letter tiles on the board and rack', () => {
24
+ visitIndex();
25
+ typeBoard('cat', 'horizontal', 7, 7);
26
+ typeRack('aab ');
27
+ openRemainingTilesModal();
28
+
29
+ hoverRemainingTile('a');
30
+ getRackTile(0).parent().should('have.attr', 'role', 'mark');
31
+ getRackTile(1).parent().should('have.attr', 'role', 'mark');
32
+ getRackTile(2).parent().should('not.have.attr', 'role', 'mark');
33
+ getRackTile(3).parent().should('not.have.attr', 'role', 'mark');
34
+ getBoardTile(7, 7).parent().should('not.have.attr', 'role', 'mark');
35
+ getBoardTile(8, 7).parent().should('have.attr', 'role', 'mark');
36
+ getBoardTile(9, 7).parent().should('not.have.attr', 'role', 'mark');
37
+
38
+ hoverRemainingTile('b');
39
+ getRackTile(0).parent().should('not.have.attr', 'role', 'mark');
40
+ getRackTile(1).parent().should('not.have.attr', 'role', 'mark');
41
+ getRackTile(2).parent().should('have.attr', 'role', 'mark');
42
+ getRackTile(3).parent().should('not.have.attr', 'role', 'mark');
43
+ getBoardTile(7, 7).parent().should('not.have.attr', 'role', 'mark');
44
+ getBoardTile(8, 7).parent().should('not.have.attr', 'role', 'mark');
45
+ getBoardTile(9, 7).parent().should('not.have.attr', 'role', 'mark');
46
+ });
47
+
48
+ it('highlights matching blank tiles on the board and rack', () => {
49
+ visitIndex();
50
+ typeBoard('a', 'horizontal', 7, 7);
51
+ getBoardTile(7, 7).focus();
52
+ typeBoard(' ', 'horizontal', 7, 7);
53
+ typeRack(' a');
54
+ openRemainingTilesModal();
55
+
56
+ hoverRemainingTile(' ');
57
+ getRackTile(0).parent().should('have.attr', 'role', 'mark');
58
+ getRackTile(1).parent().should('not.have.attr', 'role', 'mark');
59
+ getBoardTile(7, 7).parent().should('have.attr', 'role', 'mark');
60
+
61
+ hoverRemainingTile('a');
62
+ getRackTile(0).parent().should('not.have.attr', 'role', 'mark');
63
+ getRackTile(1).parent().should('have.attr', 'role', 'mark');
64
+ getBoardTile(7, 7).parent().should('not.have.attr', 'role', 'mark');
65
+ });
66
+
67
+ it('does not highlight a remaining tile in the sidebar if it has not been used', () => {
68
+ visitIndex();
69
+ typeRack('a');
70
+ openRemainingTilesModal();
71
+
72
+ hoverRemainingTile('z');
73
+ cy.findByTestId('remaining-tile-z').find('[role="mark"]').should('not.exist');
74
+ getRackTile(0).parent().should('not.have.attr', 'role', 'mark');
75
+
76
+ hoverRemainingTile('a');
77
+ cy.findByTestId('remaining-tile-a').find('[role="mark"]').should('exist');
78
+ getRackTile(0).parent().should('have.attr', 'role', 'mark');
79
+ });
80
+ });
81
+
82
+ const openRemainingTilesModal = () => {
83
+ cy.findByLabelText('Remaining tiles').realClick();
84
+ getOpenModal().should('be.visible');
85
+ };
86
+
87
+ const hoverRemainingTile = (character: string) => {
88
+ const testId = character === ' ' ? 'remaining-tile-blank' : `remaining-tile-${character}`;
89
+ cy.findByTestId(testId).trigger('mouseover');
90
+ };
@@ -0,0 +1,2 @@
1
+ import './features/91-hover-remaining-tile-highlights';
2
+ import './features/198-highlight-unreachable-cells';
package/lerna.json CHANGED
@@ -6,6 +6,6 @@
6
6
  "access": "public"
7
7
  },
8
8
  "tagVersionPrefix": "",
9
- "version": "2.16.1",
9
+ "version": "2.16.2",
10
10
  "$schema": "node_modules/lerna/schemas/lerna-schema.json"
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scrabble-solver",
3
- "version": "2.16.1",
3
+ "version": "2.16.2",
4
4
  "description": "Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.",
5
5
  "keywords": [
6
6
  "Scrabble",
@@ -95,7 +95,7 @@
95
95
  "packages/scrabble-solver"
96
96
  ],
97
97
  "dependencies": {
98
- "@scrabble-solver/scrabble-solver": "^2.16.1",
98
+ "@scrabble-solver/scrabble-solver": "^2.16.2",
99
99
  "concurrently": "^9.2.1",
100
100
  "open-cli": "^9.0.0",
101
101
  "wait-on": "^9.0.5"
@@ -103,11 +103,11 @@
103
103
  "devDependencies": {
104
104
  "@babel/core": "^7.29.0",
105
105
  "@babel/plugin-proposal-class-properties": "^7.18.6",
106
- "@babel/preset-env": "^7.29.2",
106
+ "@babel/preset-env": "^7.29.3",
107
107
  "@testing-library/cypress": "^10.1.3",
108
108
  "@types/bun": "^1.3.13",
109
109
  "@types/node": "^25.6.0",
110
- "@typescript/native-preview": "^7.0.0-dev.20260430.1",
110
+ "@typescript/native-preview": "^7.0.0-dev.20260501.1",
111
111
  "cypress": "^15.14.2",
112
112
  "cypress-real-events": "^1.15.0",
113
113
  "eslint-import-resolver-typescript": "^4.4.4",