@open-norantec/herbal 2.0.0-alpha.5 → 2.0.0-alpha.6
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ModuleRef } from '@nestjs/core';
|
|
2
1
|
import { Constructor } from 'type-fest';
|
|
3
2
|
import { Request } from 'express';
|
|
4
3
|
import { Transaction } from 'sequelize';
|
|
4
|
+
import { GetModuleFn } from '../types';
|
|
5
5
|
export interface AuthenticateReturn {
|
|
6
6
|
challengeValue: string;
|
|
7
7
|
identifier: string;
|
|
@@ -13,8 +13,8 @@ export interface AuthenticateResult extends AuthenticateReturn {
|
|
|
13
13
|
}
|
|
14
14
|
export declare abstract class AuthAdapter {
|
|
15
15
|
protected readonly request: Request;
|
|
16
|
-
protected readonly
|
|
17
|
-
constructor(request: Request,
|
|
16
|
+
protected readonly getModule: GetModuleFn;
|
|
17
|
+
constructor(request: Request, getModule: GetModuleFn);
|
|
18
18
|
abstract match(): boolean;
|
|
19
19
|
abstract authenticate(transaction?: Transaction): Promise<AuthenticateReturn | null>;
|
|
20
20
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AuthAdapter = void 0;
|
|
4
4
|
var AuthAdapter = (function () {
|
|
5
|
-
function AuthAdapter(request,
|
|
5
|
+
function AuthAdapter(request, getModule) {
|
|
6
6
|
this.request = request;
|
|
7
|
-
this.
|
|
7
|
+
this.getModule = getModule;
|
|
8
8
|
}
|
|
9
9
|
return AuthAdapter;
|
|
10
10
|
}());
|
package/dist/core.d.ts
CHANGED
|
@@ -4,11 +4,11 @@ import { Request, RequestContext } from './types/request.type';
|
|
|
4
4
|
import { z } from '@open-norantec/utilities';
|
|
5
5
|
import 'reflect-metadata';
|
|
6
6
|
import { Request as ExpressRequest } from 'express';
|
|
7
|
-
import { ModuleRef } from '@nestjs/core';
|
|
8
7
|
import { Constructor } from 'type-fest';
|
|
9
8
|
import { Sequelize } from 'sequelize-typescript';
|
|
10
9
|
import { AuthAdapter } from './abstracts/auth-adapter.abstract.class';
|
|
11
10
|
import { PathsObject } from 'openapi3-ts/oas31';
|
|
11
|
+
import { GetModuleFn } from './types';
|
|
12
12
|
export * from '@nestjs/core';
|
|
13
13
|
export type MethodHandler<IS extends z.ZodType<any>, OS extends z.ZodType<any>> = (request: Request, input: unknown, headers: ReturnType<typeof HeaderUtil.parse>) => Promise<{
|
|
14
14
|
request: z.infer<IS>;
|
|
@@ -52,8 +52,8 @@ export interface HerbalControllerOptions<C> {
|
|
|
52
52
|
ignoreControllerNamePostfix?: boolean;
|
|
53
53
|
prefix?: string;
|
|
54
54
|
methods?: (register: MethodRegisterFn<C>) => void;
|
|
55
|
-
onAfterParsingRequest?: (request: Request,
|
|
56
|
-
onBeforeParsingRequest?: (request: Request,
|
|
55
|
+
onAfterParsingRequest?: (request: Request, getModule: GetModuleFn) => void | Promise<void>;
|
|
56
|
+
onBeforeParsingRequest?: (request: Request, getModule: GetModuleFn) => void | Promise<void>;
|
|
57
57
|
}
|
|
58
58
|
export interface ControllerUtilCreateOptions {
|
|
59
59
|
prefix?: string;
|
|
@@ -61,13 +61,13 @@ export interface ControllerUtilCreateOptions {
|
|
|
61
61
|
onAfterParsingRequest?: HerbalControllerOptions<any>['onAfterParsingRequest'];
|
|
62
62
|
onBeforeParsingRequest?: HerbalControllerOptions<any>['onBeforeParsingRequest'];
|
|
63
63
|
}
|
|
64
|
-
export declare function parseRequest({ request, traceId: inputTraceId, sequelize: sequelizeInstance,
|
|
64
|
+
export declare function parseRequest({ request, traceId: inputTraceId, sequelize: sequelizeInstance, handlerName, handlerPrototype, onLog, getModule, }: {
|
|
65
65
|
handlerPrototype: object;
|
|
66
|
-
moduleRef: ModuleRef;
|
|
67
66
|
request: Request;
|
|
68
67
|
handlerName?: string;
|
|
69
68
|
sequelize?: Sequelize;
|
|
70
69
|
traceId?: string;
|
|
70
|
+
getModule: GetModuleFn;
|
|
71
71
|
onLog?: (methodName: string, message: string) => void;
|
|
72
72
|
}): Promise<void>;
|
|
73
73
|
export declare function getMethodPool(targetPrototype: object): MethodPool | null;
|
package/dist/core.js
CHANGED
|
@@ -302,7 +302,7 @@ function parseRequest(_a) {
|
|
|
302
302
|
var _b, request_1, request_1_1;
|
|
303
303
|
var _c, e_1, _d, _e;
|
|
304
304
|
var _f, _g, _h, _j, _k;
|
|
305
|
-
var request = _a.request, inputTraceId = _a.traceId, sequelizeInstance = _a.sequelize,
|
|
305
|
+
var request = _a.request, inputTraceId = _a.traceId, sequelizeInstance = _a.sequelize, handlerName = _a.handlerName, handlerPrototype = _a.handlerPrototype, onLog = _a.onLog, getModule = _a.getModule;
|
|
306
306
|
return __awaiter(this, void 0, void 0, function () {
|
|
307
307
|
var transaction, beforeParsingRequestHandlers, afterParsingRequestHandlers, chunks_1, chunk, e_1_1, _l, parsedBody, methodPool, authAdapters, shouldHaveTransaction, error_2, authSucceeded, error_3, _m;
|
|
308
308
|
var _this = this;
|
|
@@ -368,7 +368,7 @@ function parseRequest(_a) {
|
|
|
368
368
|
case 16:
|
|
369
369
|
_.attempt(function () { return onLog === null || onLog === void 0 ? void 0 : onLog('log', "[trace:".concat(request === null || request === void 0 ? void 0 : request.traceId, ":request:body] ").concat(request.rawBody)); });
|
|
370
370
|
return [4, Promise.all((Array.isArray(beforeParsingRequestHandlers) ? beforeParsingRequestHandlers : []).map(function (handler) {
|
|
371
|
-
return handler(request,
|
|
371
|
+
return handler(request, getModule);
|
|
372
372
|
}))];
|
|
373
373
|
case 17:
|
|
374
374
|
_o.sent();
|
|
@@ -415,7 +415,7 @@ function parseRequest(_a) {
|
|
|
415
415
|
case 1:
|
|
416
416
|
if (!(_i < authAdapters_1.length)) return [3, 4];
|
|
417
417
|
AuthAdapterClass = authAdapters_1[_i];
|
|
418
|
-
adapter = new AuthAdapterClass(request,
|
|
418
|
+
adapter = new AuthAdapterClass(request, getModule);
|
|
419
419
|
if (!adapter.match())
|
|
420
420
|
return [3, 3];
|
|
421
421
|
return [4, adapter.authenticate(transaction)];
|
|
@@ -455,7 +455,7 @@ function parseRequest(_a) {
|
|
|
455
455
|
return [3, 30];
|
|
456
456
|
case 30: throw error_3;
|
|
457
457
|
case 31: return [4, Promise.all((Array.isArray(afterParsingRequestHandlers) ? afterParsingRequestHandlers : []).map(function (handler) {
|
|
458
|
-
return handler(request,
|
|
458
|
+
return handler(request, getModule);
|
|
459
459
|
}))];
|
|
460
460
|
case 32:
|
|
461
461
|
_o.sent();
|
|
@@ -490,11 +490,11 @@ function HerbalGuard(options) {
|
|
|
490
490
|
traceId = uuid_util_class_1.UUIDUtil.generateV4();
|
|
491
491
|
return [4, parseRequest({
|
|
492
492
|
request: request,
|
|
493
|
-
moduleRef: this.ref,
|
|
494
493
|
sequelize: sequelizeInstance instanceof Error ? undefined : sequelizeInstance,
|
|
495
494
|
handlerPrototype: (_c = (_b = (_a = context === null || context === void 0 ? void 0 : context.getClass) === null || _a === void 0 ? void 0 : _a.call(context)) === null || _b === void 0 ? void 0 : _b.prototype) !== null && _c !== void 0 ? _c : {},
|
|
496
495
|
handlerName: (_e = (_d = context === null || context === void 0 ? void 0 : context.getHandler) === null || _d === void 0 ? void 0 : _d.call(context)) === null || _e === void 0 ? void 0 : _e.name,
|
|
497
496
|
traceId: traceId,
|
|
497
|
+
getModule: this.ref.get.bind(this.ref),
|
|
498
498
|
onLog: function (method, message) {
|
|
499
499
|
var _a;
|
|
500
500
|
try {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
import { Constructor } from 'type-fest';
|
|
1
2
|
export * from './request.type';
|
|
2
3
|
export * from './http-response-body.type';
|
|
4
|
+
export type GetModuleFn = <TInput = any, TResult = TInput>(typeOrToken: Constructor<TInput> | Function | string | symbol, options: {
|
|
5
|
+
strict?: boolean;
|
|
6
|
+
each?: undefined | false;
|
|
7
|
+
}) => TResult;
|