@kubb/plugin-oas 0.0.0-canary-20251028170426 → 0.0.0-canary-20251103125929

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.
Files changed (95) hide show
  1. package/dist/{SchemaGenerator-DWj6buY0.cjs → SchemaGenerator-B8Reay1m.cjs} +114 -16
  2. package/dist/SchemaGenerator-B8Reay1m.cjs.map +1 -0
  3. package/dist/{SchemaGenerator-b7XixzRv.js → SchemaGenerator-ChoBQWm5.js} +93 -15
  4. package/dist/SchemaGenerator-ChoBQWm5.js.map +1 -0
  5. package/dist/{SchemaMapper-DoL-a6qq.cjs → SchemaMapper-BUV8vhg0.cjs} +1 -1
  6. package/dist/{SchemaMapper-DoL-a6qq.cjs.map → SchemaMapper-BUV8vhg0.cjs.map} +1 -1
  7. package/dist/{SchemaMapper-Cx4X1al6.js → SchemaMapper-D30tqRoX.js} +1 -1
  8. package/dist/{SchemaMapper-Cx4X1al6.js.map → SchemaMapper-D30tqRoX.js.map} +1 -1
  9. package/dist/{SchemaMapper-CtfTw3hq.d.ts → SchemaMapper-m5TKynWt.d.ts} +1 -1
  10. package/dist/{OperationGenerator-CRZpkIpZ.d.ts → createGenerator-DlSlv4sR.d.ts} +114 -167
  11. package/dist/{OperationGenerator-S_1PevQN.d.cts → createGenerator-PIseu7v9.d.cts} +114 -167
  12. package/dist/{generators-C61FxVIj.js → generators-CJDEf8Kn.js} +6 -6
  13. package/dist/{generators-C61FxVIj.js.map → generators-CJDEf8Kn.js.map} +1 -1
  14. package/dist/{generators-B27La9Vd.cjs → generators-udGOxdUV.cjs} +6 -6
  15. package/dist/{generators-B27La9Vd.cjs.map → generators-udGOxdUV.cjs.map} +1 -1
  16. package/dist/generators.cjs +2 -7
  17. package/dist/generators.d.cts +7 -2
  18. package/dist/generators.d.ts +8 -3
  19. package/dist/generators.js +3 -5
  20. package/dist/{getFooter-D5MdeUVv.js → getFooter-CV73pVXj.js} +2 -2
  21. package/dist/{getFooter-D5MdeUVv.js.map → getFooter-CV73pVXj.js.map} +1 -1
  22. package/dist/{getFooter-CwjCW4h5.cjs → getFooter-DPh4lxBH.cjs} +3 -3
  23. package/dist/{getFooter-CwjCW4h5.cjs.map → getFooter-DPh4lxBH.cjs.map} +1 -1
  24. package/dist/{getSchemas-DY8s2CSl.cjs → getSchemas-CP_YS4_2.cjs} +1 -1
  25. package/dist/getSchemas-CP_YS4_2.cjs.map +1 -0
  26. package/dist/{getSchemas-Bdg6n9Qk.js → getSchemas-CTi8zYew.js} +1 -1
  27. package/dist/getSchemas-CTi8zYew.js.map +1 -0
  28. package/dist/hooks.cjs +4 -29
  29. package/dist/hooks.cjs.map +1 -1
  30. package/dist/hooks.d.cts +3 -17
  31. package/dist/hooks.d.ts +4 -18
  32. package/dist/hooks.js +6 -29
  33. package/dist/hooks.js.map +1 -1
  34. package/dist/index.cjs +37 -32
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +57 -2
  37. package/dist/index.d.ts +58 -3
  38. package/dist/index.js +32 -24
  39. package/dist/index.js.map +1 -1
  40. package/dist/mocks.cjs +1 -1
  41. package/dist/mocks.d.ts +1 -1
  42. package/dist/mocks.js +1 -1
  43. package/dist/{parseFromConfig-CqiiLCPe.js → parseFromConfig-BkUoWC2U.js} +1 -1
  44. package/dist/parseFromConfig-BkUoWC2U.js.map +1 -0
  45. package/dist/{parseFromConfig-RR31a98-.cjs → parseFromConfig-EjsCZ0-8.cjs} +1 -1
  46. package/dist/parseFromConfig-EjsCZ0-8.cjs.map +1 -0
  47. package/dist/utils.cjs +3 -3
  48. package/dist/utils.cjs.map +1 -1
  49. package/dist/utils.d.cts +23 -23
  50. package/dist/utils.d.ts +24 -24
  51. package/dist/utils.js +3 -3
  52. package/dist/utils.js.map +1 -1
  53. package/package.json +5 -12
  54. package/src/OperationGenerator.ts +26 -13
  55. package/src/SchemaGenerator.ts +18 -10
  56. package/src/generators/index.ts +0 -1
  57. package/src/generators/jsonGenerator.ts +4 -4
  58. package/src/generators/types.ts +13 -14
  59. package/src/hooks/index.ts +0 -2
  60. package/src/hooks/useOperationManager.ts +2 -4
  61. package/src/index.ts +1 -1
  62. package/src/utils/getBanner.ts +1 -1
  63. package/src/utils/getParams.ts +1 -2
  64. package/src/utils/getSchemaFactory.ts +1 -2
  65. package/src/utils/getSchemas.ts +1 -1
  66. package/src/utils/index.ts +3 -4
  67. package/src/utils/parseFromConfig.ts +2 -6
  68. package/src/utils.tsx +101 -0
  69. package/dist/Oas-CHC1IC5D.js +0 -56
  70. package/dist/Oas-CHC1IC5D.js.map +0 -1
  71. package/dist/Oas-CQrRP_NH.cjs +0 -76
  72. package/dist/Oas-CQrRP_NH.cjs.map +0 -1
  73. package/dist/Schema-CZsDEhET.d.cts +0 -38
  74. package/dist/Schema-DBvtiLS7.d.ts +0 -38
  75. package/dist/SchemaGenerator-DWj6buY0.cjs.map +0 -1
  76. package/dist/SchemaGenerator-b7XixzRv.js.map +0 -1
  77. package/dist/components.cjs +0 -5
  78. package/dist/components.d.cts +0 -38
  79. package/dist/components.d.ts +0 -38
  80. package/dist/components.js +0 -3
  81. package/dist/getSchemas-Bdg6n9Qk.js.map +0 -1
  82. package/dist/getSchemas-DY8s2CSl.cjs.map +0 -1
  83. package/dist/parseFromConfig-CqiiLCPe.js.map +0 -1
  84. package/dist/parseFromConfig-RR31a98-.cjs.map +0 -1
  85. package/dist/utils-DYf-j63H.cjs +0 -115
  86. package/dist/utils-DYf-j63H.cjs.map +0 -1
  87. package/dist/utils-DaV25sy8.js +0 -95
  88. package/dist/utils-DaV25sy8.js.map +0 -1
  89. package/src/components/Oas.tsx +0 -30
  90. package/src/components/Operation.tsx +0 -20
  91. package/src/components/Schema.tsx +0 -38
  92. package/src/components/index.ts +0 -3
  93. package/src/generators/utils.tsx +0 -114
  94. package/src/hooks/useOperation.ts +0 -18
  95. package/src/hooks/useSchema.ts +0 -16
