@kensio/pinyinjs 1.7.4 → 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 +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
+
export { APOSTROPHE, APOSTROPHES } from "./wade-giles-tables.js";
|
|
3
|
+
/**
|
|
4
|
+
* The 儿化 suffix, which Wade-Giles hangs off the syllable rather than fusing
|
|
5
|
+
* into it.
|
|
6
|
+
*
|
|
7
|
+
* So this is the one place a syllable is written with a hyphen in it: 花儿 huār
|
|
8
|
+
* is `hua¹-'rh`. Two things about that shape are worth stating, because both
|
|
9
|
+
* are decisions:
|
|
10
|
+
*
|
|
11
|
+
* - **The suffix is the reduced `'rh` rather than a full `êrh`.** 兒 as a
|
|
12
|
+
* syllable of its own is `êrh`, and as a suffix it is written short. This is
|
|
13
|
+
* the form en.wiktionary's Chinese entries use throughout, and it is what the
|
|
14
|
+
* fixture in [test/fixtures/wiktionary.ts](../../test/fixtures/wiktionary.ts)
|
|
15
|
+
* is checked against.
|
|
16
|
+
* - **The tone digit goes on the syllable, in front of the suffix.** The tone
|
|
17
|
+
* is the base syllable's — 花儿 is a first-tone 花 with a suffix on it — and
|
|
18
|
+
* Wade-Giles writes the digit after the syllable it belongs to. Writing
|
|
19
|
+
* `hua-êrh¹` instead, as this module used to, says the 兒 carries a first
|
|
20
|
+
* tone, which is not what anybody means by it.
|
|
21
|
+
*
|
|
22
|
+
* Pinyin's `r` suffix is the later convention and the two are not
|
|
23
|
+
* interchangeable.
|
|
24
|
+
*/
|
|
25
|
+
export declare const ERHUA_SUFFIX = "-'rh";
|
|
26
|
+
/**
|
|
27
|
+
* How a Wade-Giles syllable writes its tone.
|
|
28
|
+
*
|
|
29
|
+
* Wade-Giles writes it as a raised digit after the syllable, which is why
|
|
30
|
+
* `superscript` is the default; `numbers` writes the same digit on the line,
|
|
31
|
+
* which is what a plain-text field or a filename wants.
|
|
32
|
+
*/
|
|
33
|
+
export interface WadeGilesOptions {
|
|
34
|
+
readonly tones?: "superscript" | "numbers" | "none";
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Spell a syllable in Wade-Giles without its tone.
|
|
38
|
+
*/
|
|
39
|
+
export declare function writeWadeGilesSpelling(syllable: Syllable): string;
|
|
40
|
+
/**
|
|
41
|
+
* Write a syllable in Wade-Giles: 就 jiù becomes `chiu⁴`.
|
|
42
|
+
*
|
|
43
|
+
* Total over well-formed syllables, as the bopomofo writer is. An unwritten
|
|
44
|
+
* tone stays unwritten rather than being invented as a first tone, which is
|
|
45
|
+
* what lets the round trip come back exactly.
|
|
46
|
+
*
|
|
47
|
+
* The digit goes in front of the 儿化 suffix rather than after it — 玩儿 wánr
|
|
48
|
+
* is `wan²-'rh` — for the reason {@link ERHUA_SUFFIX} gives.
|
|
49
|
+
*/
|
|
50
|
+
export declare function writeWadeGiles(syllable: Syllable, options?: WadeGilesOptions): string;
|
|
51
|
+
/**
|
|
52
|
+
* Write a word in Wade-Giles, hyphenating between its syllables.
|
|
53
|
+
*
|
|
54
|
+
* The hyphen is Wade's own convention and it is not decoration: `Tse-tung`
|
|
55
|
+
* written solid could be read as two syllables or as three, and the system has
|
|
56
|
+
* no 隔音符号 to fall back on. Pinyin writes the word solid and reaches for an
|
|
57
|
+
* apostrophe only where the boundary is genuinely ambiguous, which is the
|
|
58
|
+
* opposite default.
|
|
59
|
+
*/
|
|
60
|
+
export declare function writeWadeGilesWord(syllables: readonly Syllable[], options?: WadeGilesOptions): string;
|
|
61
|
+
//# sourceMappingURL=wade-giles-spelling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-spelling.d.ts","sourceRoot":"","sources":["../../src/transcription/wade-giles-spelling.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAgBxD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAqCjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,SAAqB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;CACrD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAIjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAeR;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAIR"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { SUPERSCRIPT_TONES } from "../tone/tone-mark.js";
|
|
2
|
+
import { APOSTROPHE, FINAL_SPELLINGS, INITIAL_SPELLINGS, O_FOR_E_INITIALS, O_FOR_UO_INITIALS, RETROFLEX_INITIALS, SIBILANT_INITIALS, SIBILANT_SPELLINGS, UEI_INITIALS, ZERO_INITIAL_SPELLINGS, } from "./wade-giles-tables.js";
|
|
3
|
+
export { APOSTROPHE, APOSTROPHES } from "./wade-giles-tables.js";
|
|
4
|
+
/**
|
|
5
|
+
* How an initial is spelled in front of a given final.
|
|
6
|
+
*/
|
|
7
|
+
function initialSpelling(initial, final) {
|
|
8
|
+
const sibilant = final === "i" ? SIBILANT_SPELLINGS.get(initial) : undefined;
|
|
9
|
+
return sibilant ?? INITIAL_SPELLINGS.get(initial) ?? "";
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* How a final is spelled after a given initial.
|
|
13
|
+
*/
|
|
14
|
+
function finalSpelling(initial, final) {
|
|
15
|
+
if (initial === "") {
|
|
16
|
+
return ZERO_INITIAL_SPELLINGS[final];
|
|
17
|
+
}
|
|
18
|
+
if (final === "i") {
|
|
19
|
+
if (RETROFLEX_INITIALS.has(initial)) {
|
|
20
|
+
return "ih";
|
|
21
|
+
}
|
|
22
|
+
if (SIBILANT_INITIALS.has(initial)) {
|
|
23
|
+
return "ŭ";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (final === "e" && O_FOR_E_INITIALS.has(initial)) {
|
|
27
|
+
return "o";
|
|
28
|
+
}
|
|
29
|
+
if (final === "uo" && O_FOR_UO_INITIALS.has(initial)) {
|
|
30
|
+
return "o";
|
|
31
|
+
}
|
|
32
|
+
if (final === "uei" && UEI_INITIALS.has(initial)) {
|
|
33
|
+
return "uei";
|
|
34
|
+
}
|
|
35
|
+
return FINAL_SPELLINGS[final];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The 儿化 suffix, which Wade-Giles hangs off the syllable rather than fusing
|
|
39
|
+
* into it.
|
|
40
|
+
*
|
|
41
|
+
* So this is the one place a syllable is written with a hyphen in it: 花儿 huār
|
|
42
|
+
* is `hua¹-'rh`. Two things about that shape are worth stating, because both
|
|
43
|
+
* are decisions:
|
|
44
|
+
*
|
|
45
|
+
* - **The suffix is the reduced `'rh` rather than a full `êrh`.** 兒 as a
|
|
46
|
+
* syllable of its own is `êrh`, and as a suffix it is written short. This is
|
|
47
|
+
* the form en.wiktionary's Chinese entries use throughout, and it is what the
|
|
48
|
+
* fixture in [test/fixtures/wiktionary.ts](../../test/fixtures/wiktionary.ts)
|
|
49
|
+
* is checked against.
|
|
50
|
+
* - **The tone digit goes on the syllable, in front of the suffix.** The tone
|
|
51
|
+
* is the base syllable's — 花儿 is a first-tone 花 with a suffix on it — and
|
|
52
|
+
* Wade-Giles writes the digit after the syllable it belongs to. Writing
|
|
53
|
+
* `hua-êrh¹` instead, as this module used to, says the 兒 carries a first
|
|
54
|
+
* tone, which is not what anybody means by it.
|
|
55
|
+
*
|
|
56
|
+
* Pinyin's `r` suffix is the later convention and the two are not
|
|
57
|
+
* interchangeable.
|
|
58
|
+
*/
|
|
59
|
+
export const ERHUA_SUFFIX = `-${APOSTROPHE}rh`;
|
|
60
|
+
/**
|
|
61
|
+
* Spell a syllable in Wade-Giles without its tone.
|
|
62
|
+
*/
|
|
63
|
+
export function writeWadeGilesSpelling(syllable) {
|
|
64
|
+
const { initial, final } = syllable;
|
|
65
|
+
const suffix = syllable.erhua === true ? ERHUA_SUFFIX : "";
|
|
66
|
+
return `${initialSpelling(initial, final)}${finalSpelling(initial, final)}${suffix}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Write a syllable in Wade-Giles: 就 jiù becomes `chiu⁴`.
|
|
70
|
+
*
|
|
71
|
+
* Total over well-formed syllables, as the bopomofo writer is. An unwritten
|
|
72
|
+
* tone stays unwritten rather than being invented as a first tone, which is
|
|
73
|
+
* what lets the round trip come back exactly.
|
|
74
|
+
*
|
|
75
|
+
* The digit goes in front of the 儿化 suffix rather than after it — 玩儿 wánr
|
|
76
|
+
* is `wan²-'rh` — for the reason {@link ERHUA_SUFFIX} gives.
|
|
77
|
+
*/
|
|
78
|
+
export function writeWadeGiles(syllable, options = {}) {
|
|
79
|
+
const spelling = writeWadeGilesSpelling(syllable);
|
|
80
|
+
const { tone } = syllable;
|
|
81
|
+
const { tones = "superscript" } = options;
|
|
82
|
+
if (tone === undefined || tones === "none") {
|
|
83
|
+
return spelling;
|
|
84
|
+
}
|
|
85
|
+
const digit = tones === "numbers"
|
|
86
|
+
? String(tone)
|
|
87
|
+
: /* c8 ignore next -- every tone has a raised digit */
|
|
88
|
+
(SUPERSCRIPT_TONES.get(tone) ?? "");
|
|
89
|
+
return spelling.endsWith(ERHUA_SUFFIX)
|
|
90
|
+
? `${spelling.slice(0, -ERHUA_SUFFIX.length)}${digit}${ERHUA_SUFFIX}`
|
|
91
|
+
: `${spelling}${digit}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Write a word in Wade-Giles, hyphenating between its syllables.
|
|
95
|
+
*
|
|
96
|
+
* The hyphen is Wade's own convention and it is not decoration: `Tse-tung`
|
|
97
|
+
* written solid could be read as two syllables or as three, and the system has
|
|
98
|
+
* no 隔音符号 to fall back on. Pinyin writes the word solid and reaches for an
|
|
99
|
+
* apostrophe only where the boundary is genuinely ambiguous, which is the
|
|
100
|
+
* opposite default.
|
|
101
|
+
*/
|
|
102
|
+
export function writeWadeGilesWord(syllables, options = {}) {
|
|
103
|
+
return syllables
|
|
104
|
+
.map((syllable) => writeWadeGiles(syllable, options))
|
|
105
|
+
.join("-");
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=wade-giles-spelling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-spelling.js","sourceRoot":"","sources":["../../src/transcription/wade-giles-spelling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read a Wade-Giles syllable exactly as it is written: `chiu⁴` becomes 就 jiù.
|
|
4
|
+
*
|
|
5
|
+
* Returns every syllable the spelling stands for, which is one for all but a
|
|
6
|
+
* handful of them — `lo` is both 羅 luó and 咯 lo, and `o` is both 俄 é and
|
|
7
|
+
* 哦 ó. Empty for anything that is not Wade-Giles at all.
|
|
8
|
+
*
|
|
9
|
+
* A written tone narrows that: 咯 is only ever neutral, so `lo` on its own is
|
|
10
|
+
* the two syllables and `lo²` is 羅 luó alone. See {@link narrowToAttested}.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readWadeGiles(text: string): readonly Syllable[];
|
|
13
|
+
/**
|
|
14
|
+
* The same, allowing for the marks real-world Wade-Giles drops.
|
|
15
|
+
*
|
|
16
|
+
* `chi` read exactly is 機 jī; read loosely it is jī or 七 qī, because a text
|
|
17
|
+
* that meant `chʻi` may simply never have typed the apostrophe. The exact
|
|
18
|
+
* readings come first, so a caller that wants to believe what was written can
|
|
19
|
+
* take the head of the list and one that wants every possibility can take the
|
|
20
|
+
* lot.
|
|
21
|
+
*
|
|
22
|
+
* Narrowed over the whole list rather than over each half of it, because the
|
|
23
|
+
* two halves are rivals: `pan²` written exactly is a bán that Mandarin does not
|
|
24
|
+
* have, and the reading worth keeping is the 盤 pán of a text that dropped an
|
|
25
|
+
* apostrophe. Read exactly, `pan²` is still bán — there is nothing there to
|
|
26
|
+
* prefer it to.
|
|
27
|
+
*/
|
|
28
|
+
export declare function readWadeGilesLoosely(text: string): readonly Syllable[];
|
|
29
|
+
//# sourceMappingURL=wade-giles-syllable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-syllable.d.ts","sourceRoot":"","sources":["../../src/transcription/wade-giles-syllable.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AA0CxD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAM/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAetE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading one written Wade-Giles syllable.
|
|
3
|
+
*
|
|
4
|
+
* Writing it is a table, in the same way bopomofo is — see
|
|
5
|
+
* `wade-giles-spelling.ts`. Reading it is not a table, and that asymmetry is
|
|
6
|
+
* the whole of this file. Three things stand in the way:
|
|
7
|
+
*
|
|
8
|
+
* - The spelling is not injective even when written correctly: `lo` is both
|
|
9
|
+
* luō and lo, and `o` is both ē and ō.
|
|
10
|
+
* - The aspiration apostrophe is routinely dropped, and it carries a phonemic
|
|
11
|
+
* distinction: `ch'i` is qī and `chi` is jī, so a dropped mark makes one
|
|
12
|
+
* spelling stand for both. Written `chu`, with the diaeresis gone too, it
|
|
13
|
+
* stands for four syllables.
|
|
14
|
+
* - The diacritics are routinely dropped as well — ê, ŭ and ü — which merges
|
|
15
|
+
* `hsü` into `hsu` and `tzŭ` into `tzu`.
|
|
16
|
+
*
|
|
17
|
+
* So reading returns *every* syllable a spelling could be, and does it against
|
|
18
|
+
* the attested inventory rather than by rule: a rule would happily read `shung`
|
|
19
|
+
* or `ki`, which are not syllables of Mandarin at all.
|
|
20
|
+
* {@link readWadeGiles} takes the spelling as written, and
|
|
21
|
+
* {@link readWadeGilesLoosely} allows for the marks that fell off. How much
|
|
22
|
+
* that costs is measured — see `docs/romanization/`.
|
|
23
|
+
*
|
|
24
|
+
* The tone digit, where a text writes one, cuts that list back down: the
|
|
25
|
+
* inventory knows which tones each syllable is written in, so `lo²` is 羅 luó
|
|
26
|
+
* and not the 咯 that is only ever neutral. See {@link narrowToAttested}.
|
|
27
|
+
*/
|
|
28
|
+
import { narrowToAttested } from "../syllable/inventory.js";
|
|
29
|
+
import { isMarksDropped, normalise, splitErhua, splitTone, } from "./wade-giles-parse.js";
|
|
30
|
+
import { INDEX, isSameSyllable, withoutMarks, } from "./wade-giles-index.js";
|
|
31
|
+
/**
|
|
32
|
+
* Read a normalised spelling out of one of the two indexes.
|
|
33
|
+
*
|
|
34
|
+
* `toKey` is how the spelling is turned into that index's key.
|
|
35
|
+
*
|
|
36
|
+
* The tone is written on here and not judged: the index is toneless, so what
|
|
37
|
+
* comes back is every syllable of that spelling in whatever tone the text
|
|
38
|
+
* carried, and narrowing that to the tones Mandarin actually writes belongs to
|
|
39
|
+
* the callers, which have the whole candidate list to weigh.
|
|
40
|
+
*/
|
|
41
|
+
function readFrom(index, toKey, spelling, tone, isErhua) {
|
|
42
|
+
return (index.get(toKey(spelling)) ?? [])
|
|
43
|
+
.filter((one) => isMarksDropped(one.spelling, spelling))
|
|
44
|
+
.map((one) => ({
|
|
45
|
+
...one.syllable,
|
|
46
|
+
tone,
|
|
47
|
+
...(isErhua && { erhua: true }),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Read a Wade-Giles syllable exactly as it is written: `chiu⁴` becomes 就 jiù.
|
|
52
|
+
*
|
|
53
|
+
* Returns every syllable the spelling stands for, which is one for all but a
|
|
54
|
+
* handful of them — `lo` is both 羅 luó and 咯 lo, and `o` is both 俄 é and
|
|
55
|
+
* 哦 ó. Empty for anything that is not Wade-Giles at all.
|
|
56
|
+
*
|
|
57
|
+
* A written tone narrows that: 咯 is only ever neutral, so `lo` on its own is
|
|
58
|
+
* the two syllables and `lo²` is 羅 luó alone. See {@link narrowToAttested}.
|
|
59
|
+
*/
|
|
60
|
+
export function readWadeGiles(text) {
|
|
61
|
+
const [written, isErhua] = splitErhua(normalise(text), false);
|
|
62
|
+
const [spelling, tone] = splitTone(written);
|
|
63
|
+
return narrowToAttested(readFrom(INDEX.exact, (key) => key, spelling, tone, isErhua));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The same, allowing for the marks real-world Wade-Giles drops.
|
|
67
|
+
*
|
|
68
|
+
* `chi` read exactly is 機 jī; read loosely it is jī or 七 qī, because a text
|
|
69
|
+
* that meant `chʻi` may simply never have typed the apostrophe. The exact
|
|
70
|
+
* readings come first, so a caller that wants to believe what was written can
|
|
71
|
+
* take the head of the list and one that wants every possibility can take the
|
|
72
|
+
* lot.
|
|
73
|
+
*
|
|
74
|
+
* Narrowed over the whole list rather than over each half of it, because the
|
|
75
|
+
* two halves are rivals: `pan²` written exactly is a bán that Mandarin does not
|
|
76
|
+
* have, and the reading worth keeping is the 盤 pán of a text that dropped an
|
|
77
|
+
* apostrophe. Read exactly, `pan²` is still bán — there is nothing there to
|
|
78
|
+
* prefer it to.
|
|
79
|
+
*/
|
|
80
|
+
export function readWadeGilesLoosely(text) {
|
|
81
|
+
const exact = readWadeGiles(text);
|
|
82
|
+
const [written, isErhua] = splitErhua(normalise(text), true);
|
|
83
|
+
const [spelling, tone] = splitTone(written);
|
|
84
|
+
const loose = readFrom(INDEX.loose, withoutMarks, spelling, tone, isErhua);
|
|
85
|
+
return narrowToAttested([
|
|
86
|
+
...exact,
|
|
87
|
+
...loose.filter((syllable) => exact.every((other) => !isSameSyllable(other, syllable) || other.erhua !== syllable.erhua)),
|
|
88
|
+
]);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=wade-giles-syllable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-syllable.js","sourceRoot":"","sources":["../../src/transcription/wade-giles-syllable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,KAAK,EACL,cAAc,EAEd,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;GASG;AACH,SAAS,QAAQ,CACf,KAA4C,EAC5C,KAAmC,EACnC,QAAgB,EAChB,IAAsB,EACtB,OAAgB;IAEhB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;SACtC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACvD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,GAAG,GAAG,CAAC,QAAQ;QACf,IAAI;QACJ,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAChC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,gBAAgB,CACrB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE3E,OAAO,gBAAgB,CAAC;QACtB,GAAG,KAAK;QACR,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3B,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CACrE,CACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How Wade-Giles spells each part of a syllable, as tables.
|
|
3
|
+
*
|
|
4
|
+
* Separated from the rules that read them, so that this file is only ever a
|
|
5
|
+
* statement of what the system writes.
|
|
6
|
+
*/
|
|
7
|
+
import type { Final, Initial } from "../syllable/phonology.js";
|
|
8
|
+
/**
|
|
9
|
+
* The mark Wade-Giles writes aspiration with.
|
|
10
|
+
*
|
|
11
|
+
* ASCII, because that is what a keyboard produces and what nearly all text
|
|
12
|
+
* carries; the turned comma ʻ of the original and of library cataloguing is
|
|
13
|
+
* read back but not written. Every shape a text might use is accepted on input,
|
|
14
|
+
* which matters more here than in most places — this mark is the one carrying
|
|
15
|
+
* the p/pʻ distinction.
|
|
16
|
+
*/
|
|
17
|
+
export declare const APOSTROPHE = "'";
|
|
18
|
+
/**
|
|
19
|
+
* Every shape the aspiration mark is written with in the wild.
|
|
20
|
+
*/
|
|
21
|
+
export declare const APOSTROPHES: RegExp;
|
|
22
|
+
/**
|
|
23
|
+
* How each initial is spelled.
|
|
24
|
+
*
|
|
25
|
+
* The unvoiced/aspirated pairing is what makes this look wrong to a reader who
|
|
26
|
+
* only knows pinyin: Wade-Giles writes the *unaspirated* stop with the plain
|
|
27
|
+
* letter, so pinyin b is `p` and pinyin p is `pʻ`. Nothing is missing from the
|
|
28
|
+
* table; the whole series is shifted.
|
|
29
|
+
*/
|
|
30
|
+
export declare const INITIAL_SPELLINGS: Map<Initial, string>;
|
|
31
|
+
/**
|
|
32
|
+
* How z, c and s are spelled before the empty rhyme.
|
|
33
|
+
*
|
|
34
|
+
* 資 zī is `tzŭ` rather than `tsŭ`, and 私 sī is `ssŭ` rather than `sŭ`: the
|
|
35
|
+
* three sibilants take a different shape in front of the vowel that is not
|
|
36
|
+
* really one.
|
|
37
|
+
*/
|
|
38
|
+
export declare const SIBILANT_SPELLINGS: Map<Initial, string>;
|
|
39
|
+
/**
|
|
40
|
+
* How each final is spelled after an initial.
|
|
41
|
+
*
|
|
42
|
+
* `ueng` never occurs after one — 翁 wēng is the only syllable that has it —
|
|
43
|
+
* and is written with the form the pattern would give it rather than being made
|
|
44
|
+
* a special case.
|
|
45
|
+
*/
|
|
46
|
+
export declare const FINAL_SPELLINGS: Record<Final, string>;
|
|
47
|
+
/**
|
|
48
|
+
* How each final is spelled with no initial in front of it.
|
|
49
|
+
*
|
|
50
|
+
* The i, u and ü groups take a y or w onset as they do in pinyin, but not the
|
|
51
|
+
* same one in the same places: 一 yī is `i` and 有 yǒu is `yu`, which is also
|
|
52
|
+
* where 魚 yú's `yü` loses its diaeresis and collides. Finals that cannot stand
|
|
53
|
+
* alone keep their after-initial spelling.
|
|
54
|
+
*/
|
|
55
|
+
export declare const ZERO_INITIAL_SPELLINGS: Record<Final, string>;
|
|
56
|
+
/**
|
|
57
|
+
* The initials after which the i final is the empty rhyme written `ih`.
|
|
58
|
+
*/
|
|
59
|
+
export declare const RETROFLEX_INITIALS: Set<Initial>;
|
|
60
|
+
/**
|
|
61
|
+
* The initials after which it is the empty rhyme written `ŭ`.
|
|
62
|
+
*/
|
|
63
|
+
export declare const SIBILANT_INITIALS: Set<Initial>;
|
|
64
|
+
/**
|
|
65
|
+
* The initials after which the e final is written `o` rather than `ê`.
|
|
66
|
+
*/
|
|
67
|
+
export declare const O_FOR_E_INITIALS: Set<Initial>;
|
|
68
|
+
/**
|
|
69
|
+
* The initials after which `uo` loses its u: 作 zuò is `tso`, 若 ruò is `jo`.
|
|
70
|
+
*
|
|
71
|
+
* sh is the exception that has to be listed by its absence — 說 shuō stays
|
|
72
|
+
* `shuo` while 桌 zhuō is `cho` — and it is an exception in the source rather
|
|
73
|
+
* than an error here.
|
|
74
|
+
*/
|
|
75
|
+
export declare const O_FOR_UO_INITIALS: Set<Initial>;
|
|
76
|
+
/**
|
|
77
|
+
* The initials after which `uei` keeps its middle vowel: 貴 guì is `kuei`.
|
|
78
|
+
*/
|
|
79
|
+
export declare const UEI_INITIALS: Set<Initial>;
|
|
80
|
+
//# sourceMappingURL=wade-giles-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-tables.d.ts","sourceRoot":"","sources":["../../src/transcription/wade-giles-tables.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,WAAW,QAAiB,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,sBAsB5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,sBAI7B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CA0CjD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CA0BxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,cAA4C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,iBAAiB,cAAoC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,gBAAgB,cAAoC,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,cAW5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,cAA+B,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mark Wade-Giles writes aspiration with.
|
|
3
|
+
*
|
|
4
|
+
* ASCII, because that is what a keyboard produces and what nearly all text
|
|
5
|
+
* carries; the turned comma ʻ of the original and of library cataloguing is
|
|
6
|
+
* read back but not written. Every shape a text might use is accepted on input,
|
|
7
|
+
* which matters more here than in most places — this mark is the one carrying
|
|
8
|
+
* the p/pʻ distinction.
|
|
9
|
+
*/
|
|
10
|
+
export const APOSTROPHE = "'";
|
|
11
|
+
/**
|
|
12
|
+
* Every shape the aspiration mark is written with in the wild.
|
|
13
|
+
*/
|
|
14
|
+
export const APOSTROPHES = /['ʻʼ‘’`´ʹ]/gu;
|
|
15
|
+
/**
|
|
16
|
+
* How each initial is spelled.
|
|
17
|
+
*
|
|
18
|
+
* The unvoiced/aspirated pairing is what makes this look wrong to a reader who
|
|
19
|
+
* only knows pinyin: Wade-Giles writes the *unaspirated* stop with the plain
|
|
20
|
+
* letter, so pinyin b is `p` and pinyin p is `pʻ`. Nothing is missing from the
|
|
21
|
+
* table; the whole series is shifted.
|
|
22
|
+
*/
|
|
23
|
+
export const INITIAL_SPELLINGS = new Map([
|
|
24
|
+
["b", "p"],
|
|
25
|
+
["p", `p${APOSTROPHE}`],
|
|
26
|
+
["m", "m"],
|
|
27
|
+
["f", "f"],
|
|
28
|
+
["d", "t"],
|
|
29
|
+
["t", `t${APOSTROPHE}`],
|
|
30
|
+
["n", "n"],
|
|
31
|
+
["l", "l"],
|
|
32
|
+
["g", "k"],
|
|
33
|
+
["k", `k${APOSTROPHE}`],
|
|
34
|
+
["h", "h"],
|
|
35
|
+
["j", "ch"],
|
|
36
|
+
["q", `ch${APOSTROPHE}`],
|
|
37
|
+
["x", "hs"],
|
|
38
|
+
["zh", "ch"],
|
|
39
|
+
["ch", `ch${APOSTROPHE}`],
|
|
40
|
+
["sh", "sh"],
|
|
41
|
+
["r", "j"],
|
|
42
|
+
["z", "ts"],
|
|
43
|
+
["c", `ts${APOSTROPHE}`],
|
|
44
|
+
["s", "s"],
|
|
45
|
+
]);
|
|
46
|
+
/**
|
|
47
|
+
* How z, c and s are spelled before the empty rhyme.
|
|
48
|
+
*
|
|
49
|
+
* 資 zī is `tzŭ` rather than `tsŭ`, and 私 sī is `ssŭ` rather than `sŭ`: the
|
|
50
|
+
* three sibilants take a different shape in front of the vowel that is not
|
|
51
|
+
* really one.
|
|
52
|
+
*/
|
|
53
|
+
export const SIBILANT_SPELLINGS = new Map([
|
|
54
|
+
["z", "tz"],
|
|
55
|
+
["c", `tz${APOSTROPHE}`],
|
|
56
|
+
["s", "ss"],
|
|
57
|
+
]);
|
|
58
|
+
/**
|
|
59
|
+
* How each final is spelled after an initial.
|
|
60
|
+
*
|
|
61
|
+
* `ueng` never occurs after one — 翁 wēng is the only syllable that has it —
|
|
62
|
+
* and is written with the form the pattern would give it rather than being made
|
|
63
|
+
* a special case.
|
|
64
|
+
*/
|
|
65
|
+
export const FINAL_SPELLINGS = {
|
|
66
|
+
a: "a",
|
|
67
|
+
o: "o",
|
|
68
|
+
e: "ê",
|
|
69
|
+
ê: "eh",
|
|
70
|
+
er: "êrh",
|
|
71
|
+
ai: "ai",
|
|
72
|
+
ei: "ei",
|
|
73
|
+
ao: "ao",
|
|
74
|
+
ou: "ou",
|
|
75
|
+
an: "an",
|
|
76
|
+
en: "ên",
|
|
77
|
+
ang: "ang",
|
|
78
|
+
eng: "êng",
|
|
79
|
+
ong: "ung",
|
|
80
|
+
i: "i",
|
|
81
|
+
ia: "ia",
|
|
82
|
+
io: "io",
|
|
83
|
+
ie: "ieh",
|
|
84
|
+
iao: "iao",
|
|
85
|
+
iou: "iu",
|
|
86
|
+
ian: "ien",
|
|
87
|
+
in: "in",
|
|
88
|
+
iang: "iang",
|
|
89
|
+
ing: "ing",
|
|
90
|
+
iong: "iung",
|
|
91
|
+
u: "u",
|
|
92
|
+
ua: "ua",
|
|
93
|
+
uo: "uo",
|
|
94
|
+
uai: "uai",
|
|
95
|
+
uei: "ui",
|
|
96
|
+
uan: "uan",
|
|
97
|
+
uen: "un",
|
|
98
|
+
uang: "uang",
|
|
99
|
+
ueng: "uêng",
|
|
100
|
+
ü: "ü",
|
|
101
|
+
üe: "üeh",
|
|
102
|
+
üan: "üan",
|
|
103
|
+
ün: "ün",
|
|
104
|
+
m: "m",
|
|
105
|
+
n: "n",
|
|
106
|
+
ng: "ng",
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* How each final is spelled with no initial in front of it.
|
|
110
|
+
*
|
|
111
|
+
* The i, u and ü groups take a y or w onset as they do in pinyin, but not the
|
|
112
|
+
* same one in the same places: 一 yī is `i` and 有 yǒu is `yu`, which is also
|
|
113
|
+
* where 魚 yú's `yü` loses its diaeresis and collides. Finals that cannot stand
|
|
114
|
+
* alone keep their after-initial spelling.
|
|
115
|
+
*/
|
|
116
|
+
export const ZERO_INITIAL_SPELLINGS = {
|
|
117
|
+
...FINAL_SPELLINGS,
|
|
118
|
+
i: "i",
|
|
119
|
+
ia: "ya",
|
|
120
|
+
io: "yo",
|
|
121
|
+
ie: "yeh",
|
|
122
|
+
iao: "yao",
|
|
123
|
+
iou: "yu",
|
|
124
|
+
ian: "yen",
|
|
125
|
+
in: "yin",
|
|
126
|
+
iang: "yang",
|
|
127
|
+
ing: "ying",
|
|
128
|
+
iong: "yung",
|
|
129
|
+
u: "wu",
|
|
130
|
+
ua: "wa",
|
|
131
|
+
uo: "wo",
|
|
132
|
+
uai: "wai",
|
|
133
|
+
uei: "wei",
|
|
134
|
+
uan: "wan",
|
|
135
|
+
uen: "wên",
|
|
136
|
+
uang: "wang",
|
|
137
|
+
ueng: "wêng",
|
|
138
|
+
ü: "yü",
|
|
139
|
+
üe: "yüeh",
|
|
140
|
+
üan: "yüan",
|
|
141
|
+
ün: "yün",
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* The initials after which the i final is the empty rhyme written `ih`.
|
|
145
|
+
*/
|
|
146
|
+
export const RETROFLEX_INITIALS = new Set(["zh", "ch", "sh", "r"]);
|
|
147
|
+
/**
|
|
148
|
+
* The initials after which it is the empty rhyme written `ŭ`.
|
|
149
|
+
*/
|
|
150
|
+
export const SIBILANT_INITIALS = new Set(["z", "c", "s"]);
|
|
151
|
+
/**
|
|
152
|
+
* The initials after which the e final is written `o` rather than `ê`.
|
|
153
|
+
*/
|
|
154
|
+
export const O_FOR_E_INITIALS = new Set(["g", "k", "h"]);
|
|
155
|
+
/**
|
|
156
|
+
* The initials after which `uo` loses its u: 作 zuò is `tso`, 若 ruò is `jo`.
|
|
157
|
+
*
|
|
158
|
+
* sh is the exception that has to be listed by its absence — 說 shuō stays
|
|
159
|
+
* `shuo` while 桌 zhuō is `cho` — and it is an exception in the source rather
|
|
160
|
+
* than an error here.
|
|
161
|
+
*/
|
|
162
|
+
export const O_FOR_UO_INITIALS = new Set([
|
|
163
|
+
"d",
|
|
164
|
+
"t",
|
|
165
|
+
"n",
|
|
166
|
+
"l",
|
|
167
|
+
"z",
|
|
168
|
+
"c",
|
|
169
|
+
"s",
|
|
170
|
+
"zh",
|
|
171
|
+
"ch",
|
|
172
|
+
"r",
|
|
173
|
+
]);
|
|
174
|
+
/**
|
|
175
|
+
* The initials after which `uei` keeps its middle vowel: 貴 guì is `kuei`.
|
|
176
|
+
*/
|
|
177
|
+
export const UEI_INITIALS = new Set(["g", "k"]);
|
|
178
|
+
//# sourceMappingURL=wade-giles-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wade-giles-tables.js","sourceRoot":"","sources":["../../src/transcription/wade-giles-tables.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAkB;IACxD,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,KAAK,UAAU,EAAE,CAAC;IACxB,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;IACzB,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,KAAK,UAAU,EAAE,CAAC;IACxB,CAAC,GAAG,EAAE,GAAG,CAAC;CACX,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAkB;IACzD,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,KAAK,UAAU,EAAE,CAAC;IACxB,CAAC,GAAG,EAAE,IAAI,CAAC;CACZ,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,IAAI;CACT,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,GAAG,eAAe;IAClB,CAAC,EAAE,GAAG;IACN,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,MAAM;IACV,GAAG,EAAE,MAAM;IACX,EAAE,EAAE,KAAK;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAU;IAChD,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;CACJ,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -1,66 +1,15 @@
|
|
|
1
|
-
import { type Syllable } from "../syllable/syllable.js";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Wade-Giles, and cutting a run of it into syllables.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The entry point for the system, re-exporting the spelling tables and the
|
|
5
|
+
* single-syllable reader alongside its own subject: Wade-Giles writes a word
|
|
6
|
+
* with hyphens, and a text that dropped them has to be segmented back. That
|
|
7
|
+
* is a different problem from reading one syllable — the spellings overlap,
|
|
8
|
+
* so it takes a search rather than a lookup.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Spell a syllable in Wade-Giles without its tone.
|
|
14
|
-
*/
|
|
15
|
-
export declare function writeWadeGilesSpelling(syllable: Syllable): string;
|
|
16
|
-
/**
|
|
17
|
-
* Write a syllable in Wade-Giles: 就 jiù becomes `chiu⁴`.
|
|
18
|
-
*
|
|
19
|
-
* Total over well-formed syllables, as the bopomofo writer is. An unwritten
|
|
20
|
-
* tone stays unwritten rather than being invented as a first tone, which is
|
|
21
|
-
* what lets the round trip come back exactly.
|
|
22
|
-
*
|
|
23
|
-
* The digit goes in front of the 儿化 suffix rather than after it — 玩儿 wánr
|
|
24
|
-
* is `wan²-'rh` — for the reason {@link ERHUA_SUFFIX} gives.
|
|
25
|
-
*/
|
|
26
|
-
export declare function writeWadeGiles(syllable: Syllable, options?: WadeGilesOptions): string;
|
|
27
|
-
/**
|
|
28
|
-
* Write a word in Wade-Giles, hyphenating between its syllables.
|
|
29
|
-
*
|
|
30
|
-
* The hyphen is Wade's own convention and it is not decoration: `Tse-tung`
|
|
31
|
-
* written solid could be read as two syllables or as three, and the system has
|
|
32
|
-
* no 隔音符号 to fall back on. Pinyin writes the word solid and reaches for an
|
|
33
|
-
* apostrophe only where the boundary is genuinely ambiguous, which is the
|
|
34
|
-
* opposite default.
|
|
35
|
-
*/
|
|
36
|
-
export declare function writeWadeGilesWord(syllables: readonly Syllable[], options?: WadeGilesOptions): string;
|
|
37
|
-
/**
|
|
38
|
-
* Read a Wade-Giles syllable exactly as it is written: `chiu⁴` becomes 就 jiù.
|
|
39
|
-
*
|
|
40
|
-
* Returns every syllable the spelling stands for, which is one for all but a
|
|
41
|
-
* handful of them — `lo` is both 羅 luó and 咯 lo, and `o` is both 俄 é and
|
|
42
|
-
* 哦 ó. Empty for anything that is not Wade-Giles at all.
|
|
43
|
-
*
|
|
44
|
-
* A written tone narrows that: 咯 is only ever neutral, so `lo` on its own is
|
|
45
|
-
* the two syllables and `lo²` is 羅 luó alone. See {@link narrowToAttested}.
|
|
46
|
-
*/
|
|
47
|
-
export declare function readWadeGiles(text: string): readonly Syllable[];
|
|
48
|
-
/**
|
|
49
|
-
* The same, allowing for the marks real-world Wade-Giles drops.
|
|
50
|
-
*
|
|
51
|
-
* `chi` read exactly is 機 jī; read loosely it is jī or 七 qī, because a text
|
|
52
|
-
* that meant `chʻi` may simply never have typed the apostrophe. The exact
|
|
53
|
-
* readings come first, so a caller that wants to believe what was written can
|
|
54
|
-
* take the head of the list and one that wants every possibility can take the
|
|
55
|
-
* lot.
|
|
56
|
-
*
|
|
57
|
-
* Narrowed over the whole list rather than over each half of it, because the
|
|
58
|
-
* two halves are rivals: `pan²` written exactly is a bán that Mandarin does not
|
|
59
|
-
* have, and the reading worth keeping is the 盤 pán of a text that dropped an
|
|
60
|
-
* apostrophe. Read exactly, `pan²` is still bán — there is nothing there to
|
|
61
|
-
* prefer it to.
|
|
62
|
-
*/
|
|
63
|
-
export declare function readWadeGilesLoosely(text: string): readonly Syllable[];
|
|
10
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
11
|
+
export { type WadeGilesOptions, writeWadeGiles, writeWadeGilesSpelling, writeWadeGilesWord, } from "./wade-giles-spelling.js";
|
|
12
|
+
export { readWadeGiles, readWadeGilesLoosely } from "./wade-giles-syllable.js";
|
|
64
13
|
/**
|
|
65
14
|
* Split written Wade-Giles into syllables: `maotsetung` becomes three.
|
|
66
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wade-giles.d.ts","sourceRoot":"","sources":["../../src/transcription/wade-giles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wade-giles.d.ts","sourceRoot":"","sources":["../../src/transcription/wade-giles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMxD,OAAO,EACL,KAAK,gBAAgB,EACrB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAwF/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CA+B1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,SAAS,QAAQ,EAAE,GAAG,SAAS,CAYjC"}
|