@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,54 @@
1
+ export { htmlOptions, scriptFrom, scriptTarget, slugOptions, } from "./format-options.js";
2
+ import { APOSTROPHES, CAPITALS, chosen, LOCALES, NOTATIONS, PUNCTUATION, TIERS, } from "./flag-values.js";
3
+ export { colourDepth, transcriptionSource, transcriptionSystem, } from "./flag-values.js";
4
+ /**
5
+ * Read the dictionary flags.
6
+ */
7
+ export function dictionaryChoice(flags) {
8
+ const directory = flags.data;
9
+ return {
10
+ tier: chosen(flags, "tier", TIERS) ?? "full",
11
+ directory: directory === undefined ? undefined : String(directory),
12
+ };
13
+ }
14
+ /**
15
+ * Turn the conversion flags into the options the library takes.
16
+ *
17
+ * Only the flags actually given are passed on, so that the library's defaults
18
+ * stay the CLI's defaults and there is one place they are written down.
19
+ */
20
+ export function convertOptions(flags) {
21
+ const sandhi = {
22
+ ...(flags["no-sandhi"] === true && { yiBu: false }),
23
+ ...(flags["third-tone"] === true && { thirdTone: true }),
24
+ };
25
+ const notation = chosen(flags, "notation", NOTATIONS);
26
+ const locale = chosen(flags, "locale", LOCALES);
27
+ const apostrophe = chosen(flags, "apostrophe", APOSTROPHES);
28
+ const capitals = chosen(flags, "capitals", CAPITALS);
29
+ const punctuation = chosen(flags, "punctuation", PUNCTUATION);
30
+ return {
31
+ ...(flags["keep-numbers"] === true && { numbers: "keep" }),
32
+ ...(notation !== undefined && { notation }),
33
+ ...(locale !== undefined && { locale }),
34
+ ...(apostrophe !== undefined && { apostrophe }),
35
+ ...(capitals !== undefined && { capitals }),
36
+ ...(punctuation !== undefined && { punctuation }),
37
+ ...(flags["no-grouping"] === true && { grouping: false }),
38
+ ...(Object.keys(sandhi).length > 0 && { sandhi }),
39
+ };
40
+ }
41
+ /**
42
+ * Turn the checking flags into the options the library takes.
43
+ *
44
+ * Every conversion flag goes through too, since a check grades against a
45
+ * conversion and `--locale` or `--third-tone` changes what the answer is.
46
+ */
47
+ export function checkOptions(flags) {
48
+ return {
49
+ ...convertOptions(flags),
50
+ ...(flags["require-tones"] === true && { tones: "required" }),
51
+ ...(flags["require-spacing"] === true && { spacing: "required" }),
52
+ };
53
+ }
54
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACX,KAAK,GACN,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM;QAC5C,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;KACnE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACzD,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAE9D,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,MAAe,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO;QACL,GAAG,cAAc,CAAC,KAAK,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC;QACtE,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,UAAmB,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Running one command, having settled what it is and what it acts on.
3
+ *
4
+ * The loads happen here rather than in `run.ts` because they are conditional on
5
+ * the command: a command that converts no scripts never waits for the script
6
+ * tables, and one that needs no dictionary never waits for that either.
7
+ */
8
+ import { dictionaryChoice } from "./arguments.js";
9
+ import type { CliEnvironment } from "./cli-input.js";
10
+ import type { Command } from "./commands.js";
11
+ /**
12
+ * What a run produced.
13
+ */
14
+ export interface CliResult {
15
+ readonly output: readonly string[];
16
+ readonly errors: readonly string[];
17
+ /** The exit status: 0 for a run that did what it was asked. */
18
+ readonly status: number;
19
+ }
20
+ /**
21
+ * Run one command, having settled what it is and what it should act on.
22
+ */
23
+ export declare function runCommand(command: Command, texts: readonly string[], flags: Parameters<typeof dictionaryChoice>[0], environment: CliEnvironment): Promise<CliResult>;
24
+ //# sourceMappingURL=run-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../src/cli/run-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAC7C,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Running one command, having settled what it is and what it acts on.
3
+ *
4
+ * The loads happen here rather than in `run.ts` because they are conditional on
5
+ * the command: a command that converts no scripts never waits for the script
6
+ * tables, and one that needs no dictionary never waits for that either.
7
+ */
8
+ import { colourDepth, dictionaryChoice } from "./arguments.js";
9
+ import { painterFor } from "./colour.js";
10
+ /**
11
+ * Run one command, having settled what it is and what it should act on.
12
+ */
13
+ export async function runCommand(command, texts, flags, environment) {
14
+ const choice = dictionaryChoice(flags);
15
+ const dictionary = command.needsDictionary
16
+ ? await environment.loadDictionary(choice)
17
+ : undefined;
18
+ const scriptTables = command.needsScriptTables === true
19
+ ? await environment.loadScriptTables(choice)
20
+ : undefined;
21
+ const paint = painterFor(colourDepth(flags, environment.colours));
22
+ const reported = command.run({
23
+ texts,
24
+ flags,
25
+ dictionary,
26
+ scriptTables,
27
+ choice,
28
+ paint,
29
+ });
30
+ return {
31
+ // One JSON document per answer rather than one array for the run, so that
32
+ // `jq` sees the same shape whether one text was converted or a file was.
33
+ output: flags.json === true
34
+ ? reported.map((answer) => JSON.stringify(answer.data))
35
+ : reported.flatMap((answer) => [...answer.lines]),
36
+ errors: [],
37
+ status: 0,
38
+ };
39
+ }
40
+ //# sourceMappingURL=run-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/cli/run-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAczC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAgB,EAChB,KAAwB,EACxB,KAA6C,EAC7C,WAA2B;IAE3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe;QACxC,CAAC,CAAC,MAAM,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,YAAY,GAChB,OAAO,CAAC,iBAAiB,KAAK,IAAI;QAChC,CAAC,CAAC,MAAM,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;QAC3B,KAAK;QACL,KAAK;QACL,UAAU;QACV,YAAY;QACZ,MAAM;QACN,KAAK;KACN,CAAC,CAAC;IAEH,OAAO;QACL,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,EACJ,KAAK,CAAC,IAAI,KAAK,IAAI;YACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC;KACV,CAAC;AACJ,CAAC"}
package/dist/cli/run.d.ts CHANGED
@@ -1,45 +1,7 @@
1
- import type { Dictionary } from "../dictionary/dictionary.js";
2
- import type { ScriptTables } from "../script/conversion.js";
3
- import { type DictionaryChoice } from "./arguments.js";
4
- import { type ColourDepth } from "./colour.js";
5
- /**
6
- * What the CLI needs from the world outside it.
7
- *
8
- * Everything Node-only lives behind this, so that a run can be tested by
9
- * handing it strings.
10
- */
11
- export interface CliEnvironment {
12
- readonly version: string;
13
- /** Standard input, or the empty string where there is none to read. */
14
- readonly readInput: () => Promise<string>;
15
- readonly loadDictionary: (choice: DictionaryChoice) => Promise<Dictionary>;
16
- /**
17
- * The script conversion tables, for the one command that converts scripts.
18
- *
19
- * Separate from the dictionary because the file is: nothing that converts
20
- * hanzi to pinyin should wait on 96 KB it will not read.
21
- */
22
- readonly loadScriptTables: (choice: DictionaryChoice) => Promise<ScriptTables>;
23
- /**
24
- * How much colour the output can carry, before any flag has its say.
25
- *
26
- * Here rather than sniffed inside a command, because a command reaching for
27
- * `process.stdout.isTTY` would put a decision in the one place the coverage
28
- * gate cannot see. An environment states the answer and a test can ask for
29
- * either one. `depthFrom` in `colour.ts` is how the Node adapter arrives at
30
- * it, and is a pure function for the same reason.
31
- */
32
- readonly colours: ColourDepth;
33
- }
34
- /**
35
- * What a run produced.
36
- */
37
- export interface CliResult {
38
- readonly output: readonly string[];
39
- readonly errors: readonly string[];
40
- /** The exit status: 0 for a run that did what it was asked. */
41
- readonly status: number;
42
- }
1
+ import { type CliEnvironment } from "./cli-input.js";
2
+ import { type CliResult } from "./run-command.js";
3
+ export type { CliEnvironment } from "./cli-input.js";
4
+ export type { CliResult } from "./run-command.js";
43
5
  /**
44
6
  * Run the CLI over one command line.
45
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAGL,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,aAAa,CAAC;AAI3D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3E;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CACzB,MAAM,EAAE,gBAAgB,KACrB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmFD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,SAAS,CAAC,CAoCpB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,kBAAkB,CAAC;AAE9D,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,SAAS,CAAC,CAoCpB"}
package/dist/cli/run.js CHANGED
@@ -1,66 +1,11 @@
1
- import { checkFlags, colourDepth, dictionaryChoice, GLOBAL_FLAGS, parseArguments, UsageError, } from "./arguments.js";
2
- import { painterFor } from "./colour.js";
3
- import { commandNamed } from "./commands.js";
4
- import { commandHelp, generalHelp } from "./help.js";
5
- /**
6
- * The lines a command should act on: its arguments, or standard input.
7
- *
8
- * Input is split into lines so that every command works the same way whether it
9
- * was given arguments or piped a file, and so that `convert` writes one line
10
- * out for each line in rather than running a whole document together.
11
- */
12
- async function textsFor(command, given, environment) {
13
- if (given.length > 0 || command.argument === "") {
14
- return given;
15
- }
16
- const piped = await environment.readInput();
17
- const lines = piped.split("\n");
18
- // A file ends with a newline, and that last empty line is not a text.
19
- return lines.at(-1) === "" ? lines.slice(0, -1) : lines;
20
- }
21
1
  /**
22
- * What a command was asked to act on, or a usage error saying it was nothing.
23
- *
24
- * A command that silently prints nothing because standard input was a terminal
25
- * looks broken rather than misused.
2
+ * The CLI as one call: a command line in, lines and a status out.
26
3
  */
