apitally 0.2.1 → 0.4.0
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 +5 -9
- package/lib/cjs/common/client.cjs +19 -98
- package/lib/cjs/common/client.cjs.map +1 -1
- package/lib/cjs/common/serverErrorCounter.cjs +104 -0
- package/lib/cjs/common/serverErrorCounter.cjs.map +1 -0
- package/lib/cjs/common/validationErrorCounter.cjs +26 -23
- package/lib/cjs/common/validationErrorCounter.cjs.map +1 -1
- package/lib/cjs/express/index.cjs +0 -14
- package/lib/cjs/express/index.cjs.map +1 -1
- package/lib/cjs/express/middleware.cjs +26 -12
- package/lib/cjs/express/middleware.cjs.map +1 -1
- package/lib/cjs/fastify/index.cjs +0 -14
- package/lib/cjs/fastify/index.cjs.map +1 -1
- package/lib/cjs/fastify/plugin.cjs +20 -11
- package/lib/cjs/fastify/plugin.cjs.map +1 -1
- package/lib/cjs/koa/index.cjs +0 -14
- package/lib/cjs/koa/index.cjs.map +1 -1
- package/lib/cjs/koa/middleware.cjs +33 -24
- package/lib/cjs/koa/middleware.cjs.map +1 -1
- package/lib/cjs/nestjs/index.cjs +0 -26
- package/lib/cjs/nestjs/index.cjs.map +1 -1
- package/lib/esm/common/client.js +19 -98
- package/lib/esm/common/client.js.map +1 -1
- package/lib/esm/common/serverErrorCounter.js +98 -0
- package/lib/esm/common/serverErrorCounter.js.map +1 -0
- package/lib/esm/common/validationErrorCounter.js +26 -23
- package/lib/esm/common/validationErrorCounter.js.map +1 -1
- package/lib/esm/express/index.js +1 -4
- package/lib/esm/express/index.js.map +1 -1
- package/lib/esm/express/middleware.js +26 -12
- package/lib/esm/express/middleware.js.map +1 -1
- package/lib/esm/fastify/index.js +1 -4
- package/lib/esm/fastify/index.js.map +1 -1
- package/lib/esm/fastify/plugin.js +20 -11
- package/lib/esm/fastify/plugin.js.map +1 -1
- package/lib/esm/koa/index.js +1 -4
- package/lib/esm/koa/index.js.map +1 -1
- package/lib/esm/koa/middleware.js +33 -24
- package/lib/esm/koa/middleware.js.map +1 -1
- package/lib/esm/nestjs/index.js +1 -4
- package/lib/esm/nestjs/index.js.map +1 -1
- package/lib/types/common/client.d.ts +3 -9
- package/lib/types/common/client.d.ts.map +1 -1
- package/lib/types/common/serverErrorCounter.d.ts +12 -0
- package/lib/types/common/serverErrorCounter.d.ts.map +1 -0
- package/lib/types/common/types.d.ts +12 -4
- package/lib/types/common/types.d.ts.map +1 -1
- package/lib/types/common/validationErrorCounter.d.ts +2 -1
- package/lib/types/common/validationErrorCounter.d.ts.map +1 -1
- package/lib/types/express/index.d.ts +0 -2
- package/lib/types/express/index.d.ts.map +1 -1
- package/lib/types/express/middleware.d.ts +0 -2
- package/lib/types/express/middleware.d.ts.map +1 -1
- package/lib/types/fastify/index.d.ts +0 -2
- package/lib/types/fastify/index.d.ts.map +1 -1
- package/lib/types/fastify/plugin.d.ts +2 -3
- package/lib/types/fastify/plugin.d.ts.map +1 -1
- package/lib/types/koa/index.d.ts +0 -2
- package/lib/types/koa/index.d.ts.map +1 -1
- package/lib/types/koa/middleware.d.ts.map +1 -1
- package/lib/types/nestjs/index.d.ts +0 -2
- package/lib/types/nestjs/index.d.ts.map +1 -1
- package/package.json +2 -4
- package/lib/cjs/common/index.cjs +0 -13
- package/lib/cjs/common/index.cjs.map +0 -1
- package/lib/cjs/common/keyRegistry.cjs +0 -162
- package/lib/cjs/common/keyRegistry.cjs.map +0 -1
- package/lib/cjs/express/auth.cjs +0 -105
- package/lib/cjs/express/auth.cjs.map +0 -1
- package/lib/cjs/fastify/auth.cjs +0 -105
- package/lib/cjs/fastify/auth.cjs.map +0 -1
- package/lib/cjs/koa/auth.cjs +0 -113
- package/lib/cjs/koa/auth.cjs.map +0 -1
- package/lib/cjs/nestjs/auth.cjs +0 -132
- package/lib/cjs/nestjs/auth.cjs.map +0 -1
- package/lib/esm/common/index.js +0 -1
- package/lib/esm/common/index.js.map +0 -1
- package/lib/esm/common/keyRegistry.js +0 -155
- package/lib/esm/common/keyRegistry.js.map +0 -1
- package/lib/esm/express/auth.js +0 -98
- package/lib/esm/express/auth.js.map +0 -1
- package/lib/esm/fastify/auth.js +0 -98
- package/lib/esm/fastify/auth.js.map +0 -1
- package/lib/esm/koa/auth.js +0 -106
- package/lib/esm/koa/auth.js.map +0 -1
- package/lib/esm/nestjs/auth.js +0 -126
- package/lib/esm/nestjs/auth.js.map +0 -1
- package/lib/types/common/index.d.ts +0 -2
- package/lib/types/common/index.d.ts.map +0 -1
- package/lib/types/common/keyRegistry.d.ts +0 -29
- package/lib/types/common/keyRegistry.d.ts.map +0 -1
- package/lib/types/express/auth.d.ts +0 -6
- package/lib/types/express/auth.d.ts.map +0 -1
- package/lib/types/fastify/auth.d.ts +0 -6
- package/lib/types/fastify/auth.d.ts.map +0 -1
- package/lib/types/koa/auth.d.ts +0 -6
- package/lib/types/koa/auth.d.ts.map +0 -1
- package/lib/types/nestjs/auth.d.ts +0 -12
- package/lib/types/nestjs/auth.d.ts.map +0 -1
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.KeyRegistry = exports.KeyInfo = exports.KeyCacheBase = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _crypto = require("crypto");
|
|
15
|
-
var KeyInfo = exports.KeyInfo = /*#__PURE__*/function () {
|
|
16
|
-
function KeyInfo(keyId, apiKeyId) {
|
|
17
|
-
var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
|
|
18
|
-
var scopes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
19
|
-
var expiresInSeconds = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
20
|
-
(0, _classCallCheck2["default"])(this, KeyInfo);
|
|
21
|
-
(0, _defineProperty2["default"])(this, "keyId", void 0);
|
|
22
|
-
(0, _defineProperty2["default"])(this, "apiKeyId", void 0);
|
|
23
|
-
(0, _defineProperty2["default"])(this, "name", void 0);
|
|
24
|
-
(0, _defineProperty2["default"])(this, "scopes", void 0);
|
|
25
|
-
(0, _defineProperty2["default"])(this, "expiresAt", void 0);
|
|
26
|
-
this.keyId = keyId;
|
|
27
|
-
this.apiKeyId = apiKeyId;
|
|
28
|
-
this.name = name;
|
|
29
|
-
this.scopes = scopes;
|
|
30
|
-
this.expiresAt = expiresInSeconds !== null && expiresInSeconds !== undefined ? new Date(Date.now() + expiresInSeconds * 1000) : null;
|
|
31
|
-
}
|
|
32
|
-
(0, _createClass2["default"])(KeyInfo, [{
|
|
33
|
-
key: "isExpired",
|
|
34
|
-
get: function get() {
|
|
35
|
-
return this.expiresAt !== null && this.expiresAt < new Date();
|
|
36
|
-
}
|
|
37
|
-
}, {
|
|
38
|
-
key: "hasScopes",
|
|
39
|
-
value: function hasScopes(scopes) {
|
|
40
|
-
var _this = this;
|
|
41
|
-
if (typeof scopes === "string") {
|
|
42
|
-
scopes = [scopes];
|
|
43
|
-
}
|
|
44
|
-
return scopes.every(function (scope) {
|
|
45
|
-
return _this.scopes.includes(scope);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}]);
|
|
49
|
-
return KeyInfo;
|
|
50
|
-
}();
|
|
51
|
-
var KeyRegistry = exports.KeyRegistry = /*#__PURE__*/function () {
|
|
52
|
-
function KeyRegistry() {
|
|
53
|
-
(0, _classCallCheck2["default"])(this, KeyRegistry);
|
|
54
|
-
(0, _defineProperty2["default"])(this, "salt", void 0);
|
|
55
|
-
(0, _defineProperty2["default"])(this, "keys", void 0);
|
|
56
|
-
(0, _defineProperty2["default"])(this, "usageCounts", void 0);
|
|
57
|
-
this.salt = null;
|
|
58
|
-
this.keys = new Map();
|
|
59
|
-
this.usageCounts = new Map();
|
|
60
|
-
}
|
|
61
|
-
(0, _createClass2["default"])(KeyRegistry, [{
|
|
62
|
-
key: "get",
|
|
63
|
-
value: function () {
|
|
64
|
-
var _get = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(apiKey) {
|
|
65
|
-
var hash, key;
|
|
66
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
67
|
-
while (1) switch (_context.prev = _context.next) {
|
|
68
|
-
case 0:
|
|
69
|
-
_context.next = 2;
|
|
70
|
-
return this.hashApiKey(apiKey.trim());
|
|
71
|
-
case 2:
|
|
72
|
-
hash = _context.sent;
|
|
73
|
-
key = this.keys.get(hash);
|
|
74
|
-
if (!(!key || key.isExpired)) {
|
|
75
|
-
_context.next = 6;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
return _context.abrupt("return", null);
|
|
79
|
-
case 6:
|
|
80
|
-
this.usageCounts.set(key.apiKeyId, (this.usageCounts.get(key.apiKeyId) || 0) + 1);
|
|
81
|
-
return _context.abrupt("return", key);
|
|
82
|
-
case 8:
|
|
83
|
-
case "end":
|
|
84
|
-
return _context.stop();
|
|
85
|
-
}
|
|
86
|
-
}, _callee, this);
|
|
87
|
-
}));
|
|
88
|
-
function get(_x) {
|
|
89
|
-
return _get.apply(this, arguments);
|
|
90
|
-
}
|
|
91
|
-
return get;
|
|
92
|
-
}()
|
|
93
|
-
}, {
|
|
94
|
-
key: "hashApiKey",
|
|
95
|
-
value: function () {
|
|
96
|
-
var _hashApiKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(apiKey) {
|
|
97
|
-
var _this2 = this;
|
|
98
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
99
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
100
|
-
case 0:
|
|
101
|
-
return _context2.abrupt("return", new Promise(function (resolve, reject) {
|
|
102
|
-
if (!_this2.salt) {
|
|
103
|
-
throw new Error("Apitally API keys not initialized");
|
|
104
|
-
}
|
|
105
|
-
(0, _crypto.scrypt)(apiKey, Buffer.from(_this2.salt, "hex"), 32, {
|
|
106
|
-
N: 256,
|
|
107
|
-
r: 4,
|
|
108
|
-
p: 1
|
|
109
|
-
}, function (err, derivedKey) {
|
|
110
|
-
if (err) reject(err);
|
|
111
|
-
resolve(derivedKey.toString("hex"));
|
|
112
|
-
});
|
|
113
|
-
}));
|
|
114
|
-
case 1:
|
|
115
|
-
case "end":
|
|
116
|
-
return _context2.stop();
|
|
117
|
-
}
|
|
118
|
-
}, _callee2);
|
|
119
|
-
}));
|
|
120
|
-
function hashApiKey(_x2) {
|
|
121
|
-
return _hashApiKey.apply(this, arguments);
|
|
122
|
-
}
|
|
123
|
-
return hashApiKey;
|
|
124
|
-
}()
|
|
125
|
-
}, {
|
|
126
|
-
key: "update",
|
|
127
|
-
value: function update(keys) {
|
|
128
|
-
this.keys.clear();
|
|
129
|
-
for (var _i = 0, _Object$entries = Object.entries(keys); _i < _Object$entries.length; _i++) {
|
|
130
|
-
var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
|
|
131
|
-
hash = _Object$entries$_i[0],
|
|
132
|
-
data = _Object$entries$_i[1];
|
|
133
|
-
this.keys.set(hash, new KeyInfo(data["key_id"], data["api_key_id"], data["name"], data["scopes"], data["expires_in_seconds"]));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}, {
|
|
137
|
-
key: "getAndResetUsageCounts",
|
|
138
|
-
value: function getAndResetUsageCounts() {
|
|
139
|
-
var data = Object.fromEntries(this.usageCounts);
|
|
140
|
-
this.usageCounts.clear();
|
|
141
|
-
return data;
|
|
142
|
-
}
|
|
143
|
-
}]);
|
|
144
|
-
return KeyRegistry;
|
|
145
|
-
}();
|
|
146
|
-
var KeyCacheBase = exports.KeyCacheBase = /*#__PURE__*/function () {
|
|
147
|
-
function KeyCacheBase(clientId, env) {
|
|
148
|
-
(0, _classCallCheck2["default"])(this, KeyCacheBase);
|
|
149
|
-
(0, _defineProperty2["default"])(this, "clientId", void 0);
|
|
150
|
-
(0, _defineProperty2["default"])(this, "env", void 0);
|
|
151
|
-
this.clientId = clientId;
|
|
152
|
-
this.env = env;
|
|
153
|
-
}
|
|
154
|
-
(0, _createClass2["default"])(KeyCacheBase, [{
|
|
155
|
-
key: "cacheKey",
|
|
156
|
-
get: function get() {
|
|
157
|
-
return "apitally:keys:".concat(this.clientId, ":").concat(this.env);
|
|
158
|
-
}
|
|
159
|
-
}]);
|
|
160
|
-
return KeyCacheBase;
|
|
161
|
-
}();
|
|
162
|
-
//# sourceMappingURL=keyRegistry.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyRegistry.cjs","names":["_crypto","require","KeyInfo","exports","keyId","apiKeyId","name","arguments","length","undefined","scopes","expiresInSeconds","_classCallCheck2","_defineProperty2","expiresAt","Date","now","_createClass2","key","get","value","hasScopes","_this","every","scope","includes","KeyRegistry","salt","keys","Map","usageCounts","_get","_asyncToGenerator2","_regenerator","mark","_callee","apiKey","hash","wrap","_callee$","_context","prev","next","hashApiKey","trim","sent","isExpired","abrupt","set","stop","_x","apply","_hashApiKey","_callee2","_this2","_callee2$","_context2","Promise","resolve","reject","Error","scrypt","Buffer","from","N","r","p","err","derivedKey","toString","_x2","update","clear","_i","_Object$entries","Object","entries","_Object$entries$_i","_slicedToArray2","data","getAndResetUsageCounts","fromEntries","KeyCacheBase","clientId","env","concat"],"sources":["../../../src/common/keyRegistry.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/lib/cjs/express/auth.cjs
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.requireApiKey = 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 requireApiKey = exports.requireApiKey = function requireApiKey() {
|
|
12
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
13
|
-
scopes = _ref.scopes,
|
|
14
|
-
customHeader = _ref.customHeader;
|
|
15
|
-
return /*#__PURE__*/function () {
|
|
16
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
|
|
17
|
-
var apiKey, authorizationParts, customHeaderValue, client, keyInfo;
|
|
18
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
19
|
-
while (1) switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
if (customHeader) {
|
|
22
|
-
_context.next = 13;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
if (req.headers.authorization) {
|
|
26
|
-
_context.next = 4;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
res.status(401).set("WWW-Authenticate", "ApiKey").json({
|
|
30
|
-
error: "Missing authorization header"
|
|
31
|
-
});
|
|
32
|
-
return _context.abrupt("return");
|
|
33
|
-
case 4:
|
|
34
|
-
authorizationParts = req.headers.authorization.split(" ");
|
|
35
|
-
if (!(authorizationParts.length === 2 && authorizationParts[0].toLowerCase() === "apikey")) {
|
|
36
|
-
_context.next = 9;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
apiKey = authorizationParts[1];
|
|
40
|
-
_context.next = 11;
|
|
41
|
-
break;
|
|
42
|
-
case 9:
|
|
43
|
-
res.status(401).set("WWW-Authenticate", "ApiKey").json({
|
|
44
|
-
error: "Invalid authorization scheme"
|
|
45
|
-
});
|
|
46
|
-
return _context.abrupt("return");
|
|
47
|
-
case 11:
|
|
48
|
-
_context.next = 14;
|
|
49
|
-
break;
|
|
50
|
-
case 13:
|
|
51
|
-
if (customHeader) {
|
|
52
|
-
customHeaderValue = req.headers[customHeader.toLowerCase()];
|
|
53
|
-
if (typeof customHeaderValue === "string") {
|
|
54
|
-
apiKey = customHeaderValue;
|
|
55
|
-
} else if (Array.isArray(customHeaderValue)) {
|
|
56
|
-
apiKey = customHeaderValue[0];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
case 14:
|
|
60
|
-
if (apiKey) {
|
|
61
|
-
_context.next = 17;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
res.status(403).json({
|
|
65
|
-
error: "Missing API key"
|
|
66
|
-
});
|
|
67
|
-
return _context.abrupt("return");
|
|
68
|
-
case 17:
|
|
69
|
-
client = _client.ApitallyClient.getInstance();
|
|
70
|
-
_context.next = 20;
|
|
71
|
-
return client.keyRegistry.get(apiKey);
|
|
72
|
-
case 20:
|
|
73
|
-
keyInfo = _context.sent;
|
|
74
|
-
if (keyInfo) {
|
|
75
|
-
_context.next = 24;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
res.status(403).json({
|
|
79
|
-
error: "Invalid API key"
|
|
80
|
-
});
|
|
81
|
-
return _context.abrupt("return");
|
|
82
|
-
case 24:
|
|
83
|
-
if (!(scopes && !keyInfo.hasScopes(scopes))) {
|
|
84
|
-
_context.next = 27;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
res.status(403).json({
|
|
88
|
-
error: "Permission denied"
|
|
89
|
-
});
|
|
90
|
-
return _context.abrupt("return");
|
|
91
|
-
case 27:
|
|
92
|
-
req.keyInfo = keyInfo;
|
|
93
|
-
next();
|
|
94
|
-
case 29:
|
|
95
|
-
case "end":
|
|
96
|
-
return _context.stop();
|
|
97
|
-
}
|
|
98
|
-
}, _callee);
|
|
99
|
-
}));
|
|
100
|
-
return function (_x, _x2, _x3) {
|
|
101
|
-
return _ref2.apply(this, arguments);
|
|
102
|
-
};
|
|
103
|
-
}();
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=auth.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","names":["_client","require","requireApiKey","exports","_ref","arguments","length","undefined","scopes","customHeader","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","req","res","next","apiKey","authorizationParts","customHeaderValue","client","keyInfo","wrap","_callee$","_context","prev","headers","authorization","status","set","json","error","abrupt","split","toLowerCase","Array","isArray","ApitallyClient","getInstance","keyRegistry","get","sent","hasScopes","stop","_x","_x2","_x3","apply"],"sources":["../../../src/express/auth.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/lib/cjs/fastify/auth.cjs
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.requireApiKey = 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 requireApiKey = exports.requireApiKey = function requireApiKey() {
|
|
12
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
13
|
-
scopes = _ref.scopes,
|
|
14
|
-
customHeader = _ref.customHeader;
|
|
15
|
-
return /*#__PURE__*/function () {
|
|
16
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(request, reply, done) {
|
|
17
|
-
var apiKey, authorizationParts, customHeaderValue, client, keyInfo;
|
|
18
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
19
|
-
while (1) switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
if (customHeader) {
|
|
22
|
-
_context.next = 13;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
if (request.headers.authorization) {
|
|
26
|
-
_context.next = 4;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
reply.code(401).header("WWW-Authenticate", "ApiKey").send({
|
|
30
|
-
error: "Missing authorization header"
|
|
31
|
-
});
|
|
32
|
-
return _context.abrupt("return");
|
|
33
|
-
case 4:
|
|
34
|
-
authorizationParts = request.headers.authorization.split(" ");
|
|
35
|
-
if (!(authorizationParts.length === 2 && authorizationParts[0].toLowerCase() === "apikey")) {
|
|
36
|
-
_context.next = 9;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
apiKey = authorizationParts[1];
|
|
40
|
-
_context.next = 11;
|
|
41
|
-
break;
|
|
42
|
-
case 9:
|
|
43
|
-
reply.code(401).header("WWW-Authenticate", "ApiKey").send({
|
|
44
|
-
error: "Invalid authorization scheme"
|
|
45
|
-
});
|
|
46
|
-
return _context.abrupt("return");
|
|
47
|
-
case 11:
|
|
48
|
-
_context.next = 14;
|
|
49
|
-
break;
|
|
50
|
-
case 13:
|
|
51
|
-
if (customHeader) {
|
|
52
|
-
customHeaderValue = request.headers[customHeader.toLowerCase()];
|
|
53
|
-
if (typeof customHeaderValue === "string") {
|
|
54
|
-
apiKey = customHeaderValue;
|
|
55
|
-
} else if (Array.isArray(customHeaderValue)) {
|
|
56
|
-
apiKey = customHeaderValue[0];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
case 14:
|
|
60
|
-
if (apiKey) {
|
|
61
|
-
_context.next = 17;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
reply.code(403).send({
|
|
65
|
-
error: "Missing API key"
|
|
66
|
-
});
|
|
67
|
-
return _context.abrupt("return");
|
|
68
|
-
case 17:
|
|
69
|
-
client = _client.ApitallyClient.getInstance();
|
|
70
|
-
_context.next = 20;
|
|
71
|
-
return client.keyRegistry.get(apiKey);
|
|
72
|
-
case 20:
|
|
73
|
-
keyInfo = _context.sent;
|
|
74
|
-
if (keyInfo) {
|
|
75
|
-
_context.next = 24;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
reply.code(403).send({
|
|
79
|
-
error: "Invalid API key"
|
|
80
|
-
});
|
|
81
|
-
return _context.abrupt("return");
|
|
82
|
-
case 24:
|
|
83
|
-
if (!(scopes && !keyInfo.hasScopes(scopes))) {
|
|
84
|
-
_context.next = 27;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
reply.code(403).send({
|
|
88
|
-
error: "Permission denied"
|
|
89
|
-
});
|
|
90
|
-
return _context.abrupt("return");
|
|
91
|
-
case 27:
|
|
92
|
-
request.keyInfo = keyInfo;
|
|
93
|
-
done();
|
|
94
|
-
case 29:
|
|
95
|
-
case "end":
|
|
96
|
-
return _context.stop();
|
|
97
|
-
}
|
|
98
|
-
}, _callee);
|
|
99
|
-
}));
|
|
100
|
-
return function (_x, _x2, _x3) {
|
|
101
|
-
return _ref2.apply(this, arguments);
|
|
102
|
-
};
|
|
103
|
-
}();
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=auth.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","names":["_client","require","requireApiKey","exports","_ref","arguments","length","undefined","scopes","customHeader","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","request","reply","done","apiKey","authorizationParts","customHeaderValue","client","keyInfo","wrap","_callee$","_context","prev","next","headers","authorization","code","header","send","error","abrupt","split","toLowerCase","Array","isArray","ApitallyClient","getInstance","keyRegistry","get","sent","hasScopes","stop","_x","_x2","_x3","apply"],"sources":["../../../src/fastify/auth.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAEO,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAMhB;EAAA,IAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAN,EAAE;IALJG,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,YAAY,GAAAL,IAAA,CAAZK,YAAY;EAKZ;IAAA,IAAAC,KAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAO,SAAAC,QACLC,OAAuB,EACvBC,KAAmB,EACnBC,IAA0B;MAAA,IAAAC,MAAA,EAAAC,kBAAA,EAAAC,iBAAA,EAAAC,MAAA,EAAAC,OAAA;MAAA,OAAAV,YAAA,YAAAW,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,IAIrBlB,YAAY;cAAAgB,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,IACVZ,OAAO,CAACa,OAAO,CAACC,aAAa;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;YAChCX,KAAK,CACFc,IAAI,CAAC,GAAG,CAAC,CACTC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CACpCC,IAAI,CAAC;cAAEC,KAAK,EAAE;YAA8B,CAAE,CAAC;YAAC,OAAAR,QAAA,CAAAS,MAAA;UAAA;YAG/Cf,kBAAkB,GAAGJ,OAAO,CAACa,OAAO,CAACC,aAAa,CAACM,KAAK,CAAC,GAAG,CAAC;YAAA,MAEjEhB,kBAAkB,CAACb,MAAM,KAAK,CAAC,IAC/Ba,kBAAkB,CAAC,CAAC,CAAC,CAACiB,WAAW,EAAE,KAAK,QAAQ;cAAAX,QAAA,CAAAE,IAAA;cAAA;YAAA;YAEhDT,MAAM,GAAGC,kBAAkB,CAAC,CAAC,CAAC;YAACM,QAAA,CAAAE,IAAA;YAAA;UAAA;YAE/BX,KAAK,CACFc,IAAI,CAAC,GAAG,CAAC,CACTC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CACpCC,IAAI,CAAC;cAAEC,KAAK,EAAE;YAA8B,CAAE,CAAC;YAAC,OAAAR,QAAA,CAAAS,MAAA;UAAA;YAAAT,QAAA,CAAAE,IAAA;YAAA;UAAA;YAGhD,IAAIlB,YAAY,EAAE;cACjBW,iBAAiB,GAAGL,OAAO,CAACa,OAAO,CAACnB,YAAY,CAAC2B,WAAW,EAAE,CAAC;cACrE,IAAI,OAAOhB,iBAAiB,KAAK,QAAQ,EAAE;gBACzCF,MAAM,GAAGE,iBAAiB;cAC5B,CAAC,MAAM,IAAIiB,KAAK,CAACC,OAAO,CAAClB,iBAAiB,CAAC,EAAE;gBAC3CF,MAAM,GAAGE,iBAAiB,CAAC,CAAC,CAAC;cAC/B;YACF;UAAC;YAAA,IAEIF,MAAM;cAAAO,QAAA,CAAAE,IAAA;cAAA;YAAA;YACTX,KAAK,CAACc,IAAI,CAAC,GAAG,CAAC,CAACE,IAAI,CAAC;cAAEC,KAAK,EAAE;YAAiB,CAAE,CAAC;YAAC,OAAAR,QAAA,CAAAS,MAAA;UAAA;YAI/Cb,MAAM,GAAGkB,sBAAc,CAACC,WAAW,EAAE;YAAAf,QAAA,CAAAE,IAAA;YAAA,OACrBN,MAAM,CAACoB,WAAW,CAACC,GAAG,CAACxB,MAAM,CAAC;UAAA;YAA9CI,OAAO,GAAAG,QAAA,CAAAkB,IAAA;YAAA,IACRrB,OAAO;cAAAG,QAAA,CAAAE,IAAA;cAAA;YAAA;YACVX,KAAK,CAACc,IAAI,CAAC,GAAG,CAAC,CAACE,IAAI,CAAC;cAAEC,KAAK,EAAE;YAAiB,CAAE,CAAC;YAAC,OAAAR,QAAA,CAAAS,MAAA;UAAA;YAAA,MAGjD1B,MAAM,IAAI,CAACc,OAAO,CAACsB,SAAS,CAACpC,MAAM,CAAC;cAAAiB,QAAA,CAAAE,IAAA;cAAA;YAAA;YACtCX,KAAK,CAACc,IAAI,CAAC,GAAG,CAAC,CAACE,IAAI,CAAC;cAAEC,KAAK,EAAE;YAAmB,CAAE,CAAC;YAAC,OAAAR,QAAA,CAAAS,MAAA;UAAA;YAIvDnB,OAAO,CAACO,OAAO,GAAGA,OAAO;YACzBL,IAAI,EAAE;UAAC;UAAA;YAAA,OAAAQ,QAAA,CAAAoB,IAAA;QAAA;MAAA,GAAA/B,OAAA;IAAA,CACR;IAAA,iBAAAgC,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAtC,KAAA,CAAAuC,KAAA,OAAA5C,SAAA;IAAA;EAAA;AACH,CAAC"}
|
package/lib/cjs/koa/auth.cjs
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.requireApiKey = 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 requireApiKey = exports.requireApiKey = function requireApiKey() {
|
|
12
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
13
|
-
scopes = _ref.scopes,
|
|
14
|
-
customHeader = _ref.customHeader;
|
|
15
|
-
return /*#__PURE__*/function () {
|
|
16
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ctx, next) {
|
|
17
|
-
var apiKey, authorizationParts, customHeaderValue, client, keyInfo;
|
|
18
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
19
|
-
while (1) switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
if (customHeader) {
|
|
22
|
-
_context.next = 17;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
if (ctx.headers.authorization) {
|
|
26
|
-
_context.next = 6;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
ctx.status = 401;
|
|
30
|
-
ctx.set("WWW-Authenticate", "ApiKey");
|
|
31
|
-
ctx.body = {
|
|
32
|
-
error: "Missing authorization header"
|
|
33
|
-
};
|
|
34
|
-
return _context.abrupt("return");
|
|
35
|
-
case 6:
|
|
36
|
-
authorizationParts = ctx.headers.authorization.split(" ");
|
|
37
|
-
if (!(authorizationParts.length === 2 && authorizationParts[0].toLowerCase() === "apikey")) {
|
|
38
|
-
_context.next = 11;
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
apiKey = authorizationParts[1];
|
|
42
|
-
_context.next = 15;
|
|
43
|
-
break;
|
|
44
|
-
case 11:
|
|
45
|
-
ctx.status = 401;
|
|
46
|
-
ctx.set("WWW-Authenticate", "ApiKey");
|
|
47
|
-
ctx.body = {
|
|
48
|
-
error: "Invalid authorization scheme"
|
|
49
|
-
};
|
|
50
|
-
return _context.abrupt("return");
|
|
51
|
-
case 15:
|
|
52
|
-
_context.next = 18;
|
|
53
|
-
break;
|
|
54
|
-
case 17:
|
|
55
|
-
if (customHeader) {
|
|
56
|
-
customHeaderValue = ctx.headers[customHeader.toLowerCase()];
|
|
57
|
-
if (typeof customHeaderValue === "string") {
|
|
58
|
-
apiKey = customHeaderValue;
|
|
59
|
-
} else if (Array.isArray(customHeaderValue)) {
|
|
60
|
-
apiKey = customHeaderValue[0];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
case 18:
|
|
64
|
-
if (apiKey) {
|
|
65
|
-
_context.next = 22;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
ctx.status = 403;
|
|
69
|
-
ctx.body = {
|
|
70
|
-
error: "Missing API key"
|
|
71
|
-
};
|
|
72
|
-
return _context.abrupt("return");
|
|
73
|
-
case 22:
|
|
74
|
-
client = _client.ApitallyClient.getInstance();
|
|
75
|
-
_context.next = 25;
|
|
76
|
-
return client.keyRegistry.get(apiKey);
|
|
77
|
-
case 25:
|
|
78
|
-
keyInfo = _context.sent;
|
|
79
|
-
if (keyInfo) {
|
|
80
|
-
_context.next = 30;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
ctx.status = 403;
|
|
84
|
-
ctx.body = {
|
|
85
|
-
error: "Invalid API key"
|
|
86
|
-
};
|
|
87
|
-
return _context.abrupt("return");
|
|
88
|
-
case 30:
|
|
89
|
-
if (!(scopes && !keyInfo.hasScopes(scopes))) {
|
|
90
|
-
_context.next = 34;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
ctx.status = 403;
|
|
94
|
-
ctx.body = {
|
|
95
|
-
error: "Permission denied"
|
|
96
|
-
};
|
|
97
|
-
return _context.abrupt("return");
|
|
98
|
-
case 34:
|
|
99
|
-
ctx.state.keyInfo = keyInfo;
|
|
100
|
-
_context.next = 37;
|
|
101
|
-
return next();
|
|
102
|
-
case 37:
|
|
103
|
-
case "end":
|
|
104
|
-
return _context.stop();
|
|
105
|
-
}
|
|
106
|
-
}, _callee);
|
|
107
|
-
}));
|
|
108
|
-
return function (_x, _x2) {
|
|
109
|
-
return _ref2.apply(this, arguments);
|
|
110
|
-
};
|
|
111
|
-
}();
|
|
112
|
-
};
|
|
113
|
-
//# sourceMappingURL=auth.cjs.map
|
package/lib/cjs/koa/auth.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","names":["_client","require","requireApiKey","exports","_ref","arguments","length","undefined","scopes","customHeader","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","ctx","next","apiKey","authorizationParts","customHeaderValue","client","keyInfo","wrap","_callee$","_context","prev","headers","authorization","status","set","body","error","abrupt","split","toLowerCase","Array","isArray","ApitallyClient","getInstance","keyRegistry","get","sent","hasScopes","state","stop","_x","_x2","apply"],"sources":["../../../src/koa/auth.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/lib/cjs/nestjs/auth.cjs
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
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
|