@open-norantec/herbal 1.0.1-alpha.2 → 1.0.1-alpha.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/dist/core.js +91 -35
- package/dist/utilities/controller-util.class.js +40 -33
- package/package.json +1 -1
package/dist/core.js
CHANGED
|
@@ -61,6 +61,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
61
61
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
65
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
66
|
+
var m = o[Symbol.asyncIterator], i;
|
|
67
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
68
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
69
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
70
|
+
};
|
|
64
71
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
72
|
exports.HerbalController = void 0;
|
|
66
73
|
require("reflect-metadata");
|
|
@@ -102,52 +109,101 @@ var HerbalController = exports.HerbalController = (function () {
|
|
|
102
109
|
};
|
|
103
110
|
}
|
|
104
111
|
HerbalController.prototype.handler = function (request, input) {
|
|
105
|
-
var _a,
|
|
112
|
+
var _a, request_1, request_1_1;
|
|
113
|
+
var _b, e_1, _c, _d;
|
|
114
|
+
var _e, _f, _g, _h, _j, _k;
|
|
106
115
|
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
-
var methodHandler, result,
|
|
108
|
-
var
|
|
109
|
-
return __generator(this, function (
|
|
110
|
-
switch (
|
|
116
|
+
var body, methodHandler, chunks_1, chunk, e_1_1, _l, parsedBody, result, _m, _o, error_1;
|
|
117
|
+
var _p;
|
|
118
|
+
return __generator(this, function (_q) {
|
|
119
|
+
switch (_q.label) {
|
|
111
120
|
case 0:
|
|
121
|
+
body = input;
|
|
112
122
|
methodHandler = this[request === null || request === void 0 ? void 0 : request.methodName];
|
|
113
|
-
|
|
123
|
+
if (!!_.isPlainObject(input)) return [3, 16];
|
|
124
|
+
chunks_1 = [];
|
|
125
|
+
_q.label = 1;
|
|
114
126
|
case 1:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
_j = {};
|
|
118
|
-
return [4, methodHandler(request, input, header_util_class_1.HeaderUtil.parse((_a = request.headers) !== null && _a !== void 0 ? _a : {})).then(function (response) { return response === null || response === void 0 ? void 0 : response.response; })];
|
|
127
|
+
_q.trys.push([1, 14, , 15]);
|
|
128
|
+
_q.label = 2;
|
|
119
129
|
case 2:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
_j);
|
|
125
|
-
_k.label = 3;
|
|
126
|
-
case 3:
|
|
127
|
-
_k.trys.push([3, 5, , 6]);
|
|
128
|
-
return [4, ((_d = (_c = request === null || request === void 0 ? void 0 : request.transaction) === null || _c === void 0 ? void 0 : _c.commit) === null || _d === void 0 ? void 0 : _d.call(_c))];
|
|
130
|
+
_q.trys.push([2, 7, 8, 13]);
|
|
131
|
+
_a = true, request_1 = __asyncValues(request);
|
|
132
|
+
_q.label = 3;
|
|
133
|
+
case 3: return [4, request_1.next()];
|
|
129
134
|
case 4:
|
|
130
|
-
|
|
131
|
-
|
|
135
|
+
if (!(request_1_1 = _q.sent(), _b = request_1_1.done, !_b)) return [3, 6];
|
|
136
|
+
_d = request_1_1.value;
|
|
137
|
+
_a = false;
|
|
138
|
+
chunk = _d;
|
|
139
|
+
chunks_1.push(chunk);
|
|
140
|
+
_q.label = 5;
|
|
132
141
|
case 5:
|
|
133
|
-
|
|
134
|
-
return [3,
|
|
135
|
-
case 6: return [
|
|
142
|
+
_a = true;
|
|
143
|
+
return [3, 3];
|
|
144
|
+
case 6: return [3, 13];
|
|
136
145
|
case 7:
|
|
137
|
-
|
|
138
|
-
|
|
146
|
+
e_1_1 = _q.sent();
|
|
147
|
+
e_1 = { error: e_1_1 };
|
|
148
|
+
return [3, 13];
|
|
139
149
|
case 8:
|
|
140
|
-
|
|
141
|
-
return [3, 10];
|
|
150
|
+
_q.trys.push([8, , 11, 12]);
|
|
151
|
+
if (!(!_a && !_b && (_c = request_1.return))) return [3, 10];
|
|
152
|
+
return [4, _c.call(request_1)];
|
|
142
153
|
case 9:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
case 10:
|
|
146
|
-
case 11:
|
|
147
|
-
|
|
148
|
-
|
|
154
|
+
_q.sent();
|
|
155
|
+
_q.label = 10;
|
|
156
|
+
case 10: return [3, 12];
|
|
157
|
+
case 11:
|
|
158
|
+
if (e_1) throw e_1.error;
|
|
159
|
+
return [7];
|
|
160
|
+
case 12: return [7];
|
|
161
|
+
case 13: return [3, 15];
|
|
162
|
+
case 14:
|
|
163
|
+
_l = _q.sent();
|
|
164
|
+
return [3, 15];
|
|
165
|
+
case 15:
|
|
166
|
+
parsedBody = _.attempt(function () { return JSON.parse(Buffer.concat(chunks_1).toString('utf8')); });
|
|
167
|
+
if (!(parsedBody instanceof Error))
|
|
168
|
+
body = parsedBody;
|
|
169
|
+
_q.label = 16;
|
|
170
|
+
case 16:
|
|
171
|
+
_q.trys.push([16, 27, , 28]);
|
|
172
|
+
if (!(typeof methodHandler === 'function')) return [3, 22];
|
|
173
|
+
_p = {};
|
|
174
|
+
return [4, methodHandler(request, body, header_util_class_1.HeaderUtil.parse((_e = request.headers) !== null && _e !== void 0 ? _e : {})).then(function (response) { return response === null || response === void 0 ? void 0 : response.response; })];
|
|
175
|
+
case 17:
|
|
176
|
+
result = (_p.data = _q.sent(),
|
|
177
|
+
_p.token = string_util_class_1.StringUtil.isFalsyString((_f = request === null || request === void 0 ? void 0 : request.authenticateResult) === null || _f === void 0 ? void 0 : _f.nextToken)
|
|
178
|
+
? null
|
|
179
|
+
: request.authenticateResult.nextToken,
|
|
180
|
+
_p);
|
|
181
|
+
_q.label = 18;
|
|
182
|
+
case 18:
|
|
183
|
+
_q.trys.push([18, 20, , 21]);
|
|
184
|
+
return [4, ((_h = (_g = request === null || request === void 0 ? void 0 : request.transaction) === null || _g === void 0 ? void 0 : _g.commit) === null || _h === void 0 ? void 0 : _h.call(_g))];
|
|
185
|
+
case 19:
|
|
186
|
+
_q.sent();
|
|
187
|
+
return [3, 21];
|
|
188
|
+
case 20:
|
|
189
|
+
_m = _q.sent();
|
|
190
|
+
return [3, 21];
|
|
191
|
+
case 21: return [2, result];
|
|
192
|
+
case 22:
|
|
193
|
+
_q.trys.push([22, 24, , 25]);
|
|
194
|
+
return [4, ((_k = (_j = request === null || request === void 0 ? void 0 : request.transaction) === null || _j === void 0 ? void 0 : _j.rollback) === null || _k === void 0 ? void 0 : _k.call(_j))];
|
|
195
|
+
case 23:
|
|
196
|
+
_q.sent();
|
|
197
|
+
return [3, 25];
|
|
198
|
+
case 24:
|
|
199
|
+
_o = _q.sent();
|
|
200
|
+
return [3, 25];
|
|
201
|
+
case 25: throw new common_1.NotFoundException();
|
|
202
|
+
case 26: return [3, 28];
|
|
203
|
+
case 27:
|
|
204
|
+
error_1 = _q.sent();
|
|
149
205
|
throw error_1;
|
|
150
|
-
case
|
|
206
|
+
case 28: return [2];
|
|
151
207
|
}
|
|
152
208
|
});
|
|
153
209
|
});
|
|
@@ -148,14 +148,21 @@ function HerbalGuard(options) {
|
|
|
148
148
|
this.ref = ref;
|
|
149
149
|
}
|
|
150
150
|
HerbalGuardMixin.prototype.canActivate = function (context) {
|
|
151
|
-
var _a, _b, _c, _d, _e
|
|
151
|
+
var _a, _b, _c, _d, _e;
|
|
152
152
|
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
-
var transaction, request, response, traceId, authAdapters, _i, authAdapters_1, AuthAdapterClass, adapter, authenticateResult, error_1,
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
var sequelizeInstance, transaction, request, response, traceId, authAdapters, _i, authAdapters_1, AuthAdapterClass, adapter, authenticateResult, error_1, _f;
|
|
154
|
+
var _this = this;
|
|
155
|
+
return __generator(this, function (_g) {
|
|
156
|
+
switch (_g.label) {
|
|
157
|
+
case 0:
|
|
158
|
+
sequelizeInstance = _.attempt(function () { return _this.ref.get(sequelize_typescript_1.Sequelize, { strict: false }); });
|
|
159
|
+
transaction = undefined;
|
|
160
|
+
if (!!(sequelizeInstance instanceof Error)) return [3, 2];
|
|
161
|
+
return [4, ((_b = (_a = sequelizeInstance === null || sequelizeInstance === void 0 ? void 0 : sequelizeInstance.transaction) === null || _a === void 0 ? void 0 : _a.call(sequelizeInstance)) === null || _b === void 0 ? void 0 : _b.catch(function () { return Promise.resolve(undefined); }))];
|
|
157
162
|
case 1:
|
|
158
|
-
transaction =
|
|
163
|
+
transaction = _g.sent();
|
|
164
|
+
_g.label = 2;
|
|
165
|
+
case 2:
|
|
159
166
|
request = context.switchToHttp().getRequest();
|
|
160
167
|
response = context.switchToHttp().getResponse();
|
|
161
168
|
traceId = typeof (options === null || options === void 0 ? void 0 : options.getTraceId) === 'function' ? _.attempt(function () { return options.getTraceId(request); }) : (0, uuid_1.v4)();
|
|
@@ -165,45 +172,45 @@ function HerbalGuard(options) {
|
|
|
165
172
|
request.methodName = request.url.split('/').pop();
|
|
166
173
|
request.transaction = transaction;
|
|
167
174
|
response.setHeader(headers_constant_1.HEADERS.TRACE_ID, traceId);
|
|
168
|
-
authAdapters = auth_adapter_decorator_1.AuthAdapters.getAdapters((
|
|
169
|
-
|
|
170
|
-
case 2:
|
|
171
|
-
_k.trys.push([2, 8, , 13]);
|
|
172
|
-
if (!(Array.isArray(authAdapters) && authAdapters.length > 0)) return [3, 7];
|
|
173
|
-
_i = 0, authAdapters_1 = authAdapters;
|
|
174
|
-
_k.label = 3;
|
|
175
|
+
authAdapters = auth_adapter_decorator_1.AuthAdapters.getAdapters((_d = (_c = context === null || context === void 0 ? void 0 : context.getClass) === null || _c === void 0 ? void 0 : _c.call(context)) === null || _d === void 0 ? void 0 : _d.prototype, request.methodName);
|
|
176
|
+
_g.label = 3;
|
|
175
177
|
case 3:
|
|
176
|
-
|
|
178
|
+
_g.trys.push([3, 9, , 14]);
|
|
179
|
+
if (!(Array.isArray(authAdapters) && authAdapters.length > 0)) return [3, 8];
|
|
180
|
+
_i = 0, authAdapters_1 = authAdapters;
|
|
181
|
+
_g.label = 4;
|
|
182
|
+
case 4:
|
|
183
|
+
if (!(_i < authAdapters_1.length)) return [3, 7];
|
|
177
184
|
AuthAdapterClass = authAdapters_1[_i];
|
|
178
185
|
adapter = new AuthAdapterClass(request, this.ref);
|
|
179
186
|
if (!adapter.match())
|
|
180
|
-
return [3,
|
|
187
|
+
return [3, 6];
|
|
181
188
|
return [4, adapter.authenticate(transaction)];
|
|
182
|
-
case
|
|
183
|
-
authenticateResult =
|
|
189
|
+
case 5:
|
|
190
|
+
authenticateResult = _g.sent();
|
|
184
191
|
if (!authenticateResult)
|
|
185
|
-
return [3,
|
|
192
|
+
return [3, 7];
|
|
186
193
|
request.authenticateResult = __assign({ AuthenticatorClass: AuthAdapterClass }, authenticateResult);
|
|
187
194
|
return [2, true];
|
|
188
|
-
case
|
|
195
|
+
case 6:
|
|
189
196
|
_i++;
|
|
190
|
-
return [3,
|
|
191
|
-
case
|
|
192
|
-
case
|
|
193
|
-
case 8:
|
|
194
|
-
error_1 = _k.sent();
|
|
195
|
-
_k.label = 9;
|
|
197
|
+
return [3, 4];
|
|
198
|
+
case 7: throw new common_2.UnauthorizedException();
|
|
199
|
+
case 8: return [3, 14];
|
|
196
200
|
case 9:
|
|
197
|
-
|
|
198
|
-
|
|
201
|
+
error_1 = _g.sent();
|
|
202
|
+
_g.label = 10;
|
|
199
203
|
case 10:
|
|
200
|
-
|
|
201
|
-
return [
|
|
204
|
+
_g.trys.push([10, 12, , 13]);
|
|
205
|
+
return [4, ((_e = transaction === null || transaction === void 0 ? void 0 : transaction.rollback) === null || _e === void 0 ? void 0 : _e.call(transaction))];
|
|
202
206
|
case 11:
|
|
203
|
-
|
|
204
|
-
return [3,
|
|
205
|
-
case 12:
|
|
206
|
-
|
|
207
|
+
_g.sent();
|
|
208
|
+
return [3, 13];
|
|
209
|
+
case 12:
|
|
210
|
+
_f = _g.sent();
|
|
211
|
+
return [3, 13];
|
|
212
|
+
case 13: throw error_1;
|
|
213
|
+
case 14: return [2, true];
|
|
207
214
|
}
|
|
208
215
|
});
|
|
209
216
|
});
|