@kensio/pinyinjs 1.7.4 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -123
- package/data/full.entries +2595 -2595
- package/data/manifest.json +5 -5
- package/data/script.map +66 -3
- 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/chang-context.d.ts +27 -0
- package/dist/decode/chang-context.d.ts.map +1 -0
- package/dist/decode/chang-context.js +66 -0
- package/dist/decode/chang-context.js.map +1 -0
- package/dist/decode/chang-rule.d.ts +37 -0
- package/dist/decode/chang-rule.d.ts.map +1 -0
- package/dist/decode/chang-rule.js +169 -0
- package/dist/decode/chang-rule.js.map +1 -0
- package/dist/decode/confidence.d.ts +11 -3
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +14 -121
- 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 +67 -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/de-rule.d.ts +54 -0
- package/dist/decode/de-rule.d.ts.map +1 -0
- package/dist/decode/de-rule.js +113 -0
- package/dist/decode/de-rule.js.map +1 -0
- 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 +154 -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 +64 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +115 -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 +101 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +63 -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 +11 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +11 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +3 -126
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +8 -434
- 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/run-words.d.ts +17 -0
- package/dist/decode/run-words.d.ts.map +1 -0
- package/dist/decode/run-words.js +29 -0
- package/dist/decode/run-words.js.map +1 -0
- package/dist/decode/sandhi-input.d.ts +30 -0
- package/dist/decode/sandhi-input.d.ts.map +1 -0
- package/dist/decode/sandhi-input.js +35 -0
- package/dist/decode/sandhi-input.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +97 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +139 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +10 -7
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +11 -88
- 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 +21 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +42 -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 +87 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +126 -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/constituent-repair.d.ts +36 -0
- package/dist/dictionary/constituent-repair.d.ts.map +1 -0
- package/dist/dictionary/constituent-repair.js +117 -0
- package/dist/dictionary/constituent-repair.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 +127 -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-walk.d.ts +27 -0
- package/dist/dictionary/merge-walk.d.ts.map +1 -0
- package/dist/dictionary/merge-walk.js +49 -0
- package/dist/dictionary/merge-walk.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 +32 -725
- 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 +41 -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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- 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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The symbol tables inverted, for reading bopomofo back.
|
|
3
|
+
*
|
|
4
|
+
* Every one of these is derived from the write-side table it mirrors rather
|
|
5
|
+
* than written out again, so the two cannot disagree.
|
|
6
|
+
*/
|
|
7
|
+
import { toCharacters } from "../script/characters.js";
|
|
8
|
+
import { FINAL_PARTS, INITIAL_SYMBOLS, MEDIAL_SYMBOLS, RHYME_SYMBOLS, TONES_BY_MARK, } from "./bopomofo-tables.js";
|
|
9
|
+
/**
|
|
10
|
+
* The final each medial and rhyme pair spells, keyed as `medial|rhyme`.
|
|
11
|
+
*/
|
|
12
|
+
export const FINALS_BY_PARTS = new Map(Object.entries(FINAL_PARTS).map(([final, [medial, rhyme]]) => [
|
|
13
|
+
`${medial}|${rhyme}`,
|
|
14
|
+
final,
|
|
15
|
+
]));
|
|
16
|
+
/**
|
|
17
|
+
* The initial each symbol stands for.
|
|
18
|
+
*/
|
|
19
|
+
export const INITIALS_BY_SYMBOL = new Map([...INITIAL_SYMBOLS].map(([initial, symbol]) => [symbol, initial]));
|
|
20
|
+
/**
|
|
21
|
+
* The medial each symbol stands for.
|
|
22
|
+
*/
|
|
23
|
+
export const MEDIALS_BY_SYMBOL = new Map([...MEDIAL_SYMBOLS].map(([medial, symbol]) => [symbol, medial]));
|
|
24
|
+
/**
|
|
25
|
+
* The rhyme each symbol stands for.
|
|
26
|
+
*/
|
|
27
|
+
export const RHYMES_BY_SYMBOL = new Map([...RHYME_SYMBOLS].map(([rhyme, symbol]) => [symbol, rhyme]));
|
|
28
|
+
/**
|
|
29
|
+
* Whether one character is a bopomofo letter or tone mark.
|
|
30
|
+
*/
|
|
31
|
+
export function isSymbol(symbol) {
|
|
32
|
+
return (INITIALS_BY_SYMBOL.has(symbol) ||
|
|
33
|
+
MEDIALS_BY_SYMBOL.has(symbol) ||
|
|
34
|
+
RHYMES_BY_SYMBOL.has(symbol) ||
|
|
35
|
+
TONES_BY_MARK.has(symbol));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether a string is written in bopomofo at all.
|
|
39
|
+
*
|
|
40
|
+
* This is the one thing bopomofo makes easy that Wade-Giles cannot: it has a
|
|
41
|
+
* script of its own, so it is never mistaken for pinyin and a caller never has
|
|
42
|
+
* to be told which system its input is in.
|
|
43
|
+
*/
|
|
44
|
+
export function isBopomofo(text) {
|
|
45
|
+
const trimmed = text.trim();
|
|
46
|
+
return (trimmed !== "" && toCharacters(trimmed).every((symbol) => isSymbol(symbol)));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=bopomofo-reverse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo-reverse.js","sourceRoot":"","sources":["../../src/transcription/bopomofo-reverse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EACL,WAAW,EACX,eAAe,EAEf,cAAc,EAEd,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CACpC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5D,GAAG,MAAM,IAAI,KAAK,EAAE;IACpB,KAAc;CACf,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CACvC,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACnE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CACtC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CACrC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC7D,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,CACL,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9B,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7B,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,CACL,OAAO,KAAK,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bopomofo symbols, and writing a syllable in them.
|
|
3
|
+
*
|
|
4
|
+
* `bopomofo.ts` reads by inverting these same tables, so the dependency runs
|
|
5
|
+
* one way — nothing here knows how a string is parsed back.
|
|
6
|
+
*/
|
|
7
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
8
|
+
export { EMPTY_RHYME_INITIALS, ERHUA_SYMBOL, FINAL_PARTS, INITIAL_SYMBOLS, type Medial, MEDIAL_SYMBOLS, type Rhyme, RHYME_SYMBOLS, TONES_BY_MARK, } from "./bopomofo-tables.js";
|
|
9
|
+
/**
|
|
10
|
+
* How the first tone is written.
|
|
11
|
+
*
|
|
12
|
+
* Standard bopomofo leaves it unmarked, which is why `none` is the default. The
|
|
13
|
+
* cost is that a syllable whose tone was never written comes back as a first
|
|
14
|
+
* tone, since bopomofo has no way to say "no tone at all"; `mark` writes ˉ and
|
|
15
|
+
* keeps the two apart.
|
|
16
|
+
*/
|
|
17
|
+
export interface BopomofoOptions {
|
|
18
|
+
readonly firstTone?: "mark" | "none";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write a syllable in bopomofo: 就 jiù becomes ㄐㄧㄡˋ.
|
|
22
|
+
*
|
|
23
|
+
* Total over well-formed syllables — every initial and every final has a
|
|
24
|
+
* symbol — so anything the syllable parser accepts can be written, including
|
|
25
|
+
* the syllables no dictionary uses.
|
|
26
|
+
*/
|
|
27
|
+
export declare function writeBopomofo(syllable: Syllable, options?: BopomofoOptions): string;
|
|
28
|
+
/**
|
|
29
|
+
* Write a word in bopomofo, one syllable after another.
|
|
30
|
+
*
|
|
31
|
+
* Separated by spaces, as 教育部's dictionaries write them. A syllable boundary
|
|
32
|
+
* is findable without the space — an initial symbol can only start one — but a
|
|
33
|
+
* long unbroken run of symbols is hard to read, and the space costs nothing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function writeBopomofoWord(syllables: readonly Syllable[], options?: BopomofoOptions): string;
|
|
36
|
+
//# sourceMappingURL=bopomofo-symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo-symbols.d.ts","sourceRoot":"","sources":["../../src/transcription/bopomofo-symbols.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAYxD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,KAAK,MAAM,EACX,cAAc,EACd,KAAK,KAAK,EACV,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAIR"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NEUTRAL_TONE } from "../tone/tone.js";
|
|
2
|
+
import { EMPTY_RHYME_INITIALS, ERHUA_SYMBOL, FINAL_PARTS, INITIAL_SYMBOLS, MEDIAL_SYMBOLS, RHYME_SYMBOLS, TONE_MARKS, } from "./bopomofo-tables.js";
|
|
3
|
+
export { EMPTY_RHYME_INITIALS, ERHUA_SYMBOL, FINAL_PARTS, INITIAL_SYMBOLS, MEDIAL_SYMBOLS, RHYME_SYMBOLS, TONES_BY_MARK, } from "./bopomofo-tables.js";
|
|
4
|
+
/**
|
|
5
|
+
* Write a syllable in bopomofo: 就 jiù becomes ㄐㄧㄡˋ.
|
|
6
|
+
*
|
|
7
|
+
* Total over well-formed syllables — every initial and every final has a
|
|
8
|
+
* symbol — so anything the syllable parser accepts can be written, including
|
|
9
|
+
* the syllables no dictionary uses.
|
|
10
|
+
*/
|
|
11
|
+
export function writeBopomofo(syllable, options = {}) {
|
|
12
|
+
const { initial, final, tone } = syllable;
|
|
13
|
+
const [medial, rhyme] = FINAL_PARTS[final];
|
|
14
|
+
const isEmptyRhyme = final === "i" && EMPTY_RHYME_INITIALS.has(initial);
|
|
15
|
+
const written = [
|
|
16
|
+
INITIAL_SYMBOLS.get(initial) ?? "",
|
|
17
|
+
isEmptyRhyme ? "" : (MEDIAL_SYMBOLS.get(medial) ?? ""),
|
|
18
|
+
isEmptyRhyme ? "" : (RHYME_SYMBOLS.get(rhyme) ?? ""),
|
|
19
|
+
].join("");
|
|
20
|
+
const suffix = syllable.erhua === true ? ERHUA_SYMBOL : "";
|
|
21
|
+
const mark = tone === undefined ? undefined : TONE_MARKS.get(tone);
|
|
22
|
+
if (mark === undefined || (tone === 1 && options.firstTone !== "mark")) {
|
|
23
|
+
return `${written}${suffix}`;
|
|
24
|
+
}
|
|
25
|
+
return tone === NEUTRAL_TONE
|
|
26
|
+
? `${mark}${written}${suffix}`
|
|
27
|
+
: `${written}${mark}${suffix}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Write a word in bopomofo, one syllable after another.
|
|
31
|
+
*
|
|
32
|
+
* Separated by spaces, as 教育部's dictionaries write them. A syllable boundary
|
|
33
|
+
* is findable without the space — an initial symbol can only start one — but a
|
|
34
|
+
* long unbroken run of symbols is hard to read, and the space costs nothing.
|
|
35
|
+
*/
|
|
36
|
+
export function writeBopomofoWord(syllables, options = {}) {
|
|
37
|
+
return syllables
|
|
38
|
+
.map((syllable) => writeBopomofo(syllable, options))
|
|
39
|
+
.join(" ");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=bopomofo-symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo-symbols.js","sourceRoot":"","sources":["../../src/transcription/bopomofo-symbols.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EAEf,cAAc,EAEd,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAc9B;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAkB,EAClB,OAAO,GAAoB,EAAE;IAE7B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC1C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,KAAK,KAAK,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG;QACd,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QAClC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtD,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACrD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3D,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;QACvE,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,KAAK,YAAY;QAC1B,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,EAAE;QAC9B,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA8B,EAC9B,OAAO,GAAoB,EAAE;IAE7B,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACnD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bopomofo symbols themselves, as tables.
|
|
3
|
+
*
|
|
4
|
+
* Split from the writing so that each is one thing: this says which symbol
|
|
5
|
+
* stands for which part of a syllable, and `bopomofo-symbols.ts` puts them
|
|
6
|
+
* together.
|
|
7
|
+
*/
|
|
8
|
+
import type { Final, Initial } from "../syllable/phonology.js";
|
|
9
|
+
/**
|
|
10
|
+
* The medial (介音) of a syllable, or the empty string for one with none.
|
|
11
|
+
*/
|
|
12
|
+
export type Medial = "" | "i" | "u" | "ü";
|
|
13
|
+
/**
|
|
14
|
+
* The rhyme a syllable ends on, or the empty string where the medial is the
|
|
15
|
+
* whole of the final: 於 yú is ㄩ and nothing more.
|
|
16
|
+
*/
|
|
17
|
+
export type Rhyme = "" | "a" | "o" | "e" | "ê" | "ai" | "ei" | "ao" | "ou" | "an" | "en" | "ang" | "eng" | "er" | "m" | "n" | "ng";
|
|
18
|
+
/**
|
|
19
|
+
* The symbol each initial is written with.
|
|
20
|
+
*
|
|
21
|
+
* A syllable with no initial has no entry and writes nothing, which is what the
|
|
22
|
+
* empty string stands for throughout this file.
|
|
23
|
+
*/
|
|
24
|
+
export declare const INITIAL_SYMBOLS: Map<Initial, string>;
|
|
25
|
+
/**
|
|
26
|
+
* The symbol each medial is written with.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MEDIAL_SYMBOLS: Map<Medial, string>;
|
|
29
|
+
/**
|
|
30
|
+
* The symbol each rhyme is written with.
|
|
31
|
+
*
|
|
32
|
+
* ㄦ is here as a rhyme of its own and also serves as the 儿化 suffix, which is
|
|
33
|
+
* what bopomofo does with it: 歌儿 gēr is ㄍㄜㄦ.
|
|
34
|
+
*
|
|
35
|
+
* The three syllabic nasals at the end are the marginal case. ㄇ and ㄋ are
|
|
36
|
+
* initial letters doing rhyme duty, as bopomofo writes 呣 and 嗯; ㄫ is the
|
|
37
|
+
* obsolete letter for a syllabic ng, used here rather than ㄥ so that 嗯 ǹg and
|
|
38
|
+
* the rare 鞥 ēng do not come out identical.
|
|
39
|
+
*/
|
|
40
|
+
export declare const RHYME_SYMBOLS: Map<Rhyme, string>;
|
|
41
|
+
/**
|
|
42
|
+
* How each final divides into a medial and a rhyme.
|
|
43
|
+
*
|
|
44
|
+
* Written out rather than split off the front of the spelling, because the
|
|
45
|
+
* division is phonological and the spelling only mostly follows it: `in` is
|
|
46
|
+
* ㄧㄣ, an i medial over the ㄣ rhyme rather than over an n of its own, and
|
|
47
|
+
* `iong` is ㄩㄥ — a ü medial despite the i in the spelling, which is why
|
|
48
|
+
* 兄 xiōng and 军 jūn share a medial.
|
|
49
|
+
*/
|
|
50
|
+
export declare const FINAL_PARTS: Record<Final, readonly [Medial, Rhyme]>;
|
|
51
|
+
/**
|
|
52
|
+
* The initials whose syllable with an i final is written as the initial alone:
|
|
53
|
+
* 知 is ㄓ, not ㄓㄧ.
|
|
54
|
+
*
|
|
55
|
+
* The i of zhi, chi, shi, ri, zi, ci and si is not the i of ji at all — it is
|
|
56
|
+
* the syllabic continuation of the initial (空韻), and bopomofo simply does not
|
|
57
|
+
* write it. This is the one place the correspondence is not one symbol per
|
|
58
|
+
* part.
|
|
59
|
+
*/
|
|
60
|
+
export declare const EMPTY_RHYME_INITIALS: Set<Initial>;
|
|
61
|
+
/**
|
|
62
|
+
* The symbol 儿化 is written with.
|
|
63
|
+
*
|
|
64
|
+
* ㄦ, the same letter as the rhyme of 兒 ér itself, which is why reading it
|
|
65
|
+
* takes the position into account: see {@link parseSymbols}.
|
|
66
|
+
*/
|
|
67
|
+
export declare const ERHUA_SYMBOL = "\u3126";
|
|
68
|
+
/**
|
|
69
|
+
* The mark each tone takes.
|
|
70
|
+
*
|
|
71
|
+
* The neutral tone's dot goes *before* the syllable and the other four go
|
|
72
|
+
* after — but **before a 儿化 ㄦ rather than after it**: 哪儿 nǎr is ㄋㄚˇㄦ and
|
|
73
|
+
* 玩儿 wánr is ㄨㄢˊㄦ. The mark belongs to the syllable's nucleus, and the
|
|
74
|
+
* suffix is not part of what it marks. Wikipedia's *Bopomofo*, citing 教育部's
|
|
75
|
+
* 國語注音符號手冊, says so outright, and it is what 教育部's dictionaries and
|
|
76
|
+
* Wiktionary both write.
|
|
77
|
+
*/
|
|
78
|
+
export declare const TONE_MARKS: Map<1 | 2 | 3 | 4 | 5, string>;
|
|
79
|
+
/**
|
|
80
|
+
* The tone each mark stands for, including the shapes a keyboard produces.
|
|
81
|
+
*
|
|
82
|
+
* Tolerant input and standard output, as the rest of the package has: `´` and
|
|
83
|
+
* `` ` `` are the ASCII neighbours of ˊ and ˋ, and are what text that was typed
|
|
84
|
+
* rather than composed tends to carry.
|
|
85
|
+
*/
|
|
86
|
+
export declare const TONES_BY_MARK: Map<string, 1 | 2 | 3 | 4 | 5>;
|
|
87
|
+
//# sourceMappingURL=bopomofo-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo-tables.d.ts","sourceRoot":"","sources":["../../src/transcription/bopomofo-tables.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,KAAK,GACb,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,GAAG,GACH,GAAG,GACH,IAAI,CAAC;AAET;;;;;GAKG;AACH,eAAO,MAAM,eAAe,sBAsB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,qBAIzB,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,oBAiBxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CA0C/D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,cAQ/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAM,CAAC;AAEhC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,gCAMrB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,gCAUxB,CAAC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { NEUTRAL_TONE } from "../tone/tone.js";
|
|
2
|
+
/**
|
|
3
|
+
* The symbol each initial is written with.
|
|
4
|
+
*
|
|
5
|
+
* A syllable with no initial has no entry and writes nothing, which is what the
|
|
6
|
+
* empty string stands for throughout this file.
|
|
7
|
+
*/
|
|
8
|
+
export const INITIAL_SYMBOLS = new Map([
|
|
9
|
+
["b", "ㄅ"],
|
|
10
|
+
["p", "ㄆ"],
|
|
11
|
+
["m", "ㄇ"],
|
|
12
|
+
["f", "ㄈ"],
|
|
13
|
+
["d", "ㄉ"],
|
|
14
|
+
["t", "ㄊ"],
|
|
15
|
+
["n", "ㄋ"],
|
|
16
|
+
["l", "ㄌ"],
|
|
17
|
+
["g", "ㄍ"],
|
|
18
|
+
["k", "ㄎ"],
|
|
19
|
+
["h", "ㄏ"],
|
|
20
|
+
["j", "ㄐ"],
|
|
21
|
+
["q", "ㄑ"],
|
|
22
|
+
["x", "ㄒ"],
|
|
23
|
+
["zh", "ㄓ"],
|
|
24
|
+
["ch", "ㄔ"],
|
|
25
|
+
["sh", "ㄕ"],
|
|
26
|
+
["r", "ㄖ"],
|
|
27
|
+
["z", "ㄗ"],
|
|
28
|
+
["c", "ㄘ"],
|
|
29
|
+
["s", "ㄙ"],
|
|
30
|
+
]);
|
|
31
|
+
/**
|
|
32
|
+
* The symbol each medial is written with.
|
|
33
|
+
*/
|
|
34
|
+
export const MEDIAL_SYMBOLS = new Map([
|
|
35
|
+
["i", "ㄧ"],
|
|
36
|
+
["u", "ㄨ"],
|
|
37
|
+
["ü", "ㄩ"],
|
|
38
|
+
]);
|
|
39
|
+
/**
|
|
40
|
+
* The symbol each rhyme is written with.
|
|
41
|
+
*
|
|
42
|
+
* ㄦ is here as a rhyme of its own and also serves as the 儿化 suffix, which is
|
|
43
|
+
* what bopomofo does with it: 歌儿 gēr is ㄍㄜㄦ.
|
|
44
|
+
*
|
|
45
|
+
* The three syllabic nasals at the end are the marginal case. ㄇ and ㄋ are
|
|
46
|
+
* initial letters doing rhyme duty, as bopomofo writes 呣 and 嗯; ㄫ is the
|
|
47
|
+
* obsolete letter for a syllabic ng, used here rather than ㄥ so that 嗯 ǹg and
|
|
48
|
+
* the rare 鞥 ēng do not come out identical.
|
|
49
|
+
*/
|
|
50
|
+
export const RHYME_SYMBOLS = new Map([
|
|
51
|
+
["a", "ㄚ"],
|
|
52
|
+
["o", "ㄛ"],
|
|
53
|
+
["e", "ㄜ"],
|
|
54
|
+
["ê", "ㄝ"],
|
|
55
|
+
["ai", "ㄞ"],
|
|
56
|
+
["ei", "ㄟ"],
|
|
57
|
+
["ao", "ㄠ"],
|
|
58
|
+
["ou", "ㄡ"],
|
|
59
|
+
["an", "ㄢ"],
|
|
60
|
+
["en", "ㄣ"],
|
|
61
|
+
["ang", "ㄤ"],
|
|
62
|
+
["eng", "ㄥ"],
|
|
63
|
+
["er", "ㄦ"],
|
|
64
|
+
["m", "ㄇ"],
|
|
65
|
+
["n", "ㄋ"],
|
|
66
|
+
["ng", "ㄫ"],
|
|
67
|
+
]);
|
|
68
|
+
/**
|
|
69
|
+
* How each final divides into a medial and a rhyme.
|
|
70
|
+
*
|
|
71
|
+
* Written out rather than split off the front of the spelling, because the
|
|
72
|
+
* division is phonological and the spelling only mostly follows it: `in` is
|
|
73
|
+
* ㄧㄣ, an i medial over the ㄣ rhyme rather than over an n of its own, and
|
|
74
|
+
* `iong` is ㄩㄥ — a ü medial despite the i in the spelling, which is why
|
|
75
|
+
* 兄 xiōng and 军 jūn share a medial.
|
|
76
|
+
*/
|
|
77
|
+
export const FINAL_PARTS = {
|
|
78
|
+
a: ["", "a"],
|
|
79
|
+
o: ["", "o"],
|
|
80
|
+
e: ["", "e"],
|
|
81
|
+
ê: ["", "ê"],
|
|
82
|
+
er: ["", "er"],
|
|
83
|
+
ai: ["", "ai"],
|
|
84
|
+
ei: ["", "ei"],
|
|
85
|
+
ao: ["", "ao"],
|
|
86
|
+
ou: ["", "ou"],
|
|
87
|
+
an: ["", "an"],
|
|
88
|
+
en: ["", "en"],
|
|
89
|
+
ang: ["", "ang"],
|
|
90
|
+
eng: ["", "eng"],
|
|
91
|
+
ong: ["u", "eng"],
|
|
92
|
+
i: ["i", ""],
|
|
93
|
+
ia: ["i", "a"],
|
|
94
|
+
io: ["i", "o"],
|
|
95
|
+
ie: ["i", "ê"],
|
|
96
|
+
iao: ["i", "ao"],
|
|
97
|
+
iou: ["i", "ou"],
|
|
98
|
+
ian: ["i", "an"],
|
|
99
|
+
in: ["i", "en"],
|
|
100
|
+
iang: ["i", "ang"],
|
|
101
|
+
ing: ["i", "eng"],
|
|
102
|
+
iong: ["ü", "eng"],
|
|
103
|
+
u: ["u", ""],
|
|
104
|
+
ua: ["u", "a"],
|
|
105
|
+
uo: ["u", "o"],
|
|
106
|
+
uai: ["u", "ai"],
|
|
107
|
+
uei: ["u", "ei"],
|
|
108
|
+
uan: ["u", "an"],
|
|
109
|
+
uen: ["u", "en"],
|
|
110
|
+
uang: ["u", "ang"],
|
|
111
|
+
ueng: ["u", "eng"],
|
|
112
|
+
ü: ["ü", ""],
|
|
113
|
+
üe: ["ü", "ê"],
|
|
114
|
+
üan: ["ü", "an"],
|
|
115
|
+
ün: ["ü", "en"],
|
|
116
|
+
m: ["", "m"],
|
|
117
|
+
n: ["", "n"],
|
|
118
|
+
ng: ["", "ng"],
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* The initials whose syllable with an i final is written as the initial alone:
|
|
122
|
+
* 知 is ㄓ, not ㄓㄧ.
|
|
123
|
+
*
|
|
124
|
+
* The i of zhi, chi, shi, ri, zi, ci and si is not the i of ji at all — it is
|
|
125
|
+
* the syllabic continuation of the initial (空韻), and bopomofo simply does not
|
|
126
|
+
* write it. This is the one place the correspondence is not one symbol per
|
|
127
|
+
* part.
|
|
128
|
+
*/
|
|
129
|
+
export const EMPTY_RHYME_INITIALS = new Set([
|
|
130
|
+
"zh",
|
|
131
|
+
"ch",
|
|
132
|
+
"sh",
|
|
133
|
+
"r",
|
|
134
|
+
"z",
|
|
135
|
+
"c",
|
|
136
|
+
"s",
|
|
137
|
+
]);
|
|
138
|
+
/**
|
|
139
|
+
* The symbol 儿化 is written with.
|
|
140
|
+
*
|
|
141
|
+
* ㄦ, the same letter as the rhyme of 兒 ér itself, which is why reading it
|
|
142
|
+
* takes the position into account: see {@link parseSymbols}.
|
|
143
|
+
*/
|
|
144
|
+
export const ERHUA_SYMBOL = "ㄦ";
|
|
145
|
+
/**
|
|
146
|
+
* The mark each tone takes.
|
|
147
|
+
*
|
|
148
|
+
* The neutral tone's dot goes *before* the syllable and the other four go
|
|
149
|
+
* after — but **before a 儿化 ㄦ rather than after it**: 哪儿 nǎr is ㄋㄚˇㄦ and
|
|
150
|
+
* 玩儿 wánr is ㄨㄢˊㄦ. The mark belongs to the syllable's nucleus, and the
|
|
151
|
+
* suffix is not part of what it marks. Wikipedia's *Bopomofo*, citing 教育部's
|
|
152
|
+
* 國語注音符號手冊, says so outright, and it is what 教育部's dictionaries and
|
|
153
|
+
* Wiktionary both write.
|
|
154
|
+
*/
|
|
155
|
+
export const TONE_MARKS = new Map([
|
|
156
|
+
[1, "ˉ"],
|
|
157
|
+
[2, "ˊ"],
|
|
158
|
+
[3, "ˇ"],
|
|
159
|
+
[4, "ˋ"],
|
|
160
|
+
[NEUTRAL_TONE, "˙"],
|
|
161
|
+
]);
|
|
162
|
+
/**
|
|
163
|
+
* The tone each mark stands for, including the shapes a keyboard produces.
|
|
164
|
+
*
|
|
165
|
+
* Tolerant input and standard output, as the rest of the package has: `´` and
|
|
166
|
+
* `` ` `` are the ASCII neighbours of ˊ and ˋ, and are what text that was typed
|
|
167
|
+
* rather than composed tends to carry.
|
|
168
|
+
*/
|
|
169
|
+
export const TONES_BY_MARK = new Map([
|
|
170
|
+
["ˉ", 1],
|
|
171
|
+
["¯", 1],
|
|
172
|
+
["ˊ", 2],
|
|
173
|
+
["´", 2],
|
|
174
|
+
["ˇ", 3],
|
|
175
|
+
["ˋ", 4],
|
|
176
|
+
["`", 4],
|
|
177
|
+
["˙", NEUTRAL_TONE],
|
|
178
|
+
["·", NEUTRAL_TONE],
|
|
179
|
+
]);
|
|
180
|
+
//# sourceMappingURL=bopomofo-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo-tables.js","sourceRoot":"","sources":["../../src/transcription/bopomofo-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,21 @@
|
|
|
1
|
-
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
-
/**
|
|
3
|
-
* How the first tone is written.
|
|
4
|
-
*
|
|
5
|
-
* Standard bopomofo leaves it unmarked, which is why `none` is the default. The
|
|
6
|
-
* cost is that a syllable whose tone was never written comes back as a first
|
|
7
|
-
* tone, since bopomofo has no way to say "no tone at all"; `mark` writes ˉ and
|
|
8
|
-
* keeps the two apart.
|
|
9
|
-
*/
|
|
10
|
-
export interface BopomofoOptions {
|
|
11
|
-
readonly firstTone?: "mark" | "none";
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Write a syllable in bopomofo: 就 jiù becomes ㄐㄧㄡˋ.
|
|
15
|
-
*
|
|
16
|
-
* Total over well-formed syllables — every initial and every final has a
|
|
17
|
-
* symbol — so anything the syllable parser accepts can be written, including
|
|
18
|
-
* the syllables no dictionary uses.
|
|
19
|
-
*/
|
|
20
|
-
export declare function writeBopomofo(syllable: Syllable, options?: BopomofoOptions): string;
|
|
21
1
|
/**
|
|
22
|
-
*
|
|
2
|
+
* Bopomofo (注音符號), in both directions.
|
|
23
3
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*
|
|
4
|
+
* This is the easy half of romanisation interchange, and the reason is
|
|
5
|
+
* [phonology.ts](../syllable/phonology.ts): a parsed syllable already holds the
|
|
6
|
+
* underlying initial and final rather than the spelling, and bopomofo writes
|
|
7
|
+
* exactly those. 就 is
|
|
8
|
+
* `j` + `iou` and ㄐㄧㄡ; 军 is `j` + `ün` and ㄐㄩㄣ; 中 is `zh` + `ong` and
|
|
9
|
+
* ㄓㄨㄥ. Nothing here undoes a pinyin spelling rule, because `readSyllable`
|
|
10
|
+
* never applied one.
|
|
31
11
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
12
|
+
* So the mapping is compositional — an initial symbol, a medial symbol and a
|
|
13
|
+
* rhyme symbol — and it is a bijection over the whole syllable inventory. The
|
|
14
|
+
* three places it is not quite mechanical are recorded on the tables below.
|
|
35
15
|
*/
|
|
36
|
-
|
|
16
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
17
|
+
export { type BopomofoOptions, writeBopomofo, writeBopomofoWord, } from "./bopomofo-symbols.js";
|
|
18
|
+
export { isBopomofo } from "./bopomofo-reverse.js";
|
|
37
19
|
/**
|
|
38
20
|
* Read a bopomofo syllable: ㄐㄧㄡˋ becomes 就 jiù.
|
|
39
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bopomofo.d.ts","sourceRoot":"","sources":["../../src/transcription/bopomofo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bopomofo.d.ts","sourceRoot":"","sources":["../../src/transcription/bopomofo.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,KAAK,eAAe,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAoCnD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAS/D"}
|