@sebspark/openapi-core 3.0.0 → 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.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AxiosError } from 'axios';
2
2
  import { OutgoingHttpHeaders } from 'node:http';
3
3
  import { RetrySettings } from '@sebspark/retry';
4
- import { Request, Response, NextFunction } from 'express';
4
+ import { RequestHandler, Request } from 'express-serve-static-core';
5
5
 
6
6
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD';
7
7
  type SchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
@@ -682,9 +682,9 @@ type APIResponse<Data = undefined, Headers = undefined> = Data extends undefined
682
682
  data: Data;
683
683
  headers: Headers;
684
684
  };
685
- type GenericRouteHandler = (req: Request, res: Response, next: NextFunction) => void | Promise<void>;
685
+ type GenericRouteHandler = RequestHandler;
686
686
  type RouteHandler = {
687
- pre?: GenericRouteHandler | GenericRouteHandler[];
687
+ pre?: RequestHandler | RequestHandler[];
688
688
  handler: <RequestArgs, Response extends [
689
689
  number,
690
690
  APIResponse<unknown | undefined, Record<string, string> | undefined>
@@ -693,7 +693,7 @@ type RouteHandler = {
693
693
  type Route<Handler extends RouteHandler = RouteHandler> = Record<Verb, Handler>;
694
694
  type APIServerDefinition = Record<string, Partial<Route>>;
695
695
  type APIServerOptions = {
696
- pre?: GenericRouteHandler | GenericRouteHandler[];
696
+ pre?: RequestHandler | RequestHandler[];
697
697
  };
698
698
  type RequestArgs = Request & {
699
699
  params?: Record<string, string>;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/errors.ts
2
- var _util = require('util');
1
+ // src/errors.ts
2
+ import {inspect} from "util";
3
3
  var HttpError = class extends Error {
4
4
  constructor(statusCode, message, cause) {
5
5
  super(message);
@@ -15,7 +15,7 @@ var HttpError = class extends Error {
15
15
  message: this.message
16
16
  };
17
17
  if (showStack) {
18
- serialized.stack = _util.inspect.call(void 0, this);
18
+ serialized.stack = inspect(this);
19
19
  }
20
20
  return serialized;
21
21
  }
@@ -303,61 +303,60 @@ var createHttpError = (statusCode, message, cause) => {
303
303
  case 511:
304
304
  return new NetworkAuthenticationRequiredError(message, cause);
305
305
  default:
306
- return new HttpError(statusCode, message != null ? message : "Error", cause);
306
+ return new HttpError(statusCode, message ?? "Error", cause);
307
307
  }
308
308
  };
309
309
  var fromAxiosError = (axiosError) => {
310
- var _a, _b, _c;
311
- const statusCode = ((_a = axiosError.response) == null ? void 0 : _a.status) || 500;
312
- const message = ((_b = axiosError.response) == null ? void 0 : _b.statusText) || "Internal Server Error";
310
+ const statusCode = axiosError.response?.status || 500;
311
+ const message = axiosError.response?.statusText || "Internal Server Error";
313
312
  const cause = new Error(axiosError.message);
314
313
  cause.name = axiosError.name;
315
314
  cause.stack = axiosError.stack;
316
- cause.cause = (_c = axiosError == null ? void 0 : axiosError.response) == null ? void 0 : _c.data;
315
+ cause.cause = axiosError?.response?.data;
317
316
  return createHttpError(statusCode, message, cause);
318
317
  };
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
-
362
-
363
- exports.BadGatewayError = BadGatewayError; exports.BadRequestError = BadRequestError; exports.ConflictError = ConflictError; exports.ExpectationFailedError = ExpectationFailedError; exports.FailedDependencyError = FailedDependencyError; exports.ForbiddenError = ForbiddenError; exports.GatewayTimeoutError = GatewayTimeoutError; exports.GoneError = GoneError; exports.HTTPVersionNotSupportedError = HTTPVersionNotSupportedError; exports.HttpError = HttpError; exports.IMATeapotError = IMATeapotError; exports.InsufficientStorageError = InsufficientStorageError; exports.InternalServerError = InternalServerError; exports.LengthRequiredError = LengthRequiredError; exports.LockedError = LockedError; exports.LoopDetectedError = LoopDetectedError; exports.MethodNotAllowedError = MethodNotAllowedError; exports.MisdirectedRequestError = MisdirectedRequestError; exports.NetworkAuthenticationRequiredError = NetworkAuthenticationRequiredError; exports.NotAcceptableError = NotAcceptableError; exports.NotExtendedError = NotExtendedError; exports.NotFoundError = NotFoundError; exports.NotImplementedError = NotImplementedError; exports.PayloadTooLargeError = PayloadTooLargeError; exports.PaymentRequiredError = PaymentRequiredError; exports.PreconditionFailedError = PreconditionFailedError; exports.PreconditionRequiredError = PreconditionRequiredError; exports.ProxyAuthenticationRequiredError = ProxyAuthenticationRequiredError; exports.RangeNotSatisfiableError = RangeNotSatisfiableError; exports.RequestHeaderFieldsTooLargeError = RequestHeaderFieldsTooLargeError; exports.RequestTimeoutError = RequestTimeoutError; exports.ServiceUnavailableError = ServiceUnavailableError; exports.TooEarlyError = TooEarlyError; exports.TooManyRequestsError = TooManyRequestsError; exports.URITooLongError = URITooLongError; exports.UnauthorizedError = UnauthorizedError; exports.UnavailableForLegalReasonsError = UnavailableForLegalReasonsError; exports.UnprocessableEntityError = UnprocessableEntityError; exports.UnsupportedMediaTypeError = UnsupportedMediaTypeError; exports.UpgradeRequiredError = UpgradeRequiredError; exports.VariantAlsoNegotiatesError = VariantAlsoNegotiatesError; exports.createHttpError = createHttpError; exports.fromAxiosError = fromAxiosError;
318
+ export {
319
+ BadGatewayError,
320
+ BadRequestError,
321
+ ConflictError,
322
+ ExpectationFailedError,
323
+ FailedDependencyError,
324
+ ForbiddenError,
325
+ GatewayTimeoutError,
326
+ GoneError,
327
+ HTTPVersionNotSupportedError,
328
+ HttpError,
329
+ IMATeapotError,
330
+ InsufficientStorageError,
331
+ InternalServerError,
332
+ LengthRequiredError,
333
+ LockedError,
334
+ LoopDetectedError,
335
+ MethodNotAllowedError,
336
+ MisdirectedRequestError,
337
+ NetworkAuthenticationRequiredError,
338
+ NotAcceptableError,
339
+ NotExtendedError,
340
+ NotFoundError,
341
+ NotImplementedError,
342
+ PayloadTooLargeError,
343
+ PaymentRequiredError,
344
+ PreconditionFailedError,
345
+ PreconditionRequiredError,
346
+ ProxyAuthenticationRequiredError,
347
+ RangeNotSatisfiableError,
348
+ RequestHeaderFieldsTooLargeError,
349
+ RequestTimeoutError,
350
+ ServiceUnavailableError,
351
+ TooEarlyError,
352
+ TooManyRequestsError,
353
+ URITooLongError,
354
+ UnauthorizedError,
355
+ UnavailableForLegalReasonsError,
356
+ UnprocessableEntityError,
357
+ UnsupportedMediaTypeError,
358
+ UpgradeRequiredError,
359
+ VariantAlsoNegotiatesError,
360
+ createHttpError,
361
+ fromAxiosError
362
+ };
package/package.json CHANGED
@@ -1,28 +1,30 @@
1
1
  {
2
2
  "name": "@sebspark/openapi-core",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
+ "type": "module",
7
8
  "types": "dist/index.d.ts",
8
9
  "files": [
9
10
  "dist"
10
11
  ],
11
12
  "scripts": {
12
- "build": "tsup-node src/index.ts --format esm,cjs --dts",
13
+ "build": "tsup-node src/index.ts --format esm --target node22 --dts",
13
14
  "dev": "tsc --watch --noEmit",
14
15
  "lint": "biome check .",
15
16
  "test": "vitest run --passWithNoTests --coverage",
16
17
  "typecheck": "tsc --noEmit"
17
18
  },
18
19
  "devDependencies": {
19
- "tsconfig": "*",
20
+ "@sebspark/tsconfig": "*",
20
21
  "tsup-node": "0.1.0",
21
22
  "typescript": "5.9.3",
22
- "vitest": "4.0.3"
23
+ "vitest": "4.0.5"
23
24
  },
24
25
  "dependencies": {
25
26
  "@sebspark/retry": "*",
26
- "axios": "^1.12.2"
27
+ "axios": "1.13.1",
28
+ "express-serve-static-core": "0.1.1"
27
29
  }
28
30
  }
package/dist/index.mjs DELETED
@@ -1,363 +0,0 @@
1
- // src/errors.ts
2
- import {inspect} from "util";
3
- var HttpError = class extends Error {
4
- constructor(statusCode, message, cause) {
5
- super(message);
6
- if (cause) {
7
- this.stack = void 0;
8
- this.cause = cause;
9
- }
10
- this.statusCode = statusCode;
11
- Object.setPrototypeOf(this, HttpError.prototype);
12
- }
13
- toJSON(showStack = false) {
14
- const serialized = {
15
- message: this.message
16
- };
17
- if (showStack) {
18
- serialized.stack = inspect(this);
19
- }
20
- return serialized;
21
- }
22
- };
23
- var BadRequestError = class extends HttpError {
24
- constructor(message = "Bad Request", cause) {
25
- super(400, message, cause);
26
- }
27
- };
28
- var UnauthorizedError = class extends HttpError {
29
- constructor(message = "Unauthorized", cause) {
30
- super(401, message, cause);
31
- }
32
- };
33
- var PaymentRequiredError = class extends HttpError {
34
- constructor(message = "Payment Required", cause) {
35
- super(402, message, cause);
36
- }
37
- };
38
- var ForbiddenError = class extends HttpError {
39
- constructor(message = "Forbidden", cause) {
40
- super(403, message, cause);
41
- }
42
- };
43
- var NotFoundError = class extends HttpError {
44
- constructor(message = "Not Found", cause) {
45
- super(404, message, cause);
46
- }
47
- };
48
- var MethodNotAllowedError = class extends HttpError {
49
- constructor(message = "Method Not Allowed", cause) {
50
- super(405, message, cause);
51
- }
52
- };
53
- var NotAcceptableError = class extends HttpError {
54
- constructor(message = "Not Acceptable", cause) {
55
- super(406, message, cause);
56
- }
57
- };
58
- var ProxyAuthenticationRequiredError = class extends HttpError {
59
- constructor(message = "Proxy Authentication Required", cause) {
60
- super(407, message, cause);
61
- }
62
- };
63
- var RequestTimeoutError = class extends HttpError {
64
- constructor(message = "Request Timeout", cause) {
65
- super(408, message, cause);
66
- }
67
- };
68
- var ConflictError = class extends HttpError {
69
- constructor(message = "Conflict", cause) {
70
- super(409, message, cause);
71
- }
72
- };
73
- var GoneError = class extends HttpError {
74
- constructor(message = "Gone", cause) {
75
- super(410, message, cause);
76
- }
77
- };
78
- var LengthRequiredError = class extends HttpError {
79
- constructor(message = "Length Required", cause) {
80
- super(411, message, cause);
81
- }
82
- };
83
- var PreconditionFailedError = class extends HttpError {
84
- constructor(message = "Precondition Failed", cause) {
85
- super(412, message, cause);
86
- }
87
- };
88
- var PayloadTooLargeError = class extends HttpError {
89
- constructor(message = "Payload Too Large", cause) {
90
- super(413, message, cause);
91
- }
92
- };
93
- var URITooLongError = class extends HttpError {
94
- constructor(message = "URI Too Long", cause) {
95
- super(414, message, cause);
96
- }
97
- };
98
- var UnsupportedMediaTypeError = class extends HttpError {
99
- constructor(message = "Unsupported Media Type", cause) {
100
- super(415, message, cause);
101
- }
102
- };
103
- var RangeNotSatisfiableError = class extends HttpError {
104
- constructor(message = "Range Not Satisfiable", cause) {
105
- super(416, message, cause);
106
- }
107
- };
108
- var ExpectationFailedError = class extends HttpError {
109
- constructor(message = "Expectation Failed", cause) {
110
- super(417, message, cause);
111
- }
112
- };
113
- var IMATeapotError = class extends HttpError {
114
- constructor(message = "I'm a teapot", cause) {
115
- super(418, message, cause);
116
- }
117
- };
118
- var MisdirectedRequestError = class extends HttpError {
119
- constructor(message = "Misdirected Request", cause) {
120
- super(421, message, cause);
121
- }
122
- };
123
- var UnprocessableEntityError = class extends HttpError {
124
- constructor(message = "Unprocessable Entity", cause) {
125
- super(422, message, cause);
126
- }
127
- };
128
- var LockedError = class extends HttpError {
129
- constructor(message = "Locked", cause) {
130
- super(423, message, cause);
131
- }
132
- };
133
- var FailedDependencyError = class extends HttpError {
134
- constructor(message = "Failed Dependency", cause) {
135
- super(424, message, cause);
136
- }
137
- };
138
- var TooEarlyError = class extends HttpError {
139
- constructor(message = "Too Early", cause) {
140
- super(425, message, cause);
141
- }
142
- };
143
- var UpgradeRequiredError = class extends HttpError {
144
- constructor(message = "Upgrade Required", cause) {
145
- super(426, message, cause);
146
- }
147
- };
148
- var PreconditionRequiredError = class extends HttpError {
149
- constructor(message = "Precondition Required", cause) {
150
- super(428, message, cause);
151
- }
152
- };
153
- var TooManyRequestsError = class extends HttpError {
154
- constructor(message = "Too Many Requests", cause) {
155
- super(429, message, cause);
156
- }
157
- };
158
- var RequestHeaderFieldsTooLargeError = class extends HttpError {
159
- constructor(message = "Request Header Fields Too Large", cause) {
160
- super(431, message, cause);
161
- }
162
- };
163
- var UnavailableForLegalReasonsError = class extends HttpError {
164
- constructor(message = "Unavailable For Legal Reasons", cause) {
165
- super(451, message, cause);
166
- }
167
- };
168
- var InternalServerError = class extends HttpError {
169
- constructor(message = "Internal Server Error", cause) {
170
- super(500, message, cause);
171
- }
172
- };
173
- var NotImplementedError = class extends HttpError {
174
- constructor(message = "Not Implemented", cause) {
175
- super(501, message, cause);
176
- }
177
- };
178
- var BadGatewayError = class extends HttpError {
179
- constructor(message = "Bad Gateway", cause) {
180
- super(502, message, cause);
181
- }
182
- };
183
- var ServiceUnavailableError = class extends HttpError {
184
- constructor(message = "Service Unavailable", cause) {
185
- super(503, message, cause);
186
- }
187
- };
188
- var GatewayTimeoutError = class extends HttpError {
189
- constructor(message = "Gateway Timeout", cause) {
190
- super(504, message, cause);
191
- }
192
- };
193
- var HTTPVersionNotSupportedError = class extends HttpError {
194
- constructor(message = "HTTP Version Not Supported", cause) {
195
- super(505, message, cause);
196
- }
197
- };
198
- var VariantAlsoNegotiatesError = class extends HttpError {
199
- constructor(message = "Variant Also Negotiates", cause) {
200
- super(506, message, cause);
201
- }
202
- };
203
- var InsufficientStorageError = class extends HttpError {
204
- constructor(message = "Insufficient Storage", cause) {
205
- super(507, message, cause);
206
- }
207
- };
208
- var LoopDetectedError = class extends HttpError {
209
- constructor(message = "Loop Detected", cause) {
210
- super(508, message, cause);
211
- }
212
- };
213
- var NotExtendedError = class extends HttpError {
214
- constructor(message = "Not Extended", cause) {
215
- super(510, message, cause);
216
- }
217
- };
218
- var NetworkAuthenticationRequiredError = class extends HttpError {
219
- constructor(message = "Network Authentication Required", cause) {
220
- super(511, message, cause);
221
- }
222
- };
223
- var createHttpError = (statusCode, message, cause) => {
224
- switch (statusCode) {
225
- case 400:
226
- return new BadRequestError(message, cause);
227
- case 401:
228
- return new UnauthorizedError(message, cause);
229
- case 402:
230
- return new PaymentRequiredError(message, cause);
231
- case 403:
232
- return new ForbiddenError(message, cause);
233
- case 404:
234
- return new NotFoundError(message, cause);
235
- case 405:
236
- return new MethodNotAllowedError(message, cause);
237
- case 406:
238
- return new NotAcceptableError(message, cause);
239
- case 407:
240
- return new ProxyAuthenticationRequiredError(message, cause);
241
- case 408:
242
- return new RequestTimeoutError(message, cause);
243
- case 409:
244
- return new ConflictError(message, cause);
245
- case 410:
246
- return new GoneError(message, cause);
247
- case 411:
248
- return new LengthRequiredError(message, cause);
249
- case 412:
250
- return new PreconditionFailedError(message, cause);
251
- case 413:
252
- return new PayloadTooLargeError(message, cause);
253
- case 414:
254
- return new URITooLongError(message, cause);
255
- case 415:
256
- return new UnsupportedMediaTypeError(message, cause);
257
- case 416:
258
- return new RangeNotSatisfiableError(message, cause);
259
- case 417:
260
- return new ExpectationFailedError(message, cause);
261
- case 418:
262
- return new IMATeapotError(message, cause);
263
- case 421:
264
- return new MisdirectedRequestError(message, cause);
265
- case 422:
266
- return new UnprocessableEntityError(message, cause);
267
- case 423:
268
- return new LockedError(message, cause);
269
- case 424:
270
- return new FailedDependencyError(message, cause);
271
- case 425:
272
- return new TooEarlyError(message, cause);
273
- case 426:
274
- return new UpgradeRequiredError(message, cause);
275
- case 428:
276
- return new PreconditionRequiredError(message, cause);
277
- case 429:
278
- return new TooManyRequestsError(message, cause);
279
- case 431:
280
- return new RequestHeaderFieldsTooLargeError(message, cause);
281
- case 451:
282
- return new UnavailableForLegalReasonsError(message, cause);
283
- case 500:
284
- return new InternalServerError(message, cause);
285
- case 501:
286
- return new NotImplementedError(message, cause);
287
- case 502:
288
- return new BadGatewayError(message, cause);
289
- case 503:
290
- return new ServiceUnavailableError(message, cause);
291
- case 504:
292
- return new GatewayTimeoutError(message, cause);
293
- case 505:
294
- return new HTTPVersionNotSupportedError(message, cause);
295
- case 506:
296
- return new VariantAlsoNegotiatesError(message, cause);
297
- case 507:
298
- return new InsufficientStorageError(message, cause);
299
- case 508:
300
- return new LoopDetectedError(message, cause);
301
- case 510:
302
- return new NotExtendedError(message, cause);
303
- case 511:
304
- return new NetworkAuthenticationRequiredError(message, cause);
305
- default:
306
- return new HttpError(statusCode, message != null ? message : "Error", cause);
307
- }
308
- };
309
- var fromAxiosError = (axiosError) => {
310
- var _a, _b, _c;
311
- const statusCode = ((_a = axiosError.response) == null ? void 0 : _a.status) || 500;
312
- const message = ((_b = axiosError.response) == null ? void 0 : _b.statusText) || "Internal Server Error";
313
- const cause = new Error(axiosError.message);
314
- cause.name = axiosError.name;
315
- cause.stack = axiosError.stack;
316
- cause.cause = (_c = axiosError == null ? void 0 : axiosError.response) == null ? void 0 : _c.data;
317
- return createHttpError(statusCode, message, cause);
318
- };
319
- export {
320
- BadGatewayError,
321
- BadRequestError,
322
- ConflictError,
323
- ExpectationFailedError,
324
- FailedDependencyError,
325
- ForbiddenError,
326
- GatewayTimeoutError,
327
- GoneError,
328
- HTTPVersionNotSupportedError,
329
- HttpError,
330
- IMATeapotError,
331
- InsufficientStorageError,
332
- InternalServerError,
333
- LengthRequiredError,
334
- LockedError,
335
- LoopDetectedError,
336
- MethodNotAllowedError,
337
- MisdirectedRequestError,
338
- NetworkAuthenticationRequiredError,
339
- NotAcceptableError,
340
- NotExtendedError,
341
- NotFoundError,
342
- NotImplementedError,
343
- PayloadTooLargeError,
344
- PaymentRequiredError,
345
- PreconditionFailedError,
346
- PreconditionRequiredError,
347
- ProxyAuthenticationRequiredError,
348
- RangeNotSatisfiableError,
349
- RequestHeaderFieldsTooLargeError,
350
- RequestTimeoutError,
351
- ServiceUnavailableError,
352
- TooEarlyError,
353
- TooManyRequestsError,
354
- URITooLongError,
355
- UnauthorizedError,
356
- UnavailableForLegalReasonsError,
357
- UnprocessableEntityError,
358
- UnsupportedMediaTypeError,
359
- UpgradeRequiredError,
360
- VariantAlsoNegotiatesError,
361
- createHttpError,
362
- fromAxiosError
363
- };