javascript-ampache
Version:
A JS library for the Ampache API
40 lines (33 loc) • 1.14 kB
text/typescript
import JsSHA from "jssha/dist/sha256";
import { Base } from "./base";
export function applyMixins(derivedCtor: any, baseCtors: any[]) {
baseCtors.forEach((baseCtor) => {
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
Object.defineProperty(
derivedCtor.prototype,
name,
Object.getOwnPropertyDescriptor(baseCtor.prototype, name),
);
});
});
}
export function encryptPassword(password: string, time: number) {
let key = getSHA256(password);
return getSHA256(time + key);
function getSHA256(text) {
let shaObj = new JsSHA("SHA-256", "TEXT", { encoding: "UTF8" });
shaObj.update(text);
return shaObj.getHash("HEX");
}
}
export function outputDebugURL(url: string, config: Base) {
let label = "javascript-ampache query URL";
if (config.useBearerToken) {
label = "(Using Bearer token, auth added for debugging) - " + label;
url += "&auth=" + config.sessionKey;
}
console.debug(
label + " %c" + url,
"color: black; font-style: italic; background-color: orange;padding: 2px",
);
}