@spytecgps/lambda-utils 1.0.19 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/errors/index.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -19
- package/dist/logger/index.d.ts +4 -0
- package/dist/middleware/index.d.ts +1 -1
- package/dist/middleware/types.d.ts +2 -2
- package/dist/types.d.ts +12 -12
- package/dist/validation/custom.d.ts +1 -0
- package/dist/validation/index.d.ts +2 -1
- package/dist/validation/requestContext.d.ts +1 -1
- package/dist/wrappers/sqsEventWrapper.d.ts +2 -2
- package/package.json +33 -33
- package/dist/errors/BadRequestError.js +0 -28
- package/dist/errors/ConflictError.js +0 -28
- package/dist/errors/ForbiddenError.js +0 -28
- package/dist/errors/HttpError.js +0 -32
- package/dist/errors/NotFoundError.js +0 -28
- package/dist/errors/UnauthorizedError.js +0 -28
- package/dist/errors/index.js +0 -16
- package/dist/logger/logger.d.ts +0 -3
- package/dist/logger/logger.js +0 -51
- package/dist/middleware/contextualLogger.js +0 -87
- package/dist/middleware/index.js +0 -62
- package/dist/middleware/ioLogger.js +0 -14
- package/dist/middleware/middleware.test.js +0 -167
- package/dist/middleware/responseWrapper.js +0 -12
- package/dist/middleware/types.js +0 -2
- package/dist/middleware/validation.js +0 -27
- package/dist/types.js +0 -2
- package/dist/utils/cache.js +0 -58
- package/dist/utils/cacheWrapper.js +0 -55
- package/dist/utils/index.js +0 -17
- package/dist/utils/timeOut.js +0 -15
- package/dist/validation/custom.js +0 -143
- package/dist/validation/index.js +0 -25
- package/dist/validation/requestContext.js +0 -54
- package/dist/validation/validateEvent.js +0 -25
- package/dist/wrappers/apiGatewayEventWrapper.js +0 -79
- package/dist/wrappers/index.js +0 -21
- package/dist/wrappers/response.js +0 -36
- package/dist/wrappers/sqsEventWrapper.js +0 -120
package/dist/middleware/index.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
3
|
-
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
4
|
-
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
5
|
-
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
6
|
-
r[k] = a[j];
|
|
7
|
-
return r;
|
|
8
|
-
};
|
|
9
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.apiGatewayMiddlewares = exports.validatorMiddleware = exports.httpResponseSerializer = exports.httpErrorHandler = exports.apiGatewayMiddy = exports.middy = void 0;
|
|
14
|
-
var core_1 = __importDefault(require("@middy/core"));
|
|
15
|
-
var http_error_handler_1 = __importDefault(require("@middy/http-error-handler"));
|
|
16
|
-
exports.httpErrorHandler = http_error_handler_1.default;
|
|
17
|
-
var http_response_serializer_1 = __importDefault(require("@middy/http-response-serializer"));
|
|
18
|
-
exports.httpResponseSerializer = http_response_serializer_1.default;
|
|
19
|
-
var contextualLogger_1 = require("./contextualLogger");
|
|
20
|
-
var ioLogger_1 = require("./ioLogger");
|
|
21
|
-
var validation_1 = require("./validation");
|
|
22
|
-
Object.defineProperty(exports, "validatorMiddleware", { enumerable: true, get: function () { return validation_1.validatorMiddleware; } });
|
|
23
|
-
var responseWrapper_1 = require("./responseWrapper");
|
|
24
|
-
var logger_1 = require("../logger/logger");
|
|
25
|
-
var baseMiddlewares = [contextualLogger_1.contextualLoggerMiddleware, ioLogger_1.ioLoggerMiddleware];
|
|
26
|
-
var apiGatewayMiddlewares = [
|
|
27
|
-
http_response_serializer_1.default({
|
|
28
|
-
serializers: [
|
|
29
|
-
{
|
|
30
|
-
regex: /^application\/xml$/,
|
|
31
|
-
serializer: function (_a) {
|
|
32
|
-
var body = _a.body;
|
|
33
|
-
return "<message>" + body + "</message>";
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
regex: /^application\/json$/,
|
|
38
|
-
serializer: function (_a) {
|
|
39
|
-
var body = _a.body;
|
|
40
|
-
return JSON.stringify(body);
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
regex: /^text\/plain$/,
|
|
45
|
-
serializer: function (_a) {
|
|
46
|
-
var body = _a.body;
|
|
47
|
-
return body;
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
default: 'application/json',
|
|
52
|
-
}),
|
|
53
|
-
http_error_handler_1.default({
|
|
54
|
-
logger: function (error) { return logger_1.logger.error(error); },
|
|
55
|
-
}),
|
|
56
|
-
responseWrapper_1.responseWrapperMiddleware(),
|
|
57
|
-
];
|
|
58
|
-
exports.apiGatewayMiddlewares = apiGatewayMiddlewares;
|
|
59
|
-
var middy = function (handler) { return core_1.default(handler).use(__spreadArrays(baseMiddlewares)); };
|
|
60
|
-
exports.middy = middy;
|
|
61
|
-
var apiGatewayMiddy = function (handler) { return core_1.default(handler).use(__spreadArrays(baseMiddlewares, apiGatewayMiddlewares)); };
|
|
62
|
-
exports.apiGatewayMiddy = apiGatewayMiddy;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ioLoggerMiddleware = void 0;
|
|
7
|
-
var input_output_logger_1 = __importDefault(require("@middy/input-output-logger"));
|
|
8
|
-
var logger_1 = require("../logger/logger");
|
|
9
|
-
exports.ioLoggerMiddleware = input_output_logger_1.default({
|
|
10
|
-
logger: function (req) {
|
|
11
|
-
var message = (req === null || req === void 0 ? void 0 : req.event) ? 'event' : 'response';
|
|
12
|
-
logger_1.logger.info(message, req);
|
|
13
|
-
},
|
|
14
|
-
});
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
var index_1 = require("./index");
|
|
43
|
-
var joi_1 = __importDefault(require("joi"));
|
|
44
|
-
var validation_1 = require("./validation");
|
|
45
|
-
var errors_1 = require("../errors");
|
|
46
|
-
var responseWrapper_1 = require("./responseWrapper");
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
48
|
-
var webEvent = require('./mocks/webEvent.json');
|
|
49
|
-
var context = {};
|
|
50
|
-
var callback = jest.fn();
|
|
51
|
-
var clone = function (obj) { return JSON.parse(JSON.stringify(obj)); };
|
|
52
|
-
describe('Middleware', function () {
|
|
53
|
-
var schema = joi_1.default.object({
|
|
54
|
-
queryStringParameters: joi_1.default.object({
|
|
55
|
-
startDate: joi_1.default.date().required(),
|
|
56
|
-
endDate: joi_1.default.date()
|
|
57
|
-
.default(function () { return new Date(); })
|
|
58
|
-
.greater(joi_1.default.ref('startDate')),
|
|
59
|
-
}),
|
|
60
|
-
});
|
|
61
|
-
describe('APIGatewayProxyHandler', function () {
|
|
62
|
-
var handler = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
63
|
-
return __generator(this, function (_a) {
|
|
64
|
-
console.log('ok done');
|
|
65
|
-
return [2 /*return*/, {
|
|
66
|
-
statusCode: 200,
|
|
67
|
-
body: {
|
|
68
|
-
year: event.queryStringParameters.startDate.getFullYear(),
|
|
69
|
-
yes: ['a', 'b', 'c'],
|
|
70
|
-
},
|
|
71
|
-
}];
|
|
72
|
-
});
|
|
73
|
-
}); };
|
|
74
|
-
var handlerWithError = function (_event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
75
|
-
return __generator(this, function (_a) {
|
|
76
|
-
console.log('here i am');
|
|
77
|
-
throw new errors_1.UnauthorizedError('oh no');
|
|
78
|
-
});
|
|
79
|
-
}); };
|
|
80
|
-
var middifiedHandler = index_1.apiGatewayMiddy(handler).use(validation_1.validatorMiddleware({ schema: schema }));
|
|
81
|
-
var middifiedHandlerWithError = index_1.apiGatewayMiddy(handlerWithError).use(validation_1.validatorMiddleware({ schema: schema }));
|
|
82
|
-
it('should work', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
83
|
-
var result;
|
|
84
|
-
return __generator(this, function (_a) {
|
|
85
|
-
switch (_a.label) {
|
|
86
|
-
case 0: return [4 /*yield*/, middifiedHandler(webEvent, context, callback)];
|
|
87
|
-
case 1:
|
|
88
|
-
result = _a.sent();
|
|
89
|
-
console.log(result);
|
|
90
|
-
return [2 /*return*/];
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}); });
|
|
94
|
-
it('should throw', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
95
|
-
var invalidEvent, result;
|
|
96
|
-
return __generator(this, function (_a) {
|
|
97
|
-
switch (_a.label) {
|
|
98
|
-
case 0:
|
|
99
|
-
invalidEvent = clone(webEvent);
|
|
100
|
-
invalidEvent.queryStringParameters.startDate = 'asdf';
|
|
101
|
-
return [4 /*yield*/, middifiedHandler(invalidEvent, context, callback)];
|
|
102
|
-
case 1:
|
|
103
|
-
result = _a.sent();
|
|
104
|
-
console.log(result);
|
|
105
|
-
return [2 /*return*/];
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}); });
|
|
109
|
-
it('should error', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
110
|
-
var result;
|
|
111
|
-
return __generator(this, function (_a) {
|
|
112
|
-
switch (_a.label) {
|
|
113
|
-
case 0: return [4 /*yield*/, middifiedHandlerWithError(webEvent, context, callback)];
|
|
114
|
-
case 1:
|
|
115
|
-
result = _a.sent();
|
|
116
|
-
console.log(result);
|
|
117
|
-
return [2 /*return*/];
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}); });
|
|
121
|
-
});
|
|
122
|
-
describe('responseWrapperMiddleware', function () {
|
|
123
|
-
var handler = function (_event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
124
|
-
return __generator(this, function (_a) {
|
|
125
|
-
console.log('ok done');
|
|
126
|
-
return [2 /*return*/, {
|
|
127
|
-
data: {
|
|
128
|
-
abc: 123,
|
|
129
|
-
},
|
|
130
|
-
}];
|
|
131
|
-
});
|
|
132
|
-
}); };
|
|
133
|
-
var middifiedHandler = index_1.apiGatewayMiddy(handler).use(responseWrapper_1.responseWrapperMiddleware());
|
|
134
|
-
it('should work', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
135
|
-
var result;
|
|
136
|
-
return __generator(this, function (_a) {
|
|
137
|
-
switch (_a.label) {
|
|
138
|
-
case 0: return [4 /*yield*/, middifiedHandler(webEvent, context, callback)];
|
|
139
|
-
case 1:
|
|
140
|
-
result = _a.sent();
|
|
141
|
-
console.log(result);
|
|
142
|
-
return [2 /*return*/];
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}); });
|
|
146
|
-
});
|
|
147
|
-
describe('responseWrapperMiddleware error', function () {
|
|
148
|
-
var handler = function (_event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
149
|
-
return __generator(this, function (_a) {
|
|
150
|
-
throw new errors_1.NotFoundError();
|
|
151
|
-
});
|
|
152
|
-
}); };
|
|
153
|
-
var middifiedHandler = index_1.apiGatewayMiddy(handler).use(responseWrapper_1.responseWrapperMiddleware());
|
|
154
|
-
it('should work', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
155
|
-
var result;
|
|
156
|
-
return __generator(this, function (_a) {
|
|
157
|
-
switch (_a.label) {
|
|
158
|
-
case 0: return [4 /*yield*/, middifiedHandler(webEvent, context, callback)];
|
|
159
|
-
case 1:
|
|
160
|
-
result = _a.sent();
|
|
161
|
-
console.log(result);
|
|
162
|
-
return [2 /*return*/];
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
}); });
|
|
166
|
-
});
|
|
167
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.responseWrapperMiddleware = void 0;
|
|
4
|
-
var wrappers_1 = require("../wrappers");
|
|
5
|
-
exports.responseWrapperMiddleware = function () {
|
|
6
|
-
var responseWrapperMiddlewareAfter = function (req) {
|
|
7
|
-
req.response = wrappers_1.buildProxyResult(req.response);
|
|
8
|
-
};
|
|
9
|
-
return {
|
|
10
|
-
after: responseWrapperMiddlewareAfter,
|
|
11
|
-
};
|
|
12
|
-
};
|
package/dist/middleware/types.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validatorMiddleware = void 0;
|
|
4
|
-
var errors_1 = require("../errors");
|
|
5
|
-
var logger_1 = require("../logger/logger");
|
|
6
|
-
exports.validatorMiddleware = function (_a) {
|
|
7
|
-
var schema = _a.schema, _b = _a.allowUnknown, allowUnknown = _b === void 0 ? true : _b;
|
|
8
|
-
var validatorMiddlewareBefore = function (request) {
|
|
9
|
-
var _a = schema.validate(request.event, {
|
|
10
|
-
allowUnknown: allowUnknown,
|
|
11
|
-
errors: {
|
|
12
|
-
label: 'key',
|
|
13
|
-
wrap: {
|
|
14
|
-
label: false,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
}), error = _a.error, value = _a.value;
|
|
18
|
-
if (error) {
|
|
19
|
-
logger_1.logger.error('Validation error', { error: error });
|
|
20
|
-
throw error.isJoi ? new errors_1.BadRequestError(error.message) : error;
|
|
21
|
-
}
|
|
22
|
-
request.event = value;
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
before: validatorMiddlewareBefore,
|
|
26
|
-
};
|
|
27
|
-
};
|
package/dist/types.js
DELETED
package/dist/utils/cache.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LambdaCache = void 0;
|
|
4
|
-
var LambdaCache = /** @class */ (function () {
|
|
5
|
-
/**
|
|
6
|
-
* @param {String} collectionName (not required) - The collection key used to store the cache values.
|
|
7
|
-
* If not provide default collection name uses :
|
|
8
|
-
* ${process.env.AWS_LAMBDA_FUNCTION_NAME}-${process.env.AWS_LAMBDA_FUNCTION_VERSION}
|
|
9
|
-
* */
|
|
10
|
-
function LambdaCache(collectionName) {
|
|
11
|
-
this.collectionName = collectionName !== null && collectionName !== void 0 ? collectionName : process.env.AWS_LAMBDA_FUNCTION_NAME + "-" + process.env.AWS_LAMBDA_FUNCTION_VERSION;
|
|
12
|
-
if (!global['CACHE_STORAGE']) {
|
|
13
|
-
global['CACHE_STORAGE'] = {};
|
|
14
|
-
}
|
|
15
|
-
if (!global['CACHE_STORAGE'][this.collectionName]) {
|
|
16
|
-
global['CACHE_STORAGE'][this.collectionName] = new Map();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @param {String} key (required) - cache key
|
|
21
|
-
* @param {Object} value (required) - cache value
|
|
22
|
-
* @param {Number} expire (required) - cache expiration time (seconds)
|
|
23
|
-
* */
|
|
24
|
-
LambdaCache.prototype.set = function (key, value, ttl) {
|
|
25
|
-
var expire = 1000 * ttl + Date.now();
|
|
26
|
-
global['CACHE_STORAGE'][this.collectionName].set(key, { value: value, expire: expire });
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* @param {String} key (required) - cache key to get
|
|
30
|
-
* */
|
|
31
|
-
LambdaCache.prototype.get = function (key) {
|
|
32
|
-
if (!key) {
|
|
33
|
-
throw new Error('key is required!');
|
|
34
|
-
}
|
|
35
|
-
var record = global['CACHE_STORAGE'][this.collectionName].get(key);
|
|
36
|
-
if (!record) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
if (!record.expire || record.expire > Date.now()) {
|
|
40
|
-
return record.value;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return this.remove(key);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* @param {String} key (required) - cache key to remove
|
|
48
|
-
* */
|
|
49
|
-
LambdaCache.prototype.remove = function (key) {
|
|
50
|
-
var record = global['CACHE_STORAGE'][this.collectionName].get(key);
|
|
51
|
-
if (!record) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
global['CACHE_STORAGE'][this.collectionName].delete(key);
|
|
55
|
-
};
|
|
56
|
-
return LambdaCache;
|
|
57
|
-
}());
|
|
58
|
-
exports.LambdaCache = LambdaCache;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.promiseWithCache = void 0;
|
|
40
|
-
exports.promiseWithCache = function (promise, cacheInstance, cacheKey, ttl) { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
-
var instance;
|
|
42
|
-
return __generator(this, function (_a) {
|
|
43
|
-
switch (_a.label) {
|
|
44
|
-
case 0:
|
|
45
|
-
instance = cacheInstance.get(cacheKey);
|
|
46
|
-
if (!!instance) return [3 /*break*/, 2];
|
|
47
|
-
return [4 /*yield*/, promise()];
|
|
48
|
-
case 1:
|
|
49
|
-
instance = _a.sent();
|
|
50
|
-
cacheInstance.set(cacheKey, instance, ttl);
|
|
51
|
-
_a.label = 2;
|
|
52
|
-
case 2: return [2 /*return*/, instance];
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}); };
|
package/dist/utils/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.LambdaCache = void 0;
|
|
14
|
-
var cache_1 = require("./cache");
|
|
15
|
-
Object.defineProperty(exports, "LambdaCache", { enumerable: true, get: function () { return cache_1.LambdaCache; } });
|
|
16
|
-
__exportStar(require("./cacheWrapper"), exports);
|
|
17
|
-
__exportStar(require("./timeOut"), exports);
|
package/dist/utils/timeOut.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.promiseWithTimeout = void 0;
|
|
4
|
-
exports.promiseWithTimeout = function (promise, ms, timeoutError) {
|
|
5
|
-
if (timeoutError === void 0) { timeoutError = new Error('Promise timed out'); }
|
|
6
|
-
// create a promise that rejects in milliseconds
|
|
7
|
-
var timeout = new Promise(function (_, reject) {
|
|
8
|
-
setTimeout(function () {
|
|
9
|
-
reject(timeoutError);
|
|
10
|
-
}, ms);
|
|
11
|
-
});
|
|
12
|
-
// returns a race between timeout and the passed promise
|
|
13
|
-
return Promise.race([promise, timeout]);
|
|
14
|
-
//Adding comment to test
|
|
15
|
-
};
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.SpytecJoi = exports.iccidSchema = exports.imeiSchema = exports.urlEncoded = exports.json = void 0;
|
|
26
|
-
var Joi = __importStar(require("joi"));
|
|
27
|
-
var qs = __importStar(require("qs"));
|
|
28
|
-
var dayjs_1 = __importDefault(require("dayjs"));
|
|
29
|
-
var timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
|
|
30
|
-
var utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
31
|
-
dayjs_1.default.extend(utc_1.default);
|
|
32
|
-
dayjs_1.default.extend(timezone_1.default);
|
|
33
|
-
exports.json = Joi.extend(function (joi) {
|
|
34
|
-
return {
|
|
35
|
-
type: 'object',
|
|
36
|
-
base: joi.object(),
|
|
37
|
-
messages: {
|
|
38
|
-
'json.valid': 'must be valid JSON',
|
|
39
|
-
},
|
|
40
|
-
coerce: function (value) {
|
|
41
|
-
try {
|
|
42
|
-
return { value: JSON.parse(value) };
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
validate: function (value, helpers) {
|
|
49
|
-
if (!value) {
|
|
50
|
-
return { value: value, errors: helpers.error('json.valid') };
|
|
51
|
-
}
|
|
52
|
-
return { value: value };
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
exports.urlEncoded = Joi.extend(function (joi) {
|
|
57
|
-
return {
|
|
58
|
-
type: 'object',
|
|
59
|
-
base: joi.object(),
|
|
60
|
-
coerce: function (value) {
|
|
61
|
-
return { value: qs.parse(value) };
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
exports.imeiSchema = Joi.string()
|
|
66
|
-
.regex(/^\d{15,16}$/)
|
|
67
|
-
.message('Invalid IMEI');
|
|
68
|
-
exports.iccidSchema = Joi.string()
|
|
69
|
-
.regex(/^[0-9A-Za-z]{18,22}$/)
|
|
70
|
-
.message('Invalid ICCID');
|
|
71
|
-
exports.SpytecJoi = Joi.extend(function (joi) { return ({
|
|
72
|
-
type: 'imei',
|
|
73
|
-
messages: 'Invalid IMEI',
|
|
74
|
-
base: joi.string().regex(/^\d{15,16}$/),
|
|
75
|
-
}); }, function (joi) { return ({
|
|
76
|
-
type: 'iccid',
|
|
77
|
-
messages: 'Invalid ICCID',
|
|
78
|
-
base: joi.string().regex(/^[0-9A-Za-z]{18,22}$/),
|
|
79
|
-
}); }, function (joi) { return ({
|
|
80
|
-
type: 'urlEncodedObject',
|
|
81
|
-
base: joi.object(),
|
|
82
|
-
coerce: function (value) {
|
|
83
|
-
return { value: qs.parse(value) };
|
|
84
|
-
},
|
|
85
|
-
}); }, function (joi) { return ({
|
|
86
|
-
type: 'jsonObject',
|
|
87
|
-
base: joi.object(),
|
|
88
|
-
coerce: function (value) {
|
|
89
|
-
try {
|
|
90
|
-
return { value: JSON.parse(value) };
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
validate: function (value, helpers) {
|
|
97
|
-
if (!value) {
|
|
98
|
-
return { value: value, errors: helpers.error('json.valid') };
|
|
99
|
-
}
|
|
100
|
-
return { value: value };
|
|
101
|
-
},
|
|
102
|
-
}); }, function (joi) { return ({
|
|
103
|
-
type: 'delimitedArray',
|
|
104
|
-
base: joi.array().default([]),
|
|
105
|
-
coerce: function (value) { return ({
|
|
106
|
-
value: value.split ? value.split(',') : value,
|
|
107
|
-
}); },
|
|
108
|
-
}); }, function (joi) { return ({
|
|
109
|
-
type: 'queryStringParameters',
|
|
110
|
-
messages: 'Missing query parameters',
|
|
111
|
-
base: joi.object().required(),
|
|
112
|
-
}); }, function (joi) { return ({
|
|
113
|
-
type: 'date',
|
|
114
|
-
base: joi.date(),
|
|
115
|
-
prepare: function (value, helpers) {
|
|
116
|
-
try {
|
|
117
|
-
var dayjsDate = dayjs_1.default.tz(value, 'UTC');
|
|
118
|
-
if (dayjsDate.isValid()) {
|
|
119
|
-
return { value: dayjsDate.toDate() };
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
return helpers.error('any.invalid');
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
}); }, function (joi) { return ({
|
|
127
|
-
type: 'jsonArray',
|
|
128
|
-
base: joi.array(),
|
|
129
|
-
coerce: function (value) {
|
|
130
|
-
try {
|
|
131
|
-
return { value: JSON.parse(value) };
|
|
132
|
-
}
|
|
133
|
-
catch (err) {
|
|
134
|
-
return { value: null };
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
validate: function (value, helpers) {
|
|
138
|
-
if (!Array.isArray(value)) {
|
|
139
|
-
return { value: value, errors: helpers.error('jsonArray.schema') };
|
|
140
|
-
}
|
|
141
|
-
return { value: value };
|
|
142
|
-
},
|
|
143
|
-
}); });
|
package/dist/validation/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.defaultApiSchema = exports.validateEvent = void 0;
|
|
17
|
-
var validateEvent_1 = __importDefault(require("./validateEvent"));
|
|
18
|
-
exports.validateEvent = validateEvent_1.default;
|
|
19
|
-
var requestContext_1 = require("./requestContext");
|
|
20
|
-
var custom_1 = require("./custom");
|
|
21
|
-
__exportStar(require("./custom"), exports);
|
|
22
|
-
__exportStar(require("./requestContext"), exports);
|
|
23
|
-
exports.defaultApiSchema = custom_1.SpytecJoi.object({
|
|
24
|
-
requestContext: requestContext_1.getRequestContextValidator(),
|
|
25
|
-
});
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.getRequestContextValidator = exports.requestContextValidator = exports.getAuthorizerValidator = void 0;
|
|
23
|
-
var Joi = __importStar(require("joi"));
|
|
24
|
-
var errors_1 = require("../errors");
|
|
25
|
-
var custom_1 = require("./custom");
|
|
26
|
-
exports.getAuthorizerValidator = function (_a) {
|
|
27
|
-
var _b = _a === void 0 ? {} : _a, scope = _b.scope, type = _b.type;
|
|
28
|
-
return Joi.object({
|
|
29
|
-
clientId: Joi.number(),
|
|
30
|
-
resources: custom_1.json.object({}),
|
|
31
|
-
scope: scope
|
|
32
|
-
? Joi.string()
|
|
33
|
-
.pattern(new RegExp("" + scope))
|
|
34
|
-
.error(function () { return new errors_1.UnauthorizedError("missing scope " + scope); })
|
|
35
|
-
: Joi.optional(),
|
|
36
|
-
type: type
|
|
37
|
-
? Joi.any()
|
|
38
|
-
.valid(type)
|
|
39
|
-
.error(function () { return new errors_1.UnauthorizedError("missing user type " + type); })
|
|
40
|
-
: Joi.optional(),
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated
|
|
45
|
-
*/
|
|
46
|
-
exports.requestContextValidator = Joi.object({
|
|
47
|
-
authorizer: exports.getAuthorizerValidator(),
|
|
48
|
-
});
|
|
49
|
-
exports.getRequestContextValidator = function (params) {
|
|
50
|
-
if (params === void 0) { params = {}; }
|
|
51
|
-
return Joi.object({
|
|
52
|
-
authorizer: exports.getAuthorizerValidator(params),
|
|
53
|
-
});
|
|
54
|
-
};
|