@kensio/pinyinjs 1.2.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +116 -3
  2. package/NOTICE +9 -0
  3. package/README.md +58 -9
  4. package/data/core.entries +1 -13
  5. package/data/core.freq +0 -0
  6. package/data/core.keys +1 -13
  7. package/data/full.entries +141 -131
  8. package/data/full.freq +0 -0
  9. package/data/full.keys +167 -157
  10. package/data/manifest.json +24 -9
  11. package/data/script.map +26543 -0
  12. package/data/standard.entries +1 -22
  13. package/data/standard.freq +0 -0
  14. package/data/standard.keys +2 -23
  15. package/dist/cli/arguments.d.ts +72 -0
  16. package/dist/cli/arguments.d.ts.map +1 -1
  17. package/dist/cli/arguments.js +110 -0
  18. package/dist/cli/arguments.js.map +1 -1
  19. package/dist/cli/commands.d.ts +11 -0
  20. package/dist/cli/commands.d.ts.map +1 -1
  21. package/dist/cli/commands.js +77 -1
  22. package/dist/cli/commands.js.map +1 -1
  23. package/dist/cli/environment.d.ts.map +1 -1
  24. package/dist/cli/environment.js +2 -1
  25. package/dist/cli/environment.js.map +1 -1
  26. package/dist/cli/help.d.ts.map +1 -1
  27. package/dist/cli/help.js +21 -0
  28. package/dist/cli/help.js.map +1 -1
  29. package/dist/cli/run.d.ts +8 -0
  30. package/dist/cli/run.d.ts.map +1 -1
  31. package/dist/cli/run.js +11 -1
  32. package/dist/cli/run.js.map +1 -1
  33. package/dist/decode/convert.d.ts +10 -0
  34. package/dist/decode/convert.d.ts.map +1 -1
  35. package/dist/decode/convert.js +12 -0
  36. package/dist/decode/convert.js.map +1 -1
  37. package/dist/decode/script.d.ts +108 -0
  38. package/dist/decode/script.d.ts.map +1 -0
  39. package/dist/decode/script.js +195 -0
  40. package/dist/decode/script.js.map +1 -0
  41. package/dist/dictionary/dictionary.d.ts +13 -1
  42. package/dist/dictionary/dictionary.d.ts.map +1 -1
  43. package/dist/dictionary/dictionary.js +18 -4
  44. package/dist/dictionary/dictionary.js.map +1 -1
  45. package/dist/dictionary/merge.d.ts.map +1 -1
  46. package/dist/dictionary/merge.js +23 -3
  47. package/dist/dictionary/merge.js.map +1 -1
  48. package/dist/dictionary/script-tables.d.ts +17 -0
  49. package/dist/dictionary/script-tables.d.ts.map +1 -0
  50. package/dist/dictionary/script-tables.js +275 -0
  51. package/dist/dictionary/script-tables.js.map +1 -0
  52. package/dist/dictionary/source.d.ts +18 -0
  53. package/dist/dictionary/source.d.ts.map +1 -1
  54. package/dist/dictionary/source.js +20 -0
  55. package/dist/dictionary/source.js.map +1 -1
  56. package/dist/format/slug.d.ts +156 -0
  57. package/dist/format/slug.d.ts.map +1 -0
  58. package/dist/format/slug.js +0 -0
  59. package/dist/format/slug.js.map +1 -0
  60. package/dist/index.d.ts +10 -1
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +6 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/script/conversion.d.ts +102 -0
  65. package/dist/script/conversion.d.ts.map +1 -0
  66. package/dist/script/conversion.js +194 -0
  67. package/dist/script/conversion.js.map +1 -0
  68. package/dist/script/glyphs.d.ts +95 -0
  69. package/dist/script/glyphs.d.ts.map +1 -0
  70. package/dist/script/glyphs.js +236 -0
  71. package/dist/script/glyphs.js.map +1 -0
  72. package/dist/sources/opencc.d.ts +32 -0
  73. package/dist/sources/opencc.d.ts.map +1 -0
  74. package/dist/sources/opencc.js +50 -0
  75. package/dist/sources/opencc.js.map +1 -0
  76. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/decode/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMhE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,YACzB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,CACJ,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,YAC1B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,CACD,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C;AAyGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,gBAAgB,CA0ClB;AAeD;;GAEG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE/D"}
