@sebspark/openapi-core 4.1.24 → 4.1.26

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 CHANGED
@@ -1,5 +1,31 @@
1
1
  # @sebspark/openapi-core
2
2
 
3
+ ## 4.1.26
4
+
5
+ ### Patch Changes
6
+
7
+ - 176ea40: Fixed the client argument types:
8
+
9
+ - `RequestArgs` no longer includes Express `Request`. These are the arguments a client passes to `BaseClient` methods, built as plain objects, so calls such as `client.post(url, { body, headers })` now type-check without casts. Server handlers keep their own `Req & { ... }` types.
10
+ - `PayloadRequestArgs.body` is now `unknown` instead of `Record<string, string>`. The client sends any JSON body, including numbers, nested objects and arrays.
11
+
12
+ - 176ea40: Fix several bugs in the OpenAPI schema helpers:
13
+
14
+ - `disableUnimplementedPaths` only marks operations. Before, it crashed on path items that had a `summary`, a `description` or a `$ref`.
15
+ - `flattenEnums` also flattens path-level parameters. It skips component parameters that have no `schema` instead of crashing. It only merges refs whose enums are all strings, so numeric enums no longer become `type: 'string'`.
16
+ - `resolveRef` returns `undefined` when the ref points to a value that is not an object.
17
+
18
+ The `content` map on `RequestBodyObject` and `ResponseObject` no longer requires an `application/json` entry. OpenAPI allows any set of media types, so a lookup such as `content['application/json']` is now typed as possibly `undefined`.
19
+
20
+ - Updated dependencies [176ea40]
21
+ - @sebspark/retry@1.0.21
22
+
23
+ ## 4.1.25
24
+
25
+ ### Patch Changes
26
+
27
+ - 10aba82: chore(deps): bump axios from 1.20.0 to 1.21.0
28
+
3
29
  ## 4.1.24
4
30
 
5
31
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -441,8 +441,10 @@ export type AvroMap = {
441
441
  };
442
442
  export type AvroUnion = AvroSchema[];
443
443
  export type AvroPrimitive = 'null' | 'boolean' | 'int' | 'long' | 'float' | 'double' | 'bytes' | 'string';
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;
445
- export type ServerErrorCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511;
444
+ declare const CLIENT_ERROR_CODES: readonly [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];
445
+ export type ClientErrorCode = (typeof CLIENT_ERROR_CODES)[number];
446
+ declare const SERVER_ERROR_CODES: readonly [500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511];
447
+ export type ServerErrorCode = (typeof SERVER_ERROR_CODES)[number];
446
448
  export type ErrorCode = ClientErrorCode | ServerErrorCode;
