@thymian/plugin-openapi 0.2.1-canary.20260826-6fe84ef → 0.2.1-canary.20260827-9d165f9
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses-object.processor.d.ts","sourceRoot":"","sources":["../../src/processors/responses-object.processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAG/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"responses-object.processor.d.ts","sourceRoot":"","sources":["../../src/processors/responses-object.processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAG/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkB7C,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,UAAU,CAAC,eAAe,GAAG,SAAS,EACvD,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAC5B,kBAAkB,EAAE,CAkEtB"}
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
import { httpStatusCodeRanges, isHttpStatusCodeRange } from '@thymian/core';
|
|
2
2
|
import { resolveOpenApiReference } from './openapi-reference-resolver.js';
|
|
3
3
|
import { processResponseObject, } from './response-object.processor.js';
|
|
4
|
+
/**
|
|
5
|
+
* OpenAPI Specification Extension field names. Extensions are explicitly
|
|
6
|
+
* allowed in the Responses Object and carry metadata, not responses, so they
|
|
7
|
+
* must never be interpreted as status codes.
|
|
8
|
+
*
|
|
9
|
+
* @see https://spec.openapis.org/oas/v3.1.0#specification-extensions
|
|
10
|
+
*/
|
|
11
|
+
const specificationExtensionPattern = /^x-/;
|
|
12
|
+
/**
|
|
13
|
+
* A status code range written in a case other than the uppercase form the
|
|
14
|
+
* OpenAPI Specification requires (e.g. `2xx` instead of `2XX`). Only used to
|
|
15
|
+
* produce a better error message — such keys are rejected, not accepted.
|
|
16
|
+
*/
|
|
17
|
+
const misCasedStatusCodeRangePattern = /^[1-5]xx$/i;
|
|
4
18
|
export function processResponsesObject(responsesObject, parameters, document) {
|
|
5
19
|
const responses = {};
|
|
6
20
|
for (const [statusCode, responseObject] of Object.entries(responsesObject ?? {})) {
|
|
21
|
+
if (specificationExtensionPattern.test(statusCode)) {
|
|
22
|
+
// Skipped before reference resolution: an extension value is not a
|
|
23
|
+
// Response Object and must not be resolved or coerced as one.
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
7
26
|
const resolvedResponse = resolveOpenApiReference(responseObject, document, 'response');
|
|
8
27
|
if (statusCode === 'default') {
|
|
9
28
|
/* ignored */
|
|
@@ -18,8 +37,12 @@ export function processResponsesObject(responsesObject, parameters, document) {
|
|
|
18
37
|
}
|
|
19
38
|
else {
|
|
20
39
|
const statusCodeNumber = +statusCode;
|
|
21
|
-
if (statusCodeNumber
|
|
22
|
-
|
|
40
|
+
if (!Number.isInteger(statusCodeNumber) ||
|
|
41
|
+
statusCodeNumber < 100 ||
|
|
42
|
+
statusCodeNumber > 599) {
|
|
43
|
+
throw new Error(`Invalid status code. Status code must be a valid http status code or status code range (e.g. 2XX), but is ${statusCode}.${misCasedStatusCodeRangePattern.test(statusCode)
|
|
44
|
+
? ` Status code ranges must be uppercase, use '${statusCode.toUpperCase()}' instead.`
|
|
45
|
+
: ''}`);
|
|
23
46
|
}
|
|
24
47
|
responses[statusCode] = processResponseObject(resolvedResponse, statusCodeNumber, parameters, document);
|
|
25
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses-object.processor.js","sourceRoot":"","sources":["../../src/processors/responses-object.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,qBAAqB,GAEtB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,UAAU,sBAAsB,CACpC,eAAuD,EACvD,UAAsB,EACtB,QAA6B;IAE7B,MAAM,SAAS,GAMX,EAAE,CAAC;IAEP,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,eAAe,IAAI,EAAE,CACtB,EAAE,CAAC;QACF,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,cAAc,EACd,QAAQ,EACR,UAAU,CACX,CAAC;QAEF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa;QACf,CAAC;aAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,oBAAoB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBACvC,SAAS,CAAC,OAAO,CAAC,GAAG,qBAAqB,CACxC,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAC;YAErC,
|
|
1
|
+
{"version":3,"file":"responses-object.processor.js","sourceRoot":"","sources":["../../src/processors/responses-object.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,qBAAqB,GAEtB,MAAM,gCAAgC,CAAC;AAGxC;;;;;;GAMG;AACH,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAE5C;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAEpD,MAAM,UAAU,sBAAsB,CACpC,eAAuD,EACvD,UAAsB,EACtB,QAA6B;IAE7B,MAAM,SAAS,GAMX,EAAE,CAAC;IAEP,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,eAAe,IAAI,EAAE,CACtB,EAAE,CAAC;QACF,IAAI,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnD,mEAAmE;YACnE,8DAA8D;YAC9D,SAAS;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,cAAc,EACd,QAAQ,EACR,UAAU,CACX,CAAC;QAEF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa;QACf,CAAC;aAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,oBAAoB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBACvC,SAAS,CAAC,OAAO,CAAC,GAAG,qBAAqB,CACxC,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAC;YAErC,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACnC,gBAAgB,GAAG,GAAG;gBACtB,gBAAgB,GAAG,GAAG,EACtB,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,6GAA6G,UAAU,IACrH,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC7C,CAAC,CAAC,+CAA+C,UAAU,CAAC,WAAW,EAAE,YAAY;oBACrF,CAAC,CAAC,EACN,EAAE,CACH,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAC3C,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thymian/plugin-openapi",
|
|
3
|
-
"version": "0.2.1-canary.
|
|
3
|
+
"version": "0.2.1-canary.20260827-9d165f9",
|
|
4
4
|
"description": "Thymian plugin for loading, parsing, and transforming OpenAPI specifications",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"bugs": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"@scalar/json-magic": "^0.9.0",
|
|
43
43
|
"@scalar/openapi-parser": "^0.23.2",
|
|
44
44
|
"@scalar/openapi-upgrader": "^0.1.4",
|
|
45
|
-
"@thymian/common-cli": "0.2.1-canary.
|
|
46
|
-
"@thymian/core": "0.2.1-canary.
|
|
45
|
+
"@thymian/common-cli": "0.2.1-canary.20260827-9d165f9",
|
|
46
|
+
"@thymian/core": "0.2.1-canary.20260827-9d165f9",
|
|
47
47
|
"jsonc-parser": "^3.2.0",
|
|
48
48
|
"tinyglobby": "^0.2.14",
|
|
49
49
|
"tslib": "^2.3.0",
|