@kubb/plugin-oas 3.0.0-alpha.3 → 3.0.0-alpha.30

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 (105) hide show
  1. package/README.md +13 -4
  2. package/dist/OperationGenerator-DhPriVDJ.d.cts +554 -0
  3. package/dist/OperationGenerator-DhPriVDJ.d.ts +554 -0
  4. package/dist/Schema-BfZVq77f.d.cts +22 -0
  5. package/dist/Schema-IlDbvlbP.d.ts +22 -0
  6. package/dist/chunk-4H2KTGZM.cjs +92 -0
  7. package/dist/chunk-4H2KTGZM.cjs.map +1 -0
  8. package/dist/chunk-ABIWUCV7.js +88 -0
  9. package/dist/chunk-ABIWUCV7.js.map +1 -0
  10. package/dist/chunk-ABOQ73FL.cjs +36 -0
  11. package/dist/chunk-ABOQ73FL.cjs.map +1 -0
  12. package/dist/chunk-BG77DP54.js +30 -0
  13. package/dist/chunk-BG77DP54.js.map +1 -0
  14. package/dist/chunk-GF26SDHQ.js +28 -0
  15. package/dist/chunk-GF26SDHQ.js.map +1 -0
  16. package/dist/chunk-PADR76WZ.cjs +4 -0
  17. package/dist/chunk-PADR76WZ.cjs.map +1 -0
  18. package/dist/chunk-QAFBZLJA.cjs +48 -0
  19. package/dist/chunk-QAFBZLJA.cjs.map +1 -0
  20. package/dist/chunk-QT6ZFRNJ.cjs +752 -0
  21. package/dist/chunk-QT6ZFRNJ.cjs.map +1 -0
  22. package/dist/chunk-R47XMJ32.js +3 -0
  23. package/dist/chunk-R47XMJ32.js.map +1 -0
  24. package/dist/chunk-V2JO6RHI.js +744 -0
  25. package/dist/chunk-V2JO6RHI.js.map +1 -0
  26. package/dist/chunk-XNCEFOE6.js +45 -0
  27. package/dist/chunk-XNCEFOE6.js.map +1 -0
  28. package/dist/chunk-ZWHQ54JM.cjs +32 -0
  29. package/dist/chunk-ZWHQ54JM.cjs.map +1 -0
  30. package/dist/components.cjs +20 -12
  31. package/dist/components.cjs.map +1 -1
  32. package/dist/components.d.cts +4 -7
  33. package/dist/components.d.ts +4 -7
  34. package/dist/components.js +3 -12
  35. package/dist/components.js.map +1 -1
  36. package/dist/generators.cjs +14 -0
  37. package/dist/generators.cjs.map +1 -0
  38. package/dist/generators.d.cts +9 -0
  39. package/dist/generators.d.ts +9 -0
  40. package/dist/generators.js +5 -0
  41. package/dist/generators.js.map +1 -0
  42. package/dist/hooks.cjs +102 -57
  43. package/dist/hooks.cjs.map +1 -1
  44. package/dist/hooks.d.cts +41 -10
  45. package/dist/hooks.d.ts +41 -10
  46. package/dist/hooks.js +91 -53
  47. package/dist/hooks.js.map +1 -1
  48. package/dist/index.cjs +192 -258
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.cts +3 -6
  51. package/dist/index.d.ts +3 -6
  52. package/dist/index.js +135 -228
  53. package/dist/index.js.map +1 -1
  54. package/dist/utils.cjs +32 -87
  55. package/dist/utils.cjs.map +1 -1
  56. package/dist/utils.d.cts +8 -43
  57. package/dist/utils.d.ts +8 -43
  58. package/dist/utils.js +8 -86
  59. package/dist/utils.js.map +1 -1
  60. package/package.json +20 -14
  61. package/src/OperationGenerator.ts +23 -30
  62. package/src/SchemaGenerator.ts +80 -23
  63. package/src/SchemaMapper.ts +7 -5
  64. package/src/components/Oas.tsx +1 -1
  65. package/src/components/Operation.tsx +1 -1
  66. package/src/components/Schema.tsx +2 -102
  67. package/src/{parser.tsx → generator.tsx} +35 -22
  68. package/src/generators/index.ts +1 -0
  69. package/src/generators/jsonGenerator.ts +32 -0
  70. package/src/hooks/index.ts +2 -0
  71. package/src/hooks/useOperationManager.ts +77 -29
  72. package/src/hooks/useSchemaManager.ts +77 -0
  73. package/src/index.ts +3 -3
  74. package/src/plugin.ts +67 -59
  75. package/src/types.ts +24 -16
  76. package/src/utils/getParams.ts +2 -2
  77. package/src/utils/getSchemaFactory.ts +1 -1
  78. package/src/utils/index.ts +2 -2
  79. package/src/utils/parseFromConfig.ts +7 -7
  80. package/dist/OperationGenerator-D7rSlflc.d.cts +0 -158
  81. package/dist/OperationGenerator-vw0Zf-Mi.d.ts +0 -158
  82. package/dist/Schema-DxyOIX7q.d.cts +0 -35
  83. package/dist/Schema-gHgN14i2.d.ts +0 -35
  84. package/dist/SchemaMapper-BM1IGWqD.d.cts +0 -248
  85. package/dist/SchemaMapper-BM1IGWqD.d.ts +0 -248
  86. package/dist/chunk-264TCCJF.cjs +0 -3973
  87. package/dist/chunk-264TCCJF.cjs.map +0 -1
  88. package/dist/chunk-7KIEQOVZ.cjs +0 -7
  89. package/dist/chunk-7KIEQOVZ.cjs.map +0 -1
  90. package/dist/chunk-FZN3PBEK.js +0 -3973
  91. package/dist/chunk-FZN3PBEK.js.map +0 -1
  92. package/dist/chunk-P42X362U.cjs +0 -101
  93. package/dist/chunk-P42X362U.cjs.map +0 -1
  94. package/dist/chunk-QLJIL3U5.cjs +0 -35
  95. package/dist/chunk-QLJIL3U5.cjs.map +0 -1
  96. package/dist/chunk-TWKZEVSM.js +0 -7
  97. package/dist/chunk-TWKZEVSM.js.map +0 -1
  98. package/dist/chunk-UB552H4J.js +0 -101
  99. package/dist/chunk-UB552H4J.js.map +0 -1
  100. package/dist/chunk-Y4V7HHX7.js +0 -35
  101. package/dist/chunk-Y4V7HHX7.js.map +0 -1
  102. package/dist/types-C2RXaY0_.d.cts +0 -143
  103. package/dist/types-C2RXaY0_.d.ts +0 -143
  104. package/src/utils/getGroupedByTagFiles.ts +0 -82
  105. package/src/utils/refSorter.ts +0 -13
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generator.tsx","../src/generators/jsonGenerator.ts"],"names":["createRoot","App","jsx","Oas","camelCase"],"mappings":";;;;;;;AA2CO,SAAS,gBAAuD,YAA+D,EAAA;AACpI,EAAO,OAAA,YAAA,CAAA;AACT,CAAA;AAaO,SAAS,qBAA4D,YAAoE,EAAA;AAC9I,EAAO,OAAA;AAAA,IACL,GAAG,YAAA;AAAA,IACH,MAAM,UAAW,CAAA,EAAE,UAAU,OAAS,EAAA,UAAA,EAAY,oBAAsB,EAAA;AACtE,MAAI,IAAA,CAAC,aAAa,UAAY,EAAA;AAC5B,QAAA,OAAO,EAAC,CAAA;AAAA,OACV;AAEA,MAAA,MAAM,EAAE,aAAe,EAAA,GAAA,EAAK,MAAQ,EAAA,IAAA,KAAS,QAAS,CAAA,OAAA,CAAA;AACtD,MAAA,MAAM,OAAOA,gBAAW,CAAA;AAAA,QACtB,QAAQ,aAAc,CAAA,MAAA;AAAA,OACvB,CAAA,CAAA;AAED,MAAA,MAAM,SAAY,GAAA,YAAA,CAAa,UAAW,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAEnD,MAAK,IAAA,CAAA,MAAA;AAAA,uCACFC,SAAI,EAAA,EAAA,aAAA,EAA8B,QAAgB,IACjD,EAAA,QAAA,kBAAAC,cAAA,CAACC,yBAAI,GAAU,EAAA,UAAA,EAAwB,SAAW,EAAA,QAAA,EAChD,yCAAC,SAAU,EAAA,EAAA,UAAA,EAAwB,UAAoB,kBAAwC,EAAA,OAAA,EAAkB,GACnH,CACF,EAAA,CAAA;AAAA,OACF,CAAA;AAEA,MAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,KACd;AAAA,IACA,MAAM,SAAU,CAAA,EAAE,QAAU,EAAA,SAAA,EAAW,SAAW,EAAA;AAChD,MAAI,IAAA,CAAC,aAAa,SAAW,EAAA;AAC3B,QAAA,OAAO,EAAC,CAAA;AAAA,OACV;AAEA,MAAA,MAAM,EAAE,aAAe,EAAA,GAAA,EAAK,MAAQ,EAAA,IAAA,KAAS,QAAS,CAAA,OAAA,CAAA;AACtD,MAAA,MAAM,OAAOH,gBAAW,CAAA;AAAA,QACtB,QAAQ,aAAc,CAAA,MAAA;AAAA,OACvB,CAAA,CAAA;AAED,MAAA,MAAM,SAAY,GAAA,YAAA,CAAa,SAAU,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAElD,MAAK,IAAA,CAAA,MAAA;AAAA,wBACFE,cAAA,CAAAD,SAAA,EAAA,EAAI,aAA8B,EAAA,MAAA,EAAQ,EAAE,GAAG,MAAQ,EAAA,OAAA,EAAW,EAAA,IAAA,EACjE,QAAC,kBAAAC,cAAA,CAAAC,qBAAA,EAAA,EAAI,KAAU,UAAY,EAAA,CAAC,SAAS,CAAA,EAAG,SAAW,EAAA,QAAA,EACjD,QAAC,kBAAAD,cAAA,CAAAC,qBAAA,CAAI,WAAJ,EAAc,SAAA,EACb,QAAC,kBAAAD,cAAA,CAAA,SAAA,EAAA,EAAU,SAAsB,EAAA,OAAA,EAAkB,QAAoB,EAAA,CAAA,EACzE,GACF,CACF,EAAA,CAAA;AAAA,OACF,CAAA;AAEA,MAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,KACd;AAAA,IACA,MAAM,MAAO,CAAA,EAAE,QAAU,EAAA,MAAA,EAAQ,SAAW,EAAA;AAC1C,MAAI,IAAA,CAAC,aAAa,MAAQ,EAAA;AACxB,QAAA,OAAO,EAAC,CAAA;AAAA,OACV;AAEA,MAAA,MAAM,EAAE,aAAe,EAAA,GAAA,EAAK,MAAQ,EAAA,IAAA,KAAS,QAAS,CAAA,OAAA,CAAA;AACtD,MAAA,MAAM,OAAOF,gBAAW,CAAA;AAAA,QACtB,QAAQ,aAAc,CAAA,MAAA;AAAA,OACvB,CAAA,CAAA;AAED,MAAA,MAAM,SAAY,GAAA,YAAA,CAAa,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAE/C,MAAK,IAAA,CAAA,MAAA;AAAA,wBACFE,cAAA,CAAAD,SAAA,EAAA,EAAI,aAA8B,EAAA,MAAA,EAAQ,EAAE,GAAG,MAAA,EAAQ,OAAQ,EAAA,EAAG,IACjE,EAAA,QAAA,kBAAAC,cAAA,CAACC,qBAAI,EAAA,EAAA,GAAA,EACH,yCAACA,qBAAI,CAAA,MAAA,EAAJ,EAAW,IAAA,EAAM,MAAO,CAAA,IAAA,EAAM,KAAO,EAAA,MAAA,CAAO,OAAO,IAAM,EAAA,MAAA,CAAO,IAC/D,EAAA,QAAA,kBAAAD,cAAA,CAAC,aAAU,MAAgB,EAAA,OAAA,EAAkB,QAAoB,EAAA,CAAA,EACnE,GACF,CACF,EAAA,CAAA;AAAA,OACF,CAAA;AAEA,MAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF,CAAA;AACF,CAAA;;;AChIO,IAAM,gBAAgB,eAA2B,CAAA;AAAA,EACtD,IAAM,EAAA,YAAA;AAAA,EACN,MAAM,MAAA,CAAO,EAAE,MAAA,EAAQ,UAAY,EAAA;AACjC,IAAA,MAAM,EAAE,aAAA,EAAe,MAAO,EAAA,GAAI,QAAS,CAAA,OAAA,CAAA;AAC3C,IAAM,MAAA,IAAA,GAAO,cAAc,OAAQ,CAAA;AAAA,MACjC,IAAA,EAAME,sBAAU,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,MAC3B,OAAS,EAAA,OAAA;AAAA,MACT,IAAM,EAAA,OAAA;AAAA,MACN,WAAW,MAAO,CAAA,GAAA;AAAA,KACnB,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL;AAAA,QACE,GAAG,IAAA;AAAA,QACH,OAAS,EAAA;AAAA,UACP;AAAA,YACE,IAAA,EAAMA,sBAAU,CAAA,MAAA,CAAO,IAAI,CAAA;AAAA,YAC3B,YAAc,EAAA,KAAA;AAAA,YACd,WAAa,EAAA,KAAA;AAAA,YACb,KAAO,EAAA,IAAA,CAAK,SAAU,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,WACpC;AAAA,SACF;AAAA,QACA,MAAA,EAAQ,MAAO,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA;AAAA,QAC/B,MAAA,EAAQ,MAAO,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA;AAAA,OACjC;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC","file":"chunk-4H2KTGZM.cjs","sourcesContent":["import type { PluginFactoryOptions } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { Operation, SchemaObject } from '@kubb/oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { OperationGenerator } from './OperationGenerator.ts'\nimport type { SchemaGenerator, SchemaGeneratorOptions } from './SchemaGenerator.ts'\nimport type { Schema } from './SchemaMapper.ts'\nimport type { OperationsByMethod } from './types.ts'\n\ntype OperationsProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<OperationGenerator<TOptions>, 'build'>\n options: TOptions['resolvedOptions']\n operations: Array<Operation>\n operationsByMethod: OperationsByMethod\n}\n\ntype OperationProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<OperationGenerator<TOptions>, 'build'>\n options: TOptions['resolvedOptions']\n operation: Operation\n}\n\ntype SchemaProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>\n schema: {\n name: string\n tree: Array<Schema>\n value: SchemaObject\n }\n options: TOptions['resolvedOptions']\n}\n\nexport type GeneratorOptions<TOptions extends PluginFactoryOptions> = {\n name: string\n operations?: (this: GeneratorOptions<TOptions>, props: OperationsProps<TOptions>) => Promise<KubbFile.File[]>\n operation?: (this: GeneratorOptions<TOptions>, props: OperationProps<TOptions>) => Promise<KubbFile.File[]>\n schema?: (this: GeneratorOptions<TOptions>, props: SchemaProps<TOptions>) => Promise<KubbFile.File[]>\n}\n\nexport type Generator<TOptions extends PluginFactoryOptions> = GeneratorOptions<TOptions>\n\nexport function createGenerator<TOptions extends PluginFactoryOptions>(parseOptions: GeneratorOptions<TOptions>): Generator<TOptions> {\n return parseOptions\n}\n\nexport type ReactGeneratorOptions<TOptions extends PluginFactoryOptions> = {\n name: string\n Operations?: (this: ReactGeneratorOptions<TOptions>, props: OperationsProps<TOptions>) => KubbNode\n Operation?: (this: ReactGeneratorOptions<TOptions>, props: OperationProps<TOptions>) => KubbNode\n Schema?: (this: ReactGeneratorOptions<TOptions>, props: SchemaProps<TOptions>) => KubbNode\n /**\n * Combine all react nodes and only render ones(to string or render)\n */\n render?: () => any\n}\n\nexport function createReactGenerator<TOptions extends PluginFactoryOptions>(parseOptions: ReactGeneratorOptions<TOptions>): Generator<TOptions> {\n return {\n ...parseOptions,\n async operations({ instance, options, operations, operationsByMethod }) {\n if (!parseOptions.Operations) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Operations.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={instance}>\n <Component operations={operations} instance={instance} operationsByMethod={operationsByMethod} options={options} />\n </Oas>\n </App>,\n )\n\n return root.files\n },\n async operation({ instance, operation, options }) {\n if (!parseOptions.Operation) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Operation.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={instance}>\n <Oas.Operation operation={operation}>\n <Component operation={operation} options={options} instance={instance} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n },\n async schema({ instance, schema, options }) {\n if (!parseOptions.Schema) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Schema.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema name={schema.name} value={schema.value} tree={schema.tree}>\n <Component schema={schema} options={options} instance={instance} />\n </Oas.Schema>\n </Oas>\n </App>,\n )\n\n return root.files\n },\n }\n}\n","import { camelCase } from '@kubb/core/transformers'\nimport { createGenerator } from '../generator.tsx'\nimport type { PluginOas } from '../types.ts'\n\nexport const jsonGenerator = createGenerator<PluginOas>({\n name: 'plugin-oas',\n async schema({ schema, instance }) {\n const { pluginManager, plugin } = instance.context\n const file = pluginManager.getFile({\n name: camelCase(schema.name),\n extname: '.json',\n mode: 'split',\n pluginKey: plugin.key,\n })\n\n return [\n {\n ...file,\n sources: [\n {\n name: camelCase(schema.name),\n isExportable: false,\n isIndexable: false,\n value: JSON.stringify(schema.value),\n },\n ],\n banner: plugin.options.output?.banner,\n format: plugin.options.output?.footer,\n },\n ]\n },\n})\n"]}
@@ -0,0 +1,88 @@
1
+ import { Oas } from './chunk-GF26SDHQ.js';
2
+ import { camelCase } from '@kubb/core/transformers';
3
+ import { createRoot, App } from '@kubb/react';
4
+ import { jsx } from '@kubb/react/jsx-runtime';
5
+
6
+ function createGenerator(parseOptions) {
7
+ return parseOptions;
8
+ }
9
+ function createReactGenerator(parseOptions) {
10
+ return {
11
+ ...parseOptions,
12
+ async operations({ instance, options, operations, operationsByMethod }) {
13
+ if (!parseOptions.Operations) {
14
+ return [];
15
+ }
16
+ const { pluginManager, oas, plugin, mode } = instance.context;
17
+ const root = createRoot({
18
+ logger: pluginManager.logger
19
+ });
20
+ const Component = parseOptions.Operations.bind(this);
21
+ root.render(
22
+ /* @__PURE__ */ jsx(App, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations, generator: instance, children: /* @__PURE__ */ jsx(Component, { operations, instance, operationsByMethod, options }) }) })
23
+ );
24
+ return root.files;
25
+ },
26
+ async operation({ instance, operation, options }) {
27
+ if (!parseOptions.Operation) {
28
+ return [];
29
+ }
30
+ const { pluginManager, oas, plugin, mode } = instance.context;
31
+ const root = createRoot({
32
+ logger: pluginManager.logger
33
+ });
34
+ const Component = parseOptions.Operation.bind(this);
35
+ root.render(
36
+ /* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations: [operation], generator: instance, children: /* @__PURE__ */ jsx(Oas.Operation, { operation, children: /* @__PURE__ */ jsx(Component, { operation, options, instance }) }) }) })
37
+ );
38
+ return root.files;
39
+ },
40
+ async schema({ instance, schema, options }) {
41
+ if (!parseOptions.Schema) {
42
+ return [];
43
+ }
44
+ const { pluginManager, oas, plugin, mode } = instance.context;
45
+ const root = createRoot({
46
+ logger: pluginManager.logger
47
+ });
48
+ const Component = parseOptions.Schema.bind(this);
49
+ root.render(
50
+ /* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, children: /* @__PURE__ */ jsx(Oas.Schema, { name: schema.name, value: schema.value, tree: schema.tree, children: /* @__PURE__ */ jsx(Component, { schema, options, instance }) }) }) })
51
+ );
52
+ return root.files;
53
+ }
54
+ };
55
+ }
56
+
57
+ // src/generators/jsonGenerator.ts
58
+ var jsonGenerator = createGenerator({
59
+ name: "plugin-oas",
60
+ async schema({ schema, instance }) {
61
+ const { pluginManager, plugin } = instance.context;
62
+ const file = pluginManager.getFile({
63
+ name: camelCase(schema.name),
64
+ extname: ".json",
65
+ mode: "split",
66
+ pluginKey: plugin.key
67
+ });
68
+ return [
69
+ {
70
+ ...file,
71
+ sources: [
72
+ {
73
+ name: camelCase(schema.name),
74
+ isExportable: false,
75
+ isIndexable: false,
76
+ value: JSON.stringify(schema.value)
77
+ }
78
+ ],
79
+ banner: plugin.options.output?.banner,
80
+ format: plugin.options.output?.footer
81
+ }
82
+ ];
83
+ }
84
+ });
85
+
86
+ export { createGenerator, createReactGenerator, jsonGenerator };
87
+ //# sourceMappingURL=chunk-ABIWUCV7.js.map
88
+ //# sourceMappingURL=chunk-ABIWUCV7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generator.tsx","../src/generators/jsonGenerator.ts"],"names":[],"mappings":"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","file":"chunk-ABIWUCV7.js","sourcesContent":["import type { PluginFactoryOptions } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { Operation, SchemaObject } from '@kubb/oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { OperationGenerator } from './OperationGenerator.ts'\nimport type { SchemaGenerator, SchemaGeneratorOptions } from './SchemaGenerator.ts'\nimport type { Schema } from './SchemaMapper.ts'\nimport type { OperationsByMethod } from './types.ts'\n\ntype OperationsProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<OperationGenerator<TOptions>, 'build'>\n options: TOptions['resolvedOptions']\n operations: Array<Operation>\n operationsByMethod: OperationsByMethod\n}\n\ntype OperationProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<OperationGenerator<TOptions>, 'build'>\n options: TOptions['resolvedOptions']\n operation: Operation\n}\n\ntype SchemaProps<TOptions extends PluginFactoryOptions> = {\n instance: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>\n schema: {\n name: string\n tree: Array<Schema>\n value: SchemaObject\n }\n options: TOptions['resolvedOptions']\n}\n\nexport type GeneratorOptions<TOptions extends PluginFactoryOptions> = {\n name: string\n operations?: (this: GeneratorOptions<TOptions>, props: OperationsProps<TOptions>) => Promise<KubbFile.File[]>\n operation?: (this: GeneratorOptions<TOptions>, props: OperationProps<TOptions>) => Promise<KubbFile.File[]>\n schema?: (this: GeneratorOptions<TOptions>, props: SchemaProps<TOptions>) => Promise<KubbFile.File[]>\n}\n\nexport type Generator<TOptions extends PluginFactoryOptions> = GeneratorOptions<TOptions>\n\nexport function createGenerator<TOptions extends PluginFactoryOptions>(parseOptions: GeneratorOptions<TOptions>): Generator<TOptions> {\n return parseOptions\n}\n\nexport type ReactGeneratorOptions<TOptions extends PluginFactoryOptions> = {\n name: string\n Operations?: (this: ReactGeneratorOptions<TOptions>, props: OperationsProps<TOptions>) => KubbNode\n Operation?: (this: ReactGeneratorOptions<TOptions>, props: OperationProps<TOptions>) => KubbNode\n Schema?: (this: ReactGeneratorOptions<TOptions>, props: SchemaProps<TOptions>) => KubbNode\n /**\n * Combine all react nodes and only render ones(to string or render)\n */\n render?: () => any\n}\n\nexport function createReactGenerator<TOptions extends PluginFactoryOptions>(parseOptions: ReactGeneratorOptions<TOptions>): Generator<TOptions> {\n return {\n ...parseOptions,\n async operations({ instance, options, operations, operationsByMethod }) {\n if (!parseOptions.Operations) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Operations.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={instance}>\n <Component operations={operations} instance={instance} operationsByMethod={operationsByMethod} options={options} />\n </Oas>\n </App>,\n )\n\n return root.files\n },\n async operation({ instance, operation, options }) {\n if (!parseOptions.Operation) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Operation.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={instance}>\n <Oas.Operation operation={operation}>\n <Component operation={operation} options={options} instance={instance} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n },\n async schema({ instance, schema, options }) {\n if (!parseOptions.Schema) {\n return []\n }\n\n const { pluginManager, oas, plugin, mode } = instance.context\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const Component = parseOptions.Schema.bind(this)\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema name={schema.name} value={schema.value} tree={schema.tree}>\n <Component schema={schema} options={options} instance={instance} />\n </Oas.Schema>\n </Oas>\n </App>,\n )\n\n return root.files\n },\n }\n}\n","import { camelCase } from '@kubb/core/transformers'\nimport { createGenerator } from '../generator.tsx'\nimport type { PluginOas } from '../types.ts'\n\nexport const jsonGenerator = createGenerator<PluginOas>({\n name: 'plugin-oas',\n async schema({ schema, instance }) {\n const { pluginManager, plugin } = instance.context\n const file = pluginManager.getFile({\n name: camelCase(schema.name),\n extname: '.json',\n mode: 'split',\n pluginKey: plugin.key,\n })\n\n return [\n {\n ...file,\n sources: [\n {\n name: camelCase(schema.name),\n isExportable: false,\n isIndexable: false,\n value: JSON.stringify(schema.value),\n },\n ],\n banner: plugin.options.output?.banner,\n format: plugin.options.output?.footer,\n },\n ]\n },\n})\n"]}
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var utils = require('@kubb/core/utils');
5
+ var parser = require('@kubb/oas/parser');
6
+ var oas = require('@kubb/oas');
7
+ var yaml = require('@stoplight/yaml');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var yaml__default = /*#__PURE__*/_interopDefault(yaml);
12
+
13
+ // src/utils/parseFromConfig.ts
14
+ function parseFromConfig(config, oasClass = oas.Oas) {
15
+ if ("data" in config.input) {
16
+ if (typeof config.input.data === "object") {
17
+ const api2 = JSON.parse(JSON.stringify(config.input.data));
18
+ return parser.parse(api2, oasClass);
19
+ }
20
+ try {
21
+ const api2 = yaml__default.default.parse(config.input.data);
22
+ return parser.parse(api2, oasClass);
23
+ } catch (e) {
24
+ }
25
+ const api = JSON.parse(JSON.stringify(config.input.data));
26
+ return parser.parse(api, oasClass);
27
+ }
28
+ if (new utils.URLPath(config.input.path).isURL) {
29
+ return parser.parse(config.input.path, oasClass);
30
+ }
31
+ return parser.parse(path.resolve(config.root, config.input.path), oasClass);
32
+ }
33
+
34
+ exports.parseFromConfig = parseFromConfig;
35
+ //# sourceMappingURL=chunk-ABOQ73FL.cjs.map
36
+ //# sourceMappingURL=chunk-ABOQ73FL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/parseFromConfig.ts"],"names":["Oas","api","parse","yaml","URLPath","resolve"],"mappings":";;;;;;;;;;;;;AAUO,SAAS,eAAA,CAAgB,MAAgB,EAAA,QAAA,GAAuBA,OAAmB,EAAA;AACxF,EAAI,IAAA,MAAA,IAAU,OAAO,KAAO,EAAA;AAC1B,IAAA,IAAI,OAAO,MAAA,CAAO,KAAM,CAAA,IAAA,KAAS,QAAU,EAAA;AACzC,MAAMC,MAAAA,IAAAA,GAA4B,KAAK,KAAM,CAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAC9E,MAAO,OAAAC,YAAA,CAAMD,MAAK,QAAQ,CAAA,CAAA;AAAA,KAC5B;AAEA,IAAI,IAAA;AACF,MAAA,MAAMA,IAAc,GAAAE,qBAAA,CAAK,KAAM,CAAA,MAAA,CAAO,MAAM,IAAc,CAAA,CAAA;AAE1D,MAAO,OAAAD,YAAA,CAAMD,MAAK,QAAQ,CAAA,CAAA;AAAA,aACnB,CAAG,EAAA;AAAA,KAEZ;AAEA,IAAM,MAAA,GAAA,GAA4B,KAAK,KAAM,CAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAE9E,IAAO,OAAAC,YAAA,CAAM,KAAK,QAAQ,CAAA,CAAA;AAAA,GAC5B;AAEA,EAAA,IAAI,IAAIE,aAAQ,CAAA,MAAA,CAAO,KAAM,CAAA,IAAI,EAAE,KAAO,EAAA;AACxC,IAAA,OAAOF,YAAM,CAAA,MAAA,CAAO,KAAM,CAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;AAAA,GAC1C;AAEA,EAAO,OAAAA,YAAA,CAAMG,aAAQ,MAAO,CAAA,IAAA,EAAM,OAAO,KAAM,CAAA,IAAI,GAAG,QAAQ,CAAA,CAAA;AAChE","file":"chunk-ABOQ73FL.cjs","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"]}
@@ -0,0 +1,30 @@
1
+ import { resolve } from 'node:path';
2
+ import { URLPath } from '@kubb/core/utils';
3
+ import { parse } from '@kubb/oas/parser';
4
+ import { Oas } from '@kubb/oas';
5
+ import yaml from '@stoplight/yaml';
6
+
7
+ // src/utils/parseFromConfig.ts
8
+ function parseFromConfig(config, oasClass = Oas) {
9
+ if ("data" in config.input) {
10
+ if (typeof config.input.data === "object") {
11
+ const api2 = JSON.parse(JSON.stringify(config.input.data));
12
+ return parse(api2, oasClass);
13
+ }
14
+ try {
15
+ const api2 = yaml.parse(config.input.data);
16
+ return parse(api2, oasClass);
17
+ } catch (e) {
18
+ }
19
+ const api = JSON.parse(JSON.stringify(config.input.data));
20
+ return parse(api, oasClass);
21
+ }
22
+ if (new URLPath(config.input.path).isURL) {
23
+ return parse(config.input.path, oasClass);
24
+ }
25
+ return parse(resolve(config.root, config.input.path), oasClass);
26
+ }
27
+
28
+ export { parseFromConfig };
29
+ //# sourceMappingURL=chunk-BG77DP54.js.map
30
+ //# sourceMappingURL=chunk-BG77DP54.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/parseFromConfig.ts"],"names":["api"],"mappings":";;;;;;;AAUO,SAAS,eAAA,CAAgB,MAAgB,EAAA,QAAA,GAAuB,GAAmB,EAAA;AACxF,EAAI,IAAA,MAAA,IAAU,OAAO,KAAO,EAAA;AAC1B,IAAA,IAAI,OAAO,MAAA,CAAO,KAAM,CAAA,IAAA,KAAS,QAAU,EAAA;AACzC,MAAMA,MAAAA,IAAAA,GAA4B,KAAK,KAAM,CAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAC9E,MAAO,OAAA,KAAA,CAAMA,MAAK,QAAQ,CAAA,CAAA;AAAA,KAC5B;AAEA,IAAI,IAAA;AACF,MAAA,MAAMA,IAAc,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,CAAO,MAAM,IAAc,CAAA,CAAA;AAE1D,MAAO,OAAA,KAAA,CAAMA,MAAK,QAAQ,CAAA,CAAA;AAAA,aACnB,CAAG,EAAA;AAAA,KAEZ;AAEA,IAAM,MAAA,GAAA,GAA4B,KAAK,KAAM,CAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA,CAAA;AAE9E,IAAO,OAAA,KAAA,CAAM,KAAK,QAAQ,CAAA,CAAA;AAAA,GAC5B;AAEA,EAAA,IAAI,IAAI,OAAQ,CAAA,MAAA,CAAO,KAAM,CAAA,IAAI,EAAE,KAAO,EAAA;AACxC,IAAA,OAAO,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;AAAA,GAC1C;AAEA,EAAO,OAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,IAAA,EAAM,OAAO,KAAM,CAAA,IAAI,GAAG,QAAQ,CAAA,CAAA;AAChE","file":"chunk-BG77DP54.js","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"]}
@@ -0,0 +1,28 @@
1
+ import { createContext } from '@kubb/react';
2
+ import { jsx } from '@kubb/react/jsx-runtime';
3
+
4
+ // src/components/Operation.tsx
5
+ var OperationContext = createContext({});
6
+ function Operation({ operation, children }) {
7
+ return /* @__PURE__ */ jsx(OperationContext.Provider, { value: { operation }, children });
8
+ }
9
+ Operation.Context = OperationContext;
10
+ var SchemaContext = createContext({
11
+ name: "unknown",
12
+ tree: []
13
+ });
14
+ function Schema({ name, value, tree = [], children }) {
15
+ return /* @__PURE__ */ jsx(SchemaContext.Provider, { value: { name, schema: value, tree }, children });
16
+ }
17
+ Schema.Context = SchemaContext;
18
+ var OasContext = createContext({});
19
+ function Oas({ oas, children, operations, generator }) {
20
+ return /* @__PURE__ */ jsx(OasContext.Provider, { value: { oas, generator, operations }, children });
21
+ }
22
+ Oas.Context = OasContext;
23
+ Oas.Operation = Operation;
24
+ Oas.Schema = Schema;
25
+
26
+ export { Oas, Operation, Schema };
27
+ //# sourceMappingURL=chunk-GF26SDHQ.js.map
28
+ //# sourceMappingURL=chunk-GF26SDHQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Operation.tsx","../src/components/Schema.tsx","../src/components/Oas.tsx"],"names":["createContext","jsx"],"mappings":";;;;AAcA,IAAM,gBAAA,GAAmB,aAAqC,CAAA,EAAE,CAAA,CAAA;AAEzD,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,QAAA,EAA6B,EAAA;AAClE,EAAO,uBAAA,GAAA,CAAC,iBAAiB,QAAjB,EAAA,EAA0B,OAAO,EAAE,SAAA,IAAc,QAAS,EAAA,CAAA,CAAA;AACpE,CAAA;AAEA,SAAA,CAAU,OAAU,GAAA,gBAAA,CAAA;ACDpB,IAAM,gBAAgBA,aAAkC,CAAA;AAAA,EACtD,IAAM,EAAA,SAAA;AAAA,EACN,MAAM,EAAC;AACT,CAAC,CAAA,CAAA;AAEM,SAAS,MAAA,CAAO,EAAE,IAAM,EAAA,KAAA,EAAO,OAAO,EAAC,EAAG,UAA6B,EAAA;AAC5E,EAAA,uBAAOC,GAAAA,CAAC,aAAc,CAAA,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAQ,EAAA,KAAA,EAAO,IAAK,EAAA,EAAI,QAAS,EAAA,CAAA,CAAA;AACjF,CAAA;AAEA,MAAA,CAAO,OAAU,GAAA,aAAA,CAAA;ACAjB,IAAM,UAAA,GAAaD,aAA+B,CAAA,EAAE,CAAA,CAAA;AAE7C,SAAS,IAAI,EAAE,GAAA,EAAK,QAAU,EAAA,UAAA,EAAY,WAA8B,EAAA;AAC7E,EAAO,uBAAAC,GAAC,CAAA,UAAA,CAAW,QAAX,EAAA,EAAoB,KAAO,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,UAAW,EAAA,EAAI,QAAS,EAAA,CAAA,CAAA;AAC/E,CAAA;AAEA,GAAA,CAAI,OAAU,GAAA,UAAA,CAAA;AACd,GAAA,CAAI,SAAY,GAAA,SAAA,CAAA;AAChB,GAAA,CAAI,MAAS,GAAA,MAAA","file":"chunk-GF26SDHQ.js","sourcesContent":["import { createContext } from '@kubb/react'\n\nimport type { Operation as OperationType } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\n\ntype Props = {\n operation: OperationType\n children?: KubbNode\n}\n\ntype OperationContextProps = {\n operation?: OperationType\n}\n\nconst OperationContext = createContext<OperationContextProps>({})\n\nexport function Operation({ operation, children }: Props): KubbNode {\n return <OperationContext.Provider value={{ operation }}>{children}</OperationContext.Provider>\n}\n\nOperation.Context = OperationContext\n","import { createContext } from '@kubb/react'\n\nimport type { SchemaObject } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { Schema as SchemaType } from '../SchemaMapper.ts'\n\nexport type SchemaContextProps = {\n name: string\n schema?: SchemaObject\n tree: Array<SchemaType>\n}\n\ntype Props = {\n name: string\n value?: SchemaObject\n tree?: Array<SchemaType>\n children?: KubbNode\n}\n\nconst SchemaContext = createContext<SchemaContextProps>({\n name: 'unknown',\n tree: [],\n})\n\nexport function Schema({ name, value, tree = [], children }: Props): KubbNode {\n return <SchemaContext.Provider value={{ name, schema: value, tree }}>{children}</SchemaContext.Provider>\n}\n\nSchema.Context = SchemaContext\n","import { createContext } from '@kubb/react'\n\nimport { Operation } from './Operation.tsx'\nimport { Schema } from './Schema.tsx'\n\nimport type { Oas as OasType, Operation as OperationType } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\n\ntype Props = {\n oas: OasType\n operations?: OperationType[]\n /**\n * @deprecated\n */\n generator?: Omit<OperationGenerator, 'build'>\n children?: KubbNode\n}\n\ntype OasContextProps = {\n oas?: OasType\n operations?: OperationType[]\n /**\n * @deprecated\n */\n generator?: Omit<OperationGenerator, 'build'>\n}\n\nconst OasContext = createContext<OasContextProps>({})\n\nexport function Oas({ oas, children, operations, generator }: Props): KubbNode {\n return <OasContext.Provider value={{ oas, generator, operations }}>{children}</OasContext.Provider>\n}\n\nOas.Context = OasContext\nOas.Operation = Operation\nOas.Schema = Schema\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-PADR76WZ.cjs.map
4
+ //# sourceMappingURL=chunk-PADR76WZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-PADR76WZ.cjs"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var oas = require('@kubb/oas');
4
+
5
+ // src/utils/getSchemas.ts
6
+ function getSchemas({ oas, contentType, includes = ["schemas", "requestBodies", "responses"] }) {
7
+ const components = oas.getDefinition().components;
8
+ let schemas = {};
9
+ if (includes.includes("schemas")) {
10
+ schemas = {
11
+ ...schemas,
12
+ ...components?.schemas || {}
13
+ };
14
+ }
15
+ const requestBodies = components?.requestBodies || {};
16
+ if (includes.includes("responses")) {
17
+ const responses = components?.responses || {};
18
+ Object.entries(responses).forEach(([name, response]) => {
19
+ if (response.content && !schemas[name]) {
20
+ const firstContentType = Object.keys(response.content)[0] || "application/json";
21
+ schemas[name] = response.content?.[contentType || firstContentType]?.schema;
22
+ }
23
+ });
24
+ }
25
+ if (includes.includes("requestBodies")) {
26
+ Object.entries(requestBodies).forEach(([name, request]) => {
27
+ if (request.content && !schemas[name]) {
28
+ const firstContentType = Object.keys(request.content)[0] || "application/json";
29
+ schemas[name] = request.content?.[contentType || firstContentType]?.schema;
30
+ }
31
+ });
32
+ }
33
+ return schemas;
34
+ }
35
+ function getSchemaFactory(oas$1) {
36
+ return (schema) => {
37
+ const version = oas.isOpenApiV3_1Document(oas$1.api) ? "3.1" : "3.0";
38
+ return {
39
+ schema: oas$1.dereferenceWithRef(schema),
40
+ version
41
+ };
42
+ };
43
+ }
44
+
45
+ exports.getSchemaFactory = getSchemaFactory;
46
+ exports.getSchemas = getSchemas;
47
+ //# sourceMappingURL=chunk-QAFBZLJA.cjs.map
48
+ //# sourceMappingURL=chunk-QAFBZLJA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"names":["oas","isOpenApiV3_1Document"],"mappings":";;;;;AAUO,SAAS,UAAA,CAAW,EAAE,GAAA,EAAK,WAAa,EAAA,QAAA,GAAW,CAAC,SAAW,EAAA,eAAA,EAAiB,WAAW,CAAA,EAA6D,EAAA;AAC7J,EAAM,MAAA,UAAA,GAAa,GAAI,CAAA,aAAA,EAAgB,CAAA,UAAA,CAAA;AAEvC,EAAA,IAAI,UAAiD,EAAC,CAAA;AAEtD,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,SAAS,CAAG,EAAA;AAChC,IAAU,OAAA,GAAA;AAAA,MACR,GAAG,OAAA;AAAA,MACH,GAAK,UAAY,EAAA,OAAA,IAAqD,EAAC;AAAA,KACzE,CAAA;AAAA,GACF;AAEA,EAAM,MAAA,aAAA,GAAgB,UAAY,EAAA,aAAA,IAAiB,EAAC,CAAA;AACpD,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,WAAW,CAAG,EAAA;AAClC,IAAM,MAAA,SAAA,GAAY,UAAY,EAAA,SAAA,IAAa,EAAC,CAAA;AAE5C,IAAO,MAAA,CAAA,OAAA,CAAQ,SAAS,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,QAAQ,CAAyC,KAAA;AACzF,MAAA,IAAI,QAAS,CAAA,OAAA,IAAW,CAAC,OAAA,CAAQ,IAAI,CAAG,EAAA;AACtC,QAAA,MAAM,mBAAmB,MAAO,CAAA,IAAA,CAAK,SAAS,OAAO,CAAA,CAAE,CAAC,CAAK,IAAA,kBAAA,CAAA;AAC7D,QAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,QAAA,CAAS,OAAU,GAAA,WAAA,IAAe,gBAAgB,CAAG,EAAA,MAAA,CAAA;AAAA,OACvE;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,eAAe,CAAG,EAAA;AACtC,IAAO,MAAA,CAAA,OAAA,CAAQ,aAAa,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,OAAO,CAA4C,KAAA;AAC/F,MAAA,IAAI,OAAQ,CAAA,OAAA,IAAW,CAAC,OAAA,CAAQ,IAAI,CAAG,EAAA;AACrC,QAAA,MAAM,mBAAmB,MAAO,CAAA,IAAA,CAAK,QAAQ,OAAO,CAAA,CAAE,CAAC,CAAK,IAAA,kBAAA,CAAA;AAC5D,QAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,OAAA,CAAQ,OAAU,GAAA,WAAA,IAAe,gBAAgB,CAAG,EAAA,MAAA,CAAA;AAAA,OACtE;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;ACrBO,SAAS,iBAAmDA,KAA6D,EAAA;AAC9H,EAAA,OAAO,CAAC,MAA0B,KAAA;AAChC,IAAA,MAAM,OAAU,GAAAC,yBAAA,CAAsBD,KAAI,CAAA,GAAG,IAAI,KAAQ,GAAA,KAAA,CAAA;AAEzD,IAAO,OAAA;AAAA,MACL,MAAA,EAAQA,KAAI,CAAA,kBAAA,CAAmB,MAAM,CAAA;AAAA,MACrC,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA;AACF","file":"chunk-QAFBZLJA.cjs","sourcesContent":["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: oas.dereferenceWithRef(schema),\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"]}