@rexeus/typeweaver-clients 0.3.2 → 0.4.1
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 +40 -72
- package/dist/index.js +10 -14
- package/dist/lib/ApiClient.ts +19 -13
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -0
- package/package.json +10 -7
package/dist/index.cjs
CHANGED
|
@@ -1,58 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
'use strict';
|
|
29
2
|
|
|
30
|
-
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
module.exports = __toCommonJS(index_exports);
|
|
3
|
+
var path = require('node:path');
|
|
4
|
+
var node_url = require('node:url');
|
|
5
|
+
var typeweaverGen = require('@rexeus/typeweaver-gen');
|
|
6
|
+
var typeweaverZodToTs = require('@rexeus/typeweaver-zod-to-ts');
|
|
7
|
+
var Case = require('case');
|
|
36
8
|
|
|
37
|
-
|
|
38
|
-
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
39
|
-
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
40
10
|
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
var import_node_url2 = require("node:url");
|
|
44
|
-
var import_typeweaver_gen = require("@rexeus/typeweaver-gen");
|
|
11
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
12
|
+
var Case__default = /*#__PURE__*/_interopDefault(Case);
|
|
45
13
|
|
|
46
|
-
//
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
var import_case = __toESM(require("case"), 1);
|
|
51
|
-
var moduleDir = import_node_path.default.dirname((0, import_node_url.fileURLToPath)(importMetaUrl));
|
|
14
|
+
// ../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js
|
|
15
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
16
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
17
|
+
var moduleDir = path__default.default.dirname(node_url.fileURLToPath(importMetaUrl));
|
|
52
18
|
var ClientGenerator = class {
|
|
53
19
|
static generate(context) {
|
|
54
|
-
const clientTemplatePath =
|
|
55
|
-
const commandTemplatePath =
|
|
20
|
+
const clientTemplatePath = path__default.default.join(moduleDir, "templates", "Client.ejs");
|
|
21
|
+
const commandTemplatePath = path__default.default.join(
|
|
56
22
|
moduleDir,
|
|
57
23
|
"templates",
|
|
58
24
|
"RequestCommand.ejs"
|
|
@@ -70,7 +36,7 @@ var ClientGenerator = class {
|
|
|
70
36
|
}
|
|
71
37
|
static writeClient(templateFilePath, operationResources, context) {
|
|
72
38
|
const entityName = operationResources[0].entityName;
|
|
73
|
-
const pascalCaseEntityName =
|
|
39
|
+
const pascalCaseEntityName = Case__default.default.pascal(entityName);
|
|
74
40
|
const outputDir = operationResources[0].outputDir;
|
|
75
41
|
const operations = [];
|
|
76
42
|
for (const operationResource of operationResources) {
|
|
@@ -81,10 +47,10 @@ var ClientGenerator = class {
|
|
|
81
47
|
outputRequestFileName
|
|
82
48
|
} = operationResource;
|
|
83
49
|
const { operationId } = definition;
|
|
84
|
-
const pascalCaseOperationId =
|
|
85
|
-
const requestFile = `./${
|
|
86
|
-
const responseValidatorFile = `./${
|
|
87
|
-
const responseFile = `./${
|
|
50
|
+
const pascalCaseOperationId = Case__default.default.pascal(operationId);
|
|
51
|
+
const requestFile = `./${path__default.default.basename(outputRequestFileName, ".ts")}`;
|
|
52
|
+
const responseValidatorFile = `./${path__default.default.basename(outputResponseValidationFileName, ".ts")}`;
|
|
53
|
+
const responseFile = `./${path__default.default.basename(outputResponseFileName, ".ts")}`;
|
|
88
54
|
operations.push({
|
|
89
55
|
operationId,
|
|
90
56
|
pascalCaseOperationId,
|
|
@@ -98,11 +64,11 @@ var ClientGenerator = class {
|
|
|
98
64
|
pascalCaseEntityName,
|
|
99
65
|
operations
|
|
100
66
|
});
|
|
101
|
-
const outputClientFile =
|
|
67
|
+
const outputClientFile = path__default.default.join(
|
|
102
68
|
outputDir,
|
|
103
69
|
`${pascalCaseEntityName}Client.ts`
|
|
104
70
|
);
|
|
105
|
-
const relativePath =
|
|
71
|
+
const relativePath = path__default.default.relative(context.outputDir, outputClientFile);
|
|
106
72
|
context.writeFile(relativePath, content);
|
|
107
73
|
}
|
|
108
74
|
static writeRequestCommands(templateFilePath, operationResources, context) {
|
|
@@ -121,7 +87,7 @@ var ClientGenerator = class {
|
|
|
121
87
|
outputRequestFileName
|
|
122
88
|
} = operationResource;
|
|
123
89
|
const { operationId, method, request, responses } = definition;
|
|
124
|
-
const pascalCaseOperationId =
|
|
90
|
+
const pascalCaseOperationId = Case__default.default.pascal(operationId);
|
|
125
91
|
const allResponses = responses;
|
|
126
92
|
const ownSuccessResponses = allResponses.filter(
|
|
127
93
|
(r) => r.statusCode >= 200 && r.statusCode < 300 && !r.isReference
|
|
@@ -135,24 +101,24 @@ var ClientGenerator = class {
|
|
|
135
101
|
const sharedErrorResponses = allResponses.filter(
|
|
136
102
|
(r) => (r.statusCode < 200 || r.statusCode >= 300) && r.isReference
|
|
137
103
|
);
|
|
138
|
-
const headerTsType = request.header ?
|
|
139
|
-
const paramTsType = request.param ?
|
|
140
|
-
const queryTsType = request.query ?
|
|
141
|
-
const bodyTsType = request.body ?
|
|
104
|
+
const headerTsType = request.header ? typeweaverZodToTs.TsTypePrinter.print(typeweaverZodToTs.TsTypeNode.fromZod(request.header)) : void 0;
|
|
105
|
+
const paramTsType = request.param ? typeweaverZodToTs.TsTypePrinter.print(typeweaverZodToTs.TsTypeNode.fromZod(request.param)) : void 0;
|
|
106
|
+
const queryTsType = request.query ? typeweaverZodToTs.TsTypePrinter.print(typeweaverZodToTs.TsTypeNode.fromZod(request.query)) : void 0;
|
|
107
|
+
const bodyTsType = request.body ? typeweaverZodToTs.TsTypePrinter.print(typeweaverZodToTs.TsTypeNode.fromZod(request.body)) : void 0;
|
|
142
108
|
const successResponseImportPath = (response) => {
|
|
143
109
|
if (response.isReference && response.path) {
|
|
144
110
|
return response.path;
|
|
145
111
|
}
|
|
146
|
-
return `./${
|
|
112
|
+
return `./${path__default.default.basename(outputResponseFileName, ".ts")}`;
|
|
147
113
|
};
|
|
148
|
-
const requestFile = `./${
|
|
149
|
-
const responseValidatorFile = `./${
|
|
150
|
-
const relativeSourceFile =
|
|
151
|
-
const sourcePath =
|
|
114
|
+
const requestFile = `./${path__default.default.basename(outputRequestFileName, ".ts")}`;
|
|
115
|
+
const responseValidatorFile = `./${path__default.default.basename(outputResponseValidationFileName, ".ts")}`;
|
|
116
|
+
const relativeSourceFile = path__default.default.relative(sourceDir, sourceFile);
|
|
117
|
+
const sourcePath = path__default.default.join(
|
|
152
118
|
sourceDir,
|
|
153
119
|
relativeSourceFile.replace(/\.ts$/, "")
|
|
154
120
|
);
|
|
155
|
-
const relativeSourcePath =
|
|
121
|
+
const relativeSourcePath = path__default.default.relative(outputDir, sourcePath);
|
|
156
122
|
const content = context.renderTemplate(templateFilePath, {
|
|
157
123
|
sourcePath: relativeSourcePath,
|
|
158
124
|
operationId,
|
|
@@ -170,22 +136,24 @@ var ClientGenerator = class {
|
|
|
170
136
|
responseValidatorFile,
|
|
171
137
|
successResponseImportPath
|
|
172
138
|
});
|
|
173
|
-
const outputCommandFile =
|
|
139
|
+
const outputCommandFile = path__default.default.join(
|
|
174
140
|
outputDir,
|
|
175
141
|
`${pascalCaseOperationId}RequestCommand.ts`
|
|
176
142
|
);
|
|
177
|
-
const relativePath =
|
|
143
|
+
const relativePath = path__default.default.relative(context.outputDir, outputCommandFile);
|
|
178
144
|
context.writeFile(relativePath, content);
|
|
179
145
|
}
|
|
180
146
|
};
|
|
181
147
|
|
|
182
148
|
// src/index.ts
|
|
183
|
-
var moduleDir2 =
|
|
184
|
-
var ClientsPlugin = class extends
|
|
149
|
+
var moduleDir2 = path__default.default.dirname(node_url.fileURLToPath(importMetaUrl));
|
|
150
|
+
var ClientsPlugin = class extends typeweaverGen.BasePlugin {
|
|
185
151
|
name = "clients";
|
|
186
152
|
generate(context) {
|
|
187
|
-
const libDir =
|
|
153
|
+
const libDir = path__default.default.join(moduleDir2, "lib");
|
|
188
154
|
this.copyLibFiles(context, libDir, "clients");
|
|
189
155
|
ClientGenerator.generate(context);
|
|
190
156
|
}
|
|
191
157
|
};
|
|
158
|
+
|
|
159
|
+
module.exports = ClientsPlugin;
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { BasePlugin } from '@rexeus/typeweaver-gen';
|
|
4
|
+
import { TsTypePrinter, TsTypeNode } from '@rexeus/typeweaver-zod-to-ts';
|
|
5
|
+
import Case from 'case';
|
|
5
6
|
|
|
6
|
-
// src/
|
|
7
|
-
import path from "node:path";
|
|
8
|
-
import { fileURLToPath } from "node:url";
|
|
9
|
-
import { TsTypeNode, TsTypePrinter } from "@rexeus/typeweaver-zod-to-ts";
|
|
10
|
-
import Case from "case";
|
|
7
|
+
// src/index.ts
|
|
11
8
|
var moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
12
9
|
var ClientGenerator = class {
|
|
13
10
|
static generate(context) {
|
|
@@ -140,15 +137,14 @@ var ClientGenerator = class {
|
|
|
140
137
|
};
|
|
141
138
|
|
|
142
139
|
// src/index.ts
|
|
143
|
-
var moduleDir2 =
|
|
140
|
+
var moduleDir2 = path.dirname(fileURLToPath(import.meta.url));
|
|
144
141
|
var ClientsPlugin = class extends BasePlugin {
|
|
145
142
|
name = "clients";
|
|
146
143
|
generate(context) {
|
|
147
|
-
const libDir =
|
|
144
|
+
const libDir = path.join(moduleDir2, "lib");
|
|
148
145
|
this.copyLibFiles(context, libDir, "clients");
|
|
149
146
|
ClientGenerator.generate(context);
|
|
150
147
|
}
|
|
151
148
|
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
};
|
|
149
|
+
|
|
150
|
+
export { ClientsPlugin as default };
|
package/dist/lib/ApiClient.ts
CHANGED
|
@@ -70,6 +70,7 @@ export abstract class ApiClient {
|
|
|
70
70
|
"Base URL must be provided either in axios instance or in constructor"
|
|
71
71
|
);
|
|
72
72
|
}
|
|
73
|
+
this.axiosInstance.defaults.baseURL = undefined;
|
|
73
74
|
|
|
74
75
|
this.unknownResponseHandling = props.unknownResponseHandling ?? "throw";
|
|
75
76
|
this.isSuccessStatusCode =
|
|
@@ -169,7 +170,7 @@ export abstract class ApiClient {
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
return Object.entries(param).reduce((acc, [key, value]) => {
|
|
172
|
-
const result = acc.replace(`:${key}`, value);
|
|
173
|
+
const result = acc.replace(`:${key}`, encodeURIComponent(value));
|
|
173
174
|
|
|
174
175
|
if (result === acc) {
|
|
175
176
|
throw new Error(
|
|
@@ -181,31 +182,36 @@ export abstract class ApiClient {
|
|
|
181
182
|
}, path);
|
|
182
183
|
}
|
|
183
184
|
|
|
184
|
-
private
|
|
185
|
+
private createUrl(path: string, query?: IHttpQuery): string {
|
|
186
|
+
const base = this.baseUrl.replace(/\/+$/, "");
|
|
187
|
+
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
188
|
+
const queryString = this.buildQueryString(query);
|
|
189
|
+
return queryString
|
|
190
|
+
? `${base}${normalizedPath}?${queryString}`
|
|
191
|
+
: `${base}${normalizedPath}`;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
private buildQueryString(query?: IHttpQuery): string {
|
|
185
195
|
if (!query) {
|
|
186
|
-
return;
|
|
196
|
+
return "";
|
|
187
197
|
}
|
|
188
198
|
|
|
189
|
-
const
|
|
199
|
+
const params = new URLSearchParams();
|
|
190
200
|
for (const [key, value] of Object.entries(query)) {
|
|
191
201
|
if (value === undefined) {
|
|
192
202
|
continue;
|
|
193
203
|
}
|
|
194
204
|
if (!Array.isArray(value)) {
|
|
195
|
-
|
|
205
|
+
params.append(key, value);
|
|
196
206
|
continue;
|
|
197
207
|
}
|
|
198
|
-
|
|
199
208
|
for (const item of value) {
|
|
200
|
-
|
|
209
|
+
if (item !== undefined) {
|
|
210
|
+
params.append(key, item);
|
|
211
|
+
}
|
|
201
212
|
}
|
|
202
213
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
private createUrl(path: string, query?: IHttpQuery): string {
|
|
206
|
-
const url = new URL(path, this.baseUrl);
|
|
207
|
-
this.addQuery(url, query);
|
|
208
|
-
return url.toString();
|
|
214
|
+
return params.toString();
|
|
209
215
|
}
|
|
210
216
|
|
|
211
217
|
private createHeader(header: any): any {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js":{"bytes":569,"imports":[],"format":"esm"},"src/ClientGenerator.ts":{"bytes":5968,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-zod-to-ts","kind":"import-statement","external":true},{"path":"case","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":669,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-gen","kind":"import-statement","external":true},{"path":"src/ClientGenerator.ts","kind":"import-statement","original":"./ClientGenerator"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.cjs":{"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-gen","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-zod-to-ts","kind":"import-statement","external":true},{"path":"case","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/index.ts","inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js":{"bytesInOutput":314},"src/index.ts":{"bytesInOutput":443},"src/ClientGenerator.ts":{"bytesInOutput":5138}},"bytes":6125}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js":{"bytes":322,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true}],"format":"esm"},"src/ClientGenerator.ts":{"bytes":5968,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-zod-to-ts","kind":"import-statement","external":true},{"path":"case","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":669,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-gen","kind":"import-statement","external":true},{"path":"src/ClientGenerator.ts","kind":"import-statement","original":"./ClientGenerator"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js":{"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-gen","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true},{"path":"@rexeus/typeweaver-zod-to-ts","kind":"import-statement","external":true},{"path":"case","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":445},"src/ClientGenerator.ts":{"bytesInOutput":5140}},"bytes":5684}}}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rexeus/typeweaver-clients",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Generates HTTP clients directly from your API definitions. Powered by Typeweaver 🧵✨",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
6
7
|
"main": "dist/index.cjs",
|
|
7
8
|
"module": "dist/index.js",
|
|
8
9
|
"types": "dist/index.d.ts",
|
|
@@ -46,20 +47,22 @@
|
|
|
46
47
|
},
|
|
47
48
|
"homepage": "https://github.com/rexeus/typeweaver#readme",
|
|
48
49
|
"peerDependencies": {
|
|
49
|
-
"axios": "^1.13.
|
|
50
|
-
"
|
|
51
|
-
"@rexeus/typeweaver-
|
|
50
|
+
"axios": "^1.13.0",
|
|
51
|
+
"zod": "^4.3.0",
|
|
52
|
+
"@rexeus/typeweaver-core": "^0.4.1",
|
|
53
|
+
"@rexeus/typeweaver-gen": "^0.4.1"
|
|
52
54
|
},
|
|
53
55
|
"devDependencies": {
|
|
54
56
|
"@hono/node-server": "^1.19.7",
|
|
55
57
|
"axios": "^1.13.2",
|
|
56
58
|
"test-utils": "file:../test-utils",
|
|
57
|
-
"
|
|
58
|
-
"@rexeus/typeweaver-core": "^0.
|
|
59
|
+
"zod": "^4.3.6",
|
|
60
|
+
"@rexeus/typeweaver-core": "^0.4.1",
|
|
61
|
+
"@rexeus/typeweaver-gen": "^0.4.1"
|
|
59
62
|
},
|
|
60
63
|
"dependencies": {
|
|
61
64
|
"case": "^1.6.3",
|
|
62
|
-
"@rexeus/typeweaver-zod-to-ts": "^0.
|
|
65
|
+
"@rexeus/typeweaver-zod-to-ts": "^0.4.1"
|
|
63
66
|
},
|
|
64
67
|
"scripts": {
|
|
65
68
|
"typecheck": "tsc --noEmit",
|