UNPKG

5.19 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const crypto_1 = require("crypto");
4const logger_1 = require("./logger");
5/* istanbul ignore next */
6function lastItem(arr) {
7 return arr.length === 0 ? undefined : arr[arr.length - 1];
8}
9exports.lastItem = lastItem;
10function 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}
18exports.removeItem = removeItem;
19function 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}
27exports.removeItemOrNever = removeItemOrNever;
28/* istanbul ignore next */
29function never(value) {
30 throw new logger_1.Exception(`Never possible value`, { value });
31}
32exports.never = never;
33function sleep(ms) {
34 return new Promise(res => setTimeout(res, ms));
35}
36exports.sleep = sleep;
37function verifySignature(data, signatureBase64, publicKey) {
38 const verifier = crypto_1.createVerify('SHA256');
39 verifier.update(data);
40 return verifier.verify(publicKey, signatureBase64, 'base64');
41}
42exports.verifySignature = verifySignature;
43function normalToWebSafeBase64(normalBase64) {
44 return normalBase64
45 .replace(/\+/g, '-')
46 .replace(/\//g, '_')
47 .replace(/=+$/, '');
48}
49exports.normalToWebSafeBase64 = normalToWebSafeBase64;
50function webSafeToNormalBase64(safeBase64) {
51 return safeBase64.replace(/\-/g, '+').replace(/_/g, '/') + '=='.substring(0, (3 * safeBase64.length) % 4);
52}
53exports.webSafeToNormalBase64 = webSafeToNormalBase64;
54function 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}
60exports.getEnv = getEnv;
61function getEnvNullable(name) {
62 return process.env[name];
63}
64exports.getEnvNullable = getEnvNullable;
65function 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}
70exports.nonNull = nonNull;
71//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBc0M7QUFDdEMscUNBQXFDO0FBSXJDLDBCQUEwQjtBQUMxQixTQUFnQixRQUFRLENBQUksR0FBcUI7SUFDaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRkQsNEJBRUM7QUFFRCxTQUFnQixVQUFVLENBQWtDLEdBQVEsRUFBRSxJQUFPO0lBQzVFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsMEJBQTBCO0lBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ2YsT0FBTyxHQUFHLENBQUM7S0FDWDtJQUNELE9BQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFvQixDQUFDO0FBQ3pFLENBQUM7QUFQRCxnQ0FPQztBQUVELFNBQWdCLGlCQUFpQixDQUFrQyxHQUFRLEVBQUUsSUFBTztJQUNuRixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLDBCQUEwQjtJQUMxQixJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7UUFDaEIsT0FBTyxLQUFLLEVBQUUsQ0FBQztLQUNmO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDO0FBUEQsOENBT0M7QUFFRCwwQkFBMEI7QUFDMUIsU0FBZ0IsS0FBSyxDQUFDLEtBQWE7SUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFGRCxzQkFFQztBQUVELFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQy9CLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUZELHNCQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQVksRUFBRSxlQUF1QixFQUFFLFNBQWlCO0lBQ3ZGLE1BQU0sUUFBUSxHQUFHLHFCQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxZQUFvQjtJQUN6RCxPQUFPLFlBQVk7U0FDakIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxVQUFrQjtJQUN2RCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUFGRCxzREFFQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEtBQUssU0FBUztRQUFFLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUM7QUFKRCx3QkFJQztBQUNELFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixPQUFPLENBQUksS0FBMkI7SUFDckQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUNBQW1DLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQUhELDBCQUdDIn0=
\No newline at end of file