447
449
  type SerializedError = {
448
450
  message: string;
@@ -617,14 +619,14 @@ export type OperationObject = {
617
619
  };
618
620
  export type RequestBodyObject = {
619
621
  description?: string;
620
- content: Record<'application/json' | (string & {}), MediaTypeObject>;
622
+ content: Partial<Record<'application/json' | (string & {}), MediaTypeObject>>;
621
623
  required?: boolean;
622
624
  };
623
625
  export type ResponsesObject = Record<string, ResponseObject | ReferenceObject>;
624
626
  export type ResponseObject = {
625
627
  description: string;
626
628
  headers?: Record<string, HeaderObject | ReferenceObject>;
627
- content?: Record<'application/json' | (string & {}), MediaTypeObject>;
629
+ content?: Partial<Record<'application/json' | (string & {}), MediaTypeObject>>;
628
630
  links?: Record<string, LinkObject | ReferenceObject>;
629
631
  };
630
632
  export type ComponentsObject = {
@@ -676,13 +678,14 @@ export type APIServerDefinition = Record<string, Partial<Route>>;
676
678
  export type APIServerOptions = {
677
679
  pre?: RequestHandler | RequestHandler[];
678
680
  };
679
- export type RequestArgs = Request & {
681
+ /** Arguments a client passes when calling an endpoint. */
682
+ export type RequestArgs = {
680
683
  params?: Record<string, string>;
681
684
  query?: Record<string, string>;
682
685
  headers?: Record<string, string>;
683
686
  };
684
687
  export type PayloadRequestArgs = RequestArgs & {
685
- body?: Record<string, string>;
688
+ body?: unknown;
686
689
  };
687
690
  export type RequestOptions = {
688
691
  retry?: RetrySettings;
@@ -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":";;;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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"}
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
@@ -3,6 +3,52 @@ import { inspect } from "util";
3
3
  function isAxiosLikeError(err) {
4
4
  return typeof err === "object" && err !== null;
5
5
  }
6
+ const CLIENT_ERROR_CODES = [
7
+ 400,
8
+ 401,
9
+ 402,
10
+ 403,
11
+ 404,
12
+ 405,
13
+ 406,
14
+ 407,
15
+ 408,
16
+ 409,
17
+ 410,
18
+ 411,
19
+ 412,
20
+ 413,
21
+ 414,
22
+ 415,
23
+ 416,
24
+ 417,
25
+ 418,
26
+ 421,
27
+ 422,
28
+ 423,
29
+ 424,
30
+ 425,
31
+ 426,
32
+ 428,
33
+ 429,
34
+ 431,
35
+ 451
36
+ ];
37
+ const SERVER_ERROR_CODES = [
38
+ 500,
39
+ 501,
40
+ 502,
41
+ 503,
42
+ 504,
43
+ 505,
44
+ 506,
45
+ 507,
46
+ 508,
47
+ 510,
48
+ 511
49
+ ];
50
+ const ERROR_CODES = /* @__PURE__ */ new Set([...CLIENT_ERROR_CODES, ...SERVER_ERROR_CODES]);
51
+ const isErrorCode = (statusCode) => ERROR_CODES.has(statusCode);
6
52
  var HttpError = class extends Error {
7
53
  statusCode;
8
54
  constructor(statusCode, message, cause) {
@@ -274,10 +320,22 @@ const fromAxiosError = (error) => {
274
320
  cause.name = e.name ?? "Error";
275
321
  cause.stack = e.stack;
276
322
  cause.cause = e.response?.data;
277
- return createHttpError(statusCode, message, cause);
323
+ return isErrorCode(statusCode) ? createHttpError(statusCode, message, cause) : new HttpError(statusCode, message, cause);
278
324
  };
279
325
  // src/schema.ts
280
326
  const clone = (orig) => JSON.parse(JSON.stringify(orig));
327
+ const isRecord = (value) => typeof value === "object" && value !== null;
328
+ const METHODS = [
329
+ "get",
330
+ "put",
331
+ "post",
332
+ "delete",
333
+ "options",
334
+ "head",
335
+ "patch",
336
+ "trace"
337
+ ];
338
+ const operationsOf = (item) => "$ref" in item ? [] : METHODS.flatMap((method) => item[method] ?? []);
281
339
  /**
282
340
  * Marks unimplemented paths as deprecated and tags them with 'not-implemented'.
283
341
  * Use to hide or visually separate endpoints not yet available on the given server.
@@ -288,11 +346,9 @@ const clone = (orig) => JSON.parse(JSON.stringify(orig));
288
346
  */
289
347
  const disableUnimplementedPaths = (document, server) => {
290
348
  const doc = clone(document);
291
- for (const path of Object.keys(doc.paths)) {
292
- const pathObj = doc.paths[path];
349
+ for (const [path, pathItem] of Object.entries(doc.paths)) {
293
350
  const fixedPath = path.replace(/{(.+)}/, ":$1");
294
- if (!server[fixedPath] && !fixedPath.startsWith("/health")) for (const method of Object.values(pathObj)) {
295
- const operation = method;
351
+ if (!server[fixedPath] && !fixedPath.startsWith("/health")) for (const operation of operationsOf(pathItem)) {
296
352
  operation.deprecated = true;
297
353
  operation.tags = [...operation.tags ?? [], "not-implemented"];
298
354
  }
@@ -322,9 +378,10 @@ const resolveRef = (ref, doc) => {
322
378
  const parts = ref.replace("#/", "").split("/");
323
379
  let current = doc;
324
380
  for (const part of parts) {
325
- if (typeof current !== "object" || current === null) return void 0;
381
+ if (!isRecord(current)) return void 0;
326
382
  current = current[part];
327
383
  }
384
+ if (!isRecord(current)) return void 0;
328
385
  return current;
329
386
  };
330
387
  /**
@@ -336,34 +393,32 @@ const resolveRef = (ref, doc) => {
336
393
  */
337
394
  const flattenEnums = (document) => {
338
395
  const doc = clone(document);
339
- const flatten = (schema) => {
340
- if (!("oneOf" in schema) || !schema.oneOf) return schema;
341
- let allEnums = true;
342
- const enumValues = [];
396
+ const flattenedEnum = (schema) => {
397
+ if (!("oneOf" in schema) || !schema.oneOf) return void 0;
398
+ const values = [];
343
399
  for (const s of schema.oneOf) {
344
- if (!("$ref" in s)) {
345
- allEnums = false;
346
- break;
347
- }
400
+ if (!("$ref" in s)) return void 0;
348
401
  const resolved = resolveRef(s.$ref, doc);
349
- if (!resolved || !("enum" in resolved) || !Array.isArray(resolved.enum)) {
350
- allEnums = false;
351
- break;
402
+ if (!resolved?.enum) return void 0;
403
+ for (const value of resolved.enum) {
404
+ if (typeof value !== "string") return void 0;
405
+ values.push(value);
352
406
  }
353
- for (const v of resolved.enum) enumValues.push(v);
354
407
  }
355
- if (allEnums && enumValues.length > 0) return {
408
+ return values.length > 0 ? {
356
409
  type: "string",
357
- enum: [...new Set(enumValues)]
358
- };
359
- return schema;
410
+ enum: [...new Set(values)]
411
+ } : void 0;
412
+ };
413
+ const flattenParameters = (parameters = []) => {
414
+ for (const parameter of parameters) if ("schema" in parameter && parameter.schema) parameter.schema = flattenedEnum(parameter.schema) ?? parameter.schema;
360
415
  };
361
- if (doc.components?.parameters) for (const parameter of Object.values(doc.components.parameters)) parameter.schema = flatten(parameter.schema);
362
- if (doc.components?.schemas) for (const [key, schema] of Object.entries(doc.components.schemas)) doc.components.schemas[key] = flatten(schema);
363
- for (const pathItem of Object.values(doc.paths)) for (const operation of Object.values(pathItem)) {
364
- const op = operation;
365
- if (!op.parameters) continue;
366
- for (const parameter of op.parameters) if ("schema" in parameter) parameter.schema = flatten(parameter.schema);
416
+ flattenParameters(Object.values(doc.components?.parameters ?? {}));
417
+ if (doc.components?.schemas) for (const [key, schema] of Object.entries(doc.components.schemas)) doc.components.schemas[key] = flattenedEnum(schema) ?? schema;
418
+ for (const pathItem of Object.values(doc.paths)) {
419
+ if ("$ref" in pathItem) continue;
420
+ flattenParameters(pathItem.parameters);
421
+ for (const operation of operationsOf(pathItem)) flattenParameters(operation.parameters);
367
422
  }
368
423
  return doc;
369
424
  };
@@ -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\nconst CLIENT_ERROR_CODES = [\n 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,\n 415, 416, 417, 418, 421, 422, 423, 424, 425, 426, 428, 429, 431, 451,\n] as const\nexport type ClientErrorCode = (typeof CLIENT_ERROR_CODES)[number]\nconst SERVER_ERROR_CODES = [\n 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511,\n] as const\nexport type ServerErrorCode = (typeof SERVER_ERROR_CODES)[number]\nexport type ErrorCode = ClientErrorCode | ServerErrorCode\n\nconst ERROR_CODES = new Set<number>([\n ...CLIENT_ERROR_CODES,\n ...SERVER_ERROR_CODES,\n])\n\nconst isErrorCode = (statusCode: number): statusCode is ErrorCode =>\n ERROR_CODES.has(statusCode)\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\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 isErrorCode(statusCode)\n ? createHttpError(statusCode, message, cause)\n : new HttpError(statusCode, message, cause)\n}\n","import type { ParameterObject, ReferenceObject, SchemaObject } from './common'\nimport type {\n OpenApiDocument,\n OperationObject,\n PathItemObject,\n} from './openapi'\nimport type { APIServerDefinition } from './types'\n\nconst clone = <T>(orig: T): T => JSON.parse(JSON.stringify(orig))\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null\n\nconst METHODS = [\n 'get',\n 'put',\n 'post',\n 'delete',\n 'options',\n 'head',\n 'patch',\n 'trace',\n] as const\n\nconst operationsOf = (\n item: PathItemObject | ReferenceObject\n): OperationObject[] =>\n '$ref' in item ? [] : METHODS.flatMap((method) => item[method] ?? [])\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, pathItem] of Object.entries(doc.paths)) {\n const fixedPath = path.replace(/{(.+)}/, ':$1')\n if (!server[fixedPath] && !fixedPath.startsWith('/health')) {\n for (const operation of operationsOf(pathItem)) {\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 (!isRecord(current)) return undefined\n current = current[part]\n }\n if (!isRecord(current)) return undefined\n // biome-ignore lint/plugin/no-type-assertion: the document declares what its $ref targets are (trust boundary)\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 flattenedEnum = (\n schema: SchemaObject | ReferenceObject\n ): SchemaObject | undefined => {\n if (!('oneOf' in schema) || !schema.oneOf) return undefined\n\n const values: string[] = []\n for (const s of schema.oneOf) {\n if (!('$ref' in s)) return undefined\n const resolved = resolveRef(s.$ref, doc)\n if (!resolved?.enum) return undefined\n for (const value of resolved.enum) {\n if (typeof value !== 'string') return undefined\n values.push(value)\n }\n }\n return values.length > 0\n ? { type: 'string', enum: [...new Set(values)] }\n : undefined\n }\n\n const flattenParameters = (\n parameters: (ParameterObject | ReferenceObject)[] = []\n ) => {\n for (const parameter of parameters) {\n if ('schema' in parameter && parameter.schema) {\n parameter.schema = flattenedEnum(parameter.schema) ?? parameter.schema\n }\n }\n }\n\n flattenParameters(Object.values(doc.components?.parameters ?? {}))\n\n if (doc.components?.schemas) {\n for (const [key, schema] of Object.entries(doc.components.schemas)) {\n doc.components.schemas[key] = flattenedEnum(schema) ?? schema\n }\n }\n\n for (const pathItem of Object.values(doc.paths)) {\n if ('$ref' in pathItem) continue\n flattenParameters(pathItem.parameters)\n for (const operation of operationsOf(pathItem)) {\n flattenParameters(operation.parameters)\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.24",
3
+ "version": "4.1.26",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
@@ -16,15 +16,14 @@
16
16
  ],
17
17
  "scripts": {
18
18
  "build": "spark-build src/index.ts",
19
- "depcheck": "depcheck",
20
19
  "dev": "tsc --watch --noEmit",
21
20
  "lint": "biome check .",
22
21
  "test": "vitest run --passWithNoTests --coverage --fsModuleCachePath node_modules/.vitest-cache",
23
- "typecheck": "tsc --noEmit"
22
+ "typecheck": "tsc --noEmit -p ."
24
23
  },
25
24
  "dependencies": {
26
- "@sebspark/retry": "1.0.20",
27
- "axios": "1.20.0",
25
+ "@sebspark/retry": "1.0.21",
26
+ "axios": "1.21.0",
28
27
  "express": "5.3.0"
29
28
  },
30
29
  "repository": {
@@ -32,9 +31,8 @@
32
31
  "url": "https://github.com/seb-oss/Spark-packages.git"
33
32
  },
34
33
  "devDependencies": {
35
- "@biomejs/biome": "2.6.3",
36
- "@sebspark/tsconfig": "3.0.26",
37
- "depcheck": "1.4.7",
34
+ "@biomejs/biome": "2.6.4",
35
+ "@sebspark/tsconfig": "3.0.28",
38
36
  "typescript": "7.0.2",
39
37
  "vite": "8.3.5",
40
38
  "vitest": "5.0.5"