@lyxa.ai/core 1.0.22 → 1.0.23
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/libraries/mongo/models/base/base-coupon.model.js.map +1 -1
- package/dist/libraries/mongo/models/cart-lineitem.model.d.ts +29 -0
- package/dist/libraries/mongo/models/cart-lineitem.model.js +120 -0
- package/dist/libraries/mongo/models/cart-lineitem.model.js.map +1 -0
- package/dist/libraries/mongo/models/cart-perticipant.model.d.ts +22 -0
- package/dist/libraries/mongo/models/cart-perticipant.model.js +104 -0
- package/dist/libraries/mongo/models/cart-perticipant.model.js.map +1 -0
- package/dist/libraries/mongo/models/embedded/attribute-item.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/attribute-map.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/business-development-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/charge-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/charge.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/courier-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/currency-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/currency.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/featured-item.mode.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/package.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/parent-document.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/payment-details.model.d.ts +9 -0
- package/dist/libraries/mongo/models/embedded/payment-details.model.js +52 -0
- package/dist/libraries/mongo/models/embedded/payment-details.model.js.map +1 -0
- package/dist/libraries/mongo/models/embedded/payout-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/price-breakdown.model.js +1 -1
- package/dist/libraries/mongo/models/embedded/price-breakdown.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/price.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/product-nutrition.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/referral-discount-config.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/rider-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/service-fee-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/shop-document.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/subscription-summary.model.js.map +1 -1
- package/dist/libraries/mongo/models/index.d.ts +0 -3
- package/dist/libraries/mongo/models/index.js +1 -4
- package/dist/libraries/mongo/models/index.js.map +1 -1
- package/dist/libraries/mongo/models/order-pricing.model.d.ts +18 -0
- package/dist/libraries/mongo/models/order-pricing.model.js +88 -0
- package/dist/libraries/mongo/models/order-pricing.model.js.map +1 -0
- package/dist/libraries/mongo/models/payout.model.js.map +1 -1
- package/dist/libraries/mongo/models/product.model.d.ts +21 -3
- package/dist/libraries/mongo/models/product.model.js +81 -11
- package/dist/libraries/mongo/models/product.model.js.map +1 -1
- package/dist/libraries/mongo/models/shared/duration.model.js.map +1 -1
- package/dist/libraries/mongo/models/transaction.model.js.map +1 -1
- package/dist/libraries/trpc/index.d.ts +99 -9
- package/dist/libraries/trpc/index.js +22 -1
- package/dist/libraries/trpc/index.js.map +1 -1
- package/dist/libraries/trpc/middlewares/auth.d.ts +11 -1
- package/dist/utilities/enum.d.ts +0 -1
- package/dist/utilities/enum.js +0 -1
- package/dist/utilities/enum.js.map +1 -1
- package/dist/utilities/error-handler.js +20 -5
- package/dist/utilities/error-handler.js.map +1 -1
- package/dist/utilities/validation/common-validation.d.ts +110 -110
- package/dist/utilities/validation/common-validation.js +5 -2
- package/dist/utilities/validation/common-validation.js.map +1 -1
- package/dist/utilities/validation/global-validation.d.ts +19 -5
- package/dist/utilities/validation/global-validation.js +33 -13
- package/dist/utilities/validation/global-validation.js.map +1 -1
- package/package.json +1 -1
- package/dist/libraries/mongo/models/areeba-card.model.d.ts +0 -17
- package/dist/libraries/mongo/models/areeba-card.model.js +0 -73
- package/dist/libraries/mongo/models/areeba-card.model.js.map +0 -1
- package/dist/libraries/mongo/models/auth-identity.model.d.ts +0 -8
- package/dist/libraries/mongo/models/auth-identity.model.js +0 -33
- package/dist/libraries/mongo/models/auth-identity.model.js.map +0 -1
- package/dist/libraries/mongo/models/providers/apple-auth-identity.model.d.ts +0 -6
- package/dist/libraries/mongo/models/providers/apple-auth-identity.model.js +0 -25
- package/dist/libraries/mongo/models/providers/apple-auth-identity.model.js.map +0 -1
- package/dist/libraries/mongo/models/providers/email-auth-identity.model.d.ts +0 -9
- package/dist/libraries/mongo/models/providers/email-auth-identity.model.js +0 -36
- package/dist/libraries/mongo/models/providers/email-auth-identity.model.js.map +0 -1
- package/dist/libraries/mongo/models/providers/google-auth-identity.model.d.ts +0 -6
- package/dist/libraries/mongo/models/providers/google-auth-identity.model.js +0 -25
- package/dist/libraries/mongo/models/providers/google-auth-identity.model.js.map +0 -1
- package/dist/libraries/mongo/models/providers/phone-auth-identity.model.d.ts +0 -8
- package/dist/libraries/mongo/models/providers/phone-auth-identity.model.js +0 -31
- package/dist/libraries/mongo/models/providers/phone-auth-identity.model.js.map +0 -1
- package/dist/libraries/mongo/models/providers/referral-code-coupon.mode.d.ts +0 -10
- package/dist/libraries/mongo/models/providers/referral-code-coupon.mode.js +0 -28
- package/dist/libraries/mongo/models/providers/referral-code-coupon.mode.js.map +0 -1
- package/dist/libraries/mongo/models/role.model.ts.d.ts +0 -8
- package/dist/libraries/mongo/models/role.model.ts.js +0 -37
- package/dist/libraries/mongo/models/role.model.ts.js.map +0 -1
- package/dist/libraries/mongo/models/shop-review.d.ts +0 -7
- package/dist/libraries/mongo/models/shop-review.js +0 -28
- package/dist/libraries/mongo/models/shop-review.js.map +0 -1
- package/dist/libraries/mongo/models/zone.model..d.ts +0 -15
- package/dist/libraries/mongo/models/zone.model..js +0 -64
- package/dist/libraries/mongo/models/zone.model..js.map +0 -1
|
@@ -2,14 +2,34 @@ export declare const t: {
|
|
|
2
2
|
_config: import("@trpc/server").RootConfig<{
|
|
3
3
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
4
4
|
meta: object;
|
|
5
|
-
errorShape:
|
|
5
|
+
errorShape: {
|
|
6
|
+
message: string;
|
|
7
|
+
data: {
|
|
8
|
+
stack: undefined;
|
|
9
|
+
path: undefined;
|
|
10
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
11
|
+
httpStatus: number;
|
|
12
|
+
};
|
|
13
|
+
stack: undefined;
|
|
14
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
15
|
+
};
|
|
6
16
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
7
17
|
}>;
|
|
8
18
|
procedure: import("@trpc/server").ProcedureBuilder<{
|
|
9
19
|
_config: import("@trpc/server").RootConfig<{
|
|
10
20
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
11
21
|
meta: object;
|
|
12
|
-
errorShape:
|
|
22
|
+
errorShape: {
|
|
23
|
+
message: string;
|
|
24
|
+
data: {
|
|
25
|
+
stack: undefined;
|
|
26
|
+
path: undefined;
|
|
27
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
28
|
+
httpStatus: number;
|
|
29
|
+
};
|
|
30
|
+
stack: undefined;
|
|
31
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
32
|
+
};
|
|
13
33
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
14
34
|
}>;
|
|
15
35
|
_ctx_out: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
@@ -23,7 +43,17 @@ export declare const t: {
|
|
|
23
43
|
_config: import("@trpc/server").RootConfig<{
|
|
24
44
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
25
45
|
meta: object;
|
|
26
|
-
errorShape:
|
|
46
|
+
errorShape: {
|
|
47
|
+
message: string;
|
|
48
|
+
data: {
|
|
49
|
+
stack: undefined;
|
|
50
|
+
path: undefined;
|
|
51
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
52
|
+
httpStatus: number;
|
|
53
|
+
};
|
|
54
|
+
stack: undefined;
|
|
55
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
56
|
+
};
|
|
27
57
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
28
58
|
}>;
|
|
29
59
|
_ctx_out: {};
|
|
@@ -36,7 +66,17 @@ export declare const t: {
|
|
|
36
66
|
_config: import("@trpc/server").RootConfig<{
|
|
37
67
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
38
68
|
meta: object;
|
|
39
|
-
errorShape:
|
|
69
|
+
errorShape: {
|
|
70
|
+
message: string;
|
|
71
|
+
data: {
|
|
72
|
+
stack: undefined;
|
|
73
|
+
path: undefined;
|
|
74
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
75
|
+
httpStatus: number;
|
|
76
|
+
};
|
|
77
|
+
stack: undefined;
|
|
78
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
79
|
+
};
|
|
40
80
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
41
81
|
}>;
|
|
42
82
|
_ctx_out: {};
|
|
@@ -49,14 +89,34 @@ export declare const t: {
|
|
|
49
89
|
router: <TProcRouterRecord extends import("@trpc/server").ProcedureRouterRecord>(procedures: TProcRouterRecord) => import("@trpc/server").CreateRouterInner<import("@trpc/server").RootConfig<{
|
|
50
90
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
51
91
|
meta: object;
|
|
52
|
-
errorShape:
|
|
92
|
+
errorShape: {
|
|
93
|
+
message: string;
|
|
94
|
+
data: {
|
|
95
|
+
stack: undefined;
|
|
96
|
+
path: undefined;
|
|
97
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
98
|
+
httpStatus: number;
|
|
99
|
+
};
|
|
100
|
+
stack: undefined;
|
|
101
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
102
|
+
};
|
|
53
103
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
54
104
|
}>, TProcRouterRecord>;
|
|
55
105
|
mergeRouters: typeof import("@trpc/server").mergeRouters;
|
|
56
106
|
createCallerFactory: <TRouter extends import("@trpc/server").Router<import("@trpc/server").AnyRouterDef<import("@trpc/server").RootConfig<{
|
|
57
107
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
58
108
|
meta: object;
|
|
59
|
-
errorShape:
|
|
109
|
+
errorShape: {
|
|
110
|
+
message: string;
|
|
111
|
+
data: {
|
|
112
|
+
stack: undefined;
|
|
113
|
+
path: undefined;
|
|
114
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
115
|
+
httpStatus: number;
|
|
116
|
+
};
|
|
117
|
+
stack: undefined;
|
|
118
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
119
|
+
};
|
|
60
120
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
61
121
|
}>, any>>>(router: TRouter) => import("@trpc/server").RouterCaller<TRouter["_def"]>;
|
|
62
122
|
};
|
|
@@ -64,7 +124,17 @@ export declare const publicProcedure: import("@trpc/server").ProcedureBuilder<{
|
|
|
64
124
|
_config: import("@trpc/server").RootConfig<{
|
|
65
125
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
66
126
|
meta: object;
|
|
67
|
-
errorShape:
|
|
127
|
+
errorShape: {
|
|
128
|
+
message: string;
|
|
129
|
+
data: {
|
|
130
|
+
stack: undefined;
|
|
131
|
+
path: undefined;
|
|
132
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
133
|
+
httpStatus: number;
|
|
134
|
+
};
|
|
135
|
+
stack: undefined;
|
|
136
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
137
|
+
};
|
|
68
138
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
69
139
|
}>;
|
|
70
140
|
_ctx_out: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
@@ -77,12 +147,32 @@ export declare const publicProcedure: import("@trpc/server").ProcedureBuilder<{
|
|
|
77
147
|
export declare const createTRPCRouter: <TProcRouterRecord extends import("@trpc/server").ProcedureRouterRecord>(procedures: TProcRouterRecord) => import("@trpc/server").CreateRouterInner<import("@trpc/server").RootConfig<{
|
|
78
148
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
79
149
|
meta: object;
|
|
80
|
-
errorShape:
|
|
150
|
+
errorShape: {
|
|
151
|
+
message: string;
|
|
152
|
+
data: {
|
|
153
|
+
stack: undefined;
|
|
154
|
+
path: undefined;
|
|
155
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
156
|
+
httpStatus: number;
|
|
157
|
+
};
|
|
158
|
+
stack: undefined;
|
|
159
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
160
|
+
};
|
|
81
161
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
82
162
|
}>, TProcRouterRecord>;
|
|
83
163
|
export declare const createCallerFactory: <TRouter extends import("@trpc/server").Router<import("@trpc/server").AnyRouterDef<import("@trpc/server").RootConfig<{
|
|
84
164
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("./context").LyxaContextParams;
|
|
85
165
|
meta: object;
|
|
86
|
-
errorShape:
|
|
166
|
+
errorShape: {
|
|
167
|
+
message: string;
|
|
168
|
+
data: {
|
|
169
|
+
stack: undefined;
|
|
170
|
+
path: undefined;
|
|
171
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
172
|
+
httpStatus: number;
|
|
173
|
+
};
|
|
174
|
+
stack: undefined;
|
|
175
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
176
|
+
};
|
|
87
177
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
88
178
|
}>, any>>>(router: TRouter) => import("@trpc/server").RouterCaller<TRouter["_def"]>;
|
|
@@ -2,7 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createCallerFactory = exports.createTRPCRouter = exports.publicProcedure = exports.t = void 0;
|
|
4
4
|
const server_1 = require("@trpc/server");
|
|
5
|
-
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.t = server_1.initTRPC.context().create({
|
|
7
|
+
errorFormatter({ shape, error }) {
|
|
8
|
+
let zodErrors = null;
|
|
9
|
+
if (error.code === 'BAD_REQUEST' && error.cause instanceof zod_1.ZodError) {
|
|
10
|
+
const flattened = error.cause.flatten();
|
|
11
|
+
zodErrors = flattened.fieldErrors;
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
...shape,
|
|
15
|
+
message: zodErrors && typeof zodErrors === 'object'
|
|
16
|
+
? Object.values(zodErrors)[0]?.[0] || shape.message
|
|
17
|
+
: shape.message,
|
|
18
|
+
data: {
|
|
19
|
+
...shape.data,
|
|
20
|
+
stack: undefined,
|
|
21
|
+
path: undefined,
|
|
22
|
+
},
|
|
23
|
+
stack: undefined,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
6
27
|
exports.publicProcedure = exports.t.procedure;
|
|
7
28
|
exports.createTRPCRouter = exports.t.router;
|
|
8
29
|
exports.createCallerFactory = exports.t.createCallerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/trpc/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/trpc/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,6BAA+B;AAGlB,QAAA,CAAC,GAAG,iBAAQ,CAAC,OAAO,EAAe,CAAC,MAAM,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,YAAY,cAAQ,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,OAAO;YACN,GAAG,KAAK;YACR,OAAO,EACN,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO;gBACnD,CAAC,CAAC,KAAK,CAAC,OAAO;YACjB,IAAI,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI;gBAEb,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aACf;YAED,KAAK,EAAE,SAAS;SAChB,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,SAAC,CAAC,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,SAAC,CAAC,MAAM,CAAC;AAC5B,QAAA,mBAAmB,GAAG,SAAC,CAAC,mBAAmB,CAAC","sourcesContent":["import { initTRPC } from '@trpc/server';\r\nimport { ZodError } from 'zod';\r\nimport { LyxaContext } from './context';\r\n\r\nexport const t = initTRPC.context<LyxaContext>().create({\r\n\terrorFormatter({ shape, error }) {\r\n\t\tlet zodErrors = null;\r\n\r\n\t\tif (error.code === 'BAD_REQUEST' && error.cause instanceof ZodError) {\r\n\t\t\tconst flattened = error.cause.flatten();\r\n\t\t\tzodErrors = flattened.fieldErrors;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t...shape,\r\n\t\t\tmessage:\r\n\t\t\t\tzodErrors && typeof zodErrors === 'object'\r\n\t\t\t\t\t? Object.values(zodErrors)[0]?.[0] || shape.message\r\n\t\t\t\t\t: shape.message,\r\n\t\t\tdata: {\r\n\t\t\t\t...shape.data,\r\n\r\n\t\t\t\tstack: undefined,\r\n\t\t\t\tpath: undefined,\r\n\t\t\t},\r\n\t\t\t// Prevent stack trace from being returned in the response\r\n\t\t\tstack: undefined,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport const publicProcedure = t.procedure;\r\nexport const createTRPCRouter = t.router;\r\nexport const createCallerFactory = t.createCallerFactory;\r\n"]}
|
|
@@ -8,7 +8,17 @@ export declare function createAuthenticatedProcedure(options: AuthOptions): impo
|
|
|
8
8
|
_config: import("@trpc/server").RootConfig<{
|
|
9
9
|
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("../context").LyxaContextParams;
|
|
10
10
|
meta: object;
|
|
11
|
-
errorShape:
|
|
11
|
+
errorShape: {
|
|
12
|
+
message: string;
|
|
13
|
+
data: {
|
|
14
|
+
stack: undefined;
|
|
15
|
+
path: undefined;
|
|
16
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
17
|
+
httpStatus: number;
|
|
18
|
+
};
|
|
19
|
+
stack: undefined;
|
|
20
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
21
|
+
};
|
|
12
22
|
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
13
23
|
}>;
|
|
14
24
|
_meta: object;
|
package/dist/utilities/enum.d.ts
CHANGED
package/dist/utilities/enum.js
CHANGED
|
@@ -156,7 +156,6 @@ var ProductDietaryType;
|
|
|
156
156
|
ProductDietaryType["LOW_CAL"] = "low_cal";
|
|
157
157
|
ProductDietaryType["VEGETARIAN"] = "vegetarian";
|
|
158
158
|
ProductDietaryType["VEGAN"] = "vegan";
|
|
159
|
-
ProductDietaryType["GLUE_FREE"] = "glue_free";
|
|
160
159
|
ProductDietaryType["KETO"] = "keto";
|
|
161
160
|
ProductDietaryType["LACTOSE_FREE"] = "lactose_free";
|
|
162
161
|
ProductDietaryType["HIGH_PROTEIN"] = "high_protein";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":"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","sourcesContent":["export enum Status {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n}\r\n\r\nexport enum ItemType {\r\n\tFOOD = 'food',\r\n\tGROCERY = 'grocery',\r\n\tPHARMACY = 'pharmacy',\r\n\tCOFFEE = 'coffee',\r\n\tFLOWER = 'flower',\r\n\tPET = 'pet',\r\n\tHEALTHY_CORNER = 'healthy_corner',\r\n}\r\n\r\nexport enum WeekDay {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6,\r\n}\r\n\r\nexport enum WorkStatus {\r\n\tOPEN = 'open',\r\n\tCLOSED = 'closed',\r\n\tFULL_DAY = 'full_day',\r\n}\r\n\r\nexport enum HolidayWorkStatus {\r\n\tCLOSED = WorkStatus.CLOSED,\r\n\tFULL_DAY = WorkStatus.FULL_DAY,\r\n}\r\n\r\nexport enum ValueType {\r\n\tPERCENTAGE = 'percentage',\r\n\tFIXED = 'fixed',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n\tCASH = 'cash',\r\n\tCARD = 'card',\r\n}\r\n\r\nexport enum PaymentStatus {\r\n\tPAID = 'paid',\r\n\tPENDING = 'pending',\r\n\tFAILED = 'failed',\r\n\tREFUNDED = 'refunded',\r\n\tPARTIALLY_REFUNDED = 'partially_refunded',\r\n}\r\n\r\nexport enum PaidCurrency {\r\n\tBASE = 'base',\r\n\tSECONDARY = 'secondary',\r\n\tMIXED = 'mixed',\r\n}\r\n\r\nexport enum SubscriptionPackage {\r\n\tMONTHLY = 'monthly',\r\n\tYEARLY = 'yearly',\r\n}\r\n\r\nexport enum SubscriptionStatus {\r\n\tONGOING = 'ongoing',\r\n\tEXPIRED = 'expired',\r\n}\r\n\r\nexport enum RatingAccountType {\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum GeoLocationType {\r\n\tPOINT = 'point',\r\n\tPOLYGON = 'polygon',\r\n}\r\n\r\nexport enum UpdatedField {\r\n\tMAX_TOTAL_EST_ITEMS_PRICE = 'max_total_est_items_price',\r\n\tMAX_DISTANCE = 'max_distance',\r\n\tDAILY_WORKING_HOURS = 'daily_working_hours',\r\n\tBOB_CASH_SETTLEMENT_LIMIT = 'bob_cash_settlement_limit',\r\n\tTIPS = 'tips',\r\n\tEQUIPMENTS = 'equipments',\r\n\tMONTHLY_SHOP_TARGET = 'monthly_shop_target',\r\n\tMONTHLY_REWARD_PRIZE = 'monthly_reward_prize',\r\n\tBASE_CURRENCY = 'base_currency',\r\n\tSECONDARY_CURRENCY = 'secondary_currency',\r\n\tIS_DUAL_CURRENCY_ENABLED = 'is_dual_currency_enabled',\r\n\tEXCHANGE_RATE = 'exchange_rate',\r\n\tISSUANCE_DAY = 'issuance_day',\r\n\tOVER_DUE_PERIODS = 'over_due_periods',\r\n\tPAY_LIMIT_FOR_USER = 'pay_limit_for_user',\r\n\tVAT_PERCENTAGE = 'vat_percentage',\r\n\tRIDER_SEARCH_RANGES = 'rider_search_ranges',\r\n\tNEAR_BY_SHOP_DISTANCE = 'near_by_shop_distance',\r\n\tNEAR_BY_SHOP_DISTANCE_IN_HOME_SCREEN = 'near_by_shop_distance_in_home_screen',\r\n\tUNITS = 'units',\r\n\tCURRENCY_SETTING = 'currency_setting',\r\n\tPAYMENT_METHODS = 'payment_methods',\r\n\tIS_GROUND_ORDER_ENABLED = 'is_ground_order_enabled',\r\n\tCUSTOMER_SUPPORT_PHONE_NUMBER = 'customer_support_phone_number',\r\n}\r\n\r\nexport enum SectionType {\r\n\tSTORE_PUNCHES = 'store_punches',\r\n\tNEARBY_RESTAURANT = 'nearby_restaurant',\r\n\tNEARBY_GROCERY = 'nearby_grocery',\r\n\tNEARBY_PHARMACY = 'nearby_pharmacy',\r\n\tDISCOUNT = 'discount',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tCRAZY_OFFER_SHOPS = 'crazy_offer_shops',\r\n\tORDER_AGAIN = 'order_again',\r\n\tFEATURED = 'featured',\r\n\tLOVE = 'love',\r\n\tAUTHENTIC_BEIRUT = 'authentic_beirut',\r\n\tNEAR_ME = 'near_me',\r\n}\r\n\r\nexport enum CoreAuthIdentityType {\r\n\tEMAIL = 'email',\r\n\tPHONE = 'phone',\r\n\tGOOGLE = 'google',\r\n\tAPPLE = 'apple',\r\n}\r\n\r\nexport enum ProductType {\r\n\tMEAT = 'meat',\r\n\tCHICKEN = 'chicken',\r\n\tFISH = 'fish',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tOTHER = 'other',\r\n}\r\n\r\nexport enum PriceOption {\r\n\tSINGLE_PRICE = 'single_price',\r\n\tPRICE_PER_UNIT = 'price_per_unit',\r\n\tPRICE_PER_PORTION = 'price_per_portion',\r\n}\r\n\r\nexport enum AttributeItemSelectionType {\r\n\tSINGLE = 'single',\r\n\tMULTIPLE = 'multiple',\r\n}\r\n\r\nexport enum ProductDietaryType {\r\n\tGLUTEN_FREE = 'gluten_free',\r\n\tLOW_CAL = 'low_cal',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tVEGAN = 'vegan',\r\n\tGLUE_FREE = 'glue_free',\r\n\tKETO = 'keto',\r\n\tLACTOSE_FREE = 'lactose_free',\r\n\tHIGH_PROTEIN = 'high_protein',\r\n}\r\n\r\nexport enum DishCategory {\r\n\tBREAKFAST = 'breakfast',\r\n\tLUNCH = 'lunch',\r\n\tDINNER = 'dinner',\r\n\tSNACKS = 'snacks',\r\n}\r\n\r\nexport enum NotificationAccountType {\r\n\tUSER = 'user',\r\n\tPARENT = 'parent',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n\tADMIN = 'admin',\r\n\tCUSTOMER_SERVICE = 'customer_service',\r\n}\r\n\r\nexport enum ClickType {\r\n\tCLICKABLE_URL = 'clickable_url',\r\n\tCLICKABLE_ORDER = 'clickable_order',\r\n\tCLICKABLE_SHOP = 'clickable_shop',\r\n\tCLICKABLE_PRODUCT = 'clickable_product',\r\n\tCLICKABLE_LIST_CONTAINER = 'clickable_list_container',\r\n\tCLICKABLE_PAYOUT = 'clickable_payout',\r\n\tCLICKABLE_BOB_FINANCE = 'clickable_bob_finance',\r\n\tCLICKABLE_REQUEST_AREA = 'clickable_request_area',\r\n}\r\n\r\nexport enum ChargeType {\r\n\tGLOBAL = 'global',\r\n\tCUSTOM = 'custom',\r\n}\r\n\r\nexport enum ShopOnlineStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum ShopRole {\r\n\tPARENT = 'parent',\r\n\tPARENT_ORDER_MANAGER = 'parent_order_manager',\r\n\tSHOP = 'shop',\r\n\tSHOP_ORDER_MANAGER = 'shop_order_manager',\r\n}\r\n\r\nexport enum BannerClickType {\r\n\tLINK = 'link',\r\n\tSHOP = 'shop',\r\n\tPRODUCT = 'product',\r\n\tLIST_CONTAINER = 'list_container',\r\n\tPLUS = 'plus',\r\n}\r\n\r\nexport enum BannerLinkType {\r\n\tURL = 'url',\r\n\tAPP_ROUTE = 'app-route',\r\n}\r\n\r\nexport enum BannerUserType {\r\n\tALL = 'all',\r\n\tPLUS = 'plus',\r\n\tNORMAL = 'normal',\r\n}\r\n\r\nexport enum CounterType {\r\n\tORDER = 'order',\r\n\tCRM_NUMBER = 'crm_number',\r\n\tshop = 'shop',\r\n}\r\n\r\nexport enum FaqAccountType {\r\n\tUSER = 'user',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum ZoneStatus {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum BobAccountType {\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum BobSettlementType {\r\n\tSETTLE_CASH = 'settle_cash',\r\n\tSETTLE_PAYOUT = 'settle_Payout',\r\n}\r\n\r\nexport enum BobSettlementStatus {\r\n\tNOT_PAID = 'not_paid',\r\n\tPAID = 'paid',\r\n\tREVOKED = 'revoked',\r\n}\r\n\r\nexport enum BobModel {\r\n\tC2B = 'C2B',\r\n\tB2C = 'B2C',\r\n}\r\n\r\nexport enum BobType {\r\n\tINWARD = 'inward',\r\n\tOUTWARD = 'outward',\r\n}\r\n\r\nexport enum CouponType {\r\n\tGLOBAL = 'global',\r\n\tINDIVIDUAL_STORE = 'individual_store',\r\n\tINDIVIDUAL_USER = 'individual_user',\r\n\tCUSTOM_COUPON = 'custom_coupon',\r\n\tREFERRAL_CODE = 'referral_code',\r\n\tREFERRAL_REWARD = 'referral_reward',\r\n}\r\n\r\nexport enum CouponExpirationReason {\r\n\tDURATION = 'duration',\r\n\tSPEND_LIMIT = 'spendLimit',\r\n\tTOTAL_ORDER_LIMIT = 'totalOrderLimit',\r\n}\r\n\r\nexport enum FavouriteType {\r\n\tPRODUCT = 'product',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum MarketingType {\r\n\tDISCOUNT = 'discount',\r\n\tBUY1GET1 = 'buy1get1',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tFEATURED = 'featured',\r\n\tLOYALTY_POINT = 'loyalty_point',\r\n\tPUNCH_MARKETING = 'punch_marketing',\r\n}\r\n\r\nexport enum MarketingStatus {\r\n\tACTIVE = 'active',\r\n\tPAUSED = 'paused',\r\n\tEXPIRED = 'expired',\r\n\tDELETED = 'deleted',\r\n}\r\n\r\nexport enum AdminRole {\r\n\tSUPER_ADMIN = 'super_admin',\r\n\tGENERAL_MANAGER = 'general_manager',\r\n\tORDER_MANAGEMENT_MANAGER = 'order_management_lead',\r\n\tORDER_MANAGEMENT_AGENT = 'order_management_agent',\r\n\tACCOUNT_MANAGER = 'account_manager',\r\n\tBUSINESS_DEVELOPMENT_EXECUTIVE = 'business_development_executive',\r\n\tACCOUNTING = 'accounting',\r\n\tMARKETING_MANAGER = 'marketing_manager',\r\n}\r\n\r\nexport enum CartStatus {\r\n\tACTIVE = 'active',\r\n\tLOCKED = 'locked',\r\n\tSUBMITTED = 'submitted',\r\n}\r\n\r\nexport enum PaymentPreference {\r\n\tPAY_FOR_EVERYONE = 'pay_for_everyone',\r\n\tPAY_FOR_THEMSELVES = 'pay_for_themselves',\r\n}\r\n\r\nexport enum CardType {\r\n\tAREEBA = 'areeba',\r\n}\r\n\r\nexport enum CardUserType {\r\n\tPARENT = 'parent',\r\n\tADMIN = 'admin',\r\n\tUSER = 'user',\r\n}\r\n\r\nexport enum AreebaCardStatus {\r\n\tPENDING = 'pending',\r\n\tACTIVE = 'active',\r\n}\r\n\r\nexport enum LiveStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n}\r\n\r\nexport enum CreatedBy {\r\n\tADMIN = 'admin',\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum ShiftType {\r\n\tDAY = 'day',\r\n\tNIGHT = 'night',\r\n}\r\n\r\nexport enum RiderType {\r\n\tSHOP_RIDER = 'shop_rider',\r\n\tLYXA_RIDER = 'lyxa_rider',\r\n}\r\n\r\nexport enum Language {\r\n\tEN = 'en',\r\n\tAR = 'ar',\r\n}\r\n\r\nexport enum OrderType {\r\n\tREGULAR = 'regular',\r\n\tCOURIER = 'courier',\r\n}\r\n\r\nexport enum RegularOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tPREPARING = 'preparing',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum CourierOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum DeliveryStatus {\r\n\tPENDING = 'pending',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum OrderCancelBy {\r\n\tUSER = 'user',\r\n\tADMIN = 'admin',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum CourierServiceType {\r\n\tDELIVERY_ONLY = 'delivery_only',\r\n\tPURCHASE_AND_DELIVER = 'purchase_and_deliver',\r\n}\r\n\r\nexport enum RiderAssignmentStatus {\r\n\tREQUESTED = 'requested',\r\n\tASSIGNED = 'assigned',\r\n\tREJECTED = 'rejected',\r\n\tCANCELED = 'canceled',\r\n}\r\n\r\nexport enum ZoneGeometryType {\r\n\tPOLYGON = 'Polygon',\r\n}\r\n\r\nexport enum WorkingHourSettingsType {\r\n\tGLOBAL = \"Global\",\r\n\tSHOP = \"Shop\"\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":"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","sourcesContent":["export enum Status {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n}\r\n\r\nexport enum ItemType {\r\n\tFOOD = 'food',\r\n\tGROCERY = 'grocery',\r\n\tPHARMACY = 'pharmacy',\r\n\tCOFFEE = 'coffee',\r\n\tFLOWER = 'flower',\r\n\tPET = 'pet',\r\n\tHEALTHY_CORNER = 'healthy_corner',\r\n}\r\n\r\nexport enum WeekDay {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6,\r\n}\r\n\r\nexport enum WorkStatus {\r\n\tOPEN = 'open',\r\n\tCLOSED = 'closed',\r\n\tFULL_DAY = 'full_day',\r\n}\r\n\r\nexport enum HolidayWorkStatus {\r\n\tCLOSED = WorkStatus.CLOSED,\r\n\tFULL_DAY = WorkStatus.FULL_DAY,\r\n}\r\n\r\nexport enum ValueType {\r\n\tPERCENTAGE = 'percentage',\r\n\tFIXED = 'fixed',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n\tCASH = 'cash',\r\n\tCARD = 'card',\r\n}\r\n\r\nexport enum PaymentStatus {\r\n\tPAID = 'paid',\r\n\tPENDING = 'pending',\r\n\tFAILED = 'failed',\r\n\tREFUNDED = 'refunded',\r\n\tPARTIALLY_REFUNDED = 'partially_refunded',\r\n}\r\n\r\nexport enum PaidCurrency {\r\n\tBASE = 'base',\r\n\tSECONDARY = 'secondary',\r\n\tMIXED = 'mixed',\r\n}\r\n\r\nexport enum SubscriptionPackage {\r\n\tMONTHLY = 'monthly',\r\n\tYEARLY = 'yearly',\r\n}\r\n\r\nexport enum SubscriptionStatus {\r\n\tONGOING = 'ongoing',\r\n\tEXPIRED = 'expired',\r\n}\r\n\r\nexport enum RatingAccountType {\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum GeoLocationType {\r\n\tPOINT = 'point',\r\n\tPOLYGON = 'polygon',\r\n}\r\n\r\nexport enum UpdatedField {\r\n\tMAX_TOTAL_EST_ITEMS_PRICE = 'max_total_est_items_price',\r\n\tMAX_DISTANCE = 'max_distance',\r\n\tDAILY_WORKING_HOURS = 'daily_working_hours',\r\n\tBOB_CASH_SETTLEMENT_LIMIT = 'bob_cash_settlement_limit',\r\n\tTIPS = 'tips',\r\n\tEQUIPMENTS = 'equipments',\r\n\tMONTHLY_SHOP_TARGET = 'monthly_shop_target',\r\n\tMONTHLY_REWARD_PRIZE = 'monthly_reward_prize',\r\n\tBASE_CURRENCY = 'base_currency',\r\n\tSECONDARY_CURRENCY = 'secondary_currency',\r\n\tIS_DUAL_CURRENCY_ENABLED = 'is_dual_currency_enabled',\r\n\tEXCHANGE_RATE = 'exchange_rate',\r\n\tISSUANCE_DAY = 'issuance_day',\r\n\tOVER_DUE_PERIODS = 'over_due_periods',\r\n\tPAY_LIMIT_FOR_USER = 'pay_limit_for_user',\r\n\tVAT_PERCENTAGE = 'vat_percentage',\r\n\tRIDER_SEARCH_RANGES = 'rider_search_ranges',\r\n\tNEAR_BY_SHOP_DISTANCE = 'near_by_shop_distance',\r\n\tNEAR_BY_SHOP_DISTANCE_IN_HOME_SCREEN = 'near_by_shop_distance_in_home_screen',\r\n\tUNITS = 'units',\r\n\tCURRENCY_SETTING = 'currency_setting',\r\n\tPAYMENT_METHODS = 'payment_methods',\r\n\tIS_GROUND_ORDER_ENABLED = 'is_ground_order_enabled',\r\n\tCUSTOMER_SUPPORT_PHONE_NUMBER = 'customer_support_phone_number',\r\n}\r\n\r\nexport enum SectionType {\r\n\tSTORE_PUNCHES = 'store_punches',\r\n\tNEARBY_RESTAURANT = 'nearby_restaurant',\r\n\tNEARBY_GROCERY = 'nearby_grocery',\r\n\tNEARBY_PHARMACY = 'nearby_pharmacy',\r\n\tDISCOUNT = 'discount',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tCRAZY_OFFER_SHOPS = 'crazy_offer_shops',\r\n\tORDER_AGAIN = 'order_again',\r\n\tFEATURED = 'featured',\r\n\tLOVE = 'love',\r\n\tAUTHENTIC_BEIRUT = 'authentic_beirut',\r\n\tNEAR_ME = 'near_me',\r\n}\r\n\r\nexport enum CoreAuthIdentityType {\r\n\tEMAIL = 'email',\r\n\tPHONE = 'phone',\r\n\tGOOGLE = 'google',\r\n\tAPPLE = 'apple',\r\n}\r\n\r\nexport enum ProductType {\r\n\tMEAT = 'meat',\r\n\tCHICKEN = 'chicken',\r\n\tFISH = 'fish',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tOTHER = 'other',\r\n}\r\n\r\nexport enum PriceOption {\r\n\tSINGLE_PRICE = 'single_price',\r\n\tPRICE_PER_UNIT = 'price_per_unit',\r\n\tPRICE_PER_PORTION = 'price_per_portion',\r\n}\r\n\r\nexport enum AttributeItemSelectionType {\r\n\tSINGLE = 'single',\r\n\tMULTIPLE = 'multiple',\r\n}\r\n\r\nexport enum ProductDietaryType {\r\n\tGLUTEN_FREE = 'gluten_free',\r\n\tLOW_CAL = 'low_cal',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tVEGAN = 'vegan',\r\n\tKETO = 'keto',\r\n\tLACTOSE_FREE = 'lactose_free',\r\n\tHIGH_PROTEIN = 'high_protein',\r\n}\r\n\r\nexport enum DishCategory {\r\n\tBREAKFAST = 'breakfast',\r\n\tLUNCH = 'lunch',\r\n\tDINNER = 'dinner',\r\n\tSNACKS = 'snacks',\r\n}\r\n\r\nexport enum NotificationAccountType {\r\n\tUSER = 'user',\r\n\tPARENT = 'parent',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n\tADMIN = 'admin',\r\n\tCUSTOMER_SERVICE = 'customer_service',\r\n}\r\n\r\nexport enum ClickType {\r\n\tCLICKABLE_URL = 'clickable_url',\r\n\tCLICKABLE_ORDER = 'clickable_order',\r\n\tCLICKABLE_SHOP = 'clickable_shop',\r\n\tCLICKABLE_PRODUCT = 'clickable_product',\r\n\tCLICKABLE_LIST_CONTAINER = 'clickable_list_container',\r\n\tCLICKABLE_PAYOUT = 'clickable_payout',\r\n\tCLICKABLE_BOB_FINANCE = 'clickable_bob_finance',\r\n\tCLICKABLE_REQUEST_AREA = 'clickable_request_area',\r\n}\r\n\r\nexport enum ChargeType {\r\n\tGLOBAL = 'global',\r\n\tCUSTOM = 'custom',\r\n}\r\n\r\nexport enum ShopOnlineStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum ShopRole {\r\n\tPARENT = 'parent',\r\n\tPARENT_ORDER_MANAGER = 'parent_order_manager',\r\n\tSHOP = 'shop',\r\n\tSHOP_ORDER_MANAGER = 'shop_order_manager',\r\n}\r\n\r\nexport enum BannerClickType {\r\n\tLINK = 'link',\r\n\tSHOP = 'shop',\r\n\tPRODUCT = 'product',\r\n\tLIST_CONTAINER = 'list_container',\r\n\tPLUS = 'plus',\r\n}\r\n\r\nexport enum BannerLinkType {\r\n\tURL = 'url',\r\n\tAPP_ROUTE = 'app-route',\r\n}\r\n\r\nexport enum BannerUserType {\r\n\tALL = 'all',\r\n\tPLUS = 'plus',\r\n\tNORMAL = 'normal',\r\n}\r\n\r\nexport enum CounterType {\r\n\tORDER = 'order',\r\n\tCRM_NUMBER = 'crm_number',\r\n\tshop = 'shop',\r\n}\r\n\r\nexport enum FaqAccountType {\r\n\tUSER = 'user',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum ZoneStatus {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum BobAccountType {\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum BobSettlementType {\r\n\tSETTLE_CASH = 'settle_cash',\r\n\tSETTLE_PAYOUT = 'settle_Payout',\r\n}\r\n\r\nexport enum BobSettlementStatus {\r\n\tNOT_PAID = 'not_paid',\r\n\tPAID = 'paid',\r\n\tREVOKED = 'revoked',\r\n}\r\n\r\nexport enum BobModel {\r\n\tC2B = 'C2B',\r\n\tB2C = 'B2C',\r\n}\r\n\r\nexport enum BobType {\r\n\tINWARD = 'inward',\r\n\tOUTWARD = 'outward',\r\n}\r\n\r\nexport enum CouponType {\r\n\tGLOBAL = 'global',\r\n\tINDIVIDUAL_STORE = 'individual_store',\r\n\tINDIVIDUAL_USER = 'individual_user',\r\n\tCUSTOM_COUPON = 'custom_coupon',\r\n\tREFERRAL_CODE = 'referral_code',\r\n\tREFERRAL_REWARD = 'referral_reward',\r\n}\r\n\r\nexport enum CouponExpirationReason {\r\n\tDURATION = 'duration',\r\n\tSPEND_LIMIT = 'spendLimit',\r\n\tTOTAL_ORDER_LIMIT = 'totalOrderLimit',\r\n}\r\n\r\nexport enum FavouriteType {\r\n\tPRODUCT = 'product',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum MarketingType {\r\n\tDISCOUNT = 'discount',\r\n\tBUY1GET1 = 'buy1get1',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tFEATURED = 'featured',\r\n\tLOYALTY_POINT = 'loyalty_point',\r\n\tPUNCH_MARKETING = 'punch_marketing',\r\n}\r\n\r\nexport enum MarketingStatus {\r\n\tACTIVE = 'active',\r\n\tPAUSED = 'paused',\r\n\tEXPIRED = 'expired',\r\n\tDELETED = 'deleted',\r\n}\r\n\r\nexport enum AdminRole {\r\n\tSUPER_ADMIN = 'super_admin',\r\n\tGENERAL_MANAGER = 'general_manager',\r\n\tORDER_MANAGEMENT_MANAGER = 'order_management_lead',\r\n\tORDER_MANAGEMENT_AGENT = 'order_management_agent',\r\n\tACCOUNT_MANAGER = 'account_manager',\r\n\tBUSINESS_DEVELOPMENT_EXECUTIVE = 'business_development_executive',\r\n\tACCOUNTING = 'accounting',\r\n\tMARKETING_MANAGER = 'marketing_manager',\r\n}\r\n\r\nexport enum CartStatus {\r\n\tACTIVE = 'active',\r\n\tLOCKED = 'locked',\r\n\tSUBMITTED = 'submitted',\r\n}\r\n\r\nexport enum PaymentPreference {\r\n\tPAY_FOR_EVERYONE = 'pay_for_everyone',\r\n\tPAY_FOR_THEMSELVES = 'pay_for_themselves',\r\n}\r\n\r\nexport enum CardType {\r\n\tAREEBA = 'areeba',\r\n}\r\n\r\nexport enum CardUserType {\r\n\tPARENT = 'parent',\r\n\tADMIN = 'admin',\r\n\tUSER = 'user',\r\n}\r\n\r\nexport enum AreebaCardStatus {\r\n\tPENDING = 'pending',\r\n\tACTIVE = 'active',\r\n}\r\n\r\nexport enum LiveStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n}\r\n\r\nexport enum CreatedBy {\r\n\tADMIN = 'admin',\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum ShiftType {\r\n\tDAY = 'day',\r\n\tNIGHT = 'night',\r\n}\r\n\r\nexport enum RiderType {\r\n\tSHOP_RIDER = 'shop_rider',\r\n\tLYXA_RIDER = 'lyxa_rider',\r\n}\r\n\r\nexport enum Language {\r\n\tEN = 'en',\r\n\tAR = 'ar',\r\n}\r\n\r\nexport enum OrderType {\r\n\tREGULAR = 'regular',\r\n\tCOURIER = 'courier',\r\n}\r\n\r\nexport enum RegularOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tPREPARING = 'preparing',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum CourierOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum DeliveryStatus {\r\n\tPENDING = 'pending',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum OrderCancelBy {\r\n\tUSER = 'user',\r\n\tADMIN = 'admin',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum CourierServiceType {\r\n\tDELIVERY_ONLY = 'delivery_only',\r\n\tPURCHASE_AND_DELIVER = 'purchase_and_deliver',\r\n}\r\n\r\nexport enum RiderAssignmentStatus {\r\n\tREQUESTED = 'requested',\r\n\tASSIGNED = 'assigned',\r\n\tREJECTED = 'rejected',\r\n\tCANCELED = 'canceled',\r\n}\r\n\r\nexport enum ZoneGeometryType {\r\n\tPOLYGON = 'Polygon',\r\n}\r\n\r\nexport enum WorkingHourSettingsType {\r\n\tGLOBAL = \"Global\",\r\n\tSHOP = \"Shop\"\r\n}\r\n"]}
|
|
@@ -43,11 +43,26 @@ class ErrorHandler {
|
|
|
43
43
|
throw error;
|
|
44
44
|
}
|
|
45
45
|
if (error instanceof zod_1.ZodError) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
try {
|
|
47
|
+
console.log('ZodError:', error.flatten());
|
|
48
|
+
const formatted = error.errors.map(e => ({
|
|
49
|
+
field: e.path.join('.'),
|
|
50
|
+
message: e.message,
|
|
51
|
+
}));
|
|
52
|
+
throw new server_1.TRPCError({
|
|
53
|
+
code: 'BAD_REQUEST',
|
|
54
|
+
message: 'Validation error',
|
|
55
|
+
cause: formatted,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
console.error('Error while processing ZodError:', err);
|
|
60
|
+
throw new server_1.TRPCError({
|
|
61
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
62
|
+
message: 'Error processing validation error',
|
|
63
|
+
cause: err,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
51
66
|
}
|
|
52
67
|
if (error instanceof mongodb_1.MongoNetworkError) {
|
|
53
68
|
throw new server_1.TRPCError({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"/","sources":["utilities/error-handler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * @fileoverview Error handling utility for TRPC and MongoDB operations.\r\n * Provides centralized error handling, logging, and retry mechanisms.\r\n */\r\n\r\nimport { TRPCError } from '@trpc/server';\r\nimport { MongoServerError, MongoError, MongoNetworkError } from 'mongodb';\r\nimport { ZodError } from 'zod';\r\n\r\n/**\r\n * A utility class for handling various types of errors in a TRPC-MongoDB application.\r\n * Provides error transformation, logging, and retry mechanisms.\r\n */\r\nexport class ErrorHandler {\r\n\t/**\r\n\t * Configuration options for error handling behavior\r\n\t * @private\r\n\t */\r\n\tprivate static readonly CONFIG = {\r\n\t\t/** Whether to log errors to console */\r\n\t\tshouldLogErrors: true,\r\n\t\t/** Maximum number of stack trace lines to include in logs */\r\n\t\tmaxStackTraceLines: 10,\r\n\t\t/** Set of error codes that are considered retryable */\r\n\t\tretryableErrors: new Set(['ECONNRESET', 'ECONNREFUSED', 'ETIMEDOUT', 'EPIPE']),\r\n\t};\r\n\r\n\t/**\r\n\t * Mapping of MongoDB error codes to TRPC error types and messages\r\n\t * @private\r\n\t */\r\n\tprivate static readonly MONGO_ERROR_CODES: Record<\r\n\t\tnumber,\r\n\t\t{\r\n\t\t\tcode: TRPCError['code'];\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t> = {\r\n\t\t11000: { code: 'CONFLICT', message: 'Duplicate key error: A record with this value already exists.' },\r\n\t\t11001: { code: 'CONFLICT', message: 'Duplicate key error on index update.' },\r\n\t\t121: { code: 'BAD_REQUEST', message: 'Document validation failed.' },\r\n\t\t7: { code: 'INTERNAL_SERVER_ERROR', message: 'Not primary - database is in recovery mode.' },\r\n\t\t89: { code: 'FORBIDDEN', message: 'Unauthorized operation attempted.' },\r\n\t\t91: { code: 'TIMEOUT', message: 'Operation timeout exceeded.' },\r\n\t\t189: { code: 'BAD_REQUEST', message: 'Invalid modification - document would exceed size limit.' },\r\n\t\t50: { code: 'INTERNAL_SERVER_ERROR', message: 'Database execution error.' },\r\n\t};\r\n\r\n\t/**\r\n\t * Logs error information with metadata and stack trace\r\n\t * @private\r\n\t * @param error - The error to log\r\n\t * @param context - Additional context information for the error\r\n\t */\r\n\tprivate static logError(error: unknown, context: Record<string, unknown> = {}): void {\r\n\t\tif (!this.CONFIG.shouldLogErrors) return;\r\n\r\n\t\tconst errorMeta = this.extractErrorMetadata(error);\r\n\t\tconst timestamp = new Date().toISOString();\r\n\r\n\t\tconst logData = {\r\n\t\t\ttimestamp,\r\n\t\t\ttype: errorMeta.type,\r\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\r\n\t\t\tstack:\r\n\t\t\t\terror instanceof Error\r\n\t\t\t\t\t? error.stack?.split('\\n').slice(0, this.CONFIG.maxStackTraceLines).join('\\n')\r\n\t\t\t\t\t: undefined,\r\n\t\t\tcontext,\r\n\t\t\tmetadata: errorMeta,\r\n\t\t};\r\n\r\n\t\tconsole.error('[ErrorHandler]:', JSON.stringify(logData, null, 2));\r\n\t}\r\n\r\n\t/**\r\n\t * Main error handling method that transforms various error types into TRPC errors\r\n\t * @param error - The error to handle\r\n\t * @param customMessage - Optional custom error message\r\n\t * @param context - Additional context information\r\n\t * @throws {TRPCError} Transformed error with appropriate error code and message\r\n\t */\r\n\tpublic static handleError(\r\n\t\terror: unknown,\r\n\t\tcustomMessage = 'An unexpected error occurred',\r\n\t\tcontext: Record<string, unknown> = {}\r\n\t): never {\r\n\t\tthis.logError(error, context);\r\n\r\n\t\tif (error instanceof TRPCError) {\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tif (error instanceof ZodError) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'BAD_REQUEST',\r\n\t\t\t\tmessage: 'Validation error',\r\n\t\t\t\tcause: error.flatten(),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (error instanceof MongoNetworkError) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\t\tmessage: 'Database connection error',\r\n\t\t\t\tcause: error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.isMongoError(error)) {\r\n\t\t\tthrow this.createMongoTRPCError(error);\r\n\t\t}\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: this.mapNodeErrorCode(error),\r\n\t\t\t\tmessage: error.message || customMessage,\r\n\t\t\t\tcause: error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new TRPCError({\r\n\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tmessage: customMessage,\r\n\t\t\tcause: error,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Type guard to check if an error is a MongoDB error\r\n\t * @private\r\n\t * @param error - The error to check\r\n\t * @returns True if the error is a MongoDB error\r\n\t */\r\n\tprivate static isMongoError(error: unknown): error is MongoServerError {\r\n\t\treturn (\r\n\t\t\terror instanceof MongoServerError ||\r\n\t\t\terror instanceof MongoError ||\r\n\t\t\t(typeof error === 'object' &&\r\n\t\t\t\terror !== null &&\r\n\t\t\t\t'code' in error &&\r\n\t\t\t\t'name' in error &&\r\n\t\t\t\t((error as MongoServerError).name === 'MongoServerError' ||\r\n\t\t\t\t\t(error as MongoServerError).name === 'MongoError'))\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a TRPC error from a MongoDB error\r\n\t * @private\r\n\t * @param error - MongoDB error to transform\r\n\t * @returns Transformed TRPC error\r\n\t */\r\n\tprivate static createMongoTRPCError(error: MongoServerError): TRPCError {\r\n\t\tconst errorCode = typeof error.code === 'number' ? error.code : 0;\r\n\t\tconst errorInfo = this.MONGO_ERROR_CODES[errorCode] || {\r\n\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tmessage: `Database error occurred. Code: ${errorCode}`,\r\n\t\t};\r\n\r\n\t\treturn new TRPCError({\r\n\t\t\tcode: errorInfo.code,\r\n\t\t\tmessage: errorInfo.message,\r\n\t\t\tcause: error,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Maps Node.js error codes to TRPC error codes\r\n\t * @private\r\n\t * @param error - Node.js error to map\r\n\t * @returns Appropriate TRPC error code\r\n\t */\r\n\tprivate static mapNodeErrorCode(error: Error): TRPCError['code'] {\r\n\t\tconst nodeErrorMap: Record<string, TRPCError['code']> = {\r\n\t\t\tENOENT: 'NOT_FOUND',\r\n\t\t\tEACCES: 'FORBIDDEN',\r\n\t\t\tECONNREFUSED: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tECONNRESET: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tETIMEDOUT: 'TIMEOUT',\r\n\t\t\tEPIPE: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tENOTFOUND: 'NOT_FOUND',\r\n\t\t\tEINVAL: 'BAD_REQUEST',\r\n\t\t\tEMFILE: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tEPERM: 'FORBIDDEN',\r\n\t\t};\r\n\r\n\t\tconst code = (error as NodeJS.ErrnoException).code;\r\n\t\treturn code ? nodeErrorMap[code] || 'INTERNAL_SERVER_ERROR' : 'INTERNAL_SERVER_ERROR';\r\n\t}\r\n\r\n\t/**\r\n\t * Wraps an async function with error handling\r\n\t * @param fn - Async function to wrap\r\n\t * @param context - Additional context information\r\n\t * @returns Promise resolving to the function's return type\r\n\t * @throws {TRPCError} If the function throws an error\r\n\t */\r\n\tpublic static async wrapAsync<T>(fn: () => Promise<T>, context: Record<string, unknown> = {}): Promise<T> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.handleError(error, undefined, context);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Executes an async function with retry mechanism for transient errors\r\n\t * @param fn - Async function to execute\r\n\t * @param options - Retry configuration options\r\n\t * @returns Promise resolving to the function's return type\r\n\t * @throws {TRPCError} If all retry attempts fail\r\n\t */\r\n\tpublic static async withRetry<T>(\r\n\t\tfn: () => Promise<T>,\r\n\t\toptions: {\r\n\t\t\tmaxAttempts?: number;\r\n\t\t\tdelayMs?: number;\r\n\t\t\tbackoffFactor?: number;\r\n\t\t\tcontext?: Record<string, unknown>;\r\n\t\t} = {}\r\n\t): Promise<T> {\r\n\t\tconst { maxAttempts = 3, delayMs = 1000, backoffFactor = 2, context = {} } = options;\r\n\r\n\t\tlet lastError: unknown;\r\n\t\tfor (let attempt = 1; attempt <= maxAttempts; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn();\r\n\t\t\t} catch (error) {\r\n\t\t\t\tlastError = error;\r\n\r\n\t\t\t\tconst isRetryable = this.isRetryableError(error);\r\n\t\t\t\tconst isLastAttempt = attempt === maxAttempts;\r\n\r\n\t\t\t\tif (!isRetryable || isLastAttempt) {\r\n\t\t\t\t\tthis.handleError(error, undefined, { ...context, attempt });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, delayMs * Math.pow(backoffFactor, attempt - 1)));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow lastError;\r\n\t}\r\n\r\n\t/**\r\n\t * Determines if an error is retryable\r\n\t * @private\r\n\t * @param error - The error to check\r\n\t * @returns True if the error is retryable\r\n\t */\r\n\tprivate static isRetryableError(error: unknown): boolean {\r\n\t\tif (error instanceof MongoNetworkError) return true;\r\n\t\tif (error instanceof Error) {\r\n\t\t\tconst code = (error as NodeJS.ErrnoException).code;\r\n\t\t\treturn code ? this.CONFIG.retryableErrors.has(code) : false;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts metadata from an error for logging and analysis\r\n\t * @param error - The error to extract metadata from\r\n\t * @returns Object containing error type, original error, and additional details\r\n\t */\r\n\tpublic static extractErrorMetadata(error: unknown): {\r\n\t\ttype: string;\r\n\t\toriginalError: unknown;\r\n\t\tdetails?: Record<string, unknown>;\r\n\t} {\r\n\t\tif (error instanceof TRPCError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'TRPCError',\r\n\t\t\t\toriginalError: error.cause ?? error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tcode: error.code,\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof ZodError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'ZodError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: error.flatten(),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof MongoNetworkError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'MongoNetworkError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\tisRetryable: true,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.isMongoError(error)) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'MongoError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tcode: (error as MongoServerError).code,\r\n\t\t\t\t\tcodeName: (error as MongoServerError).codeName,\r\n\t\t\t\t\tkeyPattern: (error as MongoServerError).keyPattern,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'NodeError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tname: error.name,\r\n\t\t\t\t\tcode: (error as NodeJS.ErrnoException).code,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn { type: 'UnknownError', originalError: error };\r\n\t}\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"/","sources":["utilities/error-handler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * @fileoverview Error handling utility for TRPC and MongoDB operations.\r\n * Provides centralized error handling, logging, and retry mechanisms.\r\n */\r\n\r\nimport { TRPCError } from '@trpc/server';\r\nimport { MongoServerError, MongoError, MongoNetworkError } from 'mongodb';\r\nimport { ZodError } from 'zod';\r\n\r\n/**\r\n * A utility class for handling various types of errors in a TRPC-MongoDB application.\r\n * Provides error transformation, logging, and retry mechanisms.\r\n */\r\nexport class ErrorHandler {\r\n\t/**\r\n\t * Configuration options for error handling behavior\r\n\t * @private\r\n\t */\r\n\tprivate static readonly CONFIG = {\r\n\t\t/** Whether to log errors to console */\r\n\t\tshouldLogErrors: true,\r\n\t\t/** Maximum number of stack trace lines to include in logs */\r\n\t\tmaxStackTraceLines: 10,\r\n\t\t/** Set of error codes that are considered retryable */\r\n\t\tretryableErrors: new Set(['ECONNRESET', 'ECONNREFUSED', 'ETIMEDOUT', 'EPIPE']),\r\n\t};\r\n\r\n\t/**\r\n\t * Mapping of MongoDB error codes to TRPC error types and messages\r\n\t * @private\r\n\t */\r\n\tprivate static readonly MONGO_ERROR_CODES: Record<\r\n\t\tnumber,\r\n\t\t{\r\n\t\t\tcode: TRPCError['code'];\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t> = {\r\n\t\t11000: { code: 'CONFLICT', message: 'Duplicate key error: A record with this value already exists.' },\r\n\t\t11001: { code: 'CONFLICT', message: 'Duplicate key error on index update.' },\r\n\t\t121: { code: 'BAD_REQUEST', message: 'Document validation failed.' },\r\n\t\t7: { code: 'INTERNAL_SERVER_ERROR', message: 'Not primary - database is in recovery mode.' },\r\n\t\t89: { code: 'FORBIDDEN', message: 'Unauthorized operation attempted.' },\r\n\t\t91: { code: 'TIMEOUT', message: 'Operation timeout exceeded.' },\r\n\t\t189: { code: 'BAD_REQUEST', message: 'Invalid modification - document would exceed size limit.' },\r\n\t\t50: { code: 'INTERNAL_SERVER_ERROR', message: 'Database execution error.' },\r\n\t};\r\n\r\n\t/**\r\n\t * Logs error information with metadata and stack trace\r\n\t * @private\r\n\t * @param error - The error to log\r\n\t * @param context - Additional context information for the error\r\n\t */\r\n\tprivate static logError(error: unknown, context: Record<string, unknown> = {}): void {\r\n\t\tif (!this.CONFIG.shouldLogErrors) return;\r\n\r\n\t\tconst errorMeta = this.extractErrorMetadata(error);\r\n\t\tconst timestamp = new Date().toISOString();\r\n\r\n\t\tconst logData = {\r\n\t\t\ttimestamp,\r\n\t\t\ttype: errorMeta.type,\r\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\r\n\t\t\tstack:\r\n\t\t\t\terror instanceof Error\r\n\t\t\t\t\t? error.stack?.split('\\n').slice(0, this.CONFIG.maxStackTraceLines).join('\\n')\r\n\t\t\t\t\t: undefined,\r\n\t\t\tcontext,\r\n\t\t\tmetadata: errorMeta,\r\n\t\t};\r\n\r\n\t\tconsole.error('[ErrorHandler]:', JSON.stringify(logData, null, 2));\r\n\t}\r\n\r\n\t/**\r\n\t * Main error handling method that transforms various error types into TRPC errors\r\n\t * @param error - The error to handle\r\n\t * @param customMessage - Optional custom error message\r\n\t * @param context - Additional context information\r\n\t * @throws {TRPCError} Transformed error with appropriate error code and message\r\n\t */\r\n\tpublic static handleError(\r\n\t\terror: unknown,\r\n\t\tcustomMessage = 'An unexpected error occurred',\r\n\t\tcontext: Record<string, unknown> = {}\r\n\t): never {\r\n\t\tthis.logError(error, context);\r\n\r\n\t\tif (error instanceof TRPCError) {\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tif (error instanceof ZodError) {\r\n\t\t\ttry {\r\n\t\t\t\tconsole.log('ZodError:', error.flatten());\r\n\t\t\t\tconst formatted = error.errors.map(e => ({\r\n\t\t\t\t\tfield: e.path.join('.'),\r\n\t\t\t\t\tmessage: e.message,\r\n\t\t\t\t}));\r\n\r\n\t\t\t\tthrow new TRPCError({\r\n\t\t\t\t\tcode: 'BAD_REQUEST',\r\n\t\t\t\t\tmessage: 'Validation error',\r\n\t\t\t\t\tcause: formatted,\r\n\t\t\t\t});\r\n\t\t\t} catch (err) {\r\n\t\t\t\t// Handle any issues with flattening or logging\r\n\t\t\t\tconsole.error('Error while processing ZodError:', err);\r\n\t\t\t\tthrow new TRPCError({\r\n\t\t\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\t\t\tmessage: 'Error processing validation error',\r\n\t\t\t\t\tcause: err,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (error instanceof MongoNetworkError) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\t\tmessage: 'Database connection error',\r\n\t\t\t\tcause: error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.isMongoError(error)) {\r\n\t\t\tthrow this.createMongoTRPCError(error);\r\n\t\t}\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: this.mapNodeErrorCode(error),\r\n\t\t\t\tmessage: error.message || customMessage,\r\n\t\t\t\tcause: error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new TRPCError({\r\n\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tmessage: customMessage,\r\n\t\t\tcause: error,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Type guard to check if an error is a MongoDB error\r\n\t * @private\r\n\t * @param error - The error to check\r\n\t * @returns True if the error is a MongoDB error\r\n\t */\r\n\tprivate static isMongoError(error: unknown): error is MongoServerError {\r\n\t\treturn (\r\n\t\t\terror instanceof MongoServerError ||\r\n\t\t\terror instanceof MongoError ||\r\n\t\t\t(typeof error === 'object' &&\r\n\t\t\t\terror !== null &&\r\n\t\t\t\t'code' in error &&\r\n\t\t\t\t'name' in error &&\r\n\t\t\t\t((error as MongoServerError).name === 'MongoServerError' ||\r\n\t\t\t\t\t(error as MongoServerError).name === 'MongoError'))\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a TRPC error from a MongoDB error\r\n\t * @private\r\n\t * @param error - MongoDB error to transform\r\n\t * @returns Transformed TRPC error\r\n\t */\r\n\tprivate static createMongoTRPCError(error: MongoServerError): TRPCError {\r\n\t\tconst errorCode = typeof error.code === 'number' ? error.code : 0;\r\n\t\tconst errorInfo = this.MONGO_ERROR_CODES[errorCode] || {\r\n\t\t\tcode: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tmessage: `Database error occurred. Code: ${errorCode}`,\r\n\t\t};\r\n\r\n\t\treturn new TRPCError({\r\n\t\t\tcode: errorInfo.code,\r\n\t\t\tmessage: errorInfo.message,\r\n\t\t\tcause: error,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Maps Node.js error codes to TRPC error codes\r\n\t * @private\r\n\t * @param error - Node.js error to map\r\n\t * @returns Appropriate TRPC error code\r\n\t */\r\n\tprivate static mapNodeErrorCode(error: Error): TRPCError['code'] {\r\n\t\tconst nodeErrorMap: Record<string, TRPCError['code']> = {\r\n\t\t\tENOENT: 'NOT_FOUND',\r\n\t\t\tEACCES: 'FORBIDDEN',\r\n\t\t\tECONNREFUSED: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tECONNRESET: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tETIMEDOUT: 'TIMEOUT',\r\n\t\t\tEPIPE: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tENOTFOUND: 'NOT_FOUND',\r\n\t\t\tEINVAL: 'BAD_REQUEST',\r\n\t\t\tEMFILE: 'INTERNAL_SERVER_ERROR',\r\n\t\t\tEPERM: 'FORBIDDEN',\r\n\t\t};\r\n\r\n\t\tconst code = (error as NodeJS.ErrnoException).code;\r\n\t\treturn code ? nodeErrorMap[code] || 'INTERNAL_SERVER_ERROR' : 'INTERNAL_SERVER_ERROR';\r\n\t}\r\n\r\n\t/**\r\n\t * Wraps an async function with error handling\r\n\t * @param fn - Async function to wrap\r\n\t * @param context - Additional context information\r\n\t * @returns Promise resolving to the function's return type\r\n\t * @throws {TRPCError} If the function throws an error\r\n\t */\r\n\tpublic static async wrapAsync<T>(fn: () => Promise<T>, context: Record<string, unknown> = {}): Promise<T> {\r\n\t\ttry {\r\n\t\t\treturn await fn();\r\n\t\t} catch (error) {\r\n\t\t\tthis.handleError(error, undefined, context);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Executes an async function with retry mechanism for transient errors\r\n\t * @param fn - Async function to execute\r\n\t * @param options - Retry configuration options\r\n\t * @returns Promise resolving to the function's return type\r\n\t * @throws {TRPCError} If all retry attempts fail\r\n\t */\r\n\tpublic static async withRetry<T>(\r\n\t\tfn: () => Promise<T>,\r\n\t\toptions: {\r\n\t\t\tmaxAttempts?: number;\r\n\t\t\tdelayMs?: number;\r\n\t\t\tbackoffFactor?: number;\r\n\t\t\tcontext?: Record<string, unknown>;\r\n\t\t} = {}\r\n\t): Promise<T> {\r\n\t\tconst { maxAttempts = 3, delayMs = 1000, backoffFactor = 2, context = {} } = options;\r\n\r\n\t\tlet lastError: unknown;\r\n\t\tfor (let attempt = 1; attempt <= maxAttempts; attempt++) {\r\n\t\t\ttry {\r\n\t\t\t\treturn await fn();\r\n\t\t\t} catch (error) {\r\n\t\t\t\tlastError = error;\r\n\r\n\t\t\t\tconst isRetryable = this.isRetryableError(error);\r\n\t\t\t\tconst isLastAttempt = attempt === maxAttempts;\r\n\r\n\t\t\t\tif (!isRetryable || isLastAttempt) {\r\n\t\t\t\t\tthis.handleError(error, undefined, { ...context, attempt });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, delayMs * Math.pow(backoffFactor, attempt - 1)));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthrow lastError;\r\n\t}\r\n\r\n\t/**\r\n\t * Determines if an error is retryable\r\n\t * @private\r\n\t * @param error - The error to check\r\n\t * @returns True if the error is retryable\r\n\t */\r\n\tprivate static isRetryableError(error: unknown): boolean {\r\n\t\tif (error instanceof MongoNetworkError) return true;\r\n\t\tif (error instanceof Error) {\r\n\t\t\tconst code = (error as NodeJS.ErrnoException).code;\r\n\t\t\treturn code ? this.CONFIG.retryableErrors.has(code) : false;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts metadata from an error for logging and analysis\r\n\t * @param error - The error to extract metadata from\r\n\t * @returns Object containing error type, original error, and additional details\r\n\t */\r\n\tpublic static extractErrorMetadata(error: unknown): {\r\n\t\ttype: string;\r\n\t\toriginalError: unknown;\r\n\t\tdetails?: Record<string, unknown>;\r\n\t} {\r\n\t\tif (error instanceof TRPCError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'TRPCError',\r\n\t\t\t\toriginalError: error.cause ?? error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tcode: error.code,\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof ZodError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'ZodError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: error.flatten(),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof MongoNetworkError) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'MongoNetworkError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\tisRetryable: true,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.isMongoError(error)) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'MongoError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tcode: (error as MongoServerError).code,\r\n\t\t\t\t\tcodeName: (error as MongoServerError).codeName,\r\n\t\t\t\t\tkeyPattern: (error as MongoServerError).keyPattern,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (error instanceof Error) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'NodeError',\r\n\t\t\t\toriginalError: error,\r\n\t\t\t\tdetails: {\r\n\t\t\t\t\tname: error.name,\r\n\t\t\t\t\tcode: (error as NodeJS.ErrnoException).code,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn { type: 'UnknownError', originalError: error };\r\n\t}\r\n}\r\n"]}
|