Port Phoenix code to TypeScript
This commit is contained in:
1 parent
4fd486017e
commit
bec3f4027a
3 files changed
+259
-1
No files matched your search
+25
-1
@@ -19,7 +19,7 @@ export interface Solver {
|
||||
keygen(code: string): string[];
|
||||
}
|
||||
|
||||
const keyboardDict: {[key: number]: string} = {
|
||||
export const keyboardDict: {[key: number]: string} = {
|
||||
2: "1", 3: "2", 4: "3", 5: "4", 6: "5", 7: "6", 8: "7", 9: "8",
|
||||
10: "9", 11: "0", 16: "q", 17: "w", 18: "e", 19: "r", 20: "t", 21: "y",
|
||||
22: "u", 23: "i", 24: "o", 25: "p", 30: "a", 31: "s", 32: "d", 33: "f",
|
||||
@@ -27,6 +27,19 @@ const keyboardDict: {[key: number]: string} = {
|
||||
47: "v", 48: "b", 49: "n", 50: "m"
|
||||
};
|
||||
|
||||
// reverse scan code table
|
||||
function generateReverseKeyDict(): {[key: string]: number} {
|
||||
let result: {[key: string]: number} = {};
|
||||
for (let key in keyboardDict) {
|
||||
if (keyboardDict.hasOwnProperty(key)) {
|
||||
result[keyboardDict[key]] = parseInt(key, 10);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export const reversedScanCodes = generateReverseKeyDict();
|
||||
|
||||
/* Decode Keyboard code to Ascii symbol */
|
||||
export function keyboardEncToAscii(inKey: number[]): string {
|
||||
let out = "";
|
||||
@@ -44,6 +57,17 @@ export function keyboardEncToAscii(inKey: number[]): string {
|
||||
return out;
|
||||
}
|
||||
|
||||
export function asciiToKeyboardEnc(password: string): number[] {
|
||||
return password.split("").map((c) => {
|
||||
let code = reversedScanCodes[c];
|
||||
if (code === void 0) {
|
||||
throw new Error("Undefined scan code");
|
||||
} else {
|
||||
return code;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function cleanSerial(serial: string): string {
|
||||
return serial.trim().replace(/-/gi, "");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user