@kensio/pinyinjs 1.7.6 → 1.7.8

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 (127) hide show
  1. package/README.md +2 -2
  2. package/data/full.counts +0 -0
  3. package/data/full.entries +46 -46
  4. package/data/manifest.json +15 -8
  5. package/data/script.map +102 -0
  6. package/data/standard.entries +8 -8
  7. package/dist/decode/chang-complement.d.ts +19 -0
  8. package/dist/decode/chang-complement.d.ts.map +1 -0
  9. package/dist/decode/chang-complement.js +113 -0
  10. package/dist/decode/chang-complement.js.map +1 -0
  11. package/dist/decode/chang-context.d.ts +9 -7
  12. package/dist/decode/chang-context.d.ts.map +1 -1
  13. package/dist/decode/chang-context.js +36 -3
  14. package/dist/decode/chang-context.js.map +1 -1
  15. package/dist/decode/chang-rule.d.ts +25 -15
  16. package/dist/decode/chang-rule.d.ts.map +1 -1
  17. package/dist/decode/chang-rule.js +38 -19
  18. package/dist/decode/chang-rule.js.map +1 -1
  19. package/dist/decode/convert-pipeline.d.ts.map +1 -1
  20. package/dist/decode/convert-pipeline.js +3 -3
  21. package/dist/decode/convert-pipeline.js.map +1 -1
  22. package/dist/decode/de-rule.d.ts +20 -0
  23. package/dist/decode/de-rule.d.ts.map +1 -1
  24. package/dist/decode/de-rule.js +87 -1
  25. package/dist/decode/de-rule.js.map +1 -1
  26. package/dist/decode/decode.d.ts +12 -25
  27. package/dist/decode/decode.d.ts.map +1 -1
  28. package/dist/decode/decode.js +10 -47
  29. package/dist/decode/decode.js.map +1 -1
  30. package/dist/decode/decoders.d.ts +9 -4
  31. package/dist/decode/decoders.d.ts.map +1 -1
  32. package/dist/decode/decoders.js +7 -7
  33. package/dist/decode/decoders.js.map +1 -1
  34. package/dist/decode/edge-context.d.ts +19 -0
  35. package/dist/decode/edge-context.d.ts.map +1 -1
  36. package/dist/decode/edge-context.js +41 -0
  37. package/dist/decode/edge-context.js.map +1 -1
  38. package/dist/decode/lattice-decode.d.ts +28 -0
  39. package/dist/decode/lattice-decode.d.ts.map +1 -0
  40. package/dist/decode/lattice-decode.js +48 -0
  41. package/dist/decode/lattice-decode.js.map +1 -0
  42. package/dist/decode/lattice-slice.d.ts +22 -6
  43. package/dist/decode/lattice-slice.d.ts.map +1 -1
  44. package/dist/decode/lattice-slice.js +24 -18
  45. package/dist/decode/lattice-slice.js.map +1 -1
  46. package/dist/decode/numbers.d.ts +0 -8
  47. package/dist/decode/numbers.d.ts.map +1 -1
  48. package/dist/decode/numbers.js +0 -10
  49. package/dist/decode/numbers.js.map +1 -1
  50. package/dist/decode/reading-rules.d.ts +1 -1
  51. package/dist/decode/reading-rules.d.ts.map +1 -1
  52. package/dist/decode/reading-rules.js +3 -2
  53. package/dist/decode/reading-rules.js.map +1 -1
  54. package/dist/decode/rules.d.ts +1 -1
  55. package/dist/decode/rules.d.ts.map +1 -1
  56. package/dist/decode/rules.js +1 -1
  57. package/dist/decode/rules.js.map +1 -1
  58. package/dist/decode/run-context.d.ts +33 -0
  59. package/dist/decode/run-context.d.ts.map +1 -0
  60. package/dist/decode/run-context.js +47 -0
  61. package/dist/decode/run-context.js.map +1 -0
  62. package/dist/decode/run-lattice.d.ts +13 -10
  63. package/dist/decode/run-lattice.d.ts.map +1 -1
  64. package/dist/decode/run-lattice.js +15 -12
  65. package/dist/decode/run-lattice.js.map +1 -1
  66. package/dist/decode/script-region.d.ts +15 -0
  67. package/dist/decode/script-region.d.ts.map +1 -0
  68. package/dist/decode/script-region.js +61 -0
  69. package/dist/decode/script-region.js.map +1 -0
  70. package/dist/decode/script-types.d.ts +11 -2
  71. package/dist/decode/script-types.d.ts.map +1 -1
  72. package/dist/decode/script-types.js +2 -1
  73. package/dist/decode/script-types.js.map +1 -1
  74. package/dist/decode/script-words.d.ts +7 -5
  75. package/dist/decode/script-words.d.ts.map +1 -1
  76. package/dist/decode/script-words.js +18 -25
  77. package/dist/decode/script-words.js.map +1 -1
  78. package/dist/decode/script.d.ts.map +1 -1
  79. package/dist/decode/script.js +2 -1
  80. package/dist/decode/script.js.map +1 -1
  81. package/dist/dictionary/artifact-claims.d.ts +8 -0
  82. package/dist/dictionary/artifact-claims.d.ts.map +1 -1
  83. package/dist/dictionary/artifact-claims.js +11 -1
  84. package/dist/dictionary/artifact-claims.js.map +1 -1
  85. package/dist/dictionary/artifact.d.ts.map +1 -1
  86. package/dist/dictionary/artifact.js +3 -5
  87. package/dist/dictionary/artifact.js.map +1 -1
  88. package/dist/dictionary/measure-tone.d.ts +36 -0
  89. package/dist/dictionary/measure-tone.d.ts.map +1 -0
  90. package/dist/dictionary/measure-tone.js +139 -0
  91. package/dist/dictionary/measure-tone.js.map +1 -0
  92. package/dist/dictionary/merge-types.d.ts +8 -3
  93. package/dist/dictionary/merge-types.d.ts.map +1 -1
  94. package/dist/dictionary/merge-types.js.map +1 -1
  95. package/dist/dictionary/merge.d.ts.map +1 -1
  96. package/dist/dictionary/merge.js +7 -1
  97. package/dist/dictionary/merge.js.map +1 -1
  98. package/dist/dictionary/overrides.d.ts +5 -0
  99. package/dist/dictionary/overrides.d.ts.map +1 -1
  100. package/dist/dictionary/overrides.js +5 -5
  101. package/dist/dictionary/overrides.js.map +1 -1
  102. package/dist/dictionary/script-tables.js +91 -13
  103. package/dist/dictionary/script-tables.js.map +1 -1
  104. package/dist/dictionary/source.d.ts +22 -0
  105. package/dist/dictionary/source.d.ts.map +1 -1
  106. package/dist/dictionary/source.js +24 -0
  107. package/dist/dictionary/source.js.map +1 -1
  108. package/dist/dictionary/word-counts.d.ts +74 -0
  109. package/dist/dictionary/word-counts.d.ts.map +1 -0
  110. package/dist/dictionary/word-counts.js +142 -0
  111. package/dist/dictionary/word-counts.js.map +1 -0
  112. package/dist/dictionary/word-readings.d.ts.map +1 -1
  113. package/dist/dictionary/word-readings.js +3 -0
  114. package/dist/dictionary/word-readings.js.map +1 -1
  115. package/dist/index.d.ts +3 -2
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +3 -2
  118. package/dist/index.js.map +1 -1
  119. package/dist/script/glyphs.d.ts +9 -8
  120. package/dist/script/glyphs.d.ts.map +1 -1
  121. package/dist/script/glyphs.js +21 -48
  122. package/dist/script/glyphs.js.map +1 -1
  123. package/dist/script/reading-splits.d.ts +41 -0
  124. package/dist/script/reading-splits.d.ts.map +1 -0
  125. package/dist/script/reading-splits.js +98 -0
  126. package/dist/script/reading-splits.js.map +1 -0
  127. package/package.json +1 -1