package/dist/index.d.cts CHANGED
@@ -1,3 +1,58 @@
1
- import { C as Ref, D as createReactGenerator, E as Resolver, O as createGenerator, S as PluginOas, T as ResolvePathOptions, _ as Include, a as pluginOasName, b as Options, c as buildSchema, d as SchemaGeneratorBuildOptions, f as SchemaGeneratorOptions, g as Exclude, h as API, i as pluginOas, l as GetSchemaGeneratorOptions, m as jsonGenerator, n as OperationMethodResult, o as buildOperation, p as SchemaMethodResult, r as Generator, s as buildOperations, t as OperationGenerator, u as SchemaGenerator, v as OperationSchema, w as Refs, x as Override, y as OperationSchemas } from "./OperationGenerator-S_1PevQN.cjs";
1
+ import { A as SchemaObject, C as ResolvePathOptions, F as Plugin, I as PluginFactoryOptions, N as Config, R as UserPluginWithLifeCycle, S as Refs, _ as OperationSchemas, b as PluginOas, c as SchemaGeneratorBuildOptions, d as OperationGenerator, f as OperationMethodResult, g as OperationSchema, h as Include, i as ReactGenerator, k as Operation, l as SchemaGeneratorOptions, m as Exclude, o as GetSchemaGeneratorOptions, p as API, s as SchemaGenerator, u as SchemaMethodResult, v as Options, w as Resolver, x as Ref, y as Override } from "./createGenerator-PIseu7v9.cjs";
2
2
  import { a as SchemaMapper, c as schemaKeywords, i as SchemaKeywordMapper, n as SchemaKeyword, o as SchemaTree, r as SchemaKeywordBase, s as isKeyword, t as Schema } from "./SchemaMapper-CX7sIIuZ.cjs";
