@sebspark/openapi-core 4.1.23 → 4.1.24
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/CHANGELOG.md +6 -0
- package/dist/index.d.mts +0 -18
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OutgoingHttpHeaders } from "node:http";
|
|
2
2
|
import { RetrySettings } from "@sebspark/retry";
|
|
3
3
|
import { Request, RequestHandler } from "express";
|
|
4
|
-
//#region src/common.d.ts
|
|
5
4
|
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD';
|
|
6
5
|
export type SchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
|
|
7
6
|
export type SchemaEnum = string[] | number[] | boolean[];
|
|
@@ -168,8 +167,6 @@ export type OAuthFlowObject = {
|
|
|
168
167
|
refreshUrl?: string;
|
|
169
168
|
scopes: Record<string, string>;
|
|
170
169
|
};
|
|
171
|
-
//#endregion
|
|
172
|
-
//#region src/bindings.d.ts
|
|
173
170
|
type ChannelBindingsObject = {
|
|
174
171
|
http?: HttpChannelBindingObject;
|
|
175
172
|
ws?: WebSocketChannelBindingObject;
|
|
@@ -328,8 +325,6 @@ type WebSocketServerBindingObject = BaseServerBindingObject & {};
|
|
|
328
325
|
type KafkaServerBindingObject = BaseServerBindingObject & {};
|
|
329
326
|
type MqttServerBindingObject = BaseServerBindingObject & {};
|
|
330
327
|
type AmqpServerBindingObject = BaseServerBindingObject & {};
|
|
331
|
-
//#endregion
|
|
332
|
-
//#region src/asyncapi.d.ts
|
|
333
328
|
export type AsyncApiDocument = {
|
|
334
329
|
asyncapi: string;
|
|
335
330
|
id?: string;
|
|
@@ -413,8 +408,6 @@ export type CorrelationIdObject = {
|
|
|
413
408
|
description?: string;
|
|
414
409
|
location: string;
|
|
415
410
|
};
|
|
416
|
-
//#endregion
|
|
417
|
-
//#region src/avsc.d.ts
|
|
418
411
|
export type AvroSchema = AvroRecord | AvroEnum | AvroArray | AvroMap | AvroPrimitive | AvroUnion;
|
|
419
412
|
export type AvroRecord = {
|
|
420
413
|
type: 'record';
|
|
@@ -448,8 +441,6 @@ export type AvroMap = {
|
|
|
448
441
|
};
|
|
449
442
|
export type AvroUnion = AvroSchema[];
|
|
450
443
|
export type AvroPrimitive = 'null' | 'boolean' | 'int' | 'long' | 'float' | 'double' | 'bytes' | 'string';
|
|
451
|
-
//#endregion
|
|
452
|
-
//#region src/errors.d.ts
|
|
453
444
|
export type ClientErrorCode = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451;
|
|
454
445
|
export type ServerErrorCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511;
|
|
455
446
|
export type ErrorCode = ClientErrorCode | ServerErrorCode;
|
|
@@ -584,8 +575,6 @@ export declare class NetworkAuthenticationRequiredError extends HttpError {
|
|
|
584
575
|
}
|
|
585
576
|
export declare const createHttpError: (statusCode: ErrorCode, message?: string, cause?: Error) => HttpError;
|
|
586
577
|
export declare const fromAxiosError: (error: unknown) => HttpError;
|
|
587
|
-
//#endregion
|
|
588
|
-
//#region src/openapi.d.ts
|
|
589
578
|
export type OpenApiDocument = {
|
|
590
579
|
openapi: string;
|
|
591
580
|
info: InfoObject;
|
|
@@ -661,16 +650,12 @@ export type LinkObject = {
|
|
|
661
650
|
};
|
|
662
651
|
export type CallbackObject = Record<string, PathItemObject | ReferenceObject>;
|
|
663
652
|
export type SecurityRequirementObject = Record<string, string[]>;
|
|
664
|
-
//#endregion
|
|
665
|
-
//#region src/ts-extensions.d.ts
|
|
666
653
|
type Empty = Record<never, never>;
|
|
667
654
|
type Serialized<T> = T extends Date ? string : T extends bigint ? string : T extends Map<infer K, infer V> ? Array<[Serialized<K>, Serialized<V>]> : T extends Set<infer V> ? Array<Serialized<V>> : T extends (infer U)[] ? Array<Serialized<U>> : T extends object ? { [K in keyof T]: Serialized<T[K]>; } : T;
|
|
668
655
|
type PartiallySerialized<T> = { [K in keyof T]: T[K] | Serialized<T[K]>; };
|
|
669
656
|
type ConvertToQueryParam<T> = T extends number ? string : T extends boolean ? string : T extends Date ? string : T extends string ? T : T extends Array<infer U> ? Array<ConvertToQueryParam<U>> : T extends object ? { [K in keyof T]: ConvertToQueryParam<T[K]>; } : T;
|
|
670
657
|
type QueryParams<T> = { [K in keyof T]: ConvertToQueryParam<T[K]>; };
|
|
671
658
|
type LowerCaseHeaders<T> = { [P in keyof T as Lowercase<P & string>]: T[P]; };
|
|
672
|
-
//#endregion
|
|
673
|
-
//#region src/types.d.ts
|
|
674
659
|
export type ExpressRequest = Request;
|
|
675
660
|
export type Verb = 'get' | 'post' | 'put' | 'patch' | 'delete';
|
|
676
661
|
export type APIResponse<Data = undefined, Headers = undefined> = Data extends undefined ? Headers extends undefined ? Empty : {
|
|
@@ -719,8 +704,6 @@ export type BaseClient = {
|
|
|
719
704
|
patch: <U extends string, A extends PayloadRequestArgs | never, R extends APIResponse<unknown | undefined, Record<string, string> | undefined>>(url: U, args?: A, opts?: RequestOptions) => Promise<R>;
|
|
720
705
|
delete: <U extends string, A extends RequestArgs | never, R extends APIResponse<unknown, unknown>>(url: U, args?: A, opts?: RequestOptions) => Promise<R>;
|
|
721
706
|
};
|
|
722
|
-
//#endregion
|
|
723
|
-
//#region src/schema.d.ts
|
|
724
707
|
/**
|
|
725
708
|
* Marks unimplemented paths as deprecated and tags them with 'not-implemented'.
|
|
726
709
|
* Use to hide or visually separate endpoints not yet available on the given server.
|
|
@@ -754,6 +737,5 @@ export declare const resolveRef: (ref: string, doc: OpenApiDocument) => SchemaOb
|
|
|
754
737
|
* @returns A cloned document with flattened enum schemas
|
|
755
738
|
*/
|
|
756
739
|
export declare const flattenEnums: <T extends OpenApiDocument>(document: T) => T;
|
|
757
|
-
//#endregion
|
|
758
740
|
export type { LowerCaseHeaders, PartiallySerialized, QueryParams, Serialized };
|
|
759
741
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/common.ts","../src/bindings.ts","../src/asyncapi.ts","../src/avsc.ts","../src/errors.ts","../src/openapi.ts","../src/ts-extensions.ts","../src/types.ts","../src/schema.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/common.ts","../src/bindings.ts","../src/asyncapi.ts","../src/avsc.ts","../src/errors.ts","../src/openapi.ts","../src/ts-extensions.ts","../src/types.ts","../src/schema.ts"],"mappings":";;;YAAY;YASA;YAQA;YAGA;YAGA;YAEA;EACV;EACA;EACA,QAAQ;EACR;;YAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP,OAAO,aAAa;EACpB,SAAS,eAAe;EACxB,SAAS,eAAe;EACxB,SAAS,eAAe;EACxB,MAAM,eAAe;EACrB,QAAQ,eAAe;EACvB,aAAa,eAAe,eAAe;EAC3C,iCAAiC,eAAe;EAChD;EACA;EACA,UAAU;EACV;EACA,gBAAgB;EAChB;EACA;EACA,MAAM;EACN,eAAe;EACf,UAAU;EACV;;YAGU;EACV;EACA;EACA;EACA;EACA;;YAGU;YACA;YASA;EACV;EACA,IAAI;EACJ;EACA;EACA;EACA;EAEA,QAAQ;EACR;EACA;EACA,SAAS,eAAe;EACxB,UAAU;EACV,WAAW,eAAe,gBAAgB;EAC1C,UAAU,eAAe;;YAGf;EACV,SAAS,eAAe;EACxB,UAAU;EACV,WAAW,eAAe,gBAAgB;EAC1C,WAAW,eAAe;;YAGhB;EACV;EACA,UAAU,eAAe,eAAe;EACxC;EACA;EACA;;YAGU;YAEA;EACV;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA,SAAS,eAAe;EACxB,UAAU;EACV,WAAW,eAAe,gBAAgB;EAC1C,UAAU,eAAe;;YAGf;EACV;EACA,UAAU;;YAGA;EACV;;YAGU;EACV;EACA;EACA;EACA;EACA,UAAU;EACV,UAAU;EACV;;YAGU;EACV;EACA;EACA;;YAGU;EACV;EACA;;YAGU;EACV;EACA;EACA,YAAY,eAAe;;YAGjB;EACV;EACA;EACA;;YAGU;EACV;EACA;EACA,eAAe;;YAGL;EACV;EACA;;YAGU;YAEA;EACV,MAAM;EACN;EACA;EACA,KAAK;EACL;EACA;EACA,QAAQ;EACR;;YAGU;EACV,WAAW;EACX,WAAW;EACX,oBAAoB;EACpB,oBAAoB;;YAGV;EACV;EACA;EACA;EACA,QAAQ;;KCnNE;EACV,OAAO;EACP,KAAK;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACX,eAAe;;KAM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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inspect } from "util";
|
|
2
|
-
|
|
2
|
+
// src/errors.ts
|
|
3
3
|
function isAxiosLikeError(err) {
|
|
4
4
|
return typeof err === "object" && err !== null;
|
|
5
5
|
}
|
|
@@ -276,8 +276,7 @@ const fromAxiosError = (error) => {
|
|
|
276
276
|
cause.cause = e.response?.data;
|
|
277
277
|
return createHttpError(statusCode, message, cause);
|
|
278
278
|
};
|
|
279
|
-
|
|
280
|
-
//#region src/schema.ts
|
|
279
|
+
// src/schema.ts
|
|
281
280
|
const clone = (orig) => JSON.parse(JSON.stringify(orig));
|
|
282
281
|
/**
|
|
283
282
|
* Marks unimplemented paths as deprecated and tags them with 'not-implemented'.
|
|
@@ -368,7 +367,6 @@ const flattenEnums = (document) => {
|
|
|
368
367
|
}
|
|
369
368
|
return doc;
|
|
370
369
|
};
|
|
371
|
-
//#endregion
|
|
372
370
|
export { BadGatewayError, BadRequestError, ConflictError, ExpectationFailedError, FailedDependencyError, ForbiddenError, GatewayTimeoutError, GoneError, HTTPVersionNotSupportedError, HttpError, IMATeapotError, InsufficientStorageError, InternalServerError, LengthRequiredError, LockedError, LoopDetectedError, MethodNotAllowedError, MisdirectedRequestError, NetworkAuthenticationRequiredError, NotAcceptableError, NotExtendedError, NotFoundError, NotImplementedError, PayloadTooLargeError, PaymentRequiredError, PreconditionFailedError, PreconditionRequiredError, ProxyAuthenticationRequiredError, RangeNotSatisfiableError, RequestHeaderFieldsTooLargeError, RequestTimeoutError, ServiceUnavailableError, TooEarlyError, TooManyRequestsError, URITooLongError, UnauthorizedError, UnavailableForLegalReasonsError, UnprocessableEntityError, UnsupportedMediaTypeError, UpgradeRequiredError, VariantAlsoNegotiatesError, appendVersionToServers, createHttpError, disableUnimplementedPaths, flattenEnums, fromAxiosError, resolveRef };
|
|
373
371
|
|
|
374
372
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/schema.ts"],"sourcesContent":["// biome-ignore lint/style/useNodejsImportProtocol: use 'util' for RN Metro + polyfill support\nimport { inspect } from 'util'\n\ninterface AxiosLikeResponse {\n status?: number\n statusText?: string\n data?: unknown\n}\n\ninterface AxiosLikeError {\n response?: AxiosLikeResponse\n message?: string\n name?: string\n stack?: string\n}\n\nfunction isAxiosLikeError(err: unknown): err is AxiosLikeError {\n return typeof err === 'object' && err !== null\n}\n\nexport type ClientErrorCode =\n | 400\n | 401\n | 402\n | 403\n | 404\n | 405\n | 406\n | 407\n | 408\n | 409\n | 410\n | 411\n | 412\n | 413\n | 414\n | 415\n | 416\n | 417\n | 418\n | 421\n | 422\n | 423\n | 424\n | 425\n | 426\n | 428\n | 429\n | 431\n | 451\nexport type ServerErrorCode =\n | 500\n | 501\n | 502\n | 503\n | 504\n | 505\n | 506\n | 507\n | 508\n | 510\n | 511\nexport type ErrorCode = ClientErrorCode | ServerErrorCode\n\ntype SerializedError = {\n message: string\n stack?: string\n}\n\n// Base HttpError class\nexport class HttpError extends Error {\n statusCode: number\n\n constructor(statusCode: number, message: string, cause?: Error) {\n super(message)\n if (cause) {\n this.stack = undefined\n this.cause = cause\n }\n this.statusCode = statusCode\n Object.setPrototypeOf(this, new.target.prototype)\n }\n\n toJSON(showStack = false) {\n const serialized: SerializedError = {\n message: this.message,\n }\n if (showStack) {\n serialized.stack = inspect(this)\n }\n return serialized\n }\n}\n\n// Specific error classes extending HttpError\nexport class BadRequestError extends HttpError {\n constructor(message = 'Bad Request', cause?: Error) {\n super(400, message, cause)\n }\n}\n\nexport class UnauthorizedError extends HttpError {\n constructor(message = 'Unauthorized', cause?: Error) {\n super(401, message, cause)\n }\n}\n\nexport class PaymentRequiredError extends HttpError {\n constructor(message = 'Payment Required', cause?: Error) {\n super(402, message, cause)\n }\n}\n\nexport class ForbiddenError extends HttpError {\n constructor(message = 'Forbidden', cause?: Error) {\n super(403, message, cause)\n }\n}\n\nexport class NotFoundError extends HttpError {\n constructor(message = 'Not Found', cause?: Error) {\n super(404, message, cause)\n }\n}\n\nexport class MethodNotAllowedError extends HttpError {\n constructor(message = 'Method Not Allowed', cause?: Error) {\n super(405, message, cause)\n }\n}\n\nexport class NotAcceptableError extends HttpError {\n constructor(message = 'Not Acceptable', cause?: Error) {\n super(406, message, cause)\n }\n}\n\nexport class ProxyAuthenticationRequiredError extends HttpError {\n constructor(message = 'Proxy Authentication Required', cause?: Error) {\n super(407, message, cause)\n }\n}\n\nexport class RequestTimeoutError extends HttpError {\n constructor(message = 'Request Timeout', cause?: Error) {\n super(408, message, cause)\n }\n}\n\nexport class ConflictError extends HttpError {\n constructor(message = 'Conflict', cause?: Error) {\n super(409, message, cause)\n }\n}\n\nexport class GoneError extends HttpError {\n constructor(message = 'Gone', cause?: Error) {\n super(410, message, cause)\n }\n}\n\nexport class LengthRequiredError extends HttpError {\n constructor(message = 'Length Required', cause?: Error) {\n super(411, message, cause)\n }\n}\n\nexport class PreconditionFailedError extends HttpError {\n constructor(message = 'Precondition Failed', cause?: Error) {\n super(412, message, cause)\n }\n}\n\nexport class PayloadTooLargeError extends HttpError {\n constructor(message = 'Payload Too Large', cause?: Error) {\n super(413, message, cause)\n }\n}\n\nexport class URITooLongError extends HttpError {\n constructor(message = 'URI Too Long', cause?: Error) {\n super(414, message, cause)\n }\n}\n\nexport class UnsupportedMediaTypeError extends HttpError {\n constructor(message = 'Unsupported Media Type', cause?: Error) {\n super(415, message, cause)\n }\n}\n\nexport class RangeNotSatisfiableError extends HttpError {\n constructor(message = 'Range Not Satisfiable', cause?: Error) {\n super(416, message, cause)\n }\n}\n\nexport class ExpectationFailedError extends HttpError {\n constructor(message = 'Expectation Failed', cause?: Error) {\n super(417, message, cause)\n }\n}\n\nexport class IMATeapotError extends HttpError {\n constructor(message = \"I'm a teapot\", cause?: Error) {\n super(418, message, cause)\n }\n}\n\nexport class MisdirectedRequestError extends HttpError {\n constructor(message = 'Misdirected Request', cause?: Error) {\n super(421, message, cause)\n }\n}\n\nexport class UnprocessableEntityError extends HttpError {\n constructor(message = 'Unprocessable Entity', cause?: Error) {\n super(422, message, cause)\n }\n}\n\nexport class LockedError extends HttpError {\n constructor(message = 'Locked', cause?: Error) {\n super(423, message, cause)\n }\n}\n\nexport class FailedDependencyError extends HttpError {\n constructor(message = 'Failed Dependency', cause?: Error) {\n super(424, message, cause)\n }\n}\n\nexport class TooEarlyError extends HttpError {\n constructor(message = 'Too Early', cause?: Error) {\n super(425, message, cause)\n }\n}\n\nexport class UpgradeRequiredError extends HttpError {\n constructor(message = 'Upgrade Required', cause?: Error) {\n super(426, message, cause)\n }\n}\n\nexport class PreconditionRequiredError extends HttpError {\n constructor(message = 'Precondition Required', cause?: Error) {\n super(428, message, cause)\n }\n}\n\nexport class TooManyRequestsError extends HttpError {\n constructor(message = 'Too Many Requests', cause?: Error) {\n super(429, message, cause)\n }\n}\n\nexport class RequestHeaderFieldsTooLargeError extends HttpError {\n constructor(message = 'Request Header Fields Too Large', cause?: Error) {\n super(431, message, cause)\n }\n}\n\nexport class UnavailableForLegalReasonsError extends HttpError {\n constructor(message = 'Unavailable For Legal Reasons', cause?: Error) {\n super(451, message, cause)\n }\n}\n\n// 500 Range Error Classes\nexport class InternalServerError extends HttpError {\n constructor(message = 'Internal Server Error', cause?: Error) {\n super(500, message, cause)\n }\n}\n\nexport class NotImplementedError extends HttpError {\n constructor(message = 'Not Implemented', cause?: Error) {\n super(501, message, cause)\n }\n}\n\nexport class BadGatewayError extends HttpError {\n constructor(message = 'Bad Gateway', cause?: Error) {\n super(502, message, cause)\n }\n}\n\nexport class ServiceUnavailableError extends HttpError {\n constructor(message = 'Service Unavailable', cause?: Error) {\n super(503, message, cause)\n }\n}\n\nexport class GatewayTimeoutError extends HttpError {\n constructor(message = 'Gateway Timeout', cause?: Error) {\n super(504, message, cause)\n }\n}\n\nexport class HTTPVersionNotSupportedError extends HttpError {\n constructor(message = 'HTTP Version Not Supported', cause?: Error) {\n super(505, message, cause)\n }\n}\n\nexport class VariantAlsoNegotiatesError extends HttpError {\n constructor(message = 'Variant Also Negotiates', cause?: Error) {\n super(506, message, cause)\n }\n}\n\nexport class InsufficientStorageError extends HttpError {\n constructor(message = 'Insufficient Storage', cause?: Error) {\n super(507, message, cause)\n }\n}\n\nexport class LoopDetectedError extends HttpError {\n constructor(message = 'Loop Detected', cause?: Error) {\n super(508, message, cause)\n }\n}\n\nexport class NotExtendedError extends HttpError {\n constructor(message = 'Not Extended', cause?: Error) {\n super(510, message, cause)\n }\n}\n\nexport class NetworkAuthenticationRequiredError extends HttpError {\n constructor(message = 'Network Authentication Required', cause?: Error) {\n super(511, message, cause)\n }\n}\n\n// Function to create an error based on status code\nexport const createHttpError = (\n statusCode: ErrorCode,\n message?: string,\n cause?: Error\n): HttpError => {\n switch (statusCode) {\n case 400:\n return new BadRequestError(message, cause)\n case 401:\n return new UnauthorizedError(message, cause)\n case 402:\n return new PaymentRequiredError(message, cause)\n case 403:\n return new ForbiddenError(message, cause)\n case 404:\n return new NotFoundError(message, cause)\n case 405:\n return new MethodNotAllowedError(message, cause)\n case 406:\n return new NotAcceptableError(message, cause)\n case 407:\n return new ProxyAuthenticationRequiredError(message, cause)\n case 408:\n return new RequestTimeoutError(message, cause)\n case 409:\n return new ConflictError(message, cause)\n case 410:\n return new GoneError(message, cause)\n case 411:\n return new LengthRequiredError(message, cause)\n case 412:\n return new PreconditionFailedError(message, cause)\n case 413:\n return new PayloadTooLargeError(message, cause)\n case 414:\n return new URITooLongError(message, cause)\n case 415:\n return new UnsupportedMediaTypeError(message, cause)\n case 416:\n return new RangeNotSatisfiableError(message, cause)\n case 417:\n return new ExpectationFailedError(message, cause)\n case 418:\n return new IMATeapotError(message, cause)\n case 421:\n return new MisdirectedRequestError(message, cause)\n case 422:\n return new UnprocessableEntityError(message, cause)\n case 423:\n return new LockedError(message, cause)\n case 424:\n return new FailedDependencyError(message, cause)\n case 425:\n return new TooEarlyError(message, cause)\n case 426:\n return new UpgradeRequiredError(message, cause)\n case 428:\n return new PreconditionRequiredError(message, cause)\n case 429:\n return new TooManyRequestsError(message, cause)\n case 431:\n return new RequestHeaderFieldsTooLargeError(message, cause)\n case 451:\n return new UnavailableForLegalReasonsError(message, cause)\n case 500:\n return new InternalServerError(message, cause)\n case 501:\n return new NotImplementedError(message, cause)\n case 502:\n return new BadGatewayError(message, cause)\n case 503:\n return new ServiceUnavailableError(message, cause)\n case 504:\n return new GatewayTimeoutError(message, cause)\n case 505:\n return new HTTPVersionNotSupportedError(message, cause)\n case 506:\n return new VariantAlsoNegotiatesError(message, cause)\n case 507:\n return new InsufficientStorageError(message, cause)\n case 508:\n return new LoopDetectedError(message, cause)\n case 510:\n return new NotExtendedError(message, cause)\n case 511:\n return new NetworkAuthenticationRequiredError(message, cause)\n }\n /* istanbul ignore next */\n return new HttpError(statusCode, message ?? 'Error', cause)\n}\n\nexport const fromAxiosError = (error: unknown): HttpError => {\n const e: AxiosLikeError = isAxiosLikeError(error) ? error : {}\n // Default to 500 Internal Server Error if the status code is not available\n const statusCode = (e.response?.status || 500) as ErrorCode\n const message = e.response?.statusText || e.message || 'Internal Server Error'\n\n // The internal error can contain more specific details about the Axios error\n const cause = new Error(e.message)\n cause.name = e.name ?? 'Error'\n cause.stack = e.stack\n // If the error response has a data property pass it along\n cause.cause = e.response?.data\n\n return createHttpError(statusCode, message, cause)\n}\n","import type { SchemaObject } from './common'\nimport type { OpenApiDocument, OperationObject } from './openapi'\nimport type { APIServerDefinition } from './types'\n\nconst clone = <T>(orig: T): T => JSON.parse(JSON.stringify(orig))\n\n/**\n * Marks unimplemented paths as deprecated and tags them with 'not-implemented'.\n * Use to hide or visually separate endpoints not yet available on the given server.\n *\n * @param document - The OpenAPI document to modify\n * @param server - The server definition to check against for implemented paths\n * @returns A cloned document with unimplemented paths marked as deprecated\n */\nexport const disableUnimplementedPaths = <\n T extends OpenApiDocument,\n S extends APIServerDefinition,\n>(\n document: T,\n server: S\n): T => {\n const doc = clone(document)\n for (const path of Object.keys(doc.paths)) {\n const pathObj = doc.paths[path as keyof typeof doc.paths]\n const fixedPath = path.replace(/{(.+)}/, ':$1')\n if (!server[fixedPath] && !fixedPath.startsWith('/health')) {\n for (const method of Object.values(pathObj)) {\n const operation = method as OperationObject\n operation.deprecated = true\n operation.tags = [...(operation.tags ?? []), 'not-implemented']\n }\n }\n }\n return doc\n}\n\n/**\n * Appends the API version segment to all server URLs.\n *\n * @param document - The OpenAPI document to modify\n * @param version - The version string to append\n * @returns A cloned document with updated server URLs\n */\nexport const appendVersionToServers = <T extends OpenApiDocument>(\n document: T,\n version: string\n): T => {\n const doc = clone(document)\n for (const server of doc.servers || []) {\n server.url = `${server.url}/${version}`\n }\n return doc\n}\n\n/**\n * Resolves a $ref string to its schema definition within the document.\n *\n * @param ref - A JSON pointer ref string e.g. `#/components/schemas/Foo`\n * @param doc - The OpenAPI document to resolve against\n * @returns The resolved schema, or undefined if the ref cannot be resolved\n */\nexport const resolveRef = (\n ref: string,\n doc: OpenApiDocument\n): SchemaObject | undefined => {\n const parts = ref.replace('#/', '').split('/')\n let current: unknown = doc\n for (const part of parts) {\n if (typeof current !== 'object' || current === null) return undefined\n current = (current as Record<string, unknown>)[part]\n }\n return current as SchemaObject\n}\n\n/**\n * Flattens all schemas typed as oneOf[$ref, $ref, ...] where all refs resolve to enums\n * into a single merged enum. Enables API UI tools to render a dropdown instead of a text input.\n *\n * @param document - The OpenAPI document to modify\n * @returns A cloned document with flattened enum schemas\n */\nexport const flattenEnums = <T extends OpenApiDocument>(document: T): T => {\n const doc = clone(document)\n\n const flatten = (schema: SchemaObject): SchemaObject => {\n if (!('oneOf' in schema) || !schema.oneOf) return schema\n\n let allEnums = true\n const enumValues: unknown[] = []\n\n for (const s of schema.oneOf) {\n if (!('$ref' in s)) {\n allEnums = false\n break\n }\n const resolved = resolveRef(s.$ref, doc)\n if (!resolved || !('enum' in resolved) || !Array.isArray(resolved.enum)) {\n allEnums = false\n break\n }\n for (const v of resolved.enum) enumValues.push(v)\n }\n\n if (allEnums && enumValues.length > 0) {\n return { type: 'string', enum: [...new Set(enumValues)] as string[] }\n }\n return schema\n }\n\n if (doc.components?.parameters) {\n for (const parameter of Object.values(doc.components.parameters)) {\n parameter.schema = flatten(\n parameter.schema as SchemaObject\n ) as unknown as typeof parameter.schema\n }\n }\n\n if (doc.components?.schemas) {\n for (const [key, schema] of Object.entries(doc.components.schemas)) {\n doc.components.schemas[key] = flatten(\n schema as SchemaObject\n ) as unknown as typeof schema\n }\n }\n\n for (const pathItem of Object.values(doc.paths)) {\n for (const operation of Object.values(pathItem)) {\n const op = operation as OperationObject\n if (!op.parameters) continue\n for (const parameter of op.parameters) {\n if ('schema' in parameter) {\n parameter.schema = flatten(\n parameter.schema as SchemaObject\n ) as unknown as typeof parameter.schema\n }\n }\n }\n }\n\n return doc\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/errors.ts","../src/schema.ts"],"sourcesContent":["// biome-ignore lint/style/useNodejsImportProtocol: use 'util' for RN Metro + polyfill support\nimport { inspect } from 'util'\n\ninterface AxiosLikeResponse {\n status?: number\n statusText?: string\n data?: unknown\n}\n\ninterface AxiosLikeError {\n response?: AxiosLikeResponse\n message?: string\n name?: string\n stack?: string\n}\n\nfunction isAxiosLikeError(err: unknown): err is AxiosLikeError {\n return typeof err === 'object' && err !== null\n}\n\nexport type ClientErrorCode =\n | 400\n | 401\n | 402\n | 403\n | 404\n | 405\n | 406\n | 407\n | 408\n | 409\n | 410\n | 411\n | 412\n | 413\n | 414\n | 415\n | 416\n | 417\n | 418\n | 421\n | 422\n | 423\n | 424\n | 425\n | 426\n | 428\n | 429\n | 431\n | 451\nexport type ServerErrorCode =\n | 500\n | 501\n | 502\n | 503\n | 504\n | 505\n | 506\n | 507\n | 508\n | 510\n | 511\nexport type ErrorCode = ClientErrorCode | ServerErrorCode\n\ntype SerializedError = {\n message: string\n stack?: string\n}\n\n// Base HttpError class\nexport class HttpError extends Error {\n statusCode: number\n\n constructor(statusCode: number, message: string, cause?: Error) {\n super(message)\n if (cause) {\n this.stack = undefined\n this.cause = cause\n }\n this.statusCode = statusCode\n Object.setPrototypeOf(this, new.target.prototype)\n }\n\n toJSON(showStack = false) {\n const serialized: SerializedError = {\n message: this.message,\n }\n if (showStack) {\n serialized.stack = inspect(this)\n }\n return serialized\n }\n}\n\n// Specific error classes extending HttpError\nexport class BadRequestError extends HttpError {\n constructor(message = 'Bad Request', cause?: Error) {\n super(400, message, cause)\n }\n}\n\nexport class UnauthorizedError extends HttpError {\n constructor(message = 'Unauthorized', cause?: Error) {\n super(401, message, cause)\n }\n}\n\nexport class PaymentRequiredError extends HttpError {\n constructor(message = 'Payment Required', cause?: Error) {\n super(402, message, cause)\n }\n}\n\nexport class ForbiddenError extends HttpError {\n constructor(message = 'Forbidden', cause?: Error) {\n super(403, message, cause)\n }\n}\n\nexport class NotFoundError extends HttpError {\n constructor(message = 'Not Found', cause?: Error) {\n super(404, message, cause)\n }\n}\n\nexport class MethodNotAllowedError extends HttpError {\n constructor(message = 'Method Not Allowed', cause?: Error) {\n super(405, message, cause)\n }\n}\n\nexport class NotAcceptableError extends HttpError {\n constructor(message = 'Not Acceptable', cause?: Error) {\n super(406, message, cause)\n }\n}\n\nexport class ProxyAuthenticationRequiredError extends HttpError {\n constructor(message = 'Proxy Authentication Required', cause?: Error) {\n super(407, message, cause)\n }\n}\n\nexport class RequestTimeoutError extends HttpError {\n constructor(message = 'Request Timeout', cause?: Error) {\n super(408, message, cause)\n }\n}\n\nexport class ConflictError extends HttpError {\n constructor(message = 'Conflict', cause?: Error) {\n super(409, message, cause)\n }\n}\n\nexport class GoneError extends HttpError {\n constructor(message = 'Gone', cause?: Error) {\n super(410, message, cause)\n }\n}\n\nexport class LengthRequiredError extends HttpError {\n constructor(message = 'Length Required', cause?: Error) {\n super(411, message, cause)\n }\n}\n\nexport class PreconditionFailedError extends HttpError {\n constructor(message = 'Precondition Failed', cause?: Error) {\n super(412, message, cause)\n }\n}\n\nexport class PayloadTooLargeError extends HttpError {\n constructor(message = 'Payload Too Large', cause?: Error) {\n super(413, message, cause)\n }\n}\n\nexport class URITooLongError extends HttpError {\n constructor(message = 'URI Too Long', cause?: Error) {\n super(414, message, cause)\n }\n}\n\nexport class UnsupportedMediaTypeError extends HttpError {\n constructor(message = 'Unsupported Media Type', cause?: Error) {\n super(415, message, cause)\n }\n}\n\nexport class RangeNotSatisfiableError extends HttpError {\n constructor(message = 'Range Not Satisfiable', cause?: Error) {\n super(416, message, cause)\n }\n}\n\nexport class ExpectationFailedError extends HttpError {\n constructor(message = 'Expectation Failed', cause?: Error) {\n super(417, message, cause)\n }\n}\n\nexport class IMATeapotError extends HttpError {\n constructor(message = \"I'm a teapot\", cause?: Error) {\n super(418, message, cause)\n }\n}\n\nexport class MisdirectedRequestError extends HttpError {\n constructor(message = 'Misdirected Request', cause?: Error) {\n super(421, message, cause)\n }\n}\n\nexport class UnprocessableEntityError extends HttpError {\n constructor(message = 'Unprocessable Entity', cause?: Error) {\n super(422, message, cause)\n }\n}\n\nexport class LockedError extends HttpError {\n constructor(message = 'Locked', cause?: Error) {\n super(423, message, cause)\n }\n}\n\nexport class FailedDependencyError extends HttpError {\n constructor(message = 'Failed Dependency', cause?: Error) {\n super(424, message, cause)\n }\n}\n\nexport class TooEarlyError extends HttpError {\n constructor(message = 'Too Early', cause?: Error) {\n super(425, message, cause)\n }\n}\n\nexport class UpgradeRequiredError extends HttpError {\n constructor(message = 'Upgrade Required', cause?: Error) {\n super(426, message, cause)\n }\n}\n\nexport class PreconditionRequiredError extends HttpError {\n constructor(message = 'Precondition Required', cause?: Error) {\n super(428, message, cause)\n }\n}\n\nexport class TooManyRequestsError extends HttpError {\n constructor(message = 'Too Many Requests', cause?: Error) {\n super(429, message, cause)\n }\n}\n\nexport class RequestHeaderFieldsTooLargeError extends HttpError {\n constructor(message = 'Request Header Fields Too Large', cause?: Error) {\n super(431, message, cause)\n }\n}\n\nexport class UnavailableForLegalReasonsError extends HttpError {\n constructor(message = 'Unavailable For Legal Reasons', cause?: Error) {\n super(451, message, cause)\n }\n}\n\n// 500 Range Error Classes\nexport class InternalServerError extends HttpError {\n constructor(message = 'Internal Server Error', cause?: Error) {\n super(500, message, cause)\n }\n}\n\nexport class NotImplementedError extends HttpError {\n constructor(message = 'Not Implemented', cause?: Error) {\n super(501, message, cause)\n }\n}\n\nexport class BadGatewayError extends HttpError {\n constructor(message = 'Bad Gateway', cause?: Error) {\n super(502, message, cause)\n }\n}\n\nexport class ServiceUnavailableError extends HttpError {\n constructor(message = 'Service Unavailable', cause?: Error) {\n super(503, message, cause)\n }\n}\n\nexport class GatewayTimeoutError extends HttpError {\n constructor(message = 'Gateway Timeout', cause?: Error) {\n super(504, message, cause)\n }\n}\n\nexport class HTTPVersionNotSupportedError extends HttpError {\n constructor(message = 'HTTP Version Not Supported', cause?: Error) {\n super(505, message, cause)\n }\n}\n\nexport class VariantAlsoNegotiatesError extends HttpError {\n constructor(message = 'Variant Also Negotiates', cause?: Error) {\n super(506, message, cause)\n }\n}\n\nexport class InsufficientStorageError extends HttpError {\n constructor(message = 'Insufficient Storage', cause?: Error) {\n super(507, message, cause)\n }\n}\n\nexport class LoopDetectedError extends HttpError {\n constructor(message = 'Loop Detected', cause?: Error) {\n super(508, message, cause)\n }\n}\n\nexport class NotExtendedError extends HttpError {\n constructor(message = 'Not Extended', cause?: Error) {\n super(510, message, cause)\n }\n}\n\nexport class NetworkAuthenticationRequiredError extends HttpError {\n constructor(message = 'Network Authentication Required', cause?: Error) {\n super(511, message, cause)\n }\n}\n\n// Function to create an error based on status code\nexport const createHttpError = (\n statusCode: ErrorCode,\n message?: string,\n cause?: Error\n): HttpError => {\n switch (statusCode) {\n case 400:\n return new BadRequestError(message, cause)\n case 401:\n return new UnauthorizedError(message, cause)\n case 402:\n return new PaymentRequiredError(message, cause)\n case 403:\n return new ForbiddenError(message, cause)\n case 404:\n return new NotFoundError(message, cause)\n case 405:\n return new MethodNotAllowedError(message, cause)\n case 406:\n return new NotAcceptableError(message, cause)\n case 407:\n return new ProxyAuthenticationRequiredError(message, cause)\n case 408:\n return new RequestTimeoutError(message, cause)\n case 409:\n return new ConflictError(message, cause)\n case 410:\n return new GoneError(message, cause)\n case 411:\n return new LengthRequiredError(message, cause)\n case 412:\n return new PreconditionFailedError(message, cause)\n case 413:\n return new PayloadTooLargeError(message, cause)\n case 414:\n return new URITooLongError(message, cause)\n case 415:\n return new UnsupportedMediaTypeError(message, cause)\n case 416:\n return new RangeNotSatisfiableError(message, cause)\n case 417:\n return new ExpectationFailedError(message, cause)\n case 418:\n return new IMATeapotError(message, cause)\n case 421:\n return new MisdirectedRequestError(message, cause)\n case 422:\n return new UnprocessableEntityError(message, cause)\n case 423:\n return new LockedError(message, cause)\n case 424:\n return new FailedDependencyError(message, cause)\n case 425:\n return new TooEarlyError(message, cause)\n case 426:\n return new UpgradeRequiredError(message, cause)\n case 428:\n return new PreconditionRequiredError(message, cause)\n case 429:\n return new TooManyRequestsError(message, cause)\n case 431:\n return new RequestHeaderFieldsTooLargeError(message, cause)\n case 451:\n return new UnavailableForLegalReasonsError(message, cause)\n case 500:\n return new InternalServerError(message, cause)\n case 501:\n return new NotImplementedError(message, cause)\n case 502:\n return new BadGatewayError(message, cause)\n case 503:\n return new ServiceUnavailableError(message, cause)\n case 504:\n return new GatewayTimeoutError(message, cause)\n case 505:\n return new HTTPVersionNotSupportedError(message, cause)\n case 506:\n return new VariantAlsoNegotiatesError(message, cause)\n case 507:\n return new InsufficientStorageError(message, cause)\n case 508:\n return new LoopDetectedError(message, cause)\n case 510:\n return new NotExtendedError(message, cause)\n case 511:\n return new NetworkAuthenticationRequiredError(message, cause)\n }\n /* istanbul ignore next */\n return new HttpError(statusCode, message ?? 'Error', cause)\n}\n\nexport const fromAxiosError = (error: unknown): HttpError => {\n const e: AxiosLikeError = isAxiosLikeError(error) ? error : {}\n // Default to 500 Internal Server Error if the status code is not available\n const statusCode = (e.response?.status || 500) as ErrorCode\n const message = e.response?.statusText || e.message || 'Internal Server Error'\n\n // The internal error can contain more specific details about the Axios error\n const cause = new Error(e.message)\n cause.name = e.name ?? 'Error'\n cause.stack = e.stack\n // If the error response has a data property pass it along\n cause.cause = e.response?.data\n\n return createHttpError(statusCode, message, cause)\n}\n","import type { SchemaObject } from './common'\nimport type { OpenApiDocument, OperationObject } from './openapi'\nimport type { APIServerDefinition } from './types'\n\nconst clone = <T>(orig: T): T => JSON.parse(JSON.stringify(orig))\n\n/**\n * Marks unimplemented paths as deprecated and tags them with 'not-implemented'.\n * Use to hide or visually separate endpoints not yet available on the given server.\n *\n * @param document - The OpenAPI document to modify\n * @param server - The server definition to check against for implemented paths\n * @returns A cloned document with unimplemented paths marked as deprecated\n */\nexport const disableUnimplementedPaths = <\n T extends OpenApiDocument,\n S extends APIServerDefinition,\n>(\n document: T,\n server: S\n): T => {\n const doc = clone(document)\n for (const path of Object.keys(doc.paths)) {\n const pathObj = doc.paths[path as keyof typeof doc.paths]\n const fixedPath = path.replace(/{(.+)}/, ':$1')\n if (!server[fixedPath] && !fixedPath.startsWith('/health')) {\n for (const method of Object.values(pathObj)) {\n const operation = method as OperationObject\n operation.deprecated = true\n operation.tags = [...(operation.tags ?? []), 'not-implemented']\n }\n }\n }\n return doc\n}\n\n/**\n * Appends the API version segment to all server URLs.\n *\n * @param document - The OpenAPI document to modify\n * @param version - The version string to append\n * @returns A cloned document with updated server URLs\n */\nexport const appendVersionToServers = <T extends OpenApiDocument>(\n document: T,\n version: string\n): T => {\n const doc = clone(document)\n for (const server of doc.servers || []) {\n server.url = `${server.url}/${version}`\n }\n return doc\n}\n\n/**\n * Resolves a $ref string to its schema definition within the document.\n *\n * @param ref - A JSON pointer ref string e.g. `#/components/schemas/Foo`\n * @param doc - The OpenAPI document to resolve against\n * @returns The resolved schema, or undefined if the ref cannot be resolved\n */\nexport const resolveRef = (\n ref: string,\n doc: OpenApiDocument\n): SchemaObject | undefined => {\n const parts = ref.replace('#/', '').split('/')\n let current: unknown = doc\n for (const part of parts) {\n if (typeof current !== 'object' || current === null) return undefined\n current = (current as Record<string, unknown>)[part]\n }\n return current as SchemaObject\n}\n\n/**\n * Flattens all schemas typed as oneOf[$ref, $ref, ...] where all refs resolve to enums\n * into a single merged enum. Enables API UI tools to render a dropdown instead of a text input.\n *\n * @param document - The OpenAPI document to modify\n * @returns A cloned document with flattened enum schemas\n */\nexport const flattenEnums = <T extends OpenApiDocument>(document: T): T => {\n const doc = clone(document)\n\n const flatten = (schema: SchemaObject): SchemaObject => {\n if (!('oneOf' in schema) || !schema.oneOf) return schema\n\n let allEnums = true\n const enumValues: unknown[] = []\n\n for (const s of schema.oneOf) {\n if (!('$ref' in s)) {\n allEnums = false\n break\n }\n const resolved = resolveRef(s.$ref, doc)\n if (!resolved || !('enum' in resolved) || !Array.isArray(resolved.enum)) {\n allEnums = false\n break\n }\n for (const v of resolved.enum) enumValues.push(v)\n }\n\n if (allEnums && enumValues.length > 0) {\n return { type: 'string', enum: [...new Set(enumValues)] as string[] }\n }\n return schema\n }\n\n if (doc.components?.parameters) {\n for (const parameter of Object.values(doc.components.parameters)) {\n parameter.schema = flatten(\n parameter.schema as SchemaObject\n ) as unknown as typeof parameter.schema\n }\n }\n\n if (doc.components?.schemas) {\n for (const [key, schema] of Object.entries(doc.components.schemas)) {\n doc.components.schemas[key] = flatten(\n schema as SchemaObject\n ) as unknown as typeof schema\n }\n }\n\n for (const pathItem of Object.values(doc.paths)) {\n for (const operation of Object.values(pathItem)) {\n const op = operation as OperationObject\n if (!op.parameters) continue\n for (const parameter of op.parameters) {\n if ('schema' in parameter) {\n parameter.schema = flatten(\n parameter.schema as SchemaObject\n ) as unknown as typeof parameter.schema\n }\n }\n }\n }\n\n return doc\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebspark/openapi-core",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.24",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -19,24 +19,24 @@
|
|
|
19
19
|
"depcheck": "depcheck",
|
|
20
20
|
"dev": "tsc --watch --noEmit",
|
|
21
21
|
"lint": "biome check .",
|
|
22
|
-
"test": "vitest run --passWithNoTests --coverage",
|
|
22
|
+
"test": "vitest run --passWithNoTests --coverage --fsModuleCachePath node_modules/.vitest-cache",
|
|
23
23
|
"typecheck": "tsc --noEmit"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@sebspark/retry": "1.0.20",
|
|
27
27
|
"axios": "1.20.0",
|
|
28
|
-
"express": "5.
|
|
28
|
+
"express": "5.3.0"
|
|
29
29
|
},
|
|
30
30
|
"repository": {
|
|
31
31
|
"type": "git",
|
|
32
32
|
"url": "https://github.com/seb-oss/Spark-packages.git"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@biomejs/biome": "2.
|
|
36
|
-
"@sebspark/tsconfig": "
|
|
35
|
+
"@biomejs/biome": "2.6.3",
|
|
36
|
+
"@sebspark/tsconfig": "3.0.26",
|
|
37
37
|
"depcheck": "1.4.7",
|
|
38
38
|
"typescript": "7.0.2",
|
|
39
|
-
"vite": "8.3.
|
|
40
|
-
"vitest": "5.0.
|
|
39
|
+
"vite": "8.3.5",
|
|
40
|
+
"vitest": "5.0.5"
|
|
41
41
|
}
|
|
42
42
|
}
|