apitally 0.1.2 → 0.1.4
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/lib/cjs/common/client.cjs +395 -0
- package/lib/cjs/common/client.cjs.map +1 -0
- package/lib/cjs/common/index.cjs +13 -0
- package/lib/cjs/common/index.cjs.map +1 -0
- package/lib/cjs/common/keyRegistry.cjs +162 -0
- package/lib/cjs/common/keyRegistry.cjs.map +1 -0
- package/lib/cjs/common/logging.cjs +17 -0
- package/lib/cjs/common/logging.cjs.map +1 -0
- package/lib/cjs/common/requestLogger.cjs +69 -0
- package/lib/cjs/common/requestLogger.cjs.map +1 -0
- package/lib/cjs/common/types.cjs +6 -0
- package/lib/cjs/common/types.cjs.map +1 -0
- package/lib/cjs/common/utils.cjs +24 -0
- package/lib/cjs/common/utils.cjs.map +1 -0
- package/lib/cjs/common/validationErrorLogger.cjs +58 -0
- package/lib/cjs/common/validationErrorLogger.cjs.map +1 -0
- package/lib/cjs/express/auth.cjs +105 -0
- package/lib/cjs/express/auth.cjs.map +1 -0
- package/lib/cjs/express/index.cjs +27 -0
- package/lib/cjs/express/index.cjs.map +1 -0
- package/lib/cjs/express/listEndpoints.cjs +175 -0
- package/lib/cjs/express/listEndpoints.cjs.map +1 -0
- package/lib/cjs/express/middleware.cjs +167 -0
- package/lib/cjs/express/middleware.cjs.map +1 -0
- package/lib/cjs/fastify/auth.cjs +105 -0
- package/lib/cjs/fastify/auth.cjs.map +1 -0
- package/lib/cjs/fastify/index.cjs +28 -0
- package/lib/cjs/fastify/index.cjs.map +1 -0
- package/lib/cjs/fastify/plugin.cjs +147 -0
- package/lib/cjs/fastify/plugin.cjs.map +1 -0
- package/lib/cjs/index.cjs +6 -0
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/koa/auth.cjs +113 -0
- package/lib/cjs/koa/auth.cjs.map +1 -0
- package/lib/cjs/koa/index.cjs +27 -0
- package/lib/cjs/koa/index.cjs.map +1 -0
- package/lib/cjs/koa/middleware.cjs +122 -0
- package/lib/cjs/koa/middleware.cjs.map +1 -0
- package/lib/cjs/nestjs/auth.cjs +132 -0
- package/lib/cjs/nestjs/auth.cjs.map +1 -0
- package/lib/cjs/nestjs/index.cjs +39 -0
- package/lib/cjs/nestjs/index.cjs.map +1 -0
- package/lib/esm/common/client.js +385 -0
- package/lib/esm/common/client.js.map +1 -0
- package/lib/esm/common/index.js +1 -0
- package/lib/esm/common/index.js.map +1 -0
- package/lib/esm/common/keyRegistry.js +155 -0
- package/lib/esm/common/keyRegistry.js.map +1 -0
- package/lib/esm/common/logging.js +11 -0
- package/lib/esm/common/logging.js.map +1 -0
- package/lib/esm/common/requestLogger.js +63 -0
- package/lib/esm/common/requestLogger.js.map +1 -0
- package/lib/esm/common/types.js +1 -0
- package/lib/esm/common/types.js.map +1 -0
- package/lib/esm/common/utils.js +16 -0
- package/lib/esm/common/utils.js.map +1 -0
- package/lib/esm/common/validationErrorLogger.js +52 -0
- package/lib/esm/common/validationErrorLogger.js.map +1 -0
- package/lib/esm/express/auth.js +98 -0
- package/lib/esm/express/auth.js.map +1 -0
- package/lib/esm/express/index.js +4 -0
- package/lib/esm/express/index.js.map +1 -0
- package/lib/esm/express/listEndpoints.js +168 -0
- package/lib/esm/express/listEndpoints.js.map +1 -0
- package/lib/esm/express/middleware.js +160 -0
- package/lib/esm/express/middleware.js.map +1 -0
- package/lib/esm/fastify/auth.js +98 -0
- package/lib/esm/fastify/auth.js.map +1 -0
- package/lib/esm/fastify/index.js +4 -0
- package/lib/esm/fastify/index.js.map +1 -0
- package/lib/esm/fastify/plugin.js +140 -0
- package/lib/esm/fastify/plugin.js.map +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/koa/auth.js +106 -0
- package/lib/esm/koa/auth.js.map +1 -0
- package/lib/esm/koa/index.js +4 -0
- package/lib/esm/koa/index.js.map +1 -0
- package/lib/esm/koa/middleware.js +115 -0
- package/lib/esm/koa/middleware.js.map +1 -0
- package/lib/esm/nestjs/auth.js +126 -0
- package/lib/esm/nestjs/auth.js.map +1 -0
- package/lib/esm/nestjs/index.js +4 -0
- package/lib/esm/nestjs/index.js.map +1 -0
- package/{dist/src → lib/types}/common/client.d.ts +7 -6
- package/lib/types/common/client.d.ts.map +1 -0
- package/lib/types/common/index.d.ts +2 -0
- package/{dist/src → lib/types}/common/index.d.ts.map +1 -1
- package/{dist/src → lib/types}/common/requestLogger.d.ts +1 -1
- package/{dist/src → lib/types}/common/requestLogger.d.ts.map +1 -1
- package/{dist/src → lib/types}/common/types.d.ts +2 -2
- package/lib/types/common/types.d.ts.map +1 -0
- package/{dist/src → lib/types}/common/validationErrorLogger.d.ts +1 -1
- package/{dist/src → lib/types}/common/validationErrorLogger.d.ts.map +1 -1
- package/{dist/src → lib/types}/express/auth.d.ts +1 -1
- package/lib/types/express/auth.d.ts.map +1 -0
- package/lib/types/express/index.d.ts +4 -0
- package/{dist/src → lib/types}/express/index.d.ts.map +1 -1
- package/lib/types/express/listEndpoints.d.ts +3 -0
- package/{dist/src → lib/types}/express/middleware.d.ts +3 -3
- package/lib/types/express/middleware.d.ts.map +1 -0
- package/{dist/src → lib/types}/fastify/auth.d.ts +1 -1
- package/lib/types/fastify/auth.d.ts.map +1 -0
- package/lib/types/fastify/index.d.ts +4 -0
- package/{dist/src → lib/types}/fastify/index.d.ts.map +1 -1
- package/lib/types/fastify/plugin.d.ts +15 -0
- package/lib/types/fastify/plugin.d.ts.map +1 -0
- package/lib/types/koa/index.d.ts +4 -0
- package/{dist/src → lib/types}/koa/index.d.ts.map +1 -1
- package/{dist/src → lib/types}/koa/middleware.d.ts +1 -1
- package/{dist/src → lib/types}/koa/middleware.d.ts.map +1 -1
- package/{dist/src → lib/types}/nestjs/auth.d.ts +1 -1
- package/{dist/src → lib/types}/nestjs/auth.d.ts.map +1 -1
- package/lib/types/nestjs/index.d.ts +4 -0
- package/lib/types/nestjs/index.d.ts.map +1 -0
- package/package.json +106 -7
- package/dist/src/common/client.d.ts.map +0 -1
- package/dist/src/common/client.js +0 -244
- package/dist/src/common/client.js.map +0 -1
- package/dist/src/common/index.d.ts +0 -2
- package/dist/src/common/index.js +0 -6
- package/dist/src/common/index.js.map +0 -1
- package/dist/src/common/keyRegistry.js +0 -90
- package/dist/src/common/keyRegistry.js.map +0 -1
- package/dist/src/common/logging.js +0 -13
- package/dist/src/common/logging.js.map +0 -1
- package/dist/src/common/requestLogger.js +0 -49
- package/dist/src/common/requestLogger.js.map +0 -1
- package/dist/src/common/types.d.ts.map +0 -1
- package/dist/src/common/types.js +0 -3
- package/dist/src/common/types.js.map +0 -1
- package/dist/src/common/utils.js +0 -23
- package/dist/src/common/utils.js.map +0 -1
- package/dist/src/common/validationErrorLogger.js +0 -40
- package/dist/src/common/validationErrorLogger.js.map +0 -1
- package/dist/src/express/auth.d.ts.map +0 -1
- package/dist/src/express/auth.js +0 -66
- package/dist/src/express/auth.js.map +0 -1
- package/dist/src/express/index.d.ts +0 -4
- package/dist/src/express/index.js +0 -10
- package/dist/src/express/index.js.map +0 -1
- package/dist/src/express/listEndpoints.d.ts +0 -3
- package/dist/src/express/listEndpoints.js +0 -166
- package/dist/src/express/listEndpoints.js.map +0 -1
- package/dist/src/express/middleware.d.ts.map +0 -1
- package/dist/src/express/middleware.js +0 -164
- package/dist/src/express/middleware.js.map +0 -1
- package/dist/src/fastify/auth.d.ts.map +0 -1
- package/dist/src/fastify/auth.js +0 -66
- package/dist/src/fastify/auth.js.map +0 -1
- package/dist/src/fastify/index.d.ts +0 -4
- package/dist/src/fastify/index.js +0 -13
- package/dist/src/fastify/index.js.map +0 -1
- package/dist/src/fastify/plugin.d.ts +0 -16
- package/dist/src/fastify/plugin.d.ts.map +0 -1
- package/dist/src/fastify/plugin.js +0 -124
- package/dist/src/fastify/plugin.js.map +0 -1
- package/dist/src/index.js +0 -3
- package/dist/src/index.js.map +0 -1
- package/dist/src/koa/auth.js +0 -67
- package/dist/src/koa/auth.js.map +0 -1
- package/dist/src/koa/index.d.ts +0 -4
- package/dist/src/koa/index.js +0 -10
- package/dist/src/koa/index.js.map +0 -1
- package/dist/src/koa/middleware.js +0 -108
- package/dist/src/koa/middleware.js.map +0 -1
- package/dist/src/nestjs/auth.js +0 -88
- package/dist/src/nestjs/auth.js.map +0 -1
- package/dist/src/nestjs/index.d.ts +0 -4
- package/dist/src/nestjs/index.d.ts.map +0 -1
- package/dist/src/nestjs/index.js +0 -12
- package/dist/src/nestjs/index.js.map +0 -1
- /package/{dist/src → lib/types}/common/keyRegistry.d.ts +0 -0
- /package/{dist/src → lib/types}/common/keyRegistry.d.ts.map +0 -0
- /package/{dist/src → lib/types}/common/logging.d.ts +0 -0
- /package/{dist/src → lib/types}/common/logging.d.ts.map +0 -0
- /package/{dist/src → lib/types}/common/utils.d.ts +0 -0
- /package/{dist/src → lib/types}/common/utils.d.ts.map +0 -0
- /package/{dist/src → lib/types}/express/listEndpoints.d.ts.map +0 -0
- /package/{dist/src → lib/types}/index.d.ts +0 -0
- /package/{dist/src → lib/types}/index.d.ts.map +0 -0
- /package/{dist/src → lib/types}/koa/auth.d.ts +0 -0
- /package/{dist/src → lib/types}/koa/auth.d.ts.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["_keyRegistry","require","_auth","_middleware"],"sources":["../../../src/koa/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useApitally = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _client = require("../common/client.cjs");
|
|
11
|
+
var _keyRegistry = require("../common/keyRegistry.cjs");
|
|
12
|
+
var _utils = require("../common/utils.cjs");
|
|
13
|
+
var useApitally = exports.useApitally = function useApitally(app, config) {
|
|
14
|
+
var client = new _client.ApitallyClient(config);
|
|
15
|
+
var middleware = getMiddleware(client);
|
|
16
|
+
app.use(middleware);
|
|
17
|
+
setTimeout(function () {
|
|
18
|
+
client.setAppInfo(getAppInfo(app, config.appVersion));
|
|
19
|
+
}, 100);
|
|
20
|
+
};
|
|
21
|
+
var getMiddleware = function getMiddleware(client) {
|
|
22
|
+
return /*#__PURE__*/function () {
|
|
23
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ctx, next) {
|
|
24
|
+
var startTime, statusCode;
|
|
25
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
|
27
|
+
case 0:
|
|
28
|
+
startTime = performance.now();
|
|
29
|
+
_context.prev = 1;
|
|
30
|
+
_context.next = 4;
|
|
31
|
+
return next();
|
|
32
|
+
case 4:
|
|
33
|
+
_context.next = 10;
|
|
34
|
+
break;
|
|
35
|
+
case 6:
|
|
36
|
+
_context.prev = 6;
|
|
37
|
+
_context.t0 = _context["catch"](1);
|
|
38
|
+
statusCode = _context.t0.statusCode || _context.t0.status || 500;
|
|
39
|
+
throw _context.t0;
|
|
40
|
+
case 10:
|
|
41
|
+
_context.prev = 10;
|
|
42
|
+
try {
|
|
43
|
+
// _matchedRoute is set by koa-router, routePath is set by koa-route
|
|
44
|
+
if (ctx._matchedRoute || ctx.routePath) {
|
|
45
|
+
client.requestLogger.logRequest({
|
|
46
|
+
consumer: getConsumer(ctx),
|
|
47
|
+
method: ctx.request.method,
|
|
48
|
+
path: ctx._matchedRoute || ctx.routePath,
|
|
49
|
+
statusCode: statusCode || ctx.response.status,
|
|
50
|
+
responseTime: performance.now() - startTime
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
} catch (error) {
|
|
54
|
+
client.logger.error("Error while logging request in Apitally middleware.", {
|
|
55
|
+
context: ctx,
|
|
56
|
+
error: error
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return _context.finish(10);
|
|
60
|
+
case 13:
|
|
61
|
+
case "end":
|
|
62
|
+
return _context.stop();
|
|
63
|
+
}
|
|
64
|
+
}, _callee, null, [[1, 6, 10, 13]]);
|
|
65
|
+
}));
|
|
66
|
+
return function (_x, _x2) {
|
|
67
|
+
return _ref.apply(this, arguments);
|
|
68
|
+
};
|
|
69
|
+
}();
|
|
70
|
+
};
|
|
71
|
+
var getConsumer = function getConsumer(ctx) {
|
|
72
|
+
if (ctx.state.consumerIdentifier) {
|
|
73
|
+
return String(ctx.state.consumerIdentifier);
|
|
74
|
+
}
|
|
75
|
+
if (ctx.state.keyInfo && ctx.state.keyInfo instanceof _keyRegistry.KeyInfo) {
|
|
76
|
+
return "key:".concat(ctx.state.keyInfo.keyId);
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
};
|
|
80
|
+
var getAppInfo = function getAppInfo(app, appVersion) {
|
|
81
|
+
var versions = [["nodejs", process.version]];
|
|
82
|
+
var koaVersion = (0, _utils.getPackageVersion)("koa");
|
|
83
|
+
var apitallyVersion = (0, _utils.getPackageVersion)("../..");
|
|
84
|
+
if (koaVersion) {
|
|
85
|
+
versions.push(["koa", koaVersion]);
|
|
86
|
+
}
|
|
87
|
+
if (apitallyVersion) {
|
|
88
|
+
versions.push(["apitally", apitallyVersion]);
|
|
89
|
+
}
|
|
90
|
+
if (appVersion) {
|
|
91
|
+
versions.push(["app", appVersion]);
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
paths: listEndpoints(app),
|
|
95
|
+
versions: new Map(versions),
|
|
96
|
+
client: "js:koa"
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
var isKoaRouterMiddleware = function isKoaRouterMiddleware(middleware) {
|
|
100
|
+
return typeof middleware === "function" && middleware.router && Array.isArray(middleware.router.stack);
|
|
101
|
+
};
|
|
102
|
+
var listEndpoints = function listEndpoints(app) {
|
|
103
|
+
var endpoints = [];
|
|
104
|
+
app.middleware.forEach(function (middleware) {
|
|
105
|
+
if (isKoaRouterMiddleware(middleware)) {
|
|
106
|
+
middleware.router.stack.forEach(function (layer) {
|
|
107
|
+
if (layer.methods && layer.methods.length > 0) {
|
|
108
|
+
layer.methods.forEach(function (method) {
|
|
109
|
+
if (method.toUpperCase() !== "HEAD") {
|
|
110
|
+
endpoints.push({
|
|
111
|
+
method: method.toUpperCase(),
|
|
112
|
+
path: layer.path
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return endpoints;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=middleware.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.cjs","names":["_client","require","_keyRegistry","_utils","useApitally","exports","app","config","client","ApitallyClient","middleware","getMiddleware","use","setTimeout","setAppInfo","getAppInfo","appVersion","_ref","_asyncToGenerator2","_regenerator","mark","_callee","ctx","next","startTime","statusCode","wrap","_callee$","_context","prev","performance","now","t0","status","_matchedRoute","routePath","requestLogger","logRequest","consumer","getConsumer","method","request","path","response","responseTime","error","logger","context","finish","stop","_x","_x2","apply","arguments","state","consumerIdentifier","String","keyInfo","KeyInfo","concat","keyId","versions","process","version","koaVersion","getPackageVersion","apitallyVersion","push","paths","listEndpoints","Map","isKoaRouterMiddleware","router","Array","isArray","stack","endpoints","forEach","layer","methods","length","toUpperCase"],"sources":["../../../src/koa/middleware.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAEO,IAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,GAAQ,EAAEC,MAAsB,EAAI;EAC9D,IAAMC,MAAM,GAAG,IAAIC,sBAAc,CAACF,MAAM,CAAC;EACzC,IAAMG,UAAU,GAAGC,aAAa,CAACH,MAAM,CAAC;EACxCF,GAAG,CAACM,GAAG,CAACF,UAAU,CAAC;EACnBG,UAAU,CAAC,YAAK;IACdL,MAAM,CAACM,UAAU,CAACC,UAAU,CAACT,GAAG,EAAEC,MAAM,CAACS,UAAU,CAAC,CAAC;EACvD,CAAC,EAAE,GAAG,CAAC;AACT,CAAC;AAED,IAAML,aAAa,GAAG,SAAhBA,aAAaA,CAAIH,MAAsB,EAAI;EAC/C;IAAA,IAAAS,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAO,SAAAC,QAAOC,GAAgB,EAAEC,IAAc;MAAA,IAAAC,SAAA,EAAAC,UAAA;MAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAL,IAAA;UAAA;YACtCC,SAAS,GAAGM,WAAW,CAACC,GAAG,EAAE;YAAAH,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAL,IAAA;YAAA,OAG3BA,IAAI,EAAE;UAAA;YAAAK,QAAA,CAAAL,IAAA;YAAA;UAAA;YAAAK,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA;YAEZH,UAAU,GAAGG,QAAA,CAAAI,EAAA,CAAMP,UAAU,IAAIG,QAAA,CAAAI,EAAA,CAAMC,MAAM,IAAI,GAAG;YAAC,MAAAL,QAAA,CAAAI,EAAA;UAAA;YAAAJ,QAAA,CAAAC,IAAA;YAGrD,IAAI;cACF;cACA,IAAIP,GAAG,CAACY,aAAa,IAAIZ,GAAG,CAACa,SAAS,EAAE;gBACtC3B,MAAM,CAAC4B,aAAa,CAACC,UAAU,CAAC;kBAC9BC,QAAQ,EAAEC,WAAW,CAACjB,GAAG,CAAC;kBAC1BkB,MAAM,EAAElB,GAAG,CAACmB,OAAO,CAACD,MAAM;kBAC1BE,IAAI,EAAEpB,GAAG,CAACY,aAAa,IAAIZ,GAAG,CAACa,SAAS;kBACxCV,UAAU,EAAEA,UAAU,IAAIH,GAAG,CAACqB,QAAQ,CAACV,MAAM;kBAC7CW,YAAY,EAAEd,WAAW,CAACC,GAAG,EAAE,GAAGP;iBACnC,CAAC;cACJ;YACF,CAAC,CAAC,OAAOqB,KAAK,EAAE;cACdrC,MAAM,CAACsC,MAAM,CAACD,KAAK,CACjB,qDAAqD,EACrD;gBAAEE,OAAO,EAAEzB,GAAG;gBAAEuB,KAAK,EAALA;cAAK,CAAE,CACxB;YACH;YAAC,OAAAjB,QAAA,CAAAoB,MAAA;UAAA;UAAA;YAAA,OAAApB,QAAA,CAAAqB,IAAA;QAAA;MAAA,GAAA5B,OAAA;IAAA,CAEJ;IAAA,iBAAA6B,EAAA,EAAAC,GAAA;MAAA,OAAAlC,IAAA,CAAAmC,KAAA,OAAAC,SAAA;IAAA;EAAA;AACH,CAAC;AAED,IAAMd,WAAW,GAAG,SAAdA,WAAWA,CAAIjB,GAAgB,EAAI;EACvC,IAAIA,GAAG,CAACgC,KAAK,CAACC,kBAAkB,EAAE;IAChC,OAAOC,MAAM,CAAClC,GAAG,CAACgC,KAAK,CAACC,kBAAkB,CAAC;EAC7C;EACA,IAAIjC,GAAG,CAACgC,KAAK,CAACG,OAAO,IAAInC,GAAG,CAACgC,KAAK,CAACG,OAAO,YAAYC,oBAAO,EAAE;IAC7D,cAAAC,MAAA,CAAcrC,GAAG,CAACgC,KAAK,CAACG,OAAO,CAACG,KAAK;EACvC;EACA,OAAO,IAAI;AACb,CAAC;AAED,IAAM7C,UAAU,GAAG,SAAbA,UAAUA,CAAIT,GAAQ,EAAEU,UAAmB,EAAa;EAC5D,IAAM6C,QAAQ,GAA4B,CAAC,CAAC,QAAQ,EAAEC,OAAO,CAACC,OAAO,CAAC,CAAC;EACvE,IAAMC,UAAU,GAAG,IAAAC,wBAAiB,EAAC,KAAK,CAAC;EAC3C,IAAMC,eAAe,GAAG,IAAAD,wBAAiB,EAAC,OAAO,CAAC;EAClD,IAAID,UAAU,EAAE;IACdH,QAAQ,CAACM,IAAI,CAAC,CAAC,KAAK,EAAEH,UAAU,CAAC,CAAC;EACpC;EACA,IAAIE,eAAe,EAAE;IACnBL,QAAQ,CAACM,IAAI,CAAC,CAAC,UAAU,EAAED,eAAe,CAAC,CAAC;EAC9C;EACA,IAAIlD,UAAU,EAAE;IACd6C,QAAQ,CAACM,IAAI,CAAC,CAAC,KAAK,EAAEnD,UAAU,CAAC,CAAC;EACpC;EACA,OAAO;IACLoD,KAAK,EAAEC,aAAa,CAAC/D,GAAG,CAAC;IACzBuD,QAAQ,EAAE,IAAIS,GAAG,CAACT,QAAQ,CAAC;IAC3BrD,MAAM,EAAE;GACT;AACH,CAAC;AAED,IAAM+D,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI7D,UAAe,EAAI;EAChD,OACE,OAAOA,UAAU,KAAK,UAAU,IAChCA,UAAU,CAAC8D,MAAM,IACjBC,KAAK,CAACC,OAAO,CAAChE,UAAU,CAAC8D,MAAM,CAACG,KAAK,CAAC;AAE1C,CAAC;AAED,IAAMN,aAAa,GAAG,SAAhBA,aAAaA,CAAI/D,GAAQ,EAAI;EACjC,IAAMsE,SAAS,GAAoB,EAAE;EACrCtE,GAAG,CAACI,UAAU,CAACmE,OAAO,CAAC,UAACnE,UAAe,EAAI;IACzC,IAAI6D,qBAAqB,CAAC7D,UAAU,CAAC,EAAE;MACrCA,UAAU,CAAC8D,MAAM,CAACG,KAAK,CAACE,OAAO,CAAC,UAACC,KAAU,EAAI;QAC7C,IAAIA,KAAK,CAACC,OAAO,IAAID,KAAK,CAACC,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;UAC7CF,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,UAACrC,MAAc,EAAI;YACvC,IAAIA,MAAM,CAACyC,WAAW,EAAE,KAAK,MAAM,EAAE;cACnCL,SAAS,CAACT,IAAI,CAAC;gBACb3B,MAAM,EAAEA,MAAM,CAACyC,WAAW,EAAE;gBAC5BvC,IAAI,EAAEoC,KAAK,CAACpC;eACb,CAAC;YACJ;UACF,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EACF,OAAOkC,SAAS;AAClB,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Scopes = exports.GetKeyInfo = exports.ApitallyApiKeyGuard = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
14
|
+
var _common = require("@nestjs/common");
|
|
15
|
+
var _core = require("@nestjs/core");
|
|
16
|
+
var _client = require("../common/client.cjs");
|
|
17
|
+
var _class;
|
|
18
|
+
var __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length,
|
|
20
|
+
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
21
|
+
d;
|
|
22
|
+
if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof2["default"])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
23
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
24
|
+
};
|
|
25
|
+
var __metadata = void 0 && (void 0).__metadata || function (k, v) {
|
|
26
|
+
if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof2["default"])(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
27
|
+
};
|
|
28
|
+
var ApitallyApiKeyGuard_1;
|
|
29
|
+
var Scopes = exports.Scopes = function Scopes() {
|
|
30
|
+
for (var _len = arguments.length, scopes = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
31
|
+
scopes[_key] = arguments[_key];
|
|
32
|
+
}
|
|
33
|
+
return (0, _common.SetMetadata)("scopes", scopes);
|
|
34
|
+
};
|
|
35
|
+
var ApitallyApiKeyGuard = exports.ApitallyApiKeyGuard = (_class = /*#__PURE__*/function () {
|
|
36
|
+
function ApitallyApiKeyGuard(reflector) {
|
|
37
|
+
(0, _classCallCheck2["default"])(this, ApitallyApiKeyGuard);
|
|
38
|
+
(0, _defineProperty2["default"])(this, "reflector", void 0);
|
|
39
|
+
this.reflector = reflector;
|
|
40
|
+
}
|
|
41
|
+
(0, _createClass2["default"])(ApitallyApiKeyGuard, [{
|
|
42
|
+
key: "canActivate",
|
|
43
|
+
value: function () {
|
|
44
|
+
var _canActivate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(context) {
|
|
45
|
+
var customHeader, req, res, apiKey, authorizationParts, customHeaderValue, client, keyInfo, scopes;
|
|
46
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
47
|
+
while (1) switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
customHeader = ApitallyApiKeyGuard_1.customHeader;
|
|
50
|
+
req = context.switchToHttp().getRequest();
|
|
51
|
+
res = context.switchToHttp().getResponse();
|
|
52
|
+
if (customHeader) {
|
|
53
|
+
_context.next = 16;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
if (req.headers.authorization) {
|
|
57
|
+
_context.next = 7;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
res.set("WWW-Authenticate", "ApiKey");
|
|
61
|
+
throw new _common.UnauthorizedException("Missing authorization header");
|
|
62
|
+
case 7:
|
|
63
|
+
authorizationParts = req.headers.authorization.split(" ");
|
|
64
|
+
if (!(authorizationParts.length === 2 && authorizationParts[0].toLowerCase() === "apikey")) {
|
|
65
|
+
_context.next = 12;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
apiKey = authorizationParts[1];
|
|
69
|
+
_context.next = 14;
|
|
70
|
+
break;
|
|
71
|
+
case 12:
|
|
72
|
+
res.set("WWW-Authenticate", "ApiKey");
|
|
73
|
+
throw new _common.UnauthorizedException("Invalid authorization scheme");
|
|
74
|
+
case 14:
|
|
75
|
+
_context.next = 17;
|
|
76
|
+
break;
|
|
77
|
+
case 16:
|
|
78
|
+
if (customHeader) {
|
|
79
|
+
customHeaderValue = req.headers[customHeader.toLowerCase()];
|
|
80
|
+
if (typeof customHeaderValue === "string") {
|
|
81
|
+
apiKey = customHeaderValue;
|
|
82
|
+
} else if (Array.isArray(customHeaderValue)) {
|
|
83
|
+
apiKey = customHeaderValue[0];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
case 17:
|
|
87
|
+
if (apiKey) {
|
|
88
|
+
_context.next = 19;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
throw new _common.ForbiddenException("Missing API key");
|
|
92
|
+
case 19:
|
|
93
|
+
client = _client.ApitallyClient.getInstance();
|
|
94
|
+
_context.next = 22;
|
|
95
|
+
return client.keyRegistry.get(apiKey);
|
|
96
|
+
case 22:
|
|
97
|
+
keyInfo = _context.sent;
|
|
98
|
+
if (keyInfo) {
|
|
99
|
+
_context.next = 25;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
throw new _common.ForbiddenException("Invalid API key");
|
|
103
|
+
case 25:
|
|
104
|
+
scopes = this.reflector.get("scopes", context.getHandler());
|
|
105
|
+
if (!(scopes && !keyInfo.hasScopes(scopes))) {
|
|
106
|
+
_context.next = 28;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
throw new _common.ForbiddenException("Permission denied");
|
|
110
|
+
case 28:
|
|
111
|
+
req.keyInfo = keyInfo;
|
|
112
|
+
return _context.abrupt("return", true);
|
|
113
|
+
case 30:
|
|
114
|
+
case "end":
|
|
115
|
+
return _context.stop();
|
|
116
|
+
}
|
|
117
|
+
}, _callee, this);
|
|
118
|
+
}));
|
|
119
|
+
function canActivate(_x) {
|
|
120
|
+
return _canActivate.apply(this, arguments);
|
|
121
|
+
}
|
|
122
|
+
return canActivate;
|
|
123
|
+
}()
|
|
124
|
+
}]);
|
|
125
|
+
return ApitallyApiKeyGuard;
|
|
126
|
+
}(), ApitallyApiKeyGuard_1 = _class, (0, _defineProperty2["default"])(_class, "customHeader", void 0), _class);
|
|
127
|
+
exports.ApitallyApiKeyGuard = ApitallyApiKeyGuard = ApitallyApiKeyGuard_1 = __decorate([(0, _common.Injectable)(), __metadata("design:paramtypes", [_core.Reflector])], ApitallyApiKeyGuard);
|
|
128
|
+
var GetKeyInfo = exports.GetKeyInfo = (0, _common.createParamDecorator)(function (data, context) {
|
|
129
|
+
var req = context.switchToHttp().getRequest();
|
|
130
|
+
return req.keyInfo;
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=auth.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.cjs","names":["_common","require","_core","_client","_class","Scopes","exports","_len","arguments","length","scopes","Array","_key","SetMetadata","ApitallyApiKeyGuard","reflector","_classCallCheck2","_defineProperty2","_createClass2","key","value","_canActivate","_asyncToGenerator2","_regenerator","mark","_callee","context","customHeader","req","res","apiKey","authorizationParts","customHeaderValue","client","keyInfo","wrap","_callee$","_context","prev","next","ApitallyApiKeyGuard_1","switchToHttp","getRequest","getResponse","headers","authorization","set","UnauthorizedException","split","toLowerCase","isArray","ForbiddenException","ApitallyClient","getInstance","keyRegistry","get","sent","getHandler","hasScopes","abrupt","stop","canActivate","_x","apply","__decorate","Injectable","Reflector","GetKeyInfo","createParamDecorator","data"],"sources":["../../../src/nestjs/auth.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "ApitallyApiKeyGuard", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _auth.ApitallyApiKeyGuard;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "GetKeyInfo", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _auth.GetKeyInfo;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "KeyInfo", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _keyRegistry.KeyInfo;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "Scopes", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _auth.Scopes;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "useApitally", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _index.useApitally;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var _keyRegistry = require("../common/keyRegistry.cjs");
|
|
37
|
+
var _index = require("../express/index.cjs");
|
|
38
|
+
var _auth = require("./auth.cjs");
|
|
39
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["_keyRegistry","require","_index","_auth"],"sources":["../../../src/nestjs/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA"}
|