@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 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, _b, _c, _d, _e, _f;
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, _g, _h, error_1;
108
- var _j;
109
- return __generator(this, function (_k) {
110
- switch (_k.label) {
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
- _k.label = 1;
123
+ if (!!_.isPlainObject(input)) return [3, 16];
124
+ chunks_1 = [];
125
+ _q.label = 1;
114
126
  case 1:
115
- _k.trys.push([1, 12, , 13]);
116
- if (!(typeof methodHandler === 'function')) return [3, 7];
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
- result = (_j.data = _k.sent(),
121
- _j.token = string_util_class_1.StringUtil.isFalsyString((_b = request === null || request === void 0 ? void 0 : request.authenticateResult) === null || _b === void 0 ? void 0 : _b.nextToken)
122
- ? null
123
- : request.authenticateResult.nextToken,
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
- _k.sent();
131
- return [3, 6];
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
- _g = _k.sent();
134
- return [3, 6];
135
- case 6: return [2, result];
142
+ _a = true;
143
+ return [3, 3];
144
+ case 6: return [3, 13];
136
145
  case 7:
137
- _k.trys.push([7, 9, , 10]);
138
- return [4, ((_f = (_e = request === null || request === void 0 ? void 0 : request.transaction) === null || _e === void 0 ? void 0 : _e.rollback) === null || _f === void 0 ? void 0 : _f.call(_e))];
146
+ e_1_1 = _q.sent();
147
+ e_1 = { error: e_1_1 };
148
+ return [3, 13];
139
149
  case 8:
140
- _k.sent();
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
- _h = _k.sent();
144
- return [3, 10];
145
- case 10: throw new common_1.NotFoundException();
146
- case 11: return [3, 13];
147
- case 12:
148
- error_1 = _k.sent();
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 13: return [2];
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, _f, _g, _h;
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, _j;
154
- return __generator(this, function (_k) {
155
- switch (_k.label) {
156
- case 0: return [4, ((_e = (_d = (_c = (_b = (_a = this.ref) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, sequelize_typescript_1.Sequelize, { strict: false })) === null || _c === void 0 ? void 0 : _c.transaction) === null || _d === void 0 ? void 0 : _d.call(_c)) === null || _e === void 0 ? void 0 : _e.catch(function () { return Promise.resolve(undefined); }))];
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 = _k.sent();
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((_g = (_f = context === null || context === void 0 ? void 0 : context.getClass) === null || _f === void 0 ? void 0 : _f.call(context)) === null || _g === void 0 ? void 0 : _g.prototype, request.methodName);
169
- _k.label = 2;
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
- if (!(_i < authAdapters_1.length)) return [3, 6];
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, 5];
187
+ return [3, 6];
181
188
  return [4, adapter.authenticate(transaction)];
182
- case 4:
183
- authenticateResult = _k.sent();
189
+ case 5:
190
+ authenticateResult = _g.sent();
184
191
  if (!authenticateResult)
185
- return [3, 6];
192
+ return [3, 7];
186
193
  request.authenticateResult = __assign({ AuthenticatorClass: AuthAdapterClass }, authenticateResult);
187
194
  return [2, true];
188
- case 5:
195
+ case 6:
189
196
  _i++;
190
- return [3, 3];
191
- case 6: throw new common_2.UnauthorizedException();
192
- case 7: return [3, 13];
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
- _k.trys.push([9, 11, , 12]);
198
- return [4, ((_h = transaction === null || transaction === void 0 ? void 0 : transaction.rollback) === null || _h === void 0 ? void 0 : _h.call(transaction))];
201
+ error_1 = _g.sent();
202
+ _g.label = 10;
199
203
  case 10:
200
- _k.sent();
201
- return [3, 12];
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
- _j = _k.sent();
204
- return [3, 12];
205
- case 12: throw error_1;
206
- case 13: return [2, true];
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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-norantec/herbal",
3
- "version": "1.0.1-alpha.2",
3
+ "version": "1.0.1-alpha.4",
4
4
  "description": "Herbal is a builder and toolchain for Nest.js applications",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {