@eleva-io/erp-sdk 0.1.148 → 0.1.149
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/cjs/errors/catalog.d.ts +28 -3
- package/dist/cjs/errors/catalog.d.ts.map +1 -1
- package/dist/cjs/errors/catalog.js +2 -0
- package/dist/cjs/errors/catalog.js.map +1 -1
- package/dist/cjs/errors/catalog_api.d.ts +15 -2
- package/dist/cjs/errors/catalog_api.d.ts.map +1 -1
- package/dist/cjs/errors/catalog_api.js +10 -1
- package/dist/cjs/errors/catalog_api.js.map +1 -1
- package/dist/cjs/errors/catalog_base.d.ts +42 -2
- package/dist/cjs/errors/catalog_base.d.ts.map +1 -1
- package/dist/cjs/errors/catalog_base.js +37 -0
- package/dist/cjs/errors/catalog_base.js.map +1 -1
- package/dist/cjs/errors/catalog_types.d.ts +24 -0
- package/dist/cjs/errors/catalog_types.d.ts.map +1 -1
- package/dist/cjs/errors/catalog_types.js +6 -0
- package/dist/cjs/errors/catalog_types.js.map +1 -1
- package/dist/cjs/errors/errors.d.ts +139 -33
- package/dist/cjs/errors/errors.d.ts.map +1 -1
- package/dist/cjs/errors/errors.js +121 -74
- package/dist/cjs/errors/errors.js.map +1 -1
- package/dist/cjs/errors/errors_remote.d.ts +58 -20
- package/dist/cjs/errors/errors_remote.d.ts.map +1 -1
- package/dist/cjs/errors/errors_remote.js +22 -0
- package/dist/cjs/errors/errors_remote.js.map +1 -1
- package/dist/cjs/errors/errors_remote.spec.js +49 -9
- package/dist/cjs/errors/errors_remote.spec.js.map +1 -1
- package/dist/cjs/errors/index.d.ts +19 -0
- package/dist/cjs/errors/index.d.ts.map +1 -1
- package/dist/cjs/errors/index.js +19 -0
- package/dist/cjs/errors/index.js.map +1 -1
- package/dist/cjs/utils/errors.d.ts.map +1 -1
- package/dist/cjs/utils/errors.js +3 -1
- package/dist/cjs/utils/errors.js.map +1 -1
- package/dist/cjs/utils/http.js +10 -10
- package/dist/cjs/utils/http.js.map +1 -1
- package/dist/esm/errors/catalog.d.ts +28 -3
- package/dist/esm/errors/catalog.d.ts.map +1 -1
- package/dist/esm/errors/catalog.js +2 -0
- package/dist/esm/errors/catalog.js.map +1 -1
- package/dist/esm/errors/catalog_api.d.ts +15 -2
- package/dist/esm/errors/catalog_api.d.ts.map +1 -1
- package/dist/esm/errors/catalog_api.js +10 -1
- package/dist/esm/errors/catalog_api.js.map +1 -1
- package/dist/esm/errors/catalog_base.d.ts +42 -2
- package/dist/esm/errors/catalog_base.d.ts.map +1 -1
- package/dist/esm/errors/catalog_base.js +37 -0
- package/dist/esm/errors/catalog_base.js.map +1 -1
- package/dist/esm/errors/catalog_types.d.ts +24 -0
- package/dist/esm/errors/catalog_types.d.ts.map +1 -1
- package/dist/esm/errors/catalog_types.js +6 -0
- package/dist/esm/errors/catalog_types.js.map +1 -1
- package/dist/esm/errors/errors.d.ts +139 -33
- package/dist/esm/errors/errors.d.ts.map +1 -1
- package/dist/esm/errors/errors.js +121 -74
- package/dist/esm/errors/errors.js.map +1 -1
- package/dist/esm/errors/errors_remote.d.ts +58 -20
- package/dist/esm/errors/errors_remote.d.ts.map +1 -1
- package/dist/esm/errors/errors_remote.js +22 -0
- package/dist/esm/errors/errors_remote.js.map +1 -1
- package/dist/esm/errors/errors_remote.spec.js +49 -9
- package/dist/esm/errors/errors_remote.spec.js.map +1 -1
- package/dist/esm/errors/index.d.ts +19 -0
- package/dist/esm/errors/index.d.ts.map +1 -1
- package/dist/esm/errors/index.js +19 -0
- package/dist/esm/errors/index.js.map +1 -1
- package/dist/esm/utils/errors.d.ts.map +1 -1
- package/dist/esm/utils/errors.js +3 -1
- package/dist/esm/utils/errors.js.map +1 -1
- package/dist/esm/utils/http.js +10 -10
- package/dist/esm/utils/http.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,11 @@ import { ERRORS_CATALOG, ERROR_CODES } from './catalog';
|
|
|
3
3
|
import { ErrorKind } from './catalog_types';
|
|
4
4
|
import { BASE_ERROR_CODES } from './catalog_base';
|
|
5
5
|
import { API_ERROR_CODES } from './catalog_api';
|
|
6
|
+
/**
|
|
7
|
+
* Permissive schema for parsing unknown error payloads. All fields except `code`
|
|
8
|
+
* are optional so malformed responses always produce a valid result.
|
|
9
|
+
* `errors` is the legacy name for `details` (kept for backwards compatibility).
|
|
10
|
+
*/
|
|
6
11
|
const errorSchema = z.object({
|
|
7
12
|
code: z.string(),
|
|
8
13
|
kind: z.string().optional(),
|
|
@@ -12,8 +17,14 @@ const errorSchema = z.object({
|
|
|
12
17
|
/** @deprecated Use `details` instead */
|
|
13
18
|
errors: z.unknown().optional(),
|
|
14
19
|
});
|
|
20
|
+
/** Pre-computed set of all valid error code strings for O(1) membership checks. */
|
|
15
21
|
const KNOWN_CODES = new Set(Object.keys(ERROR_CODES));
|
|
22
|
+
/** Pre-computed set of all valid `ErrorKind` values for O(1) membership checks. */
|
|
16
23
|
const VALID_KINDS = new Set(Object.values(ErrorKind));
|
|
24
|
+
/**
|
|
25
|
+
* Looks up the catalog entry for `code` and builds an `ElevaError`.
|
|
26
|
+
* Module-private — use the static factory methods on `ElevaError` instead.
|
|
27
|
+
*/
|
|
17
28
|
const _newElevaErrorFromCode = (code, args) => {
|
|
18
29
|
const entry = ERRORS_CATALOG[code];
|
|
19
30
|
return new ElevaError({
|
|
@@ -25,10 +36,53 @@ const _newElevaErrorFromCode = (code, args) => {
|
|
|
25
36
|
cause: args.cause,
|
|
26
37
|
});
|
|
27
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* Factory for codes whose `details` are entirely optional (every field is `.partial()`).
|
|
41
|
+
* Returns a function with signature `(args?: { message?, details? }) => ElevaError<C>`.
|
|
42
|
+
*/
|
|
43
|
+
const _optionalFactory = (code) => {
|
|
44
|
+
return (args = {}) => _newElevaErrorFromCode(code, { details: args.details ?? {}, message: args.message });
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Factory for codes where `details` is built from a single required string argument.
|
|
48
|
+
* The argument key mirrors the `details` key (e.g. `'entity'` → `{ entity }`).
|
|
49
|
+
*/
|
|
50
|
+
const _namedFieldFactory = (code, key) => {
|
|
51
|
+
return (args) => _newElevaErrorFromCode(code, { details: { [key]: args[key] }, message: args.message });
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Factory for codes where `details` is required and passed through directly.
|
|
55
|
+
* Returns a function with signature `(args: { details, message? }) => ElevaError<C>`.
|
|
56
|
+
*/
|
|
57
|
+
const _requiredDetailsFactory = (code) => {
|
|
58
|
+
return (args) => _newElevaErrorFromCode(code, { details: args.details, message: args.message });
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Central error class for the Eleva ERP SDK.
|
|
62
|
+
*
|
|
63
|
+
* Extends `Error` with structured metadata: `code`, `kind`, `status`, and typed `details`.
|
|
64
|
+
*
|
|
65
|
+
* ```ts
|
|
66
|
+
* // Create
|
|
67
|
+
* throw ElevaError.notFound({ entity: 'Invoice' })
|
|
68
|
+
* throw ElevaError.conflict({ details: [{ key: 'email', value: 'a@b.com', cause: 'duplicate' }] })
|
|
69
|
+
*
|
|
70
|
+
* // Narrow
|
|
71
|
+
* if (err instanceof ElevaError && err.is(ERROR_CODES.NOT_FOUND)) {
|
|
72
|
+
* console.log(err.details.entity) // string
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* Serialisation: `toJSON()` for logging, `toResponse()` for sanitised API output.
|
|
77
|
+
*/
|
|
28
78
|
export class ElevaError extends Error {
|
|
79
|
+
/** Error code constant identifying the failure condition. */
|
|
29
80
|
code;
|
|
81
|
+
/** `DOMAIN` (safe to expose) or `SYSTEM` (sanitised before sending to clients). */
|
|
30
82
|
kind;
|
|
83
|
+
/** HTTP status code for this error. */
|
|
31
84
|
status;
|
|
85
|
+
/** Structured, code-specific failure context. */
|
|
32
86
|
details;
|
|
33
87
|
constructor(args) {
|
|
34
88
|
super(args.message, { cause: args.cause });
|
|
@@ -37,13 +91,21 @@ export class ElevaError extends Error {
|
|
|
37
91
|
this.kind = args.kind;
|
|
38
92
|
this.status = args.status;
|
|
39
93
|
this.details = args.details;
|
|
94
|
+
// Removes the constructor frame from V8 stack traces.
|
|
40
95
|
if (Error.captureStackTrace) {
|
|
41
96
|
Error.captureStackTrace(this, this.constructor);
|
|
42
97
|
}
|
|
43
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Type-guard: narrows to `ElevaError<K>` when `this.code === code`.
|
|
101
|
+
* After a positive check `this.details` is fully typed for `K`.
|
|
102
|
+
* @example
|
|
103
|
+
* if (err.is(ERROR_CODES.NOT_FOUND)) console.log(err.details.entity)
|
|
104
|
+
*/
|
|
44
105
|
is(code) {
|
|
45
106
|
return this.code === code;
|
|
46
107
|
}
|
|
108
|
+
/** Full serialised representation for logging / diagnostics. */
|
|
47
109
|
toJSON() {
|
|
48
110
|
return {
|
|
49
111
|
code: this.code,
|
|
@@ -54,8 +116,12 @@ export class ElevaError extends Error {
|
|
|
54
116
|
};
|
|
55
117
|
}
|
|
56
118
|
toString() {
|
|
57
|
-
return JSON.stringify(this
|
|
119
|
+
return JSON.stringify(this);
|
|
58
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Sanitised payload safe for API responses.
|
|
123
|
+
* `SYSTEM` errors replace the message with a generic string; `DOMAIN` errors include `details`.
|
|
124
|
+
*/
|
|
59
125
|
toResponse() {
|
|
60
126
|
const resp = {
|
|
61
127
|
code: this.code,
|
|
@@ -64,11 +130,18 @@ export class ElevaError extends Error {
|
|
|
64
130
|
if (this.kind === ErrorKind.SYSTEM) {
|
|
65
131
|
resp.message = 'Houston, we have a problem';
|
|
66
132
|
}
|
|
67
|
-
if (this.kind === ErrorKind.DOMAIN) {
|
|
133
|
+
else if (this.kind === ErrorKind.DOMAIN) {
|
|
68
134
|
resp.details = this.details;
|
|
69
135
|
}
|
|
70
136
|
return resp;
|
|
71
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Parses an unknown value into `ElevaErrorArgs`. Shared by `parse()` and `RemoteElevaError.from()`.
|
|
140
|
+
*
|
|
141
|
+
* Strategy: validate against `errorSchema` → look up known codes in the catalog →
|
|
142
|
+
* fall back to `INTERNAL_SERVER_ERROR` for unrecognised codes or malformed payloads →
|
|
143
|
+
* accept legacy `errors` field as a fallback for `details`.
|
|
144
|
+
*/
|
|
72
145
|
static _parsePayload(value) {
|
|
73
146
|
const result = errorSchema.safeParse(value);
|
|
74
147
|
if (!result.success) {
|
|
@@ -95,90 +168,65 @@ export class ElevaError extends Error {
|
|
|
95
168
|
details: (result.data.details ?? result.data.errors ?? {}),
|
|
96
169
|
};
|
|
97
170
|
}
|
|
171
|
+
/** Deserialises an unknown value into an `ElevaError`. Unrecognised payloads become `INTERNAL_SERVER_ERROR`. */
|
|
98
172
|
static parse(value) {
|
|
99
173
|
return new ElevaError(ElevaError._parsePayload(value));
|
|
100
174
|
}
|
|
175
|
+
/** Converts a `ZodError` into a `VALIDATION` error, preserving field paths and rule codes. */
|
|
101
176
|
static fromZodError(error) {
|
|
102
177
|
const errors = error.issues.map((issue) => {
|
|
103
178
|
const path = issue.path.map(String);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
code: issue.code,
|
|
107
|
-
message: issue.message,
|
|
108
|
-
path,
|
|
109
|
-
};
|
|
179
|
+
const validation = path.join('.') || 'root';
|
|
180
|
+
return { validation, code: issue.code, message: issue.message, path };
|
|
110
181
|
});
|
|
111
182
|
return ElevaError.validation({ errors, message: error.message });
|
|
112
183
|
}
|
|
184
|
+
/** Creates a `VALIDATION` error from a pre-built array of issue descriptors. */
|
|
113
185
|
static validation(args) {
|
|
114
186
|
return _newElevaErrorFromCode(BASE_ERROR_CODES.VALIDATION, {
|
|
115
187
|
details: { errors: args.errors },
|
|
116
188
|
message: args.message,
|
|
117
189
|
});
|
|
118
190
|
}
|
|
191
|
+
/** Creates a `VALIDATION` error for a single invalid field. Convenience wrapper around `validation()`. */
|
|
119
192
|
static invalidField(args) {
|
|
120
193
|
return ElevaError.validation({ errors: [args.error], message: args.message });
|
|
121
194
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
static
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
static
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
static
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
static gone(args = {}) {
|
|
159
|
-
return _newElevaErrorFromCode(BASE_ERROR_CODES.GONE, {
|
|
160
|
-
details: args.details ?? {},
|
|
161
|
-
message: args.message,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
static unprocessableEntity(args = {}) {
|
|
165
|
-
return _newElevaErrorFromCode(BASE_ERROR_CODES.UNPROCESSABLE_ENTITY, {
|
|
166
|
-
details: args.details ?? {},
|
|
167
|
-
message: args.message,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
static serviceUnavailable(args = {}) {
|
|
171
|
-
return _newElevaErrorFromCode(BASE_ERROR_CODES.SERVICE_UNAVAILABLE, {
|
|
172
|
-
details: args.details ?? {},
|
|
173
|
-
message: args.message,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
static mandatoryField(args) {
|
|
177
|
-
return _newElevaErrorFromCode(BASE_ERROR_CODES.MANDATORY_FIELD, {
|
|
178
|
-
details: { field: args.field },
|
|
179
|
-
message: args.message,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
195
|
+
/** HTTP 400 — request is malformed or has invalid parameters outside of validation. */
|
|
196
|
+
static badRequest = _optionalFactory(BASE_ERROR_CODES.BAD_REQUEST);
|
|
197
|
+
/** HTTP 401 — credentials are missing, expired, or invalid. Caller must re-authenticate. */
|
|
198
|
+
static authentication = _optionalFactory(BASE_ERROR_CODES.AUTHENTICATION);
|
|
199
|
+
/** HTTP 403 — authenticated but lacks the required scope or permission. */
|
|
200
|
+
static unauthorized = _optionalFactory(BASE_ERROR_CODES.UNAUTHORIZED);
|
|
201
|
+
/**
|
|
202
|
+
* HTTP 404 — no resource found for the given identifier.
|
|
203
|
+
* @param args.entity - Entity type that was not found (e.g. `"Invoice"`).
|
|
204
|
+
*/
|
|
205
|
+
static notFound = _namedFieldFactory(BASE_ERROR_CODES.NOT_FOUND, 'entity');
|
|
206
|
+
/** HTTP 406 — server cannot produce a response matching the `Accept` header. */
|
|
207
|
+
static notAcceptable = _optionalFactory(BASE_ERROR_CODES.NOT_ACCEPTABLE);
|
|
208
|
+
/** HTTP 409 — operation violates a uniqueness or integrity constraint. */
|
|
209
|
+
static conflict = _requiredDetailsFactory(BASE_ERROR_CODES.CONFLICT);
|
|
210
|
+
/** HTTP 410 — resource permanently removed; retrying will never succeed. */
|
|
211
|
+
static gone = _optionalFactory(BASE_ERROR_CODES.GONE);
|
|
212
|
+
/** HTTP 422 — request is syntactically valid but semantically unprocessable. */
|
|
213
|
+
static unprocessableEntity = _optionalFactory(BASE_ERROR_CODES.UNPROCESSABLE_ENTITY);
|
|
214
|
+
/**
|
|
215
|
+
* HTTP 502 — upstream service returned an invalid response (`SYSTEM`).
|
|
216
|
+
* @param args.details.upstream - Name of the misbehaving upstream service.
|
|
217
|
+
*/
|
|
218
|
+
static badGateway = _optionalFactory(BASE_ERROR_CODES.BAD_GATEWAY);
|
|
219
|
+
/** HTTP 503 — service temporarily unavailable (`SYSTEM`). Pass `retryAfter` (seconds) if known. */
|
|
220
|
+
static serviceUnavailable = _optionalFactory(BASE_ERROR_CODES.SERVICE_UNAVAILABLE);
|
|
221
|
+
/**
|
|
222
|
+
* HTTP 400 — a required field was missing from the request.
|
|
223
|
+
* @param args.field - Name of the missing field.
|
|
224
|
+
*/
|
|
225
|
+
static mandatoryField = _namedFieldFactory(BASE_ERROR_CODES.MANDATORY_FIELD, 'field');
|
|
226
|
+
/**
|
|
227
|
+
* HTTP 500 — unexpected server error (`SYSTEM`).
|
|
228
|
+
* Pass the original exception as `cause` to preserve the full stack chain for logging.
|
|
229
|
+
*/
|
|
182
230
|
static internal(args = {}) {
|
|
183
231
|
return _newElevaErrorFromCode(BASE_ERROR_CODES.INTERNAL_SERVER_ERROR, {
|
|
184
232
|
details: args.details ?? {},
|
|
@@ -186,11 +234,10 @@ export class ElevaError extends Error {
|
|
|
186
234
|
cause: args.cause,
|
|
187
235
|
});
|
|
188
236
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
237
|
+
/**
|
|
238
|
+
* HTTP 403 — caller is not authorised to access the given contact person.
|
|
239
|
+
* @param args.details.contactId - UUID of the blocked contact.
|
|
240
|
+
*/
|
|
241
|
+
static forbiddenContact = _requiredDetailsFactory(API_ERROR_CODES.FORBIDDEN_CONTACT);
|
|
195
242
|
}
|
|
196
243
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAgC,MAAM,WAAW,CAAA;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,wCAAwC;IACxC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/errors/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,67 @@
|
|
|
1
1
|
import { ElevaError, ElevaErrorArgs, ElevaErrorJSON } from './errors';
|
|
2
2
|
import { ErrorCode } from './catalog';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Context about the outgoing call that triggered a remote error. All fields are optional.
|
|
5
|
+
* `M` types the transport-level `metadata` (e.g. `Record<string, string>` for HTTP headers).
|
|
6
|
+
*/
|
|
7
|
+
export type RemoteRequest<M extends Record<string, unknown> = Record<string, unknown>> = {
|
|
8
|
+
/** Operation type or name (e.g. HTTP method, gRPC method, message type). */
|
|
9
|
+
operation?: string;
|
|
10
|
+
/** Target resource identifier (e.g. URL path, topic name, procedure). */
|
|
11
|
+
resource?: string;
|
|
12
|
+
/** Transport-level metadata sent with the call (e.g. HTTP headers, gRPC metadata). */
|
|
13
|
+
metadata?: M;
|
|
14
|
+
/** Data sent with the call (request body, message payload, etc.). */
|
|
15
|
+
payload?: unknown;
|
|
8
16
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Context about the response received from a remote call. All fields are optional.
|
|
19
|
+
* `M` types the transport-level `metadata` (e.g. `Record<string, string>` for HTTP headers).
|
|
20
|
+
*/
|
|
21
|
+
export type RemoteResponse<M extends Record<string, unknown> = Record<string, unknown>> = {
|
|
22
|
+
/** Status code returned by the remote system (e.g. HTTP status, gRPC status). */
|
|
23
|
+
statusCode?: number;
|
|
24
|
+
/** Transport-level metadata received with the response (e.g. HTTP response headers). */
|
|
25
|
+
metadata?: M;
|
|
26
|
+
/** Data received from the remote system. */
|
|
27
|
+
payload?: unknown;
|
|
13
28
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
/** `ElevaErrorJSON` extended with the originating remote call context. */
|
|
30
|
+
export type RemoteElevaErrorJSON<C extends ErrorCode = ErrorCode, ReqM extends Record<string, unknown> = Record<string, unknown>, ResM extends Record<string, unknown> = Record<string, unknown>> = ElevaErrorJSON<C> & {
|
|
31
|
+
request: RemoteRequest<ReqM>;
|
|
32
|
+
response: RemoteResponse<ResM>;
|
|
17
33
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
34
|
+
/**
|
|
35
|
+
* An `ElevaError` enriched with the context of a failed remote call.
|
|
36
|
+
* Not tied to HTTP — covers any outbound call (HTTP, gRPC, message queues, etc.)
|
|
37
|
+
* where capturing the outgoing request and incoming response aids debugging.
|
|
38
|
+
*
|
|
39
|
+
* `ReqM` / `ResM` type the transport metadata for the request and response respectively;
|
|
40
|
+
* both default to `Record<string, unknown>` for untyped usage.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* type HttpHeaders = Record<string, string>
|
|
44
|
+
* const err = RemoteElevaError.from<ErrorCode, HttpHeaders, HttpHeaders>(body, req, res)
|
|
45
|
+
* err.request.metadata?.['authorization'] // string
|
|
46
|
+
*/
|
|
47
|
+
export declare class RemoteElevaError<C extends ErrorCode = ErrorCode, ReqM extends Record<string, unknown> = Record<string, unknown>, ResM extends Record<string, unknown> = Record<string, unknown>> extends ElevaError<C> {
|
|
48
|
+
/** Context about the outgoing call that produced this error. */
|
|
49
|
+
readonly request: RemoteRequest<ReqM>;
|
|
50
|
+
/** Context about the response that contained or triggered the error. */
|
|
51
|
+
readonly response: RemoteResponse<ResM>;
|
|
21
52
|
constructor(args: ElevaErrorArgs<C> & {
|
|
22
|
-
request: RemoteRequest
|
|
23
|
-
response: RemoteResponse
|
|
53
|
+
request: RemoteRequest<ReqM>;
|
|
54
|
+
response: RemoteResponse<ResM>;
|
|
24
55
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
56
|
+
/** Full serialisation including remote call request and response context. */
|
|
57
|
+
toJSON(): RemoteElevaErrorJSON<C, ReqM, ResM>;
|
|
58
|
+
/** Narrows to `RemoteElevaError<K, ReqM, ResM>`, preserving metadata types on the narrowed type. */
|
|
59
|
+
is<K extends ErrorCode>(code: K | string): this is RemoteElevaError<K, ReqM, ResM>;
|
|
60
|
+
/**
|
|
61
|
+
* Builds a `RemoteElevaError` from a raw response payload and remote call context.
|
|
62
|
+
* Delegates payload parsing to `ElevaError._parsePayload()`; malformed payloads become `INTERNAL_SERVER_ERROR`.
|
|
63
|
+
* `cause` takes precedence over any cause inferred from the payload.
|
|
64
|
+
*/
|
|
65
|
+
static from<ReqM extends Record<string, unknown> = Record<string, unknown>, ResM extends Record<string, unknown> = Record<string, unknown>>(body: unknown, request: RemoteRequest<ReqM>, response: RemoteResponse<ResM>, cause?: unknown): RemoteElevaError<ErrorCode, ReqM, ResM>;
|
|
28
66
|
}
|
|
29
67
|
//# sourceMappingURL=errors_remote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors_remote.d.ts","sourceRoot":"","sources":["../../../src/errors/errors_remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"errors_remote.d.ts","sourceRoot":"","sources":["../../../src/errors/errors_remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACvF,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,CAAC,CAAA;IACZ,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACxF,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,CAAC,CAAA;IACZ,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,cAAc,CAAC,CAAC,CAAC,GAAG;IACtB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAC5B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9D,SAAQ,UAAU,CAAC,CAAC,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAErC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;gBAE3B,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;KAAE;IAOtG,6EAA6E;IAC7E,MAAM,IAAI,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAQ7C,oGAAoG;IACpG,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAIlF;;;;OAIG;IACH,MAAM,CAAC,IAAI,CACT,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE9D,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAC5B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,KAAK,CAAC,EAAE,OAAO,GACd,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;CAK3C"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { ElevaError } from './errors';
|
|
2
|
+
/**
|
|
3
|
+
* An `ElevaError` enriched with the context of a failed remote call.
|
|
4
|
+
* Not tied to HTTP — covers any outbound call (HTTP, gRPC, message queues, etc.)
|
|
5
|
+
* where capturing the outgoing request and incoming response aids debugging.
|
|
6
|
+
*
|
|
7
|
+
* `ReqM` / `ResM` type the transport metadata for the request and response respectively;
|
|
8
|
+
* both default to `Record<string, unknown>` for untyped usage.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* type HttpHeaders = Record<string, string>
|
|
12
|
+
* const err = RemoteElevaError.from<ErrorCode, HttpHeaders, HttpHeaders>(body, req, res)
|
|
13
|
+
* err.request.metadata?.['authorization'] // string
|
|
14
|
+
*/
|
|
2
15
|
export class RemoteElevaError extends ElevaError {
|
|
16
|
+
/** Context about the outgoing call that produced this error. */
|
|
3
17
|
request;
|
|
18
|
+
/** Context about the response that contained or triggered the error. */
|
|
4
19
|
response;
|
|
5
20
|
constructor(args) {
|
|
6
21
|
super(args);
|
|
@@ -8,6 +23,7 @@ export class RemoteElevaError extends ElevaError {
|
|
|
8
23
|
this.request = args.request;
|
|
9
24
|
this.response = args.response;
|
|
10
25
|
}
|
|
26
|
+
/** Full serialisation including remote call request and response context. */
|
|
11
27
|
toJSON() {
|
|
12
28
|
return {
|
|
13
29
|
...super.toJSON(),
|
|
@@ -15,9 +31,15 @@ export class RemoteElevaError extends ElevaError {
|
|
|
15
31
|
response: this.response,
|
|
16
32
|
};
|
|
17
33
|
}
|
|
34
|
+
/** Narrows to `RemoteElevaError<K, ReqM, ResM>`, preserving metadata types on the narrowed type. */
|
|
18
35
|
is(code) {
|
|
19
36
|
return super.is(code);
|
|
20
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Builds a `RemoteElevaError` from a raw response payload and remote call context.
|
|
40
|
+
* Delegates payload parsing to `ElevaError._parsePayload()`; malformed payloads become `INTERNAL_SERVER_ERROR`.
|
|
41
|
+
* `cause` takes precedence over any cause inferred from the payload.
|
|
42
|
+
*/
|
|
21
43
|
static from(body, request, response, cause) {
|
|
22
44
|
const parsed = ElevaError._parsePayload(body);
|
|
23
45
|
return new RemoteElevaError({ ...parsed, cause: cause ?? parsed.cause, request, response });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors_remote.js","sourceRoot":"","sources":["../../../src/errors/errors_remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkC,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"errors_remote.js","sourceRoot":"","sources":["../../../src/errors/errors_remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkC,MAAM,UAAU,CAAA;AAyCrE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAIX,SAAQ,UAAa;IACrB,gEAAgE;IACvD,OAAO,CAAqB;IAErC,wEAAwE;IAC/D,QAAQ,CAAsB;IAEvC,YAAY,IAA0F;QACpG,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAED,6EAA6E;IAC7E,MAAM;QACJ,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAA;IACH,CAAC;IAED,oGAAoG;IACpG,EAAE,CAAsB,IAAgB;QACtC,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAIT,IAAa,EACb,OAA4B,EAC5B,QAA8B,EAC9B,KAAe;QAEf,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAE7C,OAAO,IAAI,gBAAgB,CAAwB,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpH,CAAC;CACF"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { ElevaError, ERROR_CODES, ErrorKind } from '.';
|
|
2
2
|
import { RemoteElevaError } from './errors_remote';
|
|
3
3
|
const request = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
operation: 'GET',
|
|
5
|
+
metadata: { authorization: 'Bearer token' },
|
|
6
|
+
resource: '/api/users/1',
|
|
7
|
+
payload: undefined,
|
|
8
8
|
};
|
|
9
9
|
const response = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
statusCode: 404,
|
|
11
|
+
metadata: { 'content-type': 'application/json' },
|
|
12
|
+
payload: { code: 'NOT_FOUND', message: 'Not found', kind: 'domain', status: 404 },
|
|
13
13
|
};
|
|
14
14
|
const validBody = {
|
|
15
15
|
code: ERROR_CODES.NOT_FOUND,
|
|
@@ -111,8 +111,8 @@ describe('RemoteElevaError', () => {
|
|
|
111
111
|
it('toString serializes request and response', () => {
|
|
112
112
|
const error = RemoteElevaError.from({ code: ERROR_CODES.INTERNAL_SERVER_ERROR }, request, response);
|
|
113
113
|
const parsed = JSON.parse(error.toString());
|
|
114
|
-
expect(parsed.request.
|
|
115
|
-
expect(parsed.response.
|
|
114
|
+
expect(parsed.request.resource).toBe('/api/users/1');
|
|
115
|
+
expect(parsed.response.statusCode).toBe(404);
|
|
116
116
|
});
|
|
117
117
|
});
|
|
118
118
|
describe('from()', () => {
|
|
@@ -159,5 +159,45 @@ describe('RemoteElevaError', () => {
|
|
|
159
159
|
expect(json.response).toBe(response);
|
|
160
160
|
});
|
|
161
161
|
});
|
|
162
|
+
describe('custom / vendor-specific error codes', () => {
|
|
163
|
+
it('preserves an unknown code string verbatim', () => {
|
|
164
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Too many requests', kind: 'domain' }, request, response);
|
|
165
|
+
expect(error.code).toBe('RATE_LIMIT');
|
|
166
|
+
});
|
|
167
|
+
it('is() returns true for the custom code string', () => {
|
|
168
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Too many requests', kind: 'domain' }, request, response);
|
|
169
|
+
expect(error.is('RATE_LIMIT')).toBe(true);
|
|
170
|
+
});
|
|
171
|
+
it('is() returns false for a different custom code string', () => {
|
|
172
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Too many requests', kind: 'domain' }, request, response);
|
|
173
|
+
expect(error.is('QUOTA_EXCEEDED')).toBe(false);
|
|
174
|
+
});
|
|
175
|
+
it('uses status and kind from the body when both are valid', () => {
|
|
176
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Too many requests', kind: 'domain' }, request, response);
|
|
177
|
+
expect(error.status).toBe(429);
|
|
178
|
+
expect(error.kind).toBe(ErrorKind.DOMAIN);
|
|
179
|
+
});
|
|
180
|
+
it('falls back to INTERNAL_SERVER_ERROR status and kind when they are absent', () => {
|
|
181
|
+
const error = RemoteElevaError.from({ code: 'UNKNOWN_VENDOR_CODE', message: 'Something broke' }, request, response);
|
|
182
|
+
expect(error.code).toBe('UNKNOWN_VENDOR_CODE');
|
|
183
|
+
expect(error.status).toBe(500);
|
|
184
|
+
expect(error.kind).toBe(ErrorKind.SYSTEM);
|
|
185
|
+
});
|
|
186
|
+
it('preserves the message from the body', () => {
|
|
187
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Retry after 60 s', kind: 'domain' }, request, response);
|
|
188
|
+
expect(error.message).toBe('Retry after 60 s');
|
|
189
|
+
});
|
|
190
|
+
it('preserves details from the body', () => {
|
|
191
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, kind: 'domain', details: { retryAfter: 60 } }, request, response);
|
|
192
|
+
expect(error.details.retryAfter).toBe(60);
|
|
193
|
+
});
|
|
194
|
+
it('toJSON() includes the custom code, request and response', () => {
|
|
195
|
+
const error = RemoteElevaError.from({ code: 'RATE_LIMIT', status: 429, message: 'Too many requests', kind: 'domain' }, request, response);
|
|
196
|
+
const json = error.toJSON();
|
|
197
|
+
expect(json.code).toBe('RATE_LIMIT');
|
|
198
|
+
expect(json.request).toBe(request);
|
|
199
|
+
expect(json.response).toBe(response);
|
|
200
|
+
});
|
|
201
|
+
});
|
|
162
202
|
});
|
|
163
203
|
//# sourceMappingURL=errors_remote.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors_remote.spec.js","sourceRoot":"","sources":["../../../src/errors/errors_remote.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors_remote.spec.js","sourceRoot":"","sources":["../../../src/errors/errors_remote.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module errors
|
|
3
|
+
*
|
|
4
|
+
* Structured error system for the Eleva ERP SDK.
|
|
5
|
+
*
|
|
6
|
+
* Key exports:
|
|
7
|
+
* - `ElevaError` — base error class with typed `details`, static factories, and `.is()` type-guard.
|
|
8
|
+
* - `RemoteElevaError` — `ElevaError` subclass with originating remote call context (HTTP, gRPC, queues, etc.).
|
|
9
|
+
* - `ERROR_CODES` — all valid error code constants.
|
|
10
|
+
* - `ERRORS_CATALOG` — merged catalog mapping codes to metadata and Zod schemas.
|
|
11
|
+
* - `ErrorKind` — `DOMAIN` (safe to expose) vs `SYSTEM` (sanitised).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* throw ElevaError.notFound({ entity: 'Invoice' })
|
|
15
|
+
*
|
|
16
|
+
* if (err instanceof ElevaError && err.is(ERROR_CODES.NOT_FOUND)) {
|
|
17
|
+
* console.log(err.details.entity) // string
|
|
18
|
+
* }
|
|
19
|
+
*/
|
|
1
20
|
export * from './errors';
|
|
2
21
|
export * from './errors_remote';
|
|
3
22
|
export * from './catalog_types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA"}
|