3
- export { API, Exclude, Generator, GetSchemaGeneratorOptions, Include, OperationGenerator, OperationMethodResult, OperationSchema, OperationSchemas, Options, Override, PluginOas, Ref, Refs, ResolvePathOptions, Resolver, Schema, SchemaGenerator, SchemaGeneratorBuildOptions, SchemaGeneratorOptions, SchemaKeyword, SchemaKeywordBase, SchemaKeywordMapper, SchemaMapper, SchemaMethodResult, SchemaTree, buildOperation, buildOperations, buildSchema, createGenerator, createReactGenerator, isKeyword, jsonGenerator, pluginOas, pluginOasName, schemaKeywords };
3
+ import { Fabric } from "@kubb/react-fabric";
4
+
5
+ //#region src/plugin.d.ts
6
+ declare const pluginOasName = "plugin-oas";
7
+ declare const pluginOas: (options?: Options | undefined) => UserPluginWithLifeCycle<PluginOas>;
8
+ //#endregion
9
+ //#region src/utils.d.ts
10
+ type BuildOperationsOptions<TOptions extends PluginFactoryOptions> = {
11
+ config: Config;
12
+ fabric: Fabric;
13
+ Component: ReactGenerator<any>['Operations'];
14
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
15
+ plugin: Plugin<TOptions>;
16
+ };
17
+ declare function buildOperations<TOptions extends PluginFactoryOptions>(operations: Array<Operation>, {
18
+ config,
19
+ fabric,
20
+ plugin,
21
+ generator,
22
+ Component
23
+ }: BuildOperationsOptions<TOptions>): Promise<void>;
24
+ type BuildOperationOptions<TOptions extends PluginFactoryOptions> = {
25
+ config: Config;
26
+ fabric: Fabric;
27
+ Component: ReactGenerator<any>['Operation'];
28
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
29
+ plugin: Plugin<TOptions>;
30
+ };
31
+ declare function buildOperation<TOptions extends PluginFactoryOptions>(operation: Operation, {
32
+ config,
33
+ fabric,
34
+ plugin,
35
+ generator,
36
+ Component
37
+ }: BuildOperationOptions<TOptions>): Promise<void>;
38
+ type BuildSchemaOptions<TOptions extends PluginFactoryOptions> = {
39
+ config: Config;
40
+ fabric: Fabric;
41
+ Component: ReactGenerator<any>['Schema'];
42
+ generator: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>;
43
+ plugin: Plugin<TOptions>;
44
+ };
45
+ declare function buildSchema<TOptions extends PluginFactoryOptions>(schema: {
46
+ name: string;
47
+ tree: Array<Schema>;
48
+ value: SchemaObject;
49
+ }, {
50
+ config,
51
+ fabric,
52
+ plugin,
53
+ Component,
54
+ generator
55
+ }: BuildSchemaOptions<TOptions>): Promise<void>;
56
+ //#endregion
57
+ export { API, Exclude, type GetSchemaGeneratorOptions, Include, OperationGenerator, type OperationMethodResult, OperationSchema, OperationSchemas, Options, Override, PluginOas, Ref, Refs, ResolvePathOptions, Resolver, type Schema, SchemaGenerator, type SchemaGeneratorBuildOptions, type SchemaGeneratorOptions, type SchemaKeyword, type SchemaKeywordBase, type SchemaKeywordMapper, type SchemaMapper, type SchemaMethodResult, type SchemaTree, buildOperation, buildOperations, buildSchema, isKeyword, pluginOas, pluginOasName, schemaKeywords };
58
+ //# sourceMappingURL=index.d.cts.map
package/dist/index.d.ts CHANGED
@@ -1,3 +1,58 @@
1
- import { C as Ref, D as createReactGenerator, E as Resolver, O as createGenerator, S as PluginOas, T as ResolvePathOptions, _ as Include, a as pluginOasName, b as Options, c as buildSchema, d as SchemaGeneratorBuildOptions, f as SchemaGeneratorOptions, g as Exclude, h as API, i as pluginOas, l as GetSchemaGeneratorOptions, m as jsonGenerator, n as OperationMethodResult, o as buildOperation, p as SchemaMethodResult, r as Generator, s as buildOperations, t as OperationGenerator, u as SchemaGenerator, v as OperationSchema, w as Refs, x as Override, y as OperationSchemas } from "./OperationGenerator-CRZpkIpZ.js";
2
- import { a as SchemaMapper, c as schemaKeywords, i as SchemaKeywordMapper, n as SchemaKeyword, o as SchemaTree, r as SchemaKeywordBase, s as isKeyword, t as Schema } from "./SchemaMapper-CtfTw3hq.js";
3
- export { API, Exclude, Generator, GetSchemaGeneratorOptions, Include, OperationGenerator, OperationMethodResult, OperationSchema, OperationSchemas, Options, Override, PluginOas, Ref, Refs, ResolvePathOptions, Resolver, Schema, SchemaGenerator, SchemaGeneratorBuildOptions, SchemaGeneratorOptions, SchemaKeyword, SchemaKeywordBase, SchemaKeywordMapper, SchemaMapper, SchemaMethodResult, SchemaTree, buildOperation, buildOperations, buildSchema, createGenerator, createReactGenerator, isKeyword, jsonGenerator, pluginOas, pluginOasName, schemaKeywords };
1
+ import { A as SchemaObject, C as ResolvePathOptions, F as Plugin, I as PluginFactoryOptions, N as Config, R as UserPluginWithLifeCycle, S as Refs, _ as OperationSchemas, b as PluginOas, c as SchemaGeneratorBuildOptions, d as OperationGenerator, f as OperationMethodResult, g as OperationSchema, h as Include, i as ReactGenerator, k as Operation, l as SchemaGeneratorOptions, m as Exclude, o as GetSchemaGeneratorOptions, p as API, s as SchemaGenerator, u as SchemaMethodResult, v as Options, w as Resolver, x as Ref, y as Override } from "./createGenerator-DlSlv4sR.js";
2
+ import { a as SchemaMapper, c as schemaKeywords, i as SchemaKeywordMapper, n as SchemaKeyword, o as SchemaTree, r as SchemaKeywordBase, s as isKeyword, t as Schema } from "./SchemaMapper-m5TKynWt.js";
3
+ import { Fabric } from "@kubb/react-fabric";
4
+
5
+ //#region src/plugin.d.ts
6
+ declare const pluginOasName = "plugin-oas";
7
+ declare const pluginOas: (options?: Options | undefined) => UserPluginWithLifeCycle<PluginOas>;
8
+ //#endregion
9
+ //#region src/utils.d.ts
10
+ type BuildOperationsOptions<TOptions extends PluginFactoryOptions> = {
11
+ config: Config;
12
+ fabric: Fabric;
13
+ Component: ReactGenerator<any>['Operations'];
14
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
15
+ plugin: Plugin<TOptions>;
16
+ };
17
+ declare function buildOperations<TOptions extends PluginFactoryOptions>(operations: Array<Operation>, {
18
+ config,
19
+ fabric,
20
+ plugin,
21
+ generator,
22
+ Component
23
+ }: BuildOperationsOptions<TOptions>): Promise<void>;
24
+ type BuildOperationOptions<TOptions extends PluginFactoryOptions> = {
25
+ config: Config;
26
+ fabric: Fabric;
27
+ Component: ReactGenerator<any>['Operation'];
28
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
29
+ plugin: Plugin<TOptions>;
30
+ };
31
+ declare function buildOperation<TOptions extends PluginFactoryOptions>(operation: Operation, {
32
+ config,
33
+ fabric,
34
+ plugin,
35
+ generator,
36
+ Component
37
+ }: BuildOperationOptions<TOptions>): Promise<void>;
38
+ type BuildSchemaOptions<TOptions extends PluginFactoryOptions> = {
39
+ config: Config;
40
+ fabric: Fabric;
41
+ Component: ReactGenerator<any>['Schema'];
42
+ generator: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>;
43
+ plugin: Plugin<TOptions>;
44
+ };
45
+ declare function buildSchema<TOptions extends PluginFactoryOptions>(schema: {
46
+ name: string;
47
+ tree: Array<Schema>;
48
+ value: SchemaObject;
49
+ }, {
50
+ config,
51
+ fabric,
52
+ plugin,
53
+ Component,
54
+ generator
55
+ }: BuildSchemaOptions<TOptions>): Promise<void>;
56
+ //#endregion
57
+ export { API, Exclude, type GetSchemaGeneratorOptions, Include, OperationGenerator, type OperationMethodResult, OperationSchema, OperationSchemas, Options, Override, PluginOas, Ref, Refs, ResolvePathOptions, Resolver, type Schema, SchemaGenerator, type SchemaGeneratorBuildOptions, type SchemaGeneratorOptions, type SchemaKeyword, type SchemaKeywordBase, type SchemaKeywordMapper, type SchemaMapper, type SchemaMethodResult, type SchemaTree, buildOperation, buildOperations, buildSchema, isKeyword, pluginOas, pluginOasName, schemaKeywords };
58
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,14 +1,12 @@
1
- import { n as createReactGenerator, r as createGenerator, t as jsonGenerator } from "./generators-C61FxVIj.js";
2
- import "./getFooter-D5MdeUVv.js";
3
- import "./Oas-CHC1IC5D.js";
4
- import { n as buildOperations, r as buildSchema, t as buildOperation } from "./utils-DaV25sy8.js";
5
- import { n as pLimit, t as SchemaGenerator } from "./SchemaGenerator-b7XixzRv.js";
6
- import { n as schemaKeywords, t as isKeyword } from "./SchemaMapper-Cx4X1al6.js";
7
- import "./getSchemas-Bdg6n9Qk.js";
8
- import { t as parseFromConfig } from "./parseFromConfig-CqiiLCPe.js";
1
+ import { a as pLimit, i as buildSchema, n as buildOperation, r as buildOperations, t as SchemaGenerator } from "./SchemaGenerator-ChoBQWm5.js";
2
+ import { t as jsonGenerator } from "./generators-CJDEf8Kn.js";
3
+ import "./getFooter-CV73pVXj.js";
4
+ import { n as schemaKeywords, t as isKeyword } from "./SchemaMapper-D30tqRoX.js";
5
+ import "./getSchemas-CTi8zYew.js";
6
+ import { t as parseFromConfig } from "./parseFromConfig-BkUoWC2U.js";
7
+ import { BaseGenerator, createPlugin, getMode } from "@kubb/core";
9
8
  import transformers, { camelCase } from "@kubb/core/transformers";