@@ -0,0 +1,74 @@
1
+ import type { DictionaryEntry } from "./entry.js";
2
+ /**
3
+ * Corpus counts for every key of a tier, one variable-length integer each.
4
+ *
5
+ * Counts are positional in the same sense the frequency table is: entry *n*
6
+ * describes the key at position *n* of the matching
7
+ * {@link import("./key-index.js").KeyIndex}, which is what
8
+ * {@link import("./dictionary.js").Dictionary.wordAt} reads.
9
+ *
10
+ * The encoding is LEB128, measured against the alternatives on the full tier's
11
+ * 723,147 keys. It takes 747 KB, and 243 KB brotli, where a fixed 32-bit array
12
+ * takes 2,825 KB and 299 KB and decimal text takes 1,586 KB and 281 KB. Two
13
+ * thirds of the keys are attested nowhere and most of the rest carry a small
14
+ * count, and a fixed width pays for the maximum on all of them.
15
+ *
16
+ * Unlike the rest of the artifact this *is* parsed on load, into one typed
17
+ * array. Nothing in a browser reads it, so the load cost buys a random access
18
+ * that a varint stream cannot otherwise give.
19
+ */
20
+ export declare class WordCounts {
21
+ #private;
22
+ /**
23
+ * Encode raw counts, in key order.
24
+ *
25
+ * A count of zero means the word is attested nowhere in the corpus, which is
26
+ * a fact about the word and is stored as one. Fractions and negatives are
27
+ * floored into range rather than rejected, since a source that supplies one
28
+ * has already been through the merge.
29
+ */
30
+ static build(counts: readonly number[]): WordCounts;
31
+ /**
32
+ * Decode packed bytes read back from an artifact.
33
+ *
34
+ * How many counts there are is a property of the stream rather than an
35
+ * argument, since every count ends at the first byte without a continuation
36
+ * bit. A truncated stream ends mid-count, and the trailing bytes are dropped
37
+ * rather than reported as a value the file never held.
38
+ */
39
+ static from(packed: Uint8Array): WordCounts;
40
+ /**
41
+ * Hold decoded counts beside the bytes they came from. Use
42
+ * {@link WordCounts.build} or {@link WordCounts.from}.
43
+ */
44
+ private constructor();
45
+ /**
46
+ * How many keys the counts describe.
47
+ *
48
+ * Worth checking against {@link import("./dictionary.js").Dictionary.size}
49
+ * before pairing the two by position. The counts are built for one tier, and
50
+ * against any other tier every position would name a different word.
51
+ */
52
+ get size(): number;
53
+ /**
54
+ * Corpus occurrences of the key at a position.
55
+ *
56
+ * Positions outside the table report zero, which is what an unattested word
57
+ * reports, so a caller ranking by count sorts a missing key to the bottom.
58
+ */
59
+ countOf(at: number): number;
60
+ /**
61
+ * The packed bytes, ready to be written out.
62
+ */
63
+ serialise(): Uint8Array;
64
+ }
65
+ /**
66
+ * Compile the counts artifact from merged entries.
67
+ *
68
+ * The keys are claimed and ordered the way `artifact.ts` claims and orders
69
+ * them, so position *n* here is position *n* there. Only the `full` tier is
70
+ * written: a caller ranking words wants the whole vocabulary ordered, and a
71
+ * ranking over part of it answers a different question.
72
+ */
73
+ export declare function buildWordCounts(entries: readonly DictionaryEntry[]): WordCounts;
74
+ //# sourceMappingURL=word-counts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"word-counts.d.ts","sourceRoot":"","sources":["../../src/dictionary/word-counts.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAelD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAgBlD;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAkB1C;IAKD;;;OAGG;IACH,OAAO,eAGN;IAED;;;;;;OAMG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1B;IAED;;OAEG;IACH,SAAS,IAAI,UAAU,CAEtB;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,UAAU,CAIZ"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Raw corpus counts, kept beside the quantised table rather than inside it.
3
+ *
4
+ * {@link import("./frequency-table.js").FrequencyTable} packs a count into four
5
+ * bits, because 16 buckets are all the decoder compares and they cost 9 KB
6
+ * where raw single-byte counts cost 23 KB. A caller ranking words against each
7
+ * other needs what that packing throws away. Rank the 120,858 CC-CEDICT
8
+ * headwords the full tier holds by `cost` and 5,934 of them land on the value
9
+ * at rank 10,000, so which words make a top-10,000 cut is decided by codepoint
10
+ * order. Rank the same words on the counts those buckets were quantised from
11
+ * and the tie at that rank is 16 words wide.
12
+ *
13
+ * So this is a second artifact, read by a caller that asks for it and by
14
+ * nothing on the decoding path. See `docs/dictionaries/` for the shape of it.
15
+ */
16
+ import { claimKeys, orderedClaims } from "./artifact-claims.js";
17
+ /**
18
+ * The largest count that survives a round trip, which is 32 bits of varint.
19
+ *
20
+ * jieba's busiest word is attested 883,634 times, which leaves the ceiling
21
+ * three orders of magnitude clear of anything the corpus holds. It bounds the
22
+ * encoder rather than rejecting data.
23
+ */
24
+ const MAX_COUNT = 0xff_ff_ff_ff;
25
+ const CONTINUATION = 0x80;
26
+ const PAYLOAD = 0x7f;
27
+ const SHIFT = 7;
28
+ /**
29
+ * Corpus counts for every key of a tier, one variable-length integer each.
30
+ *
31
+ * Counts are positional in the same sense the frequency table is: entry *n*
32
+ * describes the key at position *n* of the matching
33
+ * {@link import("./key-index.js").KeyIndex}, which is what
34
+ * {@link import("./dictionary.js").Dictionary.wordAt} reads.
35
+ *
36
+ * The encoding is LEB128, measured against the alternatives on the full tier's
37
+ * 723,147 keys. It takes 747 KB, and 243 KB brotli, where a fixed 32-bit array
38
+ * takes 2,825 KB and 299 KB and decimal text takes 1,586 KB and 281 KB. Two
39
+ * thirds of the keys are attested nowhere and most of the rest carry a small
40
+ * count, and a fixed width pays for the maximum on all of them.
41
+ *
42
+ * Unlike the rest of the artifact this *is* parsed on load, into one typed
43
+ * array. Nothing in a browser reads it, so the load cost buys a random access
44
+ * that a varint stream cannot otherwise give.
45
+ */
46
+ export class WordCounts {
47
+ /**
48
+ * Encode raw counts, in key order.
49
+ *
50
+ * A count of zero means the word is attested nowhere in the corpus, which is
51
+ * a fact about the word and is stored as one. Fractions and negatives are
52
+ * floored into range rather than rejected, since a source that supplies one
53
+ * has already been through the merge.
54
+ */
55
+ static build(counts) {
56
+ const values = Uint32Array.from(counts, (count) => Number.isFinite(count) ? Math.min(MAX_COUNT, Math.max(0, count)) : 0);
57
+ const packed = [];
58
+ for (const value of values) {
59
+ let remaining = value;
60
+ do {
61
+ const byte = remaining & PAYLOAD;
62
+ remaining >>>= SHIFT;
63
+ packed.push(remaining > 0 ? byte | CONTINUATION : byte);
64
+ } while (remaining > 0);
65
+ }
66
+ return new WordCounts(values, Uint8Array.from(packed));
67
+ }
68
+ /**
69
+ * Decode packed bytes read back from an artifact.
70
+ *
71
+ * How many counts there are is a property of the stream rather than an
72
+ * argument, since every count ends at the first byte without a continuation
73
+ * bit. A truncated stream ends mid-count, and the trailing bytes are dropped
74
+ * rather than reported as a value the file never held.
75
+ */
76
+ static from(packed) {
77
+ const values = [];
78
+ let value = 0;
79
+ let shift = 0;
80
+ for (const byte of packed) {
81
+ // `+` rather than `|`, which is signed and would wrap the top bit of a
82
+ // 32-bit count into a negative number.
83
+ value += (byte & PAYLOAD) * 2 ** shift;
84
+ if ((byte & CONTINUATION) === 0) {
85
+ values.push(value);
86
+ value = 0;
87
+ shift = 0;
88
+ }
89
+ else {
90
+ shift += SHIFT;
91
+ }
92
+ }
93
+ return new WordCounts(Uint32Array.from(values), packed);
94
+ }
95
+ #counts;
96
+ #packed;
97
+ /**
98
+ * Hold decoded counts beside the bytes they came from. Use
99
+ * {@link WordCounts.build} or {@link WordCounts.from}.
100
+ */
101
+ constructor(counts, packed) {
102
+ this.#counts = counts;
103
+ this.#packed = packed;
104
+ }
105
+ /**
106
+ * How many keys the counts describe.
107
+ *
108
+ * Worth checking against {@link import("./dictionary.js").Dictionary.size}
109
+ * before pairing the two by position. The counts are built for one tier, and
110
+ * against any other tier every position would name a different word.
111
+ */
112
+ get size() {
113
+ return this.#counts.length;
114
+ }
115
+ /**
116
+ * Corpus occurrences of the key at a position.
117
+ *
118
+ * Positions outside the table report zero, which is what an unattested word
119
+ * reports, so a caller ranking by count sorts a missing key to the bottom.
120
+ */
121
+ countOf(at) {
122
+ return this.#counts[at] ?? 0;
123
+ }
124
+ /**
125
+ * The packed bytes, ready to be written out.
126
+ */
127
+ serialise() {
128
+ return this.#packed;
129
+ }
130
+ }
131
+ /**
132
+ * Compile the counts artifact from merged entries.
133
+ *
134
+ * The keys are claimed and ordered the way `artifact.ts` claims and orders
135
+ * them, so position *n* here is position *n* there. Only the `full` tier is
136
+ * written: a caller ranking words wants the whole vocabulary ordered, and a
137
+ * ranking over part of it answers a different question.
138
+ */
139
+ export function buildWordCounts(entries) {
140
+ return WordCounts.build(orderedClaims(claimKeys(entries)).map(([, entry]) => entry.frequency));
141
+ }
142
+ //# sourceMappingURL=word-counts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"word-counts.js","sourceRoot":"","sources":["../../src/dictionary/word-counts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"word-readings.d.ts","sourceRoot":"","sources":["../../src/dictionary/word-readings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE7E;;GAEG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,cAAc,CAahB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EAsBlD,CAAC"}
1
+ {"version":3,"file":"word-readings.d.ts","sourceRoot":"","sources":["../../src/dictionary/word-readings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE7E;;GAEG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,cAAc,CAahB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EAyBlD,CAAC"}
@@ -34,6 +34,9 @@ export const WORD_READINGS = [
34
34
  reads("重複", "chóng fù", "one of two 繁體 spellings, both keyed"),
35
35
  reads("重覆", "chóng fù", "the other, on the same entry"),
36
36
  reads("下麵", "xià miàn", "both spellings of a word CC-CEDICT writes twice"),
37
+ reads("一个", "yī gè", "个 counting is written with its tone"),
38
+ reads("那个人", "nà ge rén", "and 那个's 轻声 holds inside a longer key"),
39
+ reads("独自个", "dú zì gě", "while 个's other reading is not the 量词"),
37
40
  reads("做什么", "zuò shén me", "an uncorroborated key held to 什么"),
38
41
  reads("什么意思", "shén me yì si", "and to 意思, on the neutral tone"),
39
42
  reads("分子结构", "fēn zǐ jié gòu", "but not to a sense 分子 also carries"),
@@ -1 +1 @@
1
- {"version":3,"file":"word-readings.js","sourceRoot":"","sources":["../../src/dictionary/word-readings.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,QAAgB,EAChB,GAAW;IAEX,OAAO;QACL,WAAW,EAAE,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG,GAAG;QAC7C,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,iCAAiC,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,IAAI,UAAU,MAAM,cAAc,QAAQ,EAAE,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA8B;IACtD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,iCAAiC,CAAC;IACtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,+BAA+B,CAAC;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,8CAA8C,CAAC;IACnE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,6BAA6B,CAAC;IACnD,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,yBAAyB,CAAC;IAC1D,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,+BAA+B,CAAC;IAChE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,oCAAoC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,uCAAuC,CAAC;IAC/D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,2CAA2C,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,2CAA2C,CAAC;IAClE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,oBAAoB,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,oBAAoB,CAAC;IAC/C,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,oCAAoC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,oCAAoC,CAAC;IAC5D,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,kDAAkD,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,qCAAqC,CAAC;IAC9D,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,8BAA8B,CAAC;IACvD,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,iDAAiD,CAAC;IAC1E,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,kCAAkC,CAAC;IAC/D,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,gCAAgC,CAAC;IAChE,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,oCAAoC,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"word-readings.js","sourceRoot":"","sources":["../../src/dictionary/word-readings.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,QAAgB,EAChB,GAAW;IAEX,OAAO;QACL,WAAW,EAAE,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG,GAAG;QAC7C,KAAK,EAAE,CAAC,UAA2B,EAAsB,EAAE;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,iCAAiC,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,IAAI,UAAU,MAAM,cAAc,QAAQ,EAAE,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA8B;IACtD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,iCAAiC,CAAC;IACtD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,+BAA+B,CAAC;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,8CAA8C,CAAC;IACnE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,6BAA6B,CAAC;IACnD,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,yBAAyB,CAAC;IAC1D,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,+BAA+B,CAAC;IAChE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,oCAAoC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,uCAAuC,CAAC;IAC/D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,2CAA2C,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,2CAA2C,CAAC;IAClE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,oBAAoB,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,oBAAoB,CAAC;IAC/C,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,oCAAoC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,oCAAoC,CAAC;IAC5D,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,kDAAkD,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,qCAAqC,CAAC;IAC9D,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,8BAA8B,CAAC;IACvD,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,iDAAiD,CAAC;IAC1E,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,qCAAqC,CAAC;IAC3D,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,uCAAuC,CAAC;IAClE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,uCAAuC,CAAC;IACjE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,kCAAkC,CAAC;IAC/D,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,gCAAgC,CAAC;IAChE,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,oCAAoC,CAAC;CACtE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export { isSameReading, isSameSyllable } from "./dictionary/entry.js";
13
13
  export type { DictionaryEntry, EntryReadings } from "./dictionary/entry.js";
14
14
  export { attachErhua, isErFinal, NON_ERHUA_ER_WORDS, withErhua, } from "./dictionary/erhua.js";
15
15
  export { FREQUENCY_BUCKETS, FrequencyTable, } from "./dictionary/frequency-table.js";
16
+ export { buildWordCounts, WordCounts } from "./dictionary/word-counts.js";
16
17
  export { KeyIndex } from "./dictionary/key-index.js";
17
18
  export type { KeyLookup } from "./dictionary/key-index.js";
18
19
  export { mergeSources } from "./dictionary/merge.js";
@@ -25,7 +26,7 @@ export { pairScripts, TraditionalTable } from "./dictionary/traditional.js";
25
26
  export type { ScriptPairing } from "./dictionary/traditional.js";
26
27
  export { Dictionary } from "./dictionary/dictionary.js";
27
28
  export type { DictionaryReadings, WordEntry } from "./dictionary/dictionary.js";
28
- export { fetchSource, loadArtifact, loadDictionary, loadScriptTables, SCRIPT_FILE, tierFiles, } from "./dictionary/source.js";
29
+ export { COUNTS_FILE, fetchSource, loadArtifact, loadDictionary, loadScriptTables, loadWordCounts, SCRIPT_FILE, tierFiles, } from "./dictionary/source.js";
29
30
  export type { DictionarySource } from "./dictionary/source.js";
30
31
  export { convert, convertGreedily, convertPieces, joinPieces, } from "./decode/convert.js";
31
32
  export type { ConvertedPiece, ConvertOptions } from "./decode/convert.js";
@@ -50,7 +51,7 @@ export type { ReadingProjection, ReadingUnit } from "./decode/locking.js";
50
51
  export { applyEdgeRules, tagOf, wordEndingAt, wordStartingAt, } from "./decode/rules.js";
51
52
  export type { EdgeContext, EdgeRule, EdgeVerdict } from "./decode/rules.js";
52
53
  export type { PositionalReading, ReadingHint, ReadingHints, WordReading, } from "./decode/hints.js";
53
- export { ADJECTIVAL_CHANG, ATTESTED_ERHUA, COUNTED_MEASURE, MODAL_DE, PARTICLE_DE, PLAYING_TAN, READING_RULES, TEACHING_JIAO, } from "./decode/reading-rules.js";
54
+ export { ADJECTIVAL_CHANG, ATTESTED_ERHUA, COUNTED_MEASURE, MODAL_DE, PARTICLE_DE, PLAYING_TAN, POTENTIAL_DE, READING_RULES, TEACHING_JIAO, } from "./decode/reading-rules.js";
54
55
  export { readingCost, shortestPath, spacingCost } from "./decode/viterbi.js";
55
56
  export type { CostOf } from "./decode/viterbi.js";
56
57
  export type { DecodedWord, ScoredWord, WordSeparator } from "./decode/word.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,13 +10,14 @@ export { BUILD_ASSERTIONS, BuiltDictionary, checkBuild, } from "./dictionary/ass
10
10
  export { isSameReading, isSameSyllable } from "./dictionary/entry.js";
11
11
  export { attachErhua, isErFinal, NON_ERHUA_ER_WORDS, withErhua, } from "./dictionary/erhua.js";
12
12
  export { FREQUENCY_BUCKETS, FrequencyTable, } from "./dictionary/frequency-table.js";
13
+ export { buildWordCounts, WordCounts } from "./dictionary/word-counts.js";
13
14
  export { KeyIndex } from "./dictionary/key-index.js";
14
15
  export { mergeSources } from "./dictionary/merge.js";
15
16
  export { OVERRIDE_READINGS, READING_OVERRIDES, readOverrideReading, } from "./dictionary/overrides.js";
16
17
  export { readAlignedReading, readDictionaryReading, } from "./dictionary/reading.js";
17
18
  export { pairScripts, TraditionalTable } from "./dictionary/traditional.js";
18
19
  export { Dictionary } from "./dictionary/dictionary.js";
19
- export { fetchSource, loadArtifact, loadDictionary, loadScriptTables, SCRIPT_FILE, tierFiles, } from "./dictionary/source.js";
20
+ export { COUNTS_FILE, fetchSource, loadArtifact, loadDictionary, loadScriptTables, loadWordCounts, SCRIPT_FILE, tierFiles, } from "./dictionary/source.js";
20
21
  export { convert, convertGreedily, convertPieces, joinPieces, } from "./decode/convert.js";
21
22
  export { isUncertain, scoreReadings } from "./decode/confidence.js";
22
23
  export { decodeReadings, decodeRun, decodeRunScored, decodeSpacing, } from "./decode/decode.js";
@@ -30,7 +31,7 @@ export { buildScriptTables } from "./dictionary/script-tables.js";
30
31
  export { allEdges, buildLattice, cutPoints, READING_CHARGE, } from "./decode/lattice.js";
31
32
  export { isSettled, projectReadings, settledUnits, unitsOf, } from "./decode/locking.js";
32
33
  export { applyEdgeRules, tagOf, wordEndingAt, wordStartingAt, } from "./decode/rules.js";
33
- export { ADJECTIVAL_CHANG, ATTESTED_ERHUA, COUNTED_MEASURE, MODAL_DE, PARTICLE_DE, PLAYING_TAN, READING_RULES, TEACHING_JIAO, } from "./decode/reading-rules.js";
34
+ export { ADJECTIVAL_CHANG, ATTESTED_ERHUA, COUNTED_MEASURE, MODAL_DE, PARTICLE_DE, PLAYING_TAN, POTENTIAL_DE, READING_RULES, TEACHING_JIAO, } from "./decode/reading-rules.js";
34
35
  export { readingCost, shortestPath, spacingCost } from "./decode/viterbi.js";
35
36
  export { cardinalHanzi, LARGEST_CARDINAL } from "./numerals/cardinal.js";
36
37
  export { DIGIT_CHARACTERS, numeralSyllable, QUANTITY_CHARACTERS, UNIT_VALUES, yaoSyllable, } from "./numerals/characters.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Syllable } from "../syllable/syllable.js";
2
+ export { isReadingScoped, isReadingSensitive } from "./reading-splits.js";
2
3
  /**
3
4
  * The regional 繁體 orthographies this package writes.
4
5
  *
@@ -40,14 +41,6 @@ export declare const CANONICAL_FORMS: ReadonlyMap<string, string>;
40
41
  * {@link CANONICAL_FORMS}.
41
42
  */
42
43
  export declare const HONG_KONG_FORMS: ReadonlyMap<string, string>;
43
- /**
44
- * Whether a character's regional form depends on how it is read.
45
- *
46
- * Exposed so that a conversion can report the choice as uncertain when it had
47
- * no reading to go on, rather than presenting a default as though it were
48
- * settled.
49
- */
50
- export declare function isReadingSensitive(character: string): boolean;
51
44
  /**
52
45
  * Normalise one 繁體 character to the canonical form the dictionary stores.
53
46
  *
@@ -83,6 +76,14 @@ export declare function toCanonicalGlyphs(text: string): string;
83
76
  * changes how a character is read.
84
77
  */
85
78
  export declare function toRegionalGlyph(character: string, region: Region, syllable?: Syllable): string;
79
+ /**
80
+ * Every form a character can take in a region, likeliest first.
81
+ *
82
+ * The region's own answer followed by whatever a reading would have kept, which
83
+ * is what a conversion made without a reading needs in order to say what it was
84
+ * choosing between.
85
+ */
86
+ export declare function regionalGlyphsOf(character: string, region: Region): readonly string[];
86
87
  /**
87
88
  * Write a whole canonical text in a region's orthography.
88
89
  *
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/script/glyphs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,YAAI,IAAI,EAAE,IAAI,CAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,OAAwB,CAAC;AAiFpD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAsC1D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAUR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAO,GAC/C,MAAM,CASR"}
1
+ {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/script/glyphs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,YAAI,IAAI,EAAE,IAAI,CAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,OAAwB,CAAC;AAiFpD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,SAAS,MAAM,EAAE,CAOnB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAO,GAC/C,MAAM,CASR"}
@@ -1,4 +1,6 @@
1
1
  import { toCharacters } from "./characters.js";
2
+ import { splitFormAt, splitFormsOf } from "./reading-splits.js";
3
+ export { isReadingScoped, isReadingSensitive } from "./reading-splits.js";
2
4
  /**
3
5
  * The regional 繁體 orthographies this package writes.
4
6
  *
@@ -92,7 +94,7 @@ const CANONICAL_PAIRS = "僞偽衹只啓啟喫吃粧妝嫺嫻嬀媯峯峰捝挩
92
94
  const HONG_KONG_PAIRS = "兌兑叄叁啟啓囪囱媼媪嫻嫺峰峯么幺悅悦慍愠戶户挩捝" +
93
95
  "搵揾敓敚敘敍柺枴梲棁榲榅梁樑簷檐檯枱氳氲汙污洩泄" +
94
96
  "涗涚溫温溼濕熅煴床牀痺痹著着睪睾稅税縕緼韁繮群羣" +
95
- "脫脱膃腽臥卧臺台菸煙蒕蒀參蔘蔥葱蘊藴蛻蜕衛衞裡裏" +
97
+ "脫脱膃腽臥卧臺台菸煙蒕蒀蔥葱蘊藴蛻蜕衛衞裡裏" +
96
98
  "說説轀輼醞醖鉤鈎銳鋭閱閲鯰鮎鰮鰛麵麪顎齶";
97
99
  /**
98
100
  * Variant 繁體 forms mapped to the canonical form, as a table.
@@ -107,47 +109,6 @@ export const CANONICAL_FORMS = readPairs(CANONICAL_PAIRS);
107
109
  * {@link CANONICAL_FORMS}.
108
110
  */
109
111
  export const HONG_KONG_FORMS = readPairs(HONG_KONG_PAIRS);
110
- /**
111
- * The one glyph mapping whose answer depends on how the character is read.
112
- *
113
- * Taiwan writes 著 for every sense; Hong Kong splits it, writing 着 for the
114
- * aspect particle and its relatives and keeping 著 for `zhù`. CC-CEDICT records
115
- * the same split in its 简体 column — `著 着 [zhe5]` against `著 著 [zhu4]` —
116
- * which is independent confirmation that the divide is real and where it falls.
117
- *
118
- * OpenCC resolves this with a phrase table. We resolve it with the reading,
119
- * which is the point of difference this feature exists for, and which
120
- * generalises to words no phrase table lists.
121
- *
122
- * `zhuó` is deliberately absent, and that is not an oversight: CC-CEDICT writes
123
- * it both ways — `著 着 [zhuo2]` for wearing or applying, `著 著 [zhuo2]` for
124
- * 執著 — so the reading genuinely does not settle it. It falls through to the
125
- * default below and is reported as uncertain rather than guessed at silently.
126
- */
127
- const READING_SPLITS = new Map([["著", new Map([["zhu", "著"]])]]);
128
- /**
129
- * A reading key ignoring tone and 儿化, which never bear on a glyph choice.
130
- *
131
- * Tone is dropped because the split that needs it — 著 — divides `zhù` from
132
- * `zhe` and `zháo`, and those differ in their vowels as well, so the initial
133
- * and final are enough and are what sources agree on most.
134
- */
135
- function readingKey(syllable) {
136
- if (syllable === undefined) {
137
- return undefined;
138
- }
139
- return `${syllable.initial}${syllable.final}`;
140
- }
141
- /**
142
- * Whether a character's regional form depends on how it is read.
143
- *
144
- * Exposed so that a conversion can report the choice as uncertain when it had
145
- * no reading to go on, rather than presenting a default as though it were
146
- * settled.
147
- */
148
- export function isReadingSensitive(character) {
149
- return READING_SPLITS.has(character);
150
- }
151
112
  /**
152
113
  * Normalise one 繁體 character to the canonical form the dictionary stores.
153
114
  *
@@ -208,12 +169,24 @@ export function toRegionalGlyph(character, region, syllable) {
208
169
  if (region === DEFAULT_REGION) {
209
170
  return character;
210
171
  }
211
- const split = READING_SPLITS.get(character);
212
- const kept = split?.get(readingKey(syllable) ?? "");
213
- if (kept !== undefined) {
214
- return kept;
215
- }
216
- return HONG_KONG_FORMS.get(character) ?? character;
172
+ return (splitFormAt(character, syllable) ??
173
+ HONG_KONG_FORMS.get(character) ??
174
+ character);
175
+ }
176
+ /**
177
+ * Every form a character can take in a region, likeliest first.
178
+ *
179
+ * The region's own answer followed by whatever a reading would have kept, which
180
+ * is what a conversion made without a reading needs in order to say what it was
181
+ * choosing between.
182
+ */
183
+ export function regionalGlyphsOf(character, region) {
184
+ return [
185
+ ...new Set([
186
+ toRegionalGlyph(character, region),
187
+ ...splitFormsOf(character),
188
+ ]),
189
+ ];
217
190
  }
218
191
  /**
219
192
  * Write a whole canonical text in a region's orthography.
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/script/glyphs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAU7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAqB,CAAC;AAEpD;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,eAAe,GACnB,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,MAAM,CAAC;AAET;;;;;;;;;;GAUG;AACH,MAAM,eAAe,GACnB,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,sBAAsB,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,cAAc,GAGhB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,QAA8B;IAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,UAAU,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,MAAc,EACd,QAAmB;IAEnB,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,MAAc,EACd,QAAQ,GAAsC,EAAE;IAEhD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/script/glyphs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The two 繁體 glyph mappings that a reading decides, and what reads them.
3
+ *
4
+ * Their own module because everything here is about one table of two entries,
5
+ * and `glyphs.ts` is otherwise about the flat pair tables. The split is what
6
+ * those tables cannot carry.
7
+ */
8
+ import type { Syllable } from "../syllable/syllable.js";
9
+ /**
10
+ * The form a split writes at a reading, or undefined where none applies.
11
+ *
12
+ * A caller with no syllable gets undefined, which is what sends it to the flat
13
+ * table's answer and makes the choice a guess.
14
+ */
15
+ export declare function splitFormAt(character: string, syllable: Syllable | undefined): string | undefined;
16
+ /**
17
+ * Every form a split writes for a character, in the order the table lists them.
18
+ */
19
+ export declare function splitFormsOf(character: string): readonly string[];
20
+ /**
21
+ * Whether a character's regional form depends on how it is read.
22
+ *
23
+ * Exposed so that a conversion can report the choice as uncertain when it had
24
+ * no reading to go on, rather than presenting a default as though it were
25
+ * settled.
26
+ */
27
+ export declare function isReadingSensitive(character: string): boolean;
28
+ /**
29
+ * Whether a character's Hong Kong form applies at one reading rather than all.
30
+ *
31
+ * The two shapes {@link READING_SPLITS} holds, told apart by what the split
32
+ * writes. A split naming the character itself is an exception to a mapping that
33
+ * otherwise holds, so the flat table keeps it — 著 is 着 in Hong Kong except at
34
+ * `zhù`. A split naming some other form is the whole of the mapping, so the
35
+ * flat table must not carry it, or every reading would take the regional form.
36
+ *
37
+ * Read by the derivation in `scripts/build-data/glyph-tables.ts`, which would
38
+ * otherwise fail the build for a mapping OpenCC makes and this file declines.
39
+ */
40
+ export declare function isReadingScoped(character: string): boolean;
41
+ //# sourceMappingURL=reading-splits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reading-splits.d.ts","sourceRoot":"","sources":["../../src/script/reading-splits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAgExD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D"}