27
- async function inputFor(command, given, environment) {
28
- const texts = await textsFor(command, given, environment);
29
- if (texts.length === 0 && command.argument !== "") {
30
- throw new UsageError(`${command.name} needs ${command.argument}, or text on standard input`);
31
- }
32
- return texts;
33
- }
34
- /**
35
- * Run one command, having settled what it is and what it should act on.
36
- */
37
- async function runCommand(command, texts, flags, environment) {
38
- const choice = dictionaryChoice(flags);
39
- const dictionary = command.needsDictionary
40
- ? await environment.loadDictionary(choice)
41
- : undefined;
42
- const scriptTables = command.needsScriptTables === true
43
- ? await environment.loadScriptTables(choice)
44
- : undefined;
45
- const paint = painterFor(colourDepth(flags, environment.colours));
46
- const reported = command.run({
47
- texts,
48
- flags,
49
- dictionary,
50
- scriptTables,
51
- choice,
52
- paint,
53
- });
54
- return {
55
- // One JSON document per answer rather than one array for the run, so that
56
- // `jq` sees the same shape whether one text was converted or a file was.
57
- output: flags.json === true
58
- ? reported.map((answer) => JSON.stringify(answer.data))
59
- : reported.flatMap((answer) => [...answer.lines]),
60
- errors: [],
61
- status: 0,
62
- };
63
- }
4
+ import { checkFlags, GLOBAL_FLAGS, parseArguments, UsageError, } from "./arguments.js";
5
+ import { inputFor } from "./cli-input.js";
6
+ import { commandNamed } from "./commands.js";
7
+ import { commandHelp, generalHelp } from "./help.js";
8
+ import { runCommand } from "./run-command.js";
64
9
  /**
65
10
  * Run the CLI over one command line.
66
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAkB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,WAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACtE,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAErE,OAAO,MAAM,UAAU,CACrB,OAAO,EACP,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,EAC3C,KAAK,EACL,WAAW,CACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,wCAAwC,CAAC;gBACrE,MAAM,EAAE,CAAC;aACV,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Command } from "./command.js";
2
+ /**
3
+ * Convert between 简体 and 繁體, one line in and one line out.
4
+ *
5
+ * The per-character evidence rides in the JSON rather than the lines, because
6
+ * the answer a person wants here is the converted text and a second column of
7
+ * `locked` on every character would bury it. `--json` carries what was a guess.
8
+ */
9
+ export declare const SCRIPT: Command;
10
+ //# sourceMappingURL=script-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-command.d.ts","sourceRoot":"","sources":["../../src/cli/script-command.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,OAAO,EAAmC,MAAM,cAAc,CAAC;AAa7E;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,OAsCpB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * 简体 ↔ 繁體 conversion, at the command line.
3
+ */
4
+ import { isUncertainChoice, toScriptPieces } from "../decode/script.js";
5
+ import { SCRIPT_FLAGS, scriptFrom, scriptTarget, UsageError, } from "./arguments.js";
6
+ import { dictionaryOf } from "./command.js";
7
+ /**
8
+ * The tables a command declared it needs.
9
+ */
10
+ function scriptTablesOf(input) {
11
+ /* c8 ignore next 3 -- loaded for every command that declares it needs them */
12
+ if (input.scriptTables === undefined) {
13
+ throw new UsageError("the script conversion tables were not loaded");
14
+ }
15
+ return input.scriptTables;
16
+ }
17
+ /**
18
+ * Convert between 简体 and 繁體, one line in and one line out.
19
+ *
20
+ * The per-character evidence rides in the JSON rather than the lines, because
21
+ * the answer a person wants here is the converted text and a second column of
22
+ * `locked` on every character would bury it. `--json` carries what was a guess.
23
+ */
24
+ export const SCRIPT = {
25
+ name: "script",
26
+ summary: "简体 ↔ 繁體 conversion",
27
+ argument: "[text...]",
28
+ flags: [...SCRIPT_FLAGS],
29
+ needsDictionary: true,
30
+ needsScriptTables: true,
31
+ run: (input) => {
32
+ const to = scriptTarget(input.flags);
33
+ const from = scriptFrom(input.flags);
34
+ return input.texts.map((text) => {
35
+ const { text: written, choices } = toScriptPieces(dictionaryOf(input), scriptTablesOf(input), text, { to, ...(from !== undefined && { from }) });
36
+ return {
37
+ lines: [written],
38
+ data: {
39
+ text,
40
+ script: written,
41
+ to,
42
+ characters: choices.map((choice) => ({
43
+ from: choice.from,
44
+ to: choice.to,
45
+ evidence: choice.evidence,
46
+ ...(choice.alternatives.length > 0 && {
47
+ alternatives: [...choice.alternatives],
48
+ }),
49
+ })),
50
+ uncertain: choices
51
+ .filter((choice) => isUncertainChoice(choice))
52
+ .map((choice) => choice.from),
53
+ },
54
+ };
55
+ });
56
+ },
57
+ };
58
+ //# sourceMappingURL=script-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-command.js","sourceRoot":"","sources":["../../src/cli/script-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAmC,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7E;;GAEG;AACH,SAAS,cAAc,CAAC,KAAmB;IACzC,8EAA8E;IAC9E,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,8CAA8C,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC;IACxB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAC/C,YAAY,CAAC,KAAK,CAAC,EACnB,cAAc,CAAC,KAAK,CAAC,EACrB,IAAI,EACJ,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAC5C,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,IAAI,EAAE;oBACJ,IAAI;oBACJ,MAAM,EAAE,OAAO;oBACf,EAAE;oBACF,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACnC,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI;4BACpC,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;yBACvC,CAAC;qBACH,CAAC,CAAC;oBACH,SAAS,EAAE,OAAO;yBACf,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;yBAC7C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;iBAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type Command } from "./command.js";
2
+ /**
3
+ * Split each text into the words the decoder finds in it.
4
+ *
5
+ * The words on one line, since that is what the answer is, with the reading
6
+ * under each so the split can be read against what it settled. A stretch that
7
+ * was never Han is shown as itself and marked, because it is part of the text
8
+ * and not part of the segmentation.
9
+ */
10
+ export declare const SEGMENT: Command;
11
+ //# sourceMappingURL=segment-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-command.d.ts","sourceRoot":"","sources":["../../src/cli/segment-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,cAAc,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,OAyCrB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Splitting a text into the words the decoder finds in it.
3
+ */
4
+ import { segment } from "../decode/segment.js";
5
+ import { writeSyllable } from "../syllable/syllable.js";
6
+ import { dictionaryOf, written } from "./command.js";
7
+ /**
8
+ * Split each text into the words the decoder finds in it.
9
+ *
10
+ * The words on one line, since that is what the answer is, with the reading
11
+ * under each so the split can be read against what it settled. A stretch that
12
+ * was never Han is shown as itself and marked, because it is part of the text
13
+ * and not part of the segmentation.
14
+ */
15
+ export const SEGMENT = {
16
+ name: "segment",
17
+ summary: "split text into words",
18
+ argument: "[text...]",
19
+ flags: [],
20
+ needsDictionary: true,
21
+ run: (input) => input.texts.map((text) => {
22
+ const found = segment(dictionaryOf(input), text);
23
+ return {
24
+ lines: [
25
+ found.map((one) => one.text).join(" / "),
26
+ // Unpadded, as `lookup` is and for the same reason: a hanzi column
27
+ // cannot be lined up by counting characters, since a terminal draws
28
+ // most of them two cells wide and 。 and Latin one.
29
+ ...found.map((one) => ` ${[
30
+ one.text,
31
+ written(one.reading, input.paint),
32
+ one.isKnown ? one.partOfSpeech : "—",
33
+ ]
34
+ .filter((cell) => cell !== "")
35
+ .join(" ")}`),
36
+ ],
37
+ data: {
38
+ text,
39
+ words: found.map((one) => ({
40
+ text: one.text,
41
+ at: one.at,
42
+ reading: one.reading
43
+ .map((syllable) => writeSyllable(syllable))
44
+ .join(" "),
45
+ partOfSpeech: one.partOfSpeech,
46
+ isProperNoun: one.isProperNoun,
47
+ isKnown: one.isKnown,
48
+ })),
49
+ },
50
+ };
51
+ }),
52
+ };
53
+ //# sourceMappingURL=segment-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-command.js","sourceRoot":"","sources":["../../src/cli/segment-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAgB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,uBAAuB;IAChC,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,EAAE;IACT,eAAe,EAAE,IAAI;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO;YACL,KAAK,EAAE;gBACL,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,mEAAmE;gBACnE,oEAAoE;gBACpE,mDAAmD;gBACnD,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,GAAG,EAAE,EAAE,CACN,KAAK;oBACH,GAAG,CAAC,IAAI;oBACR,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;iBACrC;qBACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;qBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB;aACF;YACD,IAAI,EAAE;gBACJ,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,OAAO,EAAE,GAAG,CAAC,OAAO;yBACjB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;yBAC1C,IAAI,CAAC,GAAG,CAAC;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Command } from "./command.js";
2
+ /**
3
+ * Write a text as a slug.
4
+ *
5
+ * Uncoloured, for the reason `html` is: a slug is a string for a machine, and
6
+ * colouring the tones in something meant to be pasted into a URL would be
7
+ * putting escape codes where they cannot go.
8
+ */
9
+ export declare const SLUG: Command;
10
+ //# sourceMappingURL=slug-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-command.d.ts","sourceRoot":"","sources":["../../src/cli/slug-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,OAalB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Writing a text as a slug, at the command line.
3
+ */
4
+ import { slug } from "../format/slug.js";
5
+ import { SLUG_FLAGS, slugOptions } from "./arguments.js";
6
+ import { dictionaryOf } from "./command.js";
7
+ /**
8
+ * Write a text as a slug.
9
+ *
10
+ * Uncoloured, for the reason `html` is: a slug is a string for a machine, and
11
+ * colouring the tones in something meant to be pasted into a URL would be
12
+ * putting escape codes where they cannot go.
13
+ */
14
+ export const SLUG = {
15
+ name: "slug",
16
+ summary: "hanzi to a URL-safe slug",
17
+ argument: "[text...]",
18
+ flags: [...SLUG_FLAGS],
19
+ needsDictionary: true,
20
+ run: (input) => {
21
+ const options = slugOptions(input.flags);
22
+ return input.texts.map((text) => {
23
+ const written = slug(dictionaryOf(input), text, options);
24
+ return { lines: [written], data: { text, slug: written } };
25
+ });
26
+ },
27
+ };
28
+ //# sourceMappingURL=slug-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-command.js","sourceRoot":"","sources":["../../src/cli/slug-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAgB,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,0BAA0B;IACnC,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC;IACtB,eAAe,EAAE,IAAI;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Painter } from "./colour.js";
2
+ import { type Command } from "./command.js";
3
+ /**
4
+ * One written syllable, taken apart.
5
+ */
6
+ export declare function syllableTaken(spelling: string, paint: Painter): {
7
+ readonly line: string;
8
+ readonly data: unknown;
9
+ };
10
+ /**
11
+ * Take written pinyin apart, with no dictionary at all.
12
+ */
13
+ export declare const SYLLABLE: Command;
14
+ //# sourceMappingURL=syllable-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syllable-command.d.ts","sourceRoot":"","sources":["../../src/cli/syllable-command.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,CA4CA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAkCtB,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * The syllable subcommand: what a written syllable is made of.
3
+ *
4
+ * Asks nothing of the dictionary — the inventory and the parser between them
5
+ * answer it — which is why it is the one inspect command that loads no data.
6
+ */
7
+ import { DICTIONARY_SYLLABLES } from "../syllable/inventory.js";
8
+ import { splitSyllables } from "../syllable/split.js";
9
+ import { readSyllable, writeSyllable, writeSyllableSpelling, } from "../syllable/syllable.js";
10
+ import { column } from "./command.js";
11
+ /**
12
+ * One written syllable, taken apart.
13
+ */
14
+ export function syllableTaken(spelling, paint) {
15
+ const syllable = readSyllable(spelling);
16
+ /* c8 ignore next 6 -- splitSyllables only ever emits syllables that read */
17
+ if (syllable === undefined) {
18
+ return {
19
+ line: ` ${column(spelling, 10)}not a syllable`,
20
+ data: { spelling },
21
+ };
22
+ }
23
+ const isAttested = DICTIONARY_SYLLABLES.has(writeSyllableSpelling({ ...syllable, erhua: false }));
24
+ const parts = [
25
+ `${syllable.initial === "" ? "∅" : syllable.initial} + ${syllable.final}`,
26
+ syllable.tone === undefined ? "no tone" : `tone ${String(syllable.tone)}`,
27
+ ...(syllable.erhua === true ? ["儿化"] : []),
28
+ ];
29
+ const notations = {
30
+ marks: writeSyllable(syllable),
31
+ numbers: writeSyllable(syllable, "numbers"),
32
+ superscript: writeSyllable(syllable, "superscript"),
33
+ };
34
+ return {
35
+ line: ` ${column(paint(spelling, syllable.tone), 10)}${column(parts.join(", "), 22)}${column(Object.values(notations)
36
+ .map((written) => paint(written, syllable.tone))
37
+ .join(" "), 22)}${isAttested ? "" : "not attested"}`.trimEnd(),
38
+ data: {
39
+ spelling,
40
+ initial: syllable.initial,
41
+ final: syllable.final,
42
+ ...(syllable.tone !== undefined && { tone: syllable.tone }),
43
+ erhua: syllable.erhua === true,
44
+ isAttested,
45
+ ...notations,
46
+ },
47
+ };
48
+ }
49
+ /**
50
+ * Take written pinyin apart, with no dictionary at all.
51
+ */
52
+ export const SYLLABLE = {
53
+ name: "syllable",
54
+ summary: "take written pinyin apart, with no dictionary",
55
+ argument: "<pinyin...>",
56
+ flags: [],
57
+ needsDictionary: false,
58
+ run: (input) => input.texts.map((text) => {
59
+ const split = splitSyllables(text);
60
+ if (split === undefined) {
61
+ return {
62
+ lines: [`${text} not readable as pinyin`],
63
+ data: { text, read: false },
64
+ };
65
+ }
66
+ const taken = split.map((spelling) => syllableTaken(spelling, input.paint));
67
+ return {
68
+ lines: [
69
+ `${text} ${split
70
+ .map((spelling) => input.paint(spelling, readSyllable(spelling)?.tone))
71
+ .join(" ")}`,
72
+ ...taken.map((syllable) => syllable.line),
73
+ ],
74
+ data: {
75
+ text,
76
+ read: true,
77
+ syllables: taken.map((syllable) => syllable.data),
78
+ },
79
+ };
80
+ }),
81
+ };
82
+ //# sourceMappingURL=syllable-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syllable-command.js","sourceRoot":"","sources":["../../src/cli/syllable-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAgB,MAAM,EAAE,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,KAAc;IAKd,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,4EAA4E;IAC5E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB;YAC/C,IAAI,EAAE,EAAE,QAAQ,EAAE;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CACzC,qBAAqB,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,GAAG,QAAQ,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,KAAK,EAAE;QACzE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;IACF,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC3C,WAAW,EAAE,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;KACpD,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAC5D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB,EAAE,CACH,GAAG,MAAM,CACR,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aACrB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,EACb,EAAE,CACH,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE;QAChD,IAAI,EAAE;YACJ,QAAQ;YACR,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3D,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,IAAI;YAC9B,UAAU;YACV,GAAG,SAAS;SACb;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,+CAA+C;IACxD,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,EAAE;IACT,eAAe,EAAE,KAAK;IACtB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,IAAI,0BAA0B,CAAC;gBAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;aAC5B,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CACrC,CAAC;QACF,OAAO;YACL,KAAK,EAAE;gBACL,GAAG,IAAI,KAAK,KAAK;qBACd,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChB,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CACpD;qBACA,IAAI,CAAC,GAAG,CAAC,EAAE;gBACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC1C;YACD,IAAI,EAAE;gBACJ,IAAI;gBACJ,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;aAClD;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The five systems, each taking a write*Word helper apart into the syllable
3
+ * write and the separator it joins on, so every syllable can be painted its
4
+ * own colour. commands.test.ts holds each pair together over the inventory.
5
+ */
6
+ import type { System } from "./systems.js";
7
+ export declare const BOPOMOFO: System;
8
+ export declare const WADE_GILES: System;
9
+ export declare const YALE: System;
10
+ export declare const GWOYEU: System;
11
+ export declare const IPA: System;
12
+ //# sourceMappingURL=system-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-table.d.ts","sourceRoot":"","sources":["../../src/cli/system-table.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAiB3C,eAAO,MAAM,QAAQ,EAAE,MAMtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAOxB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,MAOlB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAMpB,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,MAOjB,CAAC"}