@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.
- package/dist/accuracy/score-case.d.ts +23 -0
- package/dist/accuracy/score-case.d.ts.map +1 -0
- package/dist/accuracy/score-case.js +63 -0
- package/dist/accuracy/score-case.js.map +1 -0
- package/dist/accuracy/score.d.ts +1 -8
- package/dist/accuracy/score.d.ts.map +1 -1
- package/dist/accuracy/score.js +1 -55
- package/dist/accuracy/score.js.map +1 -1
- package/dist/cli/arguments.d.ts +4 -290
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +5 -357
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/check-command.d.ts +9 -0
- package/dist/cli/check-command.d.ts.map +1 -0
- package/dist/cli/check-command.js +95 -0
- package/dist/cli/check-command.js.map +1 -0
- package/dist/cli/cli-input.d.ts +49 -0
- package/dist/cli/cli-input.d.ts.map +1 -0
- package/dist/cli/cli-input.js +31 -0
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/command.d.ts +97 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +40 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -110
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +14 -991
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/convert-command.d.ts +6 -0
- package/dist/cli/convert-command.d.ts.map +1 -0
- package/dist/cli/convert-command.js +52 -0
- package/dist/cli/convert-command.js.map +1 -0
- package/dist/cli/environment.d.ts +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/explain-command.d.ts +6 -0
- package/dist/cli/explain-command.d.ts.map +1 -0
- package/dist/cli/explain-command.js +40 -0
- package/dist/cli/explain-command.js.map +1 -0
- package/dist/cli/explain-syllable.d.ts +10 -0
- package/dist/cli/explain-syllable.d.ts.map +1 -0
- package/dist/cli/explain-syllable.js +70 -0
- package/dist/cli/explain-syllable.js.map +1 -0
- package/dist/cli/flag-help.d.ts +18 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +78 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/flag-lists.d.ts +49 -0
- package/dist/cli/flag-lists.d.ts.map +1 -0
- package/dist/cli/flag-lists.js +58 -0
- package/dist/cli/flag-lists.js.map +1 -0
- package/dist/cli/flag-values.d.ts +44 -0
- package/dist/cli/flag-values.d.ts.map +1 -0
- package/dist/cli/flag-values.js +56 -0
- package/dist/cli/flag-values.js.map +1 -0
- package/dist/cli/flags.d.ts +193 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +133 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/format-options.d.ts +29 -0
- package/dist/cli/format-options.d.ts.map +1 -0
- package/dist/cli/format-options.js +72 -0
- package/dist/cli/format-options.js.map +1 -0
- package/dist/cli/global-help.d.ts +23 -0
- package/dist/cli/global-help.d.ts.map +1 -0
- package/dist/cli/global-help.js +40 -0
- package/dist/cli/global-help.js.map +1 -0
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -99
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/html-commands.d.ts +13 -0
- package/dist/cli/html-commands.d.ts.map +1 -0
- package/dist/cli/html-commands.js +49 -0
- package/dist/cli/html-commands.js.map +1 -0
- package/dist/cli/info-command.d.ts +7 -0
- package/dist/cli/info-command.d.ts.map +1 -0
- package/dist/cli/info-command.js +39 -0
- package/dist/cli/info-command.js.map +1 -0
- package/dist/cli/lookup-commands.d.ts +10 -0
- package/dist/cli/lookup-commands.d.ts.map +1 -0
- package/dist/cli/lookup-commands.js +101 -0
- package/dist/cli/lookup-commands.js.map +1 -0
- package/dist/cli/match-command.d.ts +11 -0
- package/dist/cli/match-command.d.ts.map +1 -0
- package/dist/cli/match-command.js +76 -0
- package/dist/cli/match-command.js.map +1 -0
- package/dist/cli/number-command.d.ts +12 -0
- package/dist/cli/number-command.d.ts.map +1 -0
- package/dist/cli/number-command.js +89 -0
- package/dist/cli/number-command.js.map +1 -0
- package/dist/cli/options.d.ts +30 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +54 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run-command.d.ts +24 -0
- package/dist/cli/run-command.d.ts.map +1 -0
- package/dist/cli/run-command.js +40 -0
- package/dist/cli/run-command.js.map +1 -0
- package/dist/cli/run.d.ts +4 -42
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -61
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script-command.d.ts +10 -0
- package/dist/cli/script-command.d.ts.map +1 -0
- package/dist/cli/script-command.js +58 -0
- package/dist/cli/script-command.js.map +1 -0
- package/dist/cli/segment-command.d.ts +11 -0
- package/dist/cli/segment-command.d.ts.map +1 -0
- package/dist/cli/segment-command.js +53 -0
- package/dist/cli/segment-command.js.map +1 -0
- package/dist/cli/slug-command.d.ts +10 -0
- package/dist/cli/slug-command.d.ts.map +1 -0
- package/dist/cli/slug-command.js +28 -0
- package/dist/cli/slug-command.js.map +1 -0
- package/dist/cli/syllable-command.d.ts +14 -0
- package/dist/cli/syllable-command.d.ts.map +1 -0
- package/dist/cli/syllable-command.js +82 -0
- package/dist/cli/syllable-command.js.map +1 -0
- package/dist/cli/system-table.d.ts +12 -0
- package/dist/cli/system-table.d.ts.map +1 -0
- package/dist/cli/system-table.js +48 -0
- package/dist/cli/system-table.js.map +1 -0
- package/dist/cli/systems.d.ts +57 -0
- package/dist/cli/systems.d.ts.map +1 -0
- package/dist/cli/systems.js +27 -0
- package/dist/cli/systems.js.map +1 -0
- package/dist/cli/transcribe-command.d.ts +18 -0
- package/dist/cli/transcribe-command.d.ts.map +1 -0
- package/dist/cli/transcribe-command.js +86 -0
- package/dist/cli/transcribe-command.js.map +1 -0
- package/dist/cli/transcribe-reading.d.ts +15 -0
- package/dist/cli/transcribe-reading.d.ts.map +1 -0
- package/dist/cli/transcribe-reading.js +90 -0
- package/dist/cli/transcribe-reading.js.map +1 -0
- package/dist/cli/transcribe-rows.d.ts +26 -0
- package/dist/cli/transcribe-rows.d.ts.map +1 -0
- package/dist/cli/transcribe-rows.js +30 -0
- package/dist/cli/transcribe-rows.js.map +1 -0
- package/dist/cli/usage-error.d.ts +9 -0
- package/dist/cli/usage-error.d.ts.map +1 -0
- package/dist/cli/usage-error.js +9 -0
- package/dist/cli/usage-error.js.map +1 -0
- package/dist/decode/alternatives.d.ts +16 -0
- package/dist/decode/alternatives.d.ts.map +1 -0
- package/dist/decode/alternatives.js +31 -0
- package/dist/decode/alternatives.js.map +1 -0
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +3 -118
- package/dist/decode/confidence.js.map +1 -1
- package/dist/decode/convert-options.d.ts +116 -0
- package/dist/decode/convert-options.d.ts.map +1 -0
- package/dist/decode/convert-options.js +2 -0
- package/dist/decode/convert-options.js.map +1 -0
- package/dist/decode/convert-pipeline.d.ts +18 -0
- package/dist/decode/convert-pipeline.d.ts.map +1 -0
- package/dist/decode/convert-pipeline.js +66 -0
- package/dist/decode/convert-pipeline.js.map +1 -0
- package/dist/decode/convert.d.ts +9 -118
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +5 -453
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/decode.d.ts +2 -15
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +2 -121
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/decoders.d.ts +32 -0
- package/dist/decode/decoders.d.ts.map +1 -0
- package/dist/decode/decoders.js +29 -0
- package/dist/decode/decoders.js.map +1 -0
- package/dist/decode/edge-context.d.ts +38 -0
- package/dist/decode/edge-context.d.ts.map +1 -0
- package/dist/decode/edge-context.js +57 -0
- package/dist/decode/edge-context.js.map +1 -0
- package/dist/decode/hint-lattice.d.ts +45 -0
- package/dist/decode/hint-lattice.d.ts.map +1 -0
- package/dist/decode/hint-lattice.js +140 -0
- package/dist/decode/hint-lattice.js.map +1 -0
- package/dist/decode/hints.d.ts +2 -45
- package/dist/decode/hints.d.ts.map +1 -1
- package/dist/decode/hints.js +1 -139
- package/dist/decode/hints.js.map +1 -1
- package/dist/decode/jiao-rule.d.ts +58 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +76 -0
- package/dist/decode/jiao-rule.js.map +1 -0
- package/dist/decode/lattice-costs.d.ts +55 -0
- package/dist/decode/lattice-costs.d.ts.map +1 -0
- package/dist/decode/lattice-costs.js +90 -0
- package/dist/decode/lattice-costs.js.map +1 -0
- package/dist/decode/lattice-edges.d.ts +29 -0
- package/dist/decode/lattice-edges.d.ts.map +1 -0
- package/dist/decode/lattice-edges.js +78 -0
- package/dist/decode/lattice-edges.js.map +1 -0
- package/dist/decode/lattice-slice.d.ts +37 -0
- package/dist/decode/lattice-slice.d.ts.map +1 -0
- package/dist/decode/lattice-slice.js +43 -0
- package/dist/decode/lattice-slice.js.map +1 -0
- package/dist/decode/lattice-types.d.ts +82 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +44 -0
- package/dist/decode/lattice-types.js.map +1 -0
- package/dist/decode/lattice.d.ts +2 -59
- package/dist/decode/lattice.d.ts.map +1 -1
- package/dist/decode/lattice.js +2 -118
- package/dist/decode/lattice.js.map +1 -1
- package/dist/decode/number-pieces.d.ts +62 -0
- package/dist/decode/number-pieces.d.ts.map +1 -0
- package/dist/decode/number-pieces.js +106 -0
- package/dist/decode/number-pieces.js.map +1 -0
- package/dist/decode/numbers.d.ts +53 -0
- package/dist/decode/numbers.d.ts.map +1 -0
- package/dist/decode/numbers.js +69 -0
- package/dist/decode/numbers.js.map +1 -0
- package/dist/decode/pieces.d.ts +78 -0
- package/dist/decode/pieces.d.ts.map +1 -0
- package/dist/decode/pieces.js +136 -0
- package/dist/decode/pieces.js.map +1 -0
- package/dist/decode/polyphone-rules.d.ts +31 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +159 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +2 -97
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +4 -365
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/rules.d.ts +1 -17
- package/dist/decode/rules.d.ts.map +1 -1
- package/dist/decode/rules.js +1 -43
- package/dist/decode/rules.js.map +1 -1
- package/dist/decode/run-lattice.d.ts +52 -0
- package/dist/decode/run-lattice.d.ts.map +1 -0
- package/dist/decode/run-lattice.js +91 -0
- package/dist/decode/run-lattice.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +69 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +88 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +1 -1
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +1 -81
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/script-types.d.ts +76 -0
- package/dist/decode/script-types.d.ts.map +1 -0
- package/dist/decode/script-types.js +35 -0
- package/dist/decode/script-types.js.map +1 -0
- package/dist/decode/script-words.d.ts +32 -0
- package/dist/decode/script-words.d.ts.map +1 -0
- package/dist/decode/script-words.js +77 -0
- package/dist/decode/script-words.js.map +1 -0
- package/dist/decode/script.d.ts +3 -73
- package/dist/decode/script.d.ts.map +1 -1
- package/dist/decode/script.js +3 -109
- package/dist/decode/script.js.map +1 -1
- package/dist/decode/tan-rule.d.ts +68 -0
- package/dist/decode/tan-rule.d.ts.map +1 -0
- package/dist/decode/tan-rule.js +131 -0
- package/dist/decode/tan-rule.js.map +1 -0
- package/dist/decode/write-run.d.ts +28 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +77 -0
- package/dist/decode/write-run.js.map +1 -0
- package/dist/dictionary/artifact-claims.d.ts +25 -0
- package/dist/dictionary/artifact-claims.d.ts.map +1 -0
- package/dist/dictionary/artifact-claims.js +47 -0
- package/dist/dictionary/artifact-claims.js.map +1 -0
- package/dist/dictionary/artifact-format.d.ts +86 -0
- package/dist/dictionary/artifact-format.d.ts.map +1 -0
- package/dist/dictionary/artifact-format.js +91 -0
- package/dist/dictionary/artifact-format.js.map +1 -0
- package/dist/dictionary/artifact-read.d.ts +34 -0
- package/dist/dictionary/artifact-read.d.ts.map +1 -0
- package/dist/dictionary/artifact-read.js +114 -0
- package/dist/dictionary/artifact-read.js.map +1 -0
- package/dist/dictionary/artifact.d.ts +4 -63
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +12 -229
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/assertions.d.ts +5 -57
- package/dist/dictionary/assertions.d.ts.map +1 -1
- package/dist/dictionary/assertions.js +4 -317
- package/dist/dictionary/assertions.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts +12 -0
- package/dist/dictionary/build-assertions.d.ts.map +1 -0
- package/dist/dictionary/build-assertions.js +13 -0
- package/dist/dictionary/build-assertions.js.map +1 -0
- package/dist/dictionary/built-dictionary.d.ts +46 -0
- package/dist/dictionary/built-dictionary.d.ts.map +1 -0
- package/dist/dictionary/built-dictionary.js +97 -0
- package/dist/dictionary/built-dictionary.js.map +1 -0
- package/dist/dictionary/cedict-senses.d.ts +80 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +114 -0
- package/dist/dictionary/cedict-senses.js.map +1 -0
- package/dist/dictionary/character-defaults.d.ts +26 -0
- package/dist/dictionary/character-defaults.d.ts.map +1 -0
- package/dist/dictionary/character-defaults.js +67 -0
- package/dist/dictionary/character-defaults.js.map +1 -0
- package/dist/dictionary/character-readings.d.ts +10 -0
- package/dist/dictionary/character-readings.d.ts.map +1 -0
- package/dist/dictionary/character-readings.js +25 -0
- package/dist/dictionary/character-readings.js.map +1 -0
- package/dist/dictionary/dictionary-entry.d.ts +37 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
- package/dist/dictionary/dictionary-entry.js +41 -0
- package/dist/dictionary/dictionary-entry.js.map +1 -0
- package/dist/dictionary/dictionary-readings.d.ts +56 -0
- package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
- package/dist/dictionary/dictionary-readings.js +93 -0
- package/dist/dictionary/dictionary-readings.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +6 -60
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +9 -169
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +3 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -0
- package/dist/dictionary/entry-invariants.js +67 -0
- package/dist/dictionary/entry-invariants.js.map +1 -0
- package/dist/dictionary/entry-lines.d.ts +35 -0
- package/dist/dictionary/entry-lines.d.ts.map +1 -0
- package/dist/dictionary/entry-lines.js +70 -0
- package/dist/dictionary/entry-lines.js.map +1 -0
- package/dist/dictionary/erhua-repair.d.ts +26 -0
- package/dist/dictionary/erhua-repair.d.ts.map +1 -0
- package/dist/dictionary/erhua-repair.js +49 -0
- package/dist/dictionary/erhua-repair.js.map +1 -0
- package/dist/dictionary/frequency-tones.d.ts +74 -0
- package/dist/dictionary/frequency-tones.d.ts.map +1 -0
- package/dist/dictionary/frequency-tones.js +128 -0
- package/dist/dictionary/frequency-tones.js.map +1 -0
- package/dist/dictionary/inventory-invariants.d.ts +3 -0
- package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
- package/dist/dictionary/inventory-invariants.js +54 -0
- package/dist/dictionary/inventory-invariants.js.map +1 -0
- package/dist/dictionary/locale-candidates.d.ts +40 -0
- package/dist/dictionary/locale-candidates.d.ts.map +1 -0
- package/dist/dictionary/locale-candidates.js +77 -0
- package/dist/dictionary/locale-candidates.js.map +1 -0
- package/dist/dictionary/locale-segments.d.ts +47 -0
- package/dist/dictionary/locale-segments.d.ts.map +1 -0
- package/dist/dictionary/locale-segments.js +141 -0
- package/dist/dictionary/locale-segments.js.map +1 -0
- package/dist/dictionary/locale.d.ts +1 -21
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +9 -198
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +121 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -0
- package/dist/dictionary/merge-types.js +35 -0
- package/dist/dictionary/merge-types.js.map +1 -0
- package/dist/dictionary/merge-word.d.ts +7 -0
- package/dist/dictionary/merge-word.d.ts.map +1 -0
- package/dist/dictionary/merge-word.js +91 -0
- package/dist/dictionary/merge-word.js.map +1 -0
- package/dist/dictionary/merge.d.ts +5 -62
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +30 -713
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +28 -0
- package/dist/dictionary/proper-noun.d.ts.map +1 -0
- package/dist/dictionary/proper-noun.js +43 -0
- package/dist/dictionary/proper-noun.js.map +1 -0
- package/dist/dictionary/reading-agreement.d.ts +71 -0
- package/dist/dictionary/reading-agreement.d.ts.map +1 -0
- package/dist/dictionary/reading-agreement.js +156 -0
- package/dist/dictionary/reading-agreement.js.map +1 -0
- package/dist/dictionary/script-conversion.d.ts +28 -0
- package/dist/dictionary/script-conversion.d.ts.map +1 -0
- package/dist/dictionary/script-conversion.js +58 -0
- package/dist/dictionary/script-conversion.js.map +1 -0
- package/dist/dictionary/script-pairings.d.ts +74 -0
- package/dist/dictionary/script-pairings.d.ts.map +1 -0
- package/dist/dictionary/script-pairings.js +120 -0
- package/dist/dictionary/script-pairings.js.map +1 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -1
- package/dist/dictionary/script-tables.js +2 -165
- package/dist/dictionary/script-tables.js.map +1 -1
- package/dist/dictionary/taiwan-reading.d.ts +8 -0
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
- package/dist/dictionary/taiwan-reading.js +38 -0
- package/dist/dictionary/taiwan-reading.js.map +1 -0
- package/dist/dictionary/tone-invariants.d.ts +3 -0
- package/dist/dictionary/tone-invariants.d.ts.map +1 -0
- package/dist/dictionary/tone-invariants.js +64 -0
- package/dist/dictionary/tone-invariants.js.map +1 -0
- package/dist/dictionary/traditional-form.d.ts +21 -0
- package/dist/dictionary/traditional-form.d.ts.map +1 -0
- package/dist/dictionary/traditional-form.js +59 -0
- package/dist/dictionary/traditional-form.js.map +1 -0
- package/dist/dictionary/traditional-ranking.d.ts +22 -0
- package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
- package/dist/dictionary/traditional-ranking.js +74 -0
- package/dist/dictionary/traditional-ranking.js.map +1 -0
- package/dist/dictionary/traditional-table.d.ts +51 -0
- package/dist/dictionary/traditional-table.d.ts.map +1 -0
- package/dist/dictionary/traditional-table.js +98 -0
- package/dist/dictionary/traditional-table.js.map +1 -0
- package/dist/dictionary/traditional.d.ts +3 -56
- package/dist/dictionary/traditional.d.ts.map +1 -1
- package/dist/dictionary/traditional.js +3 -186
- package/dist/dictionary/traditional.js.map +1 -1
- package/dist/dictionary/variant-counts.d.ts +39 -0
- package/dist/dictionary/variant-counts.d.ts.map +1 -0
- package/dist/dictionary/variant-counts.js +38 -0
- package/dist/dictionary/variant-counts.js.map +1 -0
- package/dist/dictionary/word-reading.d.ts +26 -0
- package/dist/dictionary/word-reading.d.ts.map +1 -0
- package/dist/dictionary/word-reading.js +76 -0
- package/dist/dictionary/word-reading.js.map +1 -0
- package/dist/dictionary/word-readings.d.ts +15 -0
- package/dist/dictionary/word-readings.d.ts.map +1 -0
- package/dist/dictionary/word-readings.js +38 -0
- package/dist/dictionary/word-readings.js.map +1 -0
- package/dist/format/annotate.d.ts +90 -0
- package/dist/format/annotate.d.ts.map +1 -0
- package/dist/format/annotate.js +168 -0
- package/dist/format/annotate.js.map +1 -0
- package/dist/format/html.d.ts +15 -46
- package/dist/format/html.d.ts.map +1 -1
- package/dist/format/html.js +3 -162
- package/dist/format/html.js.map +1 -1
- package/dist/format/slug-hash.d.ts +51 -0
- package/dist/format/slug-hash.d.ts.map +1 -0
- package/dist/format/slug-hash.js +74 -0
- package/dist/format/slug-hash.js.map +1 -0
- package/dist/format/slug-options.d.ts +98 -0
- package/dist/format/slug-options.d.ts.map +1 -0
- package/dist/format/slug-options.js +2 -0
- package/dist/format/slug-options.js.map +1 -0
- package/dist/format/slug-words.d.ts +27 -0
- package/dist/format/slug-words.d.ts.map +1 -0
- package/dist/format/slug-words.js +0 -0
- package/dist/format/slug-words.js.map +1 -0
- package/dist/format/slug.d.ts +3 -128
- package/dist/format/slug.d.ts.map +1 -1
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -1
- package/dist/grade/check-readings.d.ts +41 -0
- package/dist/grade/check-readings.d.ts.map +1 -0
- package/dist/grade/check-readings.js +36 -0
- package/dist/grade/check-readings.js.map +1 -0
- package/dist/grade/check.d.ts +4 -4
- package/dist/grade/check.d.ts.map +1 -1
- package/dist/grade/check.js +5 -270
- package/dist/grade/check.js.map +1 -1
- package/dist/grade/pair-syllables.d.ts +48 -0
- package/dist/grade/pair-syllables.d.ts.map +1 -0
- package/dist/grade/pair-syllables.js +71 -0
- package/dist/grade/pair-syllables.js.map +1 -0
- package/dist/grade/reading-syllables.d.ts +62 -0
- package/dist/grade/reading-syllables.d.ts.map +1 -0
- package/dist/grade/reading-syllables.js +58 -0
- package/dist/grade/reading-syllables.js.map +1 -0
- package/dist/grade/reading-tolerance.d.ts +72 -0
- package/dist/grade/reading-tolerance.d.ts.map +1 -0
- package/dist/grade/reading-tolerance.js +107 -0
- package/dist/grade/reading-tolerance.js.map +1 -0
- package/dist/grade/typed-reading.d.ts +28 -0
- package/dist/grade/typed-reading.d.ts.map +1 -0
- package/dist/grade/typed-reading.js +36 -0
- package/dist/grade/typed-reading.js.map +1 -0
- package/dist/numerals/numeral-parse.d.ts +32 -0
- package/dist/numerals/numeral-parse.d.ts.map +1 -0
- package/dist/numerals/numeral-parse.js +44 -0
- package/dist/numerals/numeral-parse.js.map +1 -0
- package/dist/numerals/numeral-shapes.d.ts +89 -0
- package/dist/numerals/numeral-shapes.d.ts.map +1 -0
- package/dist/numerals/numeral-shapes.js +99 -0
- package/dist/numerals/numeral-shapes.js.map +1 -0
- package/dist/numerals/numerals.d.ts.map +1 -1
- package/dist/numerals/numerals.js +2 -36
- package/dist/numerals/numerals.js.map +1 -1
- package/dist/numerals/read-numeral.d.ts +76 -0
- package/dist/numerals/read-numeral.d.ts.map +1 -0
- package/dist/numerals/read-numeral.js +88 -0
- package/dist/numerals/read-numeral.js.map +1 -0
- package/dist/numerals/text.d.ts +3 -37
- package/dist/numerals/text.d.ts.map +1 -1
- package/dist/numerals/text.js +3 -254
- package/dist/numerals/text.js.map +1 -1
- package/dist/numerals/time.d.ts +34 -0
- package/dist/numerals/time.d.ts.map +1 -0
- package/dist/numerals/time.js +93 -0
- package/dist/numerals/time.js.map +1 -0
- package/dist/orthography/address-grouping.d.ts +34 -0
- package/dist/orthography/address-grouping.d.ts.map +1 -0
- package/dist/orthography/address-grouping.js +52 -0
- package/dist/orthography/address-grouping.js.map +1 -0
- package/dist/orthography/grouping.d.ts +3 -87
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +4 -270
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/place-grouping.d.ts +39 -0
- package/dist/orthography/place-grouping.d.ts.map +1 -0
- package/dist/orthography/place-grouping.js +83 -0
- package/dist/orthography/place-grouping.js.map +1 -0
- package/dist/orthography/word-grouping.d.ts +48 -0
- package/dist/orthography/word-grouping.d.ts.map +1 -0
- package/dist/orthography/word-grouping.js +147 -0
- package/dist/orthography/word-grouping.js.map +1 -0
- package/dist/script/conversion-format.d.ts +22 -0
- package/dist/script/conversion-format.d.ts.map +1 -0
- package/dist/script/conversion-format.js +22 -0
- package/dist/script/conversion-format.js.map +1 -0
- package/dist/script/conversion-read.d.ts +9 -0
- package/dist/script/conversion-read.d.ts.map +1 -0
- package/dist/script/conversion-read.js +69 -0
- package/dist/script/conversion-read.js.map +1 -0
- package/dist/script/conversion-write.d.ts +14 -0
- package/dist/script/conversion-write.d.ts.map +1 -0
- package/dist/script/conversion-write.js +34 -0
- package/dist/script/conversion-write.js.map +1 -0
- package/dist/script/conversion.d.ts +10 -16
- package/dist/script/conversion.d.ts.map +1 -1
- package/dist/script/conversion.js +2 -115
- package/dist/script/conversion.js.map +1 -1
- package/dist/search/candidate-narrowing.d.ts +56 -0
- package/dist/search/candidate-narrowing.d.ts.map +1 -0
- package/dist/search/candidate-narrowing.js +55 -0
- package/dist/search/candidate-narrowing.js.map +1 -0
- package/dist/search/candidate-query.d.ts +25 -0
- package/dist/search/candidate-query.d.ts.map +1 -0
- package/dist/search/candidate-query.js +28 -0
- package/dist/search/candidate-query.js.map +1 -0
- package/dist/search/candidate-writings.d.ts +24 -0
- package/dist/search/candidate-writings.d.ts.map +1 -0
- package/dist/search/candidate-writings.js +114 -0
- package/dist/search/candidate-writings.js.map +1 -0
- package/dist/search/candidates.d.ts +7 -41
- package/dist/search/candidates.d.ts.map +1 -1
- package/dist/search/candidates.js +10 -164
- package/dist/search/candidates.js.map +1 -1
- package/dist/search/match-chunks.d.ts +19 -0
- package/dist/search/match-chunks.d.ts.map +1 -0
- package/dist/search/match-chunks.js +30 -0
- package/dist/search/match-chunks.js.map +1 -0
- package/dist/search/match-ranking.d.ts +39 -0
- package/dist/search/match-ranking.d.ts.map +1 -0
- package/dist/search/match-ranking.js +51 -0
- package/dist/search/match-ranking.js.map +1 -0
- package/dist/search/match-readings.d.ts +43 -0
- package/dist/search/match-readings.d.ts.map +1 -0
- package/dist/search/match-readings.js +83 -0
- package/dist/search/match-readings.js.map +1 -0
- package/dist/search/match-scoring.d.ts +146 -0
- package/dist/search/match-scoring.d.ts.map +1 -0
- package/dist/search/match-scoring.js +114 -0
- package/dist/search/match-scoring.js.map +1 -0
- package/dist/search/match-search.d.ts +28 -0
- package/dist/search/match-search.d.ts.map +1 -0
- package/dist/search/match-search.js +128 -0
- package/dist/search/match-search.js.map +1 -0
- package/dist/search/match.d.ts +5 -36
- package/dist/search/match.d.ts.map +1 -1
- package/dist/search/match.js +2 -379
- package/dist/search/match.js.map +1 -1
- package/dist/search/reverse-index-build.d.ts +30 -0
- package/dist/search/reverse-index-build.d.ts.map +1 -0
- package/dist/search/reverse-index-build.js +72 -0
- package/dist/search/reverse-index-build.js.map +1 -0
- package/dist/search/reverse-index-format.d.ts +60 -0
- package/dist/search/reverse-index-format.d.ts.map +1 -0
- package/dist/search/reverse-index-format.js +54 -0
- package/dist/search/reverse-index-format.js.map +1 -0
- package/dist/search/reverse-index-groups.d.ts +37 -0
- package/dist/search/reverse-index-groups.d.ts.map +1 -0
- package/dist/search/reverse-index-groups.js +71 -0
- package/dist/search/reverse-index-groups.js.map +1 -0
- package/dist/search/reverse-index-passes.d.ts +78 -0
- package/dist/search/reverse-index-passes.d.ts.map +1 -0
- package/dist/search/reverse-index-passes.js +59 -0
- package/dist/search/reverse-index-passes.js.map +1 -0
- package/dist/search/reverse-index-state.d.ts +36 -0
- package/dist/search/reverse-index-state.d.ts.map +1 -0
- package/dist/search/reverse-index-state.js +95 -0
- package/dist/search/reverse-index-state.js.map +1 -0
- package/dist/search/reverse-index.d.ts +8 -67
- package/dist/search/reverse-index.d.ts.map +1 -1
- package/dist/search/reverse-index.js +4 -255
- package/dist/search/reverse-index.js.map +1 -1
- package/dist/sources/unihan-readings.d.ts +58 -0
- package/dist/sources/unihan-readings.d.ts.map +1 -0
- package/dist/sources/unihan-readings.js +95 -0
- package/dist/sources/unihan-readings.js.map +1 -0
- package/dist/sources/unihan.d.ts +6 -9
- package/dist/sources/unihan.d.ts.map +1 -1
- package/dist/sources/unihan.js +2 -85
- package/dist/sources/unihan.js.map +1 -1
- package/dist/syllable/final-tables.d.ts +23 -0
- package/dist/syllable/final-tables.d.ts.map +1 -0
- package/dist/syllable/final-tables.js +50 -0
- package/dist/syllable/final-tables.js.map +1 -0
- package/dist/syllable/inventory.d.ts +8 -42
- package/dist/syllable/inventory.d.ts.map +1 -1
- package/dist/syllable/inventory.js +9 -918
- package/dist/syllable/inventory.js.map +1 -1
- package/dist/syllable/spellings.d.ts +40 -0
- package/dist/syllable/spellings.d.ts.map +1 -0
- package/dist/syllable/spellings.js +469 -0
- package/dist/syllable/spellings.js.map +1 -0
- package/dist/syllable/syllable-parts.d.ts +31 -0
- package/dist/syllable/syllable-parts.d.ts.map +1 -0
- package/dist/syllable/syllable-parts.js +105 -0
- package/dist/syllable/syllable-parts.js.map +1 -0
- package/dist/syllable/syllable.d.ts +1 -14
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +3 -144
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/syllable/written-tones.d.ts +6 -0
- package/dist/syllable/written-tones.d.ts.map +1 -0
- package/dist/syllable/written-tones.js +453 -0
- package/dist/syllable/written-tones.js.map +1 -0
- package/dist/transcription/bopomofo-parse.d.ts +42 -0
- package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-parse.js +92 -0
- package/dist/transcription/bopomofo-parse.js.map +1 -0
- package/dist/transcription/bopomofo-reverse.d.ts +31 -0
- package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-reverse.js +48 -0
- package/dist/transcription/bopomofo-reverse.js.map +1 -0
- package/dist/transcription/bopomofo-symbols.d.ts +36 -0
- package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
- package/dist/transcription/bopomofo-symbols.js +41 -0
- package/dist/transcription/bopomofo-symbols.js.map +1 -0
- package/dist/transcription/bopomofo-tables.d.ts +87 -0
- package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
- package/dist/transcription/bopomofo-tables.js +180 -0
- package/dist/transcription/bopomofo-tables.js.map +1 -0
- package/dist/transcription/bopomofo.d.ts +14 -32
- package/dist/transcription/bopomofo.d.ts.map +1 -1
- package/dist/transcription/bopomofo.js +5 -343
- package/dist/transcription/bopomofo.js.map +1 -1
- package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
- package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-first-second.js +75 -0
- package/dist/transcription/gwoyeu-first-second.js.map +1 -0
- package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
- package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-spelling.js +124 -0
- package/dist/transcription/gwoyeu-spelling.js.map +1 -0
- package/dist/transcription/gwoyeu-tables.d.ts +93 -0
- package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tables.js +205 -0
- package/dist/transcription/gwoyeu-tables.js.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
- package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
- package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
- package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-vowels.js +58 -0
- package/dist/transcription/gwoyeu-vowels.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +1 -26
- package/dist/transcription/gwoyeu.d.ts.map +1 -1
- package/dist/transcription/gwoyeu.js +2 -540
- package/dist/transcription/gwoyeu.js.map +1 -1
- package/dist/transcription/ipa-symbols.d.ts +67 -0
- package/dist/transcription/ipa-symbols.d.ts.map +1 -0
- package/dist/transcription/ipa-symbols.js +135 -0
- package/dist/transcription/ipa-symbols.js.map +1 -0
- package/dist/transcription/ipa.d.ts +2 -10
- package/dist/transcription/ipa.d.ts.map +1 -1
- package/dist/transcription/ipa.js +2 -134
- package/dist/transcription/ipa.js.map +1 -1
- package/dist/transcription/wade-giles-index.d.ts +35 -0
- package/dist/transcription/wade-giles-index.d.ts.map +1 -0
- package/dist/transcription/wade-giles-index.js +110 -0
- package/dist/transcription/wade-giles-index.js.map +1 -0
- package/dist/transcription/wade-giles-parse.d.ts +36 -0
- package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
- package/dist/transcription/wade-giles-parse.js +84 -0
- package/dist/transcription/wade-giles-parse.js.map +1 -0
- package/dist/transcription/wade-giles-spelling.d.ts +61 -0
- package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
- package/dist/transcription/wade-giles-spelling.js +107 -0
- package/dist/transcription/wade-giles-spelling.js.map +1 -0
- package/dist/transcription/wade-giles-syllable.d.ts +29 -0
- package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
- package/dist/transcription/wade-giles-syllable.js +90 -0
- package/dist/transcription/wade-giles-syllable.js.map +1 -0
- package/dist/transcription/wade-giles-tables.d.ts +80 -0
- package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
- package/dist/transcription/wade-giles-tables.js +178 -0
- package/dist/transcription/wade-giles-tables.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +9 -60
- package/dist/transcription/wade-giles.d.ts.map +1 -1
- package/dist/transcription/wade-giles.js +6 -543
- package/dist/transcription/wade-giles.js.map +1 -1
- package/dist/transcription/yale-tables.d.ts +54 -0
- package/dist/transcription/yale-tables.d.ts.map +1 -0
- package/dist/transcription/yale-tables.js +125 -0
- package/dist/transcription/yale-tables.js.map +1 -0
- package/dist/transcription/yale.d.ts.map +1 -1
- package/dist/transcription/yale.js +1 -124
- package/dist/transcription/yale.js.map +1 -1
- package/package.json +2 -2
package/dist/cli/arguments.js
CHANGED
|
@@ -1,130 +1,9 @@
|
|
|
1
1
|
import { parseArgs } from "node:util";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* One table rather than one per command, because the parser needs the whole set
|
|
8
|
-
* up front; a command's own list is what rejects a flag it has no use for.
|
|
9
|
-
* Negated forms are spelled out, since `parseArgs` has no `--no-` convention of
|
|
10
|
-
* its own.
|
|
11
|
-
*/
|
|
12
|
-
const FLAGS = {
|
|
13
|
-
data: { type: "string" },
|
|
14
|
-
tier: { type: "string" },
|
|
15
|
-
notation: { type: "string", short: "n" },
|
|
16
|
-
locale: { type: "string", short: "l" },
|
|
17
|
-
apostrophe: { type: "string" },
|
|
18
|
-
capitals: { type: "string" },
|
|
19
|
-
punctuation: { type: "string" },
|
|
20
|
-
"no-grouping": { type: "boolean" },
|
|
21
|
-
"keep-numbers": { type: "boolean" },
|
|
22
|
-
"read-numbers": { type: "boolean" },
|
|
23
|
-
"third-tone": { type: "boolean" },
|
|
24
|
-
"no-sandhi": { type: "boolean" },
|
|
25
|
-
tones: { type: "string" },
|
|
26
|
-
"require-tones": { type: "boolean" },
|
|
27
|
-
"require-spacing": { type: "boolean" },
|
|
28
|
-
separator: { type: "string" },
|
|
29
|
-
syllables: { type: "string" },
|
|
30
|
-
umlaut: { type: "string" },
|
|
31
|
-
query: { type: "string" },
|
|
32
|
-
hash: { type: "boolean" },
|
|
33
|
-
"hash-length": { type: "string" },
|
|
34
|
-
"max-length": { type: "string" },
|
|
35
|
-
fallback: { type: "string" },
|
|
36
|
-
greedy: { type: "boolean" },
|
|
37
|
-
digits: { type: "boolean" },
|
|
38
|
-
yao: { type: "boolean" },
|
|
39
|
-
"no-liang": { type: "boolean" },
|
|
40
|
-
percent: { type: "boolean" },
|
|
41
|
-
from: { type: "string" },
|
|
42
|
-
to: { type: "string" },
|
|
43
|
-
"from-script": { type: "string" },
|
|
44
|
-
system: { type: "string" },
|
|
45
|
-
"no-tone-classes": { type: "boolean" },
|
|
46
|
-
"no-uncertain": { type: "boolean" },
|
|
47
|
-
"no-lang": { type: "boolean" },
|
|
48
|
-
colour: { type: "boolean" },
|
|
49
|
-
color: { type: "boolean" },
|
|
50
|
-
"no-colour": { type: "boolean" },
|
|
51
|
-
"no-color": { type: "boolean" },
|
|
52
|
-
json: { type: "boolean" },
|
|
53
|
-
help: { type: "boolean", short: "h" },
|
|
54
|
-
version: { type: "boolean", short: "v" },
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Flags every command takes, whatever else it takes.
|
|
58
|
-
*/
|
|
59
|
-
export const GLOBAL_FLAGS = [
|
|
60
|
-
"data",
|
|
61
|
-
"tier",
|
|
62
|
-
"colour",
|
|
63
|
-
"color",
|
|
64
|
-
"no-colour",
|
|
65
|
-
"no-color",
|
|
66
|
-
"json",
|
|
67
|
-
"help",
|
|
68
|
-
"version",
|
|
69
|
-
];
|
|
70
|
-
/**
|
|
71
|
-
* The flags that map onto `ConvertOptions`, and so belong to every command that
|
|
72
|
-
* converts anything.
|
|
73
|
-
*/
|
|
74
|
-
export const CONVERT_FLAGS = [
|
|
75
|
-
"notation",
|
|
76
|
-
"locale",
|
|
77
|
-
"apostrophe",
|
|
78
|
-
"capitals",
|
|
79
|
-
"punctuation",
|
|
80
|
-
"no-grouping",
|
|
81
|
-
"keep-numbers",
|
|
82
|
-
"third-tone",
|
|
83
|
-
"no-sandhi",
|
|
84
|
-
];
|
|
85
|
-
/**
|
|
86
|
-
* The flags `check` takes, beyond the conversion ones.
|
|
87
|
-
*
|
|
88
|
-
* Positive rather than negated — `--require-tones` rather than `--no-tones` —
|
|
89
|
-
* because both dimensions default to lenient, and a flag naming what it turns
|
|
90
|
-
* on is the one that reads the way the library's own option does.
|
|
91
|
-
*/
|
|
92
|
-
export const CHECK_FLAGS = [
|
|
93
|
-
"require-tones",
|
|
94
|
-
"require-spacing",
|
|
95
|
-
];
|
|
96
|
-
/**
|
|
97
|
-
* The flags `slug` takes, beyond the global ones.
|
|
98
|
-
*
|
|
99
|
-
* It shares the reading flags with the conversion commands and none of the
|
|
100
|
-
* writing ones: a slug settles its own notation, capitals, apostrophes and
|
|
101
|
-
* spacing, and a `--capitals` that changed nothing would be worse than an
|
|
102
|
-
* error. `--read-numbers` rather than `--keep-numbers` because a slug keeps
|
|
103
|
-
* digits by default, which is the one place it departs from `convert`.
|
|
104
|
-
*/
|
|
105
|
-
export const SLUG_FLAGS = [
|
|
106
|
-
"tones",
|
|
107
|
-
"separator",
|
|
108
|
-
"syllables",
|
|
109
|
-
"umlaut",
|
|
110
|
-
"hash",
|
|
111
|
-
"hash-length",
|
|
112
|
-
"max-length",
|
|
113
|
-
"fallback",
|
|
114
|
-
"read-numbers",
|
|
115
|
-
"locale",
|
|
116
|
-
"third-tone",
|
|
117
|
-
"no-sandhi",
|
|
118
|
-
];
|
|
119
|
-
/**
|
|
120
|
-
* The flags `match` takes, beyond the global ones.
|
|
121
|
-
*
|
|
122
|
-
* The query is a flag rather than the first argument, so that the texts stay
|
|
123
|
-
* where every other command has them: `match` reads a list to filter from
|
|
124
|
-
* standard input, and a command line whose first positional meant something
|
|
125
|
-
* else could not be piped into.
|
|
126
|
-
*/
|
|
127
|
-
export const MATCH_FLAGS = ["query"];
|
|
2
|
+
import { FLAGS } from "./flags.js";
|
|
3
|
+
import { UsageError } from "./usage-error.js";
|
|
4
|
+
export { UsageError } from "./usage-error.js";
|
|
5
|
+
export { checkOptions, colourDepth, convertOptions, dictionaryChoice, htmlOptions, scriptFrom, scriptTarget, slugOptions, transcriptionSource, transcriptionSystem, } from "./options.js";
|
|
6
|
+
export { CHECK_FLAGS, CONVERT_FLAGS, GLOBAL_FLAGS, MATCH_FLAGS, SCRIPT_FLAGS, SLUG_FLAGS, } from "./flags.js";
|
|
128
7
|
/**
|
|
129
8
|
* Read the `--query` flag, which `match` cannot do without.
|
|
130
9
|
*/
|
|
@@ -135,22 +14,6 @@ export function matchQuery(flags) {
|
|
|
135
14
|
}
|
|
136
15
|
return String(given);
|
|
137
16
|
}
|
|
138
|
-
/**
|
|
139
|
-
* The flags `script` takes, beyond the global ones.
|
|
140
|
-
*
|
|
141
|
-
* `--from-script` rather than `--from` because `--from` already means the
|
|
142
|
-
* transcription a text is written in, and one flag name cannot carry two
|
|
143
|
-
* meanings in one help table.
|
|
144
|
-
*/
|
|
145
|
-
export const SCRIPT_FLAGS = ["to", "from-script"];
|
|
146
|
-
/**
|
|
147
|
-
* Something the command line asked for that cannot be done.
|
|
148
|
-
*
|
|
149
|
-
* Thrown rather than exited on, so that the caller decides what a mistake at
|
|
150
|
-
* the command line is worth.
|
|
151
|
-
*/
|
|
152
|
-
export class UsageError extends Error {
|
|
153
|
-
}
|
|
154
17
|
/**
|
|
155
18
|
* Split a command line into its command, its arguments and its flags.
|
|
156
19
|
*/
|
|
@@ -183,219 +46,4 @@ export function checkFlags(flags, allowed, command) {
|
|
|
183
46
|
}
|
|
184
47
|
}
|
|
185
48
|
}
|
|
186
|
-
/**
|
|
187
|
-
* Read a flag that takes a value, checking it against what the library accepts.
|
|
188
|
-
*/
|
|
189
|
-
function chosen(flags, name, allowed) {
|
|
190
|
-
const given = flags[name];
|
|
191
|
-
if (given === undefined) {
|
|
192
|
-
return undefined;
|
|
193
|
-
}
|
|
194
|
-
const value = String(given);
|
|
195
|
-
const found = allowed.find((candidate) => candidate === value);
|
|
196
|
-
if (found === undefined) {
|
|
197
|
-
throw new UsageError(`--${name} must be one of ${allowed.join(", ")}, not ${value}`);
|
|
198
|
-
}
|
|
199
|
-
return found;
|
|
200
|
-
}
|
|
201
|
-
const NOTATIONS = [
|
|
202
|
-
"marks",
|
|
203
|
-
"numbers",
|
|
204
|
-
"superscript",
|
|
205
|
-
"none",
|
|
206
|
-
];
|
|
207
|
-
/**
|
|
208
|
-
* Read a flag that takes a whole number, which every one of them is a count of.
|
|
209
|
-
*/
|
|
210
|
-
function counted(flags, name) {
|
|
211
|
-
const given = flags[name];
|
|
212
|
-
if (given === undefined) {
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
const value = Number(String(given));
|
|
216
|
-
if (!Number.isSafeInteger(value) || value < 0) {
|
|
217
|
-
throw new UsageError(`--${name} must be a whole number, not ${String(given)}`);
|
|
218
|
-
}
|
|
219
|
-
return value;
|
|
220
|
-
}
|
|
221
|
-
const LOCALES = ["zh-CN", "zh-TW"];
|
|
222
|
-
const APOSTROPHES = ["always", "standard", "never"];
|
|
223
|
-
const CAPITALS = ["auto", "proper", "none"];
|
|
224
|
-
const PUNCTUATION = ["latin", "keep"];
|
|
225
|
-
const SLUG_TONES = ["numbers", "none"];
|
|
226
|
-
const SLUG_SYLLABLES = ["join", "separate"];
|
|
227
|
-
const SLUG_UMLAUTS = ["v", "u"];
|
|
228
|
-
const TIERS = ["core", "standard", "full"];
|
|
229
|
-
const SOURCES = [
|
|
230
|
-
"auto",
|
|
231
|
-
"pinyin",
|
|
232
|
-
"wade-giles",
|
|
233
|
-
"bopomofo",
|
|
234
|
-
"yale",
|
|
235
|
-
"gwoyeu",
|
|
236
|
-
"ipa",
|
|
237
|
-
];
|
|
238
|
-
/**
|
|
239
|
-
* Read the `--from` flag.
|
|
240
|
-
*/
|
|
241
|
-
export function transcriptionSource(flags) {
|
|
242
|
-
return chosen(flags, "from", SOURCES) ?? "auto";
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Which system a conversion should be written in.
|
|
246
|
-
*
|
|
247
|
-
* `pinyin` is not a value: writing pinyin is what `convert` does with no flag
|
|
248
|
-
* at all, and offering a name for the default would suggest the others are
|
|
249
|
-
* alternatives to it rather than things it is put through afterwards.
|
|
250
|
-
*/
|
|
251
|
-
const SYSTEMS_WRITTEN = [
|
|
252
|
-
"bopomofo",
|
|
253
|
-
"wade-giles",
|
|
254
|
-
"yale",
|
|
255
|
-
"gwoyeu",
|
|
256
|
-
"ipa",
|
|
257
|
-
];
|
|
258
|
-
/**
|
|
259
|
-
* Read the `--system` flag.
|
|
260
|
-
*/
|
|
261
|
-
export function transcriptionSystem(flags) {
|
|
262
|
-
return chosen(flags, "system", SYSTEMS_WRITTEN);
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* How much colour a run should write, given what the terminal offered.
|
|
266
|
-
*
|
|
267
|
-
* `--colour` and `--no-colour` force it either way, and `--color` is accepted
|
|
268
|
-
* as a spelling because every other tool spells it that way and nobody should
|
|
269
|
-
* have to discover which this one chose.
|
|
270
|
-
*
|
|
271
|
-
* **`--json` is never coloured**, whatever the flags say: the option is about
|
|
272
|
-
* the plain output, and the JSON already carries the tone as a number for a
|
|
273
|
-
* caller that will do its own rendering.
|
|
274
|
-
*
|
|
275
|
-
* Forcing colour where the environment offered none — into a pipe, or past
|
|
276
|
-
* `NO_COLOR` — gets the sixteen every terminal has, because nothing is known
|
|
277
|
-
* about where that output is going.
|
|
278
|
-
*/
|
|
279
|
-
export function colourDepth(flags, offered) {
|
|
280
|
-
if (flags.json === true) {
|
|
281
|
-
return 0;
|
|
282
|
-
}
|
|
283
|
-
if (flags["no-colour"] === true || flags["no-color"] === true) {
|
|
284
|
-
return 0;
|
|
285
|
-
}
|
|
286
|
-
if (flags.colour === true || flags.color === true) {
|
|
287
|
-
return offered === 0 ? 16 : offered;
|
|
288
|
-
}
|
|
289
|
-
return offered;
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Read the dictionary flags.
|
|
293
|
-
*/
|
|
294
|
-
export function dictionaryChoice(flags) {
|
|
295
|
-
const directory = flags.data;
|
|
296
|
-
return {
|
|
297
|
-
tier: chosen(flags, "tier", TIERS) ?? "full",
|
|
298
|
-
directory: directory === undefined ? undefined : String(directory),
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Turn the conversion flags into the options the library takes.
|
|
303
|
-
*
|
|
304
|
-
* Only the flags actually given are passed on, so that the library's defaults
|
|
305
|
-
* stay the CLI's defaults and there is one place they are written down.
|
|
306
|
-
*/
|
|
307
|
-
export function convertOptions(flags) {
|
|
308
|
-
const sandhi = {
|
|
309
|
-
...(flags["no-sandhi"] === true && { yiBu: false }),
|
|
310
|
-
...(flags["third-tone"] === true && { thirdTone: true }),
|
|
311
|
-
};
|
|
312
|
-
const notation = chosen(flags, "notation", NOTATIONS);
|
|
313
|
-
const locale = chosen(flags, "locale", LOCALES);
|
|
314
|
-
const apostrophe = chosen(flags, "apostrophe", APOSTROPHES);
|
|
315
|
-
const capitals = chosen(flags, "capitals", CAPITALS);
|
|
316
|
-
const punctuation = chosen(flags, "punctuation", PUNCTUATION);
|
|
317
|
-
return {
|
|
318
|
-
...(flags["keep-numbers"] === true && { numbers: "keep" }),
|
|
319
|
-
...(notation !== undefined && { notation }),
|
|
320
|
-
...(locale !== undefined && { locale }),
|
|
321
|
-
...(apostrophe !== undefined && { apostrophe }),
|
|
322
|
-
...(capitals !== undefined && { capitals }),
|
|
323
|
-
...(punctuation !== undefined && { punctuation }),
|
|
324
|
-
...(flags["no-grouping"] === true && { grouping: false }),
|
|
325
|
-
...(Object.keys(sandhi).length > 0 && { sandhi }),
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Turn the checking flags into the options the library takes.
|
|
330
|
-
*
|
|
331
|
-
* Every conversion flag goes through too, since a check grades against a
|
|
332
|
-
* conversion and `--locale` or `--third-tone` changes what the answer is.
|
|
333
|
-
*/
|
|
334
|
-
export function checkOptions(flags) {
|
|
335
|
-
return {
|
|
336
|
-
...convertOptions(flags),
|
|
337
|
-
...(flags["require-tones"] === true && { tones: "required" }),
|
|
338
|
-
...(flags["require-spacing"] === true && { spacing: "required" }),
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Turn the slug flags into the options the library takes.
|
|
343
|
-
*
|
|
344
|
-
* `--hash-length` implies `--hash`, because asking how long the hash should be
|
|
345
|
-
* and not getting one is not a reading anybody intends.
|
|
346
|
-
*/
|
|
347
|
-
export function slugOptions(flags) {
|
|
348
|
-
const sandhi = {
|
|
349
|
-
...(flags["no-sandhi"] === true && { yiBu: false }),
|
|
350
|
-
...(flags["third-tone"] === true && { thirdTone: true }),
|
|
351
|
-
};
|
|
352
|
-
const tones = chosen(flags, "tones", SLUG_TONES);
|
|
353
|
-
const syllables = chosen(flags, "syllables", SLUG_SYLLABLES);
|
|
354
|
-
const umlaut = chosen(flags, "umlaut", SLUG_UMLAUTS);
|
|
355
|
-
const locale = chosen(flags, "locale", LOCALES);
|
|
356
|
-
const separator = flags.separator;
|
|
357
|
-
const fallback = flags.fallback;
|
|
358
|
-
const hashLength = counted(flags, "hash-length");
|
|
359
|
-
const maxLength = counted(flags, "max-length");
|
|
360
|
-
return {
|
|
361
|
-
...(flags["read-numbers"] === true && { numbers: "read" }),
|
|
362
|
-
...(tones !== undefined && { tones }),
|
|
363
|
-
...(syllables !== undefined && { syllables }),
|
|
364
|
-
...(umlaut !== undefined && { umlaut }),
|
|
365
|
-
...(locale !== undefined && { locale }),
|
|
366
|
-
...(separator !== undefined && { separator: String(separator) }),
|
|
367
|
-
...(fallback !== undefined && { fallback: String(fallback) }),
|
|
368
|
-
...(hashLength === undefined
|
|
369
|
-
? flags.hash === true && { hash: true }
|
|
370
|
-
: { hash: hashLength }),
|
|
371
|
-
...(maxLength !== undefined && { maxLength }),
|
|
372
|
-
...(Object.keys(sandhi).length > 0 && { sandhi }),
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* The same, plus the three flags that only mean anything in HTML.
|
|
377
|
-
*/
|
|
378
|
-
export function htmlOptions(flags) {
|
|
379
|
-
return {
|
|
380
|
-
...convertOptions(flags),
|
|
381
|
-
...(flags["no-tone-classes"] === true && { toneClasses: false }),
|
|
382
|
-
...(flags["no-uncertain"] === true && { markUncertain: false }),
|
|
383
|
-
...(flags["no-lang"] === true && { lang: false }),
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Which orthography `script` was asked to write. `zh-Hans` by default.
|
|
388
|
-
*/
|
|
389
|
-
export function scriptTarget(flags) {
|
|
390
|
-
return chosen(flags, "to", SCRIPT_TARGETS) ?? "zh-Hans";
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* The script the text was declared to be in, where the caller named one.
|
|
394
|
-
*
|
|
395
|
-
* Detection settles it otherwise, and gets it right for anything longer than a
|
|
396
|
-
* word or two. Naming it matters for text short enough to be script-neutral.
|
|
397
|
-
*/
|
|
398
|
-
export function scriptFrom(flags) {
|
|
399
|
-
return chosen(flags, "from-script", SCRIPTS);
|
|
400
|
-
}
|
|
401
49
|
//# sourceMappingURL=arguments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../src/cli/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../src/cli/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,KAAK,EAA6B,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,aAAa,EAGb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC;YACjB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,KAAY,EACZ,OAA4B,EAC5B,OAAe;IAEf,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAgB,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,GAAG,OAAO,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* Mark typed pinyin against the text it was written for.
|
|
4
|
+
*
|
|
5
|
+
* The heading carries the answer the text converts to, because a check that
|
|
6
|
+
* says only what is wrong leaves a reader hunting for what was right.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CHECK: Command;
|
|
9
|
+
//# sourceMappingURL=check-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-command.d.ts","sourceRoot":"","sources":["../../src/cli/check-command.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,OAAO,EAKb,MAAM,cAAc,CAAC;AAyDtB;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,OAwCnB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marking typed pinyin against the text it was written for.
|
|
3
|
+
*/
|
|
4
|
+
import { convertPieces } from "../decode/convert.js";
|
|
5
|
+
import { check } from "../grade/check.js";
|
|
6
|
+
import { writeSyllable } from "../syllable/syllable.js";
|
|
7
|
+
import { CHECK_FLAGS, checkOptions, CONVERT_FLAGS, UsageError, } from "./arguments.js";
|
|
8
|
+
import { column, dictionaryOf, paintedPieces, } from "./command.js";
|
|
9
|
+
/**
|
|
10
|
+
* The hanzi and the pinyin typed for it, as `check` is given them.
|
|
11
|
+
*
|
|
12
|
+
* Two arguments at a terminal — `pinyinjs check 银行 yínxíng` — with everything
|
|
13
|
+
* after the first joined back up, so that unquoted pinyin with spaces in it
|
|
14
|
+
* works the way anybody would expect it to. A piped file is one pair per line,
|
|
15
|
+
* separated by a tab, since pinyin has spaces in it and the hanzi may too.
|
|
16
|
+
*/
|
|
17
|
+
function checkPairs(texts) {
|
|
18
|
+
if (texts.some((text) => text.includes("\t"))) {
|
|
19
|
+
return texts.map((text) => {
|
|
20
|
+
const [hanzi = "", ...rest] = text.split("\t");
|
|
21
|
+
return [hanzi, rest.join("\t")];
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const [hanzi = "", ...rest] = texts;
|
|
25
|
+
return [[hanzi, rest.join(" ")]];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One checked syllable, as a line and as data.
|
|
29
|
+
*
|
|
30
|
+
* The characters, then what was expected, then what was typed, then the two
|
|
31
|
+
* verdicts. Spacing is written only where it went wrong, since `correct` on
|
|
32
|
+
* every line would bury the one that did not.
|
|
33
|
+
*/
|
|
34
|
+
function checkedSyllable(one, input) {
|
|
35
|
+
const expected = one.expected === undefined ? "" : writeSyllable(one.expected);
|
|
36
|
+
// Written only where it went wrong: `correct` on every line would bury the
|
|
37
|
+
// one that did not.
|
|
38
|
+
const spacing = one.spacing === "correct" ? undefined : one.spacing;
|
|
39
|
+
return {
|
|
40
|
+
line: ` ${column(one.source ?? "", 6)}${column(input.paint(expected, one.expected?.tone), 8)}${column(one.text, 8)}${column(one.verdict, 10)}${spacing ?? ""}`.trimEnd(),
|
|
41
|
+
data: {
|
|
42
|
+
verdict: one.verdict,
|
|
43
|
+
isCorrect: one.isCorrect,
|
|
44
|
+
...(one.spacing !== undefined && { spacing: one.spacing }),
|
|
45
|
+
...(expected !== "" && { expected }),
|
|
46
|
+
...(one.text !== "" && { typed: one.text }),
|
|
47
|
+
...(one.source !== undefined && { source: one.source }),
|
|
48
|
+
...(one.at !== undefined && { at: one.at }),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mark typed pinyin against the text it was written for.
|
|
54
|
+
*
|
|
55
|
+
* The heading carries the answer the text converts to, because a check that
|
|
56
|
+
* says only what is wrong leaves a reader hunting for what was right.
|
|
57
|
+
*/
|
|
58
|
+
export const CHECK = {
|
|
59
|
+
name: "check",
|
|
60
|
+
summary: "mark typed pinyin against the text",
|
|
61
|
+
argument: "<text> <pinyin>",
|
|
62
|
+
flags: [...CONVERT_FLAGS, ...CHECK_FLAGS],
|
|
63
|
+
needsDictionary: true,
|
|
64
|
+
run: (input) => {
|
|
65
|
+
const dictionary = dictionaryOf(input);
|
|
66
|
+
const options = checkOptions(input.flags);
|
|
67
|
+
return checkPairs(input.texts).map(([text, typed]) => {
|
|
68
|
+
if (typed === "") {
|
|
69
|
+
throw new UsageError("check needs a text and the pinyin typed for it");
|
|
70
|
+
}
|
|
71
|
+
const marked = check(dictionary, text, typed, options);
|
|
72
|
+
const score = Math.round(marked.score * 100);
|
|
73
|
+
const syllables = marked.syllables.map((one) => checkedSyllable(one, input));
|
|
74
|
+
// The answer as the conversion writes it, spacing and all, since the
|
|
75
|
+
// spacing is one of the things being marked and a reading joined by
|
|
76
|
+
// spaces would show every word broken apart.
|
|
77
|
+
const pieces = convertPieces(dictionary, text, options);
|
|
78
|
+
return {
|
|
79
|
+
lines: [
|
|
80
|
+
`${text} ${paintedPieces(pieces, input)} ${String(score)}%`,
|
|
81
|
+
...syllables.map((one) => one.line),
|
|
82
|
+
],
|
|
83
|
+
data: {
|
|
84
|
+
text,
|
|
85
|
+
typed,
|
|
86
|
+
isCorrect: marked.isCorrect,
|
|
87
|
+
score: marked.score,
|
|
88
|
+
pinyin: pieces.map((piece) => piece.text).join(""),
|
|
89
|
+
syllables: syllables.map((one) => one.data),
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=check-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-command.js","sourceRoot":"","sources":["../../src/cli/check-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the CLI needs from the world outside it, and what it reads through it.
|
|
3
|
+
*
|
|
4
|
+
* Everything Node-only lives behind {@link CliEnvironment}, so that a run can
|
|
5
|
+
* be tested by handing it strings. The two functions here are the only part of
|
|
6
|
+
* a run that touches the outside at all before a command starts.
|
|
7
|
+
*/
|
|
8
|
+
import type { Dictionary } from "../dictionary/dictionary.js";
|
|
9
|
+
import type { ScriptTables } from "../script/conversion.js";
|
|
10
|
+
import { type DictionaryChoice } from "./arguments.js";
|
|
11
|
+
import type { ColourDepth } from "./colour.js";
|
|
12
|
+
import type { Command } from "./commands.js";
|
|
13
|
+
/**
|
|
14
|
+
* What the CLI needs from the world outside it.
|
|
15
|
+
*
|
|
16
|
+
* Everything Node-only lives behind this, so that a run can be tested by
|
|
17
|
+
* handing it strings.
|
|
18
|
+
*/
|
|
19
|
+
export interface CliEnvironment {
|
|
20
|
+
readonly version: string;
|
|
21
|
+
/** Standard input, or the empty string where there is none to read. */
|
|
22
|
+
readonly readInput: () => Promise<string>;
|
|
23
|
+
readonly loadDictionary: (choice: DictionaryChoice) => Promise<Dictionary>;
|
|
24
|
+
/**
|
|
25
|
+
* The script conversion tables, for the one command that converts scripts.
|
|
26
|
+
*
|
|
27
|
+
* Separate from the dictionary because the file is: nothing that converts
|
|
28
|
+
* hanzi to pinyin should wait on 96 KB it will not read.
|
|
29
|
+
*/
|
|
30
|
+
readonly loadScriptTables: (choice: DictionaryChoice) => Promise<ScriptTables>;
|
|
31
|
+
/**
|
|
32
|
+
* How much colour the output can carry, before any flag has its say.
|
|
33
|
+
*
|
|
34
|
+
* Here rather than sniffed inside a command, because a command reaching for
|
|
35
|
+
* `process.stdout.isTTY` would put a decision in the one place the coverage
|
|
36
|
+
* gate cannot see. An environment states the answer and a test can ask for
|
|
37
|
+
* either one. `depthFrom` in `colour.ts` is how the Node adapter arrives at
|
|
38
|
+
* it, and is a pure function for the same reason.
|
|
39
|
+
*/
|
|
40
|
+
readonly colours: ColourDepth;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* What a command was asked to act on, or a usage error saying it was nothing.
|
|
44
|
+
*
|
|
45
|
+
* A command that silently prints nothing because standard input was a terminal
|
|
46
|
+
* looks broken rather than misused.
|
|
47
|
+
*/
|
|
48
|
+
export declare function inputFor(command: Command, given: readonly string[], environment: CliEnvironment): Promise<readonly string[]>;
|
|
49
|
+
//# sourceMappingURL=cli-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-input.d.ts","sourceRoot":"","sources":["../../src/cli/cli-input.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;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;AAuBD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAQ5B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { UsageError } from "./arguments.js";
|
|
2
|
+
/**
|
|
3
|
+
* The lines a command should act on: its arguments, or standard input.
|
|
4
|
+
*
|
|
5
|
+
* Input is split into lines so that every command works the same way whether it
|
|
6
|
+
* was given arguments or piped a file, and so that `convert` writes one line
|
|
7
|
+
* out for each line in rather than running a whole document together.
|
|
8
|
+
*/
|
|
9
|
+
async function textsFor(command, given, environment) {
|
|
10
|
+
if (given.length > 0 || command.argument === "") {
|
|
11
|
+
return given;
|
|
12
|
+
}
|
|
13
|
+
const piped = await environment.readInput();
|
|
14
|
+
const lines = piped.split("\n");
|
|
15
|
+
// A file ends with a newline, and that last empty line is not a text.
|
|
16
|
+
return lines.at(-1) === "" ? lines.slice(0, -1) : lines;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* What a command was asked to act on, or a usage error saying it was nothing.
|
|
20
|
+
*
|
|
21
|
+
* A command that silently prints nothing because standard input was a terminal
|
|
22
|
+
* looks broken rather than misused.
|
|
23
|
+
*/
|
|
24
|
+
export async function inputFor(command, given, environment) {
|
|
25
|
+
const texts = await textsFor(command, given, environment);
|
|
26
|
+
if (texts.length === 0 && command.argument !== "") {
|
|
27
|
+
throw new UsageError(`${command.name} needs ${command.argument}, or text on standard input`);
|
|
28
|
+
}
|
|
29
|
+
return texts;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cli-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-input.js","sourceRoot":"","sources":["../../src/cli/cli-input.ts"],"names":[],"mappings":"AASA,OAAO,EAAyB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoCnE;;;;;;GAMG;AACH,KAAK,UAAU,QAAQ,CACrB,OAAgB,EAChB,KAAwB,EACxB,WAA2B;IAE3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,sEAAsE;IACtE,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAgB,EAChB,KAAwB,EACxB,WAA2B;IAE3B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAClB,GAAG,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,QAAQ,6BAA6B,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|