@pgds/api-interface 1.2.5

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.
Files changed (65) hide show
  1. package/README.md +410 -0
  2. package/client/FairtrailClient.d.ts +38 -0
  3. package/client/FairtrailClient.js +219 -0
  4. package/client/FairtrailClient.js.map +1 -0
  5. package/client/HttpClient.d.ts +36 -0
  6. package/client/HttpClient.js +360 -0
  7. package/client/HttpClient.js.map +1 -0
  8. package/client/index.d.ts +3 -0
  9. package/client/index.js +8 -0
  10. package/client/index.js.map +1 -0
  11. package/constants/index.d.ts +8 -0
  12. package/constants/index.js +13 -0
  13. package/constants/index.js.map +1 -0
  14. package/errors/index.d.ts +1 -0
  15. package/errors/index.js +72 -0
  16. package/errors/index.js.map +1 -0
  17. package/index.d.ts +7 -0
  18. package/index.js +23 -0
  19. package/lib/auth/mustbeConfig.d.ts +13 -0
  20. package/lib/auth/mustbeConfig.js +167 -0
  21. package/lib/auth/mustbeConfig.js.map +1 -0
  22. package/lib/constants/constants.d.ts +3 -0
  23. package/lib/constants/constants.js +8 -0
  24. package/lib/constants/constants.js.map +1 -0
  25. package/lib/index.d.ts +255 -0
  26. package/lib/index.js +462 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/models/Http.d.ts +62 -0
  29. package/lib/models/Http.js +3 -0
  30. package/lib/models/Http.js.map +1 -0
  31. package/lib/models/ReqUser.d.ts +10 -0
  32. package/lib/models/ReqUser.js +3 -0
  33. package/lib/models/ReqUser.js.map +1 -0
  34. package/lib/server/server.d.ts +13 -0
  35. package/lib/server/server.js +154 -0
  36. package/lib/server/server.js.map +1 -0
  37. package/lib/utils/asyncHooks.d.ts +28 -0
  38. package/lib/utils/asyncHooks.js +99 -0
  39. package/lib/utils/asyncHooks.js.map +1 -0
  40. package/lib/utils/jsonSchemaUtils.d.ts +14 -0
  41. package/lib/utils/jsonSchemaUtils.js +187 -0
  42. package/lib/utils/jsonSchemaUtils.js.map +1 -0
  43. package/lib/utils/logger.d.ts +5 -0
  44. package/lib/utils/logger.js +33 -0
  45. package/lib/utils/logger.js.map +1 -0
  46. package/lib/utils/urlUtils.d.ts +1 -0
  47. package/lib/utils/urlUtils.js +14 -0
  48. package/lib/utils/urlUtils.js.map +1 -0
  49. package/package.json +104 -0
  50. package/types/hiot.d.ts +368 -0
  51. package/types/mustbe/config/activities.d.ts +11 -0
  52. package/types/mustbe/config/index.d.ts +77 -0
  53. package/types/mustbe/config/parameter-map.d.ts +8 -0
  54. package/types/mustbe/config/route-helpers.d.ts +17 -0
  55. package/types/mustbe/config/user-identity.d.ts +7 -0
  56. package/types/mustbe/core.d.ts +23 -0
  57. package/types/mustbe/identities/userIdentity.d.ts +10 -0
  58. package/types/mustbe/index.d.ts +6 -0
  59. package/types/mustbe/principals/index.d.ts +10 -0
  60. package/types/mustbe/registry.d.ts +11 -0
  61. package/types/mustbe/routeHelpers/index.d.ts +20 -0
  62. package/types/mustbe/verifier/index.d.ts +10 -0
  63. package/utils/index.d.ts +13 -0
  64. package/utils/index.js +32 -0
  65. package/utils/index.js.map +1 -0
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __generator = (this && this.__generator) || function (thisArg, body) {
45
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
+ function verb(n) { return function (v) { return step([n, v]); }; }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
+ 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;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0: case 1: t = op; break;
55
+ case 4: _.label++; return { value: op[1], done: false };
56
+ case 5: _.label++; y = op[1]; op = [0]; continue;
57
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
+ default:
59
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
+ if (t[2]) _.ops.pop();
64
+ _.trys.pop(); continue;
65
+ }
66
+ op = body.call(thisArg, _);
67
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
+ }
70
+ };
71
+ Object.defineProperty(exports, "__esModule", { value: true });
72
+ exports.closeServer = exports.server = void 0;
73
+ exports.startServer = startServer;
74
+ var restify_1 = require("restify");
75
+ var restifyErrors = __importStar(require("restify-errors"));
76
+ var logger_1 = require("../utils/logger");
77
+ var __1 = require("..");
78
+ var _server;
79
+ exports.server = new Proxy({}, {
80
+ get: function (_target, prop, _receiver) {
81
+ if (_server && prop in _server) {
82
+ return _server[prop];
83
+ }
84
+ else {
85
+ /** If started in legacy mode, we will never use this, other than when it is imported */
86
+ if (!(0, __1.getApiOptions)().legacyMode) {
87
+ throw new Error("setupApiInterface has to be run before accessing server");
88
+ }
89
+ }
90
+ },
91
+ });
92
+ var closeServer = function () { return _server === null || _server === void 0 ? void 0 : _server.close(); };
93
+ exports.closeServer = closeServer;
94
+ function startServer(_a) {
95
+ return __awaiter(this, arguments, void 0, function (_b) {
96
+ var childLogger, audit, client, register, address;
97
+ var serviceName = _b.serviceName, port = _b.port, onUncaughtException = _b.onUncaughtException, maxParamLength = _b.maxParamLength;
98
+ return __generator(this, function (_c) {
99
+ switch (_c.label) {
100
+ case 0:
101
+ childLogger = (0, logger_1.createLogger)("".concat(serviceName, ":hiot-api-interface:server"));
102
+ _server = (0, restify_1.createServer)({
103
+ log: childLogger,
104
+ handleUncaughtExceptions: true,
105
+ // TODO: _server.router.defaultRoute can be used to handle rejected routes. To return 413 for instance, we would have to parse params and query params to check if they are too long, which has already been done in the queryParser and bodyParser plugins so it's a bit inconvenient to differentiate between 413 and 404 errors (too long params will be returned as 404 by default).
106
+ maxParamLength: maxParamLength !== null && maxParamLength !== void 0 ? maxParamLength : 2000,
107
+ });
108
+ audit = restify_1.plugins.auditLogger({ log: childLogger, event: "routed" });
109
+ _server.use(restify_1.plugins.acceptParser(_server.acceptable));
110
+ _server.use(restify_1.plugins.bodyParser());
111
+ _server.use(restify_1.plugins.queryParser());
112
+ _server.use(restify_1.plugins.requestLogger());
113
+ _server.on("after", audit);
114
+ _server.on("uncaughtException", exceptionHandler({ callback: onUncaughtException }));
115
+ client = require("prom-client");
116
+ register = new client.Registry();
117
+ client.collectDefaultMetrics({ register: register });
118
+ childLogger.debug("Registering /metrics for devops in api");
119
+ _server.get("/metrics", metricsHandler(register));
120
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
121
+ return _server.listen(port, function (err) {
122
+ if (err)
123
+ reject(err);
124
+ resolve(undefined);
125
+ });
126
+ })];
127
+ case 1:
128
+ _c.sent();
129
+ address = _server.address();
130
+ childLogger.debug("api is running an listening on port: ".concat(address.port));
131
+ childLogger.info("api is running an listening on port: ".concat(address.port));
132
+ return [2 /*return*/, _server];
133
+ }
134
+ });
135
+ });
136
+ }
137
+ function exceptionHandler(_a) {
138
+ var callback = _a.callback;
139
+ return function (_req, res, _route, err, cb) {
140
+ if (!res.headersSent) {
141
+ res.send(new restifyErrors.InternalServerError(err));
142
+ }
143
+ callback === null || callback === void 0 ? void 0 : callback(err);
144
+ cb === null || cb === void 0 ? void 0 : cb();
145
+ };
146
+ }
147
+ function metricsHandler(register) {
148
+ return function (_req, res, next) {
149
+ res.setHeader("Content-Type", register.contentType);
150
+ res.end(register.metrics());
151
+ next();
152
+ };
153
+ }
154
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ReqUser } from "../models/ReqUser";
2
+ import { Request } from "../models/Http";
3
+ interface RequestStore {
4
+ /**
5
+ * The current request's user.
6
+ *
7
+ * NOTE: This should not be used left and right and always in a way that makes it SUPER clear where it comes from.
8
+ **/
9
+ user?: ReqUser;
10
+ /**
11
+ * The current request's request id, should be passed in the headers of all outgoing requests.
12
+ *
13
+ * Will be automatically be added to any requests made with the clients extending FairtrailClient.
14
+ **/
15
+ reqId: string;
16
+ }
17
+ type RequestContext = Request | string;
18
+ /**
19
+ * Runs the inputted function within a async context that has access to the current request's store.
20
+ *
21
+ * Happens automatically when registering endpoints through the package.
22
+ *
23
+ * @throws Any error thrown by the inputted function
24
+ */
25
+ export declare function runWithRequestContext(reqContext: RequestContext, fn: () => void): Promise<unknown>;
26
+ /** Access to the current request's store */
27
+ export declare function useReqStore(): RequestStore;
28
+ export {};
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runWithRequestContext = runWithRequestContext;
37
+ exports.useReqStore = useReqStore;
38
+ var constants_1 = require("../../constants");
39
+ var async_hooks_1 = require("async_hooks");
40
+ var uuid = __importStar(require("uuid"));
41
+ function isRequest(reqContext) {
42
+ return typeof reqContext !== "string";
43
+ }
44
+ var asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
45
+ /**
46
+ * Runs the inputted function within a async context that has access to the current request's store.
47
+ *
48
+ * Happens automatically when registering endpoints through the package.
49
+ *
50
+ * @throws Any error thrown by the inputted function
51
+ */
52
+ function runWithRequestContext(reqContext, fn) {
53
+ var _a, _b, _c, _d;
54
+ var reqId = "";
55
+ var user = undefined;
56
+ if (isRequest(reqContext)) {
57
+ reqId = (_c = (_b = (_a = reqContext.header) === null || _a === void 0 ? void 0 : _a.call(reqContext, constants_1.REQUEST_ID_HEADER)) !== null && _b !== void 0 ? _b : reqContext.getId()) !== null && _c !== void 0 ? _c : uuid.v4();
58
+ user = (_d = reqContext.user) !== null && _d !== void 0 ? _d : getFallbackUser(reqContext);
59
+ }
60
+ else {
61
+ reqId = reqContext;
62
+ }
63
+ return new Promise(function (resolve, reject) {
64
+ asyncLocalStorage.run({ reqId: reqId, user: user }, function () {
65
+ try {
66
+ resolve(fn());
67
+ }
68
+ catch (err) {
69
+ reject(err);
70
+ }
71
+ });
72
+ });
73
+ }
74
+ /** Access to the current request's store */
75
+ function useReqStore() {
76
+ var _a;
77
+ return (_a = asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : {};
78
+ }
79
+ /* The fallback is mainly for when running tests */
80
+ function getFallbackUser(req) {
81
+ var userId = req.header(constants_1.AUTH_USER_HEADER);
82
+ var activeLogin = req.header(constants_1.AUTH_ACTIVE_LOGIN_HEADER);
83
+ var activities = req.header(constants_1.AUTH_ACTIVITIES_HEADER);
84
+ var organizationId = req.header(constants_1.AUTH_ORGANIZATION_HEADER);
85
+ /* Make sure we don't create a user from thin air */
86
+ if (!userId && !activeLogin && !activities && !organizationId) {
87
+ return undefined;
88
+ }
89
+ return {
90
+ userId: userId,
91
+ activeLogin: activeLogin,
92
+ activities: activities === null || activities === void 0 ? void 0 : activities.split(",").reduce(function (acc, activity) {
93
+ acc[activity] = true;
94
+ return acc;
95
+ }, {}),
96
+ organizationId: organizationId,
97
+ };
98
+ }
99
+ //# sourceMappingURL=asyncHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncHooks.js","sourceRoot":"","sources":["asyncHooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,sDAoBC;AAGD,kCAEC;AApED,6CAMyB;AACzB,2CAAgD;AAGhD,yCAA6B;AAoB7B,SAAS,SAAS,CAAC,UAA0B;IAC3C,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED,IAAM,iBAAiB,GAAG,IAAI,+BAAiB,EAAgB,CAAC;AAEhE;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,UAA0B,EAAE,EAAc;;IAC9E,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,IAAI,GAAwB,SAAS,CAAC;IAE1C,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,MAAA,MAAA,MAAA,UAAU,CAAC,MAAM,2DAAG,6BAAiB,CAAC,mCAAI,UAAU,CAAC,KAAK,EAAE,mCAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QAClF,IAAI,GAAG,MAAA,UAAU,CAAC,IAAI,mCAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,UAAU,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4CAA4C;AAC5C,SAAgB,WAAW;;IACzB,OAAO,MAAA,iBAAiB,CAAC,QAAQ,EAAE,mCAAK,EAAmB,CAAC;AAC9D,CAAC;AAED,mDAAmD;AACnD,SAAS,eAAe,CAAC,GAAY;IACnC,IAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,4BAAgB,CAAC,CAAC;IAC5C,IAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,oCAAwB,CAAC,CAAC;IACzD,IAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,kCAAsB,CAAC,CAAC;IACtD,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,oCAAwB,CAAC,CAAC;IAE5D,oDAAoD;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,QAAA;QACN,WAAW,aAAA;QACX,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,UAAC,GAAG,EAAE,QAAQ;YACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA6B,CAAC;QACjC,cAAc,gBAAA;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { EndpointOptions } from "..";
2
+ import { Next, Request, Response } from "restify";
3
+ /** Speeds up loading schemas when testing by only loading the schemas once instead of once per test file */
4
+ export declare const schemaCache: Map<string, object>;
5
+ export declare function getSchemas(schemaNames: string[]): void;
6
+ export declare function getSchema(schemaName: string): object | undefined;
7
+ export declare function prepareResponseSchemas(options: EndpointOptions): object[];
8
+ export declare function validateResponseBody(schemas: object[], body: object): void;
9
+ export declare enum RequestKey {
10
+ Body = "body",
11
+ Query = "query",
12
+ Params = "params"
13
+ }
14
+ export declare function jsonSchemaValidationMiddleware(schema: any, requestKey: RequestKey): (req: Request, _res: Response, next: Next) => void;
@@ -0,0 +1,187 @@
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.RequestKey = exports.schemaCache = void 0;
7
+ exports.getSchemas = getSchemas;
8
+ exports.getSchema = getSchema;
9
+ exports.prepareResponseSchemas = prepareResponseSchemas;
10
+ exports.validateResponseBody = validateResponseBody;
11
+ exports.jsonSchemaValidationMiddleware = jsonSchemaValidationMiddleware;
12
+ var __1 = require("..");
13
+ var path_1 = require("path");
14
+ var typescript_json_schema_1 = require("typescript-json-schema");
15
+ var logger_1 = __importDefault(require("./logger"));
16
+ var constants_1 = require("../constants/constants");
17
+ var restify_errors_1 = require("restify-errors");
18
+ var ajv_1 = __importDefault(require("ajv"));
19
+ var ajv_formats_1 = __importDefault(require("ajv-formats"));
20
+ /** Speeds up loading schemas when testing by only loading the schemas once instead of once per test file */
21
+ exports.schemaCache = new Map();
22
+ function getSchemas(schemaNames) {
23
+ var _a;
24
+ try {
25
+ var compilerOptions = {
26
+ strictNullChecks: true,
27
+ };
28
+ var schemaBasePath_1 = (_a = (0, __1.getApiOptions)().schemaBasePath) !== null && _a !== void 0 ? _a : constants_1.SCHEMA_BASE_PATH;
29
+ var program = (0, typescript_json_schema_1.getProgramFromFiles)(schemaNames.map(function (schemaName) { return (0, path_1.resolve)("".concat(schemaBasePath_1, "/").concat(schemaName, ".ts")); }), compilerOptions, schemaBasePath_1);
30
+ var settings = {
31
+ required: true,
32
+ ref: false,
33
+ noExtraProps: true,
34
+ };
35
+ var schemas_1 = (0, typescript_json_schema_1.generateSchema)(program, "*", settings);
36
+ if (schemas_1 === null || schemas_1 === void 0 ? void 0 : schemas_1.definitions) {
37
+ schemaNames.forEach(function (schemaName) {
38
+ var _a;
39
+ var typeSchema = Object.entries((_a = schemas_1 === null || schemas_1 === void 0 ? void 0 : schemas_1.definitions) !== null && _a !== void 0 ? _a : []).find(function (_a) {
40
+ var key = _a[0];
41
+ if (key === schemaName) {
42
+ return true;
43
+ }
44
+ })[1];
45
+ if (typeSchema) {
46
+ exports.schemaCache.set(schemaName, typeSchema);
47
+ }
48
+ });
49
+ }
50
+ }
51
+ catch (err) {
52
+ if (constants_1.CI) {
53
+ console.error(err);
54
+ }
55
+ }
56
+ }
57
+ function getSchema(schemaName) {
58
+ if (exports.schemaCache.has(schemaName)) {
59
+ return exports.schemaCache.get(schemaName);
60
+ }
61
+ else {
62
+ if (constants_1.CI) {
63
+ console.error("error: schema ".concat(schemaName, " not found"));
64
+ }
65
+ else {
66
+ logger_1.default.error("error: schema ".concat(schemaName, " not found"));
67
+ }
68
+ }
69
+ }
70
+ function prepareResponseSchemas(options) {
71
+ var _a, _b;
72
+ var responseSchemas = [];
73
+ (_b = (_a = options.documentation) === null || _a === void 0 ? void 0 : _a.responses) === null || _b === void 0 ? void 0 : _b.forEach(function (doc) {
74
+ if (doc.schema) {
75
+ try {
76
+ (Array.isArray(doc.schema) ? doc.schema : [doc.schema]).forEach(function (schemaName) {
77
+ if (typeof schemaName === "string") {
78
+ var schema = getSchema(schemaName);
79
+ responseSchemas.push(schema);
80
+ }
81
+ else {
82
+ responseSchemas.push(schemaName);
83
+ }
84
+ });
85
+ }
86
+ catch (err) {
87
+ console.error(err);
88
+ }
89
+ }
90
+ });
91
+ return responseSchemas;
92
+ }
93
+ var ajv;
94
+ function setupAjv() {
95
+ if (!ajv) {
96
+ ajv = new ajv_1.default({ allErrors: true });
97
+ // @ts-ignore
98
+ (0, ajv_formats_1.default)(ajv);
99
+ }
100
+ }
101
+ if (constants_1.CI) {
102
+ setupAjv();
103
+ }
104
+ function validateResponseBody(schemas, body) {
105
+ var errorMessages = [];
106
+ var isValid = false;
107
+ try {
108
+ schemas.forEach(function (responseSchema) {
109
+ var _a, _b;
110
+ var validator = ajv === null || ajv === void 0 ? void 0 : ajv.compile(responseSchema);
111
+ var validationResult = validator(JSON.parse(JSON.stringify(body)));
112
+ if (!validationResult) {
113
+ var msg = (_b = (_a = validator.errors) === null || _a === void 0 ? void 0 : _a.map(function (err) { return formatValidationError(err); })) === null || _b === void 0 ? void 0 : _b.join(", ");
114
+ if (msg) {
115
+ errorMessages.push(msg);
116
+ }
117
+ }
118
+ else {
119
+ /** Since documentation can have different schemas for different types of returns, we just need to check if one of them is valid */
120
+ isValid = true;
121
+ }
122
+ });
123
+ if (!isValid) {
124
+ throw new restify_errors_1.InternalServerError(errorMessages.join(" | "));
125
+ }
126
+ }
127
+ catch (err) {
128
+ throw new Error(err);
129
+ }
130
+ }
131
+ /** err is of type Ajv.ErrorObject, however, it crashes in CircleCI when using that for some reason */
132
+ function formatValidationError(err) {
133
+ if (err.dataPath && err.dataPath !== "") {
134
+ return "Response ".concat(err.dataPath, " ").concat(err.message);
135
+ }
136
+ else if (err.keyword === "required") {
137
+ return "Response ".concat(err.message);
138
+ }
139
+ else {
140
+ var params = Object.values(err.params);
141
+ return "Response ".concat(err.message).concat(params.length > 0 ? ":" : "", " ").concat(params.join(", "));
142
+ }
143
+ }
144
+ function validateSchema(schema) {
145
+ setupAjv();
146
+ var validator = ajv.compile(schema,
147
+ // @ts-ignore
148
+ { allErrors: true });
149
+ return function (value) {
150
+ if (!validator(value)) {
151
+ return {
152
+ success: false,
153
+ errors: validator.errors,
154
+ errorsText: ajv.errorsText(validator.errors),
155
+ };
156
+ }
157
+ return { success: true };
158
+ };
159
+ }
160
+ var RequestKey;
161
+ (function (RequestKey) {
162
+ RequestKey["Body"] = "body";
163
+ RequestKey["Query"] = "query";
164
+ RequestKey["Params"] = "params";
165
+ })(RequestKey || (exports.RequestKey = RequestKey = {}));
166
+ function jsonSchemaValidationMiddleware(schema, requestKey) {
167
+ var validator = validateSchema(schema);
168
+ return function (req, _res, next) {
169
+ var body;
170
+ try {
171
+ body = typeof req[requestKey] === "string" ? JSON.parse(req[requestKey]) : req[requestKey];
172
+ }
173
+ catch (err) {
174
+ /* If JSON.parse fails, we fall back to an empty object */
175
+ body = {};
176
+ }
177
+ var result = validator(body !== null && body !== void 0 ? body : {});
178
+ if (result.success) {
179
+ next();
180
+ }
181
+ else {
182
+ // TODO: fix better error message (result.errors includes valuable information)
183
+ next(new restify_errors_1.BadRequestError("req.".concat(requestKey, ": ").concat(result.errorsText, " - ").concat(JSON.stringify(result.errors))));
184
+ }
185
+ };
186
+ }
187
+ //# sourceMappingURL=jsonSchemaUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonSchemaUtils.js","sourceRoot":"","sources":["jsonSchemaUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as bunyan from "bunyan";
2
+ export declare function setupLogger(inServiceName: string, inServiceLogLevel: string): void;
3
+ export declare function createLogger(inServiceName: string): import("bunyan");
4
+ declare const _default: bunyan;
5
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupLogger = setupLogger;
4
+ exports.createLogger = createLogger;
5
+ var bunyan_1 = require("bunyan");
6
+ var bformat = require("bunyan-format");
7
+ var serviceName = "";
8
+ var serviceLogLevel = "";
9
+ var logger = undefined;
10
+ function setupLogger(inServiceName, inServiceLogLevel) {
11
+ serviceName = inServiceName;
12
+ serviceLogLevel = inServiceLogLevel;
13
+ logger = createLogger(serviceName);
14
+ }
15
+ function createLogger(inServiceName) {
16
+ return (0, bunyan_1.createLogger)({
17
+ name: inServiceName,
18
+ level: serviceLogLevel,
19
+ stream: bformat({ outputMode: "short" }),
20
+ serializers: bunyan_1.stdSerializers,
21
+ });
22
+ }
23
+ exports.default = new Proxy({}, {
24
+ get: function (_target, prop, _receiver) {
25
+ if (logger && prop in logger) {
26
+ return logger[prop];
27
+ }
28
+ else {
29
+ return function () { };
30
+ }
31
+ },
32
+ });
33
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":";;AASA,kCAKC;AAED,oCAOC;AAvBD,iCAAsF;AAGtF,IAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEzC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,eAAe,GAAG,EAAc,CAAC;AACrC,IAAI,MAAM,GAAuB,SAAS,CAAC;AAE3C,SAAgB,WAAW,CAAC,aAAqB,EAAE,iBAAyB;IAC1E,WAAW,GAAG,aAAa,CAAC;IAC5B,eAAe,GAAG,iBAA6B,CAAC;IAEhD,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,YAAY,CAAC,aAAqB;IAChD,OAAO,IAAA,qBAAkB,EAAC;QACxB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,eAA2B;QAClC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACxC,WAAW,EAAE,uBAAc;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,kBAAe,IAAI,KAAK,CAAC,EAAY,EAAE;IACrC,GAAG,EAAE,UAAU,OAAO,EAAE,IAAI,EAAE,SAAS;QACrC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAoB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,cAAO,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function route(version: string, path: string, internal?: boolean): string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.route = route;
4
+ var constants_1 = require("../constants/constants");
5
+ function route(version, path, internal) {
6
+ if (internal === void 0) { internal = false; }
7
+ path = path || "";
8
+ version = version !== "" ? "/".concat(version) : "";
9
+ if (internal) {
10
+ return "".concat(version).concat(constants_1.INTERNAL_ENDPOINT_PREFIX).concat(path);
11
+ }
12
+ return "".concat(version).concat(path);
13
+ }
14
+ //# sourceMappingURL=urlUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["urlUtils.ts"],"names":[],"mappings":";;AAEA,sBAUC;AAZD,oDAAkE;AAElE,SAAgB,KAAK,CAAC,OAAe,EAAE,IAAY,EAAE,QAAyB;IAAzB,yBAAA,EAAA,gBAAyB;IAC5E,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAElB,OAAO,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,WAAI,OAAO,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,UAAG,OAAO,SAAG,oCAAwB,SAAG,IAAI,CAAE,CAAC;IACxD,CAAC;IAED,OAAO,UAAG,OAAO,SAAG,IAAI,CAAE,CAAC;AAC7B,CAAC"}