@digiteers/uloba3-sdk 3.4.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qBAAqB;AACR,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,qBAAqB;AACrB,mCAAuE;AAA9D,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnC,qBAAqB;AACrB,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,mCAAqC;AAA5B,+FAAA,OAAO,OAAA;AAChB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,mCAAqC;AAA5B,+FAAA,OAAO,OAAA;AAChB,mCASoB;AARlB,+FAAA,OAAO,OAAA;AAST,+CAI0B;AAHxB,2GAAA,aAAa,OAAA;AAIf,mDAAqD;AAA5C,+GAAA,eAAe,OAAA;AACxB,6CAIyB;AAHvB,yGAAA,YAAY,OAAA;AAId,mDAAqD;AAA5C,+GAAA,eAAe,OAAA;AACxB,6CAIyB;AAHvB,yGAAA,YAAY,OAAA;AAId,uDAAwD;AAA/C,kHAAA,gBAAgB,OAAA;AACzB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,yCAA2C;AAAlC,qGAAA,UAAU,OAAA;AACnB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,2CAewB;AAdtB,uGAAA,WAAW,OAAA;AAeb,uCAA+F;AAAtF,mGAAA,SAAS,OAAA;AAClB,uCAKsB;AAJpB,mGAAA,SAAS,OAAA;AAKX,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,yCAAuE;AAA9D,qGAAA,UAAU,OAAA;AACnB,6DAMiC;AAL/B,wHAAA,mBAAmB,OAAA;AAOrB,4BAA4B;AAC5B,yCAwBuB;AAvBrB,qGAAA,UAAU,OAAA;AAyBZ,2BAA2B;AAC3B,qCAUqB;AATnB,6GAAA,oBAAoB,OAAA;AACpB,gHAAA,uBAAuB,OAAA;AACvB,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,yGAAA,gBAAgB,OAAA;AAChB,wHAAA,+BAA+B,OAAA;AAC/B,kHAAA,yBAAyB,OAAA;AACzB,qHAAA,4BAA4B,OAAA;AAC5B,8GAAA,qBAAqB,OAAA;AAGvB,mBAAmB;AACnB,0CAAwB;AACxB,8CAA4B;AAE5B,oBAAoB;AACpB,+CAA6B;AAE7B,sCAAsC;AACtC,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,wCAAwC;;;;;;;;;;;;;;;;;AAExC,qBAAqB;AACrB,mCAAuE;AAA9D,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnC,wBAAwB;AACxB,6CAAgD;AAAvC,0GAAA,aAAa,OAAA;AAGtB,qBAAqB;AACrB,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,mCAAqC;AAA5B,+FAAA,OAAO,OAAA;AAChB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,mCAAqC;AAA5B,+FAAA,OAAO,OAAA;AAChB,mCASoB;AARlB,+FAAA,OAAO,OAAA;AAST,+CAI0B;AAHxB,2GAAA,aAAa,OAAA;AAIf,mDAAqD;AAA5C,+GAAA,eAAe,OAAA;AACxB,6CAIyB;AAHvB,yGAAA,YAAY,OAAA;AAId,mDAAqD;AAA5C,+GAAA,eAAe,OAAA;AACxB,6CAIyB;AAHvB,yGAAA,YAAY,OAAA;AAId,uDAAwD;AAA/C,kHAAA,gBAAgB,OAAA;AACzB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,yCAA2C;AAAlC,qGAAA,UAAU,OAAA;AACnB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,6CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,qCAAuC;AAA9B,iGAAA,QAAQ,OAAA;AACjB,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,2CAewB;AAdtB,uGAAA,WAAW,OAAA;AAeb,uCAA+F;AAAtF,mGAAA,SAAS,OAAA;AAClB,uCAKsB;AAJpB,mGAAA,SAAS,OAAA;AAKX,2CAA6C;AAApC,uGAAA,WAAW,OAAA;AACpB,yCAAuE;AAA9D,qGAAA,UAAU,OAAA;AACnB,6DAMiC;AAL/B,wHAAA,mBAAmB,OAAA;AAOrB,4BAA4B;AAC5B,yCAwBuB;AAvBrB,qGAAA,UAAU,OAAA;AAyBZ,2BAA2B;AAC3B,qCAUqB;AATnB,6GAAA,oBAAoB,OAAA;AACpB,gHAAA,uBAAuB,OAAA;AACvB,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,yGAAA,gBAAgB,OAAA;AAChB,wHAAA,+BAA+B,OAAA;AAC/B,kHAAA,yBAAyB,OAAA;AACzB,qHAAA,4BAA4B,OAAA;AAC5B,8GAAA,qBAAqB,OAAA;AAGvB,mBAAmB;AACnB,0CAAwB;AACxB,8CAA4B;AAE5B,oBAAoB;AACpB,+CAA6B;AAE7B,sCAAsC;AACtC,8CAA4B"}
@@ -0,0 +1,114 @@
1
+ import { AxiosError } from 'axios';
2
+ /**
3
+ * Backend error response structure
4
+ */
5
+ export interface BackendErrorResponse {
6
+ error?: string;
7
+ message?: string;
8
+ details?: {
9
+ code?: string;
10
+ field?: string;
11
+ [key: string]: any;
12
+ };
13
+ metadata?: {
14
+ timestamp?: string;
15
+ requestId?: string;
16
+ [key: string]: any;
17
+ };
18
+ }
19
+ /**
20
+ * Custom SDK Error class that preserves HTTP status codes and backend error details
21
+ */
22
+ export declare class UlobaSDKError extends Error {
23
+ /**
24
+ * HTTP status code from the response
25
+ */
26
+ readonly statusCode: number;
27
+ /**
28
+ * Error code from backend (e.g., 'UNAUTHORIZED', 'VALIDATION_ERROR')
29
+ */
30
+ readonly code?: string;
31
+ /**
32
+ * Original error message from backend
33
+ */
34
+ readonly backendMessage?: string;
35
+ /**
36
+ * Additional error details from backend
37
+ */
38
+ readonly details?: Record<string, any>;
39
+ /**
40
+ * Request metadata
41
+ */
42
+ readonly metadata?: {
43
+ url?: string;
44
+ method?: string;
45
+ timestamp?: string;
46
+ requestId?: string;
47
+ [key: string]: any;
48
+ };
49
+ /**
50
+ * Original axios error (if available)
51
+ */
52
+ readonly originalError?: AxiosError;
53
+ constructor(params: {
54
+ message: string;
55
+ statusCode: number;
56
+ code?: string;
57
+ backendMessage?: string;
58
+ details?: Record<string, any>;
59
+ metadata?: Record<string, any>;
60
+ originalError?: AxiosError;
61
+ });
62
+ /**
63
+ * Create SDK error from Axios error
64
+ */
65
+ static fromAxiosError(error: AxiosError<any>): UlobaSDKError;
66
+ /**
67
+ * Check if error is a specific status code
68
+ */
69
+ isStatus(code: number): boolean;
70
+ /**
71
+ * Check if error is a client error (4xx)
72
+ */
73
+ isClientError(): boolean;
74
+ /**
75
+ * Check if error is a server error (5xx)
76
+ */
77
+ isServerError(): boolean;
78
+ /**
79
+ * Check if error is an authentication error (401)
80
+ */
81
+ isAuthError(): boolean;
82
+ /**
83
+ * Check if error is a permission error (403)
84
+ */
85
+ isPermissionError(): boolean;
86
+ /**
87
+ * Check if error is a not found error (404)
88
+ */
89
+ isNotFoundError(): boolean;
90
+ /**
91
+ * Check if error is a validation error (400 or 422)
92
+ */
93
+ isValidationError(): boolean;
94
+ /**
95
+ * Convert error to JSON for logging
96
+ */
97
+ toJSON(): {
98
+ name: string;
99
+ message: string;
100
+ statusCode: number;
101
+ code: string | undefined;
102
+ backendMessage: string | undefined;
103
+ details: Record<string, any> | undefined;
104
+ metadata: {
105
+ [key: string]: any;
106
+ url?: string;
107
+ method?: string;
108
+ timestamp?: string;
109
+ requestId?: string;
110
+ } | undefined;
111
+ stack: string | undefined;
112
+ };
113
+ }
114
+ //# sourceMappingURL=sdk-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-error.d.ts","sourceRoot":"","sources":["../../src/lib/sdk-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC;;OAEG;IACH,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC;;OAEG;IACH,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9C;;OAEG;IACH,SAAgB,QAAQ,CAAC,EAAE;QACzB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,SAAgB,aAAa,CAAC,EAAE,UAAU,CAAC;gBAE/B,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,aAAa,CAAC,EAAE,UAAU,CAAC;KAC5B;IAgBD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa;IA8D5D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,MAAM;;;;;;;;;kBAzJE,MAAM;qBACH,MAAM;wBACH,MAAM;wBACN,MAAM;;;;CAkKrB"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UlobaSDKError = void 0;
4
+ /**
5
+ * Custom SDK Error class that preserves HTTP status codes and backend error details
6
+ */
7
+ class UlobaSDKError extends Error {
8
+ /**
9
+ * HTTP status code from the response
10
+ */
11
+ statusCode;
12
+ /**
13
+ * Error code from backend (e.g., 'UNAUTHORIZED', 'VALIDATION_ERROR')
14
+ */
15
+ code;
16
+ /**
17
+ * Original error message from backend
18
+ */
19
+ backendMessage;
20
+ /**
21
+ * Additional error details from backend
22
+ */
23
+ details;
24
+ /**
25
+ * Request metadata
26
+ */
27
+ metadata;
28
+ /**
29
+ * Original axios error (if available)
30
+ */
31
+ originalError;
32
+ constructor(params) {
33
+ super(params.message);
34
+ this.name = 'UlobaSDKError';
35
+ this.statusCode = params.statusCode;
36
+ this.code = params.code;
37
+ this.backendMessage = params.backendMessage;
38
+ this.details = params.details;
39
+ this.metadata = params.metadata;
40
+ this.originalError = params.originalError;
41
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
42
+ if (Error.captureStackTrace) {
43
+ Error.captureStackTrace(this, UlobaSDKError);
44
+ }
45
+ }
46
+ /**
47
+ * Create SDK error from Axios error
48
+ */
49
+ static fromAxiosError(error) {
50
+ const statusCode = error.response?.status || 500;
51
+ const backendData = error.response?.data;
52
+ // Extract error information from backend response
53
+ const backendMessage = backendData?.error || backendData?.message;
54
+ const code = backendData?.details?.code;
55
+ const details = backendData?.details;
56
+ // Build user-friendly message based on status code
57
+ let message;
58
+ switch (statusCode) {
59
+ case 400:
60
+ message = backendMessage || 'Invalid request. Please check your input.';
61
+ break;
62
+ case 401:
63
+ message = 'Authentication required. Please log in.';
64
+ break;
65
+ case 403:
66
+ message = backendMessage || 'You do not have permission to perform this action.';
67
+ break;
68
+ case 404:
69
+ message = backendMessage || 'The requested resource was not found.';
70
+ break;
71
+ case 409:
72
+ message = backendMessage || 'Conflict. The resource already exists or is in an incompatible state.';
73
+ break;
74
+ case 422:
75
+ message = backendMessage || 'Validation error. Please check your input.';
76
+ break;
77
+ case 429:
78
+ message = 'Too many requests. Please try again later.';
79
+ break;
80
+ case 500:
81
+ message = 'Server error. Please try again later.';
82
+ break;
83
+ case 502:
84
+ case 503:
85
+ case 504:
86
+ message = 'Service temporarily unavailable. Please try again later.';
87
+ break;
88
+ default:
89
+ message = backendMessage || `Request failed with status ${statusCode}`;
90
+ }
91
+ return new UlobaSDKError({
92
+ message,
93
+ statusCode,
94
+ code,
95
+ backendMessage,
96
+ details,
97
+ metadata: {
98
+ url: error.config?.url,
99
+ method: error.config?.method?.toUpperCase(),
100
+ timestamp: backendData?.metadata?.timestamp || new Date().toISOString(),
101
+ requestId: backendData?.metadata?.requestId,
102
+ },
103
+ originalError: error,
104
+ });
105
+ }
106
+ /**
107
+ * Check if error is a specific status code
108
+ */
109
+ isStatus(code) {
110
+ return this.statusCode === code;
111
+ }
112
+ /**
113
+ * Check if error is a client error (4xx)
114
+ */
115
+ isClientError() {
116
+ return this.statusCode >= 400 && this.statusCode < 500;
117
+ }
118
+ /**
119
+ * Check if error is a server error (5xx)
120
+ */
121
+ isServerError() {
122
+ return this.statusCode >= 500 && this.statusCode < 600;
123
+ }
124
+ /**
125
+ * Check if error is an authentication error (401)
126
+ */
127
+ isAuthError() {
128
+ return this.statusCode === 401;
129
+ }
130
+ /**
131
+ * Check if error is a permission error (403)
132
+ */
133
+ isPermissionError() {
134
+ return this.statusCode === 403;
135
+ }
136
+ /**
137
+ * Check if error is a not found error (404)
138
+ */
139
+ isNotFoundError() {
140
+ return this.statusCode === 404;
141
+ }
142
+ /**
143
+ * Check if error is a validation error (400 or 422)
144
+ */
145
+ isValidationError() {
146
+ return this.statusCode === 400 || this.statusCode === 422;
147
+ }
148
+ /**
149
+ * Convert error to JSON for logging
150
+ */
151
+ toJSON() {
152
+ return {
153
+ name: this.name,
154
+ message: this.message,
155
+ statusCode: this.statusCode,
156
+ code: this.code,
157
+ backendMessage: this.backendMessage,
158
+ details: this.details,
159
+ metadata: this.metadata,
160
+ stack: this.stack,
161
+ };
162
+ }
163
+ }
164
+ exports.UlobaSDKError = UlobaSDKError;
165
+ //# sourceMappingURL=sdk-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-error.js","sourceRoot":"","sources":["../../src/lib/sdk-error.ts"],"names":[],"mappings":"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"}