@kubb/plugin-zod 5.0.0-alpha.29 → 5.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.
package/dist/index.cjs CHANGED
@@ -1,28 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region \0rolldown/runtime.js
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
- get: ((k) => from[k]).bind(null, key),
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
20
- value: mod,
21
- enumerable: true
22
- }) : target, mod));
23
2
  //#endregion
24
- let node_path = require("node:path");
25
- node_path = __toESM(node_path);
26
3
  let _kubb_ast = require("@kubb/ast");
27
4
  let _kubb_core = require("@kubb/core");
28
5
  let _kubb_react_fabric = require("@kubb/react-fabric");
@@ -780,15 +757,13 @@ const printerZodMini = (0, _kubb_core.definePrinter)((options) => {
780
757
  //#region src/generators/zodGenerator.tsx
781
758
  const zodGenerator = (0, _kubb_core.defineGenerator)({
782
759
  name: "zod",
783
- type: "react",
784
- Schema({ node, adapter, options, config, resolver, plugin }) {
760
+ schema(node, options) {
761
+ const { adapter, config, resolver, root } = this;
785
762
  const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, printer } = options;
786
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
787
- if (!transformedNode.name) return;
788
- const root = node_path.default.resolve(config.root, config.output.path);
789
- const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
763
+ if (!node.name) return;
764
+ const mode = this.getMode(output);
790
765
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
791
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
766
+ const imports = adapter.getImports(node, (schemaName) => ({
792
767
  name: resolver.resolveSchemaName(schemaName),
793
768
  path: resolver.resolveFile({
794
769
  name: schemaName,
@@ -800,9 +775,9 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
800
775
  }).path
801
776
  }));
802
777
  const meta = {
803
- name: resolver.resolveSchemaName(transformedNode.name),
778
+ name: resolver.resolveSchemaName(node.name),
804
779
  file: resolver.resolveFile({
805
- name: transformedNode.name,
780
+ name: node.name,
806
781
  extname: ".ts"
807
782
  }, {
808
783
  root,
@@ -810,7 +785,7 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
810
785
  group
811
786
  })
812
787
  };
813
- const inferTypeName = inferred ? resolver.resolveSchemaTypeName(transformedNode.name) : void 0;
788
+ const inferTypeName = inferred ? resolver.resolveSchemaTypeName(node.name) : void 0;
814
789
  const schemaPrinter = mini ? printerZodMini({
815
790
  guidType,
816
791
  wrapOutput,
@@ -847,28 +822,27 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
847
822
  root: meta.file.path,
848
823
  path: imp.path,
849
824
  name: imp.name
850
- }, [transformedNode.name, imp.path].join("-"))),
825
+ }, [node.name, imp.path].join("-"))),
851
826
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(Zod, {
852
827
  name: meta.name,
853
- node: transformedNode,
828
+ node,
854
829
  printer: schemaPrinter,
855
830
  inferTypeName
856
831
  })
857
832
  ]
858
833
  });
859
834
  },
