@venizia/ignis 0.1.1-2 → 0.1.1-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/applications/abstract.d.ts +6 -0
- package/dist/base/applications/abstract.d.ts.map +1 -1
- package/dist/base/applications/abstract.js +19 -0
- package/dist/base/applications/abstract.js.map +1 -1
- package/dist/base/applications/base.d.ts +18 -1
- package/dist/base/applications/base.d.ts.map +1 -1
- package/dist/base/applications/base.js +121 -2
- package/dist/base/applications/base.js.map +1 -1
- package/dist/base/controllers/factory/definition.d.ts +81 -27
- package/dist/base/controllers/factory/definition.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts +17 -4
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.js +109 -59
- package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
- package/dist/base/middlewares/app-error/definition.d.ts +7 -0
- package/dist/base/middlewares/app-error/definition.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/definition.js +9 -1
- package/dist/base/middlewares/app-error/definition.js.map +1 -1
- package/dist/base/middlewares/app-error/types.d.ts +12 -0
- package/dist/base/middlewares/app-error/types.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/zod.handler.d.ts +6 -6
- package/dist/base/middlewares/app-error/zod.handler.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/zod.handler.js +7 -10
- package/dist/base/middlewares/app-error/zod.handler.js.map +1 -1
- package/dist/base/models/common/types.d.ts +9 -3
- package/dist/base/models/common/types.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +9 -3
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +1 -1
- package/dist/components/static-asset/controller/base.definition.d.ts +90 -30
- package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
- package/dist/connectors/postgres/datasources/abstract.d.ts +23 -1
- package/dist/connectors/postgres/datasources/abstract.d.ts.map +1 -1
- package/dist/connectors/postgres/datasources/abstract.js +86 -6
- package/dist/connectors/postgres/datasources/abstract.js.map +1 -1
- package/dist/connectors/search/controllers/definition.d.ts +18 -6
- package/dist/connectors/search/controllers/definition.d.ts.map +1 -1
- package/dist/connectors/search/internal/search-connector-internal.js +1 -1
- package/dist/connectors/search/internal/search-connector-internal.js.map +1 -1
- package/dist/utilities/jsx.utility.d.ts +9 -3
- package/dist/utilities/jsx.utility.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AppErrorMiddleware = void 0;
|
|
4
4
|
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
5
5
|
const request_spy_1 = require("../request-spy");
|
|
6
6
|
const database_handler_1 = require("./database.handler");
|
|
@@ -15,70 +15,120 @@ const DEFAULT_INTERNAL_ERROR_MESSAGE = 'Internal Server Error';
|
|
|
15
15
|
* - Intentional domain error (`getError`) → its own status/message
|
|
16
16
|
* - Anything else → 500 (generic message in production)
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
logger
|
|
23
|
-
|
|
24
|
-
const env = [context.env?.NODE_ENV, NODE_ENV].find(Boolean);
|
|
25
|
-
if (!env) {
|
|
26
|
-
logger.error('[appErrorHandler][%s] INVALID ENV IDENTIFIER | env: %s | path: %s | method: %s | url: %s | Error: %s', requestId, env, context.req.path, context.req.method, context.req.url, error);
|
|
18
|
+
class AppErrorMiddleware extends ignis_helpers_1.BaseHelper {
|
|
19
|
+
constructor(opts) {
|
|
20
|
+
super({ scope: AppErrorMiddleware.name });
|
|
21
|
+
this.rootKey = opts?.rootKey;
|
|
22
|
+
if (opts?.logger) {
|
|
23
|
+
this.logger = opts.logger;
|
|
27
24
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return context.json(rootKey ? { [rootKey]: rs.response } : rs.response, rs.statusCode);
|
|
25
|
+
}
|
|
26
|
+
withRootKey(payload) {
|
|
27
|
+
return this.rootKey ? { [this.rootKey]: payload } : payload;
|
|
28
|
+
}
|
|
29
|
+
/** Fail-closed: an unset or unrecognized env is production. */
|
|
30
|
+
isProduction(opts) {
|
|
31
|
+
const { context, error, requestId } = opts;
|
|
32
|
+
const env = [context.env?.NODE_ENV, process.env.NODE_ENV].find(Boolean);
|
|
33
|
+
if (!env) {
|
|
34
|
+
this.logger.error('[%s] INVALID ENV IDENTIFIER | env: %s | path: %s | method: %s | url: %s | Error: %s', requestId, env, context.req.path, context.req.method, context.req.url, error);
|
|
35
|
+
return true;
|
|
40
36
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
return !ignis_helpers_1.Environment.DEVELOPMENT_ENVS.has(env.toLowerCase());
|
|
38
|
+
}
|
|
39
|
+
classify(opts) {
|
|
40
|
+
const { error, dbError } = opts;
|
|
45
41
|
if (dbError.isClientError) {
|
|
46
|
-
|
|
42
|
+
return definition_1.ApplicationErrorTypes.DATABASE_CLIENT;
|
|
47
43
|
}
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
if ((0, database_handler_1.isRetryableDatabaseError)({ error })) {
|
|
45
|
+
return definition_1.ApplicationErrorTypes.DATABASE_RETRYABLE;
|
|
50
46
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (dbError.isClientError && dbError.message) {
|
|
54
|
-
resolvedMessage = dbError.message;
|
|
47
|
+
if ('statusCode' in error) {
|
|
48
|
+
return definition_1.ApplicationErrorTypes.INTENTIONAL;
|
|
55
49
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
50
|
+
return definition_1.ApplicationErrorTypes.UNEXPECTED;
|
|
51
|
+
}
|
|
52
|
+
/** An ApplicationError's `normalized` is authoritative - a `transform` may have reworded `text`. */
|
|
53
|
+
build(opts) {
|
|
54
|
+
const { error, statusCode, message, messageCode } = opts;
|
|
55
|
+
// Fallback for a FOREIGN error that sets its own code; an ApplicationError reports via `normalized`.
|
|
56
|
+
const code = messageCode ??
|
|
57
|
+
ignis_helpers_1.MessageCode.resolve('messageCode' in error ? error.messageCode : undefined);
|
|
58
|
+
const normalized = 'normalized' in error
|
|
59
|
+
? error.normalized
|
|
60
|
+
: { text: message, code, args: {} };
|
|
61
|
+
return { statusCode, message, normalized };
|
|
62
|
+
}
|
|
63
|
+
resolve(opts) {
|
|
64
|
+
const { error, isProduction } = opts;
|
|
65
|
+
const dbError = (0, database_handler_1.isDatabaseClientError)({ error, isProduction });
|
|
66
|
+
switch (this.classify({ error, dbError })) {
|
|
67
|
+
case definition_1.ApplicationErrorTypes.DATABASE_CLIENT: {
|
|
68
|
+
return this.build({
|
|
69
|
+
error,
|
|
70
|
+
statusCode: ignis_helpers_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
71
|
+
// The fallback is unreachable today; it keeps the driver's raw text from ever surfacing.
|
|
72
|
+
message: dbError.message ?? DEFAULT_INTERNAL_ERROR_MESSAGE,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
case definition_1.ApplicationErrorTypes.DATABASE_RETRYABLE: {
|
|
76
|
+
return this.build({
|
|
77
|
+
error,
|
|
78
|
+
statusCode: ignis_helpers_1.HTTP.ResultCodes.RS_4.Conflict,
|
|
79
|
+
message: definition_1.DATABASE_RETRYABLE_ERROR_MESSAGE,
|
|
80
|
+
messageCode: definition_1.DATABASE_RETRYABLE_ERROR_CODE,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
case definition_1.ApplicationErrorTypes.INTENTIONAL: {
|
|
84
|
+
return this.build({
|
|
85
|
+
error,
|
|
86
|
+
statusCode: error.statusCode,
|
|
87
|
+
message: error.message,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
default: {
|
|
91
|
+
return this.build({
|
|
92
|
+
error,
|
|
93
|
+
statusCode: ignis_helpers_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
94
|
+
// Never leak a raw message - it may carry SQL, schema names or connection details.
|
|
95
|
+
message: isProduction ? DEFAULT_INTERNAL_ERROR_MESSAGE : error.message,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
65
98
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
requestId,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
99
|
+
}
|
|
100
|
+
value() {
|
|
101
|
+
return async (error, context) => {
|
|
102
|
+
const requestId = context.get(request_spy_1.RequestSpyMiddleware.REQUEST_ID_KEY);
|
|
103
|
+
this.logger.error('[%s] REQUEST ERROR | path: %s | method: %s | url: %s | Error: %s', requestId, context.req.path, context.req.method, context.req.url, error);
|
|
104
|
+
const isProduction = this.isProduction({ context, error, requestId });
|
|
105
|
+
if (error.name === 'ZodError') {
|
|
106
|
+
const rs = (0, zod_handler_1.formatZodError)({
|
|
107
|
+
isProduction,
|
|
108
|
+
requestId,
|
|
109
|
+
url: context.req.url,
|
|
110
|
+
path: context.req.path,
|
|
111
|
+
error,
|
|
112
|
+
});
|
|
113
|
+
return context.json(this.withRootKey(rs.response), rs.statusCode);
|
|
114
|
+
}
|
|
115
|
+
const { statusCode, message, normalized } = this.resolve({ error, isProduction });
|
|
116
|
+
const rs = {
|
|
117
|
+
message,
|
|
118
|
+
statusCode,
|
|
119
|
+
normalized,
|
|
120
|
+
requestId,
|
|
121
|
+
extra: 'extra' in error ? error?.extra : undefined,
|
|
122
|
+
details: {
|
|
123
|
+
url: context.req.url,
|
|
124
|
+
path: context.req.path,
|
|
125
|
+
stack: !isProduction ? error.stack : undefined,
|
|
126
|
+
cause: !isProduction ? error.cause : undefined,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
return context.json(this.withRootKey(rs), statusCode);
|
|
78
130
|
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
exports.appErrorHandler = appErrorHandler;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.AppErrorMiddleware = AppErrorMiddleware;
|
|
84
134
|
//# sourceMappingURL=app-error.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.middleware.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/app-error.middleware.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"app-error.middleware.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/app-error.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,4 +56,11 @@ export declare const POSTGRES_RETRYABLE_ERROR_CODES: readonly string[];
|
|
|
56
56
|
/** Safe, generic message + stable code for a retryable DB conflict (never leaks internals). */
|
|
57
57
|
export declare const DATABASE_RETRYABLE_ERROR_MESSAGE = "The request conflicted with a concurrent operation; please retry.";
|
|
58
58
|
export declare const DATABASE_RETRYABLE_ERROR_CODE: string;
|
|
59
|
+
/** The branch a thrown value takes through the handler. */
|
|
60
|
+
export declare class ApplicationErrorTypes {
|
|
61
|
+
static readonly DATABASE_CLIENT = "database-client";
|
|
62
|
+
static readonly DATABASE_RETRYABLE = "database-retryable";
|
|
63
|
+
static readonly INTENTIONAL = "intentional";
|
|
64
|
+
static readonly UNEXPECTED = "unexpected";
|
|
65
|
+
}
|
|
59
66
|
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BrB,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAEnF,yDAAyD;AACzD,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8BjE,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAG3D,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,gCAAgC,sEACwB,CAAC;AACtE,eAAO,MAAM,6BAA6B,QAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BrB,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAEnF,yDAAyD;AACzD,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8BjE,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAG3D,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,gCAAgC,sEACwB,CAAC;AACtE,eAAO,MAAM,6BAA6B,QAAmC,CAAC;AAE9E,2DAA2D;AAC3D,qBAAa,qBAAqB;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,qBAAqB;IACpD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,wBAAwB;IAC1D,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;CAC3C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DATABASE_RETRYABLE_ERROR_CODE = exports.DATABASE_RETRYABLE_ERROR_MESSAGE = exports.POSTGRES_RETRYABLE_ERROR_CODES = exports.DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE = exports.DATABASE_CLIENT_ERROR_MESSAGES = exports.POSTGRES_CLIENT_ERROR_CLASSES = exports.PostgresErrorCodes = void 0;
|
|
3
|
+
exports.ApplicationErrorTypes = exports.DATABASE_RETRYABLE_ERROR_CODE = exports.DATABASE_RETRYABLE_ERROR_MESSAGE = exports.POSTGRES_RETRYABLE_ERROR_CODES = exports.DATABASE_CLIENT_ERROR_FALLBACK_MESSAGE = exports.DATABASE_CLIENT_ERROR_MESSAGES = exports.POSTGRES_CLIENT_ERROR_CLASSES = exports.PostgresErrorCodes = void 0;
|
|
4
4
|
const common_1 = require("../../../common");
|
|
5
5
|
/**
|
|
6
6
|
* PostgreSQL SQLSTATE error codes that represent a CLIENT error (HTTP 400) — i.e. caused by the
|
|
@@ -96,4 +96,12 @@ exports.POSTGRES_RETRYABLE_ERROR_CODES = [
|
|
|
96
96
|
/** Safe, generic message + stable code for a retryable DB conflict (never leaks internals). */
|
|
97
97
|
exports.DATABASE_RETRYABLE_ERROR_MESSAGE = 'The request conflicted with a concurrent operation; please retry.';
|
|
98
98
|
exports.DATABASE_RETRYABLE_ERROR_CODE = common_1.CoreErrorCodes.DATABASE_CONFLICT;
|
|
99
|
+
/** The branch a thrown value takes through the handler. */
|
|
100
|
+
class ApplicationErrorTypes {
|
|
101
|
+
static { this.DATABASE_CLIENT = 'database-client'; }
|
|
102
|
+
static { this.DATABASE_RETRYABLE = 'database-retryable'; }
|
|
103
|
+
static { this.INTENTIONAL = 'intentional'; }
|
|
104
|
+
static { this.UNEXPECTED = 'unexpected'; }
|
|
105
|
+
}
|
|
106
|
+
exports.ApplicationErrorTypes = ApplicationErrorTypes;
|
|
99
107
|
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { TConstValue } from '@venizia/ignis-helpers';
|
|
2
|
+
import type { ApplicationErrorTypes } from './definition';
|
|
1
3
|
export interface IDatabaseError extends Error {
|
|
2
4
|
code?: string;
|
|
3
5
|
cause?: {
|
|
@@ -15,4 +17,14 @@ export interface IZodIssueLike {
|
|
|
15
17
|
expected?: unknown;
|
|
16
18
|
received?: unknown;
|
|
17
19
|
}
|
|
20
|
+
export type TApplicationErrorType = TConstValue<typeof ApplicationErrorTypes>;
|
|
21
|
+
export interface IResolvedApplicationError {
|
|
22
|
+
statusCode: number;
|
|
23
|
+
message: string;
|
|
24
|
+
normalized: {
|
|
25
|
+
text: string;
|
|
26
|
+
code: string;
|
|
27
|
+
args: Record<string, unknown>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
18
30
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3E"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import type { HTTPResponseError } from 'hono/types';
|
|
2
|
-
/**
|
|
3
|
-
* Formats a ZodError into the 422 validation response. Top-level `messageCode`/`message` come from
|
|
4
|
-
* the first issue that defines a custom `params.code`, else the first issue's raw Zod code; the full
|
|
5
|
-
* per-issue list stays under `details.cause`.
|
|
6
|
-
*/
|
|
2
|
+
/** Formats a ZodError into the 422 validation response. */
|
|
7
3
|
export declare const formatZodError: (opts: {
|
|
8
4
|
isProduction: boolean;
|
|
9
5
|
requestId: string;
|
|
@@ -14,8 +10,12 @@ export declare const formatZodError: (opts: {
|
|
|
14
10
|
statusCode: 422;
|
|
15
11
|
response: {
|
|
16
12
|
message: string;
|
|
17
|
-
messageCode: string;
|
|
18
13
|
statusCode: 422;
|
|
14
|
+
normalized: {
|
|
15
|
+
text: string;
|
|
16
|
+
code: string;
|
|
17
|
+
args: {};
|
|
18
|
+
};
|
|
19
19
|
requestId: string;
|
|
20
20
|
details: {
|
|
21
21
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.handler.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBpD
|
|
1
|
+
{"version":3,"file":"zod.handler.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBpD,2DAA2D;AAC3D,eAAO,MAAM,cAAc,GAAI,MAAM;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC;CAClC;;;;;;;;;;;;;;;;;;CAoDA,CAAC"}
|
|
@@ -11,11 +11,7 @@ const extractIssueCode = (opts) => {
|
|
|
11
11
|
}
|
|
12
12
|
return undefined;
|
|
13
13
|
};
|
|
14
|
-
/**
|
|
15
|
-
* Formats a ZodError into the 422 validation response. Top-level `messageCode`/`message` come from
|
|
16
|
-
* the first issue that defines a custom `params.code`, else the first issue's raw Zod code; the full
|
|
17
|
-
* per-issue list stays under `details.cause`.
|
|
18
|
-
*/
|
|
14
|
+
/** Formats a ZodError into the 422 validation response. */
|
|
19
15
|
const formatZodError = (opts) => {
|
|
20
16
|
const { isProduction, requestId, url, path, error } = opts;
|
|
21
17
|
const statusCode = ignis_helpers_1.HTTP.ResultCodes.RS_4.UnprocessableEntity;
|
|
@@ -27,8 +23,7 @@ const formatZodError = (opts) => {
|
|
|
27
23
|
validationErrors = error;
|
|
28
24
|
}
|
|
29
25
|
const issues = Array.isArray(validationErrors) ? validationErrors : null;
|
|
30
|
-
//
|
|
31
|
-
// else fall back to the first issue's raw Zod code; else keep the generic message.
|
|
26
|
+
// Prefer the first issue with a custom `params.code`, else its raw Zod code.
|
|
32
27
|
let messageCode;
|
|
33
28
|
let message = DEFAULT_VALIDATION_MESSAGE;
|
|
34
29
|
if (issues && issues.length > 0) {
|
|
@@ -36,14 +31,16 @@ const formatZodError = (opts) => {
|
|
|
36
31
|
messageCode = extractIssueCode({ issue: primaryIssue }) ?? primaryIssue.code;
|
|
37
32
|
message = primaryIssue.message;
|
|
38
33
|
}
|
|
34
|
+
// A ZodError we could not parse into issues yields no code of its own; the response still
|
|
35
|
+
// carries one, so no error response anywhere is missing the field a client branches on.
|
|
36
|
+
const resolvedMessageCode = ignis_helpers_1.MessageCode.resolve(messageCode);
|
|
39
37
|
return {
|
|
40
38
|
statusCode,
|
|
41
39
|
response: {
|
|
42
40
|
message,
|
|
43
|
-
// A ZodError we could not parse into issues yields no code of its own; the response still
|
|
44
|
-
// carries one, so no error response anywhere is missing the field a client branches on.
|
|
45
|
-
messageCode: ignis_helpers_1.MessageCode.resolve(messageCode),
|
|
46
41
|
statusCode,
|
|
42
|
+
// `args` is empty: a Zod issue carries no interpolation values - per-field detail is in `details.cause`.
|
|
43
|
+
normalized: { text: message, code: resolvedMessageCode, args: {} },
|
|
47
44
|
requestId,
|
|
48
45
|
details: {
|
|
49
46
|
url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.handler.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":";;;AAAA,0DAA2D;AAI3D,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;IAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"zod.handler.js","sourceRoot":"","sources":["../../../../src/base/middlewares/app-error/zod.handler.ts"],"names":[],"mappings":";;;AAAA,0DAA2D;AAI3D,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;IAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,2DAA2D;AACpD,MAAM,cAAc,GAAG,CAAC,IAM9B,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,UAAU,GAAG,oBAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAE7D,IAAI,gBAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,gBAAoC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9F,6EAA6E;IAC7E,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,GAAG,0BAA0B,CAAC;IAEzC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,GAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,WAAW,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC;QAC7E,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,0FAA0F;IAC1F,wFAAwF;IACxF,MAAM,mBAAmB,GAAG,2BAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7D,OAAO;QACL,UAAU;QACV,QAAQ,EAAE;YACR,OAAO;YACP,UAAU;YACV,yGAAyG;YACzG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE;YAClE,SAAS;YACT,OAAO,EAAE;gBACP,GAAG;gBACH,IAAI;gBACJ,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC9C,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM;wBACjC,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;wBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;qBACtB,CAAC,CAAC;oBACL,CAAC,CAAC,gBAAgB;aACrB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,cAAc,kBA0DzB"}
|
|
@@ -65,11 +65,17 @@ export declare const jsonResponse: <ContentSchema extends z.ZodType, HeaderSchem
|
|
|
65
65
|
content: {
|
|
66
66
|
'application/json': {
|
|
67
67
|
schema: z.ZodObject<{
|
|
68
|
-
name: z.ZodOptional<z.ZodString>;
|
|
69
68
|
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
70
|
-
messageCode: z.ZodOptional<z.ZodString>;
|
|
71
69
|
message: z.ZodString;
|
|
72
|
-
|
|
70
|
+
normalized: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
text: z.ZodString;
|
|
72
|
+
code: z.ZodString;
|
|
73
|
+
args: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
74
|
+
}, z.core.$strip>>;
|
|
75
|
+
extra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
76
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
77
|
+
details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
78
|
+
}, z.core.$strip>;
|
|
73
79
|
};
|
|
74
80
|
};
|
|
75
81
|
required: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/models/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGtC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhE,0FAA0F;AAC1F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,cAAc,GAAI,OAAO;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE;;;;iBAkC9D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM;IACrD,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;;;;CAMA,CAAC;AAEF,mCAAmC;AACnC,KAAK,aAAa,GAAG;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,4CAA4C;AAC5C,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEtD,KAAK,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,gBAAgB,GAAG,SAAS,IAAI;IACpF,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,aAAa,SAAS,CAAC,CAAC,OAAO,EAC/B,YAAY,SAAS,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAE7D,MAAM,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/base/models/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGtC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhE,0FAA0F;AAC1F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,cAAc,GAAI,OAAO;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE;;;;iBAkC9D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM;IACrD,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;;;;CAMA,CAAC;AAEF,mCAAmC;AACnC,KAAK,aAAa,GAAG;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,4CAA4C;AAC5C,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEtD,KAAK,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,gBAAgB,GAAG,SAAS,IAAI;IACpF,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,aAAa,SAAS,CAAC,CAAC,OAAO,EAC/B,YAAY,SAAS,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAE7D,MAAM,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcrD,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GACxE,GAAG,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,GACzC,CAAC,CAAC;AAEN,KAAK,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAC1F,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GACZ,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,0SAW7D,CAAC"}
|
|
@@ -51,11 +51,17 @@ export declare const RouteConfigs: {
|
|
|
51
51
|
content: {
|
|
52
52
|
'application/json': {
|
|
53
53
|
schema: z.ZodObject<{
|
|
54
|
-
name: z.ZodOptional<z.ZodString>;
|
|
55
54
|
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
56
|
-
messageCode: z.ZodOptional<z.ZodString>;
|
|
57
55
|
message: z.ZodString;
|
|
58
|
-
|
|
56
|
+
normalized: z.ZodOptional<z.ZodObject<{
|
|
57
|
+
text: z.ZodString;
|
|
58
|
+
code: z.ZodString;
|
|
59
|
+
args: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
60
|
+
}, z.core.$strip>>;
|
|
61
|
+
extra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
62
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
63
|
+
details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
64
|
+
}, z.core.$strip>;
|
|
59
65
|
};
|
|
60
66
|
};
|
|
61
67
|
required: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/authenticate/controllers/jwks/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAItC,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/authenticate/controllers/jwks/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAItC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bf,CAAC"}
|