@kubb/plugin-oas 2.26.2 → 2.26.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{OperationGenerator-BV6QRtkW.d.cts → OperationGenerator-8tADySO6.d.cts} +1 -1
- package/dist/{OperationGenerator-DO5tNGuT.d.ts → OperationGenerator-DvyNt6Xi.d.ts} +1 -1
- package/dist/{chunk-P42X362U.cjs → chunk-2BGY3BRC.cjs} +3 -3
- package/dist/{chunk-P42X362U.cjs.map → chunk-2BGY3BRC.cjs.map} +1 -1
- package/dist/{chunk-UB552H4J.js → chunk-2YX4XBMY.js} +3 -3
- package/dist/{chunk-UB552H4J.js.map → chunk-2YX4XBMY.js.map} +1 -1
- package/dist/{chunk-CB4BJMGC.cjs → chunk-7R4J27KH.cjs} +25 -22
- package/dist/chunk-7R4J27KH.cjs.map +1 -0
- package/dist/{chunk-Y4V7HHX7.js → chunk-B3QCCJ62.js} +9 -9
- package/dist/chunk-B3QCCJ62.js.map +1 -0
- package/dist/{chunk-QLJIL3U5.cjs → chunk-HUFRXC4N.cjs} +9 -9
- package/dist/chunk-HUFRXC4N.cjs.map +1 -0
- package/dist/{chunk-KEVZ6FD5.js → chunk-QOM3GBVG.js} +6 -3
- package/dist/{chunk-KEVZ6FD5.js.map → chunk-QOM3GBVG.js.map} +1 -1
- package/dist/{chunk-7N7ULYN2.cjs → chunk-WA7WV7KK.cjs} +23 -23
- package/dist/{chunk-7N7ULYN2.cjs.map → chunk-WA7WV7KK.cjs.map} +1 -1
- package/dist/{chunk-VNSF4EQP.js → chunk-YJ3OFCLL.js} +3 -3
- package/dist/components.cjs +5 -5
- package/dist/components.d.cts +2 -3
- package/dist/components.d.ts +2 -3
- package/dist/components.js +3 -3
- package/dist/hooks.cjs +13 -13
- package/dist/hooks.d.cts +1 -2
- package/dist/hooks.d.ts +1 -2
- package/dist/hooks.js +3 -3
- package/dist/index.cjs +25 -37
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -4
- package/dist/index.d.ts +3 -4
- package/dist/index.js +11 -23
- package/dist/index.js.map +1 -1
- package/dist/{types-Db0qp8u-.d.cts → types-RVAPVtNi.d.cts} +1 -4
- package/dist/{types-Db0qp8u-.d.ts → types-RVAPVtNi.d.ts} +1 -4
- package/dist/utils.cjs +8 -8
- package/dist/utils.d.cts +3 -4
- package/dist/utils.d.ts +3 -4
- package/dist/utils.js +3 -3
- package/package.json +13 -13
- package/src/SchemaGenerator.ts +1 -1
- package/src/plugin.ts +7 -20
- package/src/types.ts +1 -4
- package/src/utils/parseFromConfig.ts +7 -7
- package/dist/chunk-CB4BJMGC.cjs.map +0 -1
- package/dist/chunk-QLJIL3U5.cjs.map +0 -1
- package/dist/chunk-Y4V7HHX7.js.map +0 -1
- /package/dist/{chunk-VNSF4EQP.js.map → chunk-YJ3OFCLL.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileMetaBase, PluginFactoryOptions, Generator, PluginManager, Plugin } from '@kubb/core';
|
|
2
2
|
import * as KubbFile from '@kubb/fs/types';
|
|
3
3
|
import { Operation, Oas, contentType } from '@kubb/oas';
|
|
4
|
-
import { g as OperationsByMethod, f as OperationSchemas, E as Exclude, I as Include, b as Override } from './types-
|
|
4
|
+
import { g as OperationsByMethod, f as OperationSchemas, E as Exclude, I as Include, b as Override } from './types-RVAPVtNi.cjs';
|
|
5
5
|
|
|
6
6
|
type GetOperationGeneratorOptions<T extends OperationGenerator<any, any, any>> = T extends OperationGenerator<infer Options, any, any> ? Options : never;
|
|
7
7
|
type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileMetaBase, PluginFactoryOptions, Generator, PluginManager, Plugin } from '@kubb/core';
|
|
2
2
|
import * as KubbFile from '@kubb/fs/types';
|
|
3
3
|
import { Operation, Oas, contentType } from '@kubb/oas';
|
|
4
|
-
import { g as OperationsByMethod, f as OperationSchemas, E as Exclude, I as Include, b as Override } from './types-
|
|
4
|
+
import { g as OperationsByMethod, f as OperationSchemas, E as Exclude, I as Include, b as Override } from './types-RVAPVtNi.js';
|
|
5
5
|
|
|
6
6
|
type GetOperationGeneratorOptions<T extends OperationGenerator<any, any, any>> = T extends OperationGenerator<infer Options, any, any> ? Options : never;
|
|
7
7
|
type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>;
|
|
@@ -35,9 +35,9 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
35
35
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
36
36
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
37
37
|
|
|
38
|
-
// ../../node_modules/.pnpm/tsup@8.
|
|
38
|
+
// ../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js
|
|
39
39
|
var init_cjs_shims = __esm({
|
|
40
|
-
"../../node_modules/.pnpm/tsup@8.
|
|
40
|
+
"../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js"() {
|
|
41
41
|
"use strict";
|
|
42
42
|
}
|
|
43
43
|
});
|
|
@@ -98,4 +98,4 @@ function getSchemaFactory(oas) {
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
exports.__commonJS = __commonJS; exports.__toESM = __toESM; exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod; exports.init_cjs_shims = init_cjs_shims; exports.getSchemas = getSchemas; exports.getSchemaFactory = getSchemaFactory;
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-2BGY3BRC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-2BGY3BRC.cjs","../../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js","../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-2BGY3BRC.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\nexport type GetSchemasProps = {\n oas: Oas\n contentType?: contentType\n includes?: Mode[]\n}\n\nexport function getSchemas({ oas, contentType, includes = ['schemas', 'requestBodies', 'responses'] }: GetSchemasProps): Record<string, OasTypes.SchemaObject> {\n const components = oas.getDefinition().components\n\n let schemas: Record<string, OasTypes.SchemaObject> = {}\n\n if (includes.includes('schemas')) {\n schemas = {\n ...schemas,\n ...((components?.schemas as Record<string, OasTypes.SchemaObject>) || {}),\n }\n }\n\n const requestBodies = components?.requestBodies || {}\n if (includes.includes('responses')) {\n const responses = components?.responses || {}\n\n Object.entries(responses).forEach(([name, response]: [string, OasTypes.ResponseObject]) => {\n if (response.content && !schemas[name]) {\n const firstContentType = Object.keys(response.content)[0] || 'application/json'\n schemas[name] = response.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n if (includes.includes('requestBodies')) {\n Object.entries(requestBodies).forEach(([name, request]: [string, OasTypes.RequestBodyObject]) => {\n if (request.content && !schemas[name]) {\n const firstContentType = Object.keys(request.content)[0] || 'application/json'\n schemas[name] = request.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n return schemas\n}\n","import { isOpenApiV3_1Document } from '@kubb/oas'\n\nimport type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'\n\n/**\n * Make it possible to narrow down the schema based on a specific version(3 or 3.1)\n */\ntype SchemaResult<TWithRef extends boolean = false> =\n | {\n schema?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schema?: (TWithRef extends true ? OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject : OpenAPIV3_1.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.1'\n }\n\nexport function getSchemaFactory<TWithRef extends boolean = false>(oas: Oas): (schema?: SchemaObject) => SchemaResult<TWithRef> {\n return (schema?: SchemaObject) => {\n const version = isOpenApiV3_1Document(oas.api) ? '3.1' : '3.0'\n\n return {\n schema,\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"]}
|
|
@@ -35,9 +35,9 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
35
35
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
36
36
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
37
37
|
|
|
38
|
-
// ../../node_modules/.pnpm/tsup@8.
|
|
38
|
+
// ../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js
|
|
39
39
|
var init_esm_shims = __esm({
|
|
40
|
-
"../../node_modules/.pnpm/tsup@8.
|
|
40
|
+
"../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js"() {
|
|
41
41
|
"use strict";
|
|
42
42
|
}
|
|
43
43
|
});
|
|
@@ -98,4 +98,4 @@ export {
|
|
|
98
98
|
getSchemas,
|
|
99
99
|
getSchemaFactory
|
|
100
100
|
};
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-2YX4XBMY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.47.9_@types+node@20.16.5__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js","../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\nexport type GetSchemasProps = {\n oas: Oas\n contentType?: contentType\n includes?: Mode[]\n}\n\nexport function getSchemas({ oas, contentType, includes = ['schemas', 'requestBodies', 'responses'] }: GetSchemasProps): Record<string, OasTypes.SchemaObject> {\n const components = oas.getDefinition().components\n\n let schemas: Record<string, OasTypes.SchemaObject> = {}\n\n if (includes.includes('schemas')) {\n schemas = {\n ...schemas,\n ...((components?.schemas as Record<string, OasTypes.SchemaObject>) || {}),\n }\n }\n\n const requestBodies = components?.requestBodies || {}\n if (includes.includes('responses')) {\n const responses = components?.responses || {}\n\n Object.entries(responses).forEach(([name, response]: [string, OasTypes.ResponseObject]) => {\n if (response.content && !schemas[name]) {\n const firstContentType = Object.keys(response.content)[0] || 'application/json'\n schemas[name] = response.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n if (includes.includes('requestBodies')) {\n Object.entries(requestBodies).forEach(([name, request]: [string, OasTypes.RequestBodyObject]) => {\n if (request.content && !schemas[name]) {\n const firstContentType = Object.keys(request.content)[0] || 'application/json'\n schemas[name] = request.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n return schemas\n}\n","import { isOpenApiV3_1Document } from '@kubb/oas'\n\nimport type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'\n\n/**\n * Make it possible to narrow down the schema based on a specific version(3 or 3.1)\n */\ntype SchemaResult<TWithRef extends boolean = false> =\n | {\n schema?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schema?: (TWithRef extends true ? OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject : OpenAPIV3_1.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.1'\n }\n\nexport function getSchemaFactory<TWithRef extends boolean = false>(oas: Oas): (schema?: SchemaObject) => SchemaResult<TWithRef> {\n return (schema?: SchemaObject) => {\n const version = isOpenApiV3_1Document(oas.api) ? '3.1' : '3.0'\n\n return {\n schema,\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAUO,SAAS,WAAW,EAAE,KAAK,aAAa,WAAW,CAAC,WAAW,iBAAiB,WAAW,EAAE,GAA2D;AAC7J,QAAM,aAAa,IAAI,cAAc,EAAE;AAEvC,MAAI,UAAiD,CAAC;AAEtD,MAAI,SAAS,SAAS,SAAS,GAAG;AAChC,cAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAK,YAAY,WAAqD,CAAC;AAAA,IACzE;AAAA,EACF;AAEA,QAAM,gBAAgB,YAAY,iBAAiB,CAAC;AACpD,MAAI,SAAS,SAAS,WAAW,GAAG;AAClC,UAAM,YAAY,YAAY,aAAa,CAAC;AAE5C,WAAO,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,QAAQ,MAAyC;AACzF,UAAI,SAAS,WAAW,CAAC,QAAQ,IAAI,GAAG;AACtC,cAAM,mBAAmB,OAAO,KAAK,SAAS,OAAO,EAAE,CAAC,KAAK;AAC7D,gBAAQ,IAAI,IAAI,SAAS,UAAU,eAAe,gBAAgB,GAAG;AAAA,MACvE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,SAAS,SAAS,eAAe,GAAG;AACtC,WAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAA4C;AAC/F,UAAI,QAAQ,WAAW,CAAC,QAAQ,IAAI,GAAG;AACrC,cAAM,mBAAmB,OAAO,KAAK,QAAQ,OAAO,EAAE,CAAC,KAAK;AAC5D,gBAAQ,IAAI,IAAI,QAAQ,UAAU,eAAe,gBAAgB,GAAG;AAAA,MACtE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;;;AC5CA;AAAA,SAAS,6BAA6B;AAuB/B,SAAS,iBAAmD,KAA6D;AAC9H,SAAO,CAAC,WAA0B;AAChC,UAAM,UAAU,sBAAsB,IAAI,GAAG,IAAI,QAAQ;AAEzD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunk2BGY3BRCcjs = require('./chunk-2BGY3BRC.cjs');
|
|
9
9
|
|
|
10
10
|
// src/SchemaMapper.ts
|
|
11
|
-
|
|
11
|
+
_chunk2BGY3BRCcjs.init_cjs_shims.call(void 0, );
|
|
12
12
|
var schemaKeywords = {
|
|
13
13
|
any: "any",
|
|
14
14
|
strict: "strict",
|
|
@@ -60,7 +60,7 @@ function isKeyword(meta, keyword) {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// src/SchemaGenerator.ts
|
|
63
|
-
|
|
63
|
+
_chunk2BGY3BRCcjs.init_cjs_shims.call(void 0, );
|
|
64
64
|
var _core = require('@kubb/core');
|
|
65
65
|
var _transformers = require('@kubb/core/transformers'); var _transformers2 = _interopRequireDefault(_transformers);
|
|
66
66
|
var _utils = require('@kubb/core/utils');
|
|
@@ -70,11 +70,11 @@ var _usedAliasNames, _SchemaGenerator_instances, getUsedEnumNames_fn, getOptions
|
|
|
70
70
|
var _SchemaGenerator = class _SchemaGenerator extends _core.Generator {
|
|
71
71
|
constructor() {
|
|
72
72
|
super(...arguments);
|
|
73
|
-
|
|
73
|
+
_chunk2BGY3BRCcjs.__privateAdd.call(void 0, this, _SchemaGenerator_instances);
|
|
74
74
|
// Collect the types of all referenced schemas, so we can export them later
|
|
75
75
|
this.refs = {};
|
|
76
76
|
// Keep track of already used type aliases
|
|
77
|
-
|
|
77
|
+
_chunk2BGY3BRCcjs.__privateAdd.call(void 0, this, _usedAliasNames, {});
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Creates a type node from a given schema.
|
|
@@ -82,8 +82,8 @@ var _SchemaGenerator = class _SchemaGenerator extends _core.Generator {
|
|
|
82
82
|
* optionally adds a union with null.
|
|
83
83
|
*/
|
|
84
84
|
parse(props) {
|
|
85
|
-
const options =
|
|
86
|
-
const defaultSchemas =
|
|
85
|
+
const options = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getOptions_fn).call(this, props);
|
|
86
|
+
const defaultSchemas = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, parseSchemaObject_fn).call(this, props);
|
|
87
87
|
const schemas = _optionalChain([options, 'access', _ => _.transformers, 'optionalAccess', _2 => _2.schema, 'optionalCall', _3 => _3(props, defaultSchemas)]) || defaultSchemas || [];
|
|
88
88
|
return _remeda.uniqueWith.call(void 0, schemas, _remeda.isDeepEqual);
|
|
89
89
|
}
|
|
@@ -200,9 +200,9 @@ var _SchemaGenerator = class _SchemaGenerator extends _core.Generator {
|
|
|
200
200
|
}
|
|
201
201
|
async build() {
|
|
202
202
|
const { oas, contentType, include } = this.context;
|
|
203
|
-
const schemas =
|
|
203
|
+
const schemas = _chunk2BGY3BRCcjs.getSchemas.call(void 0, { oas, contentType, includes: include });
|
|
204
204
|
const promises = Object.entries(schemas).reduce((acc, [name, schema]) => {
|
|
205
|
-
const options =
|
|
205
|
+
const options = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getOptions_fn).call(this, { name });
|
|
206
206
|
const promiseOperation = this.schema.call(this, name, schema, {
|
|
207
207
|
...this.options,
|
|
208
208
|
...options
|
|
@@ -219,7 +219,7 @@ var _SchemaGenerator = class _SchemaGenerator extends _core.Generator {
|
|
|
219
219
|
_usedAliasNames = new WeakMap();
|
|
220
220
|
_SchemaGenerator_instances = new WeakSet();
|
|
221
221
|
getUsedEnumNames_fn = function(props) {
|
|
222
|
-
const options =
|
|
222
|
+
const options = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getOptions_fn).call(this, props);
|
|
223
223
|
return options.usedEnumNames || {};
|
|
224
224
|
};
|
|
225
225
|
getOptions_fn = function({ name }) {
|
|
@@ -235,7 +235,7 @@ getOptions_fn = function({ name }) {
|
|
|
235
235
|
};
|
|
236
236
|
};
|
|
237
237
|
getUnknownReturn_fn = function(props) {
|
|
238
|
-
const options =
|
|
238
|
+
const options = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getOptions_fn).call(this, props);
|
|
239
239
|
if (options.unknownType === "any") {
|
|
240
240
|
return schemaKeywords.any;
|
|
241
241
|
}
|
|
@@ -269,7 +269,7 @@ parseProperties_fn = function({ schema, name }) {
|
|
|
269
269
|
}).reduce((acc, curr) => ({ ...acc, ...curr }), {});
|
|
270
270
|
let additionalPropertiesSchemas = [];
|
|
271
271
|
if (additionalProperties) {
|
|
272
|
-
additionalPropertiesSchemas = additionalProperties === true ? [{ keyword:
|
|
272
|
+
additionalPropertiesSchemas = additionalProperties === true ? [{ keyword: _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getUnknownReturn_fn).call(this, { schema, name }) }] : this.parse({ schema: additionalProperties, parentName: name });
|
|
273
273
|
}
|
|
274
274
|
return [
|
|
275
275
|
{
|
|
@@ -287,7 +287,7 @@ parseProperties_fn = function({ schema, name }) {
|
|
|
287
287
|
getRefAlias_fn = function(obj) {
|
|
288
288
|
const { $ref } = obj;
|
|
289
289
|
let ref = this.refs[$ref];
|
|
290
|
-
const originalName = _utils.getUniqueName.call(void 0, $ref.replace(/.+\//, ""),
|
|
290
|
+
const originalName = _utils.getUniqueName.call(void 0, $ref.replace(/.+\//, ""), _chunk2BGY3BRCcjs.__privateGet.call(void 0, this, _usedAliasNames));
|
|
291
291
|
const propertyName = this.context.pluginManager.resolveName({
|
|
292
292
|
name: originalName,
|
|
293
293
|
pluginKey: this.context.plugin.key,
|
|
@@ -324,7 +324,7 @@ getRefAlias_fn = function(obj) {
|
|
|
324
324
|
];
|
|
325
325
|
};
|
|
326
326
|
getParsedSchemaObject_fn = function(schema) {
|
|
327
|
-
const parsedSchema =
|
|
327
|
+
const parsedSchema = _chunk2BGY3BRCcjs.getSchemaFactory.call(void 0, this.context.oas)(schema);
|
|
328
328
|
return parsedSchema;
|
|
329
329
|
};
|
|
330
330
|
/**
|
|
@@ -332,9 +332,9 @@ getParsedSchemaObject_fn = function(schema) {
|
|
|
332
332
|
* schema and returns the appropriate type.
|
|
333
333
|
*/
|
|
334
334
|
parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
335
|
-
const options =
|
|
336
|
-
const unknownReturn =
|
|
337
|
-
const { schema, version } =
|
|
335
|
+
const options = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getOptions_fn).call(this, { schema: _schema, name });
|
|
336
|
+
const unknownReturn = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getUnknownReturn_fn).call(this, { schema: _schema, name });
|
|
337
|
+
const { schema, version } = _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getParsedSchemaObject_fn).call(this, _schema);
|
|
338
338
|
if (!schema) {
|
|
339
339
|
return [{ keyword: unknownReturn }];
|
|
340
340
|
}
|
|
@@ -400,7 +400,7 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
400
400
|
}
|
|
401
401
|
if (_oas.isReference.call(void 0, schema)) {
|
|
402
402
|
return [
|
|
403
|
-
...
|
|
403
|
+
..._chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getRefAlias_fn).call(this, schema),
|
|
404
404
|
nullable && { keyword: schemaKeywords.nullable },
|
|
405
405
|
{
|
|
406
406
|
keyword: schemaKeywords.schema,
|
|
@@ -474,7 +474,7 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
474
474
|
return [and, ...baseItems];
|
|
475
475
|
}
|
|
476
476
|
if (schema.enum) {
|
|
477
|
-
const enumName = _utils.getUniqueName.call(void 0, _transformers.pascalCase.call(void 0, [parentName, name, options.enumSuffix].join(" ")),
|
|
477
|
+
const enumName = _utils.getUniqueName.call(void 0, _transformers.pascalCase.call(void 0, [parentName, name, options.enumSuffix].join(" ")), _chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, getUsedEnumNames_fn).call(this, { schema, name }));
|
|
478
478
|
const typeName = this.context.pluginManager.resolveName({
|
|
479
479
|
name: enumName,
|
|
480
480
|
pluginKey: this.context.plugin.key,
|
|
@@ -642,6 +642,9 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
642
642
|
case "idn-hostname":
|
|
643
643
|
baseItems.unshift({ keyword: schemaKeywords.url });
|
|
644
644
|
break;
|
|
645
|
+
// case 'duration':
|
|
646
|
+
// case 'json-pointer':
|
|
647
|
+
// case 'relative-json-pointer':
|
|
645
648
|
default:
|
|
646
649
|
break;
|
|
647
650
|
}
|
|
@@ -663,7 +666,7 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
663
666
|
];
|
|
664
667
|
}
|
|
665
668
|
if (schema.properties || schema.additionalProperties) {
|
|
666
|
-
return [...
|
|
669
|
+
return [..._chunk2BGY3BRCcjs.__privateMethod.call(void 0, this, _SchemaGenerator_instances, parseProperties_fn).call(this, { schema, name }), ...baseItems];
|
|
667
670
|
}
|
|
668
671
|
if (schema.type) {
|
|
669
672
|
if (Array.isArray(schema.type)) {
|
|
@@ -680,7 +683,7 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
680
683
|
...baseItems
|
|
681
684
|
].filter(Boolean);
|
|
682
685
|
}
|
|
683
|
-
if (!["boolean", "object", "number", "string", "integer"].includes(schema.type)) {
|
|
686
|
+
if (!["boolean", "object", "number", "string", "integer", "null"].includes(schema.type)) {
|
|
684
687
|
this.context.pluginManager.logger.emit("warning", `Schema type '${schema.type}' is not valid for schema ${parentName}.${name}`);
|
|
685
688
|
}
|
|
686
689
|
return [{ keyword: schema.type }, ...baseItems];
|
|
@@ -694,4 +697,4 @@ var SchemaGenerator = _SchemaGenerator;
|
|
|
694
697
|
|
|
695
698
|
|
|
696
699
|
exports.schemaKeywords = schemaKeywords; exports.isKeyword = isKeyword; exports.SchemaGenerator = SchemaGenerator;
|
|
697
|
-
//# sourceMappingURL=chunk-
|
|
700
|
+
//# sourceMappingURL=chunk-7R4J27KH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-7R4J27KH.cjs","../src/SchemaMapper.ts","../src/SchemaGenerator.ts"],"names":["_schema","nullable","name","min","max"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-7R4J27KH.cjs","sourcesContent":[null,"import type * as KubbFile from '@kubb/fs/types'\n\nexport type SchemaKeywordMapper = {\n object: {\n keyword: 'object'\n args: {\n properties: { [x: string]: Schema[] }\n additionalProperties: Schema[]\n strict?: boolean\n }\n }\n strict: { keyword: 'strict' }\n url: { keyword: 'url' }\n readOnly: { keyword: 'readOnly' }\n uuid: { keyword: 'uuid' }\n email: { keyword: 'email' }\n firstName: { keyword: 'firstName' }\n lastName: { keyword: 'lastName' }\n phone: { keyword: 'phone' }\n password: { keyword: 'password' }\n date: { keyword: 'date'; args: { type?: 'date' | 'string' } }\n time: { keyword: 'time'; args: { type?: 'date' | 'string' } }\n datetime: { keyword: 'datetime'; args: { offset?: boolean; local?: boolean } }\n tuple: { keyword: 'tuple'; args: { items: Schema[]; min?: number; max?: number } }\n array: {\n keyword: 'array'\n args: { items: Schema[]; min?: number; max?: number }\n }\n enum: {\n keyword: 'enum'\n args: {\n name: string\n typeName: string\n asConst: boolean\n items: Array<{\n name: string | number\n format: 'string' | 'number'\n value?: string | number\n }>\n }\n }\n and: { keyword: 'and'; args: Schema[] }\n const: {\n keyword: 'const'\n args: {\n name: string | number\n format: 'string' | 'number'\n value?: string | number\n }\n }\n union: { keyword: 'union'; args: Schema[] }\n ref: {\n keyword: 'ref'\n args: { name: string; path: KubbFile.OptionalPath }\n }\n matches: { keyword: 'matches'; args?: string }\n boolean: { keyword: 'boolean' }\n default: { keyword: 'default'; args: string | number | boolean }\n string: { keyword: 'string' }\n integer: { keyword: 'integer' }\n number: { keyword: 'number' }\n max: { keyword: 'max'; args: number }\n min: { keyword: 'min'; args: number }\n describe: { keyword: 'describe'; args: string }\n example: { keyword: 'example'; args: string }\n deprecated: { keyword: 'deprecated' }\n optional: { keyword: 'optional' }\n undefined: { keyword: 'undefined' }\n nullish: { keyword: 'nullish' }\n nullable: { keyword: 'nullable' }\n null: { keyword: 'null' }\n any: { keyword: 'any' }\n unknown: { keyword: 'unknown' }\n blob: { keyword: 'blob' }\n schema: { keyword: 'schema'; args: { type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object'; format?: string } }\n name: { keyword: 'name'; args: string }\n catchall: { keyword: 'catchall' }\n}\n\nexport const schemaKeywords = {\n any: 'any',\n strict: 'strict',\n unknown: 'unknown',\n number: 'number',\n integer: 'integer',\n string: 'string',\n boolean: 'boolean',\n undefined: 'undefined',\n nullable: 'nullable',\n null: 'null',\n nullish: 'nullish',\n array: 'array',\n tuple: 'tuple',\n enum: 'enum',\n union: 'union',\n datetime: 'datetime',\n date: 'date',\n email: 'email',\n uuid: 'uuid',\n url: 'url',\n /* intersection */\n default: 'default',\n const: 'const',\n and: 'and',\n describe: 'describe',\n min: 'min',\n max: 'max',\n optional: 'optional',\n readOnly: 'readOnly',\n\n // custom ones\n object: 'object',\n ref: 'ref',\n matches: 'matches',\n firstName: 'firstName',\n lastName: 'lastName',\n password: 'password',\n phone: 'phone',\n blob: 'blob',\n deprecated: 'deprecated',\n example: 'example',\n schema: 'schema',\n catchall: 'catchall',\n time: 'time',\n name: 'name',\n} satisfies {\n [K in keyof SchemaKeywordMapper]: SchemaKeywordMapper[K]['keyword']\n}\n\nexport type SchemaKeyword = keyof SchemaKeywordMapper\n\nexport type SchemaMapper<T = string | null | undefined> = {\n [K in keyof SchemaKeywordMapper]: (() => T | undefined) | undefined\n}\n\nexport type SchemaKeywordBase<T> = {\n keyword: SchemaKeyword\n args: T\n}\n\nexport type Schema = { keyword: string } | SchemaKeywordMapper[keyof SchemaKeywordMapper]\n\nexport function isKeyword<T extends Schema, K extends keyof SchemaKeywordMapper>(meta: T, keyword: K): meta is Extract<T, SchemaKeywordMapper[K]> {\n return meta.keyword === keyword\n}\n","import { type FileMetaBase, Generator } from '@kubb/core'\nimport transformers, { pascalCase } from '@kubb/core/transformers'\nimport { getUniqueName } from '@kubb/core/utils'\n\nimport { isReference } from '@kubb/oas'\nimport { isDeepEqual, isNumber, uniqueWith } from 'remeda'\nimport { isKeyword, schemaKeywords } from './SchemaMapper.ts'\nimport { getSchemaFactory } from './utils/getSchemaFactory.ts'\nimport { getSchemas } from './utils/getSchemas.ts'\n\nimport type { Plugin, PluginFactoryOptions, PluginManager, ResolveNameParams } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { Oas, OpenAPIV3, SchemaObject, contentType } from '@kubb/oas'\nimport type { Schema, SchemaKeywordMapper } from './SchemaMapper.ts'\nimport type { OperationSchema, Override, Refs } from './types.ts'\n\nexport type GetSchemaGeneratorOptions<T extends SchemaGenerator<any, any, any>> = T extends SchemaGenerator<infer Options, any, any> ? Options : never\n\nexport type SchemaMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n oas: Oas\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n include?: Array<'schemas' | 'responses' | 'requestBodies'>\n override: Array<Override<TOptions>> | undefined\n contentType?: contentType\n output?: string\n}\n\nexport type SchemaGeneratorOptions = {\n dateType: false | 'string' | 'stringOffset' | 'stringLocal' | 'date'\n unknownType: 'any' | 'unknown'\n enumType?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n enumSuffix?: string\n usedEnumNames?: Record<string, number>\n mapper?: Record<string, string>\n typed?: boolean\n transformers: {\n /**\n * Customize the names based on the type that is provided by the plugin.\n */\n name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string\n /**\n * Receive schema and name(propertName) and return FakerMeta array\n * TODO TODO add docs\n * @beta\n */\n schema?: (schemaProps: SchemaProps, defaultSchemas: Schema[]) => Schema[] | undefined\n }\n}\n\nexport type SchemaGeneratorBuildOptions = Omit<OperationSchema, 'name' | 'schema'>\n\ntype SchemaProps = {\n schema?: SchemaObject\n name?: string\n parentName?: string\n}\n\nexport abstract class SchemaGenerator<\n TOptions extends SchemaGeneratorOptions = SchemaGeneratorOptions,\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends Generator<TOptions, Context<TOptions, TPluginOptions>> {\n // Collect the types of all referenced schemas, so we can export them later\n refs: Refs = {}\n\n // Keep track of already used type aliases\n #usedAliasNames: Record<string, number> = {}\n\n /**\n * Creates a type node from a given schema.\n * Delegates to getBaseTypeFromSchema internally and\n * optionally adds a union with null.\n */\n parse(props: SchemaProps): Schema[] {\n const options = this.#getOptions(props)\n\n const defaultSchemas = this.#parseSchemaObject(props)\n const schemas = options.transformers?.schema?.(props, defaultSchemas) || defaultSchemas || []\n\n return uniqueWith(schemas, isDeepEqual)\n }\n\n deepSearch<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T][] {\n return SchemaGenerator.deepSearch<T>(tree, keyword)\n }\n\n find<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T] | undefined {\n return SchemaGenerator.find<T>(tree, keyword)\n }\n\n static deepSearch<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T][] {\n const foundItems: SchemaKeywordMapper[T][] = []\n\n tree?.forEach((schema) => {\n if (schema.keyword === keyword) {\n foundItems.push(schema as SchemaKeywordMapper[T])\n }\n\n if (schema.keyword === schemaKeywords.object) {\n const subItem = schema as SchemaKeywordMapper['object']\n\n Object.values(subItem.args?.properties || {}).forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>(entrySchema, keyword))\n })\n\n Object.values(subItem.args?.additionalProperties || {}).forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (schema.keyword === schemaKeywords.array) {\n const subItem = schema as SchemaKeywordMapper['array']\n\n subItem.args.items.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (schema.keyword === schemaKeywords.and) {\n const subItem = schema as SchemaKeywordMapper['and']\n\n subItem.args.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (schema.keyword === schemaKeywords.tuple) {\n const subItem = schema as SchemaKeywordMapper['tuple']\n\n subItem.args.items.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (schema.keyword === schemaKeywords.union) {\n const subItem = schema as SchemaKeywordMapper['union']\n\n subItem.args.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n })\n\n return foundItems\n }\n\n static findInObject<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T] | undefined {\n let foundItem: SchemaKeywordMapper[T] | undefined = undefined\n\n tree?.forEach((schema) => {\n if (!foundItem && schema.keyword === keyword) {\n foundItem = schema as SchemaKeywordMapper[T]\n }\n\n if (schema.keyword === schemaKeywords.object) {\n const subItem = schema as SchemaKeywordMapper['object']\n\n Object.values(subItem.args?.properties || {}).forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>(entrySchema, keyword)\n }\n })\n\n Object.values(subItem.args?.additionalProperties || {}).forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n })\n\n return foundItem\n }\n\n static find<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T] | undefined {\n let foundItem: SchemaKeywordMapper[T] | undefined = undefined\n\n tree?.forEach((schema) => {\n if (!foundItem && schema.keyword === keyword) {\n foundItem = schema as SchemaKeywordMapper[T]\n }\n\n if (schema.keyword === schemaKeywords.array) {\n const subItem = schema as SchemaKeywordMapper['array']\n\n subItem.args.items.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (schema.keyword === schemaKeywords.and) {\n const subItem = schema as SchemaKeywordMapper['and']\n\n subItem.args.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (schema.keyword === schemaKeywords.tuple) {\n const subItem = schema as SchemaKeywordMapper['tuple']\n\n subItem.args.items.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (schema.keyword === schemaKeywords.union) {\n const subItem = schema as SchemaKeywordMapper['union']\n\n subItem.args.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n })\n\n return foundItem\n }\n\n #getUsedEnumNames(props: SchemaProps) {\n const options = this.#getOptions(props)\n\n return options.usedEnumNames || {}\n }\n\n #getOptions({ name }: SchemaProps): Partial<TOptions> {\n const { override = [] } = this.context\n\n return {\n ...this.options,\n ...(override.find(({ pattern, type }) => {\n if (name && type === 'schemaName') {\n return !!name.match(pattern)\n }\n\n return false\n })?.options || {}),\n }\n }\n\n #getUnknownReturn(props: SchemaProps) {\n const options = this.#getOptions(props)\n\n if (options.unknownType === 'any') {\n return schemaKeywords.any\n }\n\n return schemaKeywords.unknown\n }\n\n /**\n * Recursively creates a type literal with the given props.\n */\n #parseProperties({ schema, name }: SchemaProps): Schema[] {\n const properties = schema?.properties || {}\n const additionalProperties = schema?.additionalProperties\n const required = schema?.required\n\n const propertiesSchemas = Object.keys(properties)\n .map((propertyName) => {\n const validationFunctions: Schema[] = []\n const propertySchema = properties[propertyName] as SchemaObject\n\n const isRequired = Array.isArray(required) ? required?.includes(propertyName) : !!required\n const nullable = propertySchema.nullable ?? propertySchema['x-nullable'] ?? false\n\n validationFunctions.push(...this.parse({ schema: propertySchema, name: propertyName, parentName: name }))\n\n validationFunctions.push({\n keyword: schemaKeywords.name,\n args: propertyName,\n })\n\n if (!isRequired && nullable) {\n validationFunctions.push({ keyword: schemaKeywords.nullish })\n } else if (!isRequired) {\n validationFunctions.push({ keyword: schemaKeywords.optional })\n }\n\n return {\n [propertyName]: validationFunctions,\n }\n })\n .reduce((acc, curr) => ({ ...acc, ...curr }), {})\n let additionalPropertiesSchemas: Schema[] = []\n\n if (additionalProperties) {\n additionalPropertiesSchemas =\n additionalProperties === true\n ? [{ keyword: this.#getUnknownReturn({ schema, name }) }]\n : this.parse({ schema: additionalProperties as SchemaObject, parentName: name })\n }\n\n return [\n {\n keyword: schemaKeywords.object,\n args: {\n properties: propertiesSchemas,\n additionalProperties: additionalPropertiesSchemas,\n },\n },\n ]\n }\n\n /**\n * Create a type alias for the schema referenced by the given ReferenceObject\n */\n #getRefAlias(obj: OpenAPIV3.ReferenceObject): Schema[] {\n const { $ref } = obj\n let ref = this.refs[$ref]\n\n const originalName = getUniqueName($ref.replace(/.+\\//, ''), this.#usedAliasNames)\n const propertyName = this.context.pluginManager.resolveName({\n name: originalName,\n pluginKey: this.context.plugin.key,\n type: 'function',\n })\n\n if (ref) {\n return [\n {\n keyword: schemaKeywords.ref,\n args: { name: ref.propertyName, path: ref.path },\n },\n ]\n }\n\n const fileName = this.context.pluginManager.resolveName({\n name: originalName,\n pluginKey: this.context.plugin.key,\n type: 'file',\n })\n const file = this.context.pluginManager.getFile({\n name: fileName,\n pluginKey: this.context.plugin.key,\n extName: '.ts',\n })\n\n ref = this.refs[$ref] = {\n propertyName,\n originalName,\n path: file.path,\n }\n\n return [\n {\n keyword: schemaKeywords.ref,\n args: { name: ref.propertyName, path: ref?.path },\n },\n ]\n }\n\n #getParsedSchemaObject(schema?: SchemaObject) {\n const parsedSchema = getSchemaFactory(this.context.oas)(schema)\n return parsedSchema\n }\n\n /**\n * This is the very core of the OpenAPI to TS conversion - it takes a\n * schema and returns the appropriate type.\n */\n #parseSchemaObject({ schema: _schema, name, parentName }: SchemaProps): Schema[] {\n const options = this.#getOptions({ schema: _schema, name })\n const unknownReturn = this.#getUnknownReturn({ schema: _schema, name })\n const { schema, version } = this.#getParsedSchemaObject(_schema)\n if (!schema) {\n return [{ keyword: unknownReturn }]\n }\n\n const baseItems: Schema[] = [\n {\n keyword: schemaKeywords.schema,\n args: {\n type: schema.type as any,\n format: schema.format,\n },\n },\n ]\n const min = schema.minimum ?? schema.minLength ?? schema.minItems ?? undefined\n const max = schema.maximum ?? schema.maxLength ?? schema.maxItems ?? undefined\n const nullable = schema.nullable ?? schema['x-nullable'] ?? false\n\n if (schema.default !== undefined && !Array.isArray(schema.default)) {\n if (typeof schema.default === 'string') {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: transformers.stringify(schema.default),\n })\n } else if (typeof schema.default === 'boolean') {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: schema.default ?? false,\n })\n } else {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: schema.default,\n })\n }\n }\n\n if (schema.description) {\n baseItems.push({\n keyword: schemaKeywords.describe,\n args: schema.description,\n })\n }\n\n if (schema.pattern) {\n baseItems.unshift({\n keyword: schemaKeywords.matches,\n args: schema.pattern,\n })\n }\n\n if (max !== undefined) {\n baseItems.unshift({ keyword: schemaKeywords.max, args: max })\n }\n\n if (min !== undefined) {\n baseItems.unshift({ keyword: schemaKeywords.min, args: min })\n }\n\n if (nullable) {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n const [_schema, nullable] = schema.type\n\n if (nullable === 'null') {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n }\n\n if (schema.readOnly) {\n baseItems.push({ keyword: schemaKeywords.readOnly })\n }\n\n if (isReference(schema)) {\n return [\n ...this.#getRefAlias(schema),\n nullable && { keyword: schemaKeywords.nullable },\n {\n keyword: schemaKeywords.schema,\n args: {\n type: schema.type as any,\n format: schema.format,\n },\n },\n ].filter(Boolean)\n }\n\n if (schema.oneOf) {\n // union\n const schemaWithoutOneOf = { ...schema, oneOf: undefined }\n\n const union: Schema = {\n keyword: schemaKeywords.union,\n args: schema.oneOf\n .map((item) => {\n return item && this.parse({ schema: item as SchemaObject, name, parentName })[0]\n })\n .filter(Boolean)\n .filter((item) => {\n return item && item.keyword !== unknownReturn\n }),\n }\n if (schemaWithoutOneOf.properties) {\n return [...this.parse({ schema: schemaWithoutOneOf, name, parentName }), union, ...baseItems]\n }\n\n return [union, ...baseItems]\n }\n\n if (schema.anyOf) {\n // union\n const schemaWithoutAnyOf = { ...schema, anyOf: undefined }\n\n const union: Schema = {\n keyword: schemaKeywords.union,\n args: schema.anyOf\n .map((item) => {\n return item && this.parse({ schema: item as SchemaObject, name, parentName })[0]\n })\n .filter(Boolean)\n .filter((item) => {\n return item && item.keyword !== unknownReturn\n })\n .map((item) => {\n if (isKeyword(item, schemaKeywords.object)) {\n return {\n ...item,\n args: {\n ...item.args,\n strict: true,\n },\n }\n }\n return item\n }),\n }\n if (schemaWithoutAnyOf.properties) {\n return [...this.parse({ schema: schemaWithoutAnyOf, name, parentName }), union, ...baseItems]\n }\n\n return [union, ...baseItems]\n }\n if (schema.allOf) {\n // intersection/add\n const schemaWithoutAllOf = { ...schema, allOf: undefined }\n\n const and: Schema = {\n keyword: schemaKeywords.and,\n args: schema.allOf\n .map((item) => {\n return item && this.parse({ schema: item as SchemaObject, name, parentName })[0]\n })\n .filter(Boolean)\n .filter((item) => {\n return item && item.keyword !== unknownReturn\n }),\n }\n\n if (schemaWithoutAllOf.properties) {\n return [\n {\n ...and,\n args: [...(and.args || []), ...this.parse({ schema: schemaWithoutAllOf, name, parentName })],\n },\n ...baseItems,\n ]\n }\n\n return [and, ...baseItems]\n }\n\n if (schema.enum) {\n const enumName = getUniqueName(pascalCase([parentName, name, options.enumSuffix].join(' ')), this.#getUsedEnumNames({ schema, name }))\n const typeName = this.context.pluginManager.resolveName({\n name: enumName,\n pluginKey: this.context.plugin.key,\n type: 'type',\n })\n\n const nullableEnum = schema.enum.includes(null)\n if (nullableEnum) {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n const filteredValues = schema.enum.filter((value) => value !== null)\n\n // x-enumNames has priority\n const extensionEnums = ['x-enumNames', 'x-enum-varnames']\n .filter((extensionKey) => extensionKey in schema)\n .map((extensionKey) => {\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name,\n typeName,\n asConst: false,\n items: [...new Set(schema[extensionKey as keyof typeof schema] as string[])].map((name: string | number, index) => ({\n name: transformers.stringify(name),\n value: schema.enum?.[index] as string | number,\n format: isNumber(schema.enum?.[index]) ? 'number' : 'string',\n })),\n },\n },\n ...baseItems.filter(\n (item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches,\n ),\n ]\n })\n\n if (schema.type === 'number' || schema.type === 'integer') {\n // we cannot use z.enum when enum type is number/integer\n const enumNames = extensionEnums[0]?.find((item) => isKeyword(item, schemaKeywords.enum)) as unknown as SchemaKeywordMapper['enum']\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name: enumName,\n typeName,\n asConst: true,\n items: enumNames?.args?.items\n ? [...new Set(enumNames.args.items)].map(({ name, value }) => ({\n name,\n value,\n format: 'number',\n }))\n : [...new Set(filteredValues)].map((value: string) => {\n return {\n name: value,\n value,\n format: 'number',\n }\n }),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches),\n ]\n }\n\n if (extensionEnums.length > 0 && extensionEnums[0]) {\n return extensionEnums[0]\n }\n\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name: enumName,\n typeName,\n asConst: false,\n items: [...new Set(filteredValues)].map((value: string) => ({\n name: transformers.stringify(value),\n value,\n format: isNumber(value) ? 'number' : 'string',\n })),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches),\n ]\n }\n\n if ('prefixItems' in schema) {\n const prefixItems = schema.prefixItems as SchemaObject[]\n const min = schema.minimum ?? schema.minLength ?? schema.minItems ?? undefined\n const max = schema.maximum ?? schema.maxLength ?? schema.maxItems ?? undefined\n\n return [\n {\n keyword: schemaKeywords.tuple,\n args: {\n min,\n max,\n items: prefixItems\n .map((item) => {\n return this.parse({ schema: item, name, parentName })[0]\n })\n .filter(Boolean),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max),\n ]\n }\n\n if (version === '3.1' && 'const' in schema) {\n // const keyword takes precendence over the actual type.\n if (schema['const']) {\n return [\n {\n keyword: schemaKeywords.const,\n args: {\n name: schema['const'],\n format: typeof schema['const'] === 'number' ? 'number' : 'string',\n value: schema['const'],\n },\n },\n ...baseItems,\n ]\n }\n return [{ keyword: schemaKeywords.null }]\n }\n\n /**\n * > Structural validation alone may be insufficient to allow an application to correctly utilize certain values. The \"format\"\n * > annotation keyword is defined to allow schema authors to convey semantic information for a fixed subset of values which are\n * > accurately described by authoritative resources, be they RFCs or other external specifications.\n *\n * In other words: format is more specific than type alone, hence it should override the type value, if possible.\n *\n * see also https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7\n */\n if (schema.format) {\n switch (schema.format) {\n case 'binary':\n baseItems.push({ keyword: schemaKeywords.blob })\n return baseItems\n case 'date-time':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'date' } })\n\n return baseItems\n }\n\n if (options.dateType === 'stringOffset') {\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { offset: true } })\n return baseItems\n }\n\n if (options.dateType === 'stringLocal') {\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { local: true } })\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { offset: false } })\n\n return baseItems\n }\n break\n case 'date':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'date' } })\n\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'string' } })\n\n return baseItems\n }\n break\n case 'time':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.time, args: { type: 'date' } })\n\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.time, args: { type: 'string' } })\n\n return baseItems\n }\n break\n case 'uuid':\n baseItems.unshift({ keyword: schemaKeywords.uuid })\n break\n case 'email':\n case 'idn-email':\n baseItems.unshift({ keyword: schemaKeywords.email })\n break\n case 'uri':\n case 'ipv4':\n case 'ipv6':\n case 'uri-reference':\n case 'hostname':\n case 'idn-hostname':\n baseItems.unshift({ keyword: schemaKeywords.url })\n break\n // case 'duration':\n // case 'json-pointer':\n // case 'relative-json-pointer':\n default:\n // formats not yet implemented: ignore.\n break\n }\n }\n\n // type based logic\n if ('items' in schema || schema.type === ('array' as 'string')) {\n const min = schema.minimum ?? schema.minLength ?? schema.minItems ?? undefined\n const max = schema.maximum ?? schema.maxLength ?? schema.maxItems ?? undefined\n const items = this.parse({ schema: 'items' in schema ? (schema.items as SchemaObject) : [], name, parentName })\n\n return [\n {\n keyword: schemaKeywords.array,\n args: {\n items,\n min,\n max,\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max),\n ]\n }\n\n if (schema.properties || schema.additionalProperties) {\n return [...this.#parseProperties({ schema, name }), ...baseItems]\n }\n\n if (schema.type) {\n if (Array.isArray(schema.type)) {\n // OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n const [type] = schema.type as Array<OpenAPIV3.NonArraySchemaObjectType>\n\n return [\n ...this.parse({\n schema: {\n ...schema,\n type,\n },\n name,\n parentName,\n }),\n ...baseItems,\n ].filter(Boolean)\n }\n\n if (!['boolean', 'object', 'number', 'string', 'integer', 'null'].includes(schema.type)) {\n this.context.pluginManager.logger.emit('warning', `Schema type '${schema.type}' is not valid for schema ${parentName}.${name}`)\n }\n\n // 'string' | 'number' | 'integer' | 'boolean'\n return [{ keyword: schema.type }, ...baseItems]\n }\n\n return [{ keyword: unknownReturn }]\n }\n\n async build(): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas, contentType, include } = this.context\n\n const schemas = getSchemas({ oas, contentType, includes: include })\n\n const promises = Object.entries(schemas).reduce((acc, [name, schema]) => {\n const options = this.#getOptions({ name })\n const promiseOperation = this.schema.call(this, name, schema, {\n ...this.options,\n ...options,\n })\n\n if (promiseOperation) {\n acc.push(promiseOperation)\n }\n\n return acc\n }, [] as SchemaMethodResult<TFileMeta>[])\n\n const files = await Promise.all(promises)\n\n // using .flat because schemaGenerator[method] can return a array of files or just one file\n return files.flat().filter(Boolean)\n }\n\n /**\n * Schema\n */\n abstract schema(name: string, object: SchemaObject, options: TOptions): SchemaMethodResult<TFileMeta>\n}\n"]}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_esm_shims
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2YX4XBMY.js";
|
|
4
4
|
|
|
5
5
|
// src/utils/parseFromConfig.ts
|
|
6
6
|
init_esm_shims();
|
|
7
|
-
import { resolve } from "path";
|
|
7
|
+
import { resolve } from "node:path";
|
|
8
8
|
import { URLPath } from "@kubb/core/utils";
|
|
9
9
|
import { parse } from "@kubb/oas/parser";
|
|
10
10
|
import { Oas } from "@kubb/oas";
|
|
11
11
|
import yaml from "@stoplight/yaml";
|
|
12
|
-
function parseFromConfig(config,
|
|
12
|
+
function parseFromConfig(config, oasClass = Oas) {
|
|
13
13
|
if ("data" in config.input) {
|
|
14
14
|
if (typeof config.input.data === "object") {
|
|
15
15
|
const api2 = JSON.parse(JSON.stringify(config.input.data));
|
|
16
|
-
return parse(api2,
|
|
16
|
+
return parse(api2, oasClass);
|
|
17
17
|
}
|
|
18
18
|
try {
|
|
19
19
|
const api2 = yaml.parse(config.input.data);
|
|
20
|
-
return parse(api2,
|
|
20
|
+
return parse(api2, oasClass);
|
|
21
21
|
} catch (e) {
|
|
22
22
|
}
|
|
23
23
|
const api = JSON.parse(JSON.stringify(config.input.data));
|
|
24
|
-
return parse(api,
|
|
24
|
+
return parse(api, oasClass);
|
|
25
25
|
}
|
|
26
26
|
if (new URLPath(config.input.path).isURL) {
|
|
27
|
-
return parse(config.input.path,
|
|
27
|
+
return parse(config.input.path, oasClass);
|
|
28
28
|
}
|
|
29
|
-
return parse(resolve(config.root, config.input.path),
|
|
29
|
+
return parse(resolve(config.root, config.input.path), oasClass);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export {
|
|
33
33
|
parseFromConfig
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-B3QCCJ62.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/parseFromConfig.ts"],"sourcesContent":["import { resolve } from 'node:path'\n\nimport { URLPath } from '@kubb/core/utils'\n\nimport { parse } from '@kubb/oas/parser'\n\nimport type { Config } from '@kubb/core'\nimport { Oas, type OasTypes } from '@kubb/oas'\nimport yaml from '@stoplight/yaml'\n\nexport function parseFromConfig(config: Config, oasClass: typeof Oas = Oas): Promise<Oas> {\n if ('data' in config.input) {\n if (typeof config.input.data === 'object') {\n const api: OasTypes.OASDocument = JSON.parse(JSON.stringify(config.input.data)) as OasTypes.OASDocument\n return parse(api, oasClass)\n }\n\n try {\n const api: string = yaml.parse(config.input.data as string) as string\n\n return parse(api, oasClass)\n } catch (e) {\n /* empty */\n }\n\n const api: OasTypes.OASDocument = JSON.parse(JSON.stringify(config.input.data)) as OasTypes.OASDocument\n\n return parse(api, oasClass)\n }\n\n if (new URLPath(config.input.path).isURL) {\n return parse(config.input.path, oasClass)\n }\n\n return parse(resolve(config.root, config.input.path), oasClass)\n}\n"],"mappings":";;;;;AAAA;AAAA,SAAS,eAAe;AAExB,SAAS,eAAe;AAExB,SAAS,aAAa;AAGtB,SAAS,WAA0B;AACnC,OAAO,UAAU;AAEV,SAAS,gBAAgB,QAAgB,WAAuB,KAAmB;AACxF,MAAI,UAAU,OAAO,OAAO;AAC1B,QAAI,OAAO,OAAO,MAAM,SAAS,UAAU;AACzC,YAAMA,OAA4B,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,IAAI,CAAC;AAC9E,aAAO,MAAMA,MAAK,QAAQ;AAAA,IAC5B;AAEA,QAAI;AACF,YAAMA,OAAc,KAAK,MAAM,OAAO,MAAM,IAAc;AAE1D,aAAO,MAAMA,MAAK,QAAQ;AAAA,IAC5B,SAAS,GAAG;AAAA,IAEZ;AAEA,UAAM,MAA4B,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,IAAI,CAAC;AAE9E,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC5B;AAEA,MAAI,IAAI,QAAQ,OAAO,MAAM,IAAI,EAAE,OAAO;AACxC,WAAO,MAAM,OAAO,MAAM,MAAM,QAAQ;AAAA,EAC1C;AAEA,SAAO,MAAM,QAAQ,OAAO,MAAM,OAAO,MAAM,IAAI,GAAG,QAAQ;AAChE;","names":["api"]}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk2BGY3BRCcjs = require('./chunk-2BGY3BRC.cjs');
|
|
4
4
|
|
|
5
5
|
// src/utils/parseFromConfig.ts
|
|
6
|
-
|
|
6
|
+
_chunk2BGY3BRCcjs.init_cjs_shims.call(void 0, );
|
|
7
7
|
var _path = require('path');
|
|
8
8
|
var _utils = require('@kubb/core/utils');
|
|
9
9
|
var _parser = require('@kubb/oas/parser');
|
|
10
10
|
var _oas = require('@kubb/oas');
|
|
11
11
|
var _yaml = require('@stoplight/yaml'); var _yaml2 = _interopRequireDefault(_yaml);
|
|
12
|
-
function parseFromConfig(config,
|
|
12
|
+
function parseFromConfig(config, oasClass = _oas.Oas) {
|
|
13
13
|
if ("data" in config.input) {
|
|
14
14
|
if (typeof config.input.data === "object") {
|
|
15
15
|
const api2 = JSON.parse(JSON.stringify(config.input.data));
|
|
16
|
-
return _parser.parse.call(void 0, api2,
|
|
16
|
+
return _parser.parse.call(void 0, api2, oasClass);
|
|
17
17
|
}
|
|
18
18
|
try {
|
|
19
19
|
const api2 = _yaml2.default.parse(config.input.data);
|
|
20
|
-
return _parser.parse.call(void 0, api2,
|
|
20
|
+
return _parser.parse.call(void 0, api2, oasClass);
|
|
21
21
|
} catch (e) {
|
|
22
22
|
}
|
|
23
23
|
const api = JSON.parse(JSON.stringify(config.input.data));
|
|
24
|
-
return _parser.parse.call(void 0, api,
|
|
24
|
+
return _parser.parse.call(void 0, api, oasClass);
|
|
25
25
|
}
|
|
26
26
|
if (new (0, _utils.URLPath)(config.input.path).isURL) {
|
|
27
|
-
return _parser.parse.call(void 0, config.input.path,
|
|
27
|
+
return _parser.parse.call(void 0, config.input.path, oasClass);
|
|
28
28
|
}
|
|
29
|
-
return _parser.parse.call(void 0, _path.resolve.call(void 0, config.root, config.input.path),
|
|
29
|
+
return _parser.parse.call(void 0, _path.resolve.call(void 0, config.root, config.input.path), oasClass);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
exports.parseFromConfig = parseFromConfig;
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-HUFRXC4N.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-HUFRXC4N.cjs","../src/utils/parseFromConfig.ts"],"names":["api"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACJA,8CAAA,CAAA;AAAA,4BAAwB;AAExB,yCAAwB;AAExB,0CAAsB;AAGtB,gCAAmC;AACnC,mFAAiB;AAEV,SAAS,eAAA,CAAgB,MAAA,EAAgB,SAAA,EAAuB,QAAA,EAAmB;AACxF,EAAA,GAAA,CAAI,OAAA,GAAU,MAAA,CAAO,KAAA,EAAO;AAC1B,IAAA,GAAA,CAAI,OAAO,MAAA,CAAO,KAAA,CAAM,KAAA,IAAS,QAAA,EAAU;AACzC,MAAA,MAAMA,KAAAA,EAA4B,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,IAAI,CAAC,CAAA;AAC9E,MAAA,OAAO,2BAAA,IAAMA,EAAK,QAAQ,CAAA;AAAA,IAC5B;AAEA,IAAA,IAAI;AACF,MAAA,MAAMA,KAAAA,EAAc,cAAA,CAAK,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,IAAc,CAAA;AAE1D,MAAA,OAAO,2BAAA,IAAMA,EAAK,QAAQ,CAAA;AAAA,IAC5B,EAAA,MAAA,CAAS,CAAA,EAAG;AAAA,IAEZ;AAEA,IAAA,MAAM,IAAA,EAA4B,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,IAAI,CAAC,CAAA;AAE9E,IAAA,OAAO,2BAAA,GAAM,EAAK,QAAQ,CAAA;AAAA,EAC5B;AAEA,EAAA,GAAA,CAAI,IAAI,mBAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,CAAE,KAAA,EAAO;AACxC,IAAA,OAAO,2BAAA,MAAM,CAAO,KAAA,CAAM,IAAA,EAAM,QAAQ,CAAA;AAAA,EAC1C;AAEA,EAAA,OAAO,2BAAA,2BAAM,MAAQ,CAAO,IAAA,EAAM,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,EAAG,QAAQ,CAAA;AAChE;ADLA;AACA;AACE;AACF,0CAAC","file":"/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-HUFRXC4N.cjs","sourcesContent":[null,"import { resolve } from 'node:path'\n\nimport { URLPath } from '@kubb/core/utils'\n\nimport { parse } from '@kubb/oas/parser'\n\nimport type { Config } from '@kubb/core'\nimport { Oas, type OasTypes } from '@kubb/oas'\nimport yaml from '@stoplight/yaml'\n\nexport function parseFromConfig(config: Config, oasClass: typeof Oas = Oas): Promise<Oas> {\n if ('data' in config.input) {\n if (typeof config.input.data === 'object') {\n const api: OasTypes.OASDocument = JSON.parse(JSON.stringify(config.input.data)) as OasTypes.OASDocument\n return parse(api, oasClass)\n }\n\n try {\n const api: string = yaml.parse(config.input.data as string) as string\n\n return parse(api, oasClass)\n } catch (e) {\n /* empty */\n }\n\n const api: OasTypes.OASDocument = JSON.parse(JSON.stringify(config.input.data)) as OasTypes.OASDocument\n\n return parse(api, oasClass)\n }\n\n if (new URLPath(config.input.path).isURL) {\n return parse(config.input.path, oasClass)\n }\n\n return parse(resolve(config.root, config.input.path), oasClass)\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getSchemaFactory,
|
|
6
6
|
getSchemas,
|
|
7
7
|
init_esm_shims
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2YX4XBMY.js";
|
|
9
9
|
|
|
10
10
|
// src/SchemaMapper.ts
|
|
11
11
|
init_esm_shims();
|
|
@@ -642,6 +642,9 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
642
642
|
case "idn-hostname":
|
|
643
643
|
baseItems.unshift({ keyword: schemaKeywords.url });
|
|
644
644
|
break;
|
|
645
|
+
// case 'duration':
|
|
646
|
+
// case 'json-pointer':
|
|
647
|
+
// case 'relative-json-pointer':
|
|
645
648
|
default:
|
|
646
649
|
break;
|
|
647
650
|
}
|
|
@@ -680,7 +683,7 @@ parseSchemaObject_fn = function({ schema: _schema, name, parentName }) {
|
|
|
680
683
|
...baseItems
|
|
681
684
|
].filter(Boolean);
|
|
682
685
|
}
|
|
683
|
-
if (!["boolean", "object", "number", "string", "integer"].includes(schema.type)) {
|
|
686
|
+
if (!["boolean", "object", "number", "string", "integer", "null"].includes(schema.type)) {
|
|
684
687
|
this.context.pluginManager.logger.emit("warning", `Schema type '${schema.type}' is not valid for schema ${parentName}.${name}`);
|
|
685
688
|
}
|
|
686
689
|
return [{ keyword: schema.type }, ...baseItems];
|
|
@@ -694,4 +697,4 @@ export {
|
|
|
694
697
|
isKeyword,
|
|
695
698
|
SchemaGenerator
|
|
696
699
|
};
|
|
697
|
-
//# sourceMappingURL=chunk-
|
|
700
|
+
//# sourceMappingURL=chunk-QOM3GBVG.js.map
|