@minespider/core-bundles
Version:
A high-level SDK for Minespider Core. It abstract the low-level features from the core SDK for a more high-level usage such as DAPPs. Some of the features are 1:1 with the SDK some others abstract some low-level interactions or multiple actions
68 lines • 2.76 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
define(["require", "exports", "webcrypto"], function (require, exports, webcrypto) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StorageFacade = void 0;
webcrypto = __importStar(webcrypto);
const crypto = webcrypto;
const algorithm = "aes-256-ctr";
const sessionStorage = window.sessionStorage;
class StorageFacade {
async set(key, value, options) {
if (options && options.password) {
let encryptedValue = this.encryptWithPassword(value, options.password);
sessionStorage.setItem(key, encryptedValue);
}
else {
sessionStorage.setItem(key, value);
}
}
async get(key, options) {
if (options && options.password) {
let encryptedValue = await sessionStorage.getItem(key);
return this.decryptWithPassword(encryptedValue, options.password);
}
else {
return await sessionStorage.getItem(key);
}
}
async exists(key) {
return (await sessionStorage.getItem(key)) ? true : false;
}
async delete(key) {
sessionStorage.removeItem(key);
}
encryptWithPassword(text, password) {
var cipher = crypto.createCipher(algorithm, password);
var encrypted = cipher.update(text, "utf8", "hex");
encrypted += cipher.final("hex");
return encrypted;
}
decryptWithPassword(text, password) {
var decipher = crypto.createDecipher(algorithm, password);
var decrypted = decipher.update(text, "hex", "utf8");
decrypted += decipher.final("utf8");
return decrypted;
}
}
exports.StorageFacade = StorageFacade;
});
//# sourceMappingURL=StorageFacade.js.map