Make ui for typescript version
Currently UI is based on old version of this project.
This commit is contained in:
1 parent
485063c43a
commit
8c14f3794f
7 files changed
+204
-60
No files matched your search
@@ -0,0 +1,8 @@
|
||||
import { keygen } from "./keygen";
|
||||
|
||||
describe("BIOS keygen", () => {
|
||||
it("Sony key for 1234567 is 9648669", () => {
|
||||
let keysList = keygen("1234567");
|
||||
expect(keysList[0][1]).toEqual(["9648669"]);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import { dellHddSolver, dellSolver, hddOldSolver } from "./dell";
|
||||
import { fsi20DecNewSolver, fsi20DecOldSolver, fsiHexSolver } from "./fsi";
|
||||
import { hpMiniSolver } from "./hpmini";
|
||||
import { insydeSolver } from "./insyde";
|
||||
import {
|
||||
phoenixFsiLSolver, phoenixFsiPSolver, phoenixFsiSolver,
|
||||
phoenixFsiSSolver, phoenixFsiXSolver, phoenixHPCompaqSolver, phoenixSolver
|
||||
} from "./phoenix";
|
||||
import { samsungSolver } from "./samsung";
|
||||
import { sonySolver } from "./sony";
|
||||
import { Solver } from "./utils";
|
||||
|
||||
export type KeygenResult = [Solver, string[]];
|
||||
|
||||
export const solvers: Solver[] = [
|
||||
sonySolver,
|
||||
samsungSolver,
|
||||
hddOldSolver,
|
||||
dellSolver,
|
||||
dellHddSolver,
|
||||
fsiHexSolver,
|
||||
fsi20DecNewSolver,
|
||||
fsi20DecOldSolver,
|
||||
hpMiniSolver,
|
||||
insydeSolver,
|
||||
phoenixSolver,
|
||||
phoenixHPCompaqSolver,
|
||||
phoenixFsiSolver,
|
||||
phoenixFsiLSolver,
|
||||
phoenixFsiPSolver,
|
||||
phoenixFsiSSolver,
|
||||
phoenixFsiXSolver
|
||||
];
|
||||
|
||||
// NOTE: In future this function can change or even be removed
|
||||
export function keygen(serial: string): KeygenResult[] {
|
||||
return solvers
|
||||
.map((solver): KeygenResult => [solver, solver(serial)])
|
||||
.filter(([_, passwords]) => passwords !== undefined && passwords.length >= 1);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import { keygen, KeygenResult } from "./keygen";
|
||||
|
||||
/// <reference types="dom" />
|
||||
|
||||
let form = document.getElementById("form_id") as HTMLFormElement;
|
||||
let serialInput = document.getElementById("serial_id") as HTMLInputElement;
|
||||
let tryThis = document.getElementById("try_this") as HTMLElement;
|
||||
let dellNote = document.getElementById("dell_note") as HTMLElement;
|
||||
let answerElement = document.getElementById("answer") as HTMLDivElement;
|
||||
|
||||
function renderResult(results: KeygenResult[]): void {
|
||||
let table = document.createElement("table");
|
||||
table.classList.add("answer_table");
|
||||
results.forEach(([solver, passwords]) => {
|
||||
let trElem = document.createElement("tr");
|
||||
let tdNameElem = document.createElement("td");
|
||||
tdNameElem.appendChild(document.createTextNode(solver.biosName));
|
||||
trElem.appendChild(tdNameElem);
|
||||
let tdElem = document.createElement("td");
|
||||
passwords.forEach((pwd, index) => {
|
||||
if (index > 0) {
|
||||
tdElem.appendChild(document.createElement("br"));
|
||||
}
|
||||
tdElem.appendChild(document.createTextNode(pwd));
|
||||
});
|
||||
trElem.appendChild(tdElem);
|
||||
table.appendChild(trElem);
|
||||
});
|
||||
answerElement.appendChild(table);
|
||||
}
|
||||
|
||||
form.addEventListener("submit", (event) => {
|
||||
if (event.preventDefault) {
|
||||
event.preventDefault();
|
||||
} else {
|
||||
event.returnValue = false;
|
||||
}
|
||||
answerElement.innerHTML = ""; // remove old table
|
||||
let results = keygen(serialInput.value);
|
||||
if (results.length > 0) {
|
||||
tryThis.style.display = "";
|
||||
dellNote.style.display = "";
|
||||
renderResult(results);
|
||||
} else {
|
||||
tryThis.style.display = "none";
|
||||
dellNote.style.display = "none";
|
||||
}
|
||||
}, true);
|
||||
Reference in new issue
Block a user