@kensio/pinyinjs 1.7.3 → 1.7.5

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 (695) hide show
  1. package/dist/accuracy/score-case.d.ts +23 -0
  2. package/dist/accuracy/score-case.d.ts.map +1 -0
  3. package/dist/accuracy/score-case.js +63 -0
  4. package/dist/accuracy/score-case.js.map +1 -0
  5. package/dist/accuracy/score.d.ts +1 -8
  6. package/dist/accuracy/score.d.ts.map +1 -1
  7. package/dist/accuracy/score.js +1 -55
  8. package/dist/accuracy/score.js.map +1 -1
  9. package/dist/cli/arguments.d.ts +4 -290
  10. package/dist/cli/arguments.d.ts.map +1 -1
  11. package/dist/cli/arguments.js +5 -357
  12. package/dist/cli/arguments.js.map +1 -1
  13. package/dist/cli/check-command.d.ts +9 -0
  14. package/dist/cli/check-command.d.ts.map +1 -0
  15. package/dist/cli/check-command.js +95 -0
  16. package/dist/cli/check-command.js.map +1 -0
  17. package/dist/cli/cli-input.d.ts +49 -0
  18. package/dist/cli/cli-input.d.ts.map +1 -0
  19. package/dist/cli/cli-input.js +31 -0
  20. package/dist/cli/cli-input.js.map +1 -0
  21. package/dist/cli/command.d.ts +97 -0
  22. package/dist/cli/command.d.ts.map +1 -0
  23. package/dist/cli/command.js +40 -0
  24. package/dist/cli/command.js.map +1 -0
  25. package/dist/cli/commands.d.ts +7 -110
  26. package/dist/cli/commands.d.ts.map +1 -1
  27. package/dist/cli/commands.js +14 -991
  28. package/dist/cli/commands.js.map +1 -1
  29. package/dist/cli/convert-command.d.ts +6 -0
  30. package/dist/cli/convert-command.d.ts.map +1 -0
  31. package/dist/cli/convert-command.js +52 -0
  32. package/dist/cli/convert-command.js.map +1 -0
  33. package/dist/cli/environment.d.ts +1 -1
  34. package/dist/cli/environment.d.ts.map +1 -1
  35. package/dist/cli/explain-command.d.ts +6 -0
  36. package/dist/cli/explain-command.d.ts.map +1 -0
  37. package/dist/cli/explain-command.js +40 -0
  38. package/dist/cli/explain-command.js.map +1 -0
  39. package/dist/cli/explain-syllable.d.ts +10 -0
  40. package/dist/cli/explain-syllable.d.ts.map +1 -0
  41. package/dist/cli/explain-syllable.js +70 -0
  42. package/dist/cli/explain-syllable.js.map +1 -0
  43. package/dist/cli/flag-help.d.ts +18 -0
  44. package/dist/cli/flag-help.d.ts.map +1 -0
  45. package/dist/cli/flag-help.js +78 -0
  46. package/dist/cli/flag-help.js.map +1 -0
  47. package/dist/cli/flag-lists.d.ts +49 -0
  48. package/dist/cli/flag-lists.d.ts.map +1 -0
  49. package/dist/cli/flag-lists.js +58 -0
  50. package/dist/cli/flag-lists.js.map +1 -0
  51. package/dist/cli/flag-values.d.ts +44 -0
  52. package/dist/cli/flag-values.d.ts.map +1 -0
  53. package/dist/cli/flag-values.js +56 -0
  54. package/dist/cli/flag-values.js.map +1 -0
  55. package/dist/cli/flags.d.ts +193 -0
  56. package/dist/cli/flags.d.ts.map +1 -0
  57. package/dist/cli/flags.js +133 -0
  58. package/dist/cli/flags.js.map +1 -0
  59. package/dist/cli/format-options.d.ts +29 -0
  60. package/dist/cli/format-options.d.ts.map +1 -0
  61. package/dist/cli/format-options.js +72 -0
  62. package/dist/cli/format-options.js.map +1 -0
  63. package/dist/cli/global-help.d.ts +23 -0
  64. package/dist/cli/global-help.d.ts.map +1 -0
  65. package/dist/cli/global-help.js +40 -0
  66. package/dist/cli/global-help.js.map +1 -0
  67. package/dist/cli/help.d.ts +1 -1
  68. package/dist/cli/help.d.ts.map +1 -1
  69. package/dist/cli/help.js +5 -99
  70. package/dist/cli/help.js.map +1 -1
  71. package/dist/cli/html-commands.d.ts +13 -0
  72. package/dist/cli/html-commands.d.ts.map +1 -0
  73. package/dist/cli/html-commands.js +49 -0
  74. package/dist/cli/html-commands.js.map +1 -0
  75. package/dist/cli/info-command.d.ts +7 -0
  76. package/dist/cli/info-command.d.ts.map +1 -0
  77. package/dist/cli/info-command.js +39 -0
  78. package/dist/cli/info-command.js.map +1 -0
  79. package/dist/cli/lookup-commands.d.ts +10 -0
  80. package/dist/cli/lookup-commands.d.ts.map +1 -0
  81. package/dist/cli/lookup-commands.js +101 -0
  82. package/dist/cli/lookup-commands.js.map +1 -0
  83. package/dist/cli/match-command.d.ts +11 -0
  84. package/dist/cli/match-command.d.ts.map +1 -0
  85. package/dist/cli/match-command.js +76 -0
  86. package/dist/cli/match-command.js.map +1 -0
  87. package/dist/cli/number-command.d.ts +12 -0
  88. package/dist/cli/number-command.d.ts.map +1 -0
  89. package/dist/cli/number-command.js +89 -0
  90. package/dist/cli/number-command.js.map +1 -0
  91. package/dist/cli/options.d.ts +30 -0
  92. package/dist/cli/options.d.ts.map +1 -0
  93. package/dist/cli/options.js +54 -0
  94. package/dist/cli/options.js.map +1 -0
  95. package/dist/cli/run-command.d.ts +24 -0
  96. package/dist/cli/run-command.d.ts.map +1 -0
  97. package/dist/cli/run-command.js +40 -0
  98. package/dist/cli/run-command.js.map +1 -0
  99. package/dist/cli/run.d.ts +4 -42
  100. package/dist/cli/run.d.ts.map +1 -1
  101. package/dist/cli/run.js +6 -61
  102. package/dist/cli/run.js.map +1 -1
  103. package/dist/cli/script-command.d.ts +10 -0
  104. package/dist/cli/script-command.d.ts.map +1 -0
  105. package/dist/cli/script-command.js +58 -0
  106. package/dist/cli/script-command.js.map +1 -0
  107. package/dist/cli/segment-command.d.ts +11 -0
  108. package/dist/cli/segment-command.d.ts.map +1 -0
  109. package/dist/cli/segment-command.js +53 -0
  110. package/dist/cli/segment-command.js.map +1 -0
  111. package/dist/cli/slug-command.d.ts +10 -0
  112. package/dist/cli/slug-command.d.ts.map +1 -0
  113. package/dist/cli/slug-command.js +28 -0
  114. package/dist/cli/slug-command.js.map +1 -0
  115. package/dist/cli/syllable-command.d.ts +14 -0
  116. package/dist/cli/syllable-command.d.ts.map +1 -0
  117. package/dist/cli/syllable-command.js +82 -0
  118. package/dist/cli/syllable-command.js.map +1 -0
  119. package/dist/cli/system-table.d.ts +12 -0
  120. package/dist/cli/system-table.d.ts.map +1 -0
  121. package/dist/cli/system-table.js +48 -0
  122. package/dist/cli/system-table.js.map +1 -0
  123. package/dist/cli/systems.d.ts +57 -0
  124. package/dist/cli/systems.d.ts.map +1 -0
  125. package/dist/cli/systems.js +27 -0
  126. package/dist/cli/systems.js.map +1 -0
  127. package/dist/cli/transcribe-command.d.ts +18 -0
  128. package/dist/cli/transcribe-command.d.ts.map +1 -0
  129. package/dist/cli/transcribe-command.js +86 -0
  130. package/dist/cli/transcribe-command.js.map +1 -0
  131. package/dist/cli/transcribe-reading.d.ts +15 -0
  132. package/dist/cli/transcribe-reading.d.ts.map +1 -0
  133. package/dist/cli/transcribe-reading.js +90 -0
  134. package/dist/cli/transcribe-reading.js.map +1 -0
  135. package/dist/cli/transcribe-rows.d.ts +26 -0
  136. package/dist/cli/transcribe-rows.d.ts.map +1 -0
  137. package/dist/cli/transcribe-rows.js +30 -0
  138. package/dist/cli/transcribe-rows.js.map +1 -0
  139. package/dist/cli/usage-error.d.ts +9 -0
  140. package/dist/cli/usage-error.d.ts.map +1 -0
  141. package/dist/cli/usage-error.js +9 -0
  142. package/dist/cli/usage-error.js.map +1 -0
  143. package/dist/decode/alternatives.d.ts +16 -0
  144. package/dist/decode/alternatives.d.ts.map +1 -0
  145. package/dist/decode/alternatives.js +31 -0
  146. package/dist/decode/alternatives.js.map +1 -0
  147. package/dist/decode/confidence.d.ts.map +1 -1
  148. package/dist/decode/confidence.js +3 -118
  149. package/dist/decode/confidence.js.map +1 -1
  150. package/dist/decode/convert-options.d.ts +116 -0
  151. package/dist/decode/convert-options.d.ts.map +1 -0
  152. package/dist/decode/convert-options.js +2 -0
  153. package/dist/decode/convert-options.js.map +1 -0
  154. package/dist/decode/convert-pipeline.d.ts +18 -0
  155. package/dist/decode/convert-pipeline.d.ts.map +1 -0
  156. package/dist/decode/convert-pipeline.js +66 -0
  157. package/dist/decode/convert-pipeline.js.map +1 -0
  158. package/dist/decode/convert.d.ts +9 -118
  159. package/dist/decode/convert.d.ts.map +1 -1
  160. package/dist/decode/convert.js +5 -453
  161. package/dist/decode/convert.js.map +1 -1
  162. package/dist/decode/decode.d.ts +2 -15
  163. package/dist/decode/decode.d.ts.map +1 -1
  164. package/dist/decode/decode.js +2 -121
  165. package/dist/decode/decode.js.map +1 -1
  166. package/dist/decode/decoders.d.ts +32 -0
  167. package/dist/decode/decoders.d.ts.map +1 -0
  168. package/dist/decode/decoders.js +29 -0
  169. package/dist/decode/decoders.js.map +1 -0
  170. package/dist/decode/edge-context.d.ts +38 -0
  171. package/dist/decode/edge-context.d.ts.map +1 -0
  172. package/dist/decode/edge-context.js +57 -0
  173. package/dist/decode/edge-context.js.map +1 -0
  174. package/dist/decode/hint-lattice.d.ts +45 -0
  175. package/dist/decode/hint-lattice.d.ts.map +1 -0
  176. package/dist/decode/hint-lattice.js +140 -0
  177. package/dist/decode/hint-lattice.js.map +1 -0
  178. package/dist/decode/hints.d.ts +2 -45
  179. package/dist/decode/hints.d.ts.map +1 -1
  180. package/dist/decode/hints.js +1 -139
  181. package/dist/decode/hints.js.map +1 -1
  182. package/dist/decode/jiao-rule.d.ts +58 -0
  183. package/dist/decode/jiao-rule.d.ts.map +1 -0
  184. package/dist/decode/jiao-rule.js +76 -0
  185. package/dist/decode/jiao-rule.js.map +1 -0
  186. package/dist/decode/lattice-costs.d.ts +55 -0
  187. package/dist/decode/lattice-costs.d.ts.map +1 -0
  188. package/dist/decode/lattice-costs.js +90 -0
  189. package/dist/decode/lattice-costs.js.map +1 -0
  190. package/dist/decode/lattice-edges.d.ts +29 -0
  191. package/dist/decode/lattice-edges.d.ts.map +1 -0
  192. package/dist/decode/lattice-edges.js +78 -0
  193. package/dist/decode/lattice-edges.js.map +1 -0
  194. package/dist/decode/lattice-slice.d.ts +37 -0
  195. package/dist/decode/lattice-slice.d.ts.map +1 -0
  196. package/dist/decode/lattice-slice.js +43 -0
  197. package/dist/decode/lattice-slice.js.map +1 -0
  198. package/dist/decode/lattice-types.d.ts +82 -0
  199. package/dist/decode/lattice-types.d.ts.map +1 -0
  200. package/dist/decode/lattice-types.js +44 -0
  201. package/dist/decode/lattice-types.js.map +1 -0
  202. package/dist/decode/lattice.d.ts +2 -59
  203. package/dist/decode/lattice.d.ts.map +1 -1
  204. package/dist/decode/lattice.js +2 -118
  205. package/dist/decode/lattice.js.map +1 -1
  206. package/dist/decode/number-pieces.d.ts +62 -0
  207. package/dist/decode/number-pieces.d.ts.map +1 -0
  208. package/dist/decode/number-pieces.js +106 -0
  209. package/dist/decode/number-pieces.js.map +1 -0
  210. package/dist/decode/numbers.d.ts +53 -0
  211. package/dist/decode/numbers.d.ts.map +1 -0
  212. package/dist/decode/numbers.js +69 -0
  213. package/dist/decode/numbers.js.map +1 -0
  214. package/dist/decode/pieces.d.ts +78 -0
  215. package/dist/decode/pieces.d.ts.map +1 -0
  216. package/dist/decode/pieces.js +136 -0
  217. package/dist/decode/pieces.js.map +1 -0
  218. package/dist/decode/polyphone-rules.d.ts +31 -0
  219. package/dist/decode/polyphone-rules.d.ts.map +1 -0
  220. package/dist/decode/polyphone-rules.js +159 -0
  221. package/dist/decode/polyphone-rules.js.map +1 -0
  222. package/dist/decode/reading-rules.d.ts +2 -97
  223. package/dist/decode/reading-rules.d.ts.map +1 -1
  224. package/dist/decode/reading-rules.js +4 -365
  225. package/dist/decode/reading-rules.js.map +1 -1
  226. package/dist/decode/rules.d.ts +1 -17
  227. package/dist/decode/rules.d.ts.map +1 -1
  228. package/dist/decode/rules.js +1 -43
  229. package/dist/decode/rules.js.map +1 -1
  230. package/dist/decode/run-lattice.d.ts +52 -0
  231. package/dist/decode/run-lattice.d.ts.map +1 -0
  232. package/dist/decode/run-lattice.js +91 -0
  233. package/dist/decode/run-lattice.js.map +1 -0
  234. package/dist/decode/sandhi-tones.d.ts +69 -0
  235. package/dist/decode/sandhi-tones.d.ts.map +1 -0
  236. package/dist/decode/sandhi-tones.js +88 -0
  237. package/dist/decode/sandhi-tones.js.map +1 -0
  238. package/dist/decode/sandhi.d.ts +1 -1
  239. package/dist/decode/sandhi.d.ts.map +1 -1
  240. package/dist/decode/sandhi.js +1 -81
  241. package/dist/decode/sandhi.js.map +1 -1
  242. package/dist/decode/script-types.d.ts +76 -0
  243. package/dist/decode/script-types.d.ts.map +1 -0
  244. package/dist/decode/script-types.js +35 -0
  245. package/dist/decode/script-types.js.map +1 -0
  246. package/dist/decode/script-words.d.ts +32 -0
  247. package/dist/decode/script-words.d.ts.map +1 -0
  248. package/dist/decode/script-words.js +77 -0
  249. package/dist/decode/script-words.js.map +1 -0
  250. package/dist/decode/script.d.ts +3 -73
  251. package/dist/decode/script.d.ts.map +1 -1
  252. package/dist/decode/script.js +3 -109
  253. package/dist/decode/script.js.map +1 -1
  254. package/dist/decode/tan-rule.d.ts +68 -0
  255. package/dist/decode/tan-rule.d.ts.map +1 -0
  256. package/dist/decode/tan-rule.js +131 -0
  257. package/dist/decode/tan-rule.js.map +1 -0
  258. package/dist/decode/write-run.d.ts +28 -0
  259. package/dist/decode/write-run.d.ts.map +1 -0
  260. package/dist/decode/write-run.js +77 -0
  261. package/dist/decode/write-run.js.map +1 -0
  262. package/dist/dictionary/artifact-claims.d.ts +25 -0
  263. package/dist/dictionary/artifact-claims.d.ts.map +1 -0
  264. package/dist/dictionary/artifact-claims.js +47 -0
  265. package/dist/dictionary/artifact-claims.js.map +1 -0
  266. package/dist/dictionary/artifact-format.d.ts +86 -0
  267. package/dist/dictionary/artifact-format.d.ts.map +1 -0
  268. package/dist/dictionary/artifact-format.js +91 -0
  269. package/dist/dictionary/artifact-format.js.map +1 -0
  270. package/dist/dictionary/artifact-read.d.ts +34 -0
  271. package/dist/dictionary/artifact-read.d.ts.map +1 -0
  272. package/dist/dictionary/artifact-read.js +114 -0
  273. package/dist/dictionary/artifact-read.js.map +1 -0
  274. package/dist/dictionary/artifact.d.ts +4 -63
  275. package/dist/dictionary/artifact.d.ts.map +1 -1
  276. package/dist/dictionary/artifact.js +12 -229
  277. package/dist/dictionary/artifact.js.map +1 -1
  278. package/dist/dictionary/assertions.d.ts +5 -57
  279. package/dist/dictionary/assertions.d.ts.map +1 -1
  280. package/dist/dictionary/assertions.js +4 -317
  281. package/dist/dictionary/assertions.js.map +1 -1
  282. package/dist/dictionary/build-assertions.d.ts +12 -0
  283. package/dist/dictionary/build-assertions.d.ts.map +1 -0
  284. package/dist/dictionary/build-assertions.js +13 -0
  285. package/dist/dictionary/build-assertions.js.map +1 -0
  286. package/dist/dictionary/built-dictionary.d.ts +46 -0
  287. package/dist/dictionary/built-dictionary.d.ts.map +1 -0
  288. package/dist/dictionary/built-dictionary.js +97 -0
  289. package/dist/dictionary/built-dictionary.js.map +1 -0
  290. package/dist/dictionary/cedict-senses.d.ts +80 -0
  291. package/dist/dictionary/cedict-senses.d.ts.map +1 -0
  292. package/dist/dictionary/cedict-senses.js +114 -0
  293. package/dist/dictionary/cedict-senses.js.map +1 -0
  294. package/dist/dictionary/character-defaults.d.ts +26 -0
  295. package/dist/dictionary/character-defaults.d.ts.map +1 -0
  296. package/dist/dictionary/character-defaults.js +67 -0
  297. package/dist/dictionary/character-defaults.js.map +1 -0
  298. package/dist/dictionary/character-readings.d.ts +10 -0
  299. package/dist/dictionary/character-readings.d.ts.map +1 -0
  300. package/dist/dictionary/character-readings.js +25 -0
  301. package/dist/dictionary/character-readings.js.map +1 -0
  302. package/dist/dictionary/dictionary-entry.d.ts +37 -0
  303. package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
  304. package/dist/dictionary/dictionary-entry.js +41 -0
  305. package/dist/dictionary/dictionary-entry.js.map +1 -0
  306. package/dist/dictionary/dictionary-readings.d.ts +56 -0
  307. package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
  308. package/dist/dictionary/dictionary-readings.js +93 -0
  309. package/dist/dictionary/dictionary-readings.js.map +1 -0
  310. package/dist/dictionary/dictionary.d.ts +6 -60
  311. package/dist/dictionary/dictionary.d.ts.map +1 -1
  312. package/dist/dictionary/dictionary.js +9 -169
  313. package/dist/dictionary/dictionary.js.map +1 -1
  314. package/dist/dictionary/entry-invariants.d.ts +3 -0
  315. package/dist/dictionary/entry-invariants.d.ts.map +1 -0
  316. package/dist/dictionary/entry-invariants.js +67 -0
  317. package/dist/dictionary/entry-invariants.js.map +1 -0
  318. package/dist/dictionary/entry-lines.d.ts +35 -0
  319. package/dist/dictionary/entry-lines.d.ts.map +1 -0
  320. package/dist/dictionary/entry-lines.js +70 -0
  321. package/dist/dictionary/entry-lines.js.map +1 -0
  322. package/dist/dictionary/erhua-repair.d.ts +26 -0
  323. package/dist/dictionary/erhua-repair.d.ts.map +1 -0
  324. package/dist/dictionary/erhua-repair.js +49 -0
  325. package/dist/dictionary/erhua-repair.js.map +1 -0
  326. package/dist/dictionary/frequency-tones.d.ts +74 -0
  327. package/dist/dictionary/frequency-tones.d.ts.map +1 -0
  328. package/dist/dictionary/frequency-tones.js +128 -0
  329. package/dist/dictionary/frequency-tones.js.map +1 -0
  330. package/dist/dictionary/inventory-invariants.d.ts +3 -0
  331. package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
  332. package/dist/dictionary/inventory-invariants.js +54 -0
  333. package/dist/dictionary/inventory-invariants.js.map +1 -0
  334. package/dist/dictionary/locale-candidates.d.ts +40 -0
  335. package/dist/dictionary/locale-candidates.d.ts.map +1 -0
  336. package/dist/dictionary/locale-candidates.js +77 -0
  337. package/dist/dictionary/locale-candidates.js.map +1 -0
  338. package/dist/dictionary/locale-segments.d.ts +47 -0
  339. package/dist/dictionary/locale-segments.d.ts.map +1 -0
  340. package/dist/dictionary/locale-segments.js +141 -0
  341. package/dist/dictionary/locale-segments.js.map +1 -0
  342. package/dist/dictionary/locale.d.ts +1 -21
  343. package/dist/dictionary/locale.d.ts.map +1 -1
  344. package/dist/dictionary/locale.js +9 -198
  345. package/dist/dictionary/locale.js.map +1 -1
  346. package/dist/dictionary/merge-types.d.ts +121 -0
  347. package/dist/dictionary/merge-types.d.ts.map +1 -0
  348. package/dist/dictionary/merge-types.js +35 -0
  349. package/dist/dictionary/merge-types.js.map +1 -0
  350. package/dist/dictionary/merge-word.d.ts +7 -0
  351. package/dist/dictionary/merge-word.d.ts.map +1 -0
  352. package/dist/dictionary/merge-word.js +91 -0
  353. package/dist/dictionary/merge-word.js.map +1 -0
  354. package/dist/dictionary/merge.d.ts +5 -62
  355. package/dist/dictionary/merge.d.ts.map +1 -1
  356. package/dist/dictionary/merge.js +30 -713
  357. package/dist/dictionary/merge.js.map +1 -1
  358. package/dist/dictionary/proper-noun.d.ts +28 -0
  359. package/dist/dictionary/proper-noun.d.ts.map +1 -0
  360. package/dist/dictionary/proper-noun.js +43 -0
  361. package/dist/dictionary/proper-noun.js.map +1 -0
  362. package/dist/dictionary/reading-agreement.d.ts +71 -0
  363. package/dist/dictionary/reading-agreement.d.ts.map +1 -0
  364. package/dist/dictionary/reading-agreement.js +156 -0
  365. package/dist/dictionary/reading-agreement.js.map +1 -0
  366. package/dist/dictionary/script-conversion.d.ts +28 -0
  367. package/dist/dictionary/script-conversion.d.ts.map +1 -0
  368. package/dist/dictionary/script-conversion.js +58 -0
  369. package/dist/dictionary/script-conversion.js.map +1 -0
  370. package/dist/dictionary/script-pairings.d.ts +74 -0
  371. package/dist/dictionary/script-pairings.d.ts.map +1 -0
  372. package/dist/dictionary/script-pairings.js +120 -0
  373. package/dist/dictionary/script-pairings.js.map +1 -0
  374. package/dist/dictionary/script-tables.d.ts.map +1 -1
  375. package/dist/dictionary/script-tables.js +2 -165
  376. package/dist/dictionary/script-tables.js.map +1 -1
  377. package/dist/dictionary/taiwan-reading.d.ts +8 -0
  378. package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
  379. package/dist/dictionary/taiwan-reading.js +38 -0
  380. package/dist/dictionary/taiwan-reading.js.map +1 -0
  381. package/dist/dictionary/tone-invariants.d.ts +3 -0
  382. package/dist/dictionary/tone-invariants.d.ts.map +1 -0
  383. package/dist/dictionary/tone-invariants.js +64 -0
  384. package/dist/dictionary/tone-invariants.js.map +1 -0
  385. package/dist/dictionary/traditional-form.d.ts +21 -0
  386. package/dist/dictionary/traditional-form.d.ts.map +1 -0
  387. package/dist/dictionary/traditional-form.js +59 -0
  388. package/dist/dictionary/traditional-form.js.map +1 -0
  389. package/dist/dictionary/traditional-ranking.d.ts +22 -0
  390. package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
  391. package/dist/dictionary/traditional-ranking.js +74 -0
  392. package/dist/dictionary/traditional-ranking.js.map +1 -0
  393. package/dist/dictionary/traditional-table.d.ts +51 -0
  394. package/dist/dictionary/traditional-table.d.ts.map +1 -0
  395. package/dist/dictionary/traditional-table.js +98 -0
  396. package/dist/dictionary/traditional-table.js.map +1 -0
  397. package/dist/dictionary/traditional.d.ts +3 -56
  398. package/dist/dictionary/traditional.d.ts.map +1 -1
  399. package/dist/dictionary/traditional.js +3 -186
  400. package/dist/dictionary/traditional.js.map +1 -1
  401. package/dist/dictionary/variant-counts.d.ts +39 -0
  402. package/dist/dictionary/variant-counts.d.ts.map +1 -0
  403. package/dist/dictionary/variant-counts.js +38 -0
  404. package/dist/dictionary/variant-counts.js.map +1 -0
  405. package/dist/dictionary/word-reading.d.ts +26 -0
  406. package/dist/dictionary/word-reading.d.ts.map +1 -0
  407. package/dist/dictionary/word-reading.js +76 -0
  408. package/dist/dictionary/word-reading.js.map +1 -0
  409. package/dist/dictionary/word-readings.d.ts +15 -0
  410. package/dist/dictionary/word-readings.d.ts.map +1 -0
  411. package/dist/dictionary/word-readings.js +38 -0
  412. package/dist/dictionary/word-readings.js.map +1 -0
  413. package/dist/format/annotate.d.ts +90 -0
  414. package/dist/format/annotate.d.ts.map +1 -0
  415. package/dist/format/annotate.js +168 -0
  416. package/dist/format/annotate.js.map +1 -0
  417. package/dist/format/html.d.ts +15 -46
  418. package/dist/format/html.d.ts.map +1 -1
  419. package/dist/format/html.js +3 -162
  420. package/dist/format/html.js.map +1 -1
  421. package/dist/format/slug-hash.d.ts +51 -0
  422. package/dist/format/slug-hash.d.ts.map +1 -0
  423. package/dist/format/slug-hash.js +74 -0
  424. package/dist/format/slug-hash.js.map +1 -0
  425. package/dist/format/slug-options.d.ts +98 -0
  426. package/dist/format/slug-options.d.ts.map +1 -0
  427. package/dist/format/slug-options.js +2 -0
  428. package/dist/format/slug-options.js.map +1 -0
  429. package/dist/format/slug-words.d.ts +27 -0
  430. package/dist/format/slug-words.d.ts.map +1 -0
  431. package/dist/format/slug-words.js +0 -0
  432. package/dist/format/slug-words.js.map +1 -0
  433. package/dist/format/slug.d.ts +3 -128
  434. package/dist/format/slug.d.ts.map +1 -1
  435. package/dist/format/slug.js +0 -0
  436. package/dist/format/slug.js.map +1 -1
  437. package/dist/grade/check-readings.d.ts +41 -0
  438. package/dist/grade/check-readings.d.ts.map +1 -0
  439. package/dist/grade/check-readings.js +36 -0
  440. package/dist/grade/check-readings.js.map +1 -0
  441. package/dist/grade/check.d.ts +4 -4
  442. package/dist/grade/check.d.ts.map +1 -1
  443. package/dist/grade/check.js +5 -270
  444. package/dist/grade/check.js.map +1 -1
  445. package/dist/grade/pair-syllables.d.ts +48 -0
  446. package/dist/grade/pair-syllables.d.ts.map +1 -0
  447. package/dist/grade/pair-syllables.js +71 -0
  448. package/dist/grade/pair-syllables.js.map +1 -0
  449. package/dist/grade/reading-syllables.d.ts +62 -0
  450. package/dist/grade/reading-syllables.d.ts.map +1 -0
  451. package/dist/grade/reading-syllables.js +58 -0
  452. package/dist/grade/reading-syllables.js.map +1 -0
  453. package/dist/grade/reading-tolerance.d.ts +72 -0
  454. package/dist/grade/reading-tolerance.d.ts.map +1 -0
  455. package/dist/grade/reading-tolerance.js +107 -0
  456. package/dist/grade/reading-tolerance.js.map +1 -0
  457. package/dist/grade/typed-reading.d.ts +28 -0
  458. package/dist/grade/typed-reading.d.ts.map +1 -0
  459. package/dist/grade/typed-reading.js +36 -0
  460. package/dist/grade/typed-reading.js.map +1 -0
  461. package/dist/numerals/numeral-parse.d.ts +32 -0
  462. package/dist/numerals/numeral-parse.d.ts.map +1 -0
  463. package/dist/numerals/numeral-parse.js +44 -0
  464. package/dist/numerals/numeral-parse.js.map +1 -0
  465. package/dist/numerals/numeral-shapes.d.ts +89 -0
  466. package/dist/numerals/numeral-shapes.d.ts.map +1 -0
  467. package/dist/numerals/numeral-shapes.js +99 -0
  468. package/dist/numerals/numeral-shapes.js.map +1 -0
  469. package/dist/numerals/numerals.d.ts.map +1 -1
  470. package/dist/numerals/numerals.js +2 -36
  471. package/dist/numerals/numerals.js.map +1 -1
  472. package/dist/numerals/read-numeral.d.ts +76 -0
  473. package/dist/numerals/read-numeral.d.ts.map +1 -0
  474. package/dist/numerals/read-numeral.js +88 -0
  475. package/dist/numerals/read-numeral.js.map +1 -0
  476. package/dist/numerals/text.d.ts +3 -37
  477. package/dist/numerals/text.d.ts.map +1 -1
  478. package/dist/numerals/text.js +3 -254
  479. package/dist/numerals/text.js.map +1 -1
  480. package/dist/numerals/time.d.ts +34 -0
  481. package/dist/numerals/time.d.ts.map +1 -0
  482. package/dist/numerals/time.js +93 -0
  483. package/dist/numerals/time.js.map +1 -0
  484. package/dist/orthography/address-grouping.d.ts +34 -0
  485. package/dist/orthography/address-grouping.d.ts.map +1 -0
  486. package/dist/orthography/address-grouping.js +52 -0
  487. package/dist/orthography/address-grouping.js.map +1 -0
  488. package/dist/orthography/grouping.d.ts +3 -87
  489. package/dist/orthography/grouping.d.ts.map +1 -1
  490. package/dist/orthography/grouping.js +4 -270
  491. package/dist/orthography/grouping.js.map +1 -1
  492. package/dist/orthography/place-grouping.d.ts +39 -0
  493. package/dist/orthography/place-grouping.d.ts.map +1 -0
  494. package/dist/orthography/place-grouping.js +83 -0
  495. package/dist/orthography/place-grouping.js.map +1 -0
  496. package/dist/orthography/word-grouping.d.ts +48 -0
  497. package/dist/orthography/word-grouping.d.ts.map +1 -0
  498. package/dist/orthography/word-grouping.js +147 -0
  499. package/dist/orthography/word-grouping.js.map +1 -0
  500. package/dist/script/conversion-format.d.ts +22 -0
  501. package/dist/script/conversion-format.d.ts.map +1 -0
  502. package/dist/script/conversion-format.js +22 -0
  503. package/dist/script/conversion-format.js.map +1 -0
  504. package/dist/script/conversion-read.d.ts +9 -0
  505. package/dist/script/conversion-read.d.ts.map +1 -0
  506. package/dist/script/conversion-read.js +69 -0
  507. package/dist/script/conversion-read.js.map +1 -0
  508. package/dist/script/conversion-write.d.ts +14 -0
  509. package/dist/script/conversion-write.d.ts.map +1 -0
  510. package/dist/script/conversion-write.js +34 -0
  511. package/dist/script/conversion-write.js.map +1 -0
  512. package/dist/script/conversion.d.ts +10 -16
  513. package/dist/script/conversion.d.ts.map +1 -1
  514. package/dist/script/conversion.js +2 -115
  515. package/dist/script/conversion.js.map +1 -1
  516. package/dist/search/candidate-narrowing.d.ts +56 -0
  517. package/dist/search/candidate-narrowing.d.ts.map +1 -0
  518. package/dist/search/candidate-narrowing.js +55 -0
  519. package/dist/search/candidate-narrowing.js.map +1 -0
  520. package/dist/search/candidate-query.d.ts +25 -0
  521. package/dist/search/candidate-query.d.ts.map +1 -0
  522. package/dist/search/candidate-query.js +28 -0
  523. package/dist/search/candidate-query.js.map +1 -0
  524. package/dist/search/candidate-writings.d.ts +24 -0
  525. package/dist/search/candidate-writings.d.ts.map +1 -0
  526. package/dist/search/candidate-writings.js +114 -0
  527. package/dist/search/candidate-writings.js.map +1 -0
  528. package/dist/search/candidates.d.ts +7 -41
  529. package/dist/search/candidates.d.ts.map +1 -1
  530. package/dist/search/candidates.js +10 -164
  531. package/dist/search/candidates.js.map +1 -1
  532. package/dist/search/match-chunks.d.ts +19 -0
  533. package/dist/search/match-chunks.d.ts.map +1 -0
  534. package/dist/search/match-chunks.js +30 -0
  535. package/dist/search/match-chunks.js.map +1 -0
  536. package/dist/search/match-ranking.d.ts +39 -0
  537. package/dist/search/match-ranking.d.ts.map +1 -0
  538. package/dist/search/match-ranking.js +51 -0
  539. package/dist/search/match-ranking.js.map +1 -0
  540. package/dist/search/match-readings.d.ts +43 -0
  541. package/dist/search/match-readings.d.ts.map +1 -0
  542. package/dist/search/match-readings.js +83 -0
  543. package/dist/search/match-readings.js.map +1 -0
  544. package/dist/search/match-scoring.d.ts +146 -0
  545. package/dist/search/match-scoring.d.ts.map +1 -0
  546. package/dist/search/match-scoring.js +114 -0
  547. package/dist/search/match-scoring.js.map +1 -0
  548. package/dist/search/match-search.d.ts +28 -0
  549. package/dist/search/match-search.d.ts.map +1 -0
  550. package/dist/search/match-search.js +128 -0
  551. package/dist/search/match-search.js.map +1 -0
  552. package/dist/search/match.d.ts +5 -36
  553. package/dist/search/match.d.ts.map +1 -1
  554. package/dist/search/match.js +2 -379
  555. package/dist/search/match.js.map +1 -1
  556. package/dist/search/reverse-index-build.d.ts +30 -0
  557. package/dist/search/reverse-index-build.d.ts.map +1 -0
  558. package/dist/search/reverse-index-build.js +72 -0
  559. package/dist/search/reverse-index-build.js.map +1 -0
  560. package/dist/search/reverse-index-format.d.ts +60 -0
  561. package/dist/search/reverse-index-format.d.ts.map +1 -0
  562. package/dist/search/reverse-index-format.js +54 -0
  563. package/dist/search/reverse-index-format.js.map +1 -0
  564. package/dist/search/reverse-index-groups.d.ts +37 -0
  565. package/dist/search/reverse-index-groups.d.ts.map +1 -0
  566. package/dist/search/reverse-index-groups.js +71 -0
  567. package/dist/search/reverse-index-groups.js.map +1 -0
  568. package/dist/search/reverse-index-passes.d.ts +78 -0
  569. package/dist/search/reverse-index-passes.d.ts.map +1 -0
  570. package/dist/search/reverse-index-passes.js +59 -0
  571. package/dist/search/reverse-index-passes.js.map +1 -0
  572. package/dist/search/reverse-index-state.d.ts +36 -0
  573. package/dist/search/reverse-index-state.d.ts.map +1 -0
  574. package/dist/search/reverse-index-state.js +95 -0
  575. package/dist/search/reverse-index-state.js.map +1 -0
  576. package/dist/search/reverse-index.d.ts +8 -67
  577. package/dist/search/reverse-index.d.ts.map +1 -1
  578. package/dist/search/reverse-index.js +4 -255
  579. package/dist/search/reverse-index.js.map +1 -1
  580. package/dist/sources/unihan-readings.d.ts +58 -0
  581. package/dist/sources/unihan-readings.d.ts.map +1 -0
  582. package/dist/sources/unihan-readings.js +95 -0
  583. package/dist/sources/unihan-readings.js.map +1 -0
  584. package/dist/sources/unihan.d.ts +6 -9
  585. package/dist/sources/unihan.d.ts.map +1 -1
  586. package/dist/sources/unihan.js +2 -85
  587. package/dist/sources/unihan.js.map +1 -1
  588. package/dist/syllable/final-tables.d.ts +23 -0
  589. package/dist/syllable/final-tables.d.ts.map +1 -0
  590. package/dist/syllable/final-tables.js +50 -0
  591. package/dist/syllable/final-tables.js.map +1 -0
  592. package/dist/syllable/inventory.d.ts +8 -42
  593. package/dist/syllable/inventory.d.ts.map +1 -1
  594. package/dist/syllable/inventory.js +9 -918
  595. package/dist/syllable/inventory.js.map +1 -1
  596. package/dist/syllable/spellings.d.ts +40 -0
  597. package/dist/syllable/spellings.d.ts.map +1 -0
  598. package/dist/syllable/spellings.js +469 -0
  599. package/dist/syllable/spellings.js.map +1 -0
  600. package/dist/syllable/syllable-parts.d.ts +31 -0
  601. package/dist/syllable/syllable-parts.d.ts.map +1 -0
  602. package/dist/syllable/syllable-parts.js +105 -0
  603. package/dist/syllable/syllable-parts.js.map +1 -0
  604. package/dist/syllable/syllable.d.ts +1 -14
  605. package/dist/syllable/syllable.d.ts.map +1 -1
  606. package/dist/syllable/syllable.js +3 -144
  607. package/dist/syllable/syllable.js.map +1 -1
  608. package/dist/syllable/written-tones.d.ts +6 -0
  609. package/dist/syllable/written-tones.d.ts.map +1 -0
  610. package/dist/syllable/written-tones.js +453 -0
  611. package/dist/syllable/written-tones.js.map +1 -0
  612. package/dist/transcription/bopomofo-parse.d.ts +42 -0
  613. package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
  614. package/dist/transcription/bopomofo-parse.js +92 -0
  615. package/dist/transcription/bopomofo-parse.js.map +1 -0
  616. package/dist/transcription/bopomofo-reverse.d.ts +31 -0
  617. package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
  618. package/dist/transcription/bopomofo-reverse.js +48 -0
  619. package/dist/transcription/bopomofo-reverse.js.map +1 -0
  620. package/dist/transcription/bopomofo-symbols.d.ts +36 -0
  621. package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
  622. package/dist/transcription/bopomofo-symbols.js +41 -0
  623. package/dist/transcription/bopomofo-symbols.js.map +1 -0
  624. package/dist/transcription/bopomofo-tables.d.ts +87 -0
  625. package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
  626. package/dist/transcription/bopomofo-tables.js +180 -0
  627. package/dist/transcription/bopomofo-tables.js.map +1 -0
  628. package/dist/transcription/bopomofo.d.ts +14 -32
  629. package/dist/transcription/bopomofo.d.ts.map +1 -1
  630. package/dist/transcription/bopomofo.js +5 -343
  631. package/dist/transcription/bopomofo.js.map +1 -1
  632. package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
  633. package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
  634. package/dist/transcription/gwoyeu-first-second.js +75 -0
  635. package/dist/transcription/gwoyeu-first-second.js.map +1 -0
  636. package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
  637. package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
  638. package/dist/transcription/gwoyeu-spelling.js +124 -0
  639. package/dist/transcription/gwoyeu-spelling.js.map +1 -0
  640. package/dist/transcription/gwoyeu-tables.d.ts +93 -0
  641. package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
  642. package/dist/transcription/gwoyeu-tables.js +205 -0
  643. package/dist/transcription/gwoyeu-tables.js.map +1 -0
  644. package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
  645. package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
  646. package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
  647. package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
  648. package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
  649. package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
  650. package/dist/transcription/gwoyeu-vowels.js +58 -0
  651. package/dist/transcription/gwoyeu-vowels.js.map +1 -0
  652. package/dist/transcription/gwoyeu.d.ts +1 -26
  653. package/dist/transcription/gwoyeu.d.ts.map +1 -1
  654. package/dist/transcription/gwoyeu.js +2 -540
  655. package/dist/transcription/gwoyeu.js.map +1 -1
  656. package/dist/transcription/ipa-symbols.d.ts +67 -0
  657. package/dist/transcription/ipa-symbols.d.ts.map +1 -0
  658. package/dist/transcription/ipa-symbols.js +135 -0
  659. package/dist/transcription/ipa-symbols.js.map +1 -0
  660. package/dist/transcription/ipa.d.ts +2 -10
  661. package/dist/transcription/ipa.d.ts.map +1 -1
  662. package/dist/transcription/ipa.js +2 -134
  663. package/dist/transcription/ipa.js.map +1 -1
  664. package/dist/transcription/wade-giles-index.d.ts +35 -0
  665. package/dist/transcription/wade-giles-index.d.ts.map +1 -0
  666. package/dist/transcription/wade-giles-index.js +110 -0
  667. package/dist/transcription/wade-giles-index.js.map +1 -0
  668. package/dist/transcription/wade-giles-parse.d.ts +36 -0
  669. package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
  670. package/dist/transcription/wade-giles-parse.js +84 -0
  671. package/dist/transcription/wade-giles-parse.js.map +1 -0
  672. package/dist/transcription/wade-giles-spelling.d.ts +61 -0
  673. package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
  674. package/dist/transcription/wade-giles-spelling.js +107 -0
  675. package/dist/transcription/wade-giles-spelling.js.map +1 -0
  676. package/dist/transcription/wade-giles-syllable.d.ts +29 -0
  677. package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
  678. package/dist/transcription/wade-giles-syllable.js +90 -0
  679. package/dist/transcription/wade-giles-syllable.js.map +1 -0
  680. package/dist/transcription/wade-giles-tables.d.ts +80 -0
  681. package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
  682. package/dist/transcription/wade-giles-tables.js +178 -0
  683. package/dist/transcription/wade-giles-tables.js.map +1 -0
  684. package/dist/transcription/wade-giles.d.ts +9 -60
  685. package/dist/transcription/wade-giles.d.ts.map +1 -1
  686. package/dist/transcription/wade-giles.js +6 -543
  687. package/dist/transcription/wade-giles.js.map +1 -1
  688. package/dist/transcription/yale-tables.d.ts +54 -0
  689. package/dist/transcription/yale-tables.d.ts.map +1 -0
  690. package/dist/transcription/yale-tables.js +125 -0
  691. package/dist/transcription/yale-tables.js.map +1 -0
  692. package/dist/transcription/yale.d.ts.map +1 -1
  693. package/dist/transcription/yale.js +1 -124
  694. package/dist/transcription/yale.js.map +1 -1
  695. 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"}