1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const crypto_1 = require("crypto");
|
4 | const logger_1 = require("./logger");
|
5 | /* istanbul ignore next */
|
6 | function lastItem(arr) {
|
7 | return arr.length === 0 ? undefined : arr[arr.length - 1];
|
8 | }
|
9 | exports.lastItem = lastItem;
|
10 | function removeItem(arr, item) {
|
11 | const pos = arr.indexOf(item);
|
12 | /* istanbul ignore next */
|
13 | if (pos === -1) {
|
14 | return arr;
|
15 | }
|
16 | return arr.slice(0, pos).concat(arr.slice(pos + 1));
|
17 | }
|
18 | exports.removeItem = removeItem;
|
19 | function removeItemOrNever(arr, item) {
|
20 | const res = removeItem(arr, item);
|
21 | /* istanbul ignore next */
|
22 | if (res === arr) {
|
23 | return never();
|
24 | }
|
25 | return res;
|
26 | }
|
27 | exports.removeItemOrNever = removeItemOrNever;
|
28 | /* istanbul ignore next */
|
29 | function never(value) {
|
30 | throw new logger_1.Exception(`Never possible value`, { value });
|
31 | }
|
32 | exports.never = never;
|
33 | function sleep(ms) {
|
34 | return new Promise(res => setTimeout(res, ms));
|
35 | }
|
36 | exports.sleep = sleep;
|
37 | function verifySignature(data, signatureBase64, publicKey) {
|
38 | const verifier = crypto_1.createVerify('SHA256');
|
39 | verifier.update(data);
|
40 | return verifier.verify(publicKey, signatureBase64, 'base64');
|
41 | }
|
42 | exports.verifySignature = verifySignature;
|
43 | function normalToWebSafeBase64(normalBase64) {
|
44 | return normalBase64
|
45 | .replace(/\+/g, '-')
|
46 | .replace(/\//g, '_')
|
47 | .replace(/=+$/, '');
|
48 | }
|
49 | exports.normalToWebSafeBase64 = normalToWebSafeBase64;
|
50 | function webSafeToNormalBase64(safeBase64) {
|
51 | return safeBase64.replace(/\-/g, '+').replace(/_/g, '/') + '=='.substring(0, (3 * safeBase64.length) % 4);
|
52 | }
|
53 | exports.webSafeToNormalBase64 = webSafeToNormalBase64;
|
54 | function getEnv(name) {
|
55 | const val = process.env[name];
|
56 | if (val === undefined)
|
57 | throw new logger_1.Exception(`Env variable should be specified`, { name });
|
58 | return val;
|
59 | }
|
60 | exports.getEnv = getEnv;
|
61 | function getEnvNullable(name) {
|
62 | return process.env[name];
|
63 | }
|
64 | exports.getEnvNullable = getEnvNullable;
|
65 | function nonNull(value) {
|
66 | if (value === undefined || value === null)
|
67 | throw new logger_1.Exception('Value cannot be undefined or null', { value });
|
68 | return value;
|
69 | }
|
70 | exports.nonNull = nonNull;
|
71 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBc0M7QUFDdEMscUNBQXFDO0FBSXJDLDBCQUEwQjtBQUMxQixTQUFnQixRQUFRLENBQUksR0FBcUI7SUFDaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRkQsNEJBRUM7QUFFRCxTQUFnQixVQUFVLENBQWtDLEdBQVEsRUFBRSxJQUFPO0lBQzVFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsMEJBQTBCO0lBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ2YsT0FBTyxHQUFHLENBQUM7S0FDWDtJQUNELE9BQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFvQixDQUFDO0FBQ3pFLENBQUM7QUFQRCxnQ0FPQztBQUVELFNBQWdCLGlCQUFpQixDQUFrQyxHQUFRLEVBQUUsSUFBTztJQUNuRixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLDBCQUEwQjtJQUMxQixJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7UUFDaEIsT0FBTyxLQUFLLEVBQUUsQ0FBQztLQUNmO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDO0FBUEQsOENBT0M7QUFFRCwwQkFBMEI7QUFDMUIsU0FBZ0IsS0FBSyxDQUFDLEtBQWE7SUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFGRCxzQkFFQztBQUVELFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQy9CLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUZELHNCQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQVksRUFBRSxlQUF1QixFQUFFLFNBQWlCO0lBQ3ZGLE1BQU0sUUFBUSxHQUFHLHFCQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxZQUFvQjtJQUN6RCxPQUFPLFlBQVk7U0FDakIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxVQUFrQjtJQUN2RCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUFGRCxzREFFQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEtBQUssU0FBUztRQUFFLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUM7QUFKRCx3QkFJQztBQUNELFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixPQUFPLENBQUksS0FBMkI7SUFDckQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUNBQW1DLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQUhELDBCQUdDIn0= |
\ | No newline at end of file |