@superblocksteam/sabs-client 0.751.0 → 0.753.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/sabs-client",
3
- "version": "v0.751.0",
3
+ "version": "0.753.0",
4
4
  "description": "Superblocks Application Build System Client for TypeScript",
5
5
  "license": "Superblocks Community Software License",
6
6
  "repository": {
@@ -15,19 +15,16 @@
15
15
  "main": "dist/index.js",
16
16
  "types": "dist/index.d.ts",
17
17
  "dependencies": {
18
- "@superblocksteam/sabs-types": "v0.751.0",
19
- "@superblocksteam/shared": "0.9586.7",
18
+ "@superblocksteam/sabs-types": "0.753.0",
19
+ "@superblocksteam/shared": "0.9614.2",
20
20
  "axios": "^1.19.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@babel/preset-typescript": "^7.26.0",
24
- "@side/jest-runtime": "^1.1.0",
25
- "@types/jest": "^29.5.14",
26
- "jest": "^29.7.0",
27
- "rimraf": "6.0.1",
28
- "ts-jest": "^29.2.6",
29
- "ts-node": "^10.9.2",
30
- "typescript": "^5.8.3"
23
+ "@types/node": "^24.19.0",
24
+ "@vitest/coverage-v8": "4.1.11",
25
+ "rimraf": "^6.1.3",
26
+ "typescript": "^6.0.3",
27
+ "vitest": "4.1.11"
31
28
  },
32
29
  "lint-staged": {
33
30
  "*.{ts,js}": [
@@ -35,7 +32,7 @@
35
32
  ]
36
33
  },
37
34
  "engines": {
38
- "node": ">=20.19.x"
35
+ "node": ">=20.19"
39
36
  },
40
37
  "scripts": {
41
38
  "build": "tsc",
@@ -43,7 +40,7 @@
43
40
  "lint": "eslint . --max-warnings 0",
44
41
  "lint:fix": "eslint . --ext ts --fix --cache --cache-strategy content --cache-location ~/.cache/eslint/",
45
42
  "lint:precommit": "eslint --ext ts --fix --cache --cache-strategy content --cache-location ~/.cache/eslint/",
46
- "test": "echo $SPEC_PATH && echo $TEST_NAME && jest -i ./${SPEC_PATH} -t ${TEST_NAME}",
47
- "test:coverage": "echo $SPEC_PATH && echo $TEST_NAME && jest --coverage --coverageReporters=text-summary json-summary lcov -i ./${SPEC_PATH} -t ${TEST_NAME}"
43
+ "test": "vitest run ${SPEC_PATH:-}",
44
+ "test:coverage": "vitest run --coverage ${SPEC_PATH:-}"
48
45
  }
49
46
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=errors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":""}
@@ -1,314 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const errors_1 = require("./errors");
4
- describe('errors', () => {
5
- describe('HttpError for unhandled status codes', () => {
6
- test('creates error with correct properties', () => {
7
- const status = 418;
8
- const message = 'I am a teapot';
9
- const error = new errors_1.HttpError(status, message);
10
- expect(error).toBeInstanceOf(Error);
11
- expect(error).toBeInstanceOf(errors_1.HttpError);
12
- expect(error.name).toBe('Error');
13
- expect(error.message).toBe(message);
14
- expect(error.status).toBe(status);
15
- expect(error.title).toBeUndefined(); // HttpError doesn't set title by default
16
- });
17
- test('has consistent interface with other error types', () => {
18
- const error = new errors_1.HttpError(422, 'Test message');
19
- expect(error.message).toBe('Test message');
20
- expect(error.status).toBe(422);
21
- // Should have the same interface as other HttpError types
22
- expect('status' in error).toBe(true);
23
- expect('message' in error).toBe(true);
24
- });
25
- test('has proper stack trace', () => {
26
- const error = new errors_1.HttpError(500, 'Test error');
27
- expect(error.stack).toBeDefined();
28
- expect(error.stack).toContain('Test error');
29
- });
30
- });
31
- describe('createErrorFromStatusCode', () => {
32
- test('creates BadRequestError for status 400', () => {
33
- const message = 'Invalid request';
34
- const error = (0, errors_1.createErrorFromStatusCode)(400, message);
35
- expect(error).toBeInstanceOf(errors_1.BadRequestError);
36
- expect(error.message).toBe('SABS API Error (400): Invalid request');
37
- });
38
- test('creates UnauthorizedError for status 401', () => {
39
- const message = 'Invalid credentials';
40
- const error = (0, errors_1.createErrorFromStatusCode)(401, message);
41
- expect(error).toBeInstanceOf(errors_1.UnauthorizedError);
42
- expect(error.message).toBe('SABS API Error (401): Invalid credentials');
43
- });
44
- test('creates ForbiddenError for status 403', () => {
45
- const message = 'Access denied';
46
- const error = (0, errors_1.createErrorFromStatusCode)(403, message);
47
- expect(error).toBeInstanceOf(errors_1.ForbiddenError);
48
- expect(error.message).toBe('SABS API Error (403): Access denied');
49
- });
50
- test('creates NotFoundError for status 404', () => {
51
- const message = 'Resource not found';
52
- const error = (0, errors_1.createErrorFromStatusCode)(404, message);
53
- expect(error).toBeInstanceOf(errors_1.NotFoundError);
54
- expect(error.message).toBe('SABS API Error (404): Resource not found');
55
- });
56
- test('creates ConflictError for status 409', () => {
57
- const message = 'Resource conflict';
58
- const error = (0, errors_1.createErrorFromStatusCode)(409, message);
59
- expect(error).toBeInstanceOf(errors_1.ConflictError);
60
- expect(error.message).toBe('SABS API Error (409): Resource conflict');
61
- });
62
- test('creates InternalServerError for status 500', () => {
63
- const error = (0, errors_1.createErrorFromStatusCode)(500, 'Server error');
64
- expect(error).toBeInstanceOf(errors_1.InternalServerError);
65
- expect(error.message).toBe('SABS API Error (500): Server error');
66
- });
67
- // A retryable upstream state must not arrive as InternalServerError: callers that
68
- // see status 500 stop retrying something only a retry can resolve (ENG-5812).
69
- test.each([
70
- [502, errors_1.BadGatewayError],
71
- [503, errors_1.ServiceUnavailableError]
72
- ])('creates a %s-specific error for a retryable upstream status', (statusCode, expectedType) => {
73
- const error = (0, errors_1.createErrorFromStatusCode)(statusCode, 'Server error');
74
- expect(error).toBeInstanceOf(expectedType);
75
- expect(error).not.toBeInstanceOf(errors_1.InternalServerError);
76
- expect(error.message).toBe(`SABS API Error (${statusCode}): Server error`);
77
- });
78
- test.each([502, 503, 504])('keeps status %s intact rather than reporting 500', (statusCode) => {
79
- const error = (0, errors_1.createErrorFromStatusCode)(statusCode, 'Server error');
80
- expect(error).toBeInstanceOf(errors_1.HttpError);
81
- expect(error.status).toBe(statusCode);
82
- });
83
- test('creates HttpError for unhandled status codes', () => {
84
- const statusCode = 418; // I'm a teapot
85
- const message = 'Teapot error';
86
- const error = (0, errors_1.createErrorFromStatusCode)(statusCode, message);
87
- expect(error).toBeInstanceOf(errors_1.HttpError);
88
- expect(error.message).toBe('SABS API Error (418): Teapot error');
89
- if (error instanceof errors_1.HttpError) {
90
- expect(error.status).toBe(statusCode);
91
- }
92
- });
93
- test('handles edge case status codes', () => {
94
- // Test some edge cases
95
- const testCases = [
96
- { status: 100, expected: errors_1.HttpError },
97
- { status: 200, expected: errors_1.HttpError },
98
- { status: 300, expected: errors_1.HttpError },
99
- { status: 451, expected: errors_1.HttpError }, // Unavailable For Legal Reasons
100
- { status: 999, expected: errors_1.HttpError }
101
- ];
102
- testCases.forEach(({ status, expected }) => {
103
- const error = (0, errors_1.createErrorFromStatusCode)(status, 'Test message');
104
- expect(error).toBeInstanceOf(expected);
105
- });
106
- });
107
- test('all error types have consistent HttpError interface', () => {
108
- const testCases = [
109
- { statusCode: 400, expectedType: errors_1.BadRequestError, expectedTitle: 'Bad request' },
110
- { statusCode: 500, expectedType: errors_1.InternalServerError, expectedTitle: 'Internal server error' },
111
- { statusCode: 418, expectedType: errors_1.HttpError, expectedTitle: undefined }
112
- ];
113
- testCases.forEach(({ statusCode, expectedType, expectedTitle }) => {
114
- const error = (0, errors_1.createErrorFromStatusCode)(statusCode, 'Test message');
115
- expect(error).toBeInstanceOf(expectedType);
116
- expect(error.message).toBe(`SABS API Error (${statusCode}): Test message`);
117
- // All error types should have consistent HttpError interface
118
- expect('status' in error).toBe(true);
119
- if ('status' in error) {
120
- expect(error.status).toBe(statusCode);
121
- }
122
- if ('title' in error) {
123
- expect(error.title).toBe(expectedTitle);
124
- }
125
- });
126
- });
127
- test('returns standard error types for known status codes', () => {
128
- const testCases = [
129
- { status: 400, expectedType: errors_1.BadRequestError },
130
- { status: 401, expectedType: errors_1.UnauthorizedError },
131
- { status: 403, expectedType: errors_1.ForbiddenError },
132
- { status: 404, expectedType: errors_1.NotFoundError },
133
- { status: 409, expectedType: errors_1.ConflictError },
134
- { status: 500, expectedType: errors_1.InternalServerError },
135
- { status: 502, expectedType: errors_1.BadGatewayError },
136
- { status: 503, expectedType: errors_1.ServiceUnavailableError },
137
- { status: 504, expectedType: errors_1.HttpError }
138
- ];
139
- testCases.forEach(({ status, expectedType }) => {
140
- const error = (0, errors_1.createErrorFromStatusCode)(status, 'Test message');
141
- expect(error).toBeInstanceOf(Error);
142
- expect(error).toBeInstanceOf(expectedType);
143
- expect(error.name).toBe('Error'); // Shared library errors use 'Error' as name
144
- expect(error.message).toBe(`SABS API Error (${status}): Test message`);
145
- });
146
- });
147
- });
148
- // The client retries on this set internally, and consumers are told to branch on it rather than
149
- // re-deriving it, so it has to stay in step with isRetriableError (which now delegates to it).
150
- describe('isRetriableStatus', () => {
151
- test.each([errors_1.NO_RESPONSE_STATUS, 408, 500, 502, 503, 504, 599])('treats %i as transient', (status) => {
152
- expect((0, errors_1.isRetriableStatus)(status)).toBe(true);
153
- });
154
- // The client retries a request that never got an answer, so the exported predicate has to
155
- // agree with it: a consumer branching on the status must not read this as permanent.
156
- test('agrees with the internal retry of a request that got no response', () => {
157
- const error = (0, errors_1.createNetworkError)('socket hang up');
158
- expect(error.status).toBe(errors_1.NO_RESPONSE_STATUS);
159
- expect((0, errors_1.isRetriableStatus)(error.status)).toBe(true);
160
- });
161
- test.each([200, 400, 401, 403, 404, 409, 429, 499])('treats %i as not transient', (status) => {
162
- expect((0, errors_1.isRetriableStatus)(status)).toBe(false);
163
- });
164
- // 504 has no dedicated error class, so the predicate is the only way to classify it.
165
- test('classifies the provisioning timeout that has no error class of its own', () => {
166
- const error = (0, errors_1.createErrorFromStatusCode)(504, 'live edit is being created but URL not available');
167
- expect(error.status).toBe(504);
168
- expect((0, errors_1.isRetriableStatus)(error.status)).toBe(true);
169
- });
170
- });
171
- describe('createClientError', () => {
172
- test('creates BadRequestError with client error prefix', () => {
173
- const message = 'Missing required parameter';
174
- const error = (0, errors_1.createClientError)(message);
175
- expect(error).toBeInstanceOf(errors_1.BadRequestError);
176
- expect(error.message).toBe('SABS Client Error: Missing required parameter');
177
- });
178
- test('handles empty message', () => {
179
- const error = (0, errors_1.createClientError)('');
180
- expect(error.message).toBe('SABS Client Error: ');
181
- });
182
- test('handles special characters in message', () => {
183
- const message = 'Invalid characters: <>&"\'';
184
- const error = (0, errors_1.createClientError)(message);
185
- expect(error.message).toBe(`SABS Client Error: ${message}`);
186
- });
187
- });
188
- describe('createNetworkError', () => {
189
- test('creates HttpError with status 0 (no HTTP response, e.g. network/connection failure)', () => {
190
- const message = 'Connection refused';
191
- const error = (0, errors_1.createNetworkError)(message);
192
- expect(error).toBeInstanceOf(errors_1.HttpError);
193
- expect(error).not.toBeInstanceOf(errors_1.InternalServerError);
194
- expect(error.status).toBe(0);
195
- expect(error.message).toBe('SABS Network Error: Connection refused');
196
- expect(error.title).toBe('Network error');
197
- });
198
- test('includes original error message when provided', () => {
199
- const message = 'Request failed';
200
- const originalError = new Error('ECONNREFUSED');
201
- const error = (0, errors_1.createNetworkError)(message, originalError);
202
- expect(error).toBeInstanceOf(errors_1.HttpError);
203
- expect(error.status).toBe(0);
204
- expect(error.message).toBe('SABS Network Error: Request failed (caused by: ECONNREFUSED)');
205
- });
206
- test('handles original error without message', () => {
207
- const message = 'Network issue';
208
- const originalError = new Error(); // Empty message
209
- const error = (0, errors_1.createNetworkError)(message, originalError);
210
- expect(error.message).toBe('SABS Network Error: Network issue (caused by: )');
211
- });
212
- test('handles null original error', () => {
213
- const message = 'Unknown network error';
214
- const error = (0, errors_1.createNetworkError)(message, undefined);
215
- expect(error.message).toBe('SABS Network Error: Unknown network error');
216
- });
217
- });
218
- describe('error inheritance and instanceof checks', () => {
219
- test('all error types are instances of Error', () => {
220
- const errors = [
221
- (0, errors_1.createErrorFromStatusCode)(400, 'Bad Request'),
222
- (0, errors_1.createErrorFromStatusCode)(401, 'Unauthorized'),
223
- (0, errors_1.createErrorFromStatusCode)(403, 'Forbidden'),
224
- (0, errors_1.createErrorFromStatusCode)(404, 'Not Found'),
225
- (0, errors_1.createErrorFromStatusCode)(409, 'Conflict'),
226
- (0, errors_1.createErrorFromStatusCode)(500, 'Internal Server Error'),
227
- (0, errors_1.createErrorFromStatusCode)(418, 'Teapot'),
228
- (0, errors_1.createClientError)('Client error'),
229
- (0, errors_1.createNetworkError)('Network error'),
230
- new errors_1.HttpError(422, 'Custom error')
231
- ];
232
- errors.forEach((error) => {
233
- expect(error).toBeInstanceOf(Error);
234
- expect(error.message).toBeDefined();
235
- expect(typeof error.message).toBe('string');
236
- expect(error.name).toBeDefined();
237
- });
238
- });
239
- test('error types can be distinguished via instanceof', () => {
240
- const badRequestError = (0, errors_1.createErrorFromStatusCode)(400, 'Bad Request');
241
- const unauthorizedError = (0, errors_1.createErrorFromStatusCode)(401, 'Unauthorized');
242
- const notFoundError = (0, errors_1.createErrorFromStatusCode)(404, 'Not Found');
243
- const httpError = (0, errors_1.createErrorFromStatusCode)(418, 'Teapot');
244
- // All errors extend HttpError, so they're all instances of HttpError
245
- expect(badRequestError).toBeInstanceOf(errors_1.BadRequestError);
246
- expect(badRequestError).toBeInstanceOf(errors_1.HttpError);
247
- expect(badRequestError).not.toBeInstanceOf(errors_1.UnauthorizedError);
248
- expect(unauthorizedError).toBeInstanceOf(errors_1.UnauthorizedError);
249
- expect(unauthorizedError).toBeInstanceOf(errors_1.HttpError);
250
- expect(unauthorizedError).not.toBeInstanceOf(errors_1.BadRequestError);
251
- expect(notFoundError).toBeInstanceOf(errors_1.NotFoundError);
252
- expect(notFoundError).toBeInstanceOf(errors_1.HttpError);
253
- expect(notFoundError).not.toBeInstanceOf(errors_1.BadRequestError);
254
- expect(httpError).toBeInstanceOf(errors_1.HttpError);
255
- expect(httpError).not.toBeInstanceOf(errors_1.BadRequestError);
256
- });
257
- });
258
- describe('error serialization and JSON handling', () => {
259
- test('errors can be converted to JSON for logging', () => {
260
- const error = new errors_1.HttpError(422, 'Test error');
261
- // Test that error properties are accessible for logging
262
- const logObject = {
263
- message: error.message,
264
- name: error.name,
265
- status: error.status,
266
- title: error.title
267
- };
268
- expect(logObject.message).toBe('Test error');
269
- expect(logObject.name).toBe('Error');
270
- expect(logObject.status).toBe(422);
271
- expect(logObject.title).toBeUndefined();
272
- });
273
- test('shared error types have basic error properties', () => {
274
- const error = (0, errors_1.createErrorFromStatusCode)(400, 'Validation failed');
275
- const logObject = {
276
- message: error.message,
277
- name: error.name,
278
- stack: error.stack
279
- };
280
- expect(logObject.message).toBe('SABS API Error (400): Validation failed');
281
- expect(logObject.name).toBeDefined();
282
- expect(logObject.stack).toBeDefined();
283
- });
284
- });
285
- describe('edge cases and error conditions', () => {
286
- test('handles undefined and null inputs gracefully', () => {
287
- // These should not throw, but create errors with undefined/null content
288
- expect(() => (0, errors_1.createErrorFromStatusCode)(400, undefined)).not.toThrow();
289
- expect(() => (0, errors_1.createErrorFromStatusCode)(400, null)).not.toThrow();
290
- expect(() => (0, errors_1.createClientError)(undefined)).not.toThrow();
291
- expect(() => (0, errors_1.createNetworkError)(undefined)).not.toThrow();
292
- });
293
- test('handles very large status codes', () => {
294
- const error = (0, errors_1.createErrorFromStatusCode)(999999, 'Large status code');
295
- expect(error).toBeInstanceOf(errors_1.HttpError);
296
- if (error instanceof errors_1.HttpError) {
297
- expect(error.status).toBe(999999);
298
- }
299
- });
300
- test('handles negative status codes', () => {
301
- const error = (0, errors_1.createErrorFromStatusCode)(-1, 'Negative status code');
302
- expect(error).toBeInstanceOf(errors_1.HttpError);
303
- if (error instanceof errors_1.HttpError) {
304
- expect(error.status).toBe(-1);
305
- }
306
- });
307
- test('handles very long error messages', () => {
308
- const longMessage = 'x'.repeat(10000);
309
- const error = (0, errors_1.createErrorFromStatusCode)(400, longMessage);
310
- expect(error.message).toContain(longMessage);
311
- });
312
- });
313
- });
314
- //# sourceMappingURL=errors.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sabs.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sabs.test.d.ts","sourceRoot":"","sources":["../src/sabs.test.ts"],"names":[],"mappings":""}