ctx-router 1.0.1 → 1.0.2

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/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { TCtx, USER_ROLE, IBaseApi } from "./ctx/ctx.types";
2
2
  import { transformFromExpress } from "./transform/fromExpress";
3
3
  import { CtxRouter } from "./ctx/ctx.router";
4
+ import { CtxError } from "./ctx/ctx.err";
4
5
  export type { TCtx, IBaseApi };
5
- export { USER_ROLE, CtxRouter };
6
+ export { USER_ROLE, CtxRouter, CtxError };
6
7
  export declare namespace toCtx {
7
8
  const fromExpress: typeof transformFromExpress;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEhC,yBAAiB,KAAK,CAAC;IACd,MAAM,WAAW,6BAAuB,CAAC;CACjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAE1C,yBAAiB,KAAK,CAAC;IACd,MAAM,WAAW,6BAAuB,CAAC;CACjD"}
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toCtx = exports.CtxRouter = exports.USER_ROLE = void 0;
3
+ exports.toCtx = exports.CtxError = exports.CtxRouter = exports.USER_ROLE = void 0;
4
4
  const ctx_types_1 = require("./ctx/ctx.types");
5
5
  Object.defineProperty(exports, "USER_ROLE", { enumerable: true, get: function () { return ctx_types_1.USER_ROLE; } });
6
6
  const fromExpress_1 = require("./transform/fromExpress");
7
7
  const ctx_router_1 = require("./ctx/ctx.router");
8
8
  Object.defineProperty(exports, "CtxRouter", { enumerable: true, get: function () { return ctx_router_1.CtxRouter; } });
9
+ const ctx_err_1 = require("./ctx/ctx.err");
10
+ Object.defineProperty(exports, "CtxError", { enumerable: true, get: function () { return ctx_err_1.CtxError; } });
9
11
  var toCtx;
10
12
  (function (toCtx) {
11
13
  toCtx.fromExpress = fromExpress_1.transformFromExpress;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAKnD,0FALM,qBAAS,OAKN;AAJlB,yDAA+D;AAC/D,iDAA6C;AAGzB,0FAHX,sBAAS,OAGW;AAE7B,IAAiB,KAAK,CAErB;AAFD,WAAiB,KAAK;IACP,iBAAW,GAAG,kCAAoB,CAAC;AAClD,CAAC,EAFgB,KAAK,qBAAL,KAAK,QAErB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAKnD,0FALM,qBAAS,OAKN;AAJlB,yDAA+D;AAC/D,iDAA6C;AAGzB,0FAHX,sBAAS,OAGW;AAF7B,2CAAyC;AAEV,yFAFtB,kBAAQ,OAEsB;AAEvC,IAAiB,KAAK,CAErB;AAFD,WAAiB,KAAK;IACP,iBAAW,GAAG,kCAAoB,CAAC;AAClD,CAAC,EAFgB,KAAK,qBAAL,KAAK,QAErB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctx-router",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Context Router",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,96 +0,0 @@
1
- export declare const USER_ROLE: {
2
- readonly user: "user";
3
- readonly admin: "admin";
4
- readonly server: "server";
5
- readonly none: "none";
6
- };
7
- type CtxReq = {
8
- header: {
9
- authorization?: string;
10
- "x-ctx-device-name"?: string;
11
- "x-ctx-device-id"?: string;
12
- "x-ctx-os"?: string;
13
- "x-ctx-app-version"?: string;
14
- "x-ctx-api-version"?: string;
15
- "x-ctx-session-id"?: string;
16
- "x-ctx-seq"?: string;
17
- "x-ctx-refresh-token"?: string;
18
- [key: string]: string | string[] | undefined;
19
- };
20
- method: string;
21
- path: string;
22
- data: {
23
- userId?: string;
24
- [key: string]: unknown;
25
- };
26
- ip: string;
27
- ips: string[];
28
- };
29
- type CtxRes = {
30
- code: string;
31
- msg: string;
32
- data: {
33
- [key: string]: unknown;
34
- };
35
- meta?: {
36
- ctxId: string;
37
- seq: number;
38
- traceId: string;
39
- spanId: string;
40
- inTime: Date;
41
- outTime: Date;
42
- execTime: number;
43
- owd: number;
44
- };
45
- };
46
- type CtxMeta = {
47
- serviceName: string;
48
- instance: {
49
- id: string;
50
- createdAt: Date;
51
- seq: number;
52
- inflight: number;
53
- };
54
- ts: {
55
- in: Date;
56
- clientIn: Date;
57
- owd: number;
58
- out?: Date;
59
- execTime?: number;
60
- };
61
- monitor: {
62
- traceId: string;
63
- spanId: string;
64
- stdout: string[];
65
- dbLog: string[];
66
- };
67
- };
68
- type CtxUser = {
69
- id: string;
70
- role: keyof typeof USER_ROLE;
71
- deviceName: string;
72
- deviceId: string;
73
- os: string;
74
- appVersion: string;
75
- sessionId: string;
76
- seq: number;
77
- apiVersion: string;
78
- auth: {
79
- token: string;
80
- refresh: string;
81
- };
82
- };
83
- export type TCtx = {
84
- id: string;
85
- meta: CtxMeta;
86
- req: CtxReq;
87
- res: CtxRes;
88
- user: CtxUser;
89
- };
90
- export interface IBaseApi {
91
- auth(ctx: TCtx): Promise<TCtx>;
92
- validate(ctx: TCtx): Promise<TCtx>;
93
- handle(ctx: TCtx): Promise<TCtx>;
94
- }
95
- export {};
96
- //# sourceMappingURL=ctx.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ctx.types.d.ts","sourceRoot":"","sources":["../src/ctx.types.ts"],"names":[],"mappings":"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"}
package/dist/ctx.types.js DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USER_ROLE = void 0;
4
- exports.USER_ROLE = {
5
- user: "user",
6
- admin: "admin",
7
- server: "server",
8
- none: "none",
9
- };
10
- //# sourceMappingURL=ctx.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ctx.types.js","sourceRoot":"","sources":["../src/ctx.types.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC"}
package/dist/ctxErr.d.ts DELETED
@@ -1,28 +0,0 @@
1
- type TCtxErrorData = {
2
- [key: string]: number | string | object | boolean | null;
3
- };
4
- type TCtxError = {
5
- name: string;
6
- msg: string;
7
- data?: TCtxErrorData;
8
- info?: unknown;
9
- };
10
- export declare class CtxError extends Error {
11
- data: {
12
- [key: string]: number | string | object | boolean | null;
13
- };
14
- info?: unknown;
15
- constructor({ name, msg, data, info }: TCtxError);
16
- }
17
- type TResErr = Partial<Pick<TCtxError, "data" | "info" | "msg">>;
18
- export declare namespace ctxErr {
19
- const general: {
20
- unknown: (e?: TResErr) => CtxError;
21
- responseNotSet: (e?: TResErr) => CtxError;
22
- malformedRequestData: (e?: TResErr) => CtxError;
23
- handlerNotFound: (e?: TResErr) => CtxError;
24
- notAuthorized: (e?: TResErr) => CtxError;
25
- };
26
- }
27
- export {};
28
- //# sourceMappingURL=ctxErr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ctxErr.d.ts","sourceRoot":"","sources":["../src/ctxErr.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC1D,CAAC;AACF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;gBACH,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS;CAMjD;AAED,KAAK,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAEjE,yBAAiB,MAAM,CAAC;IACf,MAAM,OAAO;sBACJ,OAAO;6BAMA,OAAO;mCAMD,OAAO;8BAMZ,OAAO;4BAMT,OAAO;KAM5B,CAAC;CACH"}
package/dist/ctxErr.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ctxErr = exports.CtxError = void 0;
4
- class CtxError extends Error {
5
- constructor({ name, msg, data, info }) {
6
- super(msg);
7
- super.name = name;
8
- this.data = data || {};
9
- this.info = info;
10
- }
11
- }
12
- exports.CtxError = CtxError;
13
- var ctxErr;
14
- (function (ctxErr) {
15
- ctxErr.general = {
16
- unknown: (e) => new CtxError({
17
- name: "UNKNOWN_ERROR",
18
- msg: "Something went wrong",
19
- ...e,
20
- }),
21
- responseNotSet: (e) => new CtxError({
22
- name: "RESPONSE_NOT_SET",
23
- msg: "Response not set",
24
- ...e,
25
- }),
26
- malformedRequestData: (e) => new CtxError({
27
- name: "MALFORMED_REQUEST_DATA",
28
- msg: "Malformed request data",
29
- ...e,
30
- }),
31
- handlerNotFound: (e) => new CtxError({
32
- name: "HANDLER_NOT_FOUND",
33
- msg: "Handler not found",
34
- ...e,
35
- }),
36
- notAuthorized: (e) => new CtxError({
37
- name: "NOT_AUTHORIZED",
38
- msg: "Not authorized",
39
- ...e,
40
- }),
41
- };
42
- })(ctxErr || (exports.ctxErr = ctxErr = {}));
43
- //# sourceMappingURL=ctxErr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ctxErr.js","sourceRoot":"","sources":["../src/ctxErr.ts"],"names":[],"mappings":";;;AASA,MAAa,QAAS,SAAQ,KAAK;IAGjC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAa;QAC9C,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AATD,4BASC;AAID,IAAiB,MAAM,CAiCtB;AAjCD,WAAiB,MAAM;IACR,cAAO,GAAG;QACrB,OAAO,EAAE,CAAC,CAAW,EAAE,EAAE,CACvB,IAAI,QAAQ,CAAC;YACX,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,sBAAsB;YAC3B,GAAG,CAAC;SACL,CAAC;QACJ,cAAc,EAAE,CAAC,CAAW,EAAE,EAAE,CAC9B,IAAI,QAAQ,CAAC;YACX,IAAI,EAAE,kBAAkB;YACxB,GAAG,EAAE,kBAAkB;YACvB,GAAG,CAAC;SACL,CAAC;QACJ,oBAAoB,EAAE,CAAC,CAAW,EAAE,EAAE,CACpC,IAAI,QAAQ,CAAC;YACX,IAAI,EAAE,wBAAwB;YAC9B,GAAG,EAAE,wBAAwB;YAC7B,GAAG,CAAC;SACL,CAAC;QACJ,eAAe,EAAE,CAAC,CAAW,EAAE,EAAE,CAC/B,IAAI,QAAQ,CAAC;YACX,IAAI,EAAE,mBAAmB;YACzB,GAAG,EAAE,mBAAmB;YACxB,GAAG,CAAC;SACL,CAAC;QACJ,aAAa,EAAE,CAAC,CAAW,EAAE,EAAE,CAC7B,IAAI,QAAQ,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,gBAAgB;YACrB,GAAG,CAAC;SACL,CAAC;KACL,CAAC;AACJ,CAAC,EAjCgB,MAAM,sBAAN,MAAM,QAiCtB"}
@@ -1,4 +0,0 @@
1
- import { Request } from "express";
2
- import { TCtx } from "../ctx.types";
3
- export declare function fromExpress(req: Request): TCtx;
4
- //# sourceMappingURL=express.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/producer/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AASpC,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAU9C"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromExpress = fromExpress;
4
- const transform_1 = require("../transform");
5
- function getPath(url) {
6
- const queryParamPos = url.indexOf("?");
7
- if (queryParamPos === -1)
8
- return url;
9
- return url.substring(0, queryParamPos);
10
- }
11
- function fromExpress(req) {
12
- const ctx = (0, transform_1.buildCtx)({
13
- method: req.method,
14
- path: getPath(req.url),
15
- header: req.headers,
16
- data: req.method === "POST" ? req.body || {} : req.query || {},
17
- ip: req.ip || "",
18
- ips: req.ips || [],
19
- });
20
- return ctx;
21
- }
22
- //# sourceMappingURL=express.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/producer/express.ts"],"names":[],"mappings":";;AAUA,kCAUC;AAlBD,4CAAwC;AAExC,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,aAAa,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,WAAW,CAAC,GAAY;IACtC,MAAM,GAAG,GAAG,IAAA,oBAAQ,EAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC9D,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;KACnB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/router.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { CtxError } from "./ctxErr";
2
- export declare class CtxRouter<TContext> {
3
- private routeObj;
4
- private onErrorHandler;
5
- exec(method: string, path: string, ctx: TContext): Promise<TContext>;
6
- handle(method: string, path: string, handler: (ctx: TContext) => Promise<TContext>): void;
7
- onError(handler: (ctx: TContext, error: CtxError | Error | unknown) => Promise<TContext>): void;
8
- }
9
- //# sourceMappingURL=router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,QAAQ,EAAE,MAAM,UAAU,CAAC;AAO5C,qBAAa,SAAS,CAAC,QAAQ;IAC7B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,cAAc,CAGrB;IAEK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAc1E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;IAKlF,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC;CAGzF"}
package/dist/router.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CtxRouter = void 0;
4
- const ctxErr_1 = require("./ctxErr");
5
- class CtxRouter {
6
- constructor() {
7
- this.routeObj = {};
8
- this.onErrorHandler = async (ctx, error) => {
9
- console.log("CtxError:onErrorHandler", error);
10
- return ctx;
11
- };
12
- }
13
- async exec(method, path, ctx) {
14
- const handler = this.routeObj[method]?.[path];
15
- if (!handler) {
16
- throw ctxErr_1.ctxErr.general.handlerNotFound({
17
- data: { method, path },
18
- });
19
- }
20
- try {
21
- return await handler(ctx);
22
- }
23
- catch (error) {
24
- return await this.onErrorHandler(ctx, error);
25
- }
26
- }
27
- handle(method, path, handler) {
28
- const methodRoute = this.routeObj[method] || (this.routeObj[method] = {});
29
- methodRoute[path] = handler;
30
- }
31
- onError(handler) {
32
- this.onErrorHandler = handler;
33
- }
34
- }
35
- exports.CtxRouter = CtxRouter;
36
- const ctxRouter = new CtxRouter();
37
- async function handler(ctx) {
38
- console.log(ctx);
39
- return ctx;
40
- }
41
- ctxRouter.handle("GET", "/", handler);
42
- ctxRouter.handle("GET", "/instance/ping", handler);
43
- ctxRouter.handle("GET", "/instance/health", handler);
44
- ctxRouter.handle("POST", "/route/test", handler);
45
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;AACA,qCAA4C;AAO5C,MAAa,SAAS;IAAtB;QACU,aAAQ,GAAwB,EAAE,CAAC;QACnC,mBAAc,GAA4E,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACrH,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC;QACb,CAAC,CAAA;IAwBH,CAAC;IAtBC,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAY,EAAE,GAAa;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,eAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,IAAY,EAAE,OAA6C;QAChF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1E,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAgF;QACtF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;CACF;AA7BD,8BA6BC;AAED,MAAM,SAAS,GAAG,IAAI,SAAS,EAAQ,CAAC;AACxC,KAAK,UAAU,OAAO,CAAC,GAAS;IAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACtC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACnD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACrD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC"}
@@ -1,91 +0,0 @@
1
- import { TCtx, USER_ROLE } from "./ctx/ctx.types";
2
- type TCtxBuild = {
3
- method: string;
4
- path: string;
5
- header: Record<string, string | string[] | undefined>;
6
- data: Record<string, unknown>;
7
- ip: string;
8
- ips: string[];
9
- };
10
- export declare function buildCtx(ctxRaw: TCtxBuild): {
11
- id: string;
12
- meta: {
13
- serviceName: string;
14
- instance: {
15
- id: string;
16
- createdAt: Date;
17
- seq: number;
18
- inflight: number;
19
- };
20
- ts: {
21
- in: Date;
22
- clientIn: Date;
23
- owd: number;
24
- out?: Date;
25
- execTime?: number;
26
- };
27
- monitor: {
28
- traceId: string;
29
- spanId: string;
30
- stdout: string[];
31
- dbLog: string[];
32
- };
33
- };
34
- req: {
35
- header: {
36
- authorization?: string;
37
- "x-ctx-device-name"?: string;
38
- "x-ctx-device-id"?: string;
39
- "x-ctx-os"?: string;
40
- "x-ctx-app-version"?: string;
41
- "x-ctx-api-version"?: string;
42
- "x-ctx-session-id"?: string;
43
- "x-ctx-seq"?: string;
44
- "x-ctx-refresh-token"?: string;
45
- [key: string]: string | string[] | undefined;
46
- };
47
- method: string;
48
- path: string;
49
- data: {
50
- userId?: string;
51
- [key: string]: unknown;
52
- };
53
- ip: string;
54
- ips: string[];
55
- };
56
- user: {
57
- id: string;
58
- role: keyof typeof USER_ROLE;
59
- deviceName: string;
60
- deviceId: string;
61
- os: string;
62
- appVersion: string;
63
- sessionId: string;
64
- seq: number;
65
- apiVersion: string;
66
- auth: {
67
- token: string;
68
- refresh: string;
69
- };
70
- };
71
- res: {
72
- code: string;
73
- msg: string;
74
- data: {
75
- [key: string]: unknown;
76
- };
77
- meta?: {
78
- ctxId: string;
79
- seq: number;
80
- traceId: string;
81
- spanId: string;
82
- inTime: Date;
83
- outTime: Date;
84
- execTime: number;
85
- owd: number;
86
- };
87
- };
88
- };
89
- export declare function doneCtx(ctx: TCtx): Promise<void>;
90
- export {};
91
- //# sourceMappingURL=transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAalD,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;eAgBN,CAAA;oBAAoB,CAAC;;;;;;;;;;;yBAlC/C,CAAC;+BAAiC,CAAC;6BAE3C,CAAF;sBAAwB,CAAC;+BAAiC,CAAC;+BAGvD,CAAC;8BACG,CAAA;uBAAyB,CAAC;iCAG3B,CAAC;;;;;;kBAIK,CAAC;;;;;;;;oBA4BH,gBAEP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAlBH;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAStD"}
package/dist/transform.js DELETED
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildCtx = buildCtx;
7
- exports.doneCtx = doneCtx;
8
- const crypto_1 = __importDefault(require("crypto"));
9
- const ctx_types_1 = require("./ctx/ctx.types");
10
- const INSTANCE = {
11
- ID: crypto_1.default.randomBytes(5).toString("hex"),
12
- TRACE_ID: crypto_1.default.randomBytes(5).toString("hex"),
13
- CREATED_AT: new Date(),
14
- SERVICE_NAME: process.env.SERVICE_NAME || "fantasy-service",
15
- SEQ: 0,
16
- INFLIGHT: 0,
17
- LAST_HEARTBEAT: new Date(),
18
- PORT: parseInt(process.env.SERVICE_PORT || "3000", 10),
19
- };
20
- function buildCtx(ctxRaw) {
21
- const meta = buildMeta(ctxRaw);
22
- const req = buildReq(ctxRaw);
23
- const user = buildUser(ctxRaw);
24
- const res = buildRes();
25
- const id = meta.monitor.traceId;
26
- return { id, meta, req, user, res };
27
- }
28
- async function doneCtx(ctx) {
29
- ctx.meta.ts.out = new Date();
30
- ctx.meta.ts.execTime = ctx.meta.ts.out.getTime() - ctx.meta.ts.in.getTime();
31
- // Log context using ctxLogger
32
- // await logCtx(ctx);
33
- setResMeta(ctx);
34
- // decrease the number of request inflight when response of this request goes out
35
- INSTANCE.INFLIGHT--;
36
- }
37
- function buildMeta(ctxRaw) {
38
- const inTime = new Date();
39
- ++INSTANCE.SEQ;
40
- ++INSTANCE.INFLIGHT;
41
- // Extract clientIn from header and validate if it's a valid date using IIFE
42
- const clientIn = (() => {
43
- const dtStr = ctxRaw.header["x-ctx-ts"];
44
- if (typeof dtStr !== "string")
45
- return inTime;
46
- const dt = new Date(dtStr);
47
- if (isNaN(dt.getTime()))
48
- return inTime;
49
- return dt;
50
- })();
51
- return {
52
- serviceName: INSTANCE.SERVICE_NAME,
53
- instance: {
54
- id: INSTANCE.ID,
55
- createdAt: INSTANCE.CREATED_AT,
56
- seq: INSTANCE.SEQ,
57
- inflight: INSTANCE.INFLIGHT,
58
- },
59
- ts: {
60
- in: inTime,
61
- clientIn: clientIn,
62
- owd: inTime.getTime() - clientIn.getTime(),
63
- },
64
- monitor: {
65
- traceId: `${INSTANCE.ID}-${INSTANCE.SEQ}`,
66
- spanId: `${INSTANCE.ID}-${INSTANCE.SEQ}`,
67
- stdout: [],
68
- dbLog: [],
69
- },
70
- };
71
- }
72
- function buildReq(data) {
73
- return {
74
- method: data.method,
75
- path: data.path,
76
- header: data.header,
77
- data: data.data,
78
- ip: data.ip,
79
- ips: data.ips,
80
- };
81
- }
82
- function buildUser(ctxRaw) {
83
- const header = ctxRaw.header;
84
- const clientSeq = Number(header["x-ctx-seq"]);
85
- return {
86
- id: "none",
87
- role: ctx_types_1.USER_ROLE.none,
88
- seq: isNaN(clientSeq) ? 0 : clientSeq,
89
- sessionId: String(header["x-ctx-session-id"] || "none"),
90
- deviceId: String(header["x-ctx-device-id"] || "none"),
91
- deviceName: String(header["x-ctx-device-name"] || "none"),
92
- appVersion: String(header["x-ctx-app-version"] || "none"),
93
- os: String(header["x-ctx-os"] || "none"),
94
- apiVersion: String(header["x-ctx-api-version"] || "none"),
95
- auth: {
96
- token: String(header["authorization"] || header["Authorization"] || "none"),
97
- refresh: String(header["x-ctx-refresh-token"] || "none"),
98
- },
99
- };
100
- }
101
- function buildRes() {
102
- return {
103
- code: "OK",
104
- msg: "OK",
105
- data: {},
106
- };
107
- }
108
- function setResMeta(ctx) {
109
- const meta = ctx.meta;
110
- ctx.res.meta = {
111
- ctxId: ctx.id,
112
- seq: ctx.user.seq,
113
- traceId: meta.monitor.traceId,
114
- spanId: meta.monitor.spanId,
115
- inTime: meta.ts.in,
116
- outTime: meta.ts.out,
117
- execTime: meta.ts.execTime,
118
- owd: meta.ts.owd,
119
- };
120
- }
121
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Request } from "express";
2
- import { TCtx } from "../ctx/ctx.types";
3
- export declare function expressTransformer(req: Request): TCtx;
4
- //# sourceMappingURL=express.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/transformer/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AASxC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAUrD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expressTransformer = expressTransformer;
4
- const _1 = require(".");
5
- function getPath(url) {
6
- const queryParamPos = url.indexOf("?");
7
- if (queryParamPos === -1)
8
- return url;
9
- return url.substring(0, queryParamPos);
10
- }
11
- function expressTransformer(req) {
12
- const ctx = (0, _1.buildCtx)({
13
- method: req.method,
14
- path: getPath(req.url),
15
- header: req.headers,
16
- data: req.method === "POST" ? req.body || {} : req.query || {},
17
- ip: req.ip || "",
18
- ips: req.ips || [],
19
- });
20
- return ctx;
21
- }
22
- //# sourceMappingURL=express.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/transformer/express.ts"],"names":[],"mappings":";;AAUA,gDAUC;AAlBD,wBAA6B;AAE7B,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,aAAa,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAY;IAC7C,MAAM,GAAG,GAAG,IAAA,WAAQ,EAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC9D,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;KACnB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,91 +0,0 @@
1
- import { TCtx, USER_ROLE } from "../ctx/ctx.types";
2
- type TCtxBuild = {
3
- method: string;
4
- path: string;
5
- header: Record<string, string | string[] | undefined>;
6
- data: Record<string, unknown>;
7
- ip: string;
8
- ips: string[];
9
- };
10
- export declare function buildCtx(ctxRaw: TCtxBuild): {
11
- id: string;
12
- meta: {
13
- serviceName: string;
14
- instance: {
15
- id: string;
16
- createdAt: Date;
17
- seq: number;
18
- inflight: number;
19
- };
20
- ts: {
21
- in: Date;
22
- clientIn: Date;
23
- owd: number;
24
- out?: Date;
25
- execTime?: number;
26
- };
27
- monitor: {
28
- traceId: string;
29
- spanId: string;
30
- stdout: string[];
31
- dbLog: string[];
32
- };
33
- };
34
- req: {
35
- header: {
36
- authorization?: string;
37
- "x-ctx-device-name"?: string;
38
- "x-ctx-device-id"?: string;
39
- "x-ctx-os"?: string;
40
- "x-ctx-app-version"?: string;
41
- "x-ctx-api-version"?: string;
42
- "x-ctx-session-id"?: string;
43
- "x-ctx-seq"?: string;
44
- "x-ctx-refresh-token"?: string;
45
- [key: string]: string | string[] | undefined;
46
- };
47
- method: string;
48
- path: string;
49
- data: {
50
- userId?: string;
51
- [key: string]: unknown;
52
- };
53
- ip: string;
54
- ips: string[];
55
- };
56
- user: {
57
- id: string;
58
- role: keyof typeof USER_ROLE;
59
- deviceName: string;
60
- deviceId: string;
61
- os: string;
62
- appVersion: string;
63
- sessionId: string;
64
- seq: number;
65
- apiVersion: string;
66
- auth: {
67
- token: string;
68
- refresh: string;
69
- };
70
- };
71
- res: {
72
- code: string;
73
- msg: string;
74
- data: {
75
- [key: string]: unknown;
76
- };
77
- meta?: {
78
- ctxId: string;
79
- seq: number;
80
- traceId: string;
81
- spanId: string;
82
- inTime: Date;
83
- outTime: Date;
84
- execTime: number;
85
- owd: number;
86
- };
87
- };
88
- };
89
- export declare function doneCtx(ctx: TCtx): Promise<void>;
90
- export {};
91
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAanD,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;eAgBR,CAAC;oBAAoB,CAAC;;;;;;;;;;;yBAlC/C,CAAC;+BAAiC,CAAC;6BACpB,CAAC;sBACF,CAAC;+BAAiC,CAAC;+BAGvD,CAAC;8BACE,CAAC;uBAAyB,CAAC;iCAG3B,CAAC;;;;;;kBAIK,CAAC;;;;;;;;oBA4BH,gBAEP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAlBF;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAStD"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildCtx = buildCtx;
7
- exports.doneCtx = doneCtx;
8
- const crypto_1 = __importDefault(require("crypto"));
9
- const ctx_types_1 = require("../ctx/ctx.types");
10
- const INSTANCE = {
11
- ID: crypto_1.default.randomBytes(5).toString("hex"),
12
- TRACE_ID: crypto_1.default.randomBytes(5).toString("hex"),
13
- CREATED_AT: new Date(),
14
- SERVICE_NAME: process.env.SERVICE_NAME || "fantasy-service",
15
- SEQ: 0,
16
- INFLIGHT: 0,
17
- LAST_HEARTBEAT: new Date(),
18
- PORT: parseInt(process.env.SERVICE_PORT || "3000", 10),
19
- };
20
- function buildCtx(ctxRaw) {
21
- const meta = buildMeta(ctxRaw);
22
- const req = buildReq(ctxRaw);
23
- const user = buildUser(ctxRaw);
24
- const res = buildRes();
25
- const id = meta.monitor.traceId;
26
- return { id, meta, req, user, res };
27
- }
28
- async function doneCtx(ctx) {
29
- ctx.meta.ts.out = new Date();
30
- ctx.meta.ts.execTime = ctx.meta.ts.out.getTime() - ctx.meta.ts.in.getTime();
31
- // Log context using ctxLogger
32
- // await logCtx(ctx);
33
- setResMeta(ctx);
34
- // decrease the number of request inflight when response of this request goes out
35
- INSTANCE.INFLIGHT--;
36
- }
37
- function buildMeta(ctxRaw) {
38
- const inTime = new Date();
39
- ++INSTANCE.SEQ;
40
- ++INSTANCE.INFLIGHT;
41
- // Extract clientIn from header and validate if it's a valid date using IIFE
42
- const clientIn = (() => {
43
- const dtStr = ctxRaw.header["x-ctx-ts"];
44
- if (typeof dtStr !== "string")
45
- return inTime;
46
- const dt = new Date(dtStr);
47
- if (isNaN(dt.getTime()))
48
- return inTime;
49
- return dt;
50
- })();
51
- return {
52
- serviceName: INSTANCE.SERVICE_NAME,
53
- instance: {
54
- id: INSTANCE.ID,
55
- createdAt: INSTANCE.CREATED_AT,
56
- seq: INSTANCE.SEQ,
57
- inflight: INSTANCE.INFLIGHT,
58
- },
59
- ts: {
60
- in: inTime,
61
- clientIn: clientIn,
62
- owd: inTime.getTime() - clientIn.getTime(),
63
- },
64
- monitor: {
65
- traceId: `${INSTANCE.ID}-${INSTANCE.SEQ}`,
66
- spanId: `${INSTANCE.ID}-${INSTANCE.SEQ}`,
67
- stdout: [],
68
- dbLog: [],
69
- },
70
- };
71
- }
72
- function buildReq(data) {
73
- return {
74
- method: data.method,
75
- path: data.path,
76
- header: data.header,
77
- data: data.data,
78
- ip: data.ip,
79
- ips: data.ips,
80
- };
81
- }
82
- function buildUser(ctxRaw) {
83
- const header = ctxRaw.header;
84
- const clientSeq = Number(header["x-ctx-seq"]);
85
- return {
86
- id: "none",
87
- role: ctx_types_1.USER_ROLE.none,
88
- seq: isNaN(clientSeq) ? 0 : clientSeq,
89
- sessionId: String(header["x-ctx-session-id"] || "none"),
90
- deviceId: String(header["x-ctx-device-id"] || "none"),
91
- deviceName: String(header["x-ctx-device-name"] || "none"),
92
- appVersion: String(header["x-ctx-app-version"] || "none"),
93
- os: String(header["x-ctx-os"] || "none"),
94
- apiVersion: String(header["x-ctx-api-version"] || "none"),
95
- auth: {
96
- token: String(header["authorization"] || header["Authorization"] || "none"),
97
- refresh: String(header["x-ctx-refresh-token"] || "none"),
98
- },
99
- };
100
- }
101
- function buildRes() {
102
- return {
103
- code: "OK",
104
- msg: "OK",
105
- data: {},
106
- };
107
- }
108
- function setResMeta(ctx) {
109
- const meta = ctx.meta;
110
- ctx.res.meta = {
111
- ctxId: ctx.id,
112
- seq: ctx.user.seq,
113
- traceId: meta.monitor.traceId,
114
- spanId: meta.monitor.spanId,
115
- inTime: meta.ts.in,
116
- outTime: meta.ts.out,
117
- execTime: meta.ts.execTime,
118
- owd: meta.ts.owd,
119
- };
120
- }
121
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"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"}