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.
Files changed (246) hide show
  1. package/README.md +62 -9
  2. package/build/src/{Braille → braille}/braille.d.ts +4 -4
  3. package/build/src/braille/braille.js +121 -0
  4. package/build/src/braille/braille.js.map +1 -0
  5. package/build/src/{Braille/BrailleDot.js → braille/dot.js} +3 -6
  6. package/build/src/braille/dot.js.map +1 -0
  7. package/build/src/{Braille/BrailleEncoding.js → braille/encoding.js} +4 -7
  8. package/build/src/braille/encoding.js.map +1 -0
  9. package/build/src/braille/index.d.ts +3 -0
  10. package/build/src/braille/index.js +4 -0
  11. package/build/src/braille/index.js.map +1 -0
  12. package/build/src/{Cipher → cipher}/cipher.js +10 -20
  13. package/build/src/cipher/cipher.js.map +1 -0
  14. package/build/src/cipher/index.d.ts +1 -0
  15. package/build/src/cipher/index.js +2 -0
  16. package/build/src/cipher/index.js.map +1 -0
  17. package/build/src/{Common/CharacterImage.d.ts → common/character-image.d.ts} +1 -1
  18. package/build/src/common/character-image.js +9 -0
  19. package/build/src/common/character-image.js.map +1 -0
  20. package/build/src/{Common/EncodingCategory.js → common/encoding-category.js} +3 -6
  21. package/build/src/common/encoding-category.js.map +1 -0
  22. package/build/src/{Common/EncodingEntry.d.ts → common/encoding-entry.d.ts} +1 -1
  23. package/build/src/{Common/EncodingEntry.js → common/encoding-entry.js} +2 -6
  24. package/build/src/common/encoding-entry.js.map +1 -0
  25. package/build/src/{Common/EncodingLookupResult.d.ts → common/encoding-lookup-result.d.ts} +1 -1
  26. package/build/src/common/encoding-lookup-result.js +8 -0
  27. package/build/src/common/encoding-lookup-result.js.map +1 -0
  28. package/build/src/common/index.d.ts +5 -0
  29. package/build/src/common/index.js +6 -0
  30. package/build/src/common/index.js.map +1 -0
  31. package/build/src/{Common/InlineSvg.js → common/inline-svg.js} +2 -6
  32. package/build/src/common/inline-svg.js.map +1 -0
  33. package/build/src/{Conversion/characterConversion.d.ts → conversion/character-conversion.d.ts} +1 -1
  34. package/build/src/{Conversion/characterConversion.js → conversion/character-conversion.js} +7 -13
  35. package/build/src/conversion/character-conversion.js.map +1 -0
  36. package/build/src/{Conversion/CharacterEncoding.d.ts → conversion/character-encoding.d.ts} +2 -1
  37. package/build/src/{Conversion/CharacterEncoding.js → conversion/character-encoding.js} +4 -6
  38. package/build/src/conversion/character-encoding.js.map +1 -0
  39. package/build/src/{Conversion/CharacterTableEntry.js → conversion/character-table-entry.js} +2 -6
  40. package/build/src/conversion/character-table-entry.js.map +1 -0
  41. package/build/src/{Conversion → conversion}/conversion.d.ts +3 -1
  42. package/build/src/conversion/conversion.js +183 -0
  43. package/build/src/conversion/conversion.js.map +1 -0
  44. package/build/src/conversion/index.d.ts +5 -0
  45. package/build/src/conversion/index.js +6 -0
  46. package/build/src/conversion/index.js.map +1 -0
  47. package/build/src/{Conversion/significantFigures.js → conversion/significant-figures.js} +4 -9
  48. package/build/src/conversion/significant-figures.js.map +1 -0
  49. package/build/src/{Morse/MorseEncoding.js → morse/encoding.js} +3 -6
  50. package/build/src/morse/encoding.js.map +1 -0
  51. package/build/src/morse/index.d.ts +2 -0
  52. package/build/src/morse/index.js +3 -0
  53. package/build/src/morse/index.js.map +1 -0
  54. package/build/src/{Morse → morse}/morse.d.ts +5 -5
  55. package/build/src/morse/morse.js +222 -0
  56. package/build/src/morse/morse.js.map +1 -0
  57. package/build/src/nato/character.js +9 -0
  58. package/build/src/nato/character.js.map +1 -0
  59. package/build/src/nato/index.d.ts +2 -0
  60. package/build/src/nato/index.js +3 -0
  61. package/build/src/nato/index.js.map +1 -0
  62. package/build/src/{Nato → nato}/nato.d.ts +1 -1
  63. package/build/src/nato/nato.js +33 -0
  64. package/build/src/nato/nato.js.map +1 -0
  65. package/build/src/naval-flags/index.d.ts +1 -0
  66. package/build/src/naval-flags/index.js +2 -0
  67. package/build/src/naval-flags/index.js.map +1 -0
  68. package/build/src/{NavalFlags/navalFlags.d.ts → naval-flags/naval-flags.d.ts} +1 -1
  69. package/build/src/{NavalFlags/navalFlags.js → naval-flags/naval-flags.js} +32 -36
  70. package/build/src/naval-flags/naval-flags.js.map +1 -0
  71. package/build/src/ngrams/bigrams.d.ts +2 -0
  72. package/build/src/ngrams/bigrams.js +684 -0
  73. package/build/src/ngrams/bigrams.js.map +1 -0
  74. package/build/src/ngrams/index.d.ts +1 -0
  75. package/build/src/ngrams/index.js +2 -0
  76. package/build/src/ngrams/index.js.map +1 -0
  77. package/build/src/ngrams/ngrams.d.ts +13 -0
  78. package/build/src/ngrams/ngrams.js +71 -0
  79. package/build/src/ngrams/ngrams.js.map +1 -0
  80. package/build/src/ngrams/trigrams.d.ts +2 -0
  81. package/build/src/ngrams/trigrams.js +17583 -0
  82. package/build/src/ngrams/trigrams.js.map +1 -0
  83. package/build/src/ngrams/unigrams.d.ts +2 -0
  84. package/build/src/ngrams/unigrams.js +34 -0
  85. package/build/src/ngrams/unigrams.js.map +1 -0
  86. package/build/src/phone/index.d.ts +2 -0
  87. package/build/src/phone/index.js +2 -0
  88. package/build/src/phone/index.js.map +1 -0
  89. package/build/src/phone/phone-mapping.d.ts +10 -0
  90. package/build/src/phone/phone-mapping.js +27 -0
  91. package/build/src/phone/phone-mapping.js.map +1 -0
  92. package/build/src/phone/phone.d.ts +27 -0
  93. package/build/src/phone/phone.js +62 -0
  94. package/build/src/phone/phone.js.map +1 -0
  95. package/build/src/pigpen/encoding.d.ts +29 -0
  96. package/build/src/pigpen/encoding.js +36 -0
  97. package/build/src/pigpen/encoding.js.map +1 -0
  98. package/build/src/pigpen/index.d.ts +3 -0
  99. package/build/src/pigpen/index.js +4 -0
  100. package/build/src/pigpen/index.js.map +1 -0
  101. package/build/src/pigpen/pigpen.d.ts +35 -0
  102. package/build/src/pigpen/pigpen.js +137 -0
  103. package/build/src/pigpen/pigpen.js.map +1 -0
  104. package/build/src/pigpen/segment.d.ts +12 -0
  105. package/build/src/pigpen/segment.js +14 -0
  106. package/build/src/pigpen/segment.js.map +1 -0
  107. package/build/src/resistor/index.d.ts +2 -0
  108. package/build/src/resistor/index.js +2 -0
  109. package/build/src/resistor/index.js.map +1 -0
  110. package/build/src/{Resistor → resistor}/resistor.js +7 -14
  111. package/build/src/resistor/resistor.js.map +1 -0
  112. package/build/src/{Semaphore/SemaphoreDirection.js → semaphore/direction.js} +3 -6
  113. package/build/src/semaphore/direction.js.map +1 -0
  114. package/build/src/{Semaphore/SemaphoreEncoding.js → semaphore/encoding.js} +4 -7
  115. package/build/src/semaphore/encoding.js.map +1 -0
  116. package/build/src/semaphore/index.d.ts +3 -0
  117. package/build/src/semaphore/index.js +4 -0
  118. package/build/src/semaphore/index.js.map +1 -0
  119. package/build/src/{Semaphore → semaphore}/semaphore.d.ts +4 -4
  120. package/build/src/semaphore/semaphore.js +207 -0
  121. package/build/src/semaphore/semaphore.js.map +1 -0
  122. package/build/src/{WordSearch/WordSearchDirection.js → word-search/direction.js} +3 -6
  123. package/build/src/word-search/direction.js.map +1 -0
  124. package/build/src/word-search/index.d.ts +5 -0
  125. package/build/src/word-search/index.js +4 -0
  126. package/build/src/word-search/index.js.map +1 -0
  127. package/build/src/word-search/point.d.ts +4 -0
  128. package/build/src/word-search/point.js +2 -0
  129. package/build/src/word-search/point.js.map +1 -0
  130. package/build/src/word-search/result.d.ts +6 -0
  131. package/build/src/word-search/result.js +9 -0
  132. package/build/src/word-search/result.js.map +1 -0
  133. package/build/src/word-search/word-search.d.ts +10 -0
  134. package/build/src/{WordSearch/wordSearch.js → word-search/word-search.js} +28 -55
  135. package/build/src/word-search/word-search.js.map +1 -0
  136. package/package.json +57 -3
  137. package/src/{Braille → braille}/braille.ts +5 -5
  138. package/src/{Braille/BrailleEncoding.ts → braille/encoding.ts} +1 -1
  139. package/src/braille/index.ts +8 -0
  140. package/src/{Cipher → cipher}/cipher.ts +1 -1
  141. package/src/cipher/index.ts +10 -0
  142. package/src/{Common/CharacterImage.ts → common/character-image.ts} +1 -1
  143. package/src/{Common/EncodingEntry.ts → common/encoding-entry.ts} +1 -1
  144. package/src/{Common/EncodingLookupResult.ts → common/encoding-lookup-result.ts} +1 -1
  145. package/src/common/index.ts +5 -0
  146. package/src/{Conversion/characterConversion.ts → conversion/character-conversion.ts} +1 -1
  147. package/src/{Conversion/CharacterEncoding.ts → conversion/character-encoding.ts} +1 -0
  148. package/src/{Conversion → conversion}/conversion.ts +77 -2
  149. package/src/conversion/index.ts +15 -0
  150. package/src/morse/index.ts +14 -0
  151. package/src/{Morse → morse}/morse.ts +6 -6
  152. package/src/nato/index.ts +2 -0
  153. package/src/{Nato → nato}/nato.ts +1 -1
  154. package/src/naval-flags/index.ts +1 -0
  155. package/src/{NavalFlags/navalFlags.ts → naval-flags/naval-flags.ts} +2 -2
  156. package/src/ngrams/bigrams.ts +684 -0
  157. package/src/ngrams/index.ts +1 -0
  158. package/src/ngrams/ngrams.ts +73 -0
  159. package/src/ngrams/trigrams.ts +17584 -0
  160. package/src/ngrams/unigrams.ts +34 -0
  161. package/src/phone/index.ts +2 -0
  162. package/src/phone/phone-mapping.ts +27 -0
  163. package/src/phone/phone.ts +77 -0
  164. package/src/pigpen/encoding.ts +66 -0
  165. package/src/pigpen/index.ts +11 -0
  166. package/src/pigpen/pigpen.ts +168 -0
  167. package/src/pigpen/segment.ts +12 -0
  168. package/src/resistor/index.ts +9 -0
  169. package/src/{Semaphore/SemaphoreEncoding.ts → semaphore/encoding.ts} +1 -1
  170. package/src/semaphore/index.ts +13 -0
  171. package/src/{Semaphore → semaphore}/semaphore.ts +5 -5
  172. package/src/trie-prefix-tree.d.ts +1 -3
  173. package/src/word-search/index.ts +5 -0
  174. package/src/word-search/point.ts +4 -0
  175. package/src/word-search/result.ts +10 -0
  176. package/src/{WordSearch/wordSearch.ts → word-search/word-search.ts} +44 -70
  177. package/build/src/Braille/BrailleDot.js.map +0 -1
  178. package/build/src/Braille/BrailleEncoding.js.map +0 -1
  179. package/build/src/Braille/braille.js +0 -127
  180. package/build/src/Braille/braille.js.map +0 -1
  181. package/build/src/Cipher/cipher.js.map +0 -1
  182. package/build/src/Common/CharacterImage.js +0 -13
  183. package/build/src/Common/CharacterImage.js.map +0 -1
  184. package/build/src/Common/EncodingCategory.js.map +0 -1
  185. package/build/src/Common/EncodingEntry.js.map +0 -1
  186. package/build/src/Common/EncodingLookupResult.js +0 -12
  187. package/build/src/Common/EncodingLookupResult.js.map +0 -1
  188. package/build/src/Common/InlineSvg.js.map +0 -1
  189. package/build/src/Conversion/CharacterEncoding.js.map +0 -1
  190. package/build/src/Conversion/CharacterTableEntry.js.map +0 -1
  191. package/build/src/Conversion/characterConversion.js.map +0 -1
  192. package/build/src/Conversion/conversion.js +0 -130
  193. package/build/src/Conversion/conversion.js.map +0 -1
  194. package/build/src/Conversion/significantFigures.js.map +0 -1
  195. package/build/src/Morse/MorseEncoding.js.map +0 -1
  196. package/build/src/Morse/morse.js +0 -232
  197. package/build/src/Morse/morse.js.map +0 -1
  198. package/build/src/Nato/NatoCharacter.js +0 -13
  199. package/build/src/Nato/NatoCharacter.js.map +0 -1
  200. package/build/src/Nato/nato.js +0 -37
  201. package/build/src/Nato/nato.js.map +0 -1
  202. package/build/src/NavalFlags/navalFlags.js.map +0 -1
  203. package/build/src/Resistor/resistor.js.map +0 -1
  204. package/build/src/Semaphore/SemaphoreDirection.js.map +0 -1
  205. package/build/src/Semaphore/SemaphoreEncoding.js.map +0 -1
  206. package/build/src/Semaphore/semaphore.js +0 -218
  207. package/build/src/Semaphore/semaphore.js.map +0 -1
  208. package/build/src/WordSearch/Point.d.ts +0 -4
  209. package/build/src/WordSearch/Point.js +0 -3
  210. package/build/src/WordSearch/Point.js.map +0 -1
  211. package/build/src/WordSearch/Result.d.ts +0 -6
  212. package/build/src/WordSearch/Result.js +0 -13
  213. package/build/src/WordSearch/Result.js.map +0 -1
  214. package/build/src/WordSearch/WordSearchDirection.js.map +0 -1
  215. package/build/src/WordSearch/wordSearch.d.ts +0 -16
  216. package/build/src/WordSearch/wordSearch.js.map +0 -1
  217. package/build/src/index.d.ts +0 -29
  218. package/build/src/index.js +0 -102
  219. package/build/src/index.js.map +0 -1
  220. package/src/WordSearch/Point.ts +0 -4
  221. package/src/WordSearch/Result.ts +0 -10
  222. package/src/index.ts +0 -90
  223. /package/build/src/{Braille/BrailleDot.d.ts → braille/dot.d.ts} +0 -0
  224. /package/build/src/{Braille/BrailleEncoding.d.ts → braille/encoding.d.ts} +0 -0
  225. /package/build/src/{Cipher → cipher}/cipher.d.ts +0 -0
  226. /package/build/src/{Common/EncodingCategory.d.ts → common/encoding-category.d.ts} +0 -0
  227. /package/build/src/{Common/InlineSvg.d.ts → common/inline-svg.d.ts} +0 -0
  228. /package/build/src/{Conversion/CharacterTableEntry.d.ts → conversion/character-table-entry.d.ts} +0 -0
  229. /package/build/src/{Conversion/significantFigures.d.ts → conversion/significant-figures.d.ts} +0 -0
  230. /package/build/src/{Morse/MorseEncoding.d.ts → morse/encoding.d.ts} +0 -0
  231. /package/build/src/{Nato/NatoCharacter.d.ts → nato/character.d.ts} +0 -0
  232. /package/build/src/{Resistor → resistor}/resistor.d.ts +0 -0
  233. /package/build/src/{Semaphore/SemaphoreDirection.d.ts → semaphore/direction.d.ts} +0 -0
  234. /package/build/src/{Semaphore/SemaphoreEncoding.d.ts → semaphore/encoding.d.ts} +0 -0
  235. /package/build/src/{WordSearch/WordSearchDirection.d.ts → word-search/direction.d.ts} +0 -0
  236. /package/src/{Braille/BrailleDot.ts → braille/dot.ts} +0 -0
  237. /package/src/{Common/EncodingCategory.ts → common/encoding-category.ts} +0 -0
  238. /package/src/{Common/InlineSvg.ts → common/inline-svg.ts} +0 -0
  239. /package/src/{Conversion/CharacterTableEntry.ts → conversion/character-table-entry.ts} +0 -0
  240. /package/src/{Conversion/significantFigures.ts → conversion/significant-figures.ts} +0 -0
  241. /package/src/{Morse/MorseEncoding.ts → morse/encoding.ts} +0 -0
  242. /package/src/{Nato/NatoCharacter.ts → nato/character.ts} +0 -0
  243. /package/src/{NavalFlags → naval-flags}/LICENSE +0 -0
  244. /package/src/{Resistor → resistor}/resistor.ts +0 -0
  245. /package/src/{Semaphore/SemaphoreDirection.ts → semaphore/direction.ts} +0 -0
  246. /package/src/{WordSearch/WordSearchDirection.ts → word-search/direction.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ export declare const UNIGRAM_LOG_PROB: Record<string, number>;
2
+ export declare const MIN_UNIGRAM_LOG_PROB = -11.560645;
@@ -0,0 +1,34 @@
1
+ // Log-probabilities of English letter unigrams.
2
+ // Derived from bigram frequencies (sum of P(xy) over all y for each x).
3
+ // Original bigram source: Peter Norvig, Google Web Trillion Word Corpus (public domain)
4
+ // http://norvig.com/ngrams/count_2l.txt
5
+ export const UNIGRAM_LOG_PROB = {
6
+ e: -2.186224,
7
+ a: -2.448764,
8
+ t: -2.47288,
9
+ o: -2.501531,
10
+ i: -2.516878,
11
+ n: -2.681277,
12
+ r: -2.700564,
13
+ s: -2.800337,
14
+ l: -3.133597,
15
+ c: -3.206786,
16
+ h: -3.266123,
17
+ d: -3.428238,
18
+ u: -3.464367,
19
+ m: -3.543925,
20
+ p: -3.613343,
21
+ f: -3.87574,
22
+ g: -3.926056,
23
+ b: -4.025837,
24
+ w: -4.158706,
25
+ y: -4.284818,
26
+ v: -4.386163,
27
+ k: -4.895394,
28
+ x: -5.875251,
29
+ j: -5.90304,
30
+ q: -6.558017,
31
+ z: -6.560645,
32
+ };
33
+ export const MIN_UNIGRAM_LOG_PROB = -11.560645;
34
+ //# sourceMappingURL=unigrams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unigrams.js","sourceRoot":"","sources":["../../../src/ngrams/unigrams.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,wEAAwE;AACxE,wFAAwF;AACxF,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,OAAO;IACX,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,OAAO;IACX,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,OAAO;IACX,CAAC,EAAE,CAAC,QAAQ;IACZ,CAAC,EAAE,CAAC,QAAQ;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { lettersToPhone, phoneToLetters, phoneToText } from './phone.js';
2
+ export type { PhoneResult } from './phone.js';
@@ -0,0 +1,2 @@
1
+ export { lettersToPhone, phoneToLetters, phoneToText } from './phone.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/phone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Standard telephone keypad mapping (ITU E.161 / T9).
3
+ * Maps digit characters to their corresponding letters.
4
+ */
5
+ export declare const PHONE_MAPPING: Partial<Record<string, readonly string[]>>;
6
+ /**
7
+ * Reverse mapping: letter to digit.
8
+ * Built automatically from PHONE_MAPPING.
9
+ */
10
+ export declare const LETTER_TO_DIGIT: Record<string, string>;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Standard telephone keypad mapping (ITU E.161 / T9).
3
+ * Maps digit characters to their corresponding letters.
4
+ */
5
+ export const PHONE_MAPPING = {
6
+ '2': ['a', 'b', 'c'],
7
+ '3': ['d', 'e', 'f'],
8
+ '4': ['g', 'h', 'i'],
9
+ '5': ['j', 'k', 'l'],
10
+ '6': ['m', 'n', 'o'],
11
+ '7': ['p', 'q', 'r', 's'],
12
+ '8': ['t', 'u', 'v'],
13
+ '9': ['w', 'x', 'y', 'z'],
14
+ };
15
+ /**
16
+ * Reverse mapping: letter to digit.
17
+ * Built automatically from PHONE_MAPPING.
18
+ */
19
+ export const LETTER_TO_DIGIT = {};
20
+ for (const [digit, letters] of Object.entries(PHONE_MAPPING)) {
21
+ if (letters) {
22
+ for (const letter of letters) {
23
+ LETTER_TO_DIGIT[letter] = digit;
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=phone-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-mapping.js","sourceRoot":"","sources":["../../../src/phone/phone-mapping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA+C;IACvE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACzB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B,EAAE,CAAC;AAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAC7D,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface PhoneResult {
2
+ /** The candidate text string. */
3
+ text: string;
4
+ /** Log-probability score (higher = more likely). */
5
+ score: number;
6
+ }
7
+ /**
8
+ * Returns the possible letters for a single digit.
9
+ * Returns an empty array for digits without letter mappings (0, 1).
10
+ */
11
+ export declare function phoneToLetters(digit: string): readonly string[];
12
+ /**
13
+ * Converts a string of letters to their corresponding phone digits.
14
+ * Non-letter characters are passed through unchanged.
15
+ */
16
+ export declare function lettersToPhone(text: string): string;
17
+ /**
18
+ * Converts a string of phone digits (2-9) to ranked text candidates
19
+ * using beam search with n-gram scoring (unigram + bigram + trigram).
20
+ * Starts with unigram scoring for the first letter, bigram for the
21
+ * second, and trigrams for all subsequent letters.
22
+ *
23
+ * @param digits - String of digit characters (e.g., "43556")
24
+ * @param maxResults - Maximum number of results to return (default: 20, clamped to [1, 1000])
25
+ * @returns Array of PhoneResult sorted by score (highest first)
26
+ */
27
+ export declare function phoneToText(digits: string, maxResults?: number): PhoneResult[];
@@ -0,0 +1,62 @@
1
+ import { scoreNextLetter } from '../ngrams/ngrams.js';
2
+ import { LETTER_TO_DIGIT, PHONE_MAPPING } from './phone-mapping.js';
3
+ /**
4
+ * Returns the possible letters for a single digit.
5
+ * Returns an empty array for digits without letter mappings (0, 1).
6
+ */
7
+ export function phoneToLetters(digit) {
8
+ return PHONE_MAPPING[digit] ?? [];
9
+ }
10
+ /**
11
+ * Converts a string of letters to their corresponding phone digits.
12
+ * Non-letter characters are passed through unchanged.
13
+ */
14
+ export function lettersToPhone(text) {
15
+ return text
16
+ .split('')
17
+ .map(ch => LETTER_TO_DIGIT[ch.toLowerCase()] ?? ch)
18
+ .join('');
19
+ }
20
+ /**
21
+ * Converts a string of phone digits (2-9) to ranked text candidates
22
+ * using beam search with n-gram scoring (unigram + bigram + trigram).
23
+ * Starts with unigram scoring for the first letter, bigram for the
24
+ * second, and trigrams for all subsequent letters.
25
+ *
26
+ * @param digits - String of digit characters (e.g., "43556")
27
+ * @param maxResults - Maximum number of results to return (default: 20, clamped to [1, 1000])
28
+ * @returns Array of PhoneResult sorted by score (highest first)
29
+ */
30
+ export function phoneToText(digits, maxResults = 20) {
31
+ const clampedMax = Math.max(1, Math.min(Math.trunc(maxResults) || 1, 1000));
32
+ const beamWidth = Math.max(100, clampedMax);
33
+ // Filter to valid digits with letter mappings
34
+ const validDigits = digits.split('').filter(d => PHONE_MAPPING[d]);
35
+ if (validDigits.length === 0) {
36
+ return [];
37
+ }
38
+ // Start with letters from the first digit, scored by unigram frequency
39
+ let candidates = phoneToLetters(validDigits[0]).map(ch => ({
40
+ text: ch,
41
+ score: scoreNextLetter('', ch),
42
+ }));
43
+ // Expand one digit at a time with beam search
44
+ for (let i = 1; i < validDigits.length; i++) {
45
+ const letters = phoneToLetters(validDigits[i]);
46
+ const next = [];
47
+ for (const candidate of candidates) {
48
+ for (const letter of letters) {
49
+ const text = candidate.text + letter;
50
+ const score = candidate.score + scoreNextLetter(candidate.text, letter);
51
+ next.push({ text, score });
52
+ }
53
+ }
54
+ // Keep only top beamWidth candidates
55
+ next.sort((a, b) => b.score - a.score);
56
+ candidates = next.slice(0, beamWidth);
57
+ }
58
+ // Final sort and trim
59
+ candidates.sort((a, b) => b.score - a.score);
60
+ return candidates.slice(0, clampedMax);
61
+ }
62
+ //# sourceMappingURL=phone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../src/phone/phone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AASlE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI;SACR,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,UAAU,GAAG,EAAE;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uEAAuE;IACvE,IAAI,UAAU,GAAkB,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC;KAC/B,CAAC,CAAC,CAAC;IAEJ,8CAA8C;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAkB,EAAE,CAAC;QAE/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;gBACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACvC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;IACtB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,29 @@
1
+ export declare enum PigpenEncoding {
2
+ None = 0,
3
+ LetterA = 20,
4
+ LetterB = 84,
5
+ LetterC = 80,
6
+ LetterD = 21,
7
+ LetterE = 85,
8
+ LetterF = 81,
9
+ LetterG = 5,
10
+ LetterH = 69,
11
+ LetterI = 65,
12
+ LetterJ = 276,
13
+ LetterK = 340,
14
+ LetterL = 336,
15
+ LetterM = 277,
16
+ LetterN = 341,
17
+ LetterO = 337,
18
+ LetterP = 261,
19
+ LetterQ = 325,
20
+ LetterR = 321,
21
+ LetterS = 130,
22
+ LetterT = 160,
23
+ LetterU = 10,
24
+ LetterV = 40,
25
+ LetterW = 386,
26
+ LetterX = 416,
27
+ LetterY = 266,
28
+ LetterZ = 296
29
+ }
@@ -0,0 +1,36 @@
1
+ import { PigpenSegment } from './segment.js';
2
+ export var PigpenEncoding;
3
+ (function (PigpenEncoding) {
4
+ PigpenEncoding[PigpenEncoding["None"] = 0] = "None";
5
+ // Grid without dot (A-I)
6
+ PigpenEncoding[PigpenEncoding["LetterA"] = 20] = "LetterA";
7
+ PigpenEncoding[PigpenEncoding["LetterB"] = 84] = "LetterB";
8
+ PigpenEncoding[PigpenEncoding["LetterC"] = 80] = "LetterC";
9
+ PigpenEncoding[PigpenEncoding["LetterD"] = 21] = "LetterD";
10
+ PigpenEncoding[PigpenEncoding["LetterE"] = 85] = "LetterE";
11
+ PigpenEncoding[PigpenEncoding["LetterF"] = 81] = "LetterF";
12
+ PigpenEncoding[PigpenEncoding["LetterG"] = 5] = "LetterG";
13
+ PigpenEncoding[PigpenEncoding["LetterH"] = 69] = "LetterH";
14
+ PigpenEncoding[PigpenEncoding["LetterI"] = 65] = "LetterI";
15
+ // Grid with dot (J-R)
16
+ PigpenEncoding[PigpenEncoding["LetterJ"] = 276] = "LetterJ";
17
+ PigpenEncoding[PigpenEncoding["LetterK"] = 340] = "LetterK";
18
+ PigpenEncoding[PigpenEncoding["LetterL"] = 336] = "LetterL";
19
+ PigpenEncoding[PigpenEncoding["LetterM"] = 277] = "LetterM";
20
+ PigpenEncoding[PigpenEncoding["LetterN"] = 341] = "LetterN";
21
+ PigpenEncoding[PigpenEncoding["LetterO"] = 337] = "LetterO";
22
+ PigpenEncoding[PigpenEncoding["LetterP"] = 261] = "LetterP";
23
+ PigpenEncoding[PigpenEncoding["LetterQ"] = 325] = "LetterQ";
24
+ PigpenEncoding[PigpenEncoding["LetterR"] = 321] = "LetterR";
25
+ // X without dot (S-V)
26
+ PigpenEncoding[PigpenEncoding["LetterS"] = 130] = "LetterS";
27
+ PigpenEncoding[PigpenEncoding["LetterT"] = 160] = "LetterT";
28
+ PigpenEncoding[PigpenEncoding["LetterU"] = 10] = "LetterU";
29
+ PigpenEncoding[PigpenEncoding["LetterV"] = 40] = "LetterV";
30
+ // X with dot (W-Z)
31
+ PigpenEncoding[PigpenEncoding["LetterW"] = 386] = "LetterW";
32
+ PigpenEncoding[PigpenEncoding["LetterX"] = 416] = "LetterX";
33
+ PigpenEncoding[PigpenEncoding["LetterY"] = 266] = "LetterY";
34
+ PigpenEncoding[PigpenEncoding["LetterZ"] = 296] = "LetterZ";
35
+ })(PigpenEncoding || (PigpenEncoding = {}));
36
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/pigpen/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAN,IAAY,cA+DX;AA/DD,WAAY,cAAc;IACxB,mDAAQ,CAAA;IAER,yBAAyB;IACzB,0DAAkD,CAAA;IAClD,0DAAuE,CAAA;IACvE,0DAAkD,CAAA;IAClD,0DAAwE,CAAA;IACxE,0DAGoB,CAAA;IACpB,0DAAwE,CAAA;IACxE,yDAAkD,CAAA;IAClD,0DAAuE,CAAA;IACvE,0DAAkD,CAAA;IAElD,sBAAsB;IACtB,2DAAsE,CAAA;IACtE,2DAGmB,CAAA;IACnB,2DAAsE,CAAA;IACtE,2DAGmB,CAAA;IACnB,2DAImB,CAAA;IACnB,2DAGmB,CAAA;IACnB,2DAAsE,CAAA;IACtE,2DAGmB,CAAA;IACnB,2DAAsE,CAAA;IAEtE,sBAAsB;IACtB,2DAA2D,CAAA;IAC3D,2DAA2D,CAAA;IAC3D,0DAA2D,CAAA;IAC3D,0DAA2D,CAAA;IAE3D,mBAAmB;IACnB,2DAEmB,CAAA;IACnB,2DAEmB,CAAA;IACnB,2DAEmB,CAAA;IACnB,2DAEmB,CAAA;AACrB,CAAC,EA/DW,cAAc,KAAd,cAAc,QA+DzB"}
@@ -0,0 +1,3 @@
1
+ export { canTogglePigpenSegment, decodePigpenStream, hasPigpenSegment, isCardinal, isIntercardinal, lookupPigpenEncoding, togglePigpenSegment, } from './pigpen.js';
2
+ export { PigpenEncoding } from './encoding.js';
3
+ export { PigpenSegment } from './segment.js';
@@ -0,0 +1,4 @@
1
+ export { canTogglePigpenSegment, decodePigpenStream, hasPigpenSegment, isCardinal, isIntercardinal, lookupPigpenEncoding, togglePigpenSegment, } from './pigpen.js';
2
+ export { PigpenEncoding } from './encoding.js';
3
+ export { PigpenSegment } from './segment.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pigpen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { EncodingCategory } from '../common/encoding-category.js';
2
+ import { EncodingLookupResult } from '../common/encoding-lookup-result.js';
3
+ import { PigpenEncoding } from './encoding.js';
4
+ import { PigpenSegment } from './segment.js';
5
+ /**
6
+ * Looks up a pigpen encoding in the data table.
7
+ */
8
+ export declare function lookupPigpenEncoding(encoding: PigpenEncoding, category?: EncodingCategory): EncodingLookupResult<PigpenEncoding>;
9
+ /**
10
+ * Toggles a segment flag in an encoding. Returns the encoding unchanged
11
+ * if toggling the segment on would mix cardinal and intercardinal segments.
12
+ * Toggling a segment off or toggling the dot is always allowed.
13
+ */
14
+ export declare function togglePigpenSegment(encoding: PigpenEncoding, segment: PigpenSegment): PigpenEncoding;
15
+ /**
16
+ * Checks if a segment flag is set in an encoding.
17
+ */
18
+ export declare function hasPigpenSegment(encoding: PigpenEncoding, segment: PigpenSegment): boolean;
19
+ /**
20
+ * Returns true if the encoding uses cardinal (grid) segments.
21
+ */
22
+ export declare function isCardinal(encoding: PigpenEncoding): boolean;
23
+ /**
24
+ * Returns true if the encoding uses intercardinal (X) segments.
25
+ */
26
+ export declare function isIntercardinal(encoding: PigpenEncoding): boolean;
27
+ /**
28
+ * Checks if a segment can be toggled without mixing cardinal and intercardinal
29
+ * segments. Toggling off and toggling the dot are always allowed.
30
+ */
31
+ export declare function canTogglePigpenSegment(encoding: PigpenEncoding, segment: PigpenSegment): boolean;
32
+ /**
33
+ * Decodes an array of pigpen encodings to a string.
34
+ */
35
+ export declare function decodePigpenStream(encodings: PigpenEncoding[]): string;
@@ -0,0 +1,137 @@
1
+ import { EncodingCategory } from '../common/encoding-category.js';
2
+ import { EncodingEntry } from '../common/encoding-entry.js';
3
+ import { EncodingLookupResult } from '../common/encoding-lookup-result.js';
4
+ import { PigpenEncoding } from './encoding.js';
5
+ import { PigpenSegment } from './segment.js';
6
+ // Build the lookup table once
7
+ const PIGPEN_ENTRIES = [];
8
+ function addEntry(encoding, category, display) {
9
+ PIGPEN_ENTRIES.push(new EncodingEntry(encoding, category, display));
10
+ }
11
+ // Letters
12
+ addEntry(PigpenEncoding.LetterA, EncodingCategory.Letter, 'A');
13
+ addEntry(PigpenEncoding.LetterB, EncodingCategory.Letter, 'B');
14
+ addEntry(PigpenEncoding.LetterC, EncodingCategory.Letter, 'C');
15
+ addEntry(PigpenEncoding.LetterD, EncodingCategory.Letter, 'D');
16
+ addEntry(PigpenEncoding.LetterE, EncodingCategory.Letter, 'E');
17
+ addEntry(PigpenEncoding.LetterF, EncodingCategory.Letter, 'F');
18
+ addEntry(PigpenEncoding.LetterG, EncodingCategory.Letter, 'G');
19
+ addEntry(PigpenEncoding.LetterH, EncodingCategory.Letter, 'H');
20
+ addEntry(PigpenEncoding.LetterI, EncodingCategory.Letter, 'I');
21
+ addEntry(PigpenEncoding.LetterJ, EncodingCategory.Letter, 'J');
22
+ addEntry(PigpenEncoding.LetterK, EncodingCategory.Letter, 'K');
23
+ addEntry(PigpenEncoding.LetterL, EncodingCategory.Letter, 'L');
24
+ addEntry(PigpenEncoding.LetterM, EncodingCategory.Letter, 'M');
25
+ addEntry(PigpenEncoding.LetterN, EncodingCategory.Letter, 'N');
26
+ addEntry(PigpenEncoding.LetterO, EncodingCategory.Letter, 'O');
27
+ addEntry(PigpenEncoding.LetterP, EncodingCategory.Letter, 'P');
28
+ addEntry(PigpenEncoding.LetterQ, EncodingCategory.Letter, 'Q');
29
+ addEntry(PigpenEncoding.LetterR, EncodingCategory.Letter, 'R');
30
+ addEntry(PigpenEncoding.LetterS, EncodingCategory.Letter, 'S');
31
+ addEntry(PigpenEncoding.LetterT, EncodingCategory.Letter, 'T');
32
+ addEntry(PigpenEncoding.LetterU, EncodingCategory.Letter, 'U');
33
+ addEntry(PigpenEncoding.LetterV, EncodingCategory.Letter, 'V');
34
+ addEntry(PigpenEncoding.LetterW, EncodingCategory.Letter, 'W');
35
+ addEntry(PigpenEncoding.LetterX, EncodingCategory.Letter, 'X');
36
+ addEntry(PigpenEncoding.LetterY, EncodingCategory.Letter, 'Y');
37
+ addEntry(PigpenEncoding.LetterZ, EncodingCategory.Letter, 'Z');
38
+ /** Mask covering all cardinal segments (grid shapes). */
39
+ const CARDINAL_MASK = PigpenSegment.North |
40
+ PigpenSegment.East |
41
+ PigpenSegment.South |
42
+ PigpenSegment.West;
43
+ /** Mask covering all intercardinal segments (X shapes). */
44
+ const INTERCARDINAL_MASK = PigpenSegment.NorthEast |
45
+ PigpenSegment.SouthEast |
46
+ PigpenSegment.SouthWest |
47
+ PigpenSegment.NorthWest;
48
+ /**
49
+ * Looks up a pigpen encoding in the data table.
50
+ */
51
+ export function lookupPigpenEncoding(encoding, category = EncodingCategory.All) {
52
+ const result = new EncodingLookupResult();
53
+ for (const entry of PIGPEN_ENTRIES) {
54
+ if ((entry.category & category) !== 0) {
55
+ if (entry.encoding === encoding) {
56
+ result.exact.push(entry);
57
+ }
58
+ else if ((entry.encoding & encoding) === encoding) {
59
+ result.partial.push(entry);
60
+ }
61
+ }
62
+ }
63
+ return result;
64
+ }
65
+ /**
66
+ * Toggles a segment flag in an encoding. Returns the encoding unchanged
67
+ * if toggling the segment on would mix cardinal and intercardinal segments.
68
+ * Toggling a segment off or toggling the dot is always allowed.
69
+ */
70
+ export function togglePigpenSegment(encoding, segment) {
71
+ if (!canTogglePigpenSegment(encoding, segment)) {
72
+ return encoding;
73
+ }
74
+ return (encoding ^ segment);
75
+ }
76
+ /**
77
+ * Checks if a segment flag is set in an encoding.
78
+ */
79
+ export function hasPigpenSegment(encoding, segment) {
80
+ return (encoding & segment) === segment;
81
+ }
82
+ /**
83
+ * Returns true if the encoding uses cardinal (grid) segments.
84
+ */
85
+ export function isCardinal(encoding) {
86
+ return (encoding & CARDINAL_MASK) !== 0;
87
+ }
88
+ /**
89
+ * Returns true if the encoding uses intercardinal (X) segments.
90
+ */
91
+ export function isIntercardinal(encoding) {
92
+ return (encoding & INTERCARDINAL_MASK) !== 0;
93
+ }
94
+ /**
95
+ * Checks if a segment can be toggled without mixing cardinal and intercardinal
96
+ * segments. Toggling off and toggling the dot are always allowed.
97
+ */
98
+ export function canTogglePigpenSegment(encoding, segment) {
99
+ // Toggling off is always allowed
100
+ if (hasPigpenSegment(encoding, segment)) {
101
+ return true;
102
+ }
103
+ // Dot is always compatible
104
+ if (segment === PigpenSegment.Dot) {
105
+ return true;
106
+ }
107
+ // Reject masks that mix cardinal and intercardinal bits
108
+ const segmentAsEncoding = segment;
109
+ const segmentHasCardinal = isCardinal(segmentAsEncoding);
110
+ const segmentHasIntercardinal = isIntercardinal(segmentAsEncoding);
111
+ if (segmentHasCardinal && segmentHasIntercardinal) {
112
+ return false;
113
+ }
114
+ if (segmentHasCardinal) {
115
+ return !isIntercardinal(encoding);
116
+ }
117
+ return !isCardinal(encoding);
118
+ }
119
+ /**
120
+ * Decodes an array of pigpen encodings to a string.
121
+ */
122
+ export function decodePigpenStream(encodings) {
123
+ let result = '';
124
+ for (const ch of encodings) {
125
+ if (ch === PigpenEncoding.None) {
126
+ result += ' ';
127
+ }
128
+ else {
129
+ const lookup = lookupPigpenEncoding(ch, EncodingCategory.Letter);
130
+ if (lookup.exact.length > 0) {
131
+ result += lookup.exact[0].toString();
132
+ }
133
+ }
134
+ }
135
+ return result;
136
+ }
137
+ //# sourceMappingURL=pigpen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pigpen.js","sourceRoot":"","sources":["../../../src/pigpen/pigpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAE3C,8BAA8B;AAC9B,MAAM,cAAc,GAAyC,EAAE,CAAC;AAEhE,SAAS,QAAQ,CACf,QAAwB,EACxB,QAA0B,EAC1B,OAAe;IAEf,cAAc,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,UAAU;AACV,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/D,yDAAyD;AACzD,MAAM,aAAa,GACjB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,IAAI;IAClB,aAAa,CAAC,KAAK;IACnB,aAAa,CAAC,IAAI,CAAC;AAErB,2DAA2D;AAC3D,MAAM,kBAAkB,GACtB,aAAa,CAAC,SAAS;IACvB,aAAa,CAAC,SAAS;IACvB,aAAa,CAAC,SAAS;IACvB,aAAa,CAAC,SAAS,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAwB,EACxB,WAA6B,gBAAgB,CAAC,GAAG;IAEjD,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAkB,CAAC;IAE1D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAwB,EACxB,OAAsB;IAEtB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAmB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAwB,EACxB,OAAsB;IAEtB,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,OAAO,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAwB;IACjD,OAAO,CAAE,QAAmB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,OAAO,CAAE,QAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAwB,EACxB,OAAsB;IAEtB,iCAAiC;IACjC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2BAA2B;IAC3B,IAAI,OAAO,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,OAAmC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,uBAAuB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACnE,IAAI,kBAAkB,IAAI,uBAAuB,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA2B;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,EAAE,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare enum PigpenSegment {
2
+ None = 0,
3
+ North = 1,
4
+ NorthEast = 2,
5
+ East = 4,
6
+ SouthEast = 8,
7
+ South = 16,
8
+ SouthWest = 32,
9
+ West = 64,
10
+ NorthWest = 128,
11
+ Dot = 256
12
+ }
@@ -0,0 +1,14 @@
1
+ export var PigpenSegment;
2
+ (function (PigpenSegment) {
3
+ PigpenSegment[PigpenSegment["None"] = 0] = "None";
4
+ PigpenSegment[PigpenSegment["North"] = 1] = "North";
5
+ PigpenSegment[PigpenSegment["NorthEast"] = 2] = "NorthEast";
6
+ PigpenSegment[PigpenSegment["East"] = 4] = "East";
7
+ PigpenSegment[PigpenSegment["SouthEast"] = 8] = "SouthEast";
8
+ PigpenSegment[PigpenSegment["South"] = 16] = "South";
9
+ PigpenSegment[PigpenSegment["SouthWest"] = 32] = "SouthWest";
10
+ PigpenSegment[PigpenSegment["West"] = 64] = "West";
11
+ PigpenSegment[PigpenSegment["NorthWest"] = 128] = "NorthWest";
12
+ PigpenSegment[PigpenSegment["Dot"] = 256] = "Dot";
13
+ })(PigpenSegment || (PigpenSegment = {}));
14
+ //# sourceMappingURL=segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/pigpen/segment.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,mDAAc,CAAA;IACd,2DAAkB,CAAA;IAClB,iDAAa,CAAA;IACb,2DAAkB,CAAA;IAClB,oDAAc,CAAA;IACd,4DAAkB,CAAA;IAClB,kDAAa,CAAA;IACb,6DAAkB,CAAA;IAClB,iDAAY,CAAA;AACd,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB"}
@@ -0,0 +1,2 @@
1
+ export { getResistorDisplayValue, getResistorValue, hasResistorTolerance, hasResistorValue, INVALID_RESISTOR, RESISTOR_COLOR_TABLE, } from './resistor.js';
2
+ export type { ResistorColor } from './resistor.js';
@@ -0,0 +1,2 @@
1
+ export { getResistorDisplayValue, getResistorValue, hasResistorTolerance, hasResistorValue, INVALID_RESISTOR, RESISTOR_COLOR_TABLE, } from './resistor.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resistor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
@@ -1,11 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INVALID_RESISTOR = exports.RESISTOR_COLOR_TABLE = void 0;
4
- exports.getResistorValue = getResistorValue;
5
- exports.getResistorDisplayValue = getResistorDisplayValue;
6
- exports.hasResistorValue = hasResistorValue;
7
- exports.hasResistorTolerance = hasResistorTolerance;
8
- exports.RESISTOR_COLOR_TABLE = [
1
+ export const RESISTOR_COLOR_TABLE = [
9
2
  { name: 'Black', colorCode: '#000000', multiplier: 1, value: 0 },
10
3
  {
11
4
  name: 'Brown',
@@ -54,7 +47,7 @@ exports.RESISTOR_COLOR_TABLE = [
54
47
  toleranceInPercent: 10,
55
48
  },
56
49
  ];
57
- exports.INVALID_RESISTOR = -1;
50
+ export const INVALID_RESISTOR = -1;
58
51
  function applyMultiplier(value, multiplier) {
59
52
  if (multiplier >= 1) {
60
53
  return value * multiplier;
@@ -71,7 +64,7 @@ function applyMultiplier(value, multiplier) {
71
64
  * getValue assumes there is no tolerance band, as tolerance is not part of
72
65
  * the value calculation
73
66
  */
74
- function getResistorValue(colors) {
67
+ export function getResistorValue(colors) {
75
68
  if (colors.length < 3 || colors.length > 4) {
76
69
  throw new RangeError('Invalid resistor size');
77
70
  }
@@ -79,14 +72,14 @@ function getResistorValue(colors) {
79
72
  for (let i = 0; i < colors.length - 1; ++i) {
80
73
  const currentColor = colors[i];
81
74
  if (currentColor.value === undefined) {
82
- return exports.INVALID_RESISTOR;
75
+ return INVALID_RESISTOR;
83
76
  }
84
77
  value *= 10;
85
78
  value += currentColor.value;
86
79
  }
87
80
  return applyMultiplier(value, colors[colors.length - 1].multiplier);
88
81
  }
89
- function getResistorDisplayValue(value) {
82
+ export function getResistorDisplayValue(value) {
90
83
  if (value >= 1000000000) {
91
84
  return `${value / 1000000000}G`;
92
85
  }
@@ -100,10 +93,10 @@ function getResistorDisplayValue(value) {
100
93
  return value.toString();
101
94
  }
102
95
  }
103
- function hasResistorValue(color) {
96
+ export function hasResistorValue(color) {
104
97
  return color.value !== undefined;
105
98
  }
106
- function hasResistorTolerance(color) {
99
+ export function hasResistorTolerance(color) {
107
100
  return color.toleranceInPercent !== undefined;
108
101
  }
109
102
  //# sourceMappingURL=resistor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resistor.js","sourceRoot":"","sources":["../../../src/resistor/resistor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SemaphoreDirection = void 0;
4
- var SemaphoreDirection;
1
+ export var SemaphoreDirection;
5
2
  (function (SemaphoreDirection) {
6
3
  SemaphoreDirection[SemaphoreDirection["None"] = 0] = "None";
7
4
  SemaphoreDirection[SemaphoreDirection["North"] = 2] = "North";
@@ -12,5 +9,5 @@ var SemaphoreDirection;
12
9
  SemaphoreDirection[SemaphoreDirection["SouthWest"] = 64] = "SouthWest";
13
10
  SemaphoreDirection[SemaphoreDirection["West"] = 128] = "West";
14
11
  SemaphoreDirection[SemaphoreDirection["NorthWest"] = 256] = "NorthWest";
15
- })(SemaphoreDirection || (exports.SemaphoreDirection = SemaphoreDirection = {}));
16
- //# sourceMappingURL=SemaphoreDirection.js.map
12
+ })(SemaphoreDirection || (SemaphoreDirection = {}));
13
+ //# sourceMappingURL=direction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.js","sourceRoot":"","sources":["../../../src/semaphore/direction.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,6DAAc,CAAA;IACd,qEAAkB,CAAA;IAClB,2DAAa,CAAA;IACb,sEAAkB,CAAA;IAClB,8DAAc,CAAA;IACd,sEAAkB,CAAA;IAClB,6DAAa,CAAA;IACb,uEAAkB,CAAA;AACpB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,QAU7B"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SemaphoreEncoding = void 0;
4
- const SemaphoreDirection_1 = require("./SemaphoreDirection");
5
- var SemaphoreEncoding;
1
+ import { SemaphoreDirection } from './direction.js';
2
+ export var SemaphoreEncoding;
6
3
  (function (SemaphoreEncoding) {
7
4
  SemaphoreEncoding[SemaphoreEncoding["None"] = 0] = "None";
8
5
  // Letters
@@ -45,5 +42,5 @@ var SemaphoreEncoding;
45
42
  SemaphoreEncoding[SemaphoreEncoding["Number0"] = 66] = "Number0";
46
43
  // Formatting
47
44
  SemaphoreEncoding[SemaphoreEncoding["FormattingNumber"] = 6] = "FormattingNumber";
48
- })(SemaphoreEncoding || (exports.SemaphoreEncoding = SemaphoreEncoding = {}));
49
- //# sourceMappingURL=SemaphoreEncoding.js.map
45
+ })(SemaphoreEncoding || (SemaphoreEncoding = {}));
46
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/semaphore/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAN,IAAY,iBA6CX;AA7CD,WAAY,iBAAiB;IAC3B,yDAAQ,CAAA;IAER,UAAU;IACV,gEAAiE,CAAA;IACjE,iEAA4D,CAAA;IAC5D,iEAAiE,CAAA;IACjE,gEAA6D,CAAA;IAC7D,gEAAiE,CAAA;IACjE,gEAA4D,CAAA;IAC5D,gEAAiE,CAAA;IACjE,iEAAgE,CAAA;IAChE,iEAAqE,CAAA;IACrE,gEAA4D,CAAA;IAC5D,gEAAiE,CAAA;IACjE,gEAAqE,CAAA;IACrE,gEAAgE,CAAA;IAChE,gEAAqE,CAAA;IACrE,iEAAgE,CAAA;IAChE,iEAA4D,CAAA;IAC5D,iEAAgE,CAAA;IAChE,iEAA2D,CAAA;IAC3D,iEAAgE,CAAA;IAChE,iEAAiE,CAAA;IACjE,iEAAqE,CAAA;IACrE,gEAAiE,CAAA;IACjE,gEAAgE,CAAA;IAChE,gEAAqE,CAAA;IACrE,iEAAgE,CAAA;IAChE,gEAAgE,CAAA;IAEhE,UAAU;IACV,gEAAiE,CAAA;IACjE,iEAA4D,CAAA;IAC5D,iEAAiE,CAAA;IACjE,gEAA6D,CAAA;IAC7D,gEAAiE,CAAA;IACjE,gEAA4D,CAAA;IAC5D,gEAAiE,CAAA;IACjE,iEAAgE,CAAA;IAChE,iEAAqE,CAAA;IACrE,gEAAiE,CAAA;IAEjE,aAAa;IACb,iFAA0E,CAAA;AAC5E,CAAC,EA7CW,iBAAiB,KAAjB,iBAAiB,QA6C5B"}
@@ -0,0 +1,3 @@
1
+ export { addSemaphoreDirection, decodeSemaphoreStream, degreesToSemaphoreDirection, directionsToEncoding, getEncodingDegrees, hasSemaphoreDirection, lookupSemaphoreEncoding, removeSemaphoreDirection, semaphoreDirectionToDegrees, } from './semaphore.js';
2
+ export { SemaphoreDirection } from './direction.js';
3
+ export { SemaphoreEncoding } from './encoding.js';
@@ -0,0 +1,4 @@
1
+ export { addSemaphoreDirection, decodeSemaphoreStream, degreesToSemaphoreDirection, directionsToEncoding, getEncodingDegrees, hasSemaphoreDirection, lookupSemaphoreEncoding, removeSemaphoreDirection, semaphoreDirectionToDegrees, } from './semaphore.js';
2
+ export { SemaphoreDirection } from './direction.js';
3
+ export { SemaphoreEncoding } from './encoding.js';
4
+ //# sourceMappingURL=index.js.map