10
9
  import path from "node:path";
11
- import { BaseGenerator, createPlugin, getMode } from "@kubb/core";
12
10
 
13
11
  //#region src/OperationGenerator.ts
14
12
  var OperationGenerator = class extends BaseGenerator {
@@ -151,22 +149,30 @@ var OperationGenerator = class extends BaseGenerator {
151
149
  const options = this.#getOptions(operation, method);
152
150
  if (generator.type === "react") {
153
151
  await buildOperation(operation, {
152
+ config: this.context.pluginManager.config,
154
153
  fabric: this.context.fabric,
155
- generator,
156
- instance: this,
157
- options: {
158
- ...this.options,
159
- ...options
154
+ Component: generator.Operation,
155
+ generator: this,
156
+ plugin: {
157
+ ...this.context.plugin,
158
+ options: {
159
+ ...this.options,
160
+ ...options
161
+ }
160
162
  }
161
163
  });
162
164
  return [];
163
165
  }
164
166
  return await generator.operation?.({
165
- instance: this,
167
+ generator: this,
168
+ config: this.context.pluginManager.config,
166
169
  operation,
167
- options: {
168
- ...this.options,
169
- ...options
170
+ plugin: {
171
+ ...this.context.plugin,
172
+ options: {
173
+ ...this.options,
174
+ ...options
175
+ }
170
176
  }
171
177
  }) ?? [];
172
178
  }));
@@ -174,16 +180,18 @@ var OperationGenerator = class extends BaseGenerator {
174
180
  if (generator.type === "react") {
175
181
  await buildOperations(operations.map((op) => op.operation), {
176
182
  fabric: this.context.fabric,
177
- generator,
178
- instance: this,
179
- options: this.options
183
+ config: this.context.pluginManager.config,
184
+ Component: generator.Operations,
185
+ generator: this,
186
+ plugin: this.context.plugin
180
187
  });
181
188
  return [];
182
189
  }
183
190
  const operationsResult = await generator.operations?.({
184
- instance: this,
191
+ generator: this,
192
+ config: this.context.pluginManager.config,
185
193
  operations: operations.map((op) => op.operation),
186
- options: this.options
194
+ plugin: this.context.plugin
187
195
  });
188
196
  return [...opResultsFlat, ...operationsResult ?? []];
189
197
  }));
@@ -293,5 +301,5 @@ const pluginOas = createPlugin((options) => {
293
301
  });
294
302
 
295
303
  //#endregion
