puzzle-lib 2.0.0-alpha.2 → 2.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -9
- package/build/src/{Braille → braille}/braille.d.ts +4 -4
- package/build/src/braille/braille.js +121 -0
- package/build/src/braille/braille.js.map +1 -0
- package/build/src/{Braille/BrailleDot.js → braille/dot.js} +3 -6
- package/build/src/braille/dot.js.map +1 -0
- package/build/src/{Braille/BrailleEncoding.js → braille/encoding.js} +4 -7
- package/build/src/braille/encoding.js.map +1 -0
- package/build/src/braille/index.d.ts +3 -0
- package/build/src/braille/index.js +4 -0
- package/build/src/braille/index.js.map +1 -0
- package/build/src/{Cipher → cipher}/cipher.js +10 -20
- package/build/src/cipher/cipher.js.map +1 -0
- package/build/src/cipher/index.d.ts +1 -0
- package/build/src/cipher/index.js +2 -0
- package/build/src/cipher/index.js.map +1 -0
- package/build/src/{Common/CharacterImage.d.ts → common/character-image.d.ts} +1 -1
- package/build/src/common/character-image.js +9 -0
- package/build/src/common/character-image.js.map +1 -0
- package/build/src/{Common/EncodingCategory.js → common/encoding-category.js} +3 -6
- package/build/src/common/encoding-category.js.map +1 -0
- package/build/src/{Common/EncodingEntry.d.ts → common/encoding-entry.d.ts} +1 -1
- package/build/src/{Common/EncodingEntry.js → common/encoding-entry.js} +2 -6
- package/build/src/common/encoding-entry.js.map +1 -0
- package/build/src/{Common/EncodingLookupResult.d.ts → common/encoding-lookup-result.d.ts} +1 -1
- package/build/src/common/encoding-lookup-result.js +8 -0
- package/build/src/common/encoding-lookup-result.js.map +1 -0
- package/build/src/common/index.d.ts +5 -0
- package/build/src/common/index.js +6 -0
- package/build/src/common/index.js.map +1 -0
- package/build/src/{Common/InlineSvg.js → common/inline-svg.js} +2 -6
- package/build/src/common/inline-svg.js.map +1 -0
- package/build/src/{Conversion/characterConversion.d.ts → conversion/character-conversion.d.ts} +1 -1
- package/build/src/{Conversion/characterConversion.js → conversion/character-conversion.js} +7 -13
- package/build/src/conversion/character-conversion.js.map +1 -0
- package/build/src/{Conversion/CharacterEncoding.d.ts → conversion/character-encoding.d.ts} +2 -1
- package/build/src/{Conversion/CharacterEncoding.js → conversion/character-encoding.js} +4 -6
- package/build/src/conversion/character-encoding.js.map +1 -0
- package/build/src/{Conversion/CharacterTableEntry.js → conversion/character-table-entry.js} +2 -6
- package/build/src/conversion/character-table-entry.js.map +1 -0
- package/build/src/{Conversion → conversion}/conversion.d.ts +3 -1
- package/build/src/conversion/conversion.js +183 -0
- package/build/src/conversion/conversion.js.map +1 -0
- package/build/src/conversion/index.d.ts +5 -0
- package/build/src/conversion/index.js +6 -0
- package/build/src/conversion/index.js.map +1 -0
- package/build/src/{Conversion/significantFigures.js → conversion/significant-figures.js} +4 -9
- package/build/src/conversion/significant-figures.js.map +1 -0
- package/build/src/{Morse/MorseEncoding.js → morse/encoding.js} +3 -6
- package/build/src/morse/encoding.js.map +1 -0
- package/build/src/morse/index.d.ts +2 -0
- package/build/src/morse/index.js +3 -0
- package/build/src/morse/index.js.map +1 -0
- package/build/src/{Morse → morse}/morse.d.ts +5 -5
- package/build/src/morse/morse.js +222 -0
- package/build/src/morse/morse.js.map +1 -0
- package/build/src/nato/character.js +9 -0
- package/build/src/nato/character.js.map +1 -0
- package/build/src/nato/index.d.ts +2 -0
- package/build/src/nato/index.js +3 -0
- package/build/src/nato/index.js.map +1 -0
- package/build/src/{Nato → nato}/nato.d.ts +1 -1
- package/build/src/nato/nato.js +33 -0
- package/build/src/nato/nato.js.map +1 -0
- package/build/src/naval-flags/index.d.ts +1 -0
- package/build/src/naval-flags/index.js +2 -0
- package/build/src/naval-flags/index.js.map +1 -0
- package/build/src/{NavalFlags/navalFlags.d.ts → naval-flags/naval-flags.d.ts} +1 -1
- package/build/src/{NavalFlags/navalFlags.js → naval-flags/naval-flags.js} +32 -36
- package/build/src/naval-flags/naval-flags.js.map +1 -0
- package/build/src/ngrams/bigrams.d.ts +2 -0
- package/build/src/ngrams/bigrams.js +684 -0
- package/build/src/ngrams/bigrams.js.map +1 -0
- package/build/src/ngrams/index.d.ts +1 -0
- package/build/src/ngrams/index.js +2 -0
- package/build/src/ngrams/index.js.map +1 -0
- package/build/src/ngrams/ngrams.d.ts +13 -0
- package/build/src/ngrams/ngrams.js +71 -0
- package/build/src/ngrams/ngrams.js.map +1 -0
- package/build/src/ngrams/trigrams.d.ts +2 -0
- package/build/src/ngrams/trigrams.js +17583 -0
- package/build/src/ngrams/trigrams.js.map +1 -0
- package/build/src/ngrams/unigrams.d.ts +2 -0
- package/build/src/ngrams/unigrams.js +34 -0
- package/build/src/ngrams/unigrams.js.map +1 -0
- package/build/src/phone/index.d.ts +2 -0
- package/build/src/phone/index.js +2 -0
- package/build/src/phone/index.js.map +1 -0
- package/build/src/phone/phone-mapping.d.ts +10 -0
- package/build/src/phone/phone-mapping.js +27 -0
- package/build/src/phone/phone-mapping.js.map +1 -0
- package/build/src/phone/phone.d.ts +27 -0
- package/build/src/phone/phone.js +62 -0
- package/build/src/phone/phone.js.map +1 -0
- package/build/src/pigpen/encoding.d.ts +29 -0
- package/build/src/pigpen/encoding.js +36 -0
- package/build/src/pigpen/encoding.js.map +1 -0
- package/build/src/pigpen/index.d.ts +3 -0
- package/build/src/pigpen/index.js +4 -0
- package/build/src/pigpen/index.js.map +1 -0
- package/build/src/pigpen/pigpen.d.ts +35 -0
- package/build/src/pigpen/pigpen.js +137 -0
- package/build/src/pigpen/pigpen.js.map +1 -0
- package/build/src/pigpen/segment.d.ts +12 -0
- package/build/src/pigpen/segment.js +14 -0
- package/build/src/pigpen/segment.js.map +1 -0
- package/build/src/resistor/index.d.ts +2 -0
- package/build/src/resistor/index.js +2 -0
- package/build/src/resistor/index.js.map +1 -0
- package/build/src/{Resistor → resistor}/resistor.js +7 -14
- package/build/src/resistor/resistor.js.map +1 -0
- package/build/src/{Semaphore/SemaphoreDirection.js → semaphore/direction.js} +3 -6
- package/build/src/semaphore/direction.js.map +1 -0
- package/build/src/{Semaphore/SemaphoreEncoding.js → semaphore/encoding.js} +4 -7
- package/build/src/semaphore/encoding.js.map +1 -0
- package/build/src/semaphore/index.d.ts +3 -0
- package/build/src/semaphore/index.js +4 -0
- package/build/src/semaphore/index.js.map +1 -0
- package/build/src/{Semaphore → semaphore}/semaphore.d.ts +4 -4
- package/build/src/semaphore/semaphore.js +207 -0
- package/build/src/semaphore/semaphore.js.map +1 -0
- package/build/src/{WordSearch/WordSearchDirection.js → word-search/direction.js} +3 -6
- package/build/src/word-search/direction.js.map +1 -0
- package/build/src/word-search/index.d.ts +5 -0
- package/build/src/word-search/index.js +4 -0
- package/build/src/word-search/index.js.map +1 -0
- package/build/src/word-search/point.d.ts +4 -0
- package/build/src/word-search/point.js +2 -0
- package/build/src/word-search/point.js.map +1 -0
- package/build/src/word-search/result.d.ts +6 -0
- package/build/src/word-search/result.js +9 -0
- package/build/src/word-search/result.js.map +1 -0
- package/build/src/word-search/word-search.d.ts +10 -0
- package/build/src/{WordSearch/wordSearch.js → word-search/word-search.js} +28 -55
- package/build/src/word-search/word-search.js.map +1 -0
- package/package.json +57 -3
- package/src/{Braille → braille}/braille.ts +5 -5
- package/src/{Braille/BrailleEncoding.ts → braille/encoding.ts} +1 -1
- package/src/braille/index.ts +8 -0
- package/src/{Cipher → cipher}/cipher.ts +1 -1
- package/src/cipher/index.ts +10 -0
- package/src/{Common/CharacterImage.ts → common/character-image.ts} +1 -1
- package/src/{Common/EncodingEntry.ts → common/encoding-entry.ts} +1 -1
- package/src/{Common/EncodingLookupResult.ts → common/encoding-lookup-result.ts} +1 -1
- package/src/common/index.ts +5 -0
- package/src/{Conversion/characterConversion.ts → conversion/character-conversion.ts} +1 -1
- package/src/{Conversion/CharacterEncoding.ts → conversion/character-encoding.ts} +1 -0
- package/src/{Conversion → conversion}/conversion.ts +77 -2
- package/src/conversion/index.ts +15 -0
- package/src/morse/index.ts +14 -0
- package/src/{Morse → morse}/morse.ts +6 -6
- package/src/nato/index.ts +2 -0
- package/src/{Nato → nato}/nato.ts +1 -1
- package/src/naval-flags/index.ts +1 -0
- package/src/{NavalFlags/navalFlags.ts → naval-flags/naval-flags.ts} +2 -2
- package/src/ngrams/bigrams.ts +684 -0
- package/src/ngrams/index.ts +1 -0
- package/src/ngrams/ngrams.ts +73 -0
- package/src/ngrams/trigrams.ts +17584 -0
- package/src/ngrams/unigrams.ts +34 -0
- package/src/phone/index.ts +2 -0
- package/src/phone/phone-mapping.ts +27 -0
- package/src/phone/phone.ts +77 -0
- package/src/pigpen/encoding.ts +66 -0
- package/src/pigpen/index.ts +11 -0
- package/src/pigpen/pigpen.ts +168 -0
- package/src/pigpen/segment.ts +12 -0
- package/src/resistor/index.ts +9 -0
- package/src/{Semaphore/SemaphoreEncoding.ts → semaphore/encoding.ts} +1 -1
- package/src/semaphore/index.ts +13 -0
- package/src/{Semaphore → semaphore}/semaphore.ts +5 -5
- package/src/trie-prefix-tree.d.ts +1 -3
- package/src/word-search/index.ts +5 -0
- package/src/word-search/point.ts +4 -0
- package/src/word-search/result.ts +10 -0
- package/src/{WordSearch/wordSearch.ts → word-search/word-search.ts} +44 -70
- package/build/src/Braille/BrailleDot.js.map +0 -1
- package/build/src/Braille/BrailleEncoding.js.map +0 -1
- package/build/src/Braille/braille.js +0 -127
- package/build/src/Braille/braille.js.map +0 -1
- package/build/src/Cipher/cipher.js.map +0 -1
- package/build/src/Common/CharacterImage.js +0 -13
- package/build/src/Common/CharacterImage.js.map +0 -1
- package/build/src/Common/EncodingCategory.js.map +0 -1
- package/build/src/Common/EncodingEntry.js.map +0 -1
- package/build/src/Common/EncodingLookupResult.js +0 -12
- package/build/src/Common/EncodingLookupResult.js.map +0 -1
- package/build/src/Common/InlineSvg.js.map +0 -1
- package/build/src/Conversion/CharacterEncoding.js.map +0 -1
- package/build/src/Conversion/CharacterTableEntry.js.map +0 -1
- package/build/src/Conversion/characterConversion.js.map +0 -1
- package/build/src/Conversion/conversion.js +0 -130
- package/build/src/Conversion/conversion.js.map +0 -1
- package/build/src/Conversion/significantFigures.js.map +0 -1
- package/build/src/Morse/MorseEncoding.js.map +0 -1
- package/build/src/Morse/morse.js +0 -232
- package/build/src/Morse/morse.js.map +0 -1
- package/build/src/Nato/NatoCharacter.js +0 -13
- package/build/src/Nato/NatoCharacter.js.map +0 -1
- package/build/src/Nato/nato.js +0 -37
- package/build/src/Nato/nato.js.map +0 -1
- package/build/src/NavalFlags/navalFlags.js.map +0 -1
- package/build/src/Resistor/resistor.js.map +0 -1
- package/build/src/Semaphore/SemaphoreDirection.js.map +0 -1
- package/build/src/Semaphore/SemaphoreEncoding.js.map +0 -1
- package/build/src/Semaphore/semaphore.js +0 -218
- package/build/src/Semaphore/semaphore.js.map +0 -1
- package/build/src/WordSearch/Point.d.ts +0 -4
- package/build/src/WordSearch/Point.js +0 -3
- package/build/src/WordSearch/Point.js.map +0 -1
- package/build/src/WordSearch/Result.d.ts +0 -6
- package/build/src/WordSearch/Result.js +0 -13
- package/build/src/WordSearch/Result.js.map +0 -1
- package/build/src/WordSearch/WordSearchDirection.js.map +0 -1
- package/build/src/WordSearch/wordSearch.d.ts +0 -16
- package/build/src/WordSearch/wordSearch.js.map +0 -1
- package/build/src/index.d.ts +0 -29
- package/build/src/index.js +0 -102
- package/build/src/index.js.map +0 -1
- package/src/WordSearch/Point.ts +0 -4
- package/src/WordSearch/Result.ts +0 -10
- package/src/index.ts +0 -90
- /package/build/src/{Braille/BrailleDot.d.ts → braille/dot.d.ts} +0 -0
- /package/build/src/{Braille/BrailleEncoding.d.ts → braille/encoding.d.ts} +0 -0
- /package/build/src/{Cipher → cipher}/cipher.d.ts +0 -0
- /package/build/src/{Common/EncodingCategory.d.ts → common/encoding-category.d.ts} +0 -0
- /package/build/src/{Common/InlineSvg.d.ts → common/inline-svg.d.ts} +0 -0
- /package/build/src/{Conversion/CharacterTableEntry.d.ts → conversion/character-table-entry.d.ts} +0 -0
- /package/build/src/{Conversion/significantFigures.d.ts → conversion/significant-figures.d.ts} +0 -0
- /package/build/src/{Morse/MorseEncoding.d.ts → morse/encoding.d.ts} +0 -0
- /package/build/src/{Nato/NatoCharacter.d.ts → nato/character.d.ts} +0 -0
- /package/build/src/{Resistor → resistor}/resistor.d.ts +0 -0
- /package/build/src/{Semaphore/SemaphoreDirection.d.ts → semaphore/direction.d.ts} +0 -0
- /package/build/src/{Semaphore/SemaphoreEncoding.d.ts → semaphore/encoding.d.ts} +0 -0
- /package/build/src/{WordSearch/WordSearchDirection.d.ts → word-search/direction.d.ts} +0 -0
- /package/src/{Braille/BrailleDot.ts → braille/dot.ts} +0 -0
- /package/src/{Common/EncodingCategory.ts → common/encoding-category.ts} +0 -0
- /package/src/{Common/InlineSvg.ts → common/inline-svg.ts} +0 -0
- /package/src/{Conversion/CharacterTableEntry.ts → conversion/character-table-entry.ts} +0 -0
- /package/src/{Conversion/significantFigures.ts → conversion/significant-figures.ts} +0 -0
- /package/src/{Morse/MorseEncoding.ts → morse/encoding.ts} +0 -0
- /package/src/{Nato/NatoCharacter.ts → nato/character.ts} +0 -0
- /package/src/{NavalFlags → naval-flags}/LICENSE +0 -0
- /package/src/{Resistor → resistor}/resistor.ts +0 -0
- /package/src/{Semaphore/SemaphoreDirection.ts → semaphore/direction.ts} +0 -0
- /package/src/{WordSearch/WordSearchDirection.ts → word-search/direction.ts} +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import {BIGRAM_LOG_PROB, MIN_BIGRAM_LOG_PROB} from './bigrams.js';
|
|
2
|
+
import {TRIGRAM_LOG_PROB, MIN_TRIGRAM_LOG_PROB} from './trigrams.js';
|
|
3
|
+
import {UNIGRAM_LOG_PROB, MIN_UNIGRAM_LOG_PROB} from './unigrams.js';
|
|
4
|
+
|
|
5
|
+
function isLetter(c: string): boolean {
|
|
6
|
+
return c >= 'a' && c <= 'z';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Returns the unigram log-probability for a single letter.
|
|
11
|
+
*/
|
|
12
|
+
function scoreUnigram(a: string): number {
|
|
13
|
+
return UNIGRAM_LOG_PROB[a.toLowerCase()] ?? MIN_UNIGRAM_LOG_PROB;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns the bigram log-probability for a pair of letters.
|
|
18
|
+
*/
|
|
19
|
+
function scoreBigram(a: string, b: string): number {
|
|
20
|
+
const key = (a + b).toLowerCase();
|
|
21
|
+
return BIGRAM_LOG_PROB[key] ?? MIN_BIGRAM_LOG_PROB;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the trigram log-probability for three letters.
|
|
26
|
+
*/
|
|
27
|
+
function scoreTrigram(a: string, b: string, c: string): number {
|
|
28
|
+
const key = (a + b + c).toLowerCase();
|
|
29
|
+
return TRIGRAM_LOG_PROB[key] ?? MIN_TRIGRAM_LOG_PROB;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Scores adding a new letter given the preceding context.
|
|
34
|
+
* Uses the highest available n-gram: trigram if 2+ prior chars,
|
|
35
|
+
* bigram if 1 prior char, unigram if starting fresh.
|
|
36
|
+
*/
|
|
37
|
+
export function scoreNextLetter(context: string, letter: string): number {
|
|
38
|
+
const len = context.length;
|
|
39
|
+
if (len >= 2) {
|
|
40
|
+
return scoreTrigram(context[len - 2], context[len - 1], letter);
|
|
41
|
+
} else if (len === 1) {
|
|
42
|
+
return scoreBigram(context[0], letter);
|
|
43
|
+
}
|
|
44
|
+
return scoreUnigram(letter);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Scores a complete text string by summing n-gram log-probabilities.
|
|
49
|
+
* Uses unigram for the first character, bigram for the second,
|
|
50
|
+
* and trigrams for all subsequent characters. Non-letter characters
|
|
51
|
+
* are skipped. Input is normalized to lowercase once before scoring.
|
|
52
|
+
*/
|
|
53
|
+
export function scoreText(text: string): number {
|
|
54
|
+
const lower = text.toLowerCase();
|
|
55
|
+
const letters: string[] = [];
|
|
56
|
+
for (const c of lower) {
|
|
57
|
+
if (isLetter(c)) {
|
|
58
|
+
letters.push(c);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (letters.length === 0) return 0;
|
|
62
|
+
let score = UNIGRAM_LOG_PROB[letters[0]] ?? MIN_UNIGRAM_LOG_PROB;
|
|
63
|
+
for (let i = 1; i < letters.length; i++) {
|
|
64
|
+
if (i >= 2) {
|
|
65
|
+
const key = letters[i - 2] + letters[i - 1] + letters[i];
|
|
66
|
+
score += TRIGRAM_LOG_PROB[key] ?? MIN_TRIGRAM_LOG_PROB;
|
|
67
|
+
} else {
|
|
68
|
+
const key = letters[i - 1] + letters[i];
|
|
69
|
+
score += BIGRAM_LOG_PROB[key] ?? MIN_BIGRAM_LOG_PROB;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return score;
|
|
73
|
+
}
|