@kensio/pinyinjs 1.7.4 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accuracy/score-case.d.ts +23 -0
- package/dist/accuracy/score-case.d.ts.map +1 -0
- package/dist/accuracy/score-case.js +63 -0
- package/dist/accuracy/score-case.js.map +1 -0
- package/dist/accuracy/score.d.ts +1 -8
- package/dist/accuracy/score.d.ts.map +1 -1
- package/dist/accuracy/score.js +1 -55
- package/dist/accuracy/score.js.map +1 -1
- package/dist/cli/arguments.d.ts +4 -290
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +5 -357
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/check-command.d.ts +9 -0
- package/dist/cli/check-command.d.ts.map +1 -0
- package/dist/cli/check-command.js +95 -0
- package/dist/cli/check-command.js.map +1 -0
- package/dist/cli/cli-input.d.ts +49 -0
- package/dist/cli/cli-input.d.ts.map +1 -0
- package/dist/cli/cli-input.js +31 -0
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/command.d.ts +97 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +40 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -110
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +14 -991
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/convert-command.d.ts +6 -0
- package/dist/cli/convert-command.d.ts.map +1 -0
- package/dist/cli/convert-command.js +52 -0
- package/dist/cli/convert-command.js.map +1 -0
- package/dist/cli/environment.d.ts +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/explain-command.d.ts +6 -0
- package/dist/cli/explain-command.d.ts.map +1 -0
- package/dist/cli/explain-command.js +40 -0
- package/dist/cli/explain-command.js.map +1 -0
- package/dist/cli/explain-syllable.d.ts +10 -0
- package/dist/cli/explain-syllable.d.ts.map +1 -0
- package/dist/cli/explain-syllable.js +70 -0
- package/dist/cli/explain-syllable.js.map +1 -0
- package/dist/cli/flag-help.d.ts +18 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +78 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/flag-lists.d.ts +49 -0
- package/dist/cli/flag-lists.d.ts.map +1 -0
- package/dist/cli/flag-lists.js +58 -0
- package/dist/cli/flag-lists.js.map +1 -0
- package/dist/cli/flag-values.d.ts +44 -0
- package/dist/cli/flag-values.d.ts.map +1 -0
- package/dist/cli/flag-values.js +56 -0
- package/dist/cli/flag-values.js.map +1 -0
- package/dist/cli/flags.d.ts +193 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +133 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/format-options.d.ts +29 -0
- package/dist/cli/format-options.d.ts.map +1 -0
- package/dist/cli/format-options.js +72 -0
- package/dist/cli/format-options.js.map +1 -0
- package/dist/cli/global-help.d.ts +23 -0
- package/dist/cli/global-help.d.ts.map +1 -0
- package/dist/cli/global-help.js +40 -0
- package/dist/cli/global-help.js.map +1 -0
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -99
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/html-commands.d.ts +13 -0
- package/dist/cli/html-commands.d.ts.map +1 -0
- package/dist/cli/html-commands.js +49 -0
- package/dist/cli/html-commands.js.map +1 -0
- package/dist/cli/info-command.d.ts +7 -0
- package/dist/cli/info-command.d.ts.map +1 -0
- package/dist/cli/info-command.js +39 -0
- package/dist/cli/info-command.js.map +1 -0
- package/dist/cli/lookup-commands.d.ts +10 -0
- package/dist/cli/lookup-commands.d.ts.map +1 -0
- package/dist/cli/lookup-commands.js +101 -0
- package/dist/cli/lookup-commands.js.map +1 -0
- package/dist/cli/match-command.d.ts +11 -0
- package/dist/cli/match-command.d.ts.map +1 -0
- package/dist/cli/match-command.js +76 -0
- package/dist/cli/match-command.js.map +1 -0
- package/dist/cli/number-command.d.ts +12 -0
- package/dist/cli/number-command.d.ts.map +1 -0
- package/dist/cli/number-command.js +89 -0
- package/dist/cli/number-command.js.map +1 -0
- package/dist/cli/options.d.ts +30 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +54 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run-command.d.ts +24 -0
- package/dist/cli/run-command.d.ts.map +1 -0
- package/dist/cli/run-command.js +40 -0
- package/dist/cli/run-command.js.map +1 -0
- package/dist/cli/run.d.ts +4 -42
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -61
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script-command.d.ts +10 -0
- package/dist/cli/script-command.d.ts.map +1 -0
- package/dist/cli/script-command.js +58 -0
- package/dist/cli/script-command.js.map +1 -0
- package/dist/cli/segment-command.d.ts +11 -0
- package/dist/cli/segment-command.d.ts.map +1 -0
- package/dist/cli/segment-command.js +53 -0
- package/dist/cli/segment-command.js.map +1 -0
- package/dist/cli/slug-command.d.ts +10 -0
- package/dist/cli/slug-command.d.ts.map +1 -0
- package/dist/cli/slug-command.js +28 -0
- package/dist/cli/slug-command.js.map +1 -0
- package/dist/cli/syllable-command.d.ts +14 -0
- package/dist/cli/syllable-command.d.ts.map +1 -0
- package/dist/cli/syllable-command.js +82 -0
- package/dist/cli/syllable-command.js.map +1 -0
- package/dist/cli/system-table.d.ts +12 -0
- package/dist/cli/system-table.d.ts.map +1 -0
- package/dist/cli/system-table.js +48 -0
- package/dist/cli/system-table.js.map +1 -0
- package/dist/cli/systems.d.ts +57 -0
- package/dist/cli/systems.d.ts.map +1 -0
- package/dist/cli/systems.js +27 -0
- package/dist/cli/systems.js.map +1 -0
- package/dist/cli/transcribe-command.d.ts +18 -0
- package/dist/cli/transcribe-command.d.ts.map +1 -0
- package/dist/cli/transcribe-command.js +86 -0
- package/dist/cli/transcribe-command.js.map +1 -0
- package/dist/cli/transcribe-reading.d.ts +15 -0
- package/dist/cli/transcribe-reading.d.ts.map +1 -0
- package/dist/cli/transcribe-reading.js +90 -0
- package/dist/cli/transcribe-reading.js.map +1 -0
- package/dist/cli/transcribe-rows.d.ts +26 -0
- package/dist/cli/transcribe-rows.d.ts.map +1 -0
- package/dist/cli/transcribe-rows.js +30 -0
- package/dist/cli/transcribe-rows.js.map +1 -0
- package/dist/cli/usage-error.d.ts +9 -0
- package/dist/cli/usage-error.d.ts.map +1 -0
- package/dist/cli/usage-error.js +9 -0
- package/dist/cli/usage-error.js.map +1 -0
- package/dist/decode/alternatives.d.ts +16 -0
- package/dist/decode/alternatives.d.ts.map +1 -0
- package/dist/decode/alternatives.js +31 -0
- package/dist/decode/alternatives.js.map +1 -0
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +3 -118
- package/dist/decode/confidence.js.map +1 -1
- package/dist/decode/convert-options.d.ts +116 -0
- package/dist/decode/convert-options.d.ts.map +1 -0
- package/dist/decode/convert-options.js +2 -0
- package/dist/decode/convert-options.js.map +1 -0
- package/dist/decode/convert-pipeline.d.ts +18 -0
- package/dist/decode/convert-pipeline.d.ts.map +1 -0
- package/dist/decode/convert-pipeline.js +66 -0
- package/dist/decode/convert-pipeline.js.map +1 -0
- package/dist/decode/convert.d.ts +9 -118
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +5 -453
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/decode.d.ts +2 -15
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +2 -121
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/decoders.d.ts +32 -0
- package/dist/decode/decoders.d.ts.map +1 -0
- package/dist/decode/decoders.js +29 -0
- package/dist/decode/decoders.js.map +1 -0
- package/dist/decode/edge-context.d.ts +38 -0
- package/dist/decode/edge-context.d.ts.map +1 -0
- package/dist/decode/edge-context.js +57 -0
- package/dist/decode/edge-context.js.map +1 -0
- package/dist/decode/hint-lattice.d.ts +45 -0
- package/dist/decode/hint-lattice.d.ts.map +1 -0
- package/dist/decode/hint-lattice.js +140 -0
- package/dist/decode/hint-lattice.js.map +1 -0
- package/dist/decode/hints.d.ts +2 -45
- package/dist/decode/hints.d.ts.map +1 -1
- package/dist/decode/hints.js +1 -139
- package/dist/decode/hints.js.map +1 -1
- package/dist/decode/jiao-rule.d.ts +58 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +76 -0
- package/dist/decode/jiao-rule.js.map +1 -0
- package/dist/decode/lattice-costs.d.ts +55 -0
- package/dist/decode/lattice-costs.d.ts.map +1 -0
- package/dist/decode/lattice-costs.js +90 -0
- package/dist/decode/lattice-costs.js.map +1 -0
- package/dist/decode/lattice-edges.d.ts +29 -0
- package/dist/decode/lattice-edges.d.ts.map +1 -0
- package/dist/decode/lattice-edges.js +78 -0
- package/dist/decode/lattice-edges.js.map +1 -0
- package/dist/decode/lattice-slice.d.ts +37 -0
- package/dist/decode/lattice-slice.d.ts.map +1 -0
- package/dist/decode/lattice-slice.js +43 -0
- package/dist/decode/lattice-slice.js.map +1 -0
- package/dist/decode/lattice-types.d.ts +82 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +44 -0
- package/dist/decode/lattice-types.js.map +1 -0
- package/dist/decode/lattice.d.ts +2 -59
- package/dist/decode/lattice.d.ts.map +1 -1
- package/dist/decode/lattice.js +2 -118
- package/dist/decode/lattice.js.map +1 -1
- package/dist/decode/number-pieces.d.ts +62 -0
- package/dist/decode/number-pieces.d.ts.map +1 -0
- package/dist/decode/number-pieces.js +106 -0
- package/dist/decode/number-pieces.js.map +1 -0
- package/dist/decode/numbers.d.ts +53 -0
- package/dist/decode/numbers.d.ts.map +1 -0
- package/dist/decode/numbers.js +69 -0
- package/dist/decode/numbers.js.map +1 -0
- package/dist/decode/pieces.d.ts +78 -0
- package/dist/decode/pieces.d.ts.map +1 -0
- package/dist/decode/pieces.js +136 -0
- package/dist/decode/pieces.js.map +1 -0
- package/dist/decode/polyphone-rules.d.ts +31 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +159 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +2 -97
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +4 -365
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/rules.d.ts +1 -17
- package/dist/decode/rules.d.ts.map +1 -1
- package/dist/decode/rules.js +1 -43
- package/dist/decode/rules.js.map +1 -1
- package/dist/decode/run-lattice.d.ts +52 -0
- package/dist/decode/run-lattice.d.ts.map +1 -0
- package/dist/decode/run-lattice.js +91 -0
- package/dist/decode/run-lattice.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +69 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +88 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +1 -1
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +1 -81
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/script-types.d.ts +76 -0
- package/dist/decode/script-types.d.ts.map +1 -0
- package/dist/decode/script-types.js +35 -0
- package/dist/decode/script-types.js.map +1 -0
- package/dist/decode/script-words.d.ts +32 -0
- package/dist/decode/script-words.d.ts.map +1 -0
- package/dist/decode/script-words.js +77 -0
- package/dist/decode/script-words.js.map +1 -0
- package/dist/decode/script.d.ts +3 -73
- package/dist/decode/script.d.ts.map +1 -1
- package/dist/decode/script.js +3 -109
- package/dist/decode/script.js.map +1 -1
- package/dist/decode/tan-rule.d.ts +68 -0
- package/dist/decode/tan-rule.d.ts.map +1 -0
- package/dist/decode/tan-rule.js +131 -0
- package/dist/decode/tan-rule.js.map +1 -0
- package/dist/decode/write-run.d.ts +28 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +77 -0
- package/dist/decode/write-run.js.map +1 -0
- package/dist/dictionary/artifact-claims.d.ts +25 -0
- package/dist/dictionary/artifact-claims.d.ts.map +1 -0
- package/dist/dictionary/artifact-claims.js +47 -0
- package/dist/dictionary/artifact-claims.js.map +1 -0
- package/dist/dictionary/artifact-format.d.ts +86 -0
- package/dist/dictionary/artifact-format.d.ts.map +1 -0
- package/dist/dictionary/artifact-format.js +91 -0
- package/dist/dictionary/artifact-format.js.map +1 -0
- package/dist/dictionary/artifact-read.d.ts +34 -0
- package/dist/dictionary/artifact-read.d.ts.map +1 -0
- package/dist/dictionary/artifact-read.js +114 -0
- package/dist/dictionary/artifact-read.js.map +1 -0
- package/dist/dictionary/artifact.d.ts +4 -63
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +12 -229
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/assertions.d.ts +5 -57
- package/dist/dictionary/assertions.d.ts.map +1 -1
- package/dist/dictionary/assertions.js +4 -317
- package/dist/dictionary/assertions.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts +12 -0
- package/dist/dictionary/build-assertions.d.ts.map +1 -0
- package/dist/dictionary/build-assertions.js +13 -0
- package/dist/dictionary/build-assertions.js.map +1 -0
- package/dist/dictionary/built-dictionary.d.ts +46 -0
- package/dist/dictionary/built-dictionary.d.ts.map +1 -0
- package/dist/dictionary/built-dictionary.js +97 -0
- package/dist/dictionary/built-dictionary.js.map +1 -0
- package/dist/dictionary/cedict-senses.d.ts +80 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +114 -0
- package/dist/dictionary/cedict-senses.js.map +1 -0
- package/dist/dictionary/character-defaults.d.ts +26 -0
- package/dist/dictionary/character-defaults.d.ts.map +1 -0
- package/dist/dictionary/character-defaults.js +67 -0
- package/dist/dictionary/character-defaults.js.map +1 -0
- package/dist/dictionary/character-readings.d.ts +10 -0
- package/dist/dictionary/character-readings.d.ts.map +1 -0
- package/dist/dictionary/character-readings.js +25 -0
- package/dist/dictionary/character-readings.js.map +1 -0
- package/dist/dictionary/dictionary-entry.d.ts +37 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
- package/dist/dictionary/dictionary-entry.js +41 -0
- package/dist/dictionary/dictionary-entry.js.map +1 -0
- package/dist/dictionary/dictionary-readings.d.ts +56 -0
- package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
- package/dist/dictionary/dictionary-readings.js +93 -0
- package/dist/dictionary/dictionary-readings.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +6 -60
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +9 -169
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +3 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -0
- package/dist/dictionary/entry-invariants.js +67 -0
- package/dist/dictionary/entry-invariants.js.map +1 -0
- package/dist/dictionary/entry-lines.d.ts +35 -0
- package/dist/dictionary/entry-lines.d.ts.map +1 -0
- package/dist/dictionary/entry-lines.js +70 -0
- package/dist/dictionary/entry-lines.js.map +1 -0
- package/dist/dictionary/erhua-repair.d.ts +26 -0
- package/dist/dictionary/erhua-repair.d.ts.map +1 -0
- package/dist/dictionary/erhua-repair.js +49 -0
- package/dist/dictionary/erhua-repair.js.map +1 -0
- package/dist/dictionary/frequency-tones.d.ts +74 -0
- package/dist/dictionary/frequency-tones.d.ts.map +1 -0
- package/dist/dictionary/frequency-tones.js +128 -0
- package/dist/dictionary/frequency-tones.js.map +1 -0
- package/dist/dictionary/inventory-invariants.d.ts +3 -0
- package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
- package/dist/dictionary/inventory-invariants.js +54 -0
- package/dist/dictionary/inventory-invariants.js.map +1 -0
- package/dist/dictionary/locale-candidates.d.ts +40 -0
- package/dist/dictionary/locale-candidates.d.ts.map +1 -0
- package/dist/dictionary/locale-candidates.js +77 -0
- package/dist/dictionary/locale-candidates.js.map +1 -0
- package/dist/dictionary/locale-segments.d.ts +47 -0
- package/dist/dictionary/locale-segments.d.ts.map +1 -0
- package/dist/dictionary/locale-segments.js +141 -0
- package/dist/dictionary/locale-segments.js.map +1 -0
- package/dist/dictionary/locale.d.ts +1 -21
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +9 -198
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +121 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -0
- package/dist/dictionary/merge-types.js +35 -0
- package/dist/dictionary/merge-types.js.map +1 -0
- package/dist/dictionary/merge-word.d.ts +7 -0
- package/dist/dictionary/merge-word.d.ts.map +1 -0
- package/dist/dictionary/merge-word.js +91 -0
- package/dist/dictionary/merge-word.js.map +1 -0
- package/dist/dictionary/merge.d.ts +5 -62
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +30 -713
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +28 -0
- package/dist/dictionary/proper-noun.d.ts.map +1 -0
- package/dist/dictionary/proper-noun.js +43 -0
- package/dist/dictionary/proper-noun.js.map +1 -0
- package/dist/dictionary/reading-agreement.d.ts +71 -0
- package/dist/dictionary/reading-agreement.d.ts.map +1 -0
- package/dist/dictionary/reading-agreement.js +156 -0
- package/dist/dictionary/reading-agreement.js.map +1 -0
- package/dist/dictionary/script-conversion.d.ts +28 -0
- package/dist/dictionary/script-conversion.d.ts.map +1 -0
- package/dist/dictionary/script-conversion.js +58 -0
- package/dist/dictionary/script-conversion.js.map +1 -0
- package/dist/dictionary/script-pairings.d.ts +74 -0
- package/dist/dictionary/script-pairings.d.ts.map +1 -0
- package/dist/dictionary/script-pairings.js +120 -0
- package/dist/dictionary/script-pairings.js.map +1 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -1
- package/dist/dictionary/script-tables.js +2 -165
- package/dist/dictionary/script-tables.js.map +1 -1
- package/dist/dictionary/taiwan-reading.d.ts +8 -0
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
- package/dist/dictionary/taiwan-reading.js +38 -0
- package/dist/dictionary/taiwan-reading.js.map +1 -0
- package/dist/dictionary/tone-invariants.d.ts +3 -0
- package/dist/dictionary/tone-invariants.d.ts.map +1 -0
- package/dist/dictionary/tone-invariants.js +64 -0
- package/dist/dictionary/tone-invariants.js.map +1 -0
- package/dist/dictionary/traditional-form.d.ts +21 -0
- package/dist/dictionary/traditional-form.d.ts.map +1 -0
- package/dist/dictionary/traditional-form.js +59 -0
- package/dist/dictionary/traditional-form.js.map +1 -0
- package/dist/dictionary/traditional-ranking.d.ts +22 -0
- package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
- package/dist/dictionary/traditional-ranking.js +74 -0
- package/dist/dictionary/traditional-ranking.js.map +1 -0
- package/dist/dictionary/traditional-table.d.ts +51 -0
- package/dist/dictionary/traditional-table.d.ts.map +1 -0
- package/dist/dictionary/traditional-table.js +98 -0
- package/dist/dictionary/traditional-table.js.map +1 -0
- package/dist/dictionary/traditional.d.ts +3 -56
- package/dist/dictionary/traditional.d.ts.map +1 -1
- package/dist/dictionary/traditional.js +3 -186
- package/dist/dictionary/traditional.js.map +1 -1
- package/dist/dictionary/variant-counts.d.ts +39 -0
- package/dist/dictionary/variant-counts.d.ts.map +1 -0
- package/dist/dictionary/variant-counts.js +38 -0
- package/dist/dictionary/variant-counts.js.map +1 -0
- package/dist/dictionary/word-reading.d.ts +26 -0
- package/dist/dictionary/word-reading.d.ts.map +1 -0
- package/dist/dictionary/word-reading.js +76 -0
- package/dist/dictionary/word-reading.js.map +1 -0
- package/dist/dictionary/word-readings.d.ts +15 -0
- package/dist/dictionary/word-readings.d.ts.map +1 -0
- package/dist/dictionary/word-readings.js +38 -0
- package/dist/dictionary/word-readings.js.map +1 -0
- package/dist/format/annotate.d.ts +90 -0
- package/dist/format/annotate.d.ts.map +1 -0
- package/dist/format/annotate.js +168 -0
- package/dist/format/annotate.js.map +1 -0
- package/dist/format/html.d.ts +15 -46
- package/dist/format/html.d.ts.map +1 -1
- package/dist/format/html.js +3 -162
- package/dist/format/html.js.map +1 -1
- package/dist/format/slug-hash.d.ts +51 -0
- package/dist/format/slug-hash.d.ts.map +1 -0
- package/dist/format/slug-hash.js +74 -0
- package/dist/format/slug-hash.js.map +1 -0
- package/dist/format/slug-options.d.ts +98 -0
- package/dist/format/slug-options.d.ts.map +1 -0
- package/dist/format/slug-options.js +2 -0
- package/dist/format/slug-options.js.map +1 -0
- package/dist/format/slug-words.d.ts +27 -0
- package/dist/format/slug-words.d.ts.map +1 -0
- package/dist/format/slug-words.js +0 -0
- package/dist/format/slug-words.js.map +1 -0
- package/dist/format/slug.d.ts +3 -128
- package/dist/format/slug.d.ts.map +1 -1
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -1
- package/dist/grade/check-readings.d.ts +41 -0
- package/dist/grade/check-readings.d.ts.map +1 -0
- package/dist/grade/check-readings.js +36 -0
- package/dist/grade/check-readings.js.map +1 -0
- package/dist/grade/check.d.ts +4 -4
- package/dist/grade/check.d.ts.map +1 -1
- package/dist/grade/check.js +5 -270
- package/dist/grade/check.js.map +1 -1
- package/dist/grade/pair-syllables.d.ts +48 -0
- package/dist/grade/pair-syllables.d.ts.map +1 -0
- package/dist/grade/pair-syllables.js +71 -0
- package/dist/grade/pair-syllables.js.map +1 -0
- package/dist/grade/reading-syllables.d.ts +62 -0
- package/dist/grade/reading-syllables.d.ts.map +1 -0
- package/dist/grade/reading-syllables.js +58 -0
- package/dist/grade/reading-syllables.js.map +1 -0
- package/dist/grade/reading-tolerance.d.ts +72 -0
- package/dist/grade/reading-tolerance.d.ts.map +1 -0
- package/dist/grade/reading-tolerance.js +107 -0
- package/dist/grade/reading-tolerance.js.map +1 -0
- package/dist/grade/typed-reading.d.ts +28 -0
- package/dist/grade/typed-reading.d.ts.map +1 -0
- package/dist/grade/typed-reading.js +36 -0
- package/dist/grade/typed-reading.js.map +1 -0
- package/dist/numerals/numeral-parse.d.ts +32 -0
- package/dist/numerals/numeral-parse.d.ts.map +1 -0
- package/dist/numerals/numeral-parse.js +44 -0
- package/dist/numerals/numeral-parse.js.map +1 -0
- package/dist/numerals/numeral-shapes.d.ts +89 -0
- package/dist/numerals/numeral-shapes.d.ts.map +1 -0
- package/dist/numerals/numeral-shapes.js +99 -0
- package/dist/numerals/numeral-shapes.js.map +1 -0
- package/dist/numerals/numerals.d.ts.map +1 -1
- package/dist/numerals/numerals.js +2 -36
- package/dist/numerals/numerals.js.map +1 -1
- package/dist/numerals/read-numeral.d.ts +76 -0
- package/dist/numerals/read-numeral.d.ts.map +1 -0
- package/dist/numerals/read-numeral.js +88 -0
- package/dist/numerals/read-numeral.js.map +1 -0
- package/dist/numerals/text.d.ts +3 -37
- package/dist/numerals/text.d.ts.map +1 -1
- package/dist/numerals/text.js +3 -254
- package/dist/numerals/text.js.map +1 -1
- package/dist/numerals/time.d.ts +34 -0
- package/dist/numerals/time.d.ts.map +1 -0
- package/dist/numerals/time.js +93 -0
- package/dist/numerals/time.js.map +1 -0
- package/dist/orthography/address-grouping.d.ts +34 -0
- package/dist/orthography/address-grouping.d.ts.map +1 -0
- package/dist/orthography/address-grouping.js +52 -0
- package/dist/orthography/address-grouping.js.map +1 -0
- package/dist/orthography/grouping.d.ts +3 -87
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +4 -270
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/place-grouping.d.ts +39 -0
- package/dist/orthography/place-grouping.d.ts.map +1 -0
- package/dist/orthography/place-grouping.js +83 -0
- package/dist/orthography/place-grouping.js.map +1 -0
- package/dist/orthography/word-grouping.d.ts +48 -0
- package/dist/orthography/word-grouping.d.ts.map +1 -0
- package/dist/orthography/word-grouping.js +147 -0
- package/dist/orthography/word-grouping.js.map +1 -0
- package/dist/script/conversion-format.d.ts +22 -0
- package/dist/script/conversion-format.d.ts.map +1 -0
- package/dist/script/conversion-format.js +22 -0
- package/dist/script/conversion-format.js.map +1 -0
- package/dist/script/conversion-read.d.ts +9 -0
- package/dist/script/conversion-read.d.ts.map +1 -0
- package/dist/script/conversion-read.js +69 -0
- package/dist/script/conversion-read.js.map +1 -0
- package/dist/script/conversion-write.d.ts +14 -0
- package/dist/script/conversion-write.d.ts.map +1 -0
- package/dist/script/conversion-write.js +34 -0
- package/dist/script/conversion-write.js.map +1 -0
- package/dist/script/conversion.d.ts +10 -16
- package/dist/script/conversion.d.ts.map +1 -1
- package/dist/script/conversion.js +2 -115
- package/dist/script/conversion.js.map +1 -1
- package/dist/search/candidate-narrowing.d.ts +56 -0
- package/dist/search/candidate-narrowing.d.ts.map +1 -0
- package/dist/search/candidate-narrowing.js +55 -0
- package/dist/search/candidate-narrowing.js.map +1 -0
- package/dist/search/candidate-query.d.ts +25 -0
- package/dist/search/candidate-query.d.ts.map +1 -0
- package/dist/search/candidate-query.js +28 -0
- package/dist/search/candidate-query.js.map +1 -0
- package/dist/search/candidate-writings.d.ts +24 -0
- package/dist/search/candidate-writings.d.ts.map +1 -0
- package/dist/search/candidate-writings.js +114 -0
- package/dist/search/candidate-writings.js.map +1 -0
- package/dist/search/candidates.d.ts +7 -41
- package/dist/search/candidates.d.ts.map +1 -1
- package/dist/search/candidates.js +10 -164
- package/dist/search/candidates.js.map +1 -1
- package/dist/search/match-chunks.d.ts +19 -0
- package/dist/search/match-chunks.d.ts.map +1 -0
- package/dist/search/match-chunks.js +30 -0
- package/dist/search/match-chunks.js.map +1 -0
- package/dist/search/match-ranking.d.ts +39 -0
- package/dist/search/match-ranking.d.ts.map +1 -0
- package/dist/search/match-ranking.js +51 -0
- package/dist/search/match-ranking.js.map +1 -0
- package/dist/search/match-readings.d.ts +43 -0
- package/dist/search/match-readings.d.ts.map +1 -0
- package/dist/search/match-readings.js +83 -0
- package/dist/search/match-readings.js.map +1 -0
- package/dist/search/match-scoring.d.ts +146 -0
- package/dist/search/match-scoring.d.ts.map +1 -0
- package/dist/search/match-scoring.js +114 -0
- package/dist/search/match-scoring.js.map +1 -0
- package/dist/search/match-search.d.ts +28 -0
- package/dist/search/match-search.d.ts.map +1 -0
- package/dist/search/match-search.js +128 -0
- package/dist/search/match-search.js.map +1 -0
- package/dist/search/match.d.ts +5 -36
- package/dist/search/match.d.ts.map +1 -1
- package/dist/search/match.js +2 -379
- package/dist/search/match.js.map +1 -1
- package/dist/search/reverse-index-build.d.ts +30 -0
- package/dist/search/reverse-index-build.d.ts.map +1 -0
- package/dist/search/reverse-index-build.js +72 -0
- package/dist/search/reverse-index-build.js.map +1 -0
- package/dist/search/reverse-index-format.d.ts +60 -0
- package/dist/search/reverse-index-format.d.ts.map +1 -0
- package/dist/search/reverse-index-format.js +54 -0
- package/dist/search/reverse-index-format.js.map +1 -0
- package/dist/search/reverse-index-groups.d.ts +37 -0
- package/dist/search/reverse-index-groups.d.ts.map +1 -0
- package/dist/search/reverse-index-groups.js +71 -0
- package/dist/search/reverse-index-groups.js.map +1 -0
- package/dist/search/reverse-index-passes.d.ts +78 -0
- package/dist/search/reverse-index-passes.d.ts.map +1 -0
- package/dist/search/reverse-index-passes.js +59 -0
- package/dist/search/reverse-index-passes.js.map +1 -0
- package/dist/search/reverse-index-state.d.ts +36 -0
- package/dist/search/reverse-index-state.d.ts.map +1 -0
- package/dist/search/reverse-index-state.js +95 -0
- package/dist/search/reverse-index-state.js.map +1 -0
- package/dist/search/reverse-index.d.ts +8 -67
- package/dist/search/reverse-index.d.ts.map +1 -1
- package/dist/search/reverse-index.js +4 -255
- package/dist/search/reverse-index.js.map +1 -1
- package/dist/sources/unihan-readings.d.ts +58 -0
- package/dist/sources/unihan-readings.d.ts.map +1 -0
- package/dist/sources/unihan-readings.js +95 -0
- package/dist/sources/unihan-readings.js.map +1 -0
- package/dist/sources/unihan.d.ts +6 -9
- package/dist/sources/unihan.d.ts.map +1 -1
- package/dist/sources/unihan.js +2 -85
- package/dist/sources/unihan.js.map +1 -1
- package/dist/syllable/final-tables.d.ts +23 -0
- package/dist/syllable/final-tables.d.ts.map +1 -0
- package/dist/syllable/final-tables.js +50 -0
- package/dist/syllable/final-tables.js.map +1 -0
- package/dist/syllable/inventory.d.ts +8 -42
- package/dist/syllable/inventory.d.ts.map +1 -1
- package/dist/syllable/inventory.js +9 -918
- package/dist/syllable/inventory.js.map +1 -1
- package/dist/syllable/spellings.d.ts +40 -0
- package/dist/syllable/spellings.d.ts.map +1 -0
- package/dist/syllable/spellings.js +469 -0
- package/dist/syllable/spellings.js.map +1 -0
- package/dist/syllable/syllable-parts.d.ts +31 -0
- package/dist/syllable/syllable-parts.d.ts.map +1 -0
- package/dist/syllable/syllable-parts.js +105 -0
- package/dist/syllable/syllable-parts.js.map +1 -0
- package/dist/syllable/syllable.d.ts +1 -14
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +3 -144
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/syllable/written-tones.d.ts +6 -0
- package/dist/syllable/written-tones.d.ts.map +1 -0
- package/dist/syllable/written-tones.js +453 -0
- package/dist/syllable/written-tones.js.map +1 -0
- package/dist/transcription/bopomofo-parse.d.ts +42 -0
- package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-parse.js +92 -0
- package/dist/transcription/bopomofo-parse.js.map +1 -0
- package/dist/transcription/bopomofo-reverse.d.ts +31 -0
- package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-reverse.js +48 -0
- package/dist/transcription/bopomofo-reverse.js.map +1 -0
- package/dist/transcription/bopomofo-symbols.d.ts +36 -0
- package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
- package/dist/transcription/bopomofo-symbols.js +41 -0
- package/dist/transcription/bopomofo-symbols.js.map +1 -0
- package/dist/transcription/bopomofo-tables.d.ts +87 -0
- package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
- package/dist/transcription/bopomofo-tables.js +180 -0
- package/dist/transcription/bopomofo-tables.js.map +1 -0
- package/dist/transcription/bopomofo.d.ts +14 -32
- package/dist/transcription/bopomofo.d.ts.map +1 -1
- package/dist/transcription/bopomofo.js +5 -343
- package/dist/transcription/bopomofo.js.map +1 -1
- package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
- package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-first-second.js +75 -0
- package/dist/transcription/gwoyeu-first-second.js.map +1 -0
- package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
- package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-spelling.js +124 -0
- package/dist/transcription/gwoyeu-spelling.js.map +1 -0
- package/dist/transcription/gwoyeu-tables.d.ts +93 -0
- package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tables.js +205 -0
- package/dist/transcription/gwoyeu-tables.js.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
- package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
- package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
- package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-vowels.js +58 -0
- package/dist/transcription/gwoyeu-vowels.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +1 -26
- package/dist/transcription/gwoyeu.d.ts.map +1 -1
- package/dist/transcription/gwoyeu.js +2 -540
- package/dist/transcription/gwoyeu.js.map +1 -1
- package/dist/transcription/ipa-symbols.d.ts +67 -0
- package/dist/transcription/ipa-symbols.d.ts.map +1 -0
- package/dist/transcription/ipa-symbols.js +135 -0
- package/dist/transcription/ipa-symbols.js.map +1 -0
- package/dist/transcription/ipa.d.ts +2 -10
- package/dist/transcription/ipa.d.ts.map +1 -1
- package/dist/transcription/ipa.js +2 -134
- package/dist/transcription/ipa.js.map +1 -1
- package/dist/transcription/wade-giles-index.d.ts +35 -0
- package/dist/transcription/wade-giles-index.d.ts.map +1 -0
- package/dist/transcription/wade-giles-index.js +110 -0
- package/dist/transcription/wade-giles-index.js.map +1 -0
- package/dist/transcription/wade-giles-parse.d.ts +36 -0
- package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
- package/dist/transcription/wade-giles-parse.js +84 -0
- package/dist/transcription/wade-giles-parse.js.map +1 -0
- package/dist/transcription/wade-giles-spelling.d.ts +61 -0
- package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
- package/dist/transcription/wade-giles-spelling.js +107 -0
- package/dist/transcription/wade-giles-spelling.js.map +1 -0
- package/dist/transcription/wade-giles-syllable.d.ts +29 -0
- package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
- package/dist/transcription/wade-giles-syllable.js +90 -0
- package/dist/transcription/wade-giles-syllable.js.map +1 -0
- package/dist/transcription/wade-giles-tables.d.ts +80 -0
- package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
- package/dist/transcription/wade-giles-tables.js +178 -0
- package/dist/transcription/wade-giles-tables.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +9 -60
- package/dist/transcription/wade-giles.d.ts.map +1 -1
- package/dist/transcription/wade-giles.js +6 -543
- package/dist/transcription/wade-giles.js.map +1 -1
- package/dist/transcription/yale-tables.d.ts +54 -0
- package/dist/transcription/yale-tables.d.ts.map +1 -0
- package/dist/transcription/yale-tables.js +125 -0
- package/dist/transcription/yale-tables.js.map +1 -0
- package/dist/transcription/yale.d.ts.map +1 -1
- package/dist/transcription/yale.js +1 -124
- package/dist/transcription/yale.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { allEdges } from "./lattice.js";
|
|
2
|
+
import { toCharacters } from "../script/characters.js";
|
|
3
|
+
import { shiftHints } from "./hints.js";
|
|
4
|
+
import { ruledLattice } from "./run-lattice.js";
|
|
5
|
+
/**
|
|
6
|
+
* Whether any reading in the lattice would hold the two sides of a join
|
|
7
|
+
* together.
|
|
8
|
+
*
|
|
9
|
+
* A reading of one syllable per character can be cut anywhere; anything else —
|
|
10
|
+
* 儿化, a character with no reading — is a single claim about its whole span,
|
|
11
|
+
* so a claim spanning the join cannot be reported for the run alone. 1点儿事
|
|
12
|
+
* is that case: 一点儿 is one `yìdiǎnr` over the 一 the context supplied and
|
|
13
|
+
* the 点儿 the run did.
|
|
14
|
+
*/
|
|
15
|
+
export function isJoinedAt(lattice, at) {
|
|
16
|
+
return allEdges(lattice).some((edge) => edge.from < at &&
|
|
17
|
+
edge.to > at &&
|
|
18
|
+
edge.reading.length !== edge.to - edge.from);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The lattice a run decodes over, with whatever context stands in front of it.
|
|
22
|
+
*
|
|
23
|
+
* The context is dropped where a reading would hold it to the run, leaving the
|
|
24
|
+
* run decoded on its own, which is what it would have been before there was any
|
|
25
|
+
* context to give.
|
|
26
|
+
*/
|
|
27
|
+
export function runLattice(dictionary, run, rules, before, hints) {
|
|
28
|
+
const alone = () => ({
|
|
29
|
+
lattice: ruledLattice(dictionary, run, rules, hints),
|
|
30
|
+
at: 0,
|
|
31
|
+
});
|
|
32
|
+
if (before === "") {
|
|
33
|
+
return alone();
|
|
34
|
+
}
|
|
35
|
+
const held = toCharacters(before).length;
|
|
36
|
+
// The context is decoded with the run, so every hint position moves along
|
|
37
|
+
// with it. Shifting a copy keeps the caller's positions relative to the run
|
|
38
|
+
// they were given for.
|
|
39
|
+
const lattice = ruledLattice(dictionary, before + run, rules, hints === undefined ? undefined : shiftHints(hints, held));
|
|
40
|
+
const at = held;
|
|
41
|
+
return isJoinedAt(lattice, at) ? alone() : { lattice, at };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=lattice-slice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lattice-slice.js","sourceRoot":"","sources":["../../src/decode/lattice-slice.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAgB,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,EAAU;IACrD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,GAAG,EAAE;QACd,IAAI,CAAC,EAAE,GAAG,EAAE;QACZ,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAC9C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,UAAsB,EACtB,GAAW,EACX,KAA0B,EAC1B,MAAc,EACd,KAAgC;IAEhC,MAAM,KAAK,GAAG,GAAe,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;QACpD,EAAE,EAAE,CAAC;KACN,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACzC,0EAA0E;IAC1E,4EAA4E;IAC5E,uBAAuB;IACvB,MAAM,OAAO,GAAG,YAAY,CAC1B,UAAU,EACV,MAAM,GAAG,GAAG,EACZ,KAAK,EACL,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAC1D,CAAC;IACF,MAAM,EAAE,GAAG,IAAI,CAAC;IAChB,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a lattice is made of, and what each edge costs it.
|
|
3
|
+
*
|
|
4
|
+
* The costs are the whole of the decode's judgement in four numbers, so they
|
|
5
|
+
* sit together and are stated once.
|
|
6
|
+
*/
|
|
7
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
8
|
+
/**
|
|
9
|
+
* One candidate reading of one stretch of characters.
|
|
10
|
+
*
|
|
11
|
+
* An edge runs from character position `from` to position `to`, exclusive, and
|
|
12
|
+
* carries the syllables that stretch is read as. The reading is *not* required
|
|
13
|
+
* to have one syllable per character: 玩儿 covers two characters and reads as
|
|
14
|
+
* the single syllable `wánr`, which is the case that stops the lattice being a
|
|
15
|
+
* simple per-character grid.
|
|
16
|
+
*/
|
|
17
|
+
export interface LatticeEdge {
|
|
18
|
+
readonly from: number;
|
|
19
|
+
readonly to: number;
|
|
20
|
+
readonly text: string;
|
|
21
|
+
readonly reading: readonly Syllable[];
|
|
22
|
+
/** What this edge costs the spacing decode: a quantised `−log P(word)`. */
|
|
23
|
+
readonly cost: number;
|
|
24
|
+
/** What this edge costs the reading decode. See {@link READING_CHARGE}. */
|
|
25
|
+
readonly readingCost: number;
|
|
26
|
+
readonly isProperNoun: boolean;
|
|
27
|
+
readonly partOfSpeech: string;
|
|
28
|
+
/** Whether a dictionary entry backs this edge, rather than a fallback. */
|
|
29
|
+
readonly isKnown: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Every candidate reading of a Han run, as a DAG over character positions.
|
|
33
|
+
*/
|
|
34
|
+
export interface Lattice {
|
|
35
|
+
readonly characters: readonly string[];
|
|
36
|
+
/** Edges leaving each position, indexed by that position. */
|
|
37
|
+
readonly edges: readonly (readonly LatticeEdge[])[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* How far ahead a match is looked for.
|
|
41
|
+
*
|
|
42
|
+
* The prefix check stops a scan long before this in practice; it is a guard
|
|
43
|
+
* against pathological input, not a real limit.
|
|
44
|
+
*/
|
|
45
|
+
export declare const LONGEST_WORD = 16;
|
|
46
|
+
/**
|
|
47
|
+
* What each step down a character's list of readings adds to the edge cost.
|
|
48
|
+
*
|
|
49
|
+
* A character's readings arrive most likely first, and nothing else in the data
|
|
50
|
+
* says how much more likely. One frequency bucket per step is the smallest
|
|
51
|
+
* separation that still ranks them, and it keeps a rare reading of a common
|
|
52
|
+
* character from outbidding a real dictionary word.
|
|
53
|
+
*/
|
|
54
|
+
export declare const ALTERNATE_PENALTY = 1;
|
|
55
|
+
/**
|
|
56
|
+
* What every edge costs the reading decode on top of its word cost.
|
|
57
|
+
*
|
|
58
|
+
* The two decodes want different things, which is the asymmetry ALGORITHM.md
|
|
59
|
+
* builds on. Spacing asks which segmentation the corpus makes likeliest, and
|
|
60
|
+
* `−log P(word)` answers it. Readings ask something else: 地气 is rarer than 地
|
|
61
|
+
* followed by 气, so the unigram model is right to split it and the reading
|
|
62
|
+
* that falls out — `de qì` — is still wrong, because the dictionary states
|
|
63
|
+
* outright that those two characters together read `dì qì`. A stored reading is
|
|
64
|
+
* evidence about the characters; a character's default reading is only a prior.
|
|
65
|
+
*
|
|
66
|
+
* So the reading decode charges per *edge* heavily enough that dictionary
|
|
67
|
+
* evidence outranks frequency: at 16 an attested word always beats splitting it
|
|
68
|
+
* into characters, however common those characters are, since the worst word
|
|
69
|
+
* costs `15 + 16` and the best two-character split costs `0 + 16` twice. Word
|
|
70
|
+
* frequency survives as the tiebreak between paths covering the same span with
|
|
71
|
+
* the same number of words. That ordering — fewest words first, frequency
|
|
72
|
+
* second — is the one ALGORITHM.md already gives its data-free fallback tier.
|
|
73
|
+
*/
|
|
74
|
+
export declare const READING_CHARGE = 16;
|
|
75
|
+
/**
|
|
76
|
+
* What an edge covering a character no dictionary entry knows costs.
|
|
77
|
+
*
|
|
78
|
+
* Above the worst cost a real entry can carry, so that any known reading is
|
|
79
|
+
* preferred to none.
|
|
80
|
+
*/
|
|
81
|
+
export declare const UNKNOWN_COST = 32;
|
|
82
|
+
//# sourceMappingURL=lattice-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lattice-types.d.ts","sourceRoot":"","sources":["../../src/decode/lattice-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;CACrD;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How far ahead a match is looked for.
|
|
3
|
+
*
|
|
4
|
+
* The prefix check stops a scan long before this in practice; it is a guard
|
|
5
|
+
* against pathological input, not a real limit.
|
|
6
|
+
*/
|
|
7
|
+
export const LONGEST_WORD = 16;
|
|
8
|
+
/**
|
|
9
|
+
* What each step down a character's list of readings adds to the edge cost.
|
|
10
|
+
*
|
|
11
|
+
* A character's readings arrive most likely first, and nothing else in the data
|
|
12
|
+
* says how much more likely. One frequency bucket per step is the smallest
|
|
13
|
+
* separation that still ranks them, and it keeps a rare reading of a common
|
|
14
|
+
* character from outbidding a real dictionary word.
|
|
15
|
+
*/
|
|
16
|
+
export const ALTERNATE_PENALTY = 1;
|
|
17
|
+
/**
|
|
18
|
+
* What every edge costs the reading decode on top of its word cost.
|
|
19
|
+
*
|
|
20
|
+
* The two decodes want different things, which is the asymmetry ALGORITHM.md
|
|
21
|
+
* builds on. Spacing asks which segmentation the corpus makes likeliest, and
|
|
22
|
+
* `−log P(word)` answers it. Readings ask something else: 地气 is rarer than 地
|
|
23
|
+
* followed by 气, so the unigram model is right to split it and the reading
|
|
24
|
+
* that falls out — `de qì` — is still wrong, because the dictionary states
|
|
25
|
+
* outright that those two characters together read `dì qì`. A stored reading is
|
|
26
|
+
* evidence about the characters; a character's default reading is only a prior.
|
|
27
|
+
*
|
|
28
|
+
* So the reading decode charges per *edge* heavily enough that dictionary
|
|
29
|
+
* evidence outranks frequency: at 16 an attested word always beats splitting it
|
|
30
|
+
* into characters, however common those characters are, since the worst word
|
|
31
|
+
* costs `15 + 16` and the best two-character split costs `0 + 16` twice. Word
|
|
32
|
+
* frequency survives as the tiebreak between paths covering the same span with
|
|
33
|
+
* the same number of words. That ordering — fewest words first, frequency
|
|
34
|
+
* second — is the one ALGORITHM.md already gives its data-free fallback tier.
|
|
35
|
+
*/
|
|
36
|
+
export const READING_CHARGE = 16;
|
|
37
|
+
/**
|
|
38
|
+
* What an edge covering a character no dictionary entry knows costs.
|
|
39
|
+
*
|
|
40
|
+
* Above the worst cost a real entry can carry, so that any known reading is
|
|
41
|
+
* preferred to none.
|
|
42
|
+
*/
|
|
43
|
+
export const UNKNOWN_COST = 32;
|
|
44
|
+
//# sourceMappingURL=lattice-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lattice-types.js","sourceRoot":"","sources":["../../src/decode/lattice-types.ts"],"names":[],"mappings":"AAyCA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC"}
|
package/dist/decode/lattice.d.ts
CHANGED
|
@@ -1,64 +1,7 @@
|
|
|
1
1
|
import type { Dictionary } from "../dictionary/dictionary.js";
|
|
2
|
-
import type { Syllable } from "../syllable/syllable.js";
|
|
3
2
|
import { type ResolvedHints } from "./hints.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
* An edge runs from character position `from` to position `to`, exclusive, and
|
|
8
|
-
* carries the syllables that stretch is read as. The reading is *not* required
|
|
9
|
-
* to have one syllable per character: 玩儿 covers two characters and reads as
|
|
10
|
-
* the single syllable `wánr`, which is the case that stops the lattice being a
|
|
11
|
-
* simple per-character grid.
|
|
12
|
-
*/
|
|
13
|
-
export interface LatticeEdge {
|
|
14
|
-
readonly from: number;
|
|
15
|
-
readonly to: number;
|
|
16
|
-
readonly text: string;
|
|
17
|
-
readonly reading: readonly Syllable[];
|
|
18
|
-
/** What this edge costs the spacing decode: a quantised `−log P(word)`. */
|
|
19
|
-
readonly cost: number;
|
|
20
|
-
/** What this edge costs the reading decode. See {@link READING_CHARGE}. */
|
|
21
|
-
readonly readingCost: number;
|
|
22
|
-
readonly isProperNoun: boolean;
|
|
23
|
-
readonly partOfSpeech: string;
|
|
24
|
-
/** Whether a dictionary entry backs this edge, rather than a fallback. */
|
|
25
|
-
readonly isKnown: boolean;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Every candidate reading of a Han run, as a DAG over character positions.
|
|
29
|
-
*/
|
|
30
|
-
export interface Lattice {
|
|
31
|
-
readonly characters: readonly string[];
|
|
32
|
-
/** Edges leaving each position, indexed by that position. */
|
|
33
|
-
readonly edges: readonly (readonly LatticeEdge[])[];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* What every edge costs the reading decode on top of its word cost.
|
|
37
|
-
*
|
|
38
|
-
* The two decodes want different things, which is the asymmetry ALGORITHM.md
|
|
39
|
-
* builds on. Spacing asks which segmentation the corpus makes likeliest, and
|
|
40
|
-
* `−log P(word)` answers it. Readings ask something else: 地气 is rarer than 地
|
|
41
|
-
* followed by 气, so the unigram model is right to split it and the reading
|
|
42
|
-
* that falls out — `de qì` — is still wrong, because the dictionary states
|
|
43
|
-
* outright that those two characters together read `dì qì`. A stored reading is
|
|
44
|
-
* evidence about the characters; a character's default reading is only a prior.
|
|
45
|
-
*
|
|
46
|
-
* So the reading decode charges per *edge* heavily enough that dictionary
|
|
47
|
-
* evidence outranks frequency: at 16 an attested word always beats splitting it
|
|
48
|
-
* into characters, however common those characters are, since the worst word
|
|
49
|
-
* costs `15 + 16` and the best two-character split costs `0 + 16` twice. Word
|
|
50
|
-
* frequency survives as the tiebreak between paths covering the same span with
|
|
51
|
-
* the same number of words. That ordering — fewest words first, frequency
|
|
52
|
-
* second — is the one ALGORITHM.md already gives its data-free fallback tier.
|
|
53
|
-
*/
|
|
54
|
-
export declare const READING_CHARGE = 16;
|
|
55
|
-
/**
|
|
56
|
-
* What an edge covering a character no dictionary entry knows costs.
|
|
57
|
-
*
|
|
58
|
-
* Above the worst cost a real entry can carry, so that any known reading is
|
|
59
|
-
* preferred to none.
|
|
60
|
-
*/
|
|
61
|
-
export declare const UNKNOWN_COST = 32;
|
|
3
|
+
import type { Lattice, LatticeEdge } from "./lattice-types.js";
|
|
4
|
+
export { type Lattice, type LatticeEdge, READING_CHARGE, UNKNOWN_COST, } from "./lattice-types.js";
|
|
62
5
|
/**
|
|
63
6
|
* Build the lattice of every way a Han run could be read.
|
|
64
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../../src/decode/lattice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,
|
|
1
|
+
{"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../../src/decode/lattice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAaT;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,WAAW,EAAE,CAEjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAuB7D"}
|
package/dist/decode/lattice.js
CHANGED
|
@@ -1,123 +1,7 @@
|
|
|
1
1
|
import { toCharacters } from "../script/characters.js";
|
|
2
2
|
import { applyHints } from "./hints.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* The prefix check stops a scan long before this in practice; it is a guard
|
|
7
|
-
* against pathological input, not a real limit.
|
|
8
|
-
*/
|
|
9
|
-
const LONGEST_WORD = 16;
|
|
10
|
-
/**
|
|
11
|
-
* What each step down a character's list of readings adds to the edge cost.
|
|
12
|
-
*
|
|
13
|
-
* A character's readings arrive most likely first, and nothing else in the data
|
|
14
|
-
* says how much more likely. One frequency bucket per step is the smallest
|
|
15
|
-
* separation that still ranks them, and it keeps a rare reading of a common
|
|
16
|
-
* character from outbidding a real dictionary word.
|
|
17
|
-
*/
|
|
18
|
-
const ALTERNATE_PENALTY = 1;
|
|
19
|
-
/**
|
|
20
|
-
* What every edge costs the reading decode on top of its word cost.
|
|
21
|
-
*
|
|
22
|
-
* The two decodes want different things, which is the asymmetry ALGORITHM.md
|
|
23
|
-
* builds on. Spacing asks which segmentation the corpus makes likeliest, and
|
|
24
|
-
* `−log P(word)` answers it. Readings ask something else: 地气 is rarer than 地
|
|
25
|
-
* followed by 气, so the unigram model is right to split it and the reading
|
|
26
|
-
* that falls out — `de qì` — is still wrong, because the dictionary states
|
|
27
|
-
* outright that those two characters together read `dì qì`. A stored reading is
|
|
28
|
-
* evidence about the characters; a character's default reading is only a prior.
|
|
29
|
-
*
|
|
30
|
-
* So the reading decode charges per *edge* heavily enough that dictionary
|
|
31
|
-
* evidence outranks frequency: at 16 an attested word always beats splitting it
|
|
32
|
-
* into characters, however common those characters are, since the worst word
|
|
33
|
-
* costs `15 + 16` and the best two-character split costs `0 + 16` twice. Word
|
|
34
|
-
* frequency survives as the tiebreak between paths covering the same span with
|
|
35
|
-
* the same number of words. That ordering — fewest words first, frequency
|
|
36
|
-
* second — is the one ALGORITHM.md already gives its data-free fallback tier.
|
|
37
|
-
*/
|
|
38
|
-
export const READING_CHARGE = 16;
|
|
39
|
-
/**
|
|
40
|
-
* What an edge covering a character no dictionary entry knows costs.
|
|
41
|
-
*
|
|
42
|
-
* Above the worst cost a real entry can carry, so that any known reading is
|
|
43
|
-
* preferred to none.
|
|
44
|
-
*/
|
|
45
|
-
export const UNKNOWN_COST = 32;
|
|
46
|
-
/**
|
|
47
|
-
* The edges leaving a position that come from multi-character dictionary words.
|
|
48
|
-
*
|
|
49
|
-
* Walks one character at a time and stops as soon as the dictionary reports
|
|
50
|
-
* that nothing begins with what has been collected, which is what keeps the
|
|
51
|
-
* scan linear in practice rather than quadratic in the longest key.
|
|
52
|
-
*/
|
|
53
|
-
function wordEdgesAt(dictionary, characters, at) {
|
|
54
|
-
const edges = [];
|
|
55
|
-
let candidate = "";
|
|
56
|
-
for (let length = 0; length < LONGEST_WORD && at + length < characters.length; length++) {
|
|
57
|
-
/* c8 ignore next -- the loop condition keeps the index in range */
|
|
58
|
-
candidate += characters[at + length] ?? "";
|
|
59
|
-
if (!dictionary.hasPrefix(candidate)) {
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
const entry = length === 0 ? undefined : dictionary.lookup(candidate);
|
|
63
|
-
if (entry !== undefined) {
|
|
64
|
-
edges.push({
|
|
65
|
-
from: at,
|
|
66
|
-
to: at + length + 1,
|
|
67
|
-
text: candidate,
|
|
68
|
-
reading: entry.reading,
|
|
69
|
-
cost: entry.cost,
|
|
70
|
-
readingCost: entry.cost + READING_CHARGE,
|
|
71
|
-
isProperNoun: entry.isProperNoun,
|
|
72
|
-
partOfSpeech: entry.partOfSpeech,
|
|
73
|
-
isKnown: true,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return edges;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* The single-character edges leaving a position, one per known reading.
|
|
81
|
-
*
|
|
82
|
-
* Always present, whatever words also start here. Two things depend on that:
|
|
83
|
-
* every position has an outgoing edge, so the lattice is always traversable;
|
|
84
|
-
* and a polyphone offers all of its readings at every position, so scoring has
|
|
85
|
-
* something to choose between rather than only what the word list happens to
|
|
86
|
-
* cover.
|
|
87
|
-
*/
|
|
88
|
-
function characterEdgesAt(dictionary, characters, at) {
|
|
89
|
-
/* c8 ignore next -- callers only ask about positions inside the run */
|
|
90
|
-
const character = characters[at] ?? "";
|
|
91
|
-
const entry = dictionary.lookup(character);
|
|
92
|
-
if (entry === undefined) {
|
|
93
|
-
// A character with no entry at all: keep it, unread, so that the text still
|
|
94
|
-
// round-trips and the failure is visible rather than silent.
|
|
95
|
-
return [
|
|
96
|
-
{
|
|
97
|
-
from: at,
|
|
98
|
-
to: at + 1,
|
|
99
|
-
text: character,
|
|
100
|
-
reading: [],
|
|
101
|
-
cost: UNKNOWN_COST,
|
|
102
|
-
readingCost: UNKNOWN_COST + READING_CHARGE,
|
|
103
|
-
isProperNoun: false,
|
|
104
|
-
partOfSpeech: "",
|
|
105
|
-
isKnown: false,
|
|
106
|
-
},
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
|
-
return dictionary.readingsOf(character).map((reading, rank) => ({
|
|
110
|
-
from: at,
|
|
111
|
-
to: at + 1,
|
|
112
|
-
text: character,
|
|
113
|
-
reading,
|
|
114
|
-
cost: entry.cost + rank * ALTERNATE_PENALTY,
|
|
115
|
-
readingCost: entry.cost + rank * ALTERNATE_PENALTY + READING_CHARGE,
|
|
116
|
-
isProperNoun: entry.isProperNoun,
|
|
117
|
-
partOfSpeech: entry.partOfSpeech,
|
|
118
|
-
isKnown: true,
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
3
|
+
export { READING_CHARGE, UNKNOWN_COST, } from "./lattice-types.js";
|
|
4
|
+
import { characterEdgesAt, wordEdgesAt } from "./lattice-edges.js";
|
|
121
5
|
/**
|
|
122
6
|
* Build the lattice of every way a Han run could be read.
|
|
123
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lattice.js","sourceRoot":"","sources":["../../src/decode/lattice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"lattice.js","sourceRoot":"","sources":["../../src/decode/lattice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAG5D,OAAO,EAGL,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAsB,EACtB,GAAW,EACX,KAAqB;IAErB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAA+B,EAAE,CAAC;IAE7C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;YAC1C,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACtC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7C,2EAA2E;IAC3E,8DAA8D;IAC9D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,0EAA0E;QAC1E,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACpC,mEAAmE;QACnE,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning one read number into pieces, spaced against what surrounds it.
|
|
3
|
+
*
|
|
4
|
+
* A digit run is said as words and the words are grouped, so the pieces carry
|
|
5
|
+
* both the reading and where the words break — and whether a space belongs
|
|
6
|
+
* between the number and the text beside it.
|
|
7
|
+
*/
|
|
8
|
+
import type { NumeralSegment } from "../numerals/read-numeral.js";
|
|
9
|
+
/**
|
|
10
|
+
* The numbers in a text, said out loud.
|
|
11
|
+
*
|
|
12
|
+
* A digit is not Han and does not reach the decoder, so reading 1998年 as
|
|
13
|
+
* `yī jiǔ jiǔ bā nián` means working out what the run around it says and
|
|
14
|
+
* whether a space belongs between them. That is all this does.
|
|
15
|
+
*/
|
|
16
|
+
import { type Syllable } from "../syllable/syllable.js";
|
|
17
|
+
import { type ApostropheStyle } from "../orthography/apostrophe.js";
|
|
18
|
+
import { type ConvertedPiece, type Written } from "./pieces.js";
|
|
19
|
+
/**
|
|
20
|
+
* Whether a character wants a space between it and a number read out.
|
|
21
|
+
*
|
|
22
|
+
* A letter or a digit does; punctuation does not, so 20%。 keeps its full stop
|
|
23
|
+
* against the number.
|
|
24
|
+
*/
|
|
25
|
+
export declare const WORDLIKE: RegExp;
|
|
26
|
+
/**
|
|
27
|
+
* Whether two stretches take a space between them once one has been read.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isSpaced(before: string, after: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Write a run whose words are already known, a word at a time.
|
|
32
|
+
*
|
|
33
|
+
* Each group is one orthographic word and takes the 隔音符号 within itself, so
|
|
34
|
+
* a time's minutes are `sānshí` rather than `sān shí` — the same grouping the
|
|
35
|
+
* number would get if the text had written 6点30分 out in 汉字.
|
|
36
|
+
*/
|
|
37
|
+
export declare function groupedPieces(spelled: readonly string[], said: readonly Syllable[], words: readonly number[], apostrophe: ApostropheStyle): readonly ConvertedPiece[];
|
|
38
|
+
/**
|
|
39
|
+
* Write a number's syllables as the pieces they are written with.
|
|
40
|
+
*
|
|
41
|
+
* A counted number is *one word*, which is what 正词法 6.1.5 asks for: 123 is
|
|
42
|
+
* `yībǎi'èrshísān` and not three words, so the syllables run together and take
|
|
43
|
+
* the 隔音符号 where one is needed. A number read out digit by digit is not a
|
|
44
|
+
* word at all — it is digits — so those are written apart: 1998年 is
|
|
45
|
+
* `yī jiǔ jiǔ bā nián`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function numberPieces(said: readonly Syllable[], segment: NumeralSegment, written: Written): readonly ConvertedPiece[];
|
|
48
|
+
/**
|
|
49
|
+
* Name what a read number is a reading of, once for the whole of it.
|
|
50
|
+
*
|
|
51
|
+
* A number is not read character by character the way a word is: 95% is
|
|
52
|
+
* `bǎifēnzhījiǔshíwǔ` over eight syllables and three written characters, and
|
|
53
|
+
* the order reverses on the way, so no syllable belongs to any one of them.
|
|
54
|
+
* The written form is therefore named once, by the first piece that says
|
|
55
|
+
* anything, and the rest read on into it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function read(pieces: readonly ConvertedPiece[], source: string): readonly ConvertedPiece[];
|
|
58
|
+
/**
|
|
59
|
+
* A stand-in for the pinyin either side of a run, which ends in a letter.
|
|
60
|
+
*/
|
|
61
|
+
export declare function runEdge(isHan: boolean): string;
|
|
62
|
+
//# sourceMappingURL=number-pieces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-pieces.d.ts","sourceRoot":"","sources":["../../src/decode/number-pieces.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,KAAK,cAAc,EAAc,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,QAAkB,CAAC;AAExC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,eAAe,GAC1B,SAAS,cAAc,EAAE,CAmB3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,OAAO,GACf,SAAS,cAAc,EAAE,CAkC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,MAAM,EAAE,MAAM,GACb,SAAS,cAAc,EAAE,CAS3B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE9C"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The numbers in a text, said out loud.
|
|
3
|
+
*
|
|
4
|
+
* A digit is not Han and does not reach the decoder, so reading 1998年 as
|
|
5
|
+
* `yī jiǔ jiǔ bā nián` means working out what the run around it says and
|
|
6
|
+
* whether a space belongs between them. That is all this does.
|
|
7
|
+
*/
|
|
8
|
+
import { writeSyllable } from "../syllable/syllable.js";
|
|
9
|
+
import { markWord } from "../orthography/apostrophe.js";
|
|
10
|
+
import { plainPiece } from "./pieces.js";
|
|
11
|
+
/**
|
|
12
|
+
* Whether a character wants a space between it and a number read out.
|
|
13
|
+
*
|
|
14
|
+
* A letter or a digit does; punctuation does not, so 20%。 keeps its full stop
|
|
15
|
+
* against the number.
|
|
16
|
+
*/
|
|
17
|
+
export const WORDLIKE = /[\p{L}\p{N}]/u;
|
|
18
|
+
/**
|
|
19
|
+
* Whether two stretches take a space between them once one has been read.
|
|
20
|
+
*/
|
|
21
|
+
export function isSpaced(before, after) {
|
|
22
|
+
return WORDLIKE.test(before.at(-1) ?? "") && WORDLIKE.test(after[0] ?? "");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Write a run whose words are already known, a word at a time.
|
|
26
|
+
*
|
|
27
|
+
* Each group is one orthographic word and takes the 隔音符号 within itself, so
|
|
28
|
+
* a time's minutes are `sānshí` rather than `sān shí` — the same grouping the
|
|
29
|
+
* number would get if the text had written 6点30分 out in 汉字.
|
|
30
|
+
*/
|
|
31
|
+
export function groupedPieces(spelled, said, words, apostrophe) {
|
|
32
|
+
const pieces = [];
|
|
33
|
+
let at = 0;
|
|
34
|
+
for (const length of words) {
|
|
35
|
+
if (at > 0) {
|
|
36
|
+
pieces.push(plainPiece(" "));
|
|
37
|
+
}
|
|
38
|
+
const group = spelled.slice(at, at + length);
|
|
39
|
+
for (const [index, text] of markWord(group, apostrophe).entries()) {
|
|
40
|
+
pieces.push({
|
|
41
|
+
text,
|
|
42
|
+
syllable: said[at + index],
|
|
43
|
+
confidence: undefined,
|
|
44
|
+
source: undefined,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
at += length;
|
|
48
|
+
}
|
|
49
|
+
return pieces;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Write a number's syllables as the pieces they are written with.
|
|
53
|
+
*
|
|
54
|
+
* A counted number is *one word*, which is what 正词法 6.1.5 asks for: 123 is
|
|
55
|
+
* `yībǎi'èrshísān` and not three words, so the syllables run together and take
|
|
56
|
+
* the 隔音符号 where one is needed. A number read out digit by digit is not a
|
|
57
|
+
* word at all — it is digits — so those are written apart: 1998年 is
|
|
58
|
+
* `yī jiǔ jiǔ bā nián`.
|
|
59
|
+
*/
|
|
60
|
+
export function numberPieces(said, segment, written) {
|
|
61
|
+
const spelled = said.map((syllable) => writeSyllable(syllable, written.notation));
|
|
62
|
+
if (segment.style === "digits") {
|
|
63
|
+
return read(spelled.flatMap((text, at) => [
|
|
64
|
+
...(at === 0 ? [] : [plainPiece(" ")]),
|
|
65
|
+
{ text, syllable: said[at], confidence: undefined, source: undefined },
|
|
66
|
+
]), segment.text);
|
|
67
|
+
}
|
|
68
|
+
const isNumbered = written.notation === "numbers" || written.notation === "superscript";
|
|
69
|
+
const apostrophe = isNumbered ? "never" : written.apostrophe;
|
|
70
|
+
// A run that says where its words break gets them: a time is `liù diǎn
|
|
71
|
+
// sānshí fēn` and a decimal is `qīshíwǔ diǎn wǔ`, each counted part a word
|
|
72
|
+
// of its own and everything after the 点 a digit at a time.
|
|
73
|
+
if (segment.words !== undefined) {
|
|
74
|
+
return read(groupedPieces(spelled, said, segment.words, apostrophe), segment.text);
|
|
75
|
+
}
|
|
76
|
+
return read(markWord(spelled, apostrophe).map((text, at) => ({
|
|
77
|
+
text,
|
|
78
|
+
syllable: said[at],
|
|
79
|
+
confidence: undefined,
|
|
80
|
+
source: undefined,
|
|
81
|
+
})), segment.text);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Name what a read number is a reading of, once for the whole of it.
|
|
85
|
+
*
|
|
86
|
+
* A number is not read character by character the way a word is: 95% is
|
|
87
|
+
* `bǎifēnzhījiǔshíwǔ` over eight syllables and three written characters, and
|
|
88
|
+
* the order reverses on the way, so no syllable belongs to any one of them.
|
|
89
|
+
* The written form is therefore named once, by the first piece that says
|
|
90
|
+
* anything, and the rest read on into it.
|
|
91
|
+
*/
|
|
92
|
+
export function read(pieces, source) {
|
|
93
|
+
const first = pieces.findIndex((piece) => piece.syllable !== undefined);
|
|
94
|
+
/* c8 ignore next 3 -- a read number has at least one syllable in it */
|
|
95
|
+
if (first === -1) {
|
|
96
|
+
return pieces;
|
|
97
|
+
}
|
|
98
|
+
return pieces.map((piece, at) => at === first ? { ...piece, source } : piece);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A stand-in for the pinyin either side of a run, which ends in a letter.
|
|
102
|
+
*/
|
|
103
|
+
export function runEdge(isHan) {
|
|
104
|
+
return isHan ? "a" : "";
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=number-pieces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-pieces.js","sourceRoot":"","sources":["../../src/decode/number-pieces.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,OAAO,EAAiB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAwB,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAuB,UAAU,EAAgB,MAAM,aAAa,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAa;IACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA0B,EAC1B,IAAyB,EACzB,KAAwB,EACxB,UAA2B;IAE3B,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;gBAC1B,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QACD,EAAE,IAAI,MAAM,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAyB,EACzB,OAAuB,EACvB,OAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC1C,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,IAAI,CACT,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;SACvE,CAAC,EACF,OAAO,CAAC,IAAI,CACb,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC;IACvE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC7D,uEAAuE;IACvE,2EAA2E;IAC3E,2DAA2D;IAC3D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,CACT,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EACvD,OAAO,CAAC,IAAI,CACb,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CACT,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAClB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC,EACH,OAAO,CAAC,IAAI,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAClB,MAAiC,EACjC,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IACxE,uEAAuE;IACvE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAC9B,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
+
/**
|
|
3
|
+
* The numbers in a text, said out loud.
|
|
4
|
+
*
|
|
5
|
+
* A digit is not Han and does not reach the decoder, so reading 1998年 as
|
|
6
|
+
* `yī jiǔ jiǔ bā nián` means working out what the run around it says and
|
|
7
|
+
* whether a space belongs between them. That is all this does.
|
|
8
|
+
*/
|
|
9
|
+
import { type NumeralSegment } from "../numerals/text.js";
|
|
10
|
+
import { type TextRun } from "./runs.js";
|
|
11
|
+
import type { ScoredWord } from "./word.js";
|
|
12
|
+
import type { SandhiOptions } from "./sandhi.js";
|
|
13
|
+
import { type ConvertedPiece, type Written } from "./pieces.js";
|
|
14
|
+
/**
|
|
15
|
+
* What surrounds a non-Han run, as far as a number in it cares.
|
|
16
|
+
*/
|
|
17
|
+
export interface RunContext {
|
|
18
|
+
readonly after: {
|
|
19
|
+
readonly character: string;
|
|
20
|
+
readonly syllable: Syllable | undefined;
|
|
21
|
+
};
|
|
22
|
+
/** Whether pinyin was written immediately before this run. */
|
|
23
|
+
readonly isAfterHan: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What surrounds a run once it has been decoded: the character after it, and
|
|
27
|
+
* the syllable that character is read as.
|
|
28
|
+
*
|
|
29
|
+
* The syllable is the one part of a number's context that a decode has to
|
|
30
|
+
* supply, and it is what a 一 ending the number assimilates to.
|
|
31
|
+
*/
|
|
32
|
+
export declare function surrounding(runs: readonly TextRun[], decoded: readonly (readonly ScoredWord[])[], at: number): RunContext;
|
|
33
|
+
/**
|
|
34
|
+
* The 汉字 a number in front of a Han run stands for, for that run's decode.
|
|
35
|
+
*
|
|
36
|
+
* Only the last segment of the run before, because only that one touches the
|
|
37
|
+
* Han: the D of 3D银行 comes between them, and a decode of 银行 that saw 三
|
|
38
|
+
* beside it would be reading a text nobody wrote.
|
|
39
|
+
*/
|
|
40
|
+
export declare function numeralBefore(segments: readonly NumeralSegment[]): string;
|
|
41
|
+
/**
|
|
42
|
+
* Write a stretch that was never Han, reading the numbers in it.
|
|
43
|
+
*
|
|
44
|
+
* Everything that is not a number goes through exactly as written, which is
|
|
45
|
+
* what this always did: digits are the only part of a non-Han run this package
|
|
46
|
+
* has anything to say about. Once a number *has* been read, though, the whole
|
|
47
|
+
* stretch is being said rather than shown, so its parts take the spacing of
|
|
48
|
+
* words — 3D打印 is `sān D dǎyìn` — and punctuation still takes none.
|
|
49
|
+
*/
|
|
50
|
+
export declare function writeNumbers(text: string, segments: readonly NumeralSegment[], context: RunContext, written: Written, options: {
|
|
51
|
+
readonly sandhi: SandhiOptions | undefined;
|
|
52
|
+
}): readonly ConvertedPiece[];
|
|
53
|
+
//# sourceMappingURL=numbers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/decode/numbers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;KACzC,CAAC;IACF,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,OAAO,EAAE,SAAS,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,EAC3C,EAAE,EAAE,MAAM,GACT,UAAU,CAQZ;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,GACtD,SAAS,cAAc,EAAE,CA6B3B"}
|