forked from hibas123/SecureFileWrapper
changing typescript output to es5
This commit is contained in:
parent
88efc8c7fb
commit
96b050254f
367
index.js
367
index.js
@ -1,10 +1,55 @@
|
||||
"use strict";
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [0, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const rsa = require("node-rsa");
|
||||
var rsa = require("node-rsa");
|
||||
require("isomorphic-fetch");
|
||||
const btb = require("blob-to-buffer");
|
||||
class SecureFile {
|
||||
constructor(server, username, private_key) {
|
||||
var btb = require("blob-to-buffer");
|
||||
var SecureFile = /** @class */ (function () {
|
||||
function SecureFile(server, username, private_key) {
|
||||
this.Server = server;
|
||||
if (this.Server.endsWith("/")) {
|
||||
this.Server += "api";
|
||||
@ -15,115 +60,225 @@ class SecureFile {
|
||||
this.Username = username;
|
||||
this.PrivateKey = private_key;
|
||||
}
|
||||
async getCode() {
|
||||
let code_res = await fetch(this.Server + "/code?username=" + this.Username);
|
||||
statusParser(code_res);
|
||||
//ToDo check status Codes
|
||||
let code = (await code_res.json()).code;
|
||||
let r = new rsa(this.PrivateKey, "pkcs1-pem");
|
||||
return { code: code, signature: r.sign(code).toString("base64") };
|
||||
}
|
||||
async makeRequest(endpoint, method, query, body) {
|
||||
let code = await this.getCode();
|
||||
query.code = code.code;
|
||||
query.signature = code.signature;
|
||||
let query_str = "?";
|
||||
let first = true;
|
||||
for (let key in query) {
|
||||
if (!first)
|
||||
query_str += "&";
|
||||
query_str += encodeURIComponent(key) + "=" + encodeURIComponent(query[key]);
|
||||
first = false;
|
||||
}
|
||||
return await fetch(this.Server + endpoint + query_str, { method: method, body: body });
|
||||
}
|
||||
async test() {
|
||||
let res = await this.makeRequest("/test", "GET", {}, undefined);
|
||||
statusParser(res);
|
||||
return await res.json();
|
||||
}
|
||||
async list(folder) {
|
||||
if (!folder)
|
||||
folder = "root";
|
||||
let res = await this.makeRequest("/files", "GET", { folder: folder }, undefined);
|
||||
statusParser(res);
|
||||
return await res.json();
|
||||
}
|
||||
async create(name, data, type, folder, encrypt = true, preview) {
|
||||
let params = { type: type, name: name, no_encryption: !encrypt };
|
||||
if (preview) {
|
||||
params.preview = preview;
|
||||
}
|
||||
if (folder) {
|
||||
params.folder = folder;
|
||||
}
|
||||
if (!encrypt) {
|
||||
params.no_encryption = true;
|
||||
}
|
||||
let res = await this.makeRequest("/files", "POST", params, data);
|
||||
statusParser(res);
|
||||
return res.json();
|
||||
}
|
||||
async get(id, version) {
|
||||
let res;
|
||||
if (typeof version === "string") {
|
||||
res = await this.makeRequest(`/files/${id}/history/${version}`, "GET", {}, undefined);
|
||||
}
|
||||
else {
|
||||
res = await this.makeRequest("/files/" + id, "GET", {}, undefined);
|
||||
}
|
||||
statusParser(res);
|
||||
if (res.buffer) {
|
||||
return res.buffer();
|
||||
}
|
||||
else {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
btb(await res.blob(), (err, buffer) => {
|
||||
if (err)
|
||||
reject(err);
|
||||
else
|
||||
resolve(buffer);
|
||||
});
|
||||
SecureFile.prototype.getCode = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var code_res, code, r;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, fetch(this.Server + "/code?username=" + this.Username)];
|
||||
case 1:
|
||||
code_res = _a.sent();
|
||||
statusParser(code_res);
|
||||
return [4 /*yield*/, code_res.json()];
|
||||
case 2:
|
||||
code = (_a.sent()).code;
|
||||
r = new rsa(this.PrivateKey, "pkcs1-pem");
|
||||
return [2 /*return*/, { code: code, signature: r.sign(code).toString("base64") }];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
async update(id, data, preview) {
|
||||
let put = {};
|
||||
if (preview)
|
||||
put.preview = preview;
|
||||
let res = await this.makeRequest("/files/" + id, "PUT", put, data);
|
||||
statusParser(res);
|
||||
return res.json();
|
||||
}
|
||||
async delete(id) {
|
||||
let res = await this.makeRequest("/files/" + id, "DELETE", {}, undefined);
|
||||
statusParser(res);
|
||||
return res.json();
|
||||
}
|
||||
async history(id) {
|
||||
let res = await this.makeRequest(`/files/${id}/history`, "GET", {}, undefined);
|
||||
statusParser(res);
|
||||
return res.json();
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.makeRequest = function (endpoint, method, query, body) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var code, query_str, first, key;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.getCode()];
|
||||
case 1:
|
||||
code = _a.sent();
|
||||
query.code = code.code;
|
||||
query.signature = code.signature;
|
||||
query_str = "?";
|
||||
first = true;
|
||||
for (key in query) {
|
||||
if (!first)
|
||||
query_str += "&";
|
||||
query_str += encodeURIComponent(key) + "=" + encodeURIComponent(query[key]);
|
||||
first = false;
|
||||
}
|
||||
return [4 /*yield*/, fetch(this.Server + endpoint + query_str, { method: method, body: body })];
|
||||
case 2: return [2 /*return*/, _a.sent()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.test = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.makeRequest("/test", "GET", {}, undefined)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [4 /*yield*/, res.json()];
|
||||
case 2: return [2 /*return*/, _a.sent()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.list = function (folder) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
if (!folder)
|
||||
folder = "root";
|
||||
return [4 /*yield*/, this.makeRequest("/files", "GET", { folder: folder }, undefined)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [4 /*yield*/, res.json()];
|
||||
case 2: return [2 /*return*/, _a.sent()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.create = function (name, data, type, folder, encrypt, preview) {
|
||||
if (encrypt === void 0) { encrypt = true; }
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var params, res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
params = { type: type, name: name, no_encryption: !encrypt };
|
||||
if (preview) {
|
||||
params.preview = preview;
|
||||
}
|
||||
if (folder) {
|
||||
params.folder = folder;
|
||||
}
|
||||
if (!encrypt) {
|
||||
params.no_encryption = true;
|
||||
}
|
||||
return [4 /*yield*/, this.makeRequest("/files", "POST", params, data)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [2 /*return*/, res.json()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.get = function (id, version) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _this = this;
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
if (!(typeof version === "string")) return [3 /*break*/, 2];
|
||||
return [4 /*yield*/, this.makeRequest("/files/" + id + "/history/" + version, "GET", {}, undefined)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
return [3 /*break*/, 4];
|
||||
case 2: return [4 /*yield*/, this.makeRequest("/files/" + id, "GET", {}, undefined)];
|
||||
case 3:
|
||||
res = _a.sent();
|
||||
_a.label = 4;
|
||||
case 4:
|
||||
statusParser(res);
|
||||
if (res.buffer) {
|
||||
return [2 /*return*/, res.buffer()];
|
||||
}
|
||||
else {
|
||||
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
||||
var _a;
|
||||
return __generator(this, function (_b) {
|
||||
switch (_b.label) {
|
||||
case 0:
|
||||
_a = btb;
|
||||
return [4 /*yield*/, res.blob()];
|
||||
case 1:
|
||||
_a.apply(void 0, [_b.sent(), function (err, buffer) {
|
||||
if (err)
|
||||
reject(err);
|
||||
else
|
||||
resolve(buffer);
|
||||
}]);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); })];
|
||||
}
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.update = function (id, data, preview) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var put, res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
put = {};
|
||||
if (preview)
|
||||
put.preview = preview;
|
||||
return [4 /*yield*/, this.makeRequest("/files/" + id, "PUT", put, data)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [2 /*return*/, res.json()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.delete = function (id) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.makeRequest("/files/" + id, "DELETE", {}, undefined)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [2 /*return*/, res.json()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SecureFile.prototype.history = function (id) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.makeRequest("/files/" + id + "/history", "GET", {}, undefined)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
statusParser(res);
|
||||
return [2 /*return*/, res.json()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
return SecureFile;
|
||||
}());
|
||||
exports.default = SecureFile;
|
||||
class Unauthorized extends Error {
|
||||
constructor() {
|
||||
super("Not authorized");
|
||||
var Unauthorized = /** @class */ (function (_super) {
|
||||
__extends(Unauthorized, _super);
|
||||
function Unauthorized() {
|
||||
return _super.call(this, "Not authorized") || this;
|
||||
}
|
||||
}
|
||||
return Unauthorized;
|
||||
}(Error));
|
||||
exports.Unauthorized = Unauthorized;
|
||||
class NotFound extends Error {
|
||||
constructor() {
|
||||
super("Not found");
|
||||
var NotFound = /** @class */ (function (_super) {
|
||||
__extends(NotFound, _super);
|
||||
function NotFound() {
|
||||
return _super.call(this, "Not found") || this;
|
||||
}
|
||||
}
|
||||
return NotFound;
|
||||
}(Error));
|
||||
exports.NotFound = NotFound;
|
||||
class BadRequest extends Error {
|
||||
constructor() {
|
||||
super("Bad request");
|
||||
var BadRequest = /** @class */ (function (_super) {
|
||||
__extends(BadRequest, _super);
|
||||
function BadRequest() {
|
||||
return _super.call(this, "Bad request") || this;
|
||||
}
|
||||
}
|
||||
return BadRequest;
|
||||
}(Error));
|
||||
exports.BadRequest = BadRequest;
|
||||
function statusParser(res) {
|
||||
if (res.status !== 200) {
|
||||
|
442
test.js
442
test.js
@ -1,149 +1,331 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [0, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const rsa = require("node-rsa");
|
||||
const index_1 = require("./index");
|
||||
const fs_1 = require("fs");
|
||||
const buffer_1 = require("buffer");
|
||||
let sf;
|
||||
const testname = "ouiavgbsop687463743";
|
||||
const testdata = new buffer_1.Buffer("Ich bin ein Test");
|
||||
const newTestData = new buffer_1.Buffer("neue test daten");
|
||||
const testprev = new buffer_1.Buffer("Ich bin...");
|
||||
let testid;
|
||||
let testver;
|
||||
let testver2;
|
||||
const testfolder = "iabos";
|
||||
let ftestid;
|
||||
let e_testid;
|
||||
let private_key;
|
||||
var rsa = require("node-rsa");
|
||||
var index_1 = require("./index");
|
||||
var fs_1 = require("fs");
|
||||
var buffer_1 = require("buffer");
|
||||
var sf;
|
||||
var testname = "ouiavgbsop687463743";
|
||||
var testdata = new buffer_1.Buffer("Ich bin ein Test");
|
||||
var newTestData = new buffer_1.Buffer("neue test daten");
|
||||
var testprev = new buffer_1.Buffer("Ich bin...");
|
||||
var testid;
|
||||
var testver;
|
||||
var testver2;
|
||||
var testfolder = "iabos";
|
||||
var ftestid;
|
||||
var e_testid;
|
||||
var private_key;
|
||||
module.exports = {
|
||||
setUp: function (finished) {
|
||||
let pk = fs_1.readFileSync("./private.pem");
|
||||
var pk = fs_1.readFileSync("./private.pem");
|
||||
private_key = pk.toString("utf8");
|
||||
sf = new index_1.default("http://localhost:3005", "test", private_key);
|
||||
finished();
|
||||
},
|
||||
create: async function (test) {
|
||||
test.expect(2);
|
||||
let res = await sf.create(testname, testdata, "text", undefined, false, testprev);
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
testid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
},
|
||||
test: async function (test) {
|
||||
test.expect(2);
|
||||
let res = await sf.test();
|
||||
test.ok(res.test);
|
||||
test.equal(res.user, "test");
|
||||
test.done();
|
||||
},
|
||||
get: async function (test) {
|
||||
test.expect(2);
|
||||
let res = await sf.get(testid);
|
||||
test.ok(res);
|
||||
test.equal(res.toString(), testdata.toString());
|
||||
test.done();
|
||||
},
|
||||
list: async function (test) {
|
||||
test.expect(4);
|
||||
let res = await sf.list();
|
||||
test.ok(res);
|
||||
test.ok(Array.isArray(res), "Is from type Array");
|
||||
test.ok(res.length > 0, "Do elements exist?");
|
||||
res.forEach(e => {
|
||||
if (e._id === testid) {
|
||||
test.ok(true, "Element is in List");
|
||||
}
|
||||
});
|
||||
test.done();
|
||||
},
|
||||
update: async function (test) {
|
||||
test.expect(5);
|
||||
let res = await sf.update(testid, newTestData);
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
test.notEqual(res.version, testver, "Is new version_id generated?");
|
||||
testver2 = res.version;
|
||||
let res2 = await sf.get(testid);
|
||||
test.ok(res2);
|
||||
test.equal(res2.toString(), newTestData.toString(), "Is fetched data the updated?");
|
||||
test.done();
|
||||
},
|
||||
history: async function (test) {
|
||||
test.expect(7);
|
||||
let his = await sf.history(testid);
|
||||
test.ok(his);
|
||||
test.ok(his.file);
|
||||
test.ok(his.history);
|
||||
test.equal(his.history.length, 1);
|
||||
test.equal(his.history[0].version, testver);
|
||||
test.equal(his.file.version, testver2, "Is correct version");
|
||||
let arch = await sf.get(testid, testver);
|
||||
test.equal(arch.toString(), testdata.toString(), "Is old version data correct");
|
||||
test.done();
|
||||
},
|
||||
delete: async function (test) {
|
||||
test.expect(1);
|
||||
let res = await sf.delete(testid);
|
||||
test.ok(res);
|
||||
test.done();
|
||||
},
|
||||
folder: {
|
||||
create: async function (test) {
|
||||
test.expect(2);
|
||||
let res = await sf.create(testname, testdata, "text", testfolder, false, testprev);
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
ftestid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
},
|
||||
list: async function (test) {
|
||||
test.expect(4);
|
||||
let res = await sf.list(testfolder);
|
||||
test.ok(res);
|
||||
test.ok(Array.isArray(res), "Is from type Array");
|
||||
test.ok(res.length > 0, "Do elements exist?");
|
||||
res.forEach(e => {
|
||||
if (e._id === ftestid) {
|
||||
test.ok(true, "Element is in List");
|
||||
create: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.create(testname, testdata, "text", undefined, false, testprev)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
testid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
test.done();
|
||||
});
|
||||
},
|
||||
test: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.test()];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res.test);
|
||||
test.equal(res.user, "test");
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
get: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.get(testid)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.equal(res.toString(), testdata.toString());
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
list: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(4);
|
||||
return [4 /*yield*/, sf.list()];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(Array.isArray(res), "Is from type Array");
|
||||
test.ok(res.length > 0, "Do elements exist?");
|
||||
res.forEach(function (e) {
|
||||
if (e._id === testid) {
|
||||
test.ok(true, "Element is in List");
|
||||
}
|
||||
});
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
update: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res, res2;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(5);
|
||||
return [4 /*yield*/, sf.update(testid, newTestData)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
test.notEqual(res.version, testver, "Is new version_id generated?");
|
||||
testver2 = res.version;
|
||||
return [4 /*yield*/, sf.get(testid)];
|
||||
case 2:
|
||||
res2 = _a.sent();
|
||||
test.ok(res2);
|
||||
test.equal(res2.toString(), newTestData.toString(), "Is fetched data the updated?");
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
history: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var his, arch;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(7);
|
||||
return [4 /*yield*/, sf.history(testid)];
|
||||
case 1:
|
||||
his = _a.sent();
|
||||
test.ok(his);
|
||||
test.ok(his.file);
|
||||
test.ok(his.history);
|
||||
test.equal(his.history.length, 1);
|
||||
test.equal(his.history[0].version, testver);
|
||||
test.equal(his.file.version, testver2, "Is correct version");
|
||||
return [4 /*yield*/, sf.get(testid, testver)];
|
||||
case 2:
|
||||
arch = _a.sent();
|
||||
test.equal(arch.toString(), testdata.toString(), "Is old version data correct");
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
delete: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(1);
|
||||
return [4 /*yield*/, sf.delete(testid)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
folder: {
|
||||
create: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.create(testname, testdata, "text", testfolder, false, testprev)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
ftestid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
delete: async function (test) {
|
||||
test.expect(1);
|
||||
let res = await sf.delete(ftestid);
|
||||
test.ok(res);
|
||||
test.done();
|
||||
list: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(4);
|
||||
return [4 /*yield*/, sf.list(testfolder)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(Array.isArray(res), "Is from type Array");
|
||||
test.ok(res.length > 0, "Do elements exist?");
|
||||
res.forEach(function (e) {
|
||||
if (e._id === ftestid) {
|
||||
test.ok(true, "Element is in List");
|
||||
}
|
||||
});
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
delete: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(1);
|
||||
return [4 /*yield*/, sf.delete(ftestid)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
encryption: {
|
||||
create: async function (test) {
|
||||
test.expect(2);
|
||||
let res = await sf.create(testname, testdata, "text", undefined, true, testprev);
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
e_testid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
create: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.create(testname, testdata, "text", undefined, true, testprev)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.ok(res._id);
|
||||
e_testid = res._id;
|
||||
testver = res.version;
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
get: async function (test) {
|
||||
let r = new rsa(private_key, "pkcs1-pem");
|
||||
test.expect(2);
|
||||
let res = await sf.get(e_testid);
|
||||
res = r.decrypt(res);
|
||||
test.ok(res);
|
||||
test.equal(res.toString(), testdata.toString());
|
||||
test.done();
|
||||
get: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var r, res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
r = new rsa(private_key, "pkcs1-pem");
|
||||
test.expect(2);
|
||||
return [4 /*yield*/, sf.get(e_testid)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
res = r.decrypt(res);
|
||||
test.ok(res);
|
||||
test.equal(res.toString(), testdata.toString());
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
delete: async function (test) {
|
||||
test.expect(1);
|
||||
let res = await sf.delete(e_testid);
|
||||
test.ok(res);
|
||||
test.done();
|
||||
delete: function (test) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var res;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
test.expect(1);
|
||||
return [4 /*yield*/, sf.delete(e_testid)];
|
||||
case 1:
|
||||
res = _a.sent();
|
||||
test.ok(res);
|
||||
test.done();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
}
|
||||
};
|
||||
|
@ -1,13 +1,17 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Basic Options */
|
||||
"target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
|
||||
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
|
||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||
// "lib": [], /* Specify library files to be included in the compilation: */
|
||||
// "allowJs": true, /* Allow javascript files to be compiled. */
|
||||
// "checkJs": true, /* Report errors in .js files. */
|
||||
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
||||
"declaration": true, /* Generates corresponding '.d.ts' file. */
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
// "sourceMap": true, /* Generates corresponding '.map' file. */
|
||||
// "outFile": "./", /* Concatenate and emit output to single file. */
|
||||
// "outDir": "./", /* Redirect output structure to the directory. */
|
||||
|
Loading…
Reference in New Issue
Block a user