UNPKG

spa

Version:

Single-page applications builder with continuous integration, granular updates and loader.

21 lines (18 loc) 822 B
(MODE) -> decoder = (data, password, p) -> if data instanceof ArrayBuffer view = new Uint8Array(data) ct = sjcl.codec.bytes.toBits(view) else if data instanceof Buffer ct = sjcl.codec.bytes.toBits(data) else throw Error("invalid input type") salt = sjcl.codec.hex.toBits(p.salt) iv = sjcl.codec.hex.toBits(p.iv) key = sjcl.misc.pbkdf2(password, salt, p.iter).slice(0, p.ks / 32) prp = new sjcl.cipher.aes(key) auth = sjcl.codec.utf8String.toBits(p.auth) text = sjcl.mode[MODE].decrypt(prp, ct, iv, auth, p.ts) return sjcl.codec.utf8String.fromBits(text) return (content, module, loader) -> return decoder(content, loader.options.password, module.decoding)