296
- export { OperationGenerator, SchemaGenerator, buildOperation, buildOperations, buildSchema, createGenerator, createReactGenerator, isKeyword, jsonGenerator, pluginOas, pluginOasName, schemaKeywords };
304
+ export { OperationGenerator, SchemaGenerator, buildOperation, buildOperations, buildSchema, isKeyword, pluginOas, pluginOasName, schemaKeywords };
297
305
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["path","#isExcluded","#isIncluded","#getOptions","oas: Oas","options","groupName: Group['name']","oas"],"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"sourcesContent":["import type { Plugin, PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { contentType, HttpMethod, Oas, OasTypes, Operation, SchemaObject } from '@kubb/oas'\nimport type { Fabric } from '@kubb/react-fabric'\nimport pLimit from 'p-limit'\nimport type { Generator } from './generators/types.ts'\nimport { buildOperation, buildOperations } from './generators/utils.tsx'\nimport type { Exclude, Include, OperationSchemas, Override } from './types.ts'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n fabric: Fabric\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return (\n override.find(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return exclude.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return include.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const operationId = operation.getOperationId({ friendlyCase: true })\n const method = operation.method\n const operationName = transformers.pascalCase(operationId)\n\n const resolveKeys = (schema?: SchemaObject) => (schema?.properties ? Object.keys(schema.properties) : undefined)\n\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n const name = statusCode === 'default' ? 'error' : statusCode\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n const keys = resolveKeys(schema)\n\n return {\n name: resolveName(transformers.pascalCase(`${operationId} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName,\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys,\n keysToOmit: keys?.filter((key) => (schema?.properties?.[key] as OasTypes.SchemaObject)?.writeOnly),\n }\n })\n\n const successful = statusCodes.filter((item) => item.statusCode?.toString().startsWith('2'))\n const errors = statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} PathParams`)),\n operation,\n operationName,\n schema: pathParamsSchema,\n keys: resolveKeys(pathParamsSchema),\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} QueryParams`)),\n operation,\n operationName,\n schema: queryParamsSchema,\n keys: resolveKeys(queryParamsSchema) || [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} HeaderParams`)),\n operation,\n operationName,\n schema: headerParamsSchema,\n keys: resolveKeys(headerParamsSchema),\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName,\n schema: requestSchema,\n keys: resolveKeys(requestSchema),\n keysToOmit: resolveKeys(requestSchema)?.filter((key) => (requestSchema.properties?.[key] as OasTypes.SchemaObject)?.readOnly),\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName,\n schema: {\n oneOf: successful.map((item) => ({ ...item.schema, $ref: item.name })) || undefined,\n } as SchemaObject,\n },\n responses: successful,\n errors,\n statusCodes,\n }\n }\n\n async getOperations(): Promise<Array<{ path: string; method: HttpMethod; operation: Operation }>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n\n return Object.entries(paths).flatMap(([path, methods]) =>\n Object.entries(methods)\n .map((values) => {\n const [method, operation] = values as [HttpMethod, Operation]\n if (this.#isExcluded(operation, method)) {\n return null\n }\n\n if (this.context.include && !this.#isIncluded(operation, method)) {\n return null\n }\n\n return operation ? { path, method: method as HttpMethod, operation } : null\n })\n .filter(Boolean),\n )\n }\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const operations = await this.getOperations()\n\n const generatorLimit = pLimit(1)\n const operationLimit = pLimit(10)\n\n const writeTasks = generators.map((generator) =>\n generatorLimit(async () => {\n const operationTasks = operations.map(({ operation, method }) =>\n operationLimit(async () => {\n const options = this.#getOptions(operation, method)\n\n if (generator.type === 'react') {\n await buildOperation(operation, {\n fabric: this.context.fabric,\n generator,\n instance: this,\n options: {\n ...this.options,\n ...options,\n },\n })\n\n return []\n }\n\n const result = await generator.operation?.({\n instance: this,\n operation,\n options: { ...this.options, ...options },\n })\n\n return result ?? []\n }),\n )\n\n const operationResults = await Promise.all(operationTasks)\n const opResultsFlat = operationResults.flat()\n\n if (generator.type === 'react') {\n await buildOperations(\n operations.map((op) => op.operation),\n {\n fabric: this.context.fabric,\n generator,\n instance: this,\n options: this.options,\n },\n )\n\n return []\n }\n\n const operationsResult = await generator.operations?.({\n instance: this,\n operations: operations.map((op) => op.operation),\n options: this.options,\n })\n\n return [...opResultsFlat, ...(operationsResult ?? [])] as unknown as KubbFile.File<TFileMeta>\n }),\n )\n\n const nestedResults = await Promise.all(writeTasks)\n\n return nestedResults.flat()\n }\n}\n","import path from 'node:path'\nimport { type Config, createPlugin, type Group, getMode } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { Oas } from '@kubb/oas'\nimport { jsonGenerator } from './generators'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport type { PluginOas } from './types.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n group,\n validate = true,\n generators = [jsonGenerator],\n serverIndex,\n contentType,\n oasClass,\n discriminator = 'strict',\n } = options\n let oas: Oas\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n oas = await parseFromConfig(config, oasClass)\n\n oas.setOptions({\n contentType,\n discriminator,\n })\n\n try {\n if (validate) {\n await oas.valdiate()\n }\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n }\n\n return oas\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n validate,\n discriminator,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n if (serverIndex) {\n return oasInstance.api.servers?.at(serverIndex)?.url\n }\n\n return undefined\n },\n }\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n emptySchemaType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["path","#isExcluded","#isIncluded","#getOptions","oas: Oas","options","groupName: Group['name']","oas"],"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"sourcesContent":["import type { Plugin, PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { contentType, HttpMethod, Oas, OasTypes, Operation, SchemaObject } from '@kubb/oas'\nimport type { Fabric } from '@kubb/react-fabric'\nimport pLimit from 'p-limit'\nimport type { Generator } from './generators/types.ts'\nimport type { Exclude, Include, OperationSchemas, Override } from './types.ts'\nimport { buildOperation, buildOperations } from './utils.tsx'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n fabric: Fabric\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return (\n override.find(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return exclude.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return include.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const operationId = operation.getOperationId({ friendlyCase: true })\n const method = operation.method\n const operationName = transformers.pascalCase(operationId)\n\n const resolveKeys = (schema?: SchemaObject) => (schema?.properties ? Object.keys(schema.properties) : undefined)\n\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n const name = statusCode === 'default' ? 'error' : statusCode\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n const keys = resolveKeys(schema)\n\n return {\n name: resolveName(transformers.pascalCase(`${operationId} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName,\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys,\n keysToOmit: keys?.filter((key) => (schema?.properties?.[key] as OasTypes.SchemaObject)?.writeOnly),\n }\n })\n\n const successful = statusCodes.filter((item) => item.statusCode?.toString().startsWith('2'))\n const errors = statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} PathParams`)),\n operation,\n operationName,\n schema: pathParamsSchema,\n keys: resolveKeys(pathParamsSchema),\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} QueryParams`)),\n operation,\n operationName,\n schema: queryParamsSchema,\n keys: resolveKeys(queryParamsSchema) || [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} HeaderParams`)),\n operation,\n operationName,\n schema: headerParamsSchema,\n keys: resolveKeys(headerParamsSchema),\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName,\n schema: requestSchema,\n keys: resolveKeys(requestSchema),\n keysToOmit: resolveKeys(requestSchema)?.filter((key) => (requestSchema.properties?.[key] as OasTypes.SchemaObject)?.readOnly),\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName,\n schema: {\n oneOf: successful.map((item) => ({ ...item.schema, $ref: item.name })) || undefined,\n } as SchemaObject,\n },\n responses: successful,\n errors,\n statusCodes,\n }\n }\n\n async getOperations(): Promise<Array<{ path: string; method: HttpMethod; operation: Operation }>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n\n return Object.entries(paths).flatMap(([path, methods]) =>\n Object.entries(methods)\n .map((values) => {\n const [method, operation] = values as [HttpMethod, Operation]\n if (this.#isExcluded(operation, method)) {\n return null\n }\n\n if (this.context.include && !this.#isIncluded(operation, method)) {\n return null\n }\n\n return operation ? { path, method: method as HttpMethod, operation } : null\n })\n .filter(Boolean),\n )\n }\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const operations = await this.getOperations()\n\n const generatorLimit = pLimit(1)\n const operationLimit = pLimit(10)\n\n const writeTasks = generators.map((generator) =>\n generatorLimit(async () => {\n const operationTasks = operations.map(({ operation, method }) =>\n operationLimit(async () => {\n const options = this.#getOptions(operation, method)\n\n if (generator.type === 'react') {\n await buildOperation(operation, {\n config: this.context.pluginManager.config,\n fabric: this.context.fabric,\n Component: generator.Operation,\n generator: this,\n plugin: {\n ...this.context.plugin,\n options: {\n ...this.options,\n ...options,\n },\n },\n })\n\n return []\n }\n\n const result = await generator.operation?.({\n generator: this,\n config: this.context.pluginManager.config,\n operation,\n plugin: {\n ...this.context.plugin,\n options: {\n ...this.options,\n ...options,\n },\n },\n })\n\n return result ?? []\n }),\n )\n\n const operationResults = await Promise.all(operationTasks)\n const opResultsFlat = operationResults.flat()\n\n if (generator.type === 'react') {\n await buildOperations(\n operations.map((op) => op.operation),\n {\n fabric: this.context.fabric,\n config: this.context.pluginManager.config,\n Component: generator.Operations,\n generator: this,\n plugin: this.context.plugin,\n },\n )\n\n return []\n }\n\n const operationsResult = await generator.operations?.({\n generator: this,\n config: this.context.pluginManager.config,\n operations: operations.map((op) => op.operation),\n plugin: this.context.plugin,\n })\n\n return [...opResultsFlat, ...(operationsResult ?? [])] as unknown as KubbFile.File<TFileMeta>\n }),\n )\n\n const nestedResults = await Promise.all(writeTasks)\n\n return nestedResults.flat()\n }\n}\n","import path from 'node:path'\nimport { type Config, createPlugin, type Group, getMode } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { Oas } from '@kubb/oas'\nimport { jsonGenerator } from './generators'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport type { PluginOas } from './types.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n group,\n validate = true,\n generators = [jsonGenerator],\n serverIndex,\n contentType,\n oasClass,\n discriminator = 'strict',\n } = options\n let oas: Oas\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n oas = await parseFromConfig(config, oasClass)\n\n oas.setOptions({\n contentType,\n discriminator,\n })\n\n try {\n if (validate) {\n await oas.valdiate()\n }\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n }\n\n return oas\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n validate,\n discriminator,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n if (serverIndex) {\n return oasInstance.api.servers?.at(serverIndex)?.url\n }\n\n return undefined\n },\n }\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n emptySchemaType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"],"mappings":"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"}
package/dist/mocks.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_SchemaMapper = require('./SchemaMapper-DoL-a6qq.cjs');
1
+ const require_SchemaMapper = require('./SchemaMapper-BUV8vhg0.cjs');
2
2
 
3
3
  //#region src/mocks/schemas.ts
4
4
  const basic = [
package/dist/mocks.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as Schema } from "./SchemaMapper-CtfTw3hq.js";
1
+ import { t as Schema } from "./SchemaMapper-m5TKynWt.js";
2
2
 
3
3
  //#region src/mocks/schemas.d.ts
4
4
  declare const schemas: {
package/dist/mocks.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as schemaKeywords } from "./SchemaMapper-Cx4X1al6.js";
1
+ import { n as schemaKeywords } from "./SchemaMapper-D30tqRoX.js";
2
2
 
3
3
  //#region src/mocks/schemas.ts
4
4
  const basic = [
@@ -19,4 +19,4 @@ function parseFromConfig(config, oasClass = Oas) {
19
19
 
20
20
  //#endregion
21
21
  export { parseFromConfig as t };
22
- //# sourceMappingURL=parseFromConfig-CqiiLCPe.js.map
22
+ //# sourceMappingURL=parseFromConfig-BkUoWC2U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseFromConfig-BkUoWC2U.js","names":[],"sources":["../src/utils/parseFromConfig.ts"],"sourcesContent":["import { resolve } from 'node:path'\nimport type { Config } from '@kubb/core'\nimport { URLPath } from '@kubb/core/utils'\nimport { merge, Oas, type OasTypes, parse } 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 (Array.isArray(config.input)) {\n return merge(\n config.input.map((input) => input.path),\n { oasClass },\n )\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":";;;;;;AAMA,SAAgB,gBAAgB,QAAgB,WAAuB,KAAmB;AACxF,KAAI,UAAU,OAAO,OAAO;AAC1B,MAAI,OAAO,OAAO,MAAM,SAAS,SAE/B,QAAO,MAD2B,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,KAAK,CAAC,EAC7D,EAAE,UAAU,CAAC;AAGjC,MAAI;AAGF,UAAO,MAFa,KAAK,MAAM,OAAO,MAAM,KAAe,EAEzC,EAAE,UAAU,CAAC;WACxB,IAAI;AAMb,SAAO,MAF2B,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,KAAK,CAAC,EAE7D,EAAE,UAAU,CAAC;;AAGjC,KAAI,MAAM,QAAQ,OAAO,MAAM,CAC7B,QAAO,MACL,OAAO,MAAM,KAAK,UAAU,MAAM,KAAK,EACvC,EAAE,UAAU,CACb;AAGH,KAAI,IAAI,QAAQ,OAAO,MAAM,KAAK,CAAC,MACjC,QAAO,MAAM,OAAO,MAAM,MAAM,EAAE,UAAU,CAAC;AAG/C,QAAO,MAAM,QAAQ,OAAO,MAAM,OAAO,MAAM,KAAK,EAAE,EAAE,UAAU,CAAC"}
@@ -29,4 +29,4 @@ Object.defineProperty(exports, 'parseFromConfig', {
29
29
  return parseFromConfig;
30
30
  }
31
31
  });
32
- //# sourceMappingURL=parseFromConfig-RR31a98-.cjs.map
32
+ //# sourceMappingURL=parseFromConfig-EjsCZ0-8.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseFromConfig-EjsCZ0-8.cjs","names":["Oas","yaml","URLPath"],"sources":["../src/utils/parseFromConfig.ts"],"sourcesContent":["import { resolve } from 'node:path'\nimport type { Config } from '@kubb/core'\nimport { URLPath } from '@kubb/core/utils'\nimport { merge, Oas, type OasTypes, parse } 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 (Array.isArray(config.input)) {\n return merge(\n config.input.map((input) => input.path),\n { oasClass },\n )\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":";;;;;;;;;;;AAMA,SAAgB,gBAAgB,QAAgB,WAAuBA,gBAAmB;AACxF,KAAI,UAAU,OAAO,OAAO;AAC1B,MAAI,OAAO,OAAO,MAAM,SAAS,SAE/B,8BADkC,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,KAAK,CAAC,EAC7D,EAAE,UAAU,CAAC;AAGjC,MAAI;AAGF,gCAFoBC,yBAAK,MAAM,OAAO,MAAM,KAAe,EAEzC,EAAE,UAAU,CAAC;WACxB,IAAI;AAMb,+BAFkC,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,KAAK,CAAC,EAE7D,EAAE,UAAU,CAAC;;AAGjC,KAAI,MAAM,QAAQ,OAAO,MAAM,CAC7B,8BACE,OAAO,MAAM,KAAK,UAAU,MAAM,KAAK,EACvC,EAAE,UAAU,CACb;AAGH,KAAI,IAAIC,0BAAQ,OAAO,MAAM,KAAK,CAAC,MACjC,8BAAa,OAAO,MAAM,MAAM,EAAE,UAAU,CAAC;AAG/C,qDAAqB,OAAO,MAAM,OAAO,MAAM,KAAK,EAAE,EAAE,UAAU,CAAC"}
package/dist/utils.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_getFooter = require('./getFooter-CwjCW4h5.cjs');
3
- const require_getSchemas = require('./getSchemas-DY8s2CSl.cjs');
4
- const require_parseFromConfig = require('./parseFromConfig-RR31a98-.cjs');
2
+ const require_getFooter = require('./getFooter-DPh4lxBH.cjs');
3
+ const require_getSchemas = require('./getSchemas-CP_YS4_2.cjs');
4
+ const require_parseFromConfig = require('./parseFromConfig-EjsCZ0-8.cjs');
5
5
  let __kubb_core_transformers = require("@kubb/core/transformers");
6
6
  __kubb_core_transformers = require_chunk.__toESM(__kubb_core_transformers);
7
7
  let __kubb_core_utils = require("@kubb/core/utils");
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","names":["URLPath","transformers","data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { isParameterObject } from '@kubb/oas'\n\nimport { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAIA,0BAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAASC,iCAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACD3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,4CAA4B,OAAO;EACzC,MAAMC,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,oDAAsB,KAAK,KAAK,GAAG,KAAK,+CAAiB,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,gDAAiB,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
1
+ {"version":3,"file":"utils.cjs","names":["URLPath","transformers","data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport { isParameterObject } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAIA,0BAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAASC,iCAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACF3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,4CAA4B,OAAO;EACzC,MAAMC,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,oDAAsB,KAAK,KAAK,GAAG,KAAK,+CAAiB,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,gDAAiB,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
package/dist/utils.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Config, B as contentType, F as OasTypes, I as OpenAPIV3$1, L as OpenAPIV3_1, P as Oas, R as Operation, j as Output, v as OperationSchema, z as SchemaObject$1 } from "./OperationGenerator-S_1PevQN.cjs";
1
+ import { A as SchemaObject$1, D as OpenAPIV3$1, E as OasTypes, N as Config, O as OpenAPIV3_1, P as Output, T as Oas, g as OperationSchema, j as contentType, k as Operation } from "./createGenerator-PIseu7v9.cjs";
2
2
  import "./SchemaMapper-CX7sIIuZ.cjs";
3
3
  import { OASDocument, SchemaObject } from "oas/types";
4
4
  import { OpenAPIV3 } from "openapi-types";
@@ -8,9 +8,31 @@ import { Params } from "@kubb/react-fabric/types";
8
8
 
9
9
  declare function isOptional(schema?: SchemaObject): boolean;
10
10
  //#endregion
11
+ //#region src/utils/getBanner.d.ts
12
+ type Props$1<TOas extends Oas> = {
13
+ oas: TOas;
14
+ output: Output<any>;
15
+ config?: Config;
16
+ };
17
+ declare function getBanner<TOas extends Oas>({
18
+ output,
19
+ oas,
20
+ config
21
+ }: Props$1<TOas>): string;
22
+ //#endregion
11
23
  //#region src/utils/getComments.d.ts
12
24
  declare function getComments(operation: Operation): string[];
13
25
  //#endregion
26
+ //#region src/utils/getFooter.d.ts
27
+ type Props<TOas extends Oas> = {
28
+ oas: TOas;
29
+ output: Output<any>;
30
+ };
31
+ declare function getFooter<TOas extends Oas>({
32
+ output,
33
+ oas
34
+ }: Props<TOas>): string | undefined;
35
+ //#endregion
14
36
  //#region ../core/src/utils/FunctionParams.d.ts
15
37
  type FunctionParamsASTWithoutType = {
16
38
  name?: string;
@@ -92,27 +114,5 @@ declare function getSchemas({
92
114
  //#region src/utils/parseFromConfig.d.ts
93
115
  declare function parseFromConfig(config: Config, oasClass?: typeof Oas): Promise<Oas>;
94
116
  //#endregion
95
- //#region src/utils/getBanner.d.ts
96
- type Props$1<TOas extends Oas> = {
97
- oas: TOas;
98
- output: Output<any>;
99
- config?: Config;
100
- };
101
- declare function getBanner<TOas extends Oas>({
102
- output,
103
- oas,
104
- config
105
- }: Props$1<TOas>): string;
106
- //#endregion
107
- //#region src/utils/getFooter.d.ts
108
- type Props<TOas extends Oas> = {
109
- oas: TOas;
110
- output: Output<any>;
111
- };
112
- declare function getFooter<TOas extends Oas>({
113
- output,
114
- oas
115
- }: Props<TOas>): string | undefined;
116
- //#endregion
117
117
  export { getBanner, getComments, getFooter, getPathParams, getSchemaFactory, getSchemas, isOptional, parseFromConfig };
118
118
  //# sourceMappingURL=utils.d.cts.map
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as Config, B as contentType, F as OasTypes, I as OpenAPIV3$1, L as OpenAPIV3_1, P as Oas, R as Operation, j as Output, v as OperationSchema, z as SchemaObject$1 } from "./OperationGenerator-CRZpkIpZ.js";
2
- import "./SchemaMapper-CtfTw3hq.js";
1
+ import { A as SchemaObject$1, D as OpenAPIV3$1, E as OasTypes, N as Config, O as OpenAPIV3_1, P as Output, T as Oas, g as OperationSchema, j as contentType, k as Operation } from "./createGenerator-DlSlv4sR.js";
2
+ import "./SchemaMapper-m5TKynWt.js";
3
3
  import { OASDocument, SchemaObject } from "oas/types";
4
4
  import { OpenAPIV3 } from "openapi-types";
5
5
  import { Params } from "@kubb/react-fabric/types";
@@ -8,9 +8,31 @@ import { Params } from "@kubb/react-fabric/types";
8
8
 
9
9
  declare function isOptional(schema?: SchemaObject): boolean;
10
10
  //#endregion
11
+ //#region src/utils/getBanner.d.ts
12
+ type Props$1<TOas extends Oas> = {
13
+ oas: TOas;
14
+ output: Output<any>;
15
+ config?: Config;
16
+ };
17
+ declare function getBanner<TOas extends Oas>({
18
+ output,
19
+ oas,
20
+ config
21
+ }: Props$1<TOas>): string;
22
+ //#endregion
11
23
  //#region src/utils/getComments.d.ts
12
24
  declare function getComments(operation: Operation): string[];
13
25
  //#endregion
26
+ //#region src/utils/getFooter.d.ts
27
+ type Props<TOas extends Oas> = {
28
+ oas: TOas;
29
+ output: Output<any>;
30
+ };
31
+ declare function getFooter<TOas extends Oas>({
32
+ output,
33
+ oas
34
+ }: Props<TOas>): string | undefined;
35
+ //#endregion
14
36
  //#region ../core/src/utils/FunctionParams.d.ts
15
37
  type FunctionParamsASTWithoutType = {
16
38
  name?: string;
@@ -92,27 +114,5 @@ declare function getSchemas({
92
114
  //#region src/utils/parseFromConfig.d.ts
93
115
  declare function parseFromConfig(config: Config, oasClass?: typeof Oas): Promise<Oas>;
94
116
  //#endregion
95
- //#region src/utils/getBanner.d.ts
96
- type Props$1<TOas extends Oas> = {
97
- oas: TOas;
98
- output: Output<any>;
99
- config?: Config;
100
- };
101
- declare function getBanner<TOas extends Oas>({
102
- output,
103
- oas,
104
- config
105
- }: Props$1<TOas>): string;
106
- //#endregion
107
- //#region src/utils/getFooter.d.ts
108
- type Props<TOas extends Oas> = {
109
- oas: TOas;
110
- output: Output<any>;
111
- };
112
- declare function getFooter<TOas extends Oas>({
113
- output,
114
- oas
115
- }: Props<TOas>): string | undefined;
116
- //#endregion
117
117
  export { getBanner, getComments, getFooter, getPathParams, getSchemaFactory, getSchemas, isOptional, parseFromConfig };
118
118
  //# sourceMappingURL=utils.d.ts.map
package/dist/utils.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as getBanner, t as getFooter } from "./getFooter-D5MdeUVv.js";
2
- import { n as getSchemaFactory, t as getSchemas } from "./getSchemas-Bdg6n9Qk.js";
3
- import { t as parseFromConfig } from "./parseFromConfig-CqiiLCPe.js";
1
+ import { n as getBanner, t as getFooter } from "./getFooter-CV73pVXj.js";
2
+ import { n as getSchemaFactory, t as getSchemas } from "./getSchemas-CTi8zYew.js";
3
+ import { t as parseFromConfig } from "./parseFromConfig-BkUoWC2U.js";
4
4
  import transformers, { camelCase, isValidVarName } from "@kubb/core/transformers";
5
5
  import { URLPath } from "@kubb/core/utils";
6
6
  import { isOptional, isParameterObject } from "@kubb/oas";
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { isParameterObject } from '@kubb/oas'\n\nimport { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAI,QAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAAS,aAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACD3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,UAAU,kBAAkB,OAAO;EACzC,MAAMA,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,OAAO,eAAe,KAAK,KAAK,GAAG,KAAK,OAAO,UAAU,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,QAAO,UAAU,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
1
+ {"version":3,"file":"utils.js","names":["data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport { isParameterObject } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAI,QAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAAS,aAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACF3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,UAAU,kBAAkB,OAAO;EACzC,MAAMA,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,OAAO,eAAe,KAAK,KAAK,GAAG,KAAK,OAAO,UAAU,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,QAAO,UAAU,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-oas",
3
- "version": "0.0.0-canary-20251028170426",
3
+ "version": "0.0.0-canary-20251103125929",
4
4
  "description": "OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.",
5
5
  "keywords": [
6
6
  "openapi",
@@ -28,10 +28,6 @@
28
28
  "import": "./dist/index.js",
29
29
  "require": "./dist/index.cjs"
30
30
  },
31
- "./components": {
32
- "import": "./dist/components.js",
33
- "require": "./dist/components.cjs"
34
- },
35
31
  "./generators": {
36
32
  "import": "./dist/generators.js",
37
33
  "require": "./dist/generators.cjs"
@@ -61,9 +57,6 @@
61
57
  "hooks": [
62
58
  "./dist/hooks.d.ts"
63
59
  ],
64
- "components": [
65
- "./dist/components.d.ts"
66
- ],
67
60
  "mocks": [
68
61
  "./dist/mocks.d.ts"
69
62
  ],
@@ -86,16 +79,16 @@
86
79
  }
87
80
  ],
88
81
  "dependencies": {
89
- "@kubb/react-fabric": "0.2.10",
82
+ "@kubb/react-fabric": "0.2.14",
90
83
  "@stoplight/yaml": "^4.3.0",
91
84
  "p-limit": "^7.2.0",
92
85
  "remeda": "^2.32.0",
93
- "@kubb/core": "0.0.0-canary-20251028170426",
94
- "@kubb/oas": "0.0.0-canary-20251028170426"
86
+ "@kubb/core": "0.0.0-canary-20251103125929",
87
+ "@kubb/oas": "0.0.0-canary-20251103125929"
95
88
  },
96
89
  "devDependencies": {},
97
90
  "peerDependencies": {
98
- "@kubb/react-fabric": "0.2.10"
91
+ "@kubb/react-fabric": "0.2.14"
99
92
  },
100
93
  "engines": {
101
94
  "node": ">=20"