UNPKG

@hazae41/kdbx

Version:

Rust-like KeePass (KDBX 4) file format for TypeScript

84 lines (81 loc) 2.46 kB
'use strict'; var base64 = require('@hazae41/base64'); var cursor = require('@hazae41/cursor'); exports.Data = void 0; (function (Data) { class AsString { element; constructor(element) { this.element = element; } get() { return this.element.innerHTML; } set(value) { this.element.innerHTML = value; } } Data.AsString = AsString; class AsBoolean { element; constructor(element) { this.element = element; } get() { return this.element.innerHTML === "True"; } set(value) { this.element.innerHTML = value ? "True" : "False"; } } Data.AsBoolean = AsBoolean; class AsInteger { element; constructor(element) { this.element = element; } getOrThrow() { const value = this.element.innerHTML; if (!value) throw new Error(); const number = Number(value); if (!Number.isSafeInteger(number)) throw new Error(); return number; } setOrThrow(value) { if (!Number.isSafeInteger(value)) throw new Error(); this.element.innerHTML = String(value); } incrementOrThrow() { this.setOrThrow(this.getOrThrow() + 1); } } Data.AsInteger = AsInteger; class AsDate { element; constructor(element) { this.element = element; } getOrThrow() { const value = this.element.innerHTML; if (!value) throw new Error(); const binary = base64.Base64.decodePaddedOrThrow(value); const cursor$1 = new cursor.Cursor(binary); const raw = cursor$1.readUint64OrThrow(true); const fix = raw - 62135596800n; return new Date(Number(fix * 1000n)); } setOrThrow(value) { const fix = BigInt(value.getTime()) / 1000n; const raw = fix + 62135596800n; const cursor$1 = new cursor.Cursor(new Uint8Array(8)); cursor$1.writeUint64OrThrow(raw, true); this.element.innerHTML = base64.Base64.encodePaddedOrThrow(cursor$1.bytes); } } Data.AsDate = AsDate; })(exports.Data || (exports.Data = {})); //# sourceMappingURL=index.cjs.map