@kensio/pinyinjs 1.7.4 → 1.7.6

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 (732) hide show
  1. package/README.md +128 -123
  2. package/data/full.entries +2595 -2595
  3. package/data/manifest.json +5 -5
  4. package/data/script.map +66 -3
  5. package/dist/accuracy/score-case.d.ts +23 -0
  6. package/dist/accuracy/score-case.d.ts.map +1 -0
  7. package/dist/accuracy/score-case.js +63 -0
  8. package/dist/accuracy/score-case.js.map +1 -0
  9. package/dist/accuracy/score.d.ts +1 -8
  10. package/dist/accuracy/score.d.ts.map +1 -1
  11. package/dist/accuracy/score.js +1 -55
  12. package/dist/accuracy/score.js.map +1 -1
  13. package/dist/cli/arguments.d.ts +4 -290
  14. package/dist/cli/arguments.d.ts.map +1 -1
  15. package/dist/cli/arguments.js +5 -357
  16. package/dist/cli/arguments.js.map +1 -1
  17. package/dist/cli/check-command.d.ts +9 -0
  18. package/dist/cli/check-command.d.ts.map +1 -0
  19. package/dist/cli/check-command.js +95 -0
  20. package/dist/cli/check-command.js.map +1 -0
  21. package/dist/cli/cli-input.d.ts +49 -0
  22. package/dist/cli/cli-input.d.ts.map +1 -0
  23. package/dist/cli/cli-input.js +31 -0
  24. package/dist/cli/cli-input.js.map +1 -0
  25. package/dist/cli/command.d.ts +97 -0
  26. package/dist/cli/command.d.ts.map +1 -0
  27. package/dist/cli/command.js +40 -0
  28. package/dist/cli/command.js.map +1 -0
  29. package/dist/cli/commands.d.ts +7 -110
  30. package/dist/cli/commands.d.ts.map +1 -1
  31. package/dist/cli/commands.js +14 -991
  32. package/dist/cli/commands.js.map +1 -1
  33. package/dist/cli/convert-command.d.ts +6 -0
  34. package/dist/cli/convert-command.d.ts.map +1 -0
  35. package/dist/cli/convert-command.js +52 -0
  36. package/dist/cli/convert-command.js.map +1 -0
  37. package/dist/cli/environment.d.ts +1 -1
  38. package/dist/cli/environment.d.ts.map +1 -1
  39. package/dist/cli/explain-command.d.ts +6 -0
  40. package/dist/cli/explain-command.d.ts.map +1 -0
  41. package/dist/cli/explain-command.js +40 -0
  42. package/dist/cli/explain-command.js.map +1 -0
  43. package/dist/cli/explain-syllable.d.ts +10 -0
  44. package/dist/cli/explain-syllable.d.ts.map +1 -0
  45. package/dist/cli/explain-syllable.js +70 -0
  46. package/dist/cli/explain-syllable.js.map +1 -0
  47. package/dist/cli/flag-help.d.ts +18 -0
  48. package/dist/cli/flag-help.d.ts.map +1 -0
  49. package/dist/cli/flag-help.js +78 -0
  50. package/dist/cli/flag-help.js.map +1 -0
  51. package/dist/cli/flag-lists.d.ts +49 -0
  52. package/dist/cli/flag-lists.d.ts.map +1 -0
  53. package/dist/cli/flag-lists.js +58 -0
  54. package/dist/cli/flag-lists.js.map +1 -0
  55. package/dist/cli/flag-values.d.ts +44 -0
  56. package/dist/cli/flag-values.d.ts.map +1 -0
  57. package/dist/cli/flag-values.js +56 -0
  58. package/dist/cli/flag-values.js.map +1 -0
  59. package/dist/cli/flags.d.ts +193 -0
  60. package/dist/cli/flags.d.ts.map +1 -0
  61. package/dist/cli/flags.js +133 -0
  62. package/dist/cli/flags.js.map +1 -0
  63. package/dist/cli/format-options.d.ts +29 -0
  64. package/dist/cli/format-options.d.ts.map +1 -0
  65. package/dist/cli/format-options.js +72 -0
  66. package/dist/cli/format-options.js.map +1 -0
  67. package/dist/cli/global-help.d.ts +23 -0
  68. package/dist/cli/global-help.d.ts.map +1 -0
  69. package/dist/cli/global-help.js +40 -0
  70. package/dist/cli/global-help.js.map +1 -0
  71. package/dist/cli/help.d.ts +1 -1
  72. package/dist/cli/help.d.ts.map +1 -1
  73. package/dist/cli/help.js +5 -99
  74. package/dist/cli/help.js.map +1 -1
  75. package/dist/cli/html-commands.d.ts +13 -0
  76. package/dist/cli/html-commands.d.ts.map +1 -0
  77. package/dist/cli/html-commands.js +49 -0
  78. package/dist/cli/html-commands.js.map +1 -0
  79. package/dist/cli/info-command.d.ts +7 -0
  80. package/dist/cli/info-command.d.ts.map +1 -0
  81. package/dist/cli/info-command.js +39 -0
  82. package/dist/cli/info-command.js.map +1 -0
  83. package/dist/cli/lookup-commands.d.ts +10 -0
  84. package/dist/cli/lookup-commands.d.ts.map +1 -0
  85. package/dist/cli/lookup-commands.js +101 -0
  86. package/dist/cli/lookup-commands.js.map +1 -0
  87. package/dist/cli/match-command.d.ts +11 -0
  88. package/dist/cli/match-command.d.ts.map +1 -0
  89. package/dist/cli/match-command.js +76 -0
  90. package/dist/cli/match-command.js.map +1 -0
  91. package/dist/cli/number-command.d.ts +12 -0
  92. package/dist/cli/number-command.d.ts.map +1 -0
  93. package/dist/cli/number-command.js +89 -0
  94. package/dist/cli/number-command.js.map +1 -0
  95. package/dist/cli/options.d.ts +30 -0
  96. package/dist/cli/options.d.ts.map +1 -0
  97. package/dist/cli/options.js +54 -0
  98. package/dist/cli/options.js.map +1 -0
  99. package/dist/cli/run-command.d.ts +24 -0
  100. package/dist/cli/run-command.d.ts.map +1 -0
  101. package/dist/cli/run-command.js +40 -0
  102. package/dist/cli/run-command.js.map +1 -0
  103. package/dist/cli/run.d.ts +4 -42
  104. package/dist/cli/run.d.ts.map +1 -1
  105. package/dist/cli/run.js +6 -61
  106. package/dist/cli/run.js.map +1 -1
  107. package/dist/cli/script-command.d.ts +10 -0
  108. package/dist/cli/script-command.d.ts.map +1 -0
  109. package/dist/cli/script-command.js +58 -0
  110. package/dist/cli/script-command.js.map +1 -0
  111. package/dist/cli/segment-command.d.ts +11 -0
  112. package/dist/cli/segment-command.d.ts.map +1 -0
  113. package/dist/cli/segment-command.js +53 -0
  114. package/dist/cli/segment-command.js.map +1 -0
  115. package/dist/cli/slug-command.d.ts +10 -0
  116. package/dist/cli/slug-command.d.ts.map +1 -0
  117. package/dist/cli/slug-command.js +28 -0
  118. package/dist/cli/slug-command.js.map +1 -0
  119. package/dist/cli/syllable-command.d.ts +14 -0
  120. package/dist/cli/syllable-command.d.ts.map +1 -0
  121. package/dist/cli/syllable-command.js +82 -0
  122. package/dist/cli/syllable-command.js.map +1 -0
  123. package/dist/cli/system-table.d.ts +12 -0
  124. package/dist/cli/system-table.d.ts.map +1 -0
  125. package/dist/cli/system-table.js +48 -0
  126. package/dist/cli/system-table.js.map +1 -0
  127. package/dist/cli/systems.d.ts +57 -0
  128. package/dist/cli/systems.d.ts.map +1 -0
  129. package/dist/cli/systems.js +27 -0
  130. package/dist/cli/systems.js.map +1 -0
  131. package/dist/cli/transcribe-command.d.ts +18 -0
  132. package/dist/cli/transcribe-command.d.ts.map +1 -0
  133. package/dist/cli/transcribe-command.js +86 -0
  134. package/dist/cli/transcribe-command.js.map +1 -0
  135. package/dist/cli/transcribe-reading.d.ts +15 -0
  136. package/dist/cli/transcribe-reading.d.ts.map +1 -0
  137. package/dist/cli/transcribe-reading.js +90 -0
  138. package/dist/cli/transcribe-reading.js.map +1 -0
  139. package/dist/cli/transcribe-rows.d.ts +26 -0
  140. package/dist/cli/transcribe-rows.d.ts.map +1 -0
  141. package/dist/cli/transcribe-rows.js +30 -0
  142. package/dist/cli/transcribe-rows.js.map +1 -0
  143. package/dist/cli/usage-error.d.ts +9 -0
  144. package/dist/cli/usage-error.d.ts.map +1 -0
  145. package/dist/cli/usage-error.js +9 -0
  146. package/dist/cli/usage-error.js.map +1 -0
  147. package/dist/decode/alternatives.d.ts +16 -0
  148. package/dist/decode/alternatives.d.ts.map +1 -0
  149. package/dist/decode/alternatives.js +31 -0
  150. package/dist/decode/alternatives.js.map +1 -0
  151. package/dist/decode/chang-context.d.ts +27 -0
  152. package/dist/decode/chang-context.d.ts.map +1 -0
  153. package/dist/decode/chang-context.js +66 -0
  154. package/dist/decode/chang-context.js.map +1 -0
  155. package/dist/decode/chang-rule.d.ts +37 -0
  156. package/dist/decode/chang-rule.d.ts.map +1 -0
  157. package/dist/decode/chang-rule.js +169 -0
  158. package/dist/decode/chang-rule.js.map +1 -0
  159. package/dist/decode/confidence.d.ts +11 -3
  160. package/dist/decode/confidence.d.ts.map +1 -1
  161. package/dist/decode/confidence.js +14 -121
  162. package/dist/decode/confidence.js.map +1 -1
  163. package/dist/decode/convert-options.d.ts +116 -0
  164. package/dist/decode/convert-options.d.ts.map +1 -0
  165. package/dist/decode/convert-options.js +2 -0
  166. package/dist/decode/convert-options.js.map +1 -0
  167. package/dist/decode/convert-pipeline.d.ts +18 -0
  168. package/dist/decode/convert-pipeline.d.ts.map +1 -0
  169. package/dist/decode/convert-pipeline.js +67 -0
  170. package/dist/decode/convert-pipeline.js.map +1 -0
  171. package/dist/decode/convert.d.ts +9 -118
  172. package/dist/decode/convert.d.ts.map +1 -1
  173. package/dist/decode/convert.js +5 -453
  174. package/dist/decode/convert.js.map +1 -1
  175. package/dist/decode/de-rule.d.ts +54 -0
  176. package/dist/decode/de-rule.d.ts.map +1 -0
  177. package/dist/decode/de-rule.js +113 -0
  178. package/dist/decode/de-rule.js.map +1 -0
  179. package/dist/decode/decode.d.ts +2 -15
  180. package/dist/decode/decode.d.ts.map +1 -1
  181. package/dist/decode/decode.js +2 -121
  182. package/dist/decode/decode.js.map +1 -1
  183. package/dist/decode/decoders.d.ts +32 -0
  184. package/dist/decode/decoders.d.ts.map +1 -0
  185. package/dist/decode/decoders.js +29 -0
  186. package/dist/decode/decoders.js.map +1 -0
  187. package/dist/decode/edge-context.d.ts +38 -0
  188. package/dist/decode/edge-context.d.ts.map +1 -0
  189. package/dist/decode/edge-context.js +57 -0
  190. package/dist/decode/edge-context.js.map +1 -0
  191. package/dist/decode/hint-lattice.d.ts +45 -0
  192. package/dist/decode/hint-lattice.d.ts.map +1 -0
  193. package/dist/decode/hint-lattice.js +154 -0
  194. package/dist/decode/hint-lattice.js.map +1 -0
  195. package/dist/decode/hints.d.ts +2 -45
  196. package/dist/decode/hints.d.ts.map +1 -1
  197. package/dist/decode/hints.js +1 -139
  198. package/dist/decode/hints.js.map +1 -1
  199. package/dist/decode/jiao-rule.d.ts +64 -0
  200. package/dist/decode/jiao-rule.d.ts.map +1 -0
  201. package/dist/decode/jiao-rule.js +115 -0
  202. package/dist/decode/jiao-rule.js.map +1 -0
  203. package/dist/decode/lattice-costs.d.ts +55 -0
  204. package/dist/decode/lattice-costs.d.ts.map +1 -0
  205. package/dist/decode/lattice-costs.js +90 -0
  206. package/dist/decode/lattice-costs.js.map +1 -0
  207. package/dist/decode/lattice-edges.d.ts +29 -0
  208. package/dist/decode/lattice-edges.d.ts.map +1 -0
  209. package/dist/decode/lattice-edges.js +78 -0
  210. package/dist/decode/lattice-edges.js.map +1 -0
  211. package/dist/decode/lattice-slice.d.ts +37 -0
  212. package/dist/decode/lattice-slice.d.ts.map +1 -0
  213. package/dist/decode/lattice-slice.js +43 -0
  214. package/dist/decode/lattice-slice.js.map +1 -0
  215. package/dist/decode/lattice-types.d.ts +101 -0
  216. package/dist/decode/lattice-types.d.ts.map +1 -0
  217. package/dist/decode/lattice-types.js +63 -0
  218. package/dist/decode/lattice-types.js.map +1 -0
  219. package/dist/decode/lattice.d.ts +2 -59
  220. package/dist/decode/lattice.d.ts.map +1 -1
  221. package/dist/decode/lattice.js +2 -118
  222. package/dist/decode/lattice.js.map +1 -1
  223. package/dist/decode/number-pieces.d.ts +62 -0
  224. package/dist/decode/number-pieces.d.ts.map +1 -0
  225. package/dist/decode/number-pieces.js +106 -0
  226. package/dist/decode/number-pieces.js.map +1 -0
  227. package/dist/decode/numbers.d.ts +53 -0
  228. package/dist/decode/numbers.d.ts.map +1 -0
  229. package/dist/decode/numbers.js +69 -0
  230. package/dist/decode/numbers.js.map +1 -0
  231. package/dist/decode/pieces.d.ts +78 -0
  232. package/dist/decode/pieces.d.ts.map +1 -0
  233. package/dist/decode/pieces.js +136 -0
  234. package/dist/decode/pieces.js.map +1 -0
  235. package/dist/decode/polyphone-rules.d.ts +11 -0
  236. package/dist/decode/polyphone-rules.d.ts.map +1 -0
  237. package/dist/decode/polyphone-rules.js +11 -0
  238. package/dist/decode/polyphone-rules.js.map +1 -0
  239. package/dist/decode/reading-rules.d.ts +3 -126
  240. package/dist/decode/reading-rules.d.ts.map +1 -1
  241. package/dist/decode/reading-rules.js +8 -434
  242. package/dist/decode/reading-rules.js.map +1 -1
  243. package/dist/decode/rules.d.ts +1 -17
  244. package/dist/decode/rules.d.ts.map +1 -1
  245. package/dist/decode/rules.js +1 -43
  246. package/dist/decode/rules.js.map +1 -1
  247. package/dist/decode/run-lattice.d.ts +52 -0
  248. package/dist/decode/run-lattice.d.ts.map +1 -0
  249. package/dist/decode/run-lattice.js +91 -0
  250. package/dist/decode/run-lattice.js.map +1 -0
  251. package/dist/decode/run-words.d.ts +17 -0
  252. package/dist/decode/run-words.d.ts.map +1 -0
  253. package/dist/decode/run-words.js +29 -0
  254. package/dist/decode/run-words.js.map +1 -0
  255. package/dist/decode/sandhi-input.d.ts +30 -0
  256. package/dist/decode/sandhi-input.d.ts.map +1 -0
  257. package/dist/decode/sandhi-input.js +35 -0
  258. package/dist/decode/sandhi-input.js.map +1 -0
  259. package/dist/decode/sandhi-tones.d.ts +97 -0
  260. package/dist/decode/sandhi-tones.d.ts.map +1 -0
  261. package/dist/decode/sandhi-tones.js +139 -0
  262. package/dist/decode/sandhi-tones.js.map +1 -0
  263. package/dist/decode/sandhi.d.ts +10 -7
  264. package/dist/decode/sandhi.d.ts.map +1 -1
  265. package/dist/decode/sandhi.js +11 -88
  266. package/dist/decode/sandhi.js.map +1 -1
  267. package/dist/decode/script-types.d.ts +76 -0
  268. package/dist/decode/script-types.d.ts.map +1 -0
  269. package/dist/decode/script-types.js +35 -0
  270. package/dist/decode/script-types.js.map +1 -0
  271. package/dist/decode/script-words.d.ts +32 -0
  272. package/dist/decode/script-words.d.ts.map +1 -0
  273. package/dist/decode/script-words.js +77 -0
  274. package/dist/decode/script-words.js.map +1 -0
  275. package/dist/decode/script.d.ts +3 -73
  276. package/dist/decode/script.d.ts.map +1 -1
  277. package/dist/decode/script.js +3 -109
  278. package/dist/decode/script.js.map +1 -1
  279. package/dist/decode/tan-rule.d.ts +68 -0
  280. package/dist/decode/tan-rule.d.ts.map +1 -0
  281. package/dist/decode/tan-rule.js +131 -0
  282. package/dist/decode/tan-rule.js.map +1 -0
  283. package/dist/decode/write-run.d.ts +21 -0
  284. package/dist/decode/write-run.d.ts.map +1 -0
  285. package/dist/decode/write-run.js +42 -0
  286. package/dist/decode/write-run.js.map +1 -0
  287. package/dist/dictionary/artifact-claims.d.ts +25 -0
  288. package/dist/dictionary/artifact-claims.d.ts.map +1 -0
  289. package/dist/dictionary/artifact-claims.js +47 -0
  290. package/dist/dictionary/artifact-claims.js.map +1 -0
  291. package/dist/dictionary/artifact-format.d.ts +86 -0
  292. package/dist/dictionary/artifact-format.d.ts.map +1 -0
  293. package/dist/dictionary/artifact-format.js +91 -0
  294. package/dist/dictionary/artifact-format.js.map +1 -0
  295. package/dist/dictionary/artifact-read.d.ts +34 -0
  296. package/dist/dictionary/artifact-read.d.ts.map +1 -0
  297. package/dist/dictionary/artifact-read.js +114 -0
  298. package/dist/dictionary/artifact-read.js.map +1 -0
  299. package/dist/dictionary/artifact.d.ts +4 -63
  300. package/dist/dictionary/artifact.d.ts.map +1 -1
  301. package/dist/dictionary/artifact.js +12 -229
  302. package/dist/dictionary/artifact.js.map +1 -1
  303. package/dist/dictionary/assertions.d.ts +5 -57
  304. package/dist/dictionary/assertions.d.ts.map +1 -1
  305. package/dist/dictionary/assertions.js +4 -317
  306. package/dist/dictionary/assertions.js.map +1 -1
  307. package/dist/dictionary/build-assertions.d.ts +12 -0
  308. package/dist/dictionary/build-assertions.d.ts.map +1 -0
  309. package/dist/dictionary/build-assertions.js +13 -0
  310. package/dist/dictionary/build-assertions.js.map +1 -0
  311. package/dist/dictionary/built-dictionary.d.ts +46 -0
  312. package/dist/dictionary/built-dictionary.d.ts.map +1 -0
  313. package/dist/dictionary/built-dictionary.js +97 -0
  314. package/dist/dictionary/built-dictionary.js.map +1 -0
  315. package/dist/dictionary/cedict-senses.d.ts +87 -0
  316. package/dist/dictionary/cedict-senses.d.ts.map +1 -0
  317. package/dist/dictionary/cedict-senses.js +126 -0
  318. package/dist/dictionary/cedict-senses.js.map +1 -0
  319. package/dist/dictionary/character-defaults.d.ts +26 -0
  320. package/dist/dictionary/character-defaults.d.ts.map +1 -0
  321. package/dist/dictionary/character-defaults.js +67 -0
  322. package/dist/dictionary/character-defaults.js.map +1 -0
  323. package/dist/dictionary/character-readings.d.ts +10 -0
  324. package/dist/dictionary/character-readings.d.ts.map +1 -0
  325. package/dist/dictionary/character-readings.js +25 -0
  326. package/dist/dictionary/character-readings.js.map +1 -0
  327. package/dist/dictionary/constituent-repair.d.ts +36 -0
  328. package/dist/dictionary/constituent-repair.d.ts.map +1 -0
  329. package/dist/dictionary/constituent-repair.js +117 -0
  330. package/dist/dictionary/constituent-repair.js.map +1 -0
  331. package/dist/dictionary/dictionary-entry.d.ts +37 -0
  332. package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
  333. package/dist/dictionary/dictionary-entry.js +41 -0
  334. package/dist/dictionary/dictionary-entry.js.map +1 -0
  335. package/dist/dictionary/dictionary-readings.d.ts +56 -0
  336. package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
  337. package/dist/dictionary/dictionary-readings.js +93 -0
  338. package/dist/dictionary/dictionary-readings.js.map +1 -0
  339. package/dist/dictionary/dictionary.d.ts +6 -60
  340. package/dist/dictionary/dictionary.d.ts.map +1 -1
  341. package/dist/dictionary/dictionary.js +9 -169
  342. package/dist/dictionary/dictionary.js.map +1 -1
  343. package/dist/dictionary/entry-invariants.d.ts +3 -0
  344. package/dist/dictionary/entry-invariants.d.ts.map +1 -0
  345. package/dist/dictionary/entry-invariants.js +67 -0
  346. package/dist/dictionary/entry-invariants.js.map +1 -0
  347. package/dist/dictionary/entry-lines.d.ts +35 -0
  348. package/dist/dictionary/entry-lines.d.ts.map +1 -0
  349. package/dist/dictionary/entry-lines.js +70 -0
  350. package/dist/dictionary/entry-lines.js.map +1 -0
  351. package/dist/dictionary/erhua-repair.d.ts +26 -0
  352. package/dist/dictionary/erhua-repair.d.ts.map +1 -0
  353. package/dist/dictionary/erhua-repair.js +49 -0
  354. package/dist/dictionary/erhua-repair.js.map +1 -0
  355. package/dist/dictionary/frequency-tones.d.ts +74 -0
  356. package/dist/dictionary/frequency-tones.d.ts.map +1 -0
  357. package/dist/dictionary/frequency-tones.js +128 -0
  358. package/dist/dictionary/frequency-tones.js.map +1 -0
  359. package/dist/dictionary/inventory-invariants.d.ts +3 -0
  360. package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
  361. package/dist/dictionary/inventory-invariants.js +54 -0
  362. package/dist/dictionary/inventory-invariants.js.map +1 -0
  363. package/dist/dictionary/locale-candidates.d.ts +40 -0
  364. package/dist/dictionary/locale-candidates.d.ts.map +1 -0
  365. package/dist/dictionary/locale-candidates.js +77 -0
  366. package/dist/dictionary/locale-candidates.js.map +1 -0
  367. package/dist/dictionary/locale-segments.d.ts +47 -0
  368. package/dist/dictionary/locale-segments.d.ts.map +1 -0
  369. package/dist/dictionary/locale-segments.js +141 -0
  370. package/dist/dictionary/locale-segments.js.map +1 -0
  371. package/dist/dictionary/locale.d.ts +1 -21
  372. package/dist/dictionary/locale.d.ts.map +1 -1
  373. package/dist/dictionary/locale.js +9 -198
  374. package/dist/dictionary/locale.js.map +1 -1
  375. package/dist/dictionary/merge-types.d.ts +127 -0
  376. package/dist/dictionary/merge-types.d.ts.map +1 -0
  377. package/dist/dictionary/merge-types.js +35 -0
  378. package/dist/dictionary/merge-types.js.map +1 -0
  379. package/dist/dictionary/merge-walk.d.ts +27 -0
  380. package/dist/dictionary/merge-walk.d.ts.map +1 -0
  381. package/dist/dictionary/merge-walk.js +49 -0
  382. package/dist/dictionary/merge-walk.js.map +1 -0
  383. package/dist/dictionary/merge-word.d.ts +7 -0
  384. package/dist/dictionary/merge-word.d.ts.map +1 -0
  385. package/dist/dictionary/merge-word.js +91 -0
  386. package/dist/dictionary/merge-word.js.map +1 -0
  387. package/dist/dictionary/merge.d.ts +5 -62
  388. package/dist/dictionary/merge.d.ts.map +1 -1
  389. package/dist/dictionary/merge.js +32 -725
  390. package/dist/dictionary/merge.js.map +1 -1
  391. package/dist/dictionary/proper-noun.d.ts +28 -0
  392. package/dist/dictionary/proper-noun.d.ts.map +1 -0
  393. package/dist/dictionary/proper-noun.js +43 -0
  394. package/dist/dictionary/proper-noun.js.map +1 -0
  395. package/dist/dictionary/reading-agreement.d.ts +71 -0
  396. package/dist/dictionary/reading-agreement.d.ts.map +1 -0
  397. package/dist/dictionary/reading-agreement.js +156 -0
  398. package/dist/dictionary/reading-agreement.js.map +1 -0
  399. package/dist/dictionary/script-conversion.d.ts +28 -0
  400. package/dist/dictionary/script-conversion.d.ts.map +1 -0
  401. package/dist/dictionary/script-conversion.js +58 -0
  402. package/dist/dictionary/script-conversion.js.map +1 -0
  403. package/dist/dictionary/script-pairings.d.ts +74 -0
  404. package/dist/dictionary/script-pairings.d.ts.map +1 -0
  405. package/dist/dictionary/script-pairings.js +120 -0
  406. package/dist/dictionary/script-pairings.js.map +1 -0
  407. package/dist/dictionary/script-tables.d.ts.map +1 -1
  408. package/dist/dictionary/script-tables.js +2 -165
  409. package/dist/dictionary/script-tables.js.map +1 -1
  410. package/dist/dictionary/taiwan-reading.d.ts +8 -0
  411. package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
  412. package/dist/dictionary/taiwan-reading.js +38 -0
  413. package/dist/dictionary/taiwan-reading.js.map +1 -0
  414. package/dist/dictionary/tone-invariants.d.ts +3 -0
  415. package/dist/dictionary/tone-invariants.d.ts.map +1 -0
  416. package/dist/dictionary/tone-invariants.js +64 -0
  417. package/dist/dictionary/tone-invariants.js.map +1 -0
  418. package/dist/dictionary/traditional-form.d.ts +21 -0
  419. package/dist/dictionary/traditional-form.d.ts.map +1 -0
  420. package/dist/dictionary/traditional-form.js +59 -0
  421. package/dist/dictionary/traditional-form.js.map +1 -0
  422. package/dist/dictionary/traditional-ranking.d.ts +22 -0
  423. package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
  424. package/dist/dictionary/traditional-ranking.js +74 -0
  425. package/dist/dictionary/traditional-ranking.js.map +1 -0
  426. package/dist/dictionary/traditional-table.d.ts +51 -0
  427. package/dist/dictionary/traditional-table.d.ts.map +1 -0
  428. package/dist/dictionary/traditional-table.js +98 -0
  429. package/dist/dictionary/traditional-table.js.map +1 -0
  430. package/dist/dictionary/traditional.d.ts +3 -56
  431. package/dist/dictionary/traditional.d.ts.map +1 -1
  432. package/dist/dictionary/traditional.js +3 -186
  433. package/dist/dictionary/traditional.js.map +1 -1
  434. package/dist/dictionary/variant-counts.d.ts +39 -0
  435. package/dist/dictionary/variant-counts.d.ts.map +1 -0
  436. package/dist/dictionary/variant-counts.js +38 -0
  437. package/dist/dictionary/variant-counts.js.map +1 -0
  438. package/dist/dictionary/word-reading.d.ts +26 -0
  439. package/dist/dictionary/word-reading.d.ts.map +1 -0
  440. package/dist/dictionary/word-reading.js +76 -0
  441. package/dist/dictionary/word-reading.js.map +1 -0
  442. package/dist/dictionary/word-readings.d.ts +15 -0
  443. package/dist/dictionary/word-readings.d.ts.map +1 -0
  444. package/dist/dictionary/word-readings.js +41 -0
  445. package/dist/dictionary/word-readings.js.map +1 -0
  446. package/dist/format/annotate.d.ts +90 -0
  447. package/dist/format/annotate.d.ts.map +1 -0
  448. package/dist/format/annotate.js +168 -0
  449. package/dist/format/annotate.js.map +1 -0
  450. package/dist/format/html.d.ts +15 -46
  451. package/dist/format/html.d.ts.map +1 -1
  452. package/dist/format/html.js +3 -162
  453. package/dist/format/html.js.map +1 -1
  454. package/dist/format/slug-hash.d.ts +51 -0
  455. package/dist/format/slug-hash.d.ts.map +1 -0
  456. package/dist/format/slug-hash.js +74 -0
  457. package/dist/format/slug-hash.js.map +1 -0
  458. package/dist/format/slug-options.d.ts +98 -0
  459. package/dist/format/slug-options.d.ts.map +1 -0
  460. package/dist/format/slug-options.js +2 -0
  461. package/dist/format/slug-options.js.map +1 -0
  462. package/dist/format/slug-words.d.ts +27 -0
  463. package/dist/format/slug-words.d.ts.map +1 -0
  464. package/dist/format/slug-words.js +0 -0
  465. package/dist/format/slug-words.js.map +1 -0
  466. package/dist/format/slug.d.ts +3 -128
  467. package/dist/format/slug.d.ts.map +1 -1
  468. package/dist/format/slug.js +0 -0
  469. package/dist/format/slug.js.map +1 -1
  470. package/dist/grade/check-readings.d.ts +41 -0
  471. package/dist/grade/check-readings.d.ts.map +1 -0
  472. package/dist/grade/check-readings.js +36 -0
  473. package/dist/grade/check-readings.js.map +1 -0
  474. package/dist/grade/check.d.ts +4 -4
  475. package/dist/grade/check.d.ts.map +1 -1
  476. package/dist/grade/check.js +5 -270
  477. package/dist/grade/check.js.map +1 -1
  478. package/dist/grade/pair-syllables.d.ts +48 -0
  479. package/dist/grade/pair-syllables.d.ts.map +1 -0
  480. package/dist/grade/pair-syllables.js +71 -0
  481. package/dist/grade/pair-syllables.js.map +1 -0
  482. package/dist/grade/reading-syllables.d.ts +62 -0
  483. package/dist/grade/reading-syllables.d.ts.map +1 -0
  484. package/dist/grade/reading-syllables.js +58 -0
  485. package/dist/grade/reading-syllables.js.map +1 -0
  486. package/dist/grade/reading-tolerance.d.ts +72 -0
  487. package/dist/grade/reading-tolerance.d.ts.map +1 -0
  488. package/dist/grade/reading-tolerance.js +107 -0
  489. package/dist/grade/reading-tolerance.js.map +1 -0
  490. package/dist/grade/typed-reading.d.ts +28 -0
  491. package/dist/grade/typed-reading.d.ts.map +1 -0
  492. package/dist/grade/typed-reading.js +36 -0
  493. package/dist/grade/typed-reading.js.map +1 -0
  494. package/dist/index.d.ts +1 -1
  495. package/dist/index.d.ts.map +1 -1
  496. package/dist/index.js +1 -1
  497. package/dist/index.js.map +1 -1
  498. package/dist/numerals/numeral-parse.d.ts +32 -0
  499. package/dist/numerals/numeral-parse.d.ts.map +1 -0
  500. package/dist/numerals/numeral-parse.js +44 -0
  501. package/dist/numerals/numeral-parse.js.map +1 -0
  502. package/dist/numerals/numeral-shapes.d.ts +89 -0
  503. package/dist/numerals/numeral-shapes.d.ts.map +1 -0
  504. package/dist/numerals/numeral-shapes.js +99 -0
  505. package/dist/numerals/numeral-shapes.js.map +1 -0
  506. package/dist/numerals/numerals.d.ts.map +1 -1
  507. package/dist/numerals/numerals.js +2 -36
  508. package/dist/numerals/numerals.js.map +1 -1
  509. package/dist/numerals/read-numeral.d.ts +76 -0
  510. package/dist/numerals/read-numeral.d.ts.map +1 -0
  511. package/dist/numerals/read-numeral.js +88 -0
  512. package/dist/numerals/read-numeral.js.map +1 -0
  513. package/dist/numerals/text.d.ts +3 -37
  514. package/dist/numerals/text.d.ts.map +1 -1
  515. package/dist/numerals/text.js +3 -254
  516. package/dist/numerals/text.js.map +1 -1
  517. package/dist/numerals/time.d.ts +34 -0
  518. package/dist/numerals/time.d.ts.map +1 -0
  519. package/dist/numerals/time.js +93 -0
  520. package/dist/numerals/time.js.map +1 -0
  521. package/dist/orthography/address-grouping.d.ts +34 -0
  522. package/dist/orthography/address-grouping.d.ts.map +1 -0
  523. package/dist/orthography/address-grouping.js +52 -0
  524. package/dist/orthography/address-grouping.js.map +1 -0
  525. package/dist/orthography/grouping.d.ts +3 -87
  526. package/dist/orthography/grouping.d.ts.map +1 -1
  527. package/dist/orthography/grouping.js +4 -270
  528. package/dist/orthography/grouping.js.map +1 -1
  529. package/dist/orthography/place-grouping.d.ts +39 -0
  530. package/dist/orthography/place-grouping.d.ts.map +1 -0
  531. package/dist/orthography/place-grouping.js +83 -0
  532. package/dist/orthography/place-grouping.js.map +1 -0
  533. package/dist/orthography/word-grouping.d.ts +48 -0
  534. package/dist/orthography/word-grouping.d.ts.map +1 -0
  535. package/dist/orthography/word-grouping.js +147 -0
  536. package/dist/orthography/word-grouping.js.map +1 -0
  537. package/dist/script/conversion-format.d.ts +22 -0
  538. package/dist/script/conversion-format.d.ts.map +1 -0
  539. package/dist/script/conversion-format.js +22 -0
  540. package/dist/script/conversion-format.js.map +1 -0
  541. package/dist/script/conversion-read.d.ts +9 -0
  542. package/dist/script/conversion-read.d.ts.map +1 -0
  543. package/dist/script/conversion-read.js +69 -0
  544. package/dist/script/conversion-read.js.map +1 -0
  545. package/dist/script/conversion-write.d.ts +14 -0
  546. package/dist/script/conversion-write.d.ts.map +1 -0
  547. package/dist/script/conversion-write.js +34 -0
  548. package/dist/script/conversion-write.js.map +1 -0
  549. package/dist/script/conversion.d.ts +10 -16
  550. package/dist/script/conversion.d.ts.map +1 -1
  551. package/dist/script/conversion.js +2 -115
  552. package/dist/script/conversion.js.map +1 -1
  553. package/dist/search/candidate-narrowing.d.ts +56 -0
  554. package/dist/search/candidate-narrowing.d.ts.map +1 -0
  555. package/dist/search/candidate-narrowing.js +55 -0
  556. package/dist/search/candidate-narrowing.js.map +1 -0
  557. package/dist/search/candidate-query.d.ts +25 -0
  558. package/dist/search/candidate-query.d.ts.map +1 -0
  559. package/dist/search/candidate-query.js +28 -0
  560. package/dist/search/candidate-query.js.map +1 -0
  561. package/dist/search/candidate-writings.d.ts +24 -0
  562. package/dist/search/candidate-writings.d.ts.map +1 -0
  563. package/dist/search/candidate-writings.js +114 -0
  564. package/dist/search/candidate-writings.js.map +1 -0
  565. package/dist/search/candidates.d.ts +7 -41
  566. package/dist/search/candidates.d.ts.map +1 -1
  567. package/dist/search/candidates.js +10 -164
  568. package/dist/search/candidates.js.map +1 -1
  569. package/dist/search/match-chunks.d.ts +19 -0
  570. package/dist/search/match-chunks.d.ts.map +1 -0
  571. package/dist/search/match-chunks.js +30 -0
  572. package/dist/search/match-chunks.js.map +1 -0
  573. package/dist/search/match-ranking.d.ts +39 -0
  574. package/dist/search/match-ranking.d.ts.map +1 -0
  575. package/dist/search/match-ranking.js +51 -0
  576. package/dist/search/match-ranking.js.map +1 -0
  577. package/dist/search/match-readings.d.ts +43 -0
  578. package/dist/search/match-readings.d.ts.map +1 -0
  579. package/dist/search/match-readings.js +83 -0
  580. package/dist/search/match-readings.js.map +1 -0
  581. package/dist/search/match-scoring.d.ts +146 -0
  582. package/dist/search/match-scoring.d.ts.map +1 -0
  583. package/dist/search/match-scoring.js +114 -0
  584. package/dist/search/match-scoring.js.map +1 -0
  585. package/dist/search/match-search.d.ts +28 -0
  586. package/dist/search/match-search.d.ts.map +1 -0
  587. package/dist/search/match-search.js +128 -0
  588. package/dist/search/match-search.js.map +1 -0
  589. package/dist/search/match.d.ts +5 -36
  590. package/dist/search/match.d.ts.map +1 -1
  591. package/dist/search/match.js +2 -379
  592. package/dist/search/match.js.map +1 -1
  593. package/dist/search/reverse-index-build.d.ts +30 -0
  594. package/dist/search/reverse-index-build.d.ts.map +1 -0
  595. package/dist/search/reverse-index-build.js +72 -0
  596. package/dist/search/reverse-index-build.js.map +1 -0
  597. package/dist/search/reverse-index-format.d.ts +60 -0
  598. package/dist/search/reverse-index-format.d.ts.map +1 -0
  599. package/dist/search/reverse-index-format.js +54 -0
  600. package/dist/search/reverse-index-format.js.map +1 -0
  601. package/dist/search/reverse-index-groups.d.ts +37 -0
  602. package/dist/search/reverse-index-groups.d.ts.map +1 -0
  603. package/dist/search/reverse-index-groups.js +71 -0
  604. package/dist/search/reverse-index-groups.js.map +1 -0
  605. package/dist/search/reverse-index-passes.d.ts +78 -0
  606. package/dist/search/reverse-index-passes.d.ts.map +1 -0
  607. package/dist/search/reverse-index-passes.js +59 -0
  608. package/dist/search/reverse-index-passes.js.map +1 -0
  609. package/dist/search/reverse-index-state.d.ts +36 -0
  610. package/dist/search/reverse-index-state.d.ts.map +1 -0
  611. package/dist/search/reverse-index-state.js +95 -0
  612. package/dist/search/reverse-index-state.js.map +1 -0
  613. package/dist/search/reverse-index.d.ts +8 -67
  614. package/dist/search/reverse-index.d.ts.map +1 -1
  615. package/dist/search/reverse-index.js +4 -255
  616. package/dist/search/reverse-index.js.map +1 -1
  617. package/dist/sources/unihan-readings.d.ts +58 -0
  618. package/dist/sources/unihan-readings.d.ts.map +1 -0
  619. package/dist/sources/unihan-readings.js +95 -0
  620. package/dist/sources/unihan-readings.js.map +1 -0
  621. package/dist/sources/unihan.d.ts +6 -9
  622. package/dist/sources/unihan.d.ts.map +1 -1
  623. package/dist/sources/unihan.js +2 -85
  624. package/dist/sources/unihan.js.map +1 -1
  625. package/dist/syllable/final-tables.d.ts +23 -0
  626. package/dist/syllable/final-tables.d.ts.map +1 -0
  627. package/dist/syllable/final-tables.js +50 -0
  628. package/dist/syllable/final-tables.js.map +1 -0
  629. package/dist/syllable/inventory.d.ts +8 -42
  630. package/dist/syllable/inventory.d.ts.map +1 -1
  631. package/dist/syllable/inventory.js +9 -918
  632. package/dist/syllable/inventory.js.map +1 -1
  633. package/dist/syllable/spellings.d.ts +40 -0
  634. package/dist/syllable/spellings.d.ts.map +1 -0
  635. package/dist/syllable/spellings.js +469 -0
  636. package/dist/syllable/spellings.js.map +1 -0
  637. package/dist/syllable/syllable-parts.d.ts +31 -0
  638. package/dist/syllable/syllable-parts.d.ts.map +1 -0
  639. package/dist/syllable/syllable-parts.js +105 -0
  640. package/dist/syllable/syllable-parts.js.map +1 -0
  641. package/dist/syllable/syllable.d.ts +1 -14
  642. package/dist/syllable/syllable.d.ts.map +1 -1
  643. package/dist/syllable/syllable.js +3 -144
  644. package/dist/syllable/syllable.js.map +1 -1
  645. package/dist/syllable/written-tones.d.ts +6 -0
  646. package/dist/syllable/written-tones.d.ts.map +1 -0
  647. package/dist/syllable/written-tones.js +453 -0
  648. package/dist/syllable/written-tones.js.map +1 -0
  649. package/dist/transcription/bopomofo-parse.d.ts +42 -0
  650. package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
  651. package/dist/transcription/bopomofo-parse.js +92 -0
  652. package/dist/transcription/bopomofo-parse.js.map +1 -0
  653. package/dist/transcription/bopomofo-reverse.d.ts +31 -0
  654. package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
  655. package/dist/transcription/bopomofo-reverse.js +48 -0
  656. package/dist/transcription/bopomofo-reverse.js.map +1 -0
  657. package/dist/transcription/bopomofo-symbols.d.ts +36 -0
  658. package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
  659. package/dist/transcription/bopomofo-symbols.js +41 -0
  660. package/dist/transcription/bopomofo-symbols.js.map +1 -0
  661. package/dist/transcription/bopomofo-tables.d.ts +87 -0
  662. package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
  663. package/dist/transcription/bopomofo-tables.js +180 -0
  664. package/dist/transcription/bopomofo-tables.js.map +1 -0
  665. package/dist/transcription/bopomofo.d.ts +14 -32
  666. package/dist/transcription/bopomofo.d.ts.map +1 -1
  667. package/dist/transcription/bopomofo.js +5 -343
  668. package/dist/transcription/bopomofo.js.map +1 -1
  669. package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
  670. package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
  671. package/dist/transcription/gwoyeu-first-second.js +75 -0
  672. package/dist/transcription/gwoyeu-first-second.js.map +1 -0
  673. package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
  674. package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
  675. package/dist/transcription/gwoyeu-spelling.js +124 -0
  676. package/dist/transcription/gwoyeu-spelling.js.map +1 -0
  677. package/dist/transcription/gwoyeu-tables.d.ts +93 -0
  678. package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
  679. package/dist/transcription/gwoyeu-tables.js +205 -0
  680. package/dist/transcription/gwoyeu-tables.js.map +1 -0
  681. package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
  682. package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
  683. package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
  684. package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
  685. package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
  686. package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
  687. package/dist/transcription/gwoyeu-vowels.js +58 -0
  688. package/dist/transcription/gwoyeu-vowels.js.map +1 -0
  689. package/dist/transcription/gwoyeu.d.ts +1 -26
  690. package/dist/transcription/gwoyeu.d.ts.map +1 -1
  691. package/dist/transcription/gwoyeu.js +2 -540
  692. package/dist/transcription/gwoyeu.js.map +1 -1
  693. package/dist/transcription/ipa-symbols.d.ts +67 -0
  694. package/dist/transcription/ipa-symbols.d.ts.map +1 -0
  695. package/dist/transcription/ipa-symbols.js +135 -0
  696. package/dist/transcription/ipa-symbols.js.map +1 -0
  697. package/dist/transcription/ipa.d.ts +2 -10
  698. package/dist/transcription/ipa.d.ts.map +1 -1
  699. package/dist/transcription/ipa.js +2 -134
  700. package/dist/transcription/ipa.js.map +1 -1
  701. package/dist/transcription/wade-giles-index.d.ts +35 -0
  702. package/dist/transcription/wade-giles-index.d.ts.map +1 -0
  703. package/dist/transcription/wade-giles-index.js +110 -0
  704. package/dist/transcription/wade-giles-index.js.map +1 -0
  705. package/dist/transcription/wade-giles-parse.d.ts +36 -0
  706. package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
  707. package/dist/transcription/wade-giles-parse.js +84 -0
  708. package/dist/transcription/wade-giles-parse.js.map +1 -0
  709. package/dist/transcription/wade-giles-spelling.d.ts +61 -0
  710. package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
  711. package/dist/transcription/wade-giles-spelling.js +107 -0
  712. package/dist/transcription/wade-giles-spelling.js.map +1 -0
  713. package/dist/transcription/wade-giles-syllable.d.ts +29 -0
  714. package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
  715. package/dist/transcription/wade-giles-syllable.js +90 -0
  716. package/dist/transcription/wade-giles-syllable.js.map +1 -0
  717. package/dist/transcription/wade-giles-tables.d.ts +80 -0
  718. package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
  719. package/dist/transcription/wade-giles-tables.js +178 -0
  720. package/dist/transcription/wade-giles-tables.js.map +1 -0
  721. package/dist/transcription/wade-giles.d.ts +9 -60
  722. package/dist/transcription/wade-giles.d.ts.map +1 -1
  723. package/dist/transcription/wade-giles.js +6 -543
  724. package/dist/transcription/wade-giles.js.map +1 -1
  725. package/dist/transcription/yale-tables.d.ts +54 -0
  726. package/dist/transcription/yale-tables.d.ts.map +1 -0
  727. package/dist/transcription/yale-tables.js +125 -0
  728. package/dist/transcription/yale-tables.js.map +1 -0
  729. package/dist/transcription/yale.d.ts.map +1 -1
  730. package/dist/transcription/yale.js +1 -124
  731. package/dist/transcription/yale.js.map +1 -1
  732. package/package.json +2 -2
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The romanisation systems, as a table the CLI can walk.
3
+ *
4
+ * Each entry takes apart a `write*Word` helper into the syllable write and the
5
+ * separator it joins on, so that every syllable can be painted its own colour.
6
+ * `commands.test.ts` holds the pair together over the whole inventory.
7
+ */
8
+ import { writeBopomofo, writeBopomofoWord } from "../transcription/bopomofo.js";
9
+ import { writeGwoyeu, writeGwoyeuWord } from "../transcription/gwoyeu.js";
10
+ import { writeIpa, writeIpaWord } from "../transcription/ipa.js";
11
+ import { writeWadeGiles, writeWadeGilesWord, } from "../transcription/wade-giles.js";
12
+ import { writeYale, writeYaleWord } from "../transcription/yale.js";
13
+ export const BOPOMOFO = {
14
+ name: "bopomofo",
15
+ write: writeBopomofo,
16
+ separator: " ",
17
+ word: (syllables) => writeBopomofoWord(syllables),
18
+ capitals: false,
19
+ };
20
+ export const WADE_GILES = {
21
+ name: "wade-giles",
22
+ write: writeWadeGiles,
23
+ separator: "-",
24
+ word: (syllables, hasTones) => writeWadeGilesWord(syllables, hasTones ? {} : { tones: "none" }),
25
+ capitals: true,
26
+ };
27
+ export const YALE = {
28
+ name: "yale",
29
+ write: writeYale,
30
+ separator: "",
31
+ word: (syllables, hasTones) => writeYaleWord(syllables, hasTones ? {} : { tones: "none" }),
32
+ capitals: true,
33
+ };
34
+ export const GWOYEU = {
35
+ name: "gwoyeu",
36
+ write: writeGwoyeu,
37
+ separator: "",
38
+ word: (syllables) => writeGwoyeuWord(syllables),
39
+ capitals: true,
40
+ };
41
+ export const IPA = {
42
+ name: "ipa",
43
+ write: writeIpa,
44
+ separator: "",
45
+ word: (syllables, hasTones) => writeIpaWord(syllables, hasTones ? {} : { tones: "none" }),
46
+ capitals: false,
47
+ };
48
+ //# sourceMappingURL=system-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-table.js","sourceRoot":"","sources":["../../src/cli/system-table.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAW;IAC9B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;IACjD,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC5B,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClE,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAW;IAC1B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,EAAE;IACb,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC5B,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7D,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,EAAE;IACb,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;IAC/C,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW;IACzB,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,EAAE;IACb,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAC5B,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5D,QAAQ,EAAE,KAAK;CAChB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The romanisation systems, as a table the CLI can walk.
3
+ *
4
+ * Each entry takes apart a `write*Word` helper into the syllable write and the
5
+ * separator it joins on, so that every syllable can be painted its own colour.
6
+ * `commands.test.ts` holds the pair together over the whole inventory.
7
+ */
8
+ import type { Syllable } from "../syllable/syllable.js";
9
+ export { BOPOMOFO, GWOYEU, IPA, WADE_GILES, YALE } from "./system-table.js";
10
+ import type { TranscriptionSource } from "./arguments.js";
11
+ import type { Painter } from "./colour.js";
12
+ /**
13
+ * How one system writes a word: a syllable at a time, and what it joins on.
14
+ *
15
+ * The `write*Word` helpers are each a map and a join, and this takes them apart
16
+ * so that every syllable can be painted its own colour. That duplicates five
17
+ * separators, so each entry carries the helper it stands in for and
18
+ * `commands.test.ts` asserts the two agree over the whole inventory in every
19
+ * tone state — rather than the list being trusted.
20
+ */
21
+ export interface System {
22
+ /** What `--from` and `--system` call it. */
23
+ readonly name: TranscriptionSource;
24
+ readonly write: (syllable: Syllable) => string;
25
+ readonly separator: string;
26
+ /**
27
+ * How the system writes a word, with its tones or without them.
28
+ *
29
+ * `--notation none` can only be honoured where the tone is written
30
+ * separately*: Wade-Giles, Yale and IPA all have a way to leave it off.
31
+ * Bopomofo marks it with a symbol of the script and Gwoyeu Romatzyh spells
32
+ * it into the syllable, so for those two there is nothing to leave off and
33
+ * the flag is ignored rather than approximated.
34
+ */
35
+ readonly word: (syllables: readonly Syllable[], hasTones: boolean) => string;
36
+ /**
37
+ * Whether the system writes the capitals the conversion settled.
38
+ *
39
+ * The three romanisations do, since a romanisation is a way of writing
40
+ * Chinese in the Latin alphabet and inherits what that alphabet does with a
41
+ * proper noun. IPA and bopomofo do not — see {@link toTranscription}.
42
+ */
43
+ readonly capitals: boolean;
44
+ }
45
+ /**
46
+ * Every system `transcribe` writes a column for, for the guard above.
47
+ */
48
+ export declare const SYSTEMS: readonly System[];
49
+ /**
50
+ * The system a `--system` or `--from` name stands for.
51
+ */
52
+ export declare function systemNamed(name: TranscriptionSource | undefined): System | undefined;
53
+ /**
54
+ * Write a run of syllables in one system, each syllable in its tone's colour.
55
+ */
56
+ export declare function writtenWith(syllables: readonly Syllable[], system: System, paint: Painter): string;
57
+ //# sourceMappingURL=systems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../src/cli/systems.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAM;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;IAC7E;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAMpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,mBAAmB,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAEpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,MAAM,CAIR"}
@@ -0,0 +1,27 @@
1
+ export { BOPOMOFO, GWOYEU, IPA, WADE_GILES, YALE } from "./system-table.js";
2
+ import { BOPOMOFO, GWOYEU, IPA, WADE_GILES, YALE } from "./system-table.js";
3
+ /**
4
+ * Every system `transcribe` writes a column for, for the guard above.
5
+ */
6
+ export const SYSTEMS = [
7
+ BOPOMOFO,
8
+ WADE_GILES,
9
+ YALE,
10
+ GWOYEU,
11
+ IPA,
12
+ ];
13
+ /**
14
+ * The system a `--system` or `--from` name stands for.
15
+ */
16
+ export function systemNamed(name) {
17
+ return SYSTEMS.find((system) => system.name === name);
18
+ }
19
+ /**
20
+ * Write a run of syllables in one system, each syllable in its tone's colour.
21
+ */
22
+ export function writtenWith(syllables, system, paint) {
23
+ return syllables
24
+ .map((syllable) => paint(system.write(syllable), syllable.tone))
25
+ .join(system.separator);
26
+ }
27
+ //# sourceMappingURL=systems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systems.js","sourceRoot":"","sources":["../../src/cli/systems.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAoC5E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,QAAQ;IACR,UAAU;IACV,IAAI;IACJ,MAAM;IACN,GAAG;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqC;IAErC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,SAA8B,EAC9B,MAAc,EACd,KAAc;IAEd,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Command } from "./command.js";
2
+ export { type System, SYSTEMS, systemNamed, writtenWith } from "./systems.js";
3
+ /**
4
+ * Write pinyin in every other system, and read any of them back.
5
+ *
6
+ * Not `romanize`, for two reasons: bopomofo has a script of its own and IPA is
7
+ * a transcription rather than a spelling, so half the columns are not
8
+ * romanisations — and the input is pinyin, which already is one. *Comparison of
9
+ * Standard Chinese transcription systems*, the syllabary these tables are
10
+ * checked against, is the source of the word as well as of the columns.
11
+ *
12
+ * Needs no dictionary, for the same reason `syllable` does: a transcription is
13
+ * a mapping over syllables and there is nothing to look up. Several rows come
14
+ * back where Wade-Giles is ambiguous, which is most of it once the apostrophes
15
+ * and diacritics have been dropped.
16
+ */
17
+ export declare const TRANSCRIBE: Command;
18
+ //# sourceMappingURL=transcribe-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-command.d.ts","sourceRoot":"","sources":["../../src/cli/transcribe-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,cAAc,CAAC;AAIpD,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAsC9E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,EAAE,OAwCxB,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The romanisation systems the CLI can write, and the command that writes them.
3
+ */
4
+ import { PLAIN, visibleLength } from "./colour.js";
5
+ import { column } from "./command.js";
6
+ import { transcriptions } from "./transcribe-reading.js";
7
+ import { transcribed } from "./transcribe-rows.js";
8
+ export { SYSTEMS, systemNamed, writtenWith } from "./systems.js";
9
+ /**
10
+ * How wide each of `transcribe`'s columns is when its cells are narrow.
11
+ *
12
+ * A floor rather than the width: a whole word is wider than a syllable, and
13
+ * `mao-tsʻê-tung` is thirteen characters in a column sized for `ch'ü¹`. The
14
+ * widths are kept as a floor so that a single syllable still lines up with the
15
+ * next answer down when a file is piped through, and so that widening one row
16
+ * does not move every example in the docs.
17
+ */
18
+ const TRANSCRIBE_WIDTHS = [12, 10, 12, 12, 10, 10, 12, 0];
19
+ /**
20
+ * Lay rows of cells out in columns, each as wide as it needs to be.
21
+ */
22
+ function laidOut(rows) {
23
+ const widths = TRANSCRIBE_WIDTHS.map((floor, at) => Math.max(floor, ...rows.map((row) => {
24
+ // A cell needs one space after it at least, which is what the floor
25
+ // gives the widest syllable already. Only a cell that does not fit
26
+ // widens the column, and then it takes two — so a single syllable is
27
+ // laid out exactly as it was before words could arrive.
28
+ const width = visibleLength(row[at] ?? "");
29
+ return width + 1 > floor ? width + 2 : 0;
30
+ })));
31
+ return rows.map((row) => row
32
+ .map((cell, at) => column(cell, widths[at] ?? 0))
33
+ .join("")
34
+ .trimEnd());
35
+ }
36
+ /**
37
+ * Write pinyin in every other system, and read any of them back.
38
+ *
39
+ * Not `romanize`, for two reasons: bopomofo has a script of its own and IPA is
40
+ * a transcription rather than a spelling, so half the columns are not
41
+ * romanisations — and the input is pinyin, which already is one. *Comparison of
42
+ * Standard Chinese transcription systems*, the syllabary these tables are
43
+ * checked against, is the source of the word as well as of the columns.
44
+ *
45
+ * Needs no dictionary, for the same reason `syllable` does: a transcription is
46
+ * a mapping over syllables and there is nothing to look up. Several rows come
47
+ * back where Wade-Giles is ambiguous, which is most of it once the apostrophes
48
+ * and diacritics have been dropped.
49
+ */
50
+ export const TRANSCRIBE = {
51
+ name: "transcribe",
52
+ summary: "pinyin to bopomofo, Wade-Giles, Yale, GR and IPA, and back",
53
+ argument: "<text...>",
54
+ flags: ["notation", "from"],
55
+ needsDictionary: false,
56
+ run: (input) => input.texts.map((text) => {
57
+ const found = transcriptions(text, input.flags);
58
+ if (found.length === 0) {
59
+ return {
60
+ lines: [`${text} not readable`],
61
+ data: { text, read: false },
62
+ };
63
+ }
64
+ return {
65
+ lines: laidOut(found.map((reading, index) => {
66
+ const one = transcribed(reading, input.flags, input.paint);
67
+ return [
68
+ index === 0 ? text : "",
69
+ one.pinyin,
70
+ one.bopomofo,
71
+ one.wadeGiles,
72
+ one.yale,
73
+ one.gwoyeu,
74
+ one.ipa,
75
+ one.isExact === false ? "marks restored" : "",
76
+ ];
77
+ })),
78
+ data: {
79
+ text,
80
+ read: true,
81
+ readings: found.map((reading) => transcribed(reading, input.flags, PLAIN)),
82
+ },
83
+ };
84
+ }),
85
+ };
86
+ //# sourceMappingURL=transcribe-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-command.js","sourceRoot":"","sources":["../../src/cli/transcribe-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type Syllable } from "../syllable/syllable.js";
2
+ import { type Flags } from "./arguments.js";
3
+ /**
4
+ * One row of `transcribe`, before it is written in anything.
5
+ */
6
+ export interface Reading {
7
+ readonly syllables: readonly Syllable[];
8
+ /** Whether the Wade-Giles this came from was spelled exactly. */
9
+ readonly isExact?: boolean;
10
+ }
11
+ /**
12
+ * Read whatever system the text is in, and say so.
13
+ */
14
+ export declare function transcriptions(text: string, flags: Flags): readonly Reading[];
15
+ //# sourceMappingURL=transcribe-reading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-reading.d.ts","sourceRoot":"","sources":["../../src/cli/transcribe-reading.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,KAAK,EAGX,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAwDD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,OAAO,EAAE,CAuB7E"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Reading the text `transcribe` was given, in whatever system it is written in.
3
+ *
4
+ * The command's two halves meet at {@link Reading}: this one settles what
5
+ * syllables the text stands for, and `transcribe-rows.ts` writes them out. The
6
+ * halves are separate because the systems are asymmetric — everything can be
7
+ * written, and only some of it can be read back, with Wade-Giles needing a
8
+ * second pass that the writing side knows nothing about.
9
+ */
10
+ import { isBopomofo, readBopomofo } from "../transcription/bopomofo.js";
11
+ import { readGwoyeu } from "../transcription/gwoyeu.js";
12
+ import { readIpa } from "../transcription/ipa.js";
13
+ import { readWadeGiles, readWadeGilesLoosely, readWadeGilesWord, splitWadeGiles, } from "../transcription/wade-giles.js";
14
+ import { readYale } from "../transcription/yale.js";
15
+ import { splitSyllables } from "../syllable/split.js";
16
+ import { readSyllable, writeSyllable, } from "../syllable/syllable.js";
17
+ import { transcriptionSource, } from "./arguments.js";
18
+ /**
19
+ * Read Wade-Giles, keeping track of which candidates were spelled exactly.
20
+ *
21
+ * Always the loose reader, because the exact one is a strict subset of it and
22
+ * the interesting case at a command line is the spelling that dropped its
23
+ * marks. Which candidates needed repairing is shown rather than hidden — that
24
+ * is the one thing a person looking at Wade-Giles wants to know.
25
+ *
26
+ * **A word gets one row and a syllable gets every candidate**, which is the
27
+ * only honest way to show both. `chu` stands for four syllables and all four
28
+ * fit on the screen; `maotsetung` splits five ways before any of its syllables
29
+ * has been chosen, so what is shown is the reading
30
+ * {@link readWadeGilesWord} settles on — 56.02% of markless words, by the
31
+ * measurement in `docs/romanization/`.
32
+ */
33
+ function fromWadeGiles(text) {
34
+ const split = splitWadeGiles(text);
35
+ if (split !== undefined && split.length > 1) {
36
+ const word = readWadeGilesWord(text);
37
+ return word === undefined
38
+ ? /* c8 ignore next -- a run that splits always reads */ []
39
+ : [
40
+ {
41
+ syllables: word,
42
+ isExact: split.every((spelling) => readWadeGiles(spelling).length > 0),
43
+ },
44
+ ];
45
+ }
46
+ const exact = new Set(readWadeGiles(text).map((syllable) => writeSyllable(syllable)));
47
+ return readWadeGilesLoosely(text).map((syllable) => ({
48
+ syllables: [syllable],
49
+ isExact: exact.has(writeSyllable(syllable)),
50
+ }));
51
+ }
52
+ /**
53
+ * The systems that read back as a plain list of candidates.
54
+ *
55
+ * Wade-Giles is not among them because it has a second, looser reader to run;
56
+ * bopomofo is not because it needs no flag at all.
57
+ */
58
+ const INDEXED_READERS = new Map([
59
+ ["yale", readYale],
60
+ ["gwoyeu", readGwoyeu],
61
+ ["ipa", readIpa],
62
+ ]);
63
+ /**
64
+ * Read whatever system the text is in, and say so.
65
+ */
66
+ export function transcriptions(text, flags) {
67
+ const from = transcriptionSource(flags);
68
+ if (from === "wade-giles") {
69
+ return fromWadeGiles(text);
70
+ }
71
+ const reader = INDEXED_READERS.get(from);
72
+ if (reader !== undefined) {
73
+ return reader(text).map((syllable) => ({ syllables: [syllable] }));
74
+ }
75
+ // Bopomofo needs no flag to be recognised: it has a script of its own, so a
76
+ // caller can only mean one thing by it. Wade-Giles and pinyin overlap almost
77
+ // entirely, so those have to be declared.
78
+ if (from === "bopomofo" || (from === "auto" && isBopomofo(text))) {
79
+ const syllable = readBopomofo(text);
80
+ return syllable === undefined ? [] : [{ syllables: [syllable] }];
81
+ }
82
+ const split = splitSyllables(text);
83
+ const syllables = (split ?? []).flatMap((spelling) => {
84
+ const syllable = readSyllable(spelling);
85
+ /* c8 ignore next -- splitSyllables only emits syllables that read */
86
+ return syllable === undefined ? [] : [syllable];
87
+ });
88
+ return syllables.length === 0 ? [] : [{ syllables }];
89
+ }
90
+ //# sourceMappingURL=transcribe-reading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-reading.js","sourceRoot":"","sources":["../../src/cli/transcribe-reading.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Flags } from "./arguments.js";
2
+ import type { Painter } from "./colour.js";
3
+ import type { Reading } from "./transcribe-reading.js";
4
+ /**
5
+ * One syllable or word, in every system.
6
+ */
7
+ export interface Transcribed {
8
+ readonly pinyin: string;
9
+ readonly bopomofo: string;
10
+ readonly wadeGiles: string;
11
+ readonly yale: string;
12
+ readonly gwoyeu: string;
13
+ readonly ipa: string;
14
+ /**
15
+ * Whether the Wade-Giles this came from was spelled exactly.
16
+ *
17
+ * Undefined when the input was not Wade-Giles, since the question only
18
+ * arises there.
19
+ */
20
+ readonly isExact?: boolean;
21
+ }
22
+ /**
23
+ * Write a run of syllables in every system.
24
+ */
25
+ export declare function transcribed(reading: Reading, flags: Flags, paint: Painter): Transcribed;
26
+ //# sourceMappingURL=transcribe-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-rows.d.ts","sourceRoot":"","sources":["../../src/cli/transcribe-rows.ts"],"names":[],"mappings":"AASA,OAAO,EAAkB,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAS3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,OAAO,GACb,WAAW,CAgBb"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Writing a reading out in every system.
3
+ *
4
+ * The other half of `transcribe`: `transcribe-reading.ts` settles what
5
+ * syllables the text stands for, and this writes them. Everything here is
6
+ * total — every syllable can be written in every system — which is what makes
7
+ * it a separate concern from reading, where only some systems answer at all.
8
+ */
9
+ import { writeSyllable } from "../syllable/syllable.js";
10
+ import { convertOptions } from "./arguments.js";
11
+ import { BOPOMOFO, GWOYEU, IPA, WADE_GILES, writtenWith, YALE, } from "./systems.js";
12
+ /**
13
+ * Write a run of syllables in every system.
14
+ */
15
+ export function transcribed(reading, flags, paint) {
16
+ const { notation } = convertOptions(flags);
17
+ const { syllables, isExact } = reading;
18
+ return {
19
+ pinyin: syllables
20
+ .map((syllable) => paint(writeSyllable(syllable, notation), syllable.tone))
21
+ .join(""),
22
+ bopomofo: writtenWith(syllables, BOPOMOFO, paint),
23
+ wadeGiles: writtenWith(syllables, WADE_GILES, paint),
24
+ yale: writtenWith(syllables, YALE, paint),
25
+ gwoyeu: writtenWith(syllables, GWOYEU, paint),
26
+ ipa: writtenWith(syllables, IPA, paint),
27
+ ...(isExact !== undefined && { isExact }),
28
+ };
29
+ }
30
+ //# sourceMappingURL=transcribe-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-rows.js","sourceRoot":"","sources":["../../src/cli/transcribe-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,QAAQ,EACR,MAAM,EACN,GAAG,EACH,UAAU,EACV,WAAW,EACX,IAAI,GACL,MAAM,cAAc,CAAC;AAsBtB;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,KAAY,EACZ,KAAc;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvC,OAAO;QACL,MAAM,EAAE,SAAS;aACd,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CACxD;aACA,IAAI,CAAC,EAAE,CAAC;QACX,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;QACjD,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC;QACpD,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;QACzC,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;QAC7C,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;QACvC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Something the command line asked for that cannot be done.
3
+ *
4
+ * Its own module because both the parser and the option readers throw it, and
5
+ * neither should have to import the other to do so.
6
+ */
7
+ export declare class UsageError extends Error {
8
+ }
9
+ //# sourceMappingURL=usage-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-error.d.ts","sourceRoot":"","sources":["../../src/cli/usage-error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Something the command line asked for that cannot be done.
3
+ *
4
+ * Its own module because both the parser and the option readers throw it, and
5
+ * neither should have to import the other to do so.
6
+ */
7
+ export class UsageError extends Error {
8
+ }
9
+ //# sourceMappingURL=usage-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-error.js","sourceRoot":"","sources":["../../src/cli/usage-error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * What a reading was chosen over, and how settled that choice was.
3
+ *
4
+ * A stretch is uncertain exactly where some rival reading of the same
5
+ * characters costs nearly as little as the one taken.
6
+ */
7
+ import type { Lattice } from "./lattice.js";
8
+ import type { ReadingAlternative, ScoredUnit } from "./confidence.js";
9
+ import { type ReadingProjection, type ReadingUnit } from "./locking.js";
10
+ import { type ScoredStretch } from "./lattice-costs.js";
11
+ export declare function alternativesTo(stretch: ScoredStretch, unit: ReadingUnit): readonly ReadingAlternative[];
12
+ /**
13
+ * Decode one stretch's readings, keeping what the cheapest path rejected.
14
+ */
15
+ export declare function scoreStretch(lattice: Lattice, projection: ReadingProjection, from: number, to: number): readonly ScoredUnit[];
16
+ //# sourceMappingURL=alternatives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternatives.d.ts","sourceRoot":"","sources":["../../src/decode/alternatives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAGjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,WAAW,GAChB,SAAS,kBAAkB,EAAE,CAgB/B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,SAAS,UAAU,EAAE,CASvB"}
@@ -0,0 +1,31 @@
1
+ import { unitKey, unitsOf, } from "./locking.js";
2
+ import { readingCost, shortestPath } from "./viterbi.js";
3
+ import { scoreClaims } from "./lattice-costs.js";
4
+ export function alternativesTo(stretch, unit) {
5
+ const key = unitKey(unit);
6
+ return [...stretch.claims.values()]
7
+ .filter((claim) => unitKey(claim.unit) !== key &&
8
+ claim.unit.from < unit.to &&
9
+ unit.from < claim.unit.to)
10
+ .map((claim) => ({
11
+ from: claim.unit.from,
12
+ to: claim.unit.to,
13
+ reading: claim.unit.reading,
14
+ cost: claim.cost - stretch.best,
15
+ }))
16
+ .toSorted((left, right) => left.cost - right.cost);
17
+ }
18
+ /**
19
+ * Decode one stretch's readings, keeping what the cheapest path rejected.
20
+ */
21
+ export function scoreStretch(lattice, projection, from, to) {
22
+ const stretch = scoreClaims(lattice, from, to, readingCost);
23
+ return shortestPath(lattice, from, to, readingCost)
24
+ .flatMap((edge) => unitsOf(edge))
25
+ .map((unit) => ({
26
+ ...unit,
27
+ isLocked: projection.locked[unit.from] !== undefined,
28
+ alternatives: alternativesTo(stretch, unit),
29
+ }));
30
+ }
31
+ //# sourceMappingURL=alternatives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternatives.js","sourceRoot":"","sources":["../../src/decode/alternatives.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,OAAO,EACP,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAErE,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,IAAiB;IAEjB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAChC,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAC5B;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;QACrB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;QAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;KAChC,CAAC,CAAC;SACF,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,UAA6B,EAC7B,IAAY,EACZ,EAAU;IAEV,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC;SAChD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,GAAG,IAAI;QACP,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS;QACpD,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;KAC5C,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The two 长 contexts a degree adverb does not cover.
3
+ *
4
+ * 很 or 太 in front of a 长 settles it on its own, and `chang-rule.ts` says why.
5
+ * These two do not: each names a near side that a verb 长 shares, so each has
6
+ * to check the far side as well.
7
+ */
8
+ import { type EdgeContext } from "./rules.js";
9
+ /**
10
+ * Whether a 长 is the whole of what an adverb is scoping.
11
+ *
12
+ * 那座桥不长, 生得又瘦又长, 距离还长. The adverb is the near side and the end of
13
+ * the clause is the far side, and it takes both: 不长 alone is 不长在耳朵外面
14
+ * as readily as it is 不长.
15
+ */
16
+ export declare function isPredicated(context: EdgeContext): boolean;
17
+ /**
18
+ * Whether a 长 is an adjective in front of the noun it modifies.
19
+ *
20
+ * 长头发, 长耳朵, 长胡子, 长裙子. The noun after it says nothing on its own,
21
+ * since 长毛 and 长知识 are a verb and its object wearing the same shape, so the
22
+ * near side has to say the rest. A 量词 or 有 in front of a 长 leaves it nothing
23
+ * to be the verb of: 一个长头发的女生 and 兔子有长耳朵 have their subject
24
+ * already spoken for, and 他长毛了 and 树长叶子 do not.
25
+ */
26
+ export declare function isAttributive(context: EdgeContext): boolean;
27
+ //# sourceMappingURL=chang-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chang-context.d.ts","sourceRoot":"","sources":["../../src/decode/chang-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,YAAY,CAAC;AAqBpB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAO1D;AAYD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAO3D"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The two 长 contexts a degree adverb does not cover.
3
+ *
4
+ * 很 or 太 in front of a 长 settles it on its own, and `chang-rule.ts` says why.
5
+ * These two do not: each names a near side that a verb 长 shares, so each has
6
+ * to check the far side as well.
7
+ */
8
+ import { tagOf, wordEndingAt, wordStartingAt, } from "./rules.js";
9
+ /**
10
+ * The adverbs {@link DEGREE} leaves out, because they scope a verb just as well.
11
+ *
12
+ * 那座桥不长 and 距离还长 are both `cháng`, and the degree set says why it will
13
+ * not have them: 胡子不长在前额上 and 还长有毛 put the
14
+ * same two characters around the verb. What tells the two apart is the other
15
+ * side. A growing 长 governs something — 在前额上, 有毛, 一个包 — while the
16
+ * adjective has nothing left to say, so the clause ends.
17
+ */
18
+ const SCOPING = new Set(["不", "还", "還", "又", "已经", "已經"]);
19
+ /**
20
+ * What may stand between a predicative 长 and the end of its clause.
21
+ *
22
+ * Only the particles that close one. Everything a verb could govern is
23
+ * therefore excluded by construction, which is the whole of the test.
24
+ */
25
+ const CLOSING = new Set(["了", "的", "呢", "吗", "嗎", "啊", "呀"]);
26
+ /**
27
+ * Whether a 长 is the whole of what an adverb is scoping.
28
+ *
29
+ * 那座桥不长, 生得又瘦又长, 距离还长. The adverb is the near side and the end of
30
+ * the clause is the far side, and it takes both: 不长 alone is 不长在耳朵外面
31
+ * as readily as it is 不长.
32
+ */
33
+ export function isPredicated(context) {
34
+ const { characters, edge } = context;
35
+ if (!SCOPING.has(characters[edge.from - 1] ?? "")) {
36
+ return false;
37
+ }
38
+ const after = characters[edge.to];
39
+ return after === undefined || CLOSING.has(after);
40
+ }
41
+ /**
42
+ * The tag jieba gives a 量词.
43
+ */
44
+ const MEASURE = "q";
45
+ /**
46
+ * The tag prefix a noun carries, which is what an attributive 长 modifies.
47
+ */
48
+ const NOUN_TAG = "n";
49
+ /**
50
+ * Whether a 长 is an adjective in front of the noun it modifies.
51
+ *
52
+ * 长头发, 长耳朵, 长胡子, 长裙子. The noun after it says nothing on its own,
53
+ * since 长毛 and 长知识 are a verb and its object wearing the same shape, so the
54
+ * near side has to say the rest. A 量词 or 有 in front of a 长 leaves it nothing
55
+ * to be the verb of: 一个长头发的女生 and 兔子有长耳朵 have their subject
56
+ * already spoken for, and 他长毛了 and 树长叶子 do not.
57
+ */
58
+ export function isAttributive(context) {
59
+ const { edge } = context;
60
+ if (!tagOf(context, wordStartingAt(context, edge.to)).startsWith(NOUN_TAG)) {
61
+ return false;
62
+ }
63
+ const before = wordEndingAt(context, edge.from);
64
+ return before === "有" || tagOf(context, before) === MEASURE;
65
+ }
66
+ //# sourceMappingURL=chang-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chang-context.js","sourceRoot":"","sources":["../../src/decode/chang-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,KAAK,EACL,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB;;GAEG;AACH,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;AAC9D,CAAC"}