@@ -0,0 +1,195 @@
1
+ import { toCharacters } from "../script/characters.js";
2
+ import { conversionKey, convertCharacter, formsOf, isAmbiguousCharacter, } from "../script/conversion.js";
3
+ import { DEFAULT_REGION, isReadingSensitive, toCanonicalGlyphs, toRegionalGlyph, } from "../script/glyphs.js";
4
+ import { detectScript } from "../script/script.js";
5
+ import { decodeRun } from "./decode.js";
6
+ import { READING_RULES } from "./reading-rules.js";
7
+ import { splitRuns } from "./runs.js";
8
+ /**
9
+ * A script and, for 繁體, a regional orthography, as a BCP-47 tag.
10
+ *
11
+ * BCP-47 rather than a shape of our own because these subtags already mean
12
+ * exactly this, and callers recognise them. `zh-Hant` alone takes
13
+ * {@link DEFAULT_REGION}, since there is no region-free 繁體 to fall back on —
14
+ * see SCRIPTS-AND-LOCALES.md.
15
+ */
16
+ export const SCRIPT_TARGETS = [
17
+ "zh-Hans",
18
+ "zh-Hant",
19
+ "zh-Hant-TW",
20
+ "zh-Hant-HK",
21
+ ];
22
+ /**
23
+ * What settled one character's conversion, strongest first.
24
+ *
25
+ * - `locked` — the character has one form and there was nothing to decide.
26
+ * True of the great majority: simplification changed a minority of
27
+ * characters, and most of those are one-to-one.
28
+ * - `word` — a word some source wrote in both scripts settled it. The strongest
29
+ * real evidence, because it was written rather than inferred.
30
+ * - `reading` — the character had rival forms and the syllable it was decoded
31
+ * as picked between them. This is the evidence an orthographic converter does
32
+ * not have.
33
+ * - `default` — rival forms existed and nothing separated them, so the
34
+ * commonest was taken. The only one of the four that is a guess.
35
+ */
36
+ export const SCRIPT_EVIDENCE = [
37
+ "locked",
38
+ "word",
39
+ "reading",
40
+ "default",
41
+ ];
42
+ /**
43
+ * The script and region a target names.
44
+ */
45
+ function targetOf(target) {
46
+ if (target === "zh-Hans") {
47
+ return { script: "Hans", region: DEFAULT_REGION };
48
+ }
49
+ return {
50
+ script: "Hant",
51
+ region: target === "zh-Hant-HK" ? "HK" : DEFAULT_REGION,
52
+ };
53
+ }
54
+ /**
55
+ * Convert one word, preferring what a source wrote to what its characters imply.
56
+ */
57
+ function convertWord(table, words, word, reading) {
58
+ const characters = toCharacters(word);
59
+ const attested = words.get(word);
60
+ // A word only counts as attested when it lines up character for character;
61
+ // anything else cannot be reported per character, which is what the choices
62
+ // are. Those are rare enough to fall through to the characters.
63
+ const attestedCharacters = attested === undefined ? undefined : toCharacters(attested);
64
+ const isAttested = attestedCharacters?.length === characters.length;
65
+ // A reading covering a different number of characters than the word has
66
+ // cannot be lined up with them — 儿化 writes two characters as one syllable.
67
+ const isAligned = reading.length === characters.length;
68
+ return characters.map((character, at) => {
69
+ const syllable = isAligned ? reading[at] : undefined;
70
+ const conversion = table.get(character);
71
+ const atReading = conversion?.byReading?.get(conversionKey(syllable));
72
+ const to = isAttested
73
+ ? /* c8 ignore next -- the lengths were just checked */
74
+ (attestedCharacters[at] ?? character)
75
+ : convertCharacter(table, character, syllable);
76
+ return {
77
+ from: character,
78
+ to,
79
+ evidence: evidenceFor(isAttested, atReading !== undefined, isAmbiguousCharacter(table, character)),
80
+ alternatives: formsOf(conversion).filter((form) => form !== character && form !== to),
81
+ };
82
+ });
83
+ }
84
+ /**
85
+ * Rank what settled a character, strongest evidence first.
86
+ */
87
+ function evidenceFor(isAttested, isAtReading, isAmbiguous) {
88
+ if (!isAmbiguous) {
89
+ return "locked";
90
+ }
91
+ if (isAttested) {
92
+ return "word";
93
+ }
94
+ return isAtReading ? "reading" : "default";
95
+ }
96
+ /**
97
+ * Apply the regional 繁體 forms, which never change a reading.
98
+ */
99
+ function applyRegion(choices, reading, region, isAligned) {
100
+ if (region === DEFAULT_REGION) {
101
+ return choices;
102
+ }
103
+ return choices.map((choice, at) => {
104
+ const syllable = isAligned ? reading[at] : undefined;
105
+ // A regional form that needs the reading and has none is a guess, whatever
106
+ // settled the script conversion before it: 著 is 着 or 著 in Hong Kong.
107
+ const isGuess = isReadingSensitive(choice.to) && syllable === undefined;
108
+ return {
109
+ ...choice,
110
+ to: toRegionalGlyph(choice.to, region, syllable),
111
+ evidence: isGuess ? "default" : choice.evidence,
112
+ };
113
+ });
114
+ }
115
+ /**
116
+ * Convert a text between the scripts, reporting what it was unsure about.
117
+ *
118
+ * The reading is what makes this more accurate than an orthographic converter
119
+ * can be, and it is used in both directions. 简→繁 is the famously ambiguous
120
+ * one — 发 is 發 or 髮 — but 繁→简 has its own merges, and 乾 is 干 when `gān`
121
+ * and stays 乾 when `qián`. Every other converter resolves these from a phrase
122
+ * table alone; this one segments with the lattice and reads the result.
123
+ *
124
+ * Evidence is taken strongest first: a word some source wrote in both scripts,
125
+ * then the character at the reading it was decoded with, then the character's
126
+ * commonest form. What is left over is reported rather than hidden — see
127
+ * {@link ScriptChoice}.
128
+ *
129
+ * This converts **orthography only**. 軟體 and 软件 are different words rather
130
+ * than two spellings of one, and turning one into the other is translation,
131
+ * which this package does not do.
132
+ */
133
+ export function toScriptPieces(dictionary, tables, text, options = {}) {
134
+ const { script, region } = targetOf(options.to ?? "zh-Hans");
135
+ const table = script === "Hans" ? tables.toSimplified : tables.toTraditional;
136
+ const words = script === "Hans" ? tables.simplifiedWords : tables.traditionalWords;
137
+ // Text already in the target script must not be run through the conversion
138
+ // tables, and this is not an optimisation. Plenty of characters are current
139
+ // in both scripts, so the tables would rewrite them: 准 is 简体 for 準 *and* a
140
+ // 繁體 character of its own, and 准將 would come back 準將. Rewriting
141
+ // 繁體-TW into 繁體-HK is the case that meets this constantly.
142
+ const from = options.from ?? detectScript(text, tables.hansOnly, tables.hantOnly);
143
+ const isSameScript = from === script;
144
+ let converted = "";
145
+ const choices = [];
146
+ for (const run of splitRuns(text)) {
147
+ if (!run.isHan) {
148
+ converted += run.text;
149
+ continue;
150
+ }
151
+ // 繁體 glyph variants are folded to the canonical form first, so that a
152
+ // Hong Kong input converts the same as its Taiwan spelling would.
153
+ for (const word of decodeRun(dictionary, run.text, READING_RULES)) {
154
+ const canonical = toCanonicalGlyphs(word.text);
155
+ const isAligned = word.reading.length === toCharacters(canonical).length;
156
+ const chosen = applyRegion(isSameScript
157
+ ? keepWord(canonical)
158
+ : convertWord(table, words, canonical, word.reading), word.reading, region, isAligned);
159
+ choices.push(...chosen);
160
+ converted += chosen.map((choice) => choice.to).join("");
161
+ }
162
+ }
163
+ return { text: converted, choices };
164
+ }
165
+ /**
166
+ * Keep a word as it stands, which is what a text already in the target script
167
+ * needs. Every character is locked, because none of them was in question.
168
+ */
169
+ function keepWord(word) {
170
+ return toCharacters(word).map((character) => ({
171
+ from: character,
172
+ to: character,
173
+ evidence: "locked",
174
+ alternatives: [],
175
+ }));
176
+ }
177
+ /**
178
+ * Convert a text between the scripts. {@link toScriptPieces}, joined.
179
+ */
180
+ export function toScript(dictionary, tables, text, options = {}) {
181
+ return toScriptPieces(dictionary, tables, text, options).text;
182
+ }
183
+ /**
184
+ * Whether a converted character was a guess.
185
+ *
186
+ * True only for `default`: rival forms existed and neither an attested word nor
187
+ * the reading separated them. A character settled by its reading is not a guess
188
+ * — that evidence is the reason this package converts more accurately than an
189
+ * orthographic converter can, and reporting it as doubt would throw the claim
190
+ * away. The mirror of `isUncertain` for readings, and it lands on far less.
191
+ */
192
+ export function isUncertainChoice(choice) {
193
+ return choice.evidence === "default";
194
+ }
195
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/decode/script.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,14 @@ export interface WordEntry {
37
37
  * far more than the lookups a page ever performs.
38
38
  *
39
39
  * A word is found under either script: 繁體 forms are keys in their own right,
40
- * so nothing is converted on the lookup path. See SCRIPTS-AND-LOCALES.md.
40
+ * so no 简体 ↔ 繁體 conversion happens on the lookup path. See
41
+ * SCRIPTS-AND-LOCALES.md for why that shortcut would destroy accuracy.
42
+ *
43
+ * Regional 繁體 glyph forms *are* normalised here, and that is a different
44
+ * thing: 裏 and 裡 are the same character in two standards with one reading, so
45
+ * folding them together loses nothing and is what lets Hong Kong text find keys
46
+ * at all. Only the reading is taken from the normalised form — callers keep the
47
+ * characters the text was written with.
41
48
  */
42
49
  export declare class Dictionary {
43
50
  #private;
@@ -62,6 +69,11 @@ export declare class Dictionary {
62
69
  hasPrefix(text: string): boolean;
63
70
  /**
64
71
  * The entry for a word under either script, or undefined.
72
+ *
73
+ * A 繁體 word written in Hong Kong's glyph forms is normalised to the
74
+ * Taiwan-standard forms the keys are built from, so 裏面 and 看着 find the
75
+ * entries for 裡面 and 看著 rather than falling back to their characters. The
76
+ * entry names the canonical spelling; the caller keeps the original text.
65
77
  */
66
78
  lookup(word: string): WordEntry | undefined;
67
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/dictionary/dictionary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA0BvE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,kDAAkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;;IACrB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAEpD;IAQD;;OAEG;IACH,OAAO,eAiBN;IA0DD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/B;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAY1C;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAW9D;CACF"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/dictionary/dictionary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA0BvE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,kDAAkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAU;;IACrB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAEpD;IAQD;;OAEG;IACH,OAAO,eAiBN;IA0DD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/B;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAa1C;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAW9D;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { toCharacters } from "../script/characters.js";
2
+ import { toCanonicalGlyphs } from "../script/glyphs.js";
2
3
  import { decodeReading } from "./artifact.js";
3
4
  import { FrequencyTable } from "./frequency-table.js";
4
5
  import { KeyIndex } from "./key-index.js";
@@ -29,7 +30,14 @@ const NAME_BOUNDARIES = /^p(?<at>\d+(?:\.\d+)*)$/u;
29
30
  * far more than the lookups a page ever performs.
30
31
  *
31
32
  * A word is found under either script: 繁體 forms are keys in their own right,
32
- * so nothing is converted on the lookup path. See SCRIPTS-AND-LOCALES.md.
33
+ * so no 简体 ↔ 繁體 conversion happens on the lookup path. See
34
+ * SCRIPTS-AND-LOCALES.md for why that shortcut would destroy accuracy.
35
+ *
36
+ * Regional 繁體 glyph forms *are* normalised here, and that is a different
37
+ * thing: 裏 and 裡 are the same character in two standards with one reading, so
38
+ * folding them together loses nothing and is what lets Hong Kong text find keys
39
+ * at all. Only the reading is taken from the normalised form — callers keep the
40
+ * characters the text was written with.
33
41
  */
34
42
  export class Dictionary {
35
43
  /**
@@ -120,13 +128,19 @@ export class Dictionary {
120
128
  * is what lets a scan stop as soon as no word can extend.
121
129
  */
122
130
  hasPrefix(text) {
123
- return this.#index.hasPrefix(text);
131
+ return this.#index.hasPrefix(toCanonicalGlyphs(text));
124
132
  }
125
133
  /**
126
134
  * The entry for a word under either script, or undefined.
135
+ *
136
+ * A 繁體 word written in Hong Kong's glyph forms is normalised to the
137
+ * Taiwan-standard forms the keys are built from, so 裏面 and 看着 find the
138
+ * entries for 裡面 and 看著 rather than falling back to their characters. The
139
+ * entry names the canonical spelling; the caller keeps the original text.
127
140
  */
128
141
  lookup(word) {
129
- const found = this.#index.lookup(word);
142
+ const canonical = toCanonicalGlyphs(word);
143
+ const found = this.#index.lookup(canonical);
130
144
  if (!found.isKey) {
131
145
  return undefined;
132
146
  }
@@ -134,7 +148,7 @@ export class Dictionary {
134
148
  if (held !== undefined) {
135
149
  return held;
136
150
  }
137
- const entry = this.#decode(word, found.index);
151
+ const entry = this.#decode(canonical, found.index);
138
152
  this.#decoded.set(found.index, entry);
139
153
  return entry;
140
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/dictionary/dictionary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/dictionary/dictionary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAejE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sEAAsE;IACtE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAqSD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAyT/D"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAejE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sEAAsE;IACtE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAqSD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CA4U/D"}
@@ -1,4 +1,5 @@
1
1
  import { characterCount, isSingleCharacter } from "../script/characters.js";
2
+ import { toCanonicalGlyphs } from "../script/glyphs.js";
2
3
  import { nameBoundariesOf } from "../sources/cedict.js";
3
4
  import { isProperNounTag } from "../sources/jieba.js";
4
5
  import { FREQUENCY_FIELD, } from "../sources/unihan.js";
@@ -408,13 +409,18 @@ export function mergeSources(sources) {
408
409
  const sense = senses[0];
409
410
  let hant;
410
411
  if (sense === undefined) {
411
- hant = traditional.convert(aligned ?? []);
412
+ // Canonicalised because the derivation settles each word against Unihan's
413
+ // variant lists with no single standard behind it, so 里 derives as 裏
414
+ // where the corpus overwhelmingly writes 裡. Both are the same character
415
+ // with the same reading, and a key written in the form the lookup path
416
+ // normalises *away from* can never be found — see the note below.
417
+ hant = toCanonicalGlyphs(traditional.convert(aligned ?? []));
412
418
  if (hant !== word) {
413
419
  derivedTraditional++;
414
420
  }
415
421
  }
416
422
  else {
417
- hant = sense.traditional;
423
+ hant = toCanonicalGlyphs(sense.traditional);
418
424
  }
419
425
  if (hant !== word) {
420
426
  scriptPairs++;
@@ -425,8 +431,22 @@ export function mergeSources(sources) {
425
431
  // them forms nobody writes — 方麵 for 方面, 公裡 for 公里 — because the
426
432
  // reading that picks the right variant for one word does not generalise to
427
433
  // every word the character appears in.
434
+ //
435
+ // Canonicalised for the same reason `hant` is, and deduplicated after:
436
+ // 裏面 and 裡面 are one spelling once the glyph forms are folded, and
437
+ // keying both would claim a variant that does not exist.
438
+ //
439
+ // The 简体 headword's own canonical spelling joins them where it differs,
440
+ // and that is not a nicety: the lookup path normalises 繁體 glyph forms
441
+ // before it searches, so a key written in a form it normalises *away from*
442
+ // can never be found. The phrase corpus carries a few hundred headwords
443
+ // spelled with 峯, 藴 or 枱 — 鹫峯寺, 义藴, 写字枱 — and without this they
444
+ // are entries nothing can reach.
428
445
  const hantVariants = [
429
- ...new Set(senses.map((other) => other.traditional)),
446
+ ...new Set([
447
+ ...senses.map((other) => toCanonicalGlyphs(other.traditional)),
448
+ toCanonicalGlyphs(word),
449
+ ]),
430
450
  ].filter((form) => form !== hant && form !== word);
431
451
  if (hantVariants.length > 0) {
432
452
  variantSpellings++;
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAoB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAwB,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EAEX,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAuD1B;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,MAA8B,EAC9B,MAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,UAAU,CACjB,IAAyB,EACzB,KAA0B;IAE1B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,yEAAyE;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;QACpC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YACzE,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,cAAc;IACd,OAAO,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB,CACzB,MAA2B,EAC3B,MAA2B;IAE3B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QACjC,yEAAyE;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;QACrC,MAAM,WAAW,GACf,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;QACvE,OAAO,WAAW;YAChB,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,QAAQ,CAAC,IAAI,KAAK,YAAY;YAC9B,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;YACrC,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CACd,IAAY,EACZ,cAAgD;IAEhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,OAA4B,EAC5B,UAA4C;IAE5C,IAAI,OAAwC,CAAC;IAC7C,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;YACnB,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,OAA+B,EAC/B,OAA4B;IAE5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,KAAK;YACL,GAAG,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;SACzE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC;SACpC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,OAA+B;IAE/B,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,UAAU,CACjB,MAA2B,EAC3B,aAA+C;IAE/C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,qBAAqB,CAAC,MAAsB;IACnD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACnE,2EAA2E;IAC3E,qEAAqE;IACrE,IACE,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAC9B,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAC1D,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC;SAC9C,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,OAAO,CAC9C,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,OAAe;IAEf,OAAO,qBAAqB,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,OAAqB;IAChD,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1E,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtE,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,kCAAkC;IAClC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvE,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;aAC3C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACvD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CACxC,QAAQ,EACR,cAAc,EACd,cAAc,CACf,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS;QAC5B,GAAG,QAAQ,CAAC,IAAI,EAAE;QAClB,GAAG,MAAM,CAAC,IAAI,EAAE;QAChB,GAAG,YAAY,CAAC,IAAI,EAAE;KACvB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7D,oEAAoE;QACpE,MAAM,aAAa,GAAG;YACpB,GAAG,cAAc;YACjB,GAAG,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxD,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,aAAa,GACjB,aAAa,KAAK,SAAS;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE9C,6DAA6D;QAC7D,IAAI,OAAO,GAAG,aAAa,CAAC;QAC5B,IAAI,OAAO,GAAoC,OAAO;YACpD,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAEhD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,uEAAuE;YACvE,+DAA+D;YAC/D,aAAa;YACb,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC9D,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvC,OAAO,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,4DAA4D;QAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,YAAY,EAAE,CAAC;gBACf,OAAO,GAAG,QAAQ,CAAC;gBACnB,oEAAoE;gBACpE,uCAAuC;gBACvC,MAAM,IAAI,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IACE,OAAO,KAAK,SAAS;oBACrB,IAAI,KAAK,SAAS;oBAClB,QAAQ,KAAK,SAAS,EACtB,CAAC;oBACD,OAAO,GAAG;wBACR,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB;4BACE,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;4BACjD,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC1B;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;YAChE,qEAAqE;YACrE,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CACrC,CAAC;YACF,MAAM,aAAa,GACjB,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,YAAY,EAAE,CAAC;gBACf,OAAO,GAAG,aAAa,CAAC;gBACxB,OAAO,GAAG,aAAa;qBACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;qBAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,OAAO,GACX,aAAa,KAAK,SAAS;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9C,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;gBACvC,sBAAsB,EAAE,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,GAAG,QAAQ,CAAC;QACrB,CAAC;QAED,4DAA4D;QAC5D,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAY,CAAC;QACjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,gEAAgE;QAChE,2EAA2E;QAC3E,uCAAuC;QACvC,MAAM,YAAY,GAAG;YACnB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SACrD,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;QACnD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,gBAAgB,EAAE,CAAC;QACrB,CAAC;QAED,6DAA6D;QAC7D,yEAAyE;QACzE,4EAA4E;QAC5E,wEAAwE;QACxE,oEAAoE;QACpE,UAAU;QACV,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAC9C,EAAE,cAAc,CAAC;QAClB,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAC7D,IAAI,MAAuC,CAAC;QAC5C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EACrE,CAAC;YACD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,6DAA6D;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC;QACpD,wEAAwE;QACxE,0EAA0E;QAC1E,2DAA2D;QAC3D,oEAAoE;QACpE,yBAAyB;QACzB,EAAE;QACF,wEAAwE;QACxE,yEAAyE;QACzE,qEAAqE;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,eAAe;QACf,MAAM,YAAY,GAChB,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;gBAC7B,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1E,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,gBAAgB,EAAE,CAAC;QACrB,CAAC;QAED,4DAA4D;QAC5D,4EAA4E;QAC5E,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC;QAC1D,MAAM,UAAU,GACd,YAAY,IAAI,SAAS;YACvB,CAAC,CAAC,CAAC,aAAa;iBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,iBAAiB;iBACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;iBACzD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;YAChD,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;YACtE,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,CAAC;YACrC,YAAY;YACZ,YAAY;YACZ,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;YAC5D,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,UAAU,EAAE,CAAC;QACf,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,WAAW,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,4EAA4E;IAC5E,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ;QACR,KAAK,EAAE;YACL,UAAU;YACV,WAAW;YACX,WAAW;YACX,sBAAsB;YACtB,YAAY;YACZ,kBAAkB;YAClB,WAAW;YACX,gBAAgB;YAChB,cAAc;YACd,sBAAsB,EAAE,SAAS,CAAC,QAAQ;YAC1C,gBAAgB;YAChB,cAAc;YACd,QAAQ,EAAE,QAAQ,CAAC,IAAI;SACxB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/dictionary/merge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type ScriptTables } from "../script/conversion.js";
2
+ import type { DictionaryEntry } from "./entry.js";
3
+ /**
4
+ * Build the script conversion tables from the merged dictionary.
5
+ *
6
+ * The evidence is the merged entries rather than CC-CEDICT directly, which
7
+ * matters: the merge has already corrected neutral tones, repaired 儿化 and
8
+ * derived 繁體 forms for the phrase corpus, so what is counted here is what the
9
+ * dictionary actually holds rather than what one source said about it.
10
+ *
11
+ * Words are counted once each rather than weighted by frequency. A default is
12
+ * only there to keep the exception list short — every word it gets wrong is
13
+ * stored — so what matters is how many words agree, not how often they are
14
+ * said.
15
+ */
16
+ export declare function buildScriptTables(entries: readonly DictionaryEntry[]): ScriptTables;
17
+ //# sourceMappingURL=script-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-tables.d.ts","sourceRoot":"","sources":["../../src/dictionary/script-tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyNlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,YAAY,CA6Cd"}