@kensio/pinyinjs 1.7.3 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accuracy/score-case.d.ts +23 -0
- package/dist/accuracy/score-case.d.ts.map +1 -0
- package/dist/accuracy/score-case.js +63 -0
- package/dist/accuracy/score-case.js.map +1 -0
- package/dist/accuracy/score.d.ts +1 -8
- package/dist/accuracy/score.d.ts.map +1 -1
- package/dist/accuracy/score.js +1 -55
- package/dist/accuracy/score.js.map +1 -1
- package/dist/cli/arguments.d.ts +4 -290
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +5 -357
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/check-command.d.ts +9 -0
- package/dist/cli/check-command.d.ts.map +1 -0
- package/dist/cli/check-command.js +95 -0
- package/dist/cli/check-command.js.map +1 -0
- package/dist/cli/cli-input.d.ts +49 -0
- package/dist/cli/cli-input.d.ts.map +1 -0
- package/dist/cli/cli-input.js +31 -0
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/command.d.ts +97 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +40 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -110
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +14 -991
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/convert-command.d.ts +6 -0
- package/dist/cli/convert-command.d.ts.map +1 -0
- package/dist/cli/convert-command.js +52 -0
- package/dist/cli/convert-command.js.map +1 -0
- package/dist/cli/environment.d.ts +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/explain-command.d.ts +6 -0
- package/dist/cli/explain-command.d.ts.map +1 -0
- package/dist/cli/explain-command.js +40 -0
- package/dist/cli/explain-command.js.map +1 -0
- package/dist/cli/explain-syllable.d.ts +10 -0
- package/dist/cli/explain-syllable.d.ts.map +1 -0
- package/dist/cli/explain-syllable.js +70 -0
- package/dist/cli/explain-syllable.js.map +1 -0
- package/dist/cli/flag-help.d.ts +18 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +78 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/flag-lists.d.ts +49 -0
- package/dist/cli/flag-lists.d.ts.map +1 -0
- package/dist/cli/flag-lists.js +58 -0
- package/dist/cli/flag-lists.js.map +1 -0
- package/dist/cli/flag-values.d.ts +44 -0
- package/dist/cli/flag-values.d.ts.map +1 -0
- package/dist/cli/flag-values.js +56 -0
- package/dist/cli/flag-values.js.map +1 -0
- package/dist/cli/flags.d.ts +193 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +133 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/format-options.d.ts +29 -0
- package/dist/cli/format-options.d.ts.map +1 -0
- package/dist/cli/format-options.js +72 -0
- package/dist/cli/format-options.js.map +1 -0
- package/dist/cli/global-help.d.ts +23 -0
- package/dist/cli/global-help.d.ts.map +1 -0
- package/dist/cli/global-help.js +40 -0
- package/dist/cli/global-help.js.map +1 -0
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -99
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/html-commands.d.ts +13 -0
- package/dist/cli/html-commands.d.ts.map +1 -0
- package/dist/cli/html-commands.js +49 -0
- package/dist/cli/html-commands.js.map +1 -0
- package/dist/cli/info-command.d.ts +7 -0
- package/dist/cli/info-command.d.ts.map +1 -0
- package/dist/cli/info-command.js +39 -0
- package/dist/cli/info-command.js.map +1 -0
- package/dist/cli/lookup-commands.d.ts +10 -0
- package/dist/cli/lookup-commands.d.ts.map +1 -0
- package/dist/cli/lookup-commands.js +101 -0
- package/dist/cli/lookup-commands.js.map +1 -0
- package/dist/cli/match-command.d.ts +11 -0
- package/dist/cli/match-command.d.ts.map +1 -0
- package/dist/cli/match-command.js +76 -0
- package/dist/cli/match-command.js.map +1 -0
- package/dist/cli/number-command.d.ts +12 -0
- package/dist/cli/number-command.d.ts.map +1 -0
- package/dist/cli/number-command.js +89 -0
- package/dist/cli/number-command.js.map +1 -0
- package/dist/cli/options.d.ts +30 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +54 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run-command.d.ts +24 -0
- package/dist/cli/run-command.d.ts.map +1 -0
- package/dist/cli/run-command.js +40 -0
- package/dist/cli/run-command.js.map +1 -0
- package/dist/cli/run.d.ts +4 -42
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -61
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script-command.d.ts +10 -0
- package/dist/cli/script-command.d.ts.map +1 -0
- package/dist/cli/script-command.js +58 -0
- package/dist/cli/script-command.js.map +1 -0
- package/dist/cli/segment-command.d.ts +11 -0
- package/dist/cli/segment-command.d.ts.map +1 -0
- package/dist/cli/segment-command.js +53 -0
- package/dist/cli/segment-command.js.map +1 -0
- package/dist/cli/slug-command.d.ts +10 -0
- package/dist/cli/slug-command.d.ts.map +1 -0
- package/dist/cli/slug-command.js +28 -0
- package/dist/cli/slug-command.js.map +1 -0
- package/dist/cli/syllable-command.d.ts +14 -0
- package/dist/cli/syllable-command.d.ts.map +1 -0
- package/dist/cli/syllable-command.js +82 -0
- package/dist/cli/syllable-command.js.map +1 -0
- package/dist/cli/system-table.d.ts +12 -0
- package/dist/cli/system-table.d.ts.map +1 -0
- package/dist/cli/system-table.js +48 -0
- package/dist/cli/system-table.js.map +1 -0
- package/dist/cli/systems.d.ts +57 -0
- package/dist/cli/systems.d.ts.map +1 -0
- package/dist/cli/systems.js +27 -0
- package/dist/cli/systems.js.map +1 -0
- package/dist/cli/transcribe-command.d.ts +18 -0
- package/dist/cli/transcribe-command.d.ts.map +1 -0
- package/dist/cli/transcribe-command.js +86 -0
- package/dist/cli/transcribe-command.js.map +1 -0
- package/dist/cli/transcribe-reading.d.ts +15 -0
- package/dist/cli/transcribe-reading.d.ts.map +1 -0
- package/dist/cli/transcribe-reading.js +90 -0
- package/dist/cli/transcribe-reading.js.map +1 -0
- package/dist/cli/transcribe-rows.d.ts +26 -0
- package/dist/cli/transcribe-rows.d.ts.map +1 -0
- package/dist/cli/transcribe-rows.js +30 -0
- package/dist/cli/transcribe-rows.js.map +1 -0
- package/dist/cli/usage-error.d.ts +9 -0
- package/dist/cli/usage-error.d.ts.map +1 -0
- package/dist/cli/usage-error.js +9 -0
- package/dist/cli/usage-error.js.map +1 -0
- package/dist/decode/alternatives.d.ts +16 -0
- package/dist/decode/alternatives.d.ts.map +1 -0
- package/dist/decode/alternatives.js +31 -0
- package/dist/decode/alternatives.js.map +1 -0
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +3 -118
- package/dist/decode/confidence.js.map +1 -1
- package/dist/decode/convert-options.d.ts +116 -0
- package/dist/decode/convert-options.d.ts.map +1 -0
- package/dist/decode/convert-options.js +2 -0
- package/dist/decode/convert-options.js.map +1 -0
- package/dist/decode/convert-pipeline.d.ts +18 -0
- package/dist/decode/convert-pipeline.d.ts.map +1 -0
- package/dist/decode/convert-pipeline.js +66 -0
- package/dist/decode/convert-pipeline.js.map +1 -0
- package/dist/decode/convert.d.ts +9 -118
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +5 -453
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/decode.d.ts +2 -15
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +2 -121
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/decoders.d.ts +32 -0
- package/dist/decode/decoders.d.ts.map +1 -0
- package/dist/decode/decoders.js +29 -0
- package/dist/decode/decoders.js.map +1 -0
- package/dist/decode/edge-context.d.ts +38 -0
- package/dist/decode/edge-context.d.ts.map +1 -0
- package/dist/decode/edge-context.js +57 -0
- package/dist/decode/edge-context.js.map +1 -0
- package/dist/decode/hint-lattice.d.ts +45 -0
- package/dist/decode/hint-lattice.d.ts.map +1 -0
- package/dist/decode/hint-lattice.js +140 -0
- package/dist/decode/hint-lattice.js.map +1 -0
- package/dist/decode/hints.d.ts +2 -45
- package/dist/decode/hints.d.ts.map +1 -1
- package/dist/decode/hints.js +1 -139
- package/dist/decode/hints.js.map +1 -1
- package/dist/decode/jiao-rule.d.ts +58 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +76 -0
- package/dist/decode/jiao-rule.js.map +1 -0
- package/dist/decode/lattice-costs.d.ts +55 -0
- package/dist/decode/lattice-costs.d.ts.map +1 -0
- package/dist/decode/lattice-costs.js +90 -0
- package/dist/decode/lattice-costs.js.map +1 -0
- package/dist/decode/lattice-edges.d.ts +29 -0
- package/dist/decode/lattice-edges.d.ts.map +1 -0
- package/dist/decode/lattice-edges.js +78 -0
- package/dist/decode/lattice-edges.js.map +1 -0
- package/dist/decode/lattice-slice.d.ts +37 -0
- package/dist/decode/lattice-slice.d.ts.map +1 -0
- package/dist/decode/lattice-slice.js +43 -0
- package/dist/decode/lattice-slice.js.map +1 -0
- package/dist/decode/lattice-types.d.ts +82 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +44 -0
- package/dist/decode/lattice-types.js.map +1 -0
- package/dist/decode/lattice.d.ts +2 -59
- package/dist/decode/lattice.d.ts.map +1 -1
- package/dist/decode/lattice.js +2 -118
- package/dist/decode/lattice.js.map +1 -1
- package/dist/decode/number-pieces.d.ts +62 -0
- package/dist/decode/number-pieces.d.ts.map +1 -0
- package/dist/decode/number-pieces.js +106 -0
- package/dist/decode/number-pieces.js.map +1 -0
- package/dist/decode/numbers.d.ts +53 -0
- package/dist/decode/numbers.d.ts.map +1 -0
- package/dist/decode/numbers.js +69 -0
- package/dist/decode/numbers.js.map +1 -0
- package/dist/decode/pieces.d.ts +78 -0
- package/dist/decode/pieces.d.ts.map +1 -0
- package/dist/decode/pieces.js +136 -0
- package/dist/decode/pieces.js.map +1 -0
- package/dist/decode/polyphone-rules.d.ts +31 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +159 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +2 -97
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +4 -365
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/rules.d.ts +1 -17
- package/dist/decode/rules.d.ts.map +1 -1
- package/dist/decode/rules.js +1 -43
- package/dist/decode/rules.js.map +1 -1
- package/dist/decode/run-lattice.d.ts +52 -0
- package/dist/decode/run-lattice.d.ts.map +1 -0
- package/dist/decode/run-lattice.js +91 -0
- package/dist/decode/run-lattice.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +69 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +88 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +1 -1
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +1 -81
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/script-types.d.ts +76 -0
- package/dist/decode/script-types.d.ts.map +1 -0
- package/dist/decode/script-types.js +35 -0
- package/dist/decode/script-types.js.map +1 -0
- package/dist/decode/script-words.d.ts +32 -0
- package/dist/decode/script-words.d.ts.map +1 -0
- package/dist/decode/script-words.js +77 -0
- package/dist/decode/script-words.js.map +1 -0
- package/dist/decode/script.d.ts +3 -73
- package/dist/decode/script.d.ts.map +1 -1
- package/dist/decode/script.js +3 -109
- package/dist/decode/script.js.map +1 -1
- package/dist/decode/tan-rule.d.ts +68 -0
- package/dist/decode/tan-rule.d.ts.map +1 -0
- package/dist/decode/tan-rule.js +131 -0
- package/dist/decode/tan-rule.js.map +1 -0
- package/dist/decode/write-run.d.ts +28 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +77 -0
- package/dist/decode/write-run.js.map +1 -0
- package/dist/dictionary/artifact-claims.d.ts +25 -0
- package/dist/dictionary/artifact-claims.d.ts.map +1 -0
- package/dist/dictionary/artifact-claims.js +47 -0
- package/dist/dictionary/artifact-claims.js.map +1 -0
- package/dist/dictionary/artifact-format.d.ts +86 -0
- package/dist/dictionary/artifact-format.d.ts.map +1 -0
- package/dist/dictionary/artifact-format.js +91 -0
- package/dist/dictionary/artifact-format.js.map +1 -0
- package/dist/dictionary/artifact-read.d.ts +34 -0
- package/dist/dictionary/artifact-read.d.ts.map +1 -0
- package/dist/dictionary/artifact-read.js +114 -0
- package/dist/dictionary/artifact-read.js.map +1 -0
- package/dist/dictionary/artifact.d.ts +4 -63
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +12 -229
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/assertions.d.ts +5 -57
- package/dist/dictionary/assertions.d.ts.map +1 -1
- package/dist/dictionary/assertions.js +4 -317
- package/dist/dictionary/assertions.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts +12 -0
- package/dist/dictionary/build-assertions.d.ts.map +1 -0
- package/dist/dictionary/build-assertions.js +13 -0
- package/dist/dictionary/build-assertions.js.map +1 -0
- package/dist/dictionary/built-dictionary.d.ts +46 -0
- package/dist/dictionary/built-dictionary.d.ts.map +1 -0
- package/dist/dictionary/built-dictionary.js +97 -0
- package/dist/dictionary/built-dictionary.js.map +1 -0
- package/dist/dictionary/cedict-senses.d.ts +80 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +114 -0
- package/dist/dictionary/cedict-senses.js.map +1 -0
- package/dist/dictionary/character-defaults.d.ts +26 -0
- package/dist/dictionary/character-defaults.d.ts.map +1 -0
- package/dist/dictionary/character-defaults.js +67 -0
- package/dist/dictionary/character-defaults.js.map +1 -0
- package/dist/dictionary/character-readings.d.ts +10 -0
- package/dist/dictionary/character-readings.d.ts.map +1 -0
- package/dist/dictionary/character-readings.js +25 -0
- package/dist/dictionary/character-readings.js.map +1 -0
- package/dist/dictionary/dictionary-entry.d.ts +37 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
- package/dist/dictionary/dictionary-entry.js +41 -0
- package/dist/dictionary/dictionary-entry.js.map +1 -0
- package/dist/dictionary/dictionary-readings.d.ts +56 -0
- package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
- package/dist/dictionary/dictionary-readings.js +93 -0
- package/dist/dictionary/dictionary-readings.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +6 -60
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +9 -169
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +3 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -0
- package/dist/dictionary/entry-invariants.js +67 -0
- package/dist/dictionary/entry-invariants.js.map +1 -0
- package/dist/dictionary/entry-lines.d.ts +35 -0
- package/dist/dictionary/entry-lines.d.ts.map +1 -0
- package/dist/dictionary/entry-lines.js +70 -0
- package/dist/dictionary/entry-lines.js.map +1 -0
- package/dist/dictionary/erhua-repair.d.ts +26 -0
- package/dist/dictionary/erhua-repair.d.ts.map +1 -0
- package/dist/dictionary/erhua-repair.js +49 -0
- package/dist/dictionary/erhua-repair.js.map +1 -0
- package/dist/dictionary/frequency-tones.d.ts +74 -0
- package/dist/dictionary/frequency-tones.d.ts.map +1 -0
- package/dist/dictionary/frequency-tones.js +128 -0
- package/dist/dictionary/frequency-tones.js.map +1 -0
- package/dist/dictionary/inventory-invariants.d.ts +3 -0
- package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
- package/dist/dictionary/inventory-invariants.js +54 -0
- package/dist/dictionary/inventory-invariants.js.map +1 -0
- package/dist/dictionary/locale-candidates.d.ts +40 -0
- package/dist/dictionary/locale-candidates.d.ts.map +1 -0
- package/dist/dictionary/locale-candidates.js +77 -0
- package/dist/dictionary/locale-candidates.js.map +1 -0
- package/dist/dictionary/locale-segments.d.ts +47 -0
- package/dist/dictionary/locale-segments.d.ts.map +1 -0
- package/dist/dictionary/locale-segments.js +141 -0
- package/dist/dictionary/locale-segments.js.map +1 -0
- package/dist/dictionary/locale.d.ts +1 -21
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +9 -198
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +121 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -0
- package/dist/dictionary/merge-types.js +35 -0
- package/dist/dictionary/merge-types.js.map +1 -0
- package/dist/dictionary/merge-word.d.ts +7 -0
- package/dist/dictionary/merge-word.d.ts.map +1 -0
- package/dist/dictionary/merge-word.js +91 -0
- package/dist/dictionary/merge-word.js.map +1 -0
- package/dist/dictionary/merge.d.ts +5 -62
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +30 -713
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +28 -0
- package/dist/dictionary/proper-noun.d.ts.map +1 -0
- package/dist/dictionary/proper-noun.js +43 -0
- package/dist/dictionary/proper-noun.js.map +1 -0
- package/dist/dictionary/reading-agreement.d.ts +71 -0
- package/dist/dictionary/reading-agreement.d.ts.map +1 -0
- package/dist/dictionary/reading-agreement.js +156 -0
- package/dist/dictionary/reading-agreement.js.map +1 -0
- package/dist/dictionary/script-conversion.d.ts +28 -0
- package/dist/dictionary/script-conversion.d.ts.map +1 -0
- package/dist/dictionary/script-conversion.js +58 -0
- package/dist/dictionary/script-conversion.js.map +1 -0
- package/dist/dictionary/script-pairings.d.ts +74 -0
- package/dist/dictionary/script-pairings.d.ts.map +1 -0
- package/dist/dictionary/script-pairings.js +120 -0
- package/dist/dictionary/script-pairings.js.map +1 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -1
- package/dist/dictionary/script-tables.js +2 -165
- package/dist/dictionary/script-tables.js.map +1 -1
- package/dist/dictionary/taiwan-reading.d.ts +8 -0
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
- package/dist/dictionary/taiwan-reading.js +38 -0
- package/dist/dictionary/taiwan-reading.js.map +1 -0
- package/dist/dictionary/tone-invariants.d.ts +3 -0
- package/dist/dictionary/tone-invariants.d.ts.map +1 -0
- package/dist/dictionary/tone-invariants.js +64 -0
- package/dist/dictionary/tone-invariants.js.map +1 -0
- package/dist/dictionary/traditional-form.d.ts +21 -0
- package/dist/dictionary/traditional-form.d.ts.map +1 -0
- package/dist/dictionary/traditional-form.js +59 -0
- package/dist/dictionary/traditional-form.js.map +1 -0
- package/dist/dictionary/traditional-ranking.d.ts +22 -0
- package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
- package/dist/dictionary/traditional-ranking.js +74 -0
- package/dist/dictionary/traditional-ranking.js.map +1 -0
- package/dist/dictionary/traditional-table.d.ts +51 -0
- package/dist/dictionary/traditional-table.d.ts.map +1 -0
- package/dist/dictionary/traditional-table.js +98 -0
- package/dist/dictionary/traditional-table.js.map +1 -0
- package/dist/dictionary/traditional.d.ts +3 -56
- package/dist/dictionary/traditional.d.ts.map +1 -1
- package/dist/dictionary/traditional.js +3 -186
- package/dist/dictionary/traditional.js.map +1 -1
- package/dist/dictionary/variant-counts.d.ts +39 -0
- package/dist/dictionary/variant-counts.d.ts.map +1 -0
- package/dist/dictionary/variant-counts.js +38 -0
- package/dist/dictionary/variant-counts.js.map +1 -0
- package/dist/dictionary/word-reading.d.ts +26 -0
- package/dist/dictionary/word-reading.d.ts.map +1 -0
- package/dist/dictionary/word-reading.js +76 -0
- package/dist/dictionary/word-reading.js.map +1 -0
- package/dist/dictionary/word-readings.d.ts +15 -0
- package/dist/dictionary/word-readings.d.ts.map +1 -0
- package/dist/dictionary/word-readings.js +38 -0
- package/dist/dictionary/word-readings.js.map +1 -0
- package/dist/format/annotate.d.ts +90 -0
- package/dist/format/annotate.d.ts.map +1 -0
- package/dist/format/annotate.js +168 -0
- package/dist/format/annotate.js.map +1 -0
- package/dist/format/html.d.ts +15 -46
- package/dist/format/html.d.ts.map +1 -1
- package/dist/format/html.js +3 -162
- package/dist/format/html.js.map +1 -1
- package/dist/format/slug-hash.d.ts +51 -0
- package/dist/format/slug-hash.d.ts.map +1 -0
- package/dist/format/slug-hash.js +74 -0
- package/dist/format/slug-hash.js.map +1 -0
- package/dist/format/slug-options.d.ts +98 -0
- package/dist/format/slug-options.d.ts.map +1 -0
- package/dist/format/slug-options.js +2 -0
- package/dist/format/slug-options.js.map +1 -0
- package/dist/format/slug-words.d.ts +27 -0
- package/dist/format/slug-words.d.ts.map +1 -0
- package/dist/format/slug-words.js +0 -0
- package/dist/format/slug-words.js.map +1 -0
- package/dist/format/slug.d.ts +3 -128
- package/dist/format/slug.d.ts.map +1 -1
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -1
- package/dist/grade/check-readings.d.ts +41 -0
- package/dist/grade/check-readings.d.ts.map +1 -0
- package/dist/grade/check-readings.js +36 -0
- package/dist/grade/check-readings.js.map +1 -0
- package/dist/grade/check.d.ts +4 -4
- package/dist/grade/check.d.ts.map +1 -1
- package/dist/grade/check.js +5 -270
- package/dist/grade/check.js.map +1 -1
- package/dist/grade/pair-syllables.d.ts +48 -0
- package/dist/grade/pair-syllables.d.ts.map +1 -0
- package/dist/grade/pair-syllables.js +71 -0
- package/dist/grade/pair-syllables.js.map +1 -0
- package/dist/grade/reading-syllables.d.ts +62 -0
- package/dist/grade/reading-syllables.d.ts.map +1 -0
- package/dist/grade/reading-syllables.js +58 -0
- package/dist/grade/reading-syllables.js.map +1 -0
- package/dist/grade/reading-tolerance.d.ts +72 -0
- package/dist/grade/reading-tolerance.d.ts.map +1 -0
- package/dist/grade/reading-tolerance.js +107 -0
- package/dist/grade/reading-tolerance.js.map +1 -0
- package/dist/grade/typed-reading.d.ts +28 -0
- package/dist/grade/typed-reading.d.ts.map +1 -0
- package/dist/grade/typed-reading.js +36 -0
- package/dist/grade/typed-reading.js.map +1 -0
- package/dist/numerals/numeral-parse.d.ts +32 -0
- package/dist/numerals/numeral-parse.d.ts.map +1 -0
- package/dist/numerals/numeral-parse.js +44 -0
- package/dist/numerals/numeral-parse.js.map +1 -0
- package/dist/numerals/numeral-shapes.d.ts +89 -0
- package/dist/numerals/numeral-shapes.d.ts.map +1 -0
- package/dist/numerals/numeral-shapes.js +99 -0
- package/dist/numerals/numeral-shapes.js.map +1 -0
- package/dist/numerals/numerals.d.ts.map +1 -1
- package/dist/numerals/numerals.js +2 -36
- package/dist/numerals/numerals.js.map +1 -1
- package/dist/numerals/read-numeral.d.ts +76 -0
- package/dist/numerals/read-numeral.d.ts.map +1 -0
- package/dist/numerals/read-numeral.js +88 -0
- package/dist/numerals/read-numeral.js.map +1 -0
- package/dist/numerals/text.d.ts +3 -37
- package/dist/numerals/text.d.ts.map +1 -1
- package/dist/numerals/text.js +3 -254
- package/dist/numerals/text.js.map +1 -1
- package/dist/numerals/time.d.ts +34 -0
- package/dist/numerals/time.d.ts.map +1 -0
- package/dist/numerals/time.js +93 -0
- package/dist/numerals/time.js.map +1 -0
- package/dist/orthography/address-grouping.d.ts +34 -0
- package/dist/orthography/address-grouping.d.ts.map +1 -0
- package/dist/orthography/address-grouping.js +52 -0
- package/dist/orthography/address-grouping.js.map +1 -0
- package/dist/orthography/grouping.d.ts +3 -87
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +4 -270
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/place-grouping.d.ts +39 -0
- package/dist/orthography/place-grouping.d.ts.map +1 -0
- package/dist/orthography/place-grouping.js +83 -0
- package/dist/orthography/place-grouping.js.map +1 -0
- package/dist/orthography/word-grouping.d.ts +48 -0
- package/dist/orthography/word-grouping.d.ts.map +1 -0
- package/dist/orthography/word-grouping.js +147 -0
- package/dist/orthography/word-grouping.js.map +1 -0
- package/dist/script/conversion-format.d.ts +22 -0
- package/dist/script/conversion-format.d.ts.map +1 -0
- package/dist/script/conversion-format.js +22 -0
- package/dist/script/conversion-format.js.map +1 -0
- package/dist/script/conversion-read.d.ts +9 -0
- package/dist/script/conversion-read.d.ts.map +1 -0
- package/dist/script/conversion-read.js +69 -0
- package/dist/script/conversion-read.js.map +1 -0
- package/dist/script/conversion-write.d.ts +14 -0
- package/dist/script/conversion-write.d.ts.map +1 -0
- package/dist/script/conversion-write.js +34 -0
- package/dist/script/conversion-write.js.map +1 -0
- package/dist/script/conversion.d.ts +10 -16
- package/dist/script/conversion.d.ts.map +1 -1
- package/dist/script/conversion.js +2 -115
- package/dist/script/conversion.js.map +1 -1
- package/dist/search/candidate-narrowing.d.ts +56 -0
- package/dist/search/candidate-narrowing.d.ts.map +1 -0
- package/dist/search/candidate-narrowing.js +55 -0
- package/dist/search/candidate-narrowing.js.map +1 -0
- package/dist/search/candidate-query.d.ts +25 -0
- package/dist/search/candidate-query.d.ts.map +1 -0
- package/dist/search/candidate-query.js +28 -0
- package/dist/search/candidate-query.js.map +1 -0
- package/dist/search/candidate-writings.d.ts +24 -0
- package/dist/search/candidate-writings.d.ts.map +1 -0
- package/dist/search/candidate-writings.js +114 -0
- package/dist/search/candidate-writings.js.map +1 -0
- package/dist/search/candidates.d.ts +7 -41
- package/dist/search/candidates.d.ts.map +1 -1
- package/dist/search/candidates.js +10 -164
- package/dist/search/candidates.js.map +1 -1
- package/dist/search/match-chunks.d.ts +19 -0
- package/dist/search/match-chunks.d.ts.map +1 -0
- package/dist/search/match-chunks.js +30 -0
- package/dist/search/match-chunks.js.map +1 -0
- package/dist/search/match-ranking.d.ts +39 -0
- package/dist/search/match-ranking.d.ts.map +1 -0
- package/dist/search/match-ranking.js +51 -0
- package/dist/search/match-ranking.js.map +1 -0
- package/dist/search/match-readings.d.ts +43 -0
- package/dist/search/match-readings.d.ts.map +1 -0
- package/dist/search/match-readings.js +83 -0
- package/dist/search/match-readings.js.map +1 -0
- package/dist/search/match-scoring.d.ts +146 -0
- package/dist/search/match-scoring.d.ts.map +1 -0
- package/dist/search/match-scoring.js +114 -0
- package/dist/search/match-scoring.js.map +1 -0
- package/dist/search/match-search.d.ts +28 -0
- package/dist/search/match-search.d.ts.map +1 -0
- package/dist/search/match-search.js +128 -0
- package/dist/search/match-search.js.map +1 -0
- package/dist/search/match.d.ts +5 -36
- package/dist/search/match.d.ts.map +1 -1
- package/dist/search/match.js +2 -379
- package/dist/search/match.js.map +1 -1
- package/dist/search/reverse-index-build.d.ts +30 -0
- package/dist/search/reverse-index-build.d.ts.map +1 -0
- package/dist/search/reverse-index-build.js +72 -0
- package/dist/search/reverse-index-build.js.map +1 -0
- package/dist/search/reverse-index-format.d.ts +60 -0
- package/dist/search/reverse-index-format.d.ts.map +1 -0
- package/dist/search/reverse-index-format.js +54 -0
- package/dist/search/reverse-index-format.js.map +1 -0
- package/dist/search/reverse-index-groups.d.ts +37 -0
- package/dist/search/reverse-index-groups.d.ts.map +1 -0
- package/dist/search/reverse-index-groups.js +71 -0
- package/dist/search/reverse-index-groups.js.map +1 -0
- package/dist/search/reverse-index-passes.d.ts +78 -0
- package/dist/search/reverse-index-passes.d.ts.map +1 -0
- package/dist/search/reverse-index-passes.js +59 -0
- package/dist/search/reverse-index-passes.js.map +1 -0
- package/dist/search/reverse-index-state.d.ts +36 -0
- package/dist/search/reverse-index-state.d.ts.map +1 -0
- package/dist/search/reverse-index-state.js +95 -0
- package/dist/search/reverse-index-state.js.map +1 -0
- package/dist/search/reverse-index.d.ts +8 -67
- package/dist/search/reverse-index.d.ts.map +1 -1
- package/dist/search/reverse-index.js +4 -255
- package/dist/search/reverse-index.js.map +1 -1
- package/dist/sources/unihan-readings.d.ts +58 -0
- package/dist/sources/unihan-readings.d.ts.map +1 -0
- package/dist/sources/unihan-readings.js +95 -0
- package/dist/sources/unihan-readings.js.map +1 -0
- package/dist/sources/unihan.d.ts +6 -9
- package/dist/sources/unihan.d.ts.map +1 -1
- package/dist/sources/unihan.js +2 -85
- package/dist/sources/unihan.js.map +1 -1
- package/dist/syllable/final-tables.d.ts +23 -0
- package/dist/syllable/final-tables.d.ts.map +1 -0
- package/dist/syllable/final-tables.js +50 -0
- package/dist/syllable/final-tables.js.map +1 -0
- package/dist/syllable/inventory.d.ts +8 -42
- package/dist/syllable/inventory.d.ts.map +1 -1
- package/dist/syllable/inventory.js +9 -918
- package/dist/syllable/inventory.js.map +1 -1
- package/dist/syllable/spellings.d.ts +40 -0
- package/dist/syllable/spellings.d.ts.map +1 -0
- package/dist/syllable/spellings.js +469 -0
- package/dist/syllable/spellings.js.map +1 -0
- package/dist/syllable/syllable-parts.d.ts +31 -0
- package/dist/syllable/syllable-parts.d.ts.map +1 -0
- package/dist/syllable/syllable-parts.js +105 -0
- package/dist/syllable/syllable-parts.js.map +1 -0
- package/dist/syllable/syllable.d.ts +1 -14
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +3 -144
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/syllable/written-tones.d.ts +6 -0
- package/dist/syllable/written-tones.d.ts.map +1 -0
- package/dist/syllable/written-tones.js +453 -0
- package/dist/syllable/written-tones.js.map +1 -0
- package/dist/transcription/bopomofo-parse.d.ts +42 -0
- package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-parse.js +92 -0
- package/dist/transcription/bopomofo-parse.js.map +1 -0
- package/dist/transcription/bopomofo-reverse.d.ts +31 -0
- package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-reverse.js +48 -0
- package/dist/transcription/bopomofo-reverse.js.map +1 -0
- package/dist/transcription/bopomofo-symbols.d.ts +36 -0
- package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
- package/dist/transcription/bopomofo-symbols.js +41 -0
- package/dist/transcription/bopomofo-symbols.js.map +1 -0
- package/dist/transcription/bopomofo-tables.d.ts +87 -0
- package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
- package/dist/transcription/bopomofo-tables.js +180 -0
- package/dist/transcription/bopomofo-tables.js.map +1 -0
- package/dist/transcription/bopomofo.d.ts +14 -32
- package/dist/transcription/bopomofo.d.ts.map +1 -1
- package/dist/transcription/bopomofo.js +5 -343
- package/dist/transcription/bopomofo.js.map +1 -1
- package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
- package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-first-second.js +75 -0
- package/dist/transcription/gwoyeu-first-second.js.map +1 -0
- package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
- package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-spelling.js +124 -0
- package/dist/transcription/gwoyeu-spelling.js.map +1 -0
- package/dist/transcription/gwoyeu-tables.d.ts +93 -0
- package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tables.js +205 -0
- package/dist/transcription/gwoyeu-tables.js.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
- package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
- package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
- package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-vowels.js +58 -0
- package/dist/transcription/gwoyeu-vowels.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +1 -26
- package/dist/transcription/gwoyeu.d.ts.map +1 -1
- package/dist/transcription/gwoyeu.js +2 -540
- package/dist/transcription/gwoyeu.js.map +1 -1
- package/dist/transcription/ipa-symbols.d.ts +67 -0
- package/dist/transcription/ipa-symbols.d.ts.map +1 -0
- package/dist/transcription/ipa-symbols.js +135 -0
- package/dist/transcription/ipa-symbols.js.map +1 -0
- package/dist/transcription/ipa.d.ts +2 -10
- package/dist/transcription/ipa.d.ts.map +1 -1
- package/dist/transcription/ipa.js +2 -134
- package/dist/transcription/ipa.js.map +1 -1
- package/dist/transcription/wade-giles-index.d.ts +35 -0
- package/dist/transcription/wade-giles-index.d.ts.map +1 -0
- package/dist/transcription/wade-giles-index.js +110 -0
- package/dist/transcription/wade-giles-index.js.map +1 -0
- package/dist/transcription/wade-giles-parse.d.ts +36 -0
- package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
- package/dist/transcription/wade-giles-parse.js +84 -0
- package/dist/transcription/wade-giles-parse.js.map +1 -0
- package/dist/transcription/wade-giles-spelling.d.ts +61 -0
- package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
- package/dist/transcription/wade-giles-spelling.js +107 -0
- package/dist/transcription/wade-giles-spelling.js.map +1 -0
- package/dist/transcription/wade-giles-syllable.d.ts +29 -0
- package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
- package/dist/transcription/wade-giles-syllable.js +90 -0
- package/dist/transcription/wade-giles-syllable.js.map +1 -0
- package/dist/transcription/wade-giles-tables.d.ts +80 -0
- package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
- package/dist/transcription/wade-giles-tables.js +178 -0
- package/dist/transcription/wade-giles-tables.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +9 -60
- package/dist/transcription/wade-giles.d.ts.map +1 -1
- package/dist/transcription/wade-giles.js +6 -543
- package/dist/transcription/wade-giles.js.map +1 -1
- package/dist/transcription/yale-tables.d.ts +54 -0
- package/dist/transcription/yale-tables.d.ts.map +1 -0
- package/dist/transcription/yale-tables.js +125 -0
- package/dist/transcription/yale-tables.js.map +1 -0
- package/dist/transcription/yale.d.ts.map +1 -1
- package/dist/transcription/yale.js +1 -124
- package/dist/transcription/yale.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,41 +1,7 @@
|
|
|
1
|
+
import { digitsHanzi, parse } from "./numeral-parse.js";
|
|
1
2
|
import { toCharacters } from "../script/characters.js";
|
|
2
3
|
import { cardinalHanzi, LARGEST_CARDINAL, } from "./cardinal.js";
|
|
3
|
-
import {
|
|
4
|
-
/**
|
|
5
|
-
* Anything this module will read: digits, optionally signed and pointed.
|
|
6
|
-
*
|
|
7
|
-
* `security/detect-unsafe-regex` flags the optional group after `\d+`, and the
|
|
8
|
-
* literal `.` in front of it means no input can be split between the two. Timed
|
|
9
|
-
* on a signed decimal that cannot match, it is linear to 128k characters.
|
|
10
|
-
*/
|
|
11
|
-
const NUMBER = /^(?<sign>-?)(?<whole>\d+)(?:\.(?<fraction>\d+))?$/u;
|
|
12
|
-
/**
|
|
13
|
-
* Take a number apart, keeping the digits exactly as they were written.
|
|
14
|
-
*
|
|
15
|
-
* A string rather than a number is the input that carries the most: `007` and
|
|
16
|
-
* `7` are the same quantity and different digits, and a room number keeps its
|
|
17
|
-
* zeros. A `number` is stringified first, which is why a caller who cares about
|
|
18
|
-
* leading zeros should pass the string.
|
|
19
|
-
*/
|
|
20
|
-
function parse(value) {
|
|
21
|
-
const found = NUMBER.exec(String(value))?.groups;
|
|
22
|
-
if (found === undefined) {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
isNegative: found["sign"] === "-",
|
|
27
|
-
whole: found["whole"] ?? "",
|
|
28
|
-
fraction: found["fraction"] ?? "",
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Write digits one at a time: 2019 → 二〇一九.
|
|
33
|
-
*/
|
|
34
|
-
function digitsHanzi(digits, zero) {
|
|
35
|
-
return toCharacters(digits)
|
|
36
|
-
.map((digit) => digit === "0" ? zero : (DIGIT_CHARACTERS[Number(digit)] ?? digit))
|
|
37
|
-
.join("");
|
|
38
|
-
}
|
|
4
|
+
import { numeralSyllable, yaoSyllable } from "./characters.js";
|
|
39
5
|
/**
|
|
40
6
|
* Write a number in 汉字: 12345 → 一万二千三百四十五, or 一二三四五.
|
|
41
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numerals.js","sourceRoot":"","sources":["../../src/numerals/numerals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"numerals.js","sourceRoot":"","sources":["../../src/numerals/numerals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
+
import { type NumeralOptions, type NumeralStyle } from "./numerals.js";
|
|
3
|
+
/**
|
|
4
|
+
* One stretch of text that was never Han, read or left as it was.
|
|
5
|
+
*/
|
|
6
|
+
export interface NumeralSegment {
|
|
7
|
+
/** The characters this covers, exactly as they were written. */
|
|
8
|
+
readonly text: string;
|
|
9
|
+
/** How it is said, where it was read as a number. */
|
|
10
|
+
readonly reading: readonly Syllable[] | undefined;
|
|
11
|
+
/** The 汉字 the number would be written with, where it was read. */
|
|
12
|
+
readonly hanzi: string | undefined;
|
|
13
|
+
/** How it was read, which decides whether sandhi applies to it. */
|
|
14
|
+
readonly style: NumeralStyle | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Where the words break, as a syllable count each.
|
|
17
|
+
*
|
|
18
|
+
* A counted whole number is one word and needs none of this. A time is three
|
|
19
|
+
* or four — 6:30 is `liù diǎn sānshí fēn`, where the hour and the minutes are
|
|
20
|
+
* numbers and 点 and 分 are not — and a decimal is a counted part and then a
|
|
21
|
+
* digit at a time: 75.5 is `qīshíwǔ diǎn wǔ`. Nothing in the syllables
|
|
22
|
+
* themselves says where those breaks are.
|
|
23
|
+
*/
|
|
24
|
+
readonly words?: readonly number[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Whether a number is read out digit by digit rather than counted.
|
|
28
|
+
*
|
|
29
|
+
* The one context where this is not a guess: a four-digit number in front of 年
|
|
30
|
+
* is a year, and a year is spelled out. Everything else is counted, which is
|
|
31
|
+
* what the overwhelming majority of digits in running text are — of 7,846 digit
|
|
32
|
+
* runs measured over Tatoeba and zh.wikipedia, the commonest things after them
|
|
33
|
+
* are 年, 月, 日, 人, 号, 点, 个 and 岁, and only the years want spelling out.
|
|
34
|
+
*/
|
|
35
|
+
export declare function styleFor(digits: string, following: string): NumeralStyle;
|
|
36
|
+
/**
|
|
37
|
+
* The Han either side of a stretch that was never Han.
|
|
38
|
+
*
|
|
39
|
+
* All the context a number in running text has. 年 makes 1998 a year, 个 makes
|
|
40
|
+
* 2 a count and 第 makes it an ordinal; nothing else about the text bears on
|
|
41
|
+
* how the digits are said.
|
|
42
|
+
*/
|
|
43
|
+
export interface NumeralContext {
|
|
44
|
+
/** The first character of the Han that follows, or the empty string. */
|
|
45
|
+
readonly following: string;
|
|
46
|
+
/** The last character of the Han before it, or the empty string. */
|
|
47
|
+
readonly preceding: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether a number is standing in front of something it counts.
|
|
51
|
+
*
|
|
52
|
+
* Only ever true of a number the following Han actually touches: in 2、3个 the
|
|
53
|
+
* 个 counts the 3 and there is a 、 between it and the 2, and in 2%的 the sign
|
|
54
|
+
* is what the digits belong to. `before` and `after` are the characters the
|
|
55
|
+
* digit run sits between, and a digit run with anything but Han after it is not
|
|
56
|
+
* in front of a 量词 at all.
|
|
57
|
+
*/
|
|
58
|
+
export declare function isInFrontOfCount(before: string, after: string, following: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Where a decimal breaks into words, or undefined where it is not one.
|
|
61
|
+
*
|
|
62
|
+
* The counted part keeps its grouping — 75.5 is `qīshíwǔ diǎn wǔ`, one word for
|
|
63
|
+
* the quantity, which is the same word 75 on its own is — and everything from
|
|
64
|
+
* the 点 onwards is read digit by digit, so the point and each digit after it
|
|
65
|
+
* stand alone: 3.14 is `sān diǎn yī sì`.
|
|
66
|
+
*/
|
|
67
|
+
export declare function decimalWords(hanzi: string): readonly number[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Read one number, with the sign that may follow it.
|
|
70
|
+
*/
|
|
71
|
+
export declare function readNumber(digits: string, isPercent: boolean, style: NumeralStyle, isCounting: boolean, options: NumeralOptions): NumeralSegment | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* A stretch that stays exactly as it was written.
|
|
74
|
+
*/
|
|
75
|
+
export declare function unread(text: string): NumeralSegment;
|
|
76
|
+
//# sourceMappingURL=read-numeral.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-numeral.d.ts","sourceRoot":"","sources":["../../src/numerals/read-numeral.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AASvB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClD,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IACzC;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAIxE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAQT;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAOzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,cAAc,GACtB,cAAc,GAAG,SAAS,CAuB5B;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEnD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading one run of digits into 汉字.
|
|
3
|
+
*
|
|
4
|
+
* A segment at a time: what the digits say, in what style, and whether the
|
|
5
|
+
* run before it changes either. `text.ts` walks the text and calls these.
|
|
6
|
+
*/
|
|
7
|
+
import { toCharacters } from "../script/characters.js";
|
|
8
|
+
import { numeralHanzi, percentHanzi, readNumeralHanzi, } from "./numerals.js";
|
|
9
|
+
import { LABELLED, ORDINAL, SMALL_UNITS, YEAR_DIGITS, } from "./numeral-shapes.js";
|
|
10
|
+
/**
|
|
11
|
+
* Whether a number is read out digit by digit rather than counted.
|
|
12
|
+
*
|
|
13
|
+
* The one context where this is not a guess: a four-digit number in front of 年
|
|
14
|
+
* is a year, and a year is spelled out. Everything else is counted, which is
|
|
15
|
+
* what the overwhelming majority of digits in running text are — of 7,846 digit
|
|
16
|
+
* runs measured over Tatoeba and zh.wikipedia, the commonest things after them
|
|
17
|
+
* are 年, 月, 日, 人, 号, 点, 个 and 岁, and only the years want spelling out.
|
|
18
|
+
*/
|
|
19
|
+
export function styleFor(digits, following) {
|
|
20
|
+
return following === "年" && digits.length === YEAR_DIGITS
|
|
21
|
+
? "digits"
|
|
22
|
+
: "cardinal";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Whether a number is standing in front of something it counts.
|
|
26
|
+
*
|
|
27
|
+
* Only ever true of a number the following Han actually touches: in 2、3个 the
|
|
28
|
+
* 个 counts the 3 and there is a 、 between it and the 2, and in 2%的 the sign
|
|
29
|
+
* is what the digits belong to. `before` and `after` are the characters the
|
|
30
|
+
* digit run sits between, and a digit run with anything but Han after it is not
|
|
31
|
+
* in front of a 量词 at all.
|
|
32
|
+
*/
|
|
33
|
+
export function isInFrontOfCount(before, after, following) {
|
|
34
|
+
return (after === "" &&
|
|
35
|
+
following !== "" &&
|
|
36
|
+
!LABELLED.has(following) &&
|
|
37
|
+
!SMALL_UNITS.has(following) &&
|
|
38
|
+
before !== ORDINAL);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Where a decimal breaks into words, or undefined where it is not one.
|
|
42
|
+
*
|
|
43
|
+
* The counted part keeps its grouping — 75.5 is `qīshíwǔ diǎn wǔ`, one word for
|
|
44
|
+
* the quantity, which is the same word 75 on its own is — and everything from
|
|
45
|
+
* the 点 onwards is read digit by digit, so the point and each digit after it
|
|
46
|
+
* stand alone: 3.14 is `sān diǎn yī sì`.
|
|
47
|
+
*/
|
|
48
|
+
export function decimalWords(hanzi) {
|
|
49
|
+
const characters = toCharacters(hanzi);
|
|
50
|
+
const point = characters.indexOf("点");
|
|
51
|
+
if (point === -1) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return [point, ...characters.slice(point).map(() => 1)];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Read one number, with the sign that may follow it.
|
|
58
|
+
*/
|
|
59
|
+
export function readNumber(digits, isPercent, style, isCounting, options) {
|
|
60
|
+
// A writer's thousands separators are not part of the number; nothing is
|
|
61
|
+
// said for them.
|
|
62
|
+
const value = digits.replaceAll(",", "");
|
|
63
|
+
const settings = { ...options, style, counts: isCounting };
|
|
64
|
+
const hanzi = isPercent
|
|
65
|
+
? percentHanzi(value, settings)
|
|
66
|
+
: numeralHanzi(value, settings);
|
|
67
|
+
const reading = hanzi === undefined ? undefined : readNumeralHanzi(hanzi, settings);
|
|
68
|
+
if (hanzi === undefined || reading === undefined) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
// Digits read out one at a time are not a word at all, so there is nothing
|
|
72
|
+
// for a point in them to break up.
|
|
73
|
+
const words = style === "digits" ? undefined : decimalWords(hanzi);
|
|
74
|
+
return {
|
|
75
|
+
text: digits,
|
|
76
|
+
reading,
|
|
77
|
+
hanzi,
|
|
78
|
+
style,
|
|
79
|
+
...(words !== undefined && { words }),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A stretch that stays exactly as it was written.
|
|
84
|
+
*/
|
|
85
|
+
export function unread(text) {
|
|
86
|
+
return { text, reading: undefined, hanzi: undefined, style: undefined };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=read-numeral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-numeral.js","sourceRoot":"","sources":["../../src/numerals/read-numeral.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EACL,YAAY,EAGZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC;AA0B7B;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,SAAiB;IACxD,OAAO,SAAS,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;QACvD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAgBD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,KAAa,EACb,SAAiB;IAEjB,OAAO,CACL,KAAK,KAAK,EAAE;QACZ,SAAS,KAAK,EAAE;QAChB,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QACxB,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QAC3B,MAAM,KAAK,OAAO,CACnB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,SAAkB,EAClB,KAAmB,EACnB,UAAmB,EACnB,OAAuB;IAEvB,yEAAyE;IACzE,iBAAiB;IACjB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAmB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,SAAS;QACrB,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC/B,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GACX,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,2EAA2E;IAC3E,mCAAmC;IACnC,MAAM,KAAK,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC1E,CAAC"}
|
package/dist/numerals/text.d.ts
CHANGED
|
@@ -1,42 +1,8 @@
|
|
|
1
1
|
import { type SandhiOptions } from "../decode/sandhi.js";
|
|
2
2
|
import type { Syllable } from "../syllable/syllable.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export interface NumeralSegment {
|
|
8
|
-
/** The characters this covers, exactly as they were written. */
|
|
9
|
-
readonly text: string;
|
|
10
|
-
/** How it is said, where it was read as a number. */
|
|
11
|
-
readonly reading: readonly Syllable[] | undefined;
|
|
12
|
-
/** The 汉字 the number would be written with, where it was read. */
|
|
13
|
-
readonly hanzi: string | undefined;
|
|
14
|
-
/** How it was read, which decides whether sandhi applies to it. */
|
|
15
|
-
readonly style: NumeralStyle | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* Where the words break, as a syllable count each.
|
|
18
|
-
*
|
|
19
|
-
* A counted whole number is one word and needs none of this. A time is three
|
|
20
|
-
* or four — 6:30 is `liù diǎn sānshí fēn`, where the hour and the minutes are
|
|
21
|
-
* numbers and 点 and 分 are not — and a decimal is a counted part and then a
|
|
22
|
-
* digit at a time: 75.5 is `qīshíwǔ diǎn wǔ`. Nothing in the syllables
|
|
23
|
-
* themselves says where those breaks are.
|
|
24
|
-
*/
|
|
25
|
-
readonly words?: readonly number[];
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* The Han either side of a stretch that was never Han.
|
|
29
|
-
*
|
|
30
|
-
* All the context a number in running text has. 年 makes 1998 a year, 个 makes
|
|
31
|
-
* 2 a count and 第 makes it an ordinal; nothing else about the text bears on
|
|
32
|
-
* how the digits are said.
|
|
33
|
-
*/
|
|
34
|
-
export interface NumeralContext {
|
|
35
|
-
/** The first character of the Han that follows, or the empty string. */
|
|
36
|
-
readonly following: string;
|
|
37
|
-
/** The last character of the Han before it, or the empty string. */
|
|
38
|
-
readonly preceding: string;
|
|
39
|
-
}
|
|
3
|
+
import type { NumeralOptions } from "./numerals.js";
|
|
4
|
+
import { type NumeralContext, type NumeralSegment } from "./read-numeral.js";
|
|
5
|
+
export type { NumeralContext, NumeralSegment } from "./read-numeral.js";
|
|
40
6
|
/**
|
|
41
7
|
* Split a stretch of non-Han text into what is read and what is not.
|
|
42
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/numerals/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/numerals/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EAIpB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,cAAmB,GAC3B,SAAS,cAAc,EAAE,CA8C3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,QAAQ,GAAG,SAAS,EAC/B,MAAM,EAAE,aAAa,GAAG,SAAS,GAChC,SAAS,QAAQ,EAAE,CAUrB"}
|
package/dist/numerals/text.js
CHANGED
|
@@ -1,259 +1,8 @@
|
|
|
1
1
|
import { applySandhi } from "../decode/sandhi.js";
|
|
2
|
+
import { readTime } from "./time.js";
|
|
2
3
|
import { toCharacters } from "../script/characters.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
* A number as it appears in running text: digits, with the separators a writer
|
|
6
|
-
* uses and an optional decimal part.
|
|
7
|
-
*
|
|
8
|
-
* `security/detect-unsafe-regex` flags the optional decimal after `[\d,]*`. A
|
|
9
|
-
* comma run and a decimal part cannot claim the same characters, since `\.` is
|
|
10
|
-
* neither a digit nor a comma, so there is nothing to backtrack over — timed
|
|
11
|
-
* linear to 128k characters.
|
|
12
|
-
*/
|
|
13
|
-
const NUMBER = /\d[\d,]*(?:\.\d+)?/gu;
|
|
14
|
-
/**
|
|
15
|
-
* The percent signs a number can carry, half-width and full-width.
|
|
16
|
-
*/
|
|
17
|
-
const PERCENT = new Set(["%", "%"]);
|
|
18
|
-
/**
|
|
19
|
-
* Marks that make the digits beside them an identifier rather than a quantity.
|
|
20
|
-
*
|
|
21
|
-
* 6:30 is a time, 3202-5625 is a phone number and COVID-19 is a name; none of
|
|
22
|
-
* them is counted, and the mark between the parts has no reading at all. So a
|
|
23
|
-
* digit run touching one is left exactly as it was written — of 7,846 digit
|
|
24
|
-
* runs measured over Tatoeba and zh.wikipedia about 55 are this shape, and
|
|
25
|
-
* reading them produced `liù:sānshí` for 6:30, which is worse than leaving it.
|
|
26
|
-
*/
|
|
27
|
-
const IDENTIFIER = new Set([":", ":", "-", "-", "—", "–", "/", "/"]);
|
|
28
|
-
/**
|
|
29
|
-
* A time as a writer punctuates it: 6:30, 07:05, 2:30.
|
|
30
|
-
*
|
|
31
|
-
* Sticky, because it is tried at the start of a digit run the number scanner
|
|
32
|
-
* has already found rather than searched for on its own.
|
|
33
|
-
*
|
|
34
|
-
* Two digits after the colon and no more, which is what separates a time from
|
|
35
|
-
* a ratio: 16:9 and 2:1 are proportions and scores and are read `shíliù bǐ
|
|
36
|
-
* jiǔ`, which this does not attempt. Measured over Tatoeba and zh.wikipedia,
|
|
37
|
-
* the shape catches 104 runs and every one of them is a time — none has an
|
|
38
|
-
* hour above 23 or a minute above 59, and the four colon runs that are not
|
|
39
|
-
* times all have a single digit after the colon.
|
|
40
|
-
*/
|
|
41
|
-
const TIME = /(\d{1,2})[::](\d{2})(?!\d)/duy;
|
|
42
|
-
/**
|
|
43
|
-
* The bounds a time is written within.
|
|
44
|
-
*/
|
|
45
|
-
const HOURS_IN_A_DAY = 24;
|
|
46
|
-
const MINUTES_IN_AN_HOUR = 60;
|
|
47
|
-
/**
|
|
48
|
-
* The minute below which the zero is said: 6:05 is 六点零五分.
|
|
49
|
-
*/
|
|
50
|
-
const SPOKEN_ZERO_BELOW = 10;
|
|
51
|
-
/**
|
|
52
|
-
* The hour that is 两 rather than 二.
|
|
53
|
-
*
|
|
54
|
-
* Two o'clock is 两点 and never 二点, which is the same 两 that counts things —
|
|
55
|
-
* an hour is a quantity of hours. It is the only hour this applies to, since
|
|
56
|
-
* 12:00 is 十二点 with the 二 inside a larger number.
|
|
57
|
-
*/
|
|
58
|
-
const LIANG_HOUR = 2;
|
|
59
|
-
/**
|
|
60
|
-
* The characters a lone 2 in front of them labels rather than counts.
|
|
61
|
-
*
|
|
62
|
-
* A 2 standing immediately in front of what it counts is 两 — 两个, 两人, 两岁,
|
|
63
|
-
* 两次, 两天 — and the measure words it can count with are an open list, so 两
|
|
64
|
-
* is the default and this is the exception. What is left is the positions a
|
|
65
|
-
* digit *names*: 2月 is February, 2日 and 2号 are the second of the month, 2楼
|
|
66
|
-
* is the second floor, 2路 is the number 2 bus, 2班 is the second class and 2期
|
|
67
|
-
* is the second phase. A named position is 二.
|
|
68
|
-
*
|
|
69
|
-
* The traditional forms are listed beside the simplified ones, since the text
|
|
70
|
-
* being converted may be in either script.
|
|
71
|
-
*/
|
|
72
|
-
const LABELLED = new Set([
|
|
73
|
-
"月",
|
|
74
|
-
"日",
|
|
75
|
-
"号",
|
|
76
|
-
"號",
|
|
77
|
-
"楼",
|
|
78
|
-
"樓",
|
|
79
|
-
"路",
|
|
80
|
-
"班",
|
|
81
|
-
"期",
|
|
82
|
-
]);
|
|
83
|
-
/**
|
|
84
|
-
* The units a lone 2 in front of them keeps 二 for, as the number itself does.
|
|
85
|
-
*
|
|
86
|
-
* 20 是二十 and 200 是二百, so 2十 and 2百 are written the same way: whether the
|
|
87
|
-
* unit is a digit or a character does not change how the number is said. 千, 万
|
|
88
|
-
* and 亿 are left to `CardinalOptions.liang` for exactly the same reason, which
|
|
89
|
-
* is why 2万 is 两万 as 20,000 already is.
|
|
90
|
-
*/
|
|
91
|
-
const SMALL_UNITS = new Set(["十", "百"]);
|
|
92
|
-
/**
|
|
93
|
-
* The mark that makes the number after it an ordinal: 第2次 is 第二次.
|
|
94
|
-
*
|
|
95
|
-
* An ordinal names a position however ordinary the measure word after it is,
|
|
96
|
-
* so it takes 二 where the same 2次 on its own would be 两次.
|
|
97
|
-
*/
|
|
98
|
-
const ORDINAL = "第";
|
|
99
|
-
/**
|
|
100
|
-
* How many digits a year is written with, when it is a year and not a count.
|
|
101
|
-
*
|
|
102
|
-
* 1998年 is a year and is spelled out; 30年 is thirty years and is counted.
|
|
103
|
-
* Four is the length that separates them, and a two-digit year — 98年 for 1998
|
|
104
|
-
* — is left counted, because 20年 meaning twenty years is far commoner than
|
|
105
|
-
* 20年 meaning 2020 and nothing in the text tells them apart.
|
|
106
|
-
*/
|
|
107
|
-
const YEAR_DIGITS = 4;
|
|
108
|
-
/**
|
|
109
|
-
* Whether a number is read out digit by digit rather than counted.
|
|
110
|
-
*
|
|
111
|
-
* The one context where this is not a guess: a four-digit number in front of 年
|
|
112
|
-
* is a year, and a year is spelled out. Everything else is counted, which is
|
|
113
|
-
* what the overwhelming majority of digits in running text are — of 7,846 digit
|
|
114
|
-
* runs measured over Tatoeba and zh.wikipedia, the commonest things after them
|
|
115
|
-
* are 年, 月, 日, 人, 号, 点, 个 and 岁, and only the years want spelling out.
|
|
116
|
-
*/
|
|
117
|
-
function styleFor(digits, following) {
|
|
118
|
-
return following === "年" && digits.length === YEAR_DIGITS
|
|
119
|
-
? "digits"
|
|
120
|
-
: "cardinal";
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Whether a number is standing in front of something it counts.
|
|
124
|
-
*
|
|
125
|
-
* Only ever true of a number the following Han actually touches: in 2、3个 the
|
|
126
|
-
* 个 counts the 3 and there is a 、 between it and the 2, and in 2%的 the sign
|
|
127
|
-
* is what the digits belong to. `before` and `after` are the characters the
|
|
128
|
-
* digit run sits between, and a digit run with anything but Han after it is not
|
|
129
|
-
* in front of a 量词 at all.
|
|
130
|
-
*/
|
|
131
|
-
function isInFrontOfCount(before, after, following) {
|
|
132
|
-
return (after === "" &&
|
|
133
|
-
following !== "" &&
|
|
134
|
-
!LABELLED.has(following) &&
|
|
135
|
-
!SMALL_UNITS.has(following) &&
|
|
136
|
-
before !== ORDINAL);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Where a decimal breaks into words, or undefined where it is not one.
|
|
140
|
-
*
|
|
141
|
-
* The counted part keeps its grouping — 75.5 is `qīshíwǔ diǎn wǔ`, one word for
|
|
142
|
-
* the quantity, which is the same word 75 on its own is — and everything from
|
|
143
|
-
* the 点 onwards is read digit by digit, so the point and each digit after it
|
|
144
|
-
* stand alone: 3.14 is `sān diǎn yī sì`.
|
|
145
|
-
*/
|
|
146
|
-
function decimalWords(hanzi) {
|
|
147
|
-
const characters = toCharacters(hanzi);
|
|
148
|
-
const point = characters.indexOf("点");
|
|
149
|
-
if (point === -1) {
|
|
150
|
-
return undefined;
|
|
151
|
-
}
|
|
152
|
-
return [point, ...characters.slice(point).map(() => 1)];
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Read one number, with the sign that may follow it.
|
|
156
|
-
*/
|
|
157
|
-
function readNumber(digits, isPercent, style, isCounting, options) {
|
|
158
|
-
// A writer's thousands separators are not part of the number; nothing is
|
|
159
|
-
// said for them.
|
|
160
|
-
const value = digits.replaceAll(",", "");
|
|
161
|
-
const settings = { ...options, style, counts: isCounting };
|
|
162
|
-
const hanzi = isPercent
|
|
163
|
-
? percentHanzi(value, settings)
|
|
164
|
-
: numeralHanzi(value, settings);
|
|
165
|
-
const reading = hanzi === undefined ? undefined : readNumeralHanzi(hanzi, settings);
|
|
166
|
-
if (hanzi === undefined || reading === undefined) {
|
|
167
|
-
return undefined;
|
|
168
|
-
}
|
|
169
|
-
// Digits read out one at a time are not a word at all, so there is nothing
|
|
170
|
-
// for a point in them to break up.
|
|
171
|
-
const words = style === "digits" ? undefined : decimalWords(hanzi);
|
|
172
|
-
return {
|
|
173
|
-
text: digits,
|
|
174
|
-
reading,
|
|
175
|
-
hanzi,
|
|
176
|
-
style,
|
|
177
|
-
...(words !== undefined && { words }),
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* A stretch that stays exactly as it was written.
|
|
182
|
-
*/
|
|
183
|
-
function unread(text) {
|
|
184
|
-
return { text, reading: undefined, hanzi: undefined, style: undefined };
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* A time written out in 汉字: 6:30 is 六点三十分.
|
|
188
|
-
*
|
|
189
|
-
* The 分 is written even though a speaker often drops it, because without it
|
|
190
|
-
* 六点三十 is the decimal 6.30 said aloud — the same 点 does both jobs, and the
|
|
191
|
-
* 分 is the only thing that separates them. On the hour it is left off
|
|
192
|
-
* instead, since 六点零零分 is not something anybody says.
|
|
193
|
-
*/
|
|
194
|
-
function timeHanzi(hours, minutes, options) {
|
|
195
|
-
const counted = { ...options, style: "cardinal" };
|
|
196
|
-
const hour = hours === LIANG_HOUR ? "两" : numeralHanzi(hours, counted);
|
|
197
|
-
const minute = minutes === 0 ? "" : numeralHanzi(minutes, counted);
|
|
198
|
-
/* c8 ignore next 3 -- an hour is 0 to 23 and a minute 0 to 59, and the
|
|
199
|
-
cardinal reader counts every one of them */
|
|
200
|
-
if (hour === undefined || minute === undefined) {
|
|
201
|
-
return undefined;
|
|
202
|
-
}
|
|
203
|
-
if (minute === "") {
|
|
204
|
-
return `${hour}点`;
|
|
205
|
-
}
|
|
206
|
-
const zero = minutes < SPOKEN_ZERO_BELOW ? "零" : "";
|
|
207
|
-
return `${hour}点${zero}${minute}分`;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Where a written-out time breaks into words.
|
|
211
|
-
*
|
|
212
|
-
* The hour, the 点, the minutes and the 分, which is how the same time reads
|
|
213
|
-
* when it is written 6点30分 in the first place.
|
|
214
|
-
*/
|
|
215
|
-
function timeWords(hanzi) {
|
|
216
|
-
const [hour = "", rest = ""] = hanzi.split("点");
|
|
217
|
-
const minutes = rest.replace("分", "");
|
|
218
|
-
return minutes === ""
|
|
219
|
-
? [hour.length, 1]
|
|
220
|
-
: [hour.length, 1, minutes.length, 1];
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Read a digit run as a time, where that is what it is.
|
|
224
|
-
*
|
|
225
|
-
* Tried before the identifier rule, which would otherwise leave the whole
|
|
226
|
-
* thing alone: a colon between digits is exactly the mark that makes 6:30 a
|
|
227
|
-
* time rather than two numbers.
|
|
228
|
-
*/
|
|
229
|
-
function readTime(text, from, options) {
|
|
230
|
-
TIME.lastIndex = from;
|
|
231
|
-
const found = TIME.exec(text);
|
|
232
|
-
const written = found?.[1];
|
|
233
|
-
const minutes = found?.[2];
|
|
234
|
-
if (found === null || written === undefined || minutes === undefined) {
|
|
235
|
-
return undefined;
|
|
236
|
-
}
|
|
237
|
-
const hourValue = Number(written);
|
|
238
|
-
const minuteValue = Number(minutes);
|
|
239
|
-
if (hourValue >= HOURS_IN_A_DAY || minuteValue >= MINUTES_IN_AN_HOUR) {
|
|
240
|
-
return undefined;
|
|
241
|
-
}
|
|
242
|
-
const hanzi = timeHanzi(hourValue, minuteValue, options);
|
|
243
|
-
const reading = hanzi === undefined ? undefined : readNumeralHanzi(hanzi, options);
|
|
244
|
-
/* c8 ignore next 3 -- the hanzi is built out of the same table that reads it
|
|
245
|
-
back, so it reads whenever it was built at all */
|
|
246
|
-
if (hanzi === undefined || reading === undefined) {
|
|
247
|
-
return undefined;
|
|
248
|
-
}
|
|
249
|
-
return {
|
|
250
|
-
text: found[0],
|
|
251
|
-
reading,
|
|
252
|
-
hanzi,
|
|
253
|
-
style: "cardinal",
|
|
254
|
-
words: timeWords(hanzi),
|
|
255
|
-
};
|
|
256
|
-
}
|
|
4
|
+
import { IDENTIFIER, NUMBER, PERCENT } from "./numeral-shapes.js";
|
|
5
|
+
import { isInFrontOfCount, readNumber, styleFor, unread, } from "./read-numeral.js";
|
|
257
6
|
/**
|
|
258
7
|
* Split a stretch of non-Han text into what is read and what is not.
|
|
259
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/numerals/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/numerals/text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Saying a clock time out loud.
|
|
3
|
+
*
|
|
4
|
+
* A time is not read the way the same digits would be anywhere else: 6:30 is
|
|
5
|
+
* 六点三十分 rather than the digits in order, the 分 is written even where a
|
|
6
|
+
* speaker would drop it, and the hour takes 两 where a bare 2 takes 二.
|
|
7
|
+
*/
|
|
8
|
+
import { type NumeralOptions } from "./numerals.js";
|
|
9
|
+
import type { NumeralSegment } from "./read-numeral.js";
|
|
10
|
+
/**
|
|
11
|
+
* A time written out in 汉字: 6:30 is 六点三十分.
|
|
12
|
+
*
|
|
13
|
+
* The 分 is written even though a speaker often drops it, because without it
|
|
14
|
+
* 六点三十 is the decimal 6.30 said aloud — the same 点 does both jobs, and the
|
|
15
|
+
* 分 is the only thing that separates them. On the hour it is left off
|
|
16
|
+
* instead, since 六点零零分 is not something anybody says.
|
|
17
|
+
*/
|
|
18
|
+
export declare function timeHanzi(hours: number, minutes: number, options: NumeralOptions): string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Where a written-out time breaks into words.
|
|
21
|
+
*
|
|
22
|
+
* The hour, the 点, the minutes and the 分, which is how the same time reads
|
|
23
|
+
* when it is written 6点30分 in the first place.
|
|
24
|
+
*/
|
|
25
|
+
export declare function timeWords(hanzi: string): readonly number[];
|
|
26
|
+
/**
|
|
27
|
+
* Read a digit run as a time, where that is what it is.
|
|
28
|
+
*
|
|
29
|
+
* Tried before the identifier rule, which would otherwise leave the whole
|
|
30
|
+
* thing alone: a colon between digits is exactly the mark that makes 6:30 a
|
|
31
|
+
* time rather than two numbers.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readTime(text: string, from: number, options: NumeralOptions): NumeralSegment | undefined;
|
|
34
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/numerals/time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgBxD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,MAAM,GAAG,SAAS,CAcpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAM1D;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,cAAc,GAAG,SAAS,CA4B5B"}
|