@thymian/plugin-openapi 0.1.2-canary.20260409-382acff → 0.1.2-canary.20260410-77dca1f
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.
|
@@ -16,7 +16,7 @@ export default class Info extends BaseCliRunCommand {
|
|
|
16
16
|
'<%= config.bin %> <%= command.id %> openapi.yaml',
|
|
17
17
|
];
|
|
18
18
|
async run() {
|
|
19
|
-
const
|
|
19
|
+
const { document } = await loadOpenApi(this.args.content, this.flags.cwd);
|
|
20
20
|
const { valid, version, specification } = await validate(document);
|
|
21
21
|
if (!valid || !specification) {
|
|
22
22
|
throw new ThymianBaseError('Invalid OpenAPI document.', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/cli/commands/openapi/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,iBAA8B;IAC9D,MAAM,CAAU,IAAI,GAAG;QACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,KAAK;SACnB,CAAC;KACH,CAAC;IACF,MAAM,CAAU,WAAW,GACzB,sEAAsE,CAAC;IACzE,MAAM,CAAU,QAAQ,GAAG;QACzB,kDAAkD;KACnD,CAAC;IAEO,KAAK,CAAC,GAAG;QAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/cli/commands/openapi/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,iBAA8B;IAC9D,MAAM,CAAU,IAAI,GAAG;QACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,KAAK;SACnB,CAAC;KACH,CAAC;IACF,MAAM,CAAU,WAAW,GACzB,sEAAsE,CAAC;IACzE,MAAM,CAAU,QAAQ,GAAG;QACzB,kDAAkD;KACnD,CAAC;IAEO,KAAK,CAAC,GAAG;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,EAAE;gBACtD,IAAI,EAAE,6BAA6B;gBACnC,GAAG,EAAE,uEAAuE;gBAC5E,WAAW,EAAE;oBACX,iEAAiE;iBAClE;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC"}
|
package/dist/load-openapi.d.ts
CHANGED
|
@@ -6,7 +6,10 @@ export type LoadResult = {
|
|
|
6
6
|
original: OpenAPI.Document;
|
|
7
7
|
filePath?: string;
|
|
8
8
|
};
|
|
9
|
-
export declare function loadOpenApi(value: string, cwd?: string): Promise<
|
|
9
|
+
export declare function loadOpenApi(value: string, cwd?: string): Promise<{
|
|
10
|
+
document: object;
|
|
11
|
+
filePath: string | undefined;
|
|
12
|
+
}>;
|
|
10
13
|
export declare function loadAndUpgrade(value: string, cwd: string | undefined, logger: Logger): Promise<LoadResult>;
|
|
11
14
|
export declare function openapiToThymianFormat(document: OpenAPIV3_1.Document, options: {
|
|
12
15
|
logger?: Logger;
|
|
@@ -15,6 +18,7 @@ export declare function openapiToThymianFormat(document: OpenAPIV3_1.Document, o
|
|
|
15
18
|
filePath?: string;
|
|
16
19
|
format?: ThymianFormat;
|
|
17
20
|
sourceName?: string;
|
|
21
|
+
cwd?: string;
|
|
18
22
|
}): Promise<ThymianFormat>;
|
|
19
23
|
export declare function loadAndTransform(value: string, options: {
|
|
20
24
|
logger: Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-openapi.d.ts","sourceRoot":"","sources":["../src/load-openapi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load-openapi.d.ts","sourceRoot":"","sources":["../src/load-openapi.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,MAAM,EAGX,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAwBtE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAuD7D;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,YAAgB,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CA4ErB;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAkBhE"}
|
package/dist/load-openapi.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { access } from 'node:fs/promises';
|
|
2
|
+
import { isAbsolute, join, relative } from 'node:path';
|
|
2
3
|
import { bundle } from '@scalar/json-magic/bundle';
|
|
3
4
|
import { fetchUrls, parseJson, parseYaml, readFiles, } from '@scalar/json-magic/bundle/plugins/node';
|
|
4
5
|
import { dereference, validate } from '@scalar/openapi-parser';
|
|
@@ -7,6 +8,26 @@ import { NoopLogger, ThymianBaseError, } from '@thymian/core';
|
|
|
7
8
|
import { locMapperForFile } from './loc-mapper/loc-mapper-for-file.js';
|
|
8
9
|
import { NoopLocMapper } from './loc-mapper/noop-loc-mapper.js';
|
|
9
10
|
import { OpenapiProcessor } from './processors/openapi.processor.js';
|
|
11
|
+
function getRelativePath(filePath, cwd) {
|
|
12
|
+
try {
|
|
13
|
+
return relative(cwd, filePath);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return filePath;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function formatSourceLabel(relativePath) {
|
|
20
|
+
return relativePath ? `'${relativePath}'` : 'the OpenAPI document';
|
|
21
|
+
}
|
|
22
|
+
async function fileExists(path) {
|
|
23
|
+
try {
|
|
24
|
+
await access(path);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
10
31
|
export async function loadOpenApi(value, cwd = process.cwd()) {
|
|
11
32
|
const readFilesPlugin = readFiles();
|
|
12
33
|
// the validate function of the readFiles plugin returns undefined if the value is not a local file
|
|
@@ -14,49 +35,107 @@ export async function loadOpenApi(value, cwd = process.cwd()) {
|
|
|
14
35
|
const finalValue = !isFileValue || (isFileValue && isAbsolute(value))
|
|
15
36
|
? value
|
|
16
37
|
: join(cwd, value);
|
|
38
|
+
const relativePath = isFileValue
|
|
39
|
+
? getRelativePath(finalValue, cwd)
|
|
40
|
+
: undefined;
|
|
17
41
|
const plugins = [parseJson(), parseYaml(), readFilesPlugin, fetchUrls()];
|
|
18
|
-
return [
|
|
19
|
-
await bundle(finalValue, {
|
|
20
|
-
plugins,
|
|
21
|
-
treeShake: false,
|
|
22
|
-
}),
|
|
23
|
-
isFileValue ? finalValue : undefined,
|
|
24
|
-
];
|
|
25
|
-
}
|
|
26
|
-
export async function loadAndUpgrade(value, cwd = process.cwd(), logger) {
|
|
27
42
|
try {
|
|
28
|
-
const [result, filePath] = await loadOpenApi(value, cwd);
|
|
29
|
-
logger.debug(`Loaded OpenAPI document.`);
|
|
30
|
-
await validate(result, { throwOnError: true });
|
|
31
|
-
logger.debug(`Successfully validated OpenAPI document.`);
|
|
32
|
-
const upgradedObject = upgrade(structuredClone(result), '3.1');
|
|
33
|
-
logger.debug(`Upgraded OpenAPI document.`);
|
|
34
|
-
const dereferenced = dereference(upgradedObject, {
|
|
35
|
-
throwOnError: true,
|
|
36
|
-
}).schema;
|
|
37
|
-
logger.debug(`Dereferenced OpenAPI document.`);
|
|
38
43
|
return {
|
|
39
|
-
document:
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
document: await bundle(finalValue, {
|
|
45
|
+
plugins,
|
|
46
|
+
treeShake: false,
|
|
47
|
+
}),
|
|
48
|
+
filePath: isFileValue ? finalValue : undefined,
|
|
42
49
|
};
|
|
43
50
|
}
|
|
44
51
|
catch (e) {
|
|
45
|
-
|
|
52
|
+
if (isFileValue && !(await fileExists(finalValue))) {
|
|
53
|
+
throw new ThymianBaseError(`OpenAPI file not found: ${relativePath ?? value}`, {
|
|
54
|
+
name: 'OpenAPIFileNotFoundError',
|
|
55
|
+
ref: 'https://thymian.dev/references/errors/openapi-file-not-found-error/',
|
|
56
|
+
cause: e,
|
|
57
|
+
suggestions: [
|
|
58
|
+
`Verify the file path is correct: ${relativePath ?? value}`,
|
|
59
|
+
'Check file permissions and ensure the file is readable',
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const sourceLabel = relativePath ? `'${relativePath}'` : 'the document';
|
|
64
|
+
throw new ThymianBaseError(`Failed to read or parse ${sourceLabel}.`, {
|
|
46
65
|
name: 'OpenAPILoadError',
|
|
47
|
-
ref: 'https://thymian.dev/references/errors/openapi-load-error/',
|
|
48
66
|
cause: e,
|
|
49
67
|
suggestions: [
|
|
50
|
-
'
|
|
51
|
-
|
|
68
|
+
'Ensure the content is valid YAML or JSON',
|
|
69
|
+
...(isFileValue
|
|
70
|
+
? [
|
|
71
|
+
`Verify the file path is correct: ${relativePath ?? value}`,
|
|
72
|
+
'Check file permissions and ensure the file is readable',
|
|
73
|
+
]
|
|
74
|
+
: []),
|
|
52
75
|
],
|
|
53
76
|
});
|
|
54
77
|
}
|
|
55
78
|
}
|
|
79
|
+
export async function loadAndUpgrade(value, cwd = process.cwd(), logger) {
|
|
80
|
+
const { document, filePath } = await loadOpenApi(value, cwd);
|
|
81
|
+
const relativePath = filePath ? getRelativePath(filePath, cwd) : undefined;
|
|
82
|
+
const sourceLabel = formatSourceLabel(relativePath);
|
|
83
|
+
logger.info(`Loading ${sourceLabel}.`);
|
|
84
|
+
const validationResult = await validate(document, { throwOnError: false });
|
|
85
|
+
if (!validationResult.valid && validationResult.errors) {
|
|
86
|
+
const refErrors = validationResult.errors.filter((err) => err.code === 'INVALID_REFERENCE');
|
|
87
|
+
if (refErrors.length > 0) {
|
|
88
|
+
throw new ThymianBaseError(`Invalid $ref${refErrors.length > 1 ? 's' : ''} found: ${refErrors.map((err) => err.message).join(', ')}`, {
|
|
89
|
+
name: 'OpenAPIDereferenceError',
|
|
90
|
+
ref: 'https://thymian.dev/references/errors/openapi-dereference-error/',
|
|
91
|
+
cause: new Error(validationResult?.errors?.map((e) => e.message).join('; ') ?? ''),
|
|
92
|
+
suggestions: [
|
|
93
|
+
'Ensure all $refs are valid and resolve to a valid non-external location.',
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
throw new ThymianBaseError(`Schema validation for ${sourceLabel} failed.`, {
|
|
98
|
+
name: 'OpenAPIValidationError',
|
|
99
|
+
ref: 'https://thymian.dev/references/errors/openapi-validation-error/',
|
|
100
|
+
cause: new Error(validationResult.errors.map((e) => e.message).join('; ')),
|
|
101
|
+
suggestions: [
|
|
102
|
+
'This indicates that your OpenAPI document does not match the OpenAPI specification. Use `thymian openapi:validate` to get detailed validation errors',
|
|
103
|
+
'Ensure all required fields are present (openapi, info, paths)',
|
|
104
|
+
],
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
logger.debug(`Successfully validated ${sourceLabel}.`);
|
|
108
|
+
const upgradedObject = upgrade(structuredClone(document), '3.1');
|
|
109
|
+
logger.debug(`Upgraded ${sourceLabel} to version 3.1.`);
|
|
110
|
+
const dereferencedResult = dereference(upgradedObject, {
|
|
111
|
+
throwOnError: false,
|
|
112
|
+
});
|
|
113
|
+
if (dereferencedResult?.errors?.length || !dereferencedResult.schema) {
|
|
114
|
+
logger.debug(`Cannot dereference ${sourceLabel}.`);
|
|
115
|
+
throw new ThymianBaseError(`Dereferencing all internal references in ${sourceLabel} failed.`, {
|
|
116
|
+
name: 'OpenAPIDereferenceError',
|
|
117
|
+
ref: 'https://thymian.dev/references/errors/openapi-dereference-error/',
|
|
118
|
+
cause: new Error(dereferencedResult?.errors?.map((e) => e.message).join('; ') ?? ''),
|
|
119
|
+
suggestions: [
|
|
120
|
+
'Ensure all $refs are valid and resolve to a valid non-external location.',
|
|
121
|
+
],
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
document: dereferencedResult.schema,
|
|
126
|
+
original: document,
|
|
127
|
+
filePath: filePath ? filePath : undefined,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
56
130
|
export async function openapiToThymianFormat(document, options) {
|
|
131
|
+
const sourceLabel = options.filePath
|
|
132
|
+
? formatSourceLabel(getRelativePath(options.filePath, options.cwd ?? process.cwd()))
|
|
133
|
+
: formatSourceLabel(undefined);
|
|
57
134
|
if (typeof document.openapi !== 'string' ||
|
|
58
135
|
!document.openapi.startsWith('3.1')) {
|
|
59
|
-
throw new ThymianBaseError(
|
|
136
|
+
throw new ThymianBaseError(`Only OpenAPI 3.1.x documents are supported (found in ${sourceLabel}).`, {
|
|
137
|
+
name: 'OpenAPIDocumentVersionError',
|
|
138
|
+
});
|
|
60
139
|
}
|
|
61
140
|
const locMapper = typeof options.filePath === 'string'
|
|
62
141
|
? await locMapperForFile(options.filePath)
|
|
@@ -65,12 +144,16 @@ export async function openapiToThymianFormat(document, options) {
|
|
|
65
144
|
}
|
|
66
145
|
export async function loadAndTransform(value, options) {
|
|
67
146
|
const loadResult = await loadAndUpgrade(value, options.cwd, options.logger);
|
|
147
|
+
const relativePath = loadResult.filePath
|
|
148
|
+
? getRelativePath(loadResult.filePath, options.cwd)
|
|
149
|
+
: undefined;
|
|
68
150
|
const result = await openapiToThymianFormat(loadResult.document, {
|
|
69
151
|
...options,
|
|
70
152
|
filePath: loadResult.filePath,
|
|
71
153
|
filter: options.filter,
|
|
154
|
+
cwd: options.cwd,
|
|
72
155
|
});
|
|
73
|
-
options.logger.debug(
|
|
156
|
+
options.logger.debug(`Transformed ${formatSourceLabel(relativePath)} into Thymian format.`);
|
|
74
157
|
return [loadResult.original, result, loadResult.filePath];
|
|
75
158
|
}
|
|
76
159
|
//# sourceMappingURL=load-openapi.js.map
|
package/dist/load-openapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-openapi.js","sourceRoot":"","sources":["../src/load-openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"load-openapi.js","sourceRoot":"","sources":["../src/load-openapi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thymian/plugin-openapi",
|
|
3
|
-
"version": "0.1.2-canary.
|
|
3
|
+
"version": "0.1.2-canary.20260410-77dca1f",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/thymianofficial/thymian/issues"
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@scalar/openapi-parser": "^0.23.2",
|
|
30
30
|
"@scalar/openapi-upgrader": "^0.1.4",
|
|
31
|
-
"@thymian/common-cli": "0.1.2-canary.
|
|
32
|
-
"@thymian/core": "0.1.2-canary.
|
|
31
|
+
"@thymian/common-cli": "0.1.2-canary.20260410-77dca1f",
|
|
32
|
+
"@thymian/core": "0.1.2-canary.20260410-77dca1f",
|
|
33
33
|
"jsonc-parser": "^3.2.0",
|
|
34
34
|
"tinyglobby": "^0.2.14",
|
|
35
35
|
"traverse": "^0.6.11",
|