@johnmorrisdotca/kumimoji 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/NOTICE.md +1 -1
- package/README.md +16 -16
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/words.ja.data.d.ts +3 -2
- package/dist/words.ja.data.js +18 -17
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,31 @@ All notable changes to this project are written down here. The format follows
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.6.0] - 2026-11-04
|
|
10
|
+
|
|
11
|
+
A minor version: nothing that 1.5.0 gave is taken away except five lines that are obscene in themselves. The English list, the rules and the saved-game format are unchanged.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **The Japanese word list no longer leaves out ordinary words** (MODULES-392; John, 2026-11-04: "we can't filter out regular good words"). Kotoba's children bar, which writes the list, is narrowed: a line is out only when every entry that spells it is marked vulgar, X-rated, sensitive or derogatory by JMdict, or has a first sense that names a sex act, a sex organ or the sex trade, or it is a reading on Kotoba's short list of obscene ones. A sense that only mentions sex is no longer enough. 86 lines are back, among them せいべつ (性別), いせい (異性), どうせい (同性), きょうがく (共学), こんりゅう (建立), まぜもの (混ぜ物), そうにゅう (挿入), ふじゅん (不純), なのはな (菜の花), あいじん (愛人).
|
|
16
|
+
- **Five lines are held out by name**: まんこ and うんこ and おっぱい and ちんこ, which JMdict marks nothing or shares with an ordinary word (万古 is also まんこ), and れいふ, the line that れいぷ plays on the tiles (it is also 霊符, a charm, which goes out with it). The list is 162,243 readings, 86 more and 5 fewer: 162,324.
|
|
17
|
+
- **A seeded Japanese game is dealt differently**, as the list has other words to choose among; English games and the saved-game format are unchanged.
|
|
18
|
+
|
|
19
|
+
## [1.5.0] - 2026-11-04
|
|
20
|
+
|
|
21
|
+
A minor version: nothing that 1.4.0 gave is taken away except what children should not have been handed. The English list, the rules and the saved-game format are unchanged.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **The Japanese word list leaves out what is not for children** (MODULES-390). Children play this game, and the list was every kana reading of every JMdict entry. It now has the bar of Kotoba's kana lists (`scripts/children-bar.mjs` in Kotoba, which writes the list with `scripts/word-lists-ja.mjs`): a reading is out when every JMdict entry that spells it has a vulgar, X-rated, sensitive or derogatory mark on its first sense, or a first sense whose gloss names sex or the sex trade. A reading that an ordinary entry is also spelt like stays, and so does a line that another word plays: the tiles play ば and ぱ as は, so れいぷ is the line れいふ, which is also 霊符 (a charm). Of the 163,585 lines JMdict's release of 2026-11-04 gives, 1,347 are barred (110 of 3 kana, 347 of 4, 264 of 5, 626 longer), among them せっくす, ばいしゅん, ぽるの, えろい, おなに, ちくび, ふぇらちお, せいどれい, いんらん, ちんぽ and らぶほてる; the 5 words earlier lists held that JMdict no longer lists are kept, so a game kept half way still checks. The list holds **162,243** readings (163,461 in 1.4.0). A test (`src/childrenBar.test.ts`) holds the known bad readings out. The guide "Load and judge with word lists" says what is left out, in English and in Japanese.
|
|
26
|
+
- **A seeded Japanese game is dealt differently**, as the list has fewer words to choose among: the same seed gives another bag. English games are unchanged, and so is the saved-game format; a kept Japanese game checks as before unless it spells one of the barred lines.
|
|
27
|
+
- The Japanese list is made again from JMdict's release of 2026-11-04 (it was 2026-09-28): 129 readings join, 5 are kept that JMdict dropped.
|
|
28
|
+
- The package is a little smaller: the Japanese list is 715 kB (394 kB gzipped), and the sizes in `docs/bundle-size.json` are measured again.
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- The README opens with the package's thumbnail, and the demo carries it as its link preview (og:image) and publishes the card, a dark card and an icon on Pages at `thumbnail.png`, `thumbnail-dark.png` and `icon.png`.
|
|
33
|
+
|
|
9
34
|
## [1.4.0] - 2026-11-02
|
|
10
35
|
|
|
11
36
|
### Added
|
|
@@ -196,7 +221,8 @@ The first release.
|
|
|
196
221
|
`@johnmorrisdotca/kumimoji/react`.
|
|
197
222
|
- A static demo for GitHub Pages.
|
|
198
223
|
|
|
199
|
-
[Unreleased]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.
|
|
224
|
+
[Unreleased]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.5.0...HEAD
|
|
225
|
+
[1.5.0]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.4.0...v1.5.0
|
|
200
226
|
[1.4.0]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.3.1...v1.4.0
|
|
201
227
|
[1.3.0]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.2.2...v1.3.0
|
|
202
228
|
[1.2.1]: https://github.com/johnmorrisdotca/kumimoji/compare/v1.2.0...v1.2.1
|
package/NOTICE.md
CHANGED
|
@@ -31,7 +31,7 @@ SCOWL's own distribution.
|
|
|
31
31
|
|
|
32
32
|
`src/words.ja.data.ts` is derived from JMdict, the Japanese-Multilingual
|
|
33
33
|
Dictionary of the Electronic Dictionary Research and Development Group
|
|
34
|
-
(https://www.edrdg.org/), release 2026-
|
|
34
|
+
(https://www.edrdg.org/), release 2026-11-04: 162,324 hiragana readings of 2 to
|
|
35
35
|
15 kana, each spelt in the 45 base kana the tiles show. JMdict is the property of
|
|
36
36
|
the EDRDG and is used under the Creative Commons Attribution-ShareAlike 4.0
|
|
37
37
|
licence, with the group's conditions: https://www.edrdg.org/edrdg/licence.html.
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<p align="center"><a href="https://johnmorrisdotca.github.io/kumimoji/"><picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/johnmorrisdotca/kumimoji/main/docs/images/thumbnail-dark.png"><img src="https://raw.githubusercontent.com/johnmorrisdotca/kumimoji/main/docs/images/thumbnail.png" alt="Kumimoji: letter tiles laid in a crossword by the package's own computer player." width="1200"></picture></a></p>
|
|
2
|
+
|
|
1
3
|
<h1 align="center">Kumimoji <sub>組み文字</sub> — Crossword tile game in English and Japanese</h1>
|
|
2
4
|
|
|
3
5
|
<p align="center"><strong>The crossword tile race: a word game where you build one crossword from a bag of letter tiles.</strong><br>
|
|
@@ -10,7 +12,7 @@ In English and in Japanese kana. The rules as pure, seeded TypeScript, two word
|
|
|
10
12
|
<a href="./NOTICE.md"><img alt="Japanese word list: CC BY-SA 4.0" src="https://img.shields.io/badge/Japanese%20words-CC%20BY--SA%204.0-b5452c"></a>
|
|
11
13
|
<img alt="No dependencies" src="https://img.shields.io/badge/dependencies-0-2f5d4a">
|
|
12
14
|
<img alt="TypeScript" src="https://img.shields.io/badge/types-TypeScript-3178c6">
|
|
13
|
-
<a href="https://johnmorrisdotca.github.io/kumimoji/docs/api/main/index.html"><img alt="
|
|
15
|
+
<a href="https://johnmorrisdotca.github.io/kumimoji/docs/api/main/index.html"><img alt="677.3 kB minified and gzipped" src="https://img.shields.io/badge/min%2Bgzip-677.3%20kB-2f5d4a"></a>
|
|
14
16
|
<a href="https://www.npmjs.com/package/@johnmorrisdotca/kumimoji#provenance"><img alt="Published with npm provenance" src="https://img.shields.io/badge/npm-provenance-2f5d4a"></a>
|
|
15
17
|
</p>
|
|
16
18
|
|
|
@@ -103,7 +105,7 @@ Or with nothing to install, [play a game in the demo](https://johnmorrisdotca.gi
|
|
|
103
105
|
- **Races and daily puzzles.** A seed deals one bag, the same for everybody,
|
|
104
106
|
and `checkKumimoji` checks a finished grid against it without searching.
|
|
105
107
|
- **Japanese.** A word game that plays in kana, with が on the か tile and ゃ
|
|
106
|
-
on the や tile, and a list of
|
|
108
|
+
on the や tile, and a list of 162,324 readings.
|
|
107
109
|
- **Learners and teachers** of English or Japanese spelling.
|
|
108
110
|
|
|
109
111
|
## Features
|
|
@@ -112,7 +114,7 @@ Or with nothing to install, [play a game in the demo](https://johnmorrisdotca.gi
|
|
|
112
114
|
its tiles, so every bag can be finished.
|
|
113
115
|
- **English and Japanese.** 144 tiles in each: the English letters, or 45 base
|
|
114
116
|
kana where が plays as か, ゃ as や and を as お. 110,316 English words and
|
|
115
|
-
|
|
117
|
+
162,324 Japanese readings, of 2 to 15 tiles.
|
|
116
118
|
- **Wild tiles** that take any letter or kana, and are read as that in every
|
|
117
119
|
word they are part of.
|
|
118
120
|
- **Trades.** A tile you cannot use goes back into the bag for three.
|
|
@@ -155,7 +157,7 @@ Each picture is the table the package draws, taken from [the demo](https://johnm
|
|
|
155
157
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/johnmorrisdotca/kumimoji/main/docs/images/kana-desk-dark.webp">
|
|
156
158
|
<img src="https://raw.githubusercontent.com/johnmorrisdotca/kumimoji/main/docs/images/kana-desk-light.webp" alt="A Japanese board of kana tiles on the green table, a crossword of hiragana laid across and down on the grid of empty squares." width="400">
|
|
157
159
|
</picture>
|
|
158
|
-
<br><em><strong>Japanese kana.</strong> 45 base kana tiles,
|
|
160
|
+
<br><em><strong>Japanese kana.</strong> 45 base kana tiles, 162,324 readings.</em>
|
|
159
161
|
</td>
|
|
160
162
|
</tr>
|
|
161
163
|
<tr>
|
|
@@ -390,8 +392,8 @@ fetches when a game is first dealt.
|
|
|
390
392
|
names only the files that define the tag and register the word lists.
|
|
391
393
|
- **Sizes.** The rules, the computer player and the table of players are
|
|
392
394
|
about 44 kB minified (16 kB gzipped); the table for a page is 34 kB (13 kB).
|
|
393
|
-
The English list is 606 kB (277 kB gzipped) and the Japanese
|
|
394
|
-
(
|
|
395
|
+
The English list is 606 kB (277 kB gzipped) and the Japanese 715 kB
|
|
396
|
+
(394 kB), each a file of its own that is fetched only when a game in that
|
|
395
397
|
language is first dealt.
|
|
396
398
|
- **Where it runs.** Current Chrome, Edge, Firefox and Safari, on a desk or a
|
|
397
399
|
phone. The rules have no DOM in them and run in Node 22 and later, Deno,
|
|
@@ -672,11 +674,11 @@ import { BASE_KANA, deal, generateKumimoji, loadTileWords, tileKana } from "@joh
|
|
|
672
674
|
const words = await loadTileWords("japanese");
|
|
673
675
|
[...BASE_KANA].length; // → 45
|
|
674
676
|
[tileKana("が"), tileKana("ゃ"), tileKana("を"), tileKana("っ")]; // → ["か", "や", "お", "つ"]
|
|
675
|
-
words.allowed.size; // →
|
|
677
|
+
words.allowed.size; // → 162324
|
|
676
678
|
words.allowed.has("ことは"); // → true
|
|
677
679
|
|
|
678
680
|
const dealt = generateKumimoji(7, "medium", 2026, { language: "japanese" });
|
|
679
|
-
deal(dealt.givens, 7).hand.map(words.glyphOf).join(""); // → "
|
|
681
|
+
deal(dealt.givens, 7).hand.map(words.glyphOf).join(""); // → "はしんゆほしも"
|
|
680
682
|
```
|
|
681
683
|
|
|
682
684
|
The tiles are the 45 base hiragana. A word is spelt with the base of each of
|
|
@@ -770,7 +772,7 @@ The JSON, as `kumimojiToJSON` writes it:
|
|
|
770
772
|
{
|
|
771
773
|
"format": 1,
|
|
772
774
|
"game": "kumimoji",
|
|
773
|
-
"generator": "kumimoji 1.
|
|
775
|
+
"generator": "kumimoji 1.6.0",
|
|
774
776
|
"size": 3,
|
|
775
777
|
"level": "hard",
|
|
776
778
|
"seed": 44,
|
|
@@ -815,7 +817,7 @@ with its notice too.
|
|
|
815
817
|
| List | What it is | Where it comes from | Terms |
|
|
816
818
|
| --- | --- | --- | --- |
|
|
817
819
|
| English, `dist/words.en.data.js` | 110,316 words of 2 to 15 letters, English and American spellings | [SCOWL](http://wordlist.aspell.net/) 2020.12.07, sizes 10 to 70 | © 2000–2018 Kevin Atkinson and the authors of the lists SCOWL is built from. Permission to use, copy, modify, distribute and sell for any purpose, **provided the copyright notice appears in all copies, and both it and the permission notice in supporting documentation**. No share-alike. |
|
|
818
|
-
| Japanese, `dist/words.ja.data.js` |
|
|
820
|
+
| Japanese, `dist/words.ja.data.js` | 162,324 hiragana readings of 2 to 15 kana, each spelt in the 45 base kana of the tiles | [JMdict](https://www.edrdg.org/jmdict/j_jmdict.html), release 2026-11-04, of the Electronic Dictionary Research and Development Group | **[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)**, with the [EDRDG's conditions](https://www.edrdg.org/edrdg/licence.html). **Attribution is required, and the list, or anything made from it, may be passed on only under the same licence.** |
|
|
819
821
|
|
|
820
822
|
What that means for a project that uses this package:
|
|
821
823
|
|
|
@@ -1062,8 +1064,6 @@ kept as text made to be sent, and Itsutsu sends it; the sending is yours); a
|
|
|
1062
1064
|
command line; CSV; and any name, art or wording of a published game. Kumimoji
|
|
1063
1065
|
runs from a static page and costs nothing to host.
|
|
1064
1066
|
|
|
1065
|
-
Ideas and pull requests are welcome.
|
|
1066
|
-
|
|
1067
1067
|
## Architecture
|
|
1068
1068
|
|
|
1069
1069
|
The rules are plain functions over plain data with no DOM: a game is a value,
|
|
@@ -1173,16 +1173,16 @@ Kumimoji is one of thirty-two packages, each made for the same site, each at
|
|
|
1173
1173
|
|
|
1174
1174
|
```sh
|
|
1175
1175
|
pnpm install --frozen-lockfile
|
|
1176
|
-
pnpm check # lint, types and tests,
|
|
1176
|
+
pnpm check # lint, types and tests, the README's own checks among them
|
|
1177
1177
|
pnpm test:table # the demo in real browsers, by taps
|
|
1178
1178
|
pnpm test:package # pack it as npm does, install it and import every entry
|
|
1179
1179
|
pnpm test:frameworks # the six framework examples, built from the packed tarball and played
|
|
1180
1180
|
pnpm test:readme # every TypeScript and JavaScript example in this README, type-checked and run
|
|
1181
1181
|
pnpm site # build the demo into ./site
|
|
1182
|
-
pnpm screenshots:readme # retake the README's pictures
|
|
1182
|
+
pnpm screenshots:readme # retake the README's pictures (builds the demo first)
|
|
1183
1183
|
```
|
|
1184
1184
|
|
|
1185
|
-
The
|
|
1185
|
+
The README's pictures are in `docs/images`, which the npm package leaves out.
|
|
1186
1186
|
|
|
1187
1187
|
## Contributing
|
|
1188
1188
|
|
|
@@ -1194,7 +1194,7 @@ Please follow the [code of conduct](./CODE_OF_CONDUCT.md). A way to make a check
|
|
|
1194
1194
|
|
|
1195
1195
|
See [CHANGELOG.md](./CHANGELOG.md).
|
|
1196
1196
|
|
|
1197
|
-
The latest release, 1.
|
|
1197
|
+
The latest release, 1.6.0, keeps the ordinary words that only mention sex in the Japanese list and leaves out what is not for children.
|
|
1198
1198
|
|
|
1199
1199
|
## Licence
|
|
1200
1200
|
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/words.ja.data.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* JAPANESE KUMIMOJI WORDS AND TILE MIX, written by scripts/word-lists-ja.mjs.
|
|
3
|
-
* Derived from JMdict release 2026-
|
|
3
|
+
* Derived from JMdict release 2026-11-04, and under CC BY-SA 4.0 with EDRDG's
|
|
4
4
|
* conditions: https://www.edrdg.org/edrdg/licence.html. Never edited by hand.
|
|
5
|
-
*
|
|
5
|
+
* Less the readings no ordinary meaning is left for (kotoba's scripts/children-bar.mjs, the bar of its kana lists).
|
|
6
|
+
* 162324 hiragana readings of 2–15 kana, each spelt in the 45
|
|
6
7
|
* tiles (が as か, ゃ as や, を as お), one character a kana through `codes`,
|
|
7
8
|
* front-coded by length. The tiles are `JAPANESE_TILE_MIX` (tiles.constants.ts).
|
|
8
9
|
*/
|