860
- Operation({ node, adapter, options, config, resolver, plugin }) {
835
+ operation(node, options) {
836
+ const { adapter, config, resolver, root } = this;
861
837
  const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, printer } = options;
862
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
863
- const root = node_path.default.resolve(config.root, config.output.path);
864
- const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
838
+ const mode = this.getMode(output);
865
839
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
866
- const params = (0, _kubb_ast.caseParams)(transformedNode.parameters, paramsCasing);
840
+ const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
867
841
  const meta = { file: resolver.resolveFile({
868
- name: transformedNode.operationId,
842
+ name: node.operationId,
869
843
  extname: ".ts",
870
- tag: transformedNode.tags[0] ?? "default",
871
- path: transformedNode.path
844
+ tag: node.tags[0] ?? "default",
845
+ path: node.path
872
846
  }, {
873
847
  root,
874
848
  output,
@@ -923,18 +897,18 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
923
897
  schema: param.schema,
924
898
  name: resolver.resolveParamName(node, param)
925
899
  }));
926
- const responseSchemas = transformedNode.responses.map((res) => renderSchemaEntry({
900
+ const responseSchemas = node.responses.map((res) => renderSchemaEntry({
927
901
  schema: res.schema,
928
- name: resolver.resolveResponseStatusName(transformedNode, res.statusCode),
902
+ name: resolver.resolveResponseStatusName(node, res.statusCode),
929
903
  keysToOmit: res.keysToOmit
930
904
  }));
931
- const requestSchema = transformedNode.requestBody?.schema ? renderSchemaEntry({
905
+ const requestSchema = node.requestBody?.schema ? renderSchemaEntry({
932
906
  schema: {
933
- ...transformedNode.requestBody.schema,
934
- description: transformedNode.requestBody.description ?? transformedNode.requestBody.schema.description
907
+ ...node.requestBody.schema,
908
+ description: node.requestBody.description ?? node.requestBody.schema.description
935
909
  },
936
- name: resolver.resolveDataName(transformedNode),
937
- keysToOmit: transformedNode.requestBody.keysToOmit
910
+ name: resolver.resolveDataName(node),
911
+ keysToOmit: node.requestBody.keysToOmit
938
912
  }) : null;
939
913
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
940
914
  baseName: meta.file.baseName,
@@ -960,10 +934,10 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
960
934
  ]
961
935
  });
962
936
  },
963
- Operations({ nodes, adapter, options, config, resolver, plugin }) {
937
+ operations(nodes, options) {
938
+ const { adapter, config, resolver, root } = this;
964
939
  const { output, importPath, group, operations, paramsCasing } = options;
965
940
  if (!operations) return;
966
- const root = node_path.default.resolve(config.root, config.output.path);
967
941
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
968
942
  const meta = { file: resolver.resolveFile({
969
943
  name: "operations",
@@ -974,11 +948,10 @@ const zodGenerator = (0, _kubb_core.defineGenerator)({
974
948
  group
975
949
  }) };
976
950
  const transformedOperations = nodes.map((node) => {
977
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
978
951
  return {
979
- node: transformedNode,
980
- data: buildSchemaNames(transformedNode, {
981
- params: (0, _kubb_ast.caseParams)(transformedNode.parameters, paramsCasing),
952
+ node,
953
+ data: buildSchemaNames(node, {
954
+ params: (0, _kubb_ast.caseParams)(node.parameters, paramsCasing),
982
955
  resolver
983
956
  })
984
957
  };
@@ -1173,15 +1146,13 @@ function buildLegacySchemaNames(node, params, resolver) {
1173
1146
  }
1174
1147
  const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1175
1148
  name: "zod-legacy",
1176
- type: "react",
1177
- Schema({ node, adapter, options, config, resolver, plugin }) {
1149
+ schema(node, options) {
1150
+ const { adapter, config, resolver, root } = this;
1178
1151
  const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, printer } = options;
1179
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
1180
- if (!transformedNode.name) return;
1181
- const root = node_path.default.resolve(config.root, config.output.path);
1182
- const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
1152
+ if (!node.name) return;
1153
+ const mode = this.getMode(output);
1183
1154
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
1184
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
1155
+ const imports = adapter.getImports(node, (schemaName) => ({
1185
1156
  name: resolver.resolveSchemaName(schemaName),
1186
1157
  path: resolver.resolveFile({
1187
1158
  name: schemaName,
@@ -1192,11 +1163,11 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1192
1163
  group
1193
1164
  }).path
1194
1165
  }));
1195
- const inferTypeName = inferred ? resolver.resolveSchemaTypeName(transformedNode.name) : void 0;
1166
+ const inferTypeName = inferred ? resolver.resolveSchemaTypeName(node.name) : void 0;
1196
1167
  const meta = {
1197
- name: resolver.resolveSchemaName(transformedNode.name),
1168
+ name: resolver.resolveSchemaName(node.name),
1198
1169
  file: resolver.resolveFile({
1199
- name: transformedNode.name,
1170
+ name: node.name,
1200
1171
  extname: ".ts"
1201
1172
  }, {
1202
1173
  root,
@@ -1240,28 +1211,27 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1240
1211
  root: meta.file.path,
1241
1212
  path: imp.path,
1242
1213
  name: imp.name
1243
- }, [transformedNode.name, imp.path].join("-"))),
1214
+ }, [node.name, imp.path].join("-"))),
1244
1215
  /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(Zod, {
1245
1216
  name: meta.name,
1246
- node: transformedNode,
1217
+ node,
1247
1218
  printer: schemaPrinter,
1248
1219
  inferTypeName
1249
1220
  })
1250
1221
  ]
1251
1222
  });
1252
1223
  },
1253
- Operation({ node, adapter, options, config, resolver, plugin }) {
1224
+ operation(node, options) {
1225
+ const { adapter, config, resolver, root } = this;
1254
1226
  const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, printer } = options;
1255
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
1256
- const root = node_path.default.resolve(config.root, config.output.path);
1257
- const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
1227
+ const mode = this.getMode(output);
1258
1228
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
1259
- const params = (0, _kubb_ast.caseParams)(transformedNode.parameters, paramsCasing);
1229
+ const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
1260
1230
  const meta = { file: resolver.resolveFile({
1261
- name: transformedNode.operationId,
1231
+ name: node.operationId,
1262
1232
  extname: ".ts",
1263
- tag: transformedNode.tags[0] ?? "default",
1264
- path: transformedNode.path
1233
+ tag: node.tags[0] ?? "default",
1234
+ path: node.path
1265
1235
  }, {
1266
1236
  root,
1267
1237
  output,
@@ -1315,8 +1285,8 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1315
1285
  const pathParams = params.filter((p) => p.in === "path");
1316
1286
  const queryParams = params.filter((p) => p.in === "query");
1317
1287
  const headerParams = params.filter((p) => p.in === "header");
1318
- const responseSchemas = transformedNode.responses.map((res) => {
1319
- const responseName = resolver.resolveResponseStatusName(transformedNode, res.statusCode);
1288
+ const responseSchemas = node.responses.map((res) => {
1289
+ const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
1320
1290
  return renderSchemaEntry({
1321
1291
  schema: {
1322
1292
  ...res.schema,
@@ -1326,13 +1296,13 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1326
1296
  keysToOmit: res.keysToOmit
1327
1297
  });
1328
1298
  });
1329
- const requestSchema = transformedNode.requestBody?.schema ? renderSchemaEntry({
1299
+ const requestSchema = node.requestBody?.schema ? renderSchemaEntry({
1330
1300
  schema: {
1331
- ...transformedNode.requestBody.schema,
1332
- description: transformedNode.requestBody.description ?? transformedNode.requestBody.schema.description
1301
+ ...node.requestBody.schema,
1302
+ description: node.requestBody.description ?? node.requestBody.schema.description
1333
1303
  },
1334
- name: resolver.resolveDataName(transformedNode),
1335
- keysToOmit: transformedNode.requestBody.keysToOmit
1304
+ name: resolver.resolveDataName(node),
1305
+ keysToOmit: node.requestBody.keysToOmit
1336
1306
  }) : null;
1337
1307
  const legacyParamTypes = [
1338
1308
  pathParams.length > 0 ? renderSchemaEntry({
@@ -1340,30 +1310,30 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1340
1310
  params: pathParams,
1341
1311
  optional: pathParams.every((p) => !p.required)
1342
1312
  }),
1343
- name: resolver.resolvePathParamsName(transformedNode, pathParams[0])
1313
+ name: resolver.resolvePathParamsName(node, pathParams[0])
1344
1314
  }) : null,
1345
1315
  queryParams.length > 0 ? renderSchemaEntry({
1346
1316
  schema: buildGroupedParamsSchema({
1347
1317
  params: queryParams,
1348
1318
  optional: queryParams.every((p) => !p.required)
1349
1319
  }),
1350
- name: resolver.resolveQueryParamsName(transformedNode, queryParams[0])
1320
+ name: resolver.resolveQueryParamsName(node, queryParams[0])
1351
1321
  }) : null,
1352
1322
  headerParams.length > 0 ? renderSchemaEntry({
1353
1323
  schema: buildGroupedParamsSchema({
1354
1324
  params: headerParams,
1355
1325
  optional: headerParams.every((p) => !p.required)
1356
1326
  }),
1357
- name: resolver.resolveHeaderParamsName(transformedNode, headerParams[0])
1327
+ name: resolver.resolveHeaderParamsName(node, headerParams[0])
1358
1328
  }) : null
1359
1329
  ];
1360
1330
  const legacyResponsesSchema = renderSchemaEntry({
1361
- schema: buildLegacyResponsesSchemaNode(transformedNode, { resolver }),
1362
- name: resolver.resolveResponsesName(transformedNode)
1331
+ schema: buildLegacyResponsesSchemaNode(node, { resolver }),
1332
+ name: resolver.resolveResponsesName(node)
1363
1333
  });
1364
1334
  const legacyResponseSchema = renderSchemaEntry({
1365
- schema: buildLegacyResponseUnionSchemaNode(transformedNode, { resolver }),
1366
- name: resolver.resolveResponseName(transformedNode)
1335
+ schema: buildLegacyResponseUnionSchemaNode(node, { resolver }),
1336
+ name: resolver.resolveResponseName(node)
1367
1337
  });
1368
1338
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
1369
1339
  baseName: meta.file.baseName,
@@ -1391,10 +1361,10 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1391
1361
  ]
1392
1362
  });
1393
1363
  },
1394
- Operations({ nodes, adapter, options, config, resolver, plugin }) {
1364
+ operations(nodes, options) {
1365
+ const { adapter, config, resolver, root } = this;
1395
1366
  const { output, importPath, group, operations, paramsCasing } = options;
1396
1367
  if (!operations) return;
1397
- const root = node_path.default.resolve(config.root, config.output.path);
1398
1368
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
1399
1369
  const meta = { file: resolver.resolveFile({
1400
1370
  name: "operations",
@@ -1405,10 +1375,9 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1405
1375
  group
1406
1376
  }) };
1407
1377
  const transformedOperations = nodes.map((node) => {
1408
- const transformedNode = plugin.transformer ? (0, _kubb_ast.transform)(node, plugin.transformer) : node;
1409
1378
  return {
1410
- node: transformedNode,
1411
- data: buildLegacySchemaNames(transformedNode, (0, _kubb_ast.caseParams)(transformedNode.parameters, paramsCasing), resolver)
1379
+ node,
1380
+ data: buildLegacySchemaNames(node, (0, _kubb_ast.caseParams)(node.parameters, paramsCasing), resolver)
1412
1381
  };
1413
1382
  });
1414
1383
  const imports = transformedOperations.flatMap(({ node, data }) => {
@@ -1462,6 +1431,9 @@ const zodGeneratorLegacy = (0, _kubb_core.defineGenerator)({
1462
1431
  }
1463
1432
  });
1464
1433
  //#endregion
1434
+ //#region package.json
1435
+ var version = "5.0.0-alpha.30";
1436
+ //#endregion
1465
1437
  //#region src/resolvers/resolverZod.ts
1466
1438
  /**
1467
1439
  * Default resolver for `@kubb/plugin-zod`.
@@ -1637,10 +1609,12 @@ const pluginZod = (0, _kubb_core.createPlugin)((options) => {
1637
1609
  transformer: userTransformer,
1638
1610
  generators: userGenerators
1639
1611
  });
1612
+ const mergedGenerator = (0, _kubb_core.mergeGenerators)(preset.generators ?? []);
1640
1613
  let resolveNameWarning = false;
1641
1614
  let resolvePathWarning = false;
1642
1615
  return {
1643
1616
  name: pluginZodName,
1617
+ version,
1644
1618
  get resolver() {
1645
1619
  return preset.resolver;
1646
1620
  },
@@ -1650,6 +1624,9 @@ const pluginZod = (0, _kubb_core.createPlugin)((options) => {
1650
1624
  get options() {
1651
1625
  return {
1652
1626
  output,
1627
+ exclude,
1628
+ include,
1629
+ override,
1653
1630
  group: group ? {
1654
1631
  ...group,
1655
1632
  name: (ctx) => {
@@ -1672,7 +1649,7 @@ const pluginZod = (0, _kubb_core.createPlugin)((options) => {
1672
1649
  },
1673
1650
  resolvePath(baseName, pathMode, options) {
1674
1651
  if (!resolvePathWarning) {
1675
- this.events.emit("warn", "Do not use resolvePath for pluginZod, use resolverZod.resolvePath instead");
1652
+ this.warn("Do not use resolvePath for pluginZod, use resolverZod.resolvePath instead");
1676
1653
  resolvePathWarning = true;
1677
1654
  }
1678
1655
  return this.plugin.resolver.resolvePath({
@@ -1681,59 +1658,29 @@ const pluginZod = (0, _kubb_core.createPlugin)((options) => {
1681
1658
  tag: options?.group?.tag,
1682
1659
  path: options?.group?.path
1683
1660
  }, {
1684
- root: node_path.default.resolve(this.config.root, this.config.output.path),
1661
+ root: this.root,
1685
1662
  output,
1686
1663
  group: this.plugin.options.group
1687
1664
  });
1688
1665
  },
1689
1666
  resolveName(name, type) {
1690
1667
  if (!resolveNameWarning) {
1691
- this.events.emit("warn", "Do not use resolveName for pluginZod, use resolverZod.default instead");
1668
+ this.warn("Do not use resolveName for pluginZod, use resolverZod.default instead");
1692
1669
  resolveNameWarning = true;
1693
1670
  }
1694
1671
  return this.plugin.resolver.default(name, type);
1695
1672
  },
1696
- async install() {
1697
- const { config, fabric, plugin, adapter, rootNode, driver, openInStudio, resolver } = this;
1698
- const root = node_path.default.resolve(config.root, config.output.path);
1699
- if (!adapter) throw new Error(`[${pluginZodName}] No adapter found. Add an OAS adapter (e.g. pluginOas()) before this plugin in your Kubb config.`);
1700
- await openInStudio({ ast: true });
1701
- const collectedOperations = [];
1702
- const generatorContext = {
1703
- generators: preset.generators,
1704
- plugin,
1705
- resolver,
1706
- exclude,
1707
- include,
1708
- override,
1709
- fabric,
1710
- adapter,
1711
- config,
1712
- driver
1713
- };
1714
- await (0, _kubb_ast.walk)(rootNode, {
1715
- depth: "shallow",
1716
- async schema(schemaNode) {
1717
- await (0, _kubb_core.runGeneratorSchema)(schemaNode, generatorContext);
1718
- },
1719
- async operation(operationNode) {
1720
- if (resolver.resolveOptions(operationNode, {
1721
- options: plugin.options,
1722
- exclude,
1723
- include,
1724
- override
1725
- }) !== null) collectedOperations.push(operationNode);
1726
- await (0, _kubb_core.runGeneratorOperation)(operationNode, generatorContext);
1727
- }
1728
- });
1729
- await (0, _kubb_core.runGeneratorOperations)(collectedOperations, generatorContext);
1730
- const barrelFiles = await (0, _kubb_core.getBarrelFiles)(this.fabric.files, {
1731
- type: output.barrelType ?? "named",
1732
- root,
1733
- output,
1734
- meta: { pluginName: this.plugin.name }
1735
- });
1736
- await this.upsertFile(...barrelFiles);
1673
+ async schema(node, options) {
1674
+ return mergedGenerator.schema?.call(this, node, options);
1675
+ },
1676
+ async operation(node, options) {
1677
+ return mergedGenerator.operation?.call(this, node, options);
1678
+ },
1679
+ async operations(nodes, options) {
1680
+ return mergedGenerator.operations?.call(this, nodes, options);
1681
+ },
1682
+ async buildStart() {
1683
+ await this.openInStudio({ ast: true });
1737
1684
  }
1738
1685
  };
1739
1686
  });