@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,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The artifact's on-disk format: its separators, its flags, and how a reading
|
|
3
|
+
* is written as one field.
|
|
4
|
+
*
|
|
5
|
+
* Both halves of `artifact.ts` — writing the file and reading it back — are
|
|
6
|
+
* held to the same answers here, which is what stops the two drifting apart.
|
|
7
|
+
*/
|
|
8
|
+
import { type Syllable } from "../syllable/syllable.js";
|
|
9
|
+
import type { DictionaryEntry } from "./entry.js";
|
|
10
|
+
/**
|
|
11
|
+
* Separator between a line's columns.
|
|
12
|
+
*/
|
|
13
|
+
export declare const COLUMN = "\t";
|
|
14
|
+
/**
|
|
15
|
+
* Separator between lines, matching the key index's own separator.
|
|
16
|
+
*/
|
|
17
|
+
export declare const LINE = "\n";
|
|
18
|
+
/**
|
|
19
|
+
* Separator between the alternate readings of a character.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ALTERNATE = ",";
|
|
22
|
+
/**
|
|
23
|
+
* The flag marking a proper noun.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PROPER_NOUN_FLAG = "p";
|
|
26
|
+
/**
|
|
27
|
+
* Where a proper name divides, written after the proper-noun flag.
|
|
28
|
+
*
|
|
29
|
+
* `p` alone is a proper noun whose parts CC-CEDICT does not divide; `p1` is one
|
|
30
|
+
* that divides after the first character, `p2.4` after the second and fourth.
|
|
31
|
+
* The positions are decimal and dot-separated rather than one digit each,
|
|
32
|
+
* because the longest word carrying any is 19 characters.
|
|
33
|
+
*
|
|
34
|
+
* It rides in the flags column rather than taking a column of its own because
|
|
35
|
+
* it is only ever present on a proper noun, and only 8,205 of 723,139 keys
|
|
36
|
+
* carry one — a sixth column would cost a separator on every line to say
|
|
37
|
+
* nothing on almost all of them. *
|
|
38
|
+
* `security/detect-unsafe-regex` flags the nested quantifier, and there is no
|
|
39
|
+
* ambiguity behind it: a literal `.` separates `\d+` from `(?:\.\d+)*`, so no
|
|
40
|
+
* input can be split between them two ways. Timed on a string of digits and
|
|
41
|
+
* dots that cannot match, it is linear — 8k to 128k characters doubles the time
|
|
42
|
+
* for each doubling of the input, 39µs to 607µs.
|
|
43
|
+
*/
|
|
44
|
+
export declare const NAME_BOUNDARIES: RegExp;
|
|
45
|
+
export declare const BOUNDARY_SEPARATOR = ".";
|
|
46
|
+
/**
|
|
47
|
+
* The boundaries a flags column states, empty where it states none.
|
|
48
|
+
*/
|
|
49
|
+
export declare function nameBoundariesIn(flags: string): readonly number[];
|
|
50
|
+
/**
|
|
51
|
+
* A compiled dictionary, in the form it is written to disk and read back.
|
|
52
|
+
*
|
|
53
|
+
* Three parallel pieces, all indexed by the same position: search `keys` for a
|
|
54
|
+
* word, and the line at that position in `entries` describes it. Nothing is
|
|
55
|
+
* parsed on load beyond scanning for separators — see BROWSER.md, where the
|
|
56
|
+
* measurement behind that choice is recorded.
|
|
57
|
+
*/
|
|
58
|
+
export interface DictionaryArtifact {
|
|
59
|
+
/** Sorted keys, newline-joined: the {@link KeyIndex} blob. */
|
|
60
|
+
readonly keys: string;
|
|
61
|
+
/** One line per key, in key order. */
|
|
62
|
+
readonly entries: string;
|
|
63
|
+
/** Quantised frequencies, packed two per byte. */
|
|
64
|
+
readonly frequencies: Uint8Array;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Write a reading in tone-numbered notation.
|
|
68
|
+
*
|
|
69
|
+
* Numbered rather than tone-marked because it is ASCII, so it survives any
|
|
70
|
+
* encoding, and because the tone is then a character rather than a combining
|
|
71
|
+
* mark that normalisation could move.
|
|
72
|
+
*/
|
|
73
|
+
export declare function encodeReading(syllables: readonly Syllable[]): string;
|
|
74
|
+
/**
|
|
75
|
+
* Read a reading back, or return undefined if any syllable is malformed.
|
|
76
|
+
*/
|
|
77
|
+
export declare function decodeReading(text: string): readonly Syllable[] | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Order two keys the way {@link KeyIndex} requires them: by UTF-16 code unit.
|
|
80
|
+
*/
|
|
81
|
+
export declare function byCodeUnit(left: string, right: string): number;
|
|
82
|
+
/**
|
|
83
|
+
* Every 繁體 spelling an entry claims a key for.
|
|
84
|
+
*/
|
|
85
|
+
export declare function traditionalForms(entry: DictionaryEntry): readonly string[];
|
|
86
|
+
//# sourceMappingURL=artifact-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-format.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,MAAM,OAAO,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,IAAI,OAAO,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,QAA6B,CAAC;AAE1D,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGjE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAIpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,GAAG,SAAS,CAQ3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAE1E"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The artifact's on-disk format: its separators, its flags, and how a reading
|
|
3
|
+
* is written as one field.
|
|
4
|
+
*
|
|
5
|
+
* Both halves of `artifact.ts` — writing the file and reading it back — are
|
|
6
|
+
* held to the same answers here, which is what stops the two drifting apart.
|
|
7
|
+
*/
|
|
8
|
+
import { readSyllable, writeSyllable, } from "../syllable/syllable.js";
|
|
9
|
+
/**
|
|
10
|
+
* Separator between a line's columns.
|
|
11
|
+
*/
|
|
12
|
+
export const COLUMN = "\t";
|
|
13
|
+
/**
|
|
14
|
+
* Separator between lines, matching the key index's own separator.
|
|
15
|
+
*/
|
|
16
|
+
export const LINE = "\n";
|
|
17
|
+
/**
|
|
18
|
+
* Separator between the alternate readings of a character.
|
|
19
|
+
*/
|
|
20
|
+
export const ALTERNATE = ",";
|
|
21
|
+
/**
|
|
22
|
+
* The flag marking a proper noun.
|
|
23
|
+
*/
|
|
24
|
+
export const PROPER_NOUN_FLAG = "p";
|
|
25
|
+
/**
|
|
26
|
+
* Where a proper name divides, written after the proper-noun flag.
|
|
27
|
+
*
|
|
28
|
+
* `p` alone is a proper noun whose parts CC-CEDICT does not divide; `p1` is one
|
|
29
|
+
* that divides after the first character, `p2.4` after the second and fourth.
|
|
30
|
+
* The positions are decimal and dot-separated rather than one digit each,
|
|
31
|
+
* because the longest word carrying any is 19 characters.
|
|
32
|
+
*
|
|
33
|
+
* It rides in the flags column rather than taking a column of its own because
|
|
34
|
+
* it is only ever present on a proper noun, and only 8,205 of 723,139 keys
|
|
35
|
+
* carry one — a sixth column would cost a separator on every line to say
|
|
36
|
+
* nothing on almost all of them. *
|
|
37
|
+
* `security/detect-unsafe-regex` flags the nested quantifier, and there is no
|
|
38
|
+
* ambiguity behind it: a literal `.` separates `\d+` from `(?:\.\d+)*`, so no
|
|
39
|
+
* input can be split between them two ways. Timed on a string of digits and
|
|
40
|
+
* dots that cannot match, it is linear — 8k to 128k characters doubles the time
|
|
41
|
+
* for each doubling of the input, 39µs to 607µs.
|
|
42
|
+
*/
|
|
43
|
+
export const NAME_BOUNDARIES = /^p(?<at>\d+(?:\.\d+)*)$/u;
|
|
44
|
+
export const BOUNDARY_SEPARATOR = ".";
|
|
45
|
+
/**
|
|
46
|
+
* The boundaries a flags column states, empty where it states none.
|
|
47
|
+
*/
|
|
48
|
+
export function nameBoundariesIn(flags) {
|
|
49
|
+
const at = NAME_BOUNDARIES.exec(flags)?.groups?.["at"];
|
|
50
|
+
return at === undefined ? [] : at.split(BOUNDARY_SEPARATOR).map(Number);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Write a reading in tone-numbered notation.
|
|
54
|
+
*
|
|
55
|
+
* Numbered rather than tone-marked because it is ASCII, so it survives any
|
|
56
|
+
* encoding, and because the tone is then a character rather than a combining
|
|
57
|
+
* mark that normalisation could move.
|
|
58
|
+
*/
|
|
59
|
+
export function encodeReading(syllables) {
|
|
60
|
+
return syllables
|
|
61
|
+
.map((syllable) => writeSyllable(syllable, "numbers"))
|
|
62
|
+
.join(" ");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Read a reading back, or return undefined if any syllable is malformed.
|
|
66
|
+
*/
|
|
67
|
+
export function decodeReading(text) {
|
|
68
|
+
if (text === "") {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const syllables = text.split(" ").map((token) => readSyllable(token));
|
|
72
|
+
return syllables.includes(undefined)
|
|
73
|
+
? undefined
|
|
74
|
+
: syllables;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Order two keys the way {@link KeyIndex} requires them: by UTF-16 code unit.
|
|
78
|
+
*/
|
|
79
|
+
export function byCodeUnit(left, right) {
|
|
80
|
+
if (left < right) {
|
|
81
|
+
return -1;
|
|
82
|
+
}
|
|
83
|
+
return left > right ? 1 : 0;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Every 繁體 spelling an entry claims a key for.
|
|
87
|
+
*/
|
|
88
|
+
export function traditionalForms(entry) {
|
|
89
|
+
return [entry.hant, ...(entry.hantVariants ?? [])];
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=artifact-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-format.js","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,YAAY,EAEZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AAEzB;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAA8B;IAC1D,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACrD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAE,SAAiC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DictionaryEntry } from "./entry.js";
|
|
2
|
+
import { type DictionaryArtifact } from "./artifact-format.js";
|
|
3
|
+
export { decodeReading, type DictionaryArtifact, encodeReading, traditionalForms, } from "./artifact-format.js";
|
|
4
|
+
/**
|
|
5
|
+
* Read an artifact back into entries, for tests and for the loader.
|
|
6
|
+
*
|
|
7
|
+
* The reverse of {@link buildArtifact} but for the two things it does not
|
|
8
|
+
* store: frequency comes back as a bucket rather than a count, since it is
|
|
9
|
+
* quantised on the way out, and 简体/繁體 pairing is absent, so every entry
|
|
10
|
+
* reports its key as both. Entries are returned in key order.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readArtifact(artifact: DictionaryArtifact): readonly DictionaryEntry[];
|
|
13
|
+
/**
|
|
14
|
+
* The reading every key in an artifact resolves to, in tone-numbered notation.
|
|
15
|
+
*
|
|
16
|
+
* Resolved rather than read off the line, since 87.8% of multi-character lines
|
|
17
|
+
* store no reading at all and mean "the characters' defaults, in order" — and
|
|
18
|
+
* those defaults are whatever *this* artifact holds. That is exactly what makes
|
|
19
|
+
* the comparison between tiers worth doing: a tier missing a character does not
|
|
20
|
+
* only lose that character, it changes every derived reading that stands on it.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readingsByKey(artifact: DictionaryArtifact): ReadonlyMap<string, string>;
|
|
23
|
+
/**
|
|
24
|
+
* The first key an artifact does not read back the same, or undefined.
|
|
25
|
+
*
|
|
26
|
+
* Only the fields the artifact stores are compared: frequency is quantised on
|
|
27
|
+
* the way out, and the 简体/繁體 labelling of a pair is not recoverable from a
|
|
28
|
+
* key alone, so neither is checked here.
|
|
29
|
+
*
|
|
30
|
+
* Returns the offending key rather than a bare false so that a build failure
|
|
31
|
+
* names the word to go and look at.
|
|
32
|
+
*/
|
|
33
|
+
export declare function findRoundTripFailure(entries: readonly DictionaryEntry[], artifact: DictionaryArtifact): string | undefined;
|
|
34
|
+
//# sourceMappingURL=artifact-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-read.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAIL,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,kBAAkB,GAC3B,SAAS,eAAe,EAAE,CA2D5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,GAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,GAAG,SAAS,CAkBpB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading the dictionary artifact back.
|
|
3
|
+
*
|
|
4
|
+
* The mirror of buildArtifact, and held to it by the round-trip check at the
|
|
5
|
+
* end of the build.
|
|
6
|
+
*/
|
|
7
|
+
import { claimKeys } from "./artifact.js";
|
|
8
|
+
import { toCharacters } from "../script/characters.js";
|
|
9
|
+
import { isSameReading } from "./entry.js";
|
|
10
|
+
import { FrequencyTable } from "./frequency-table.js";
|
|
11
|
+
import { KeyIndex } from "./key-index.js";
|
|
12
|
+
import { ALTERNATE, COLUMN, decodeReading, encodeReading, LINE, nameBoundariesIn, PROPER_NOUN_FLAG, } from "./artifact-format.js";
|
|
13
|
+
export { decodeReading, encodeReading, traditionalForms, } from "./artifact-format.js";
|
|
14
|
+
/**
|
|
15
|
+
* Read an artifact back into entries, for tests and for the loader.
|
|
16
|
+
*
|
|
17
|
+
* The reverse of {@link buildArtifact} but for the two things it does not
|
|
18
|
+
* store: frequency comes back as a bucket rather than a count, since it is
|
|
19
|
+
* quantised on the way out, and 简体/繁體 pairing is absent, so every entry
|
|
20
|
+
* reports its key as both. Entries are returned in key order.
|
|
21
|
+
*/
|
|
22
|
+
export function readArtifact(artifact) {
|
|
23
|
+
const index = KeyIndex.from(artifact.keys);
|
|
24
|
+
const lines = artifact.entries === "" ? [] : artifact.entries.split(LINE);
|
|
25
|
+
const frequencies = FrequencyTable.from(artifact.frequencies, index.size);
|
|
26
|
+
// Two passes: a derivable reading needs its characters' readings, which are
|
|
27
|
+
// themselves entries in the same artifact.
|
|
28
|
+
const defaults = new Map();
|
|
29
|
+
for (let at = 0; at < index.size; at++) {
|
|
30
|
+
const key = index.keyAt(at);
|
|
31
|
+
const reading = (lines[at] ?? "").split(COLUMN)[0] ?? "";
|
|
32
|
+
if (toCharacters(key).length === 1 && reading !== "") {
|
|
33
|
+
defaults.set(key, reading);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const entries = [];
|
|
37
|
+
for (let at = 0; at < index.size; at++) {
|
|
38
|
+
const key = index.keyAt(at);
|
|
39
|
+
const [reading = "", taiwan = "", partOfSpeech = "", flags = "", alternates = "",] = (lines[at] ?? "").split(COLUMN);
|
|
40
|
+
const nameBoundaries = nameBoundariesIn(flags);
|
|
41
|
+
const stored = reading === ""
|
|
42
|
+
? toCharacters(key)
|
|
43
|
+
.map((character) => defaults.get(character) ?? "")
|
|
44
|
+
.join(" ")
|
|
45
|
+
: reading;
|
|
46
|
+
const cn = decodeReading(stored);
|
|
47
|
+
if (cn === undefined) {
|
|
48
|
+
throw new Error(`artifact entry for ${key} has no readable reading`);
|
|
49
|
+
}
|
|
50
|
+
const tw = decodeReading(taiwan);
|
|
51
|
+
// The artifact stores keys, not pairs, so a key read back is both scripts
|
|
52
|
+
// as far as it knows. See buildArtifact for what that leaves out and why.
|
|
53
|
+
entries.push({
|
|
54
|
+
hans: key,
|
|
55
|
+
hant: key,
|
|
56
|
+
readings: { cn, ...(tw !== undefined && { tw }) },
|
|
57
|
+
frequency: frequencies.bucketOf(at),
|
|
58
|
+
partOfSpeech,
|
|
59
|
+
isProperNoun: flags.includes(PROPER_NOUN_FLAG),
|
|
60
|
+
...(nameBoundaries.length > 0 && { nameBoundaries }),
|
|
61
|
+
...(alternates !== "" && {
|
|
62
|
+
alternates: alternates
|
|
63
|
+
.split(ALTERNATE)
|
|
64
|
+
.map((text) => decodeReading(text))
|
|
65
|
+
.filter((decoded) => decoded !== undefined),
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return entries;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The reading every key in an artifact resolves to, in tone-numbered notation.
|
|
73
|
+
*
|
|
74
|
+
* Resolved rather than read off the line, since 87.8% of multi-character lines
|
|
75
|
+
* store no reading at all and mean "the characters' defaults, in order" — and
|
|
76
|
+
* those defaults are whatever *this* artifact holds. That is exactly what makes
|
|
77
|
+
* the comparison between tiers worth doing: a tier missing a character does not
|
|
78
|
+
* only lose that character, it changes every derived reading that stands on it.
|
|
79
|
+
*/
|
|
80
|
+
export function readingsByKey(artifact) {
|
|
81
|
+
const index = KeyIndex.from(artifact.keys);
|
|
82
|
+
const readings = new Map();
|
|
83
|
+
for (const [at, entry] of readArtifact(artifact).entries()) {
|
|
84
|
+
readings.set(index.keyAt(at), encodeReading(entry.readings.cn));
|
|
85
|
+
}
|
|
86
|
+
return readings;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The first key an artifact does not read back the same, or undefined.
|
|
90
|
+
*
|
|
91
|
+
* Only the fields the artifact stores are compared: frequency is quantised on
|
|
92
|
+
* the way out, and the 简体/繁體 labelling of a pair is not recoverable from a
|
|
93
|
+
* key alone, so neither is checked here.
|
|
94
|
+
*
|
|
95
|
+
* Returns the offending key rather than a bare false so that a build failure
|
|
96
|
+
* names the word to go and look at.
|
|
97
|
+
*/
|
|
98
|
+
export function findRoundTripFailure(entries, artifact) {
|
|
99
|
+
const index = KeyIndex.from(artifact.keys);
|
|
100
|
+
const read = readArtifact(artifact);
|
|
101
|
+
const byKey = new Map();
|
|
102
|
+
for (const [at, entry] of read.entries()) {
|
|
103
|
+
byKey.set(index.keyAt(at), entry);
|
|
104
|
+
}
|
|
105
|
+
for (const [key, entry] of claimKeys(entries)) {
|
|
106
|
+
const other = byKey.get(key);
|
|
107
|
+
if (other === undefined ||
|
|
108
|
+
!isSameReading(entry.readings.cn, other.readings.cn)) {
|
|
109
|
+
return key;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=artifact-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-read.js","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
export { claimKeys } from "./artifact-claims.js";
|
|
2
|
+
export { findRoundTripFailure, readArtifact, readingsByKey, } from "./artifact-read.js";
|
|
2
3
|
import type { DictionaryEntry } from "./entry.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* Three parallel pieces, all indexed by the same position: search `keys` for a
|
|
7
|
-
* word, and the line at that position in `entries` describes it. Nothing is
|
|
8
|
-
* parsed on load beyond scanning for separators — see BROWSER.md, where the
|
|
9
|
-
* measurement behind that choice is recorded.
|
|
10
|
-
*/
|
|
11
|
-
export interface DictionaryArtifact {
|
|
12
|
-
/** Sorted keys, newline-joined: the {@link KeyIndex} blob. */
|
|
13
|
-
readonly keys: string;
|
|
14
|
-
/** One line per key, in key order. */
|
|
15
|
-
readonly entries: string;
|
|
16
|
-
/** Quantised frequencies, packed two per byte. */
|
|
17
|
-
readonly frequencies: Uint8Array;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Write a reading in tone-numbered notation.
|
|
21
|
-
*
|
|
22
|
-
* Numbered rather than tone-marked because it is ASCII, so it survives any
|
|
23
|
-
* encoding, and because the tone is then a character rather than a combining
|
|
24
|
-
* mark that normalisation could move.
|
|
25
|
-
*/
|
|
26
|
-
export declare function encodeReading(syllables: readonly Syllable[]): string;
|
|
27
|
-
/**
|
|
28
|
-
* Read a reading back, or return undefined if any syllable is malformed.
|
|
29
|
-
*/
|
|
30
|
-
export declare function decodeReading(text: string): readonly Syllable[] | undefined;
|
|
31
|
-
/**
|
|
32
|
-
* Every 繁體 spelling an entry claims a key for.
|
|
33
|
-
*/
|
|
34
|
-
export declare function traditionalForms(entry: DictionaryEntry): readonly string[];
|
|
4
|
+
import { type DictionaryArtifact } from "./artifact-format.js";
|
|
5
|
+
export { decodeReading, type DictionaryArtifact, encodeReading, traditionalForms, } from "./artifact-format.js";
|
|
35
6
|
/**
|
|
36
7
|
* Compile merged entries into the artifact written to `data/`.
|
|
37
8
|
*
|
|
@@ -46,34 +17,4 @@ export declare function traditionalForms(entry: DictionaryEntry): readonly strin
|
|
|
46
17
|
* without the conversion path paying for it.
|
|
47
18
|
*/
|
|
48
19
|
export declare function buildArtifact(entries: readonly DictionaryEntry[]): DictionaryArtifact;
|
|
49
|
-
/**
|
|
50
|
-
* Read an artifact back into entries, for tests and for the loader.
|
|
51
|
-
*
|
|
52
|
-
* The reverse of {@link buildArtifact} but for the two things it does not
|
|
53
|
-
* store: frequency comes back as a bucket rather than a count, since it is
|
|
54
|
-
* quantised on the way out, and 简体/繁體 pairing is absent, so every entry
|
|
55
|
-
* reports its key as both. Entries are returned in key order.
|
|
56
|
-
*/
|
|
57
|
-
export declare function readArtifact(artifact: DictionaryArtifact): readonly DictionaryEntry[];
|
|
58
|
-
/**
|
|
59
|
-
* The reading every key in an artifact resolves to, in tone-numbered notation.
|
|
60
|
-
*
|
|
61
|
-
* Resolved rather than read off the line, since 87.8% of multi-character lines
|
|
62
|
-
* store no reading at all and mean "the characters' defaults, in order" — and
|
|
63
|
-
* those defaults are whatever *this* artifact holds. That is exactly what makes
|
|
64
|
-
* the comparison between tiers worth doing: a tier missing a character does not
|
|
65
|
-
* only lose that character, it changes every derived reading that stands on it.
|
|
66
|
-
*/
|
|
67
|
-
export declare function readingsByKey(artifact: DictionaryArtifact): ReadonlyMap<string, string>;
|
|
68
|
-
/**
|
|
69
|
-
* The first key an artifact does not read back the same, or undefined.
|
|
70
|
-
*
|
|
71
|
-
* Only the fields the artifact stores are compared: frequency is quantised on
|
|
72
|
-
* the way out, and the 简体/繁體 labelling of a pair is not recoverable from a
|
|
73
|
-
* key alone, so neither is checked here.
|
|
74
|
-
*
|
|
75
|
-
* Returns the offending key rather than a bare false so that a build failure
|
|
76
|
-
* names the word to go and look at.
|
|
77
|
-
*/
|
|
78
|
-
export declare function findRoundTripFailure(entries: readonly DictionaryEntry[], artifact: DictionaryArtifact): string | undefined;
|
|
79
20
|
//# sourceMappingURL=artifact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAKL,KAAK,kBAAkB,EAIxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAwD9B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,kBAAkB,CAqCpB"}
|