@qualisero/openapi-endpoint 0.11.0 → 0.12.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/README.md +5 -7
- package/dist/cli.js +152 -1
- package/dist/openapi-mutation.d.ts.map +1 -1
- package/dist/openapi-mutation.js +26 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# OpenApiEndpoint
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint)
|
|
4
4
|
[](https://github.com/qualisero/openapi-endpoint/actions/workflows/ci.yml)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://bundlephobia.com/package/@qualisero/openapi-endpoint)
|
|
@@ -39,7 +39,7 @@ npx @qualisero/openapi-endpoint https://api.example.com/openapi.json ./src/api
|
|
|
39
39
|
This will generate two files in your specified output directory:
|
|
40
40
|
|
|
41
41
|
- `openapi-types.ts` - TypeScript type definitions for your API
|
|
42
|
-
- `api-operations.ts` -
|
|
42
|
+
- `api-operations.ts` - Operation definitions combining metadata and types
|
|
43
43
|
|
|
44
44
|
## Usage
|
|
45
45
|
|
|
@@ -50,7 +50,7 @@ This will generate two files in your specified output directory:
|
|
|
50
50
|
import { useOpenApi } from '@qualisero/openapi-endpoint'
|
|
51
51
|
import axios from 'axios'
|
|
52
52
|
|
|
53
|
-
// Import your generated operations (includes both metadata and types)
|
|
53
|
+
// Import your auto-generated operations (includes both metadata and types)
|
|
54
54
|
import { OperationId, openApiOperations, type OpenApiOperations } from './generated/api-operations'
|
|
55
55
|
|
|
56
56
|
// Create axios instance
|
|
@@ -58,7 +58,7 @@ const axiosInstance = axios.create({
|
|
|
58
58
|
baseURL: 'https://api.example.com',
|
|
59
59
|
})
|
|
60
60
|
|
|
61
|
-
// Initialize the package with the
|
|
61
|
+
// Initialize the package with the auto-generated operations
|
|
62
62
|
const api = useOpenApi<OpenApiOperations>({
|
|
63
63
|
operations: openApiOperations,
|
|
64
64
|
axios: axiosInstance,
|
|
@@ -139,8 +139,6 @@ const userPetsQuery = api.useQuery(
|
|
|
139
139
|
- **Automatic refetch**: Changes to query params trigger automatic refetch via TanStack Query's key mechanism
|
|
140
140
|
- **Backward compatible**: Works alongside existing `axiosOptions.params`
|
|
141
141
|
|
|
142
|
-
For detailed examples, see [Reactive Query Parameters Guide](./REACTIVE_QUERY_PARAMS.md).
|
|
143
|
-
|
|
144
142
|
### Automatic Operation Type Detection with `api.useEndpoint`
|
|
145
143
|
|
|
146
144
|
The `api.useEndpoint` method automatically detects whether an operation is a query (GET/HEAD/OPTIONS) or mutation (POST/PUT/PATCH/DELETE) based on the HTTP method defined in your OpenAPI specification:
|
package/dist/cli.js
CHANGED
|
@@ -53,6 +53,153 @@ async function generateTypes(openapiContent, outputDir) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Converts a snake_case string to PascalCase.
|
|
58
|
+
* Works with strings that have no underscores (just capitalizes them).
|
|
59
|
+
*
|
|
60
|
+
* @param str - The snake_case string (e.g., 'give_treats' or 'pets')
|
|
61
|
+
* @returns PascalCase string (e.g., 'GiveTreats' or 'Pets')
|
|
62
|
+
*/
|
|
63
|
+
function snakeToPascalCase(str) {
|
|
64
|
+
return str
|
|
65
|
+
.split('_')
|
|
66
|
+
.filter((part) => part.length > 0)
|
|
67
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
|
|
68
|
+
.join('');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generates an operationId based on the HTTP method and path.
|
|
72
|
+
* Uses heuristics to create meaningful operation names.
|
|
73
|
+
*
|
|
74
|
+
* @param pathUrl - The OpenAPI path (e.g., '/pets/{petId}')
|
|
75
|
+
* @param method - The HTTP method (e.g., 'get', 'post')
|
|
76
|
+
* @param prefixToStrip - Optional prefix to strip from path (e.g., '/api')
|
|
77
|
+
* @returns A generated operationId (e.g., 'getPet', 'listPets', 'createPet')
|
|
78
|
+
*/
|
|
79
|
+
function generateOperationId(pathUrl, method, prefixToStrip = '', existingIds) {
|
|
80
|
+
const methodLower = method.toLowerCase();
|
|
81
|
+
// Strip prefix if provided and path starts with it
|
|
82
|
+
let effectivePath = pathUrl;
|
|
83
|
+
if (prefixToStrip && pathUrl.startsWith(prefixToStrip)) {
|
|
84
|
+
effectivePath = pathUrl.substring(prefixToStrip.length);
|
|
85
|
+
}
|
|
86
|
+
// Remove leading/trailing slashes, replace slashes and periods with underscores
|
|
87
|
+
// Filter out path parameters (e.g., {petId})
|
|
88
|
+
// split by '/' or '.'
|
|
89
|
+
const pathSegments = effectivePath.split(/[/.]/);
|
|
90
|
+
const isParam = (segment) => segment.startsWith('{') && segment.endsWith('}');
|
|
91
|
+
const entityName = snakeToPascalCase(pathSegments
|
|
92
|
+
.filter((s) => !isParam(s))
|
|
93
|
+
.join('_')
|
|
94
|
+
.replace(/[^a-zA-Z0-9]/g, '_'));
|
|
95
|
+
// A collection is when there is a trailing slash
|
|
96
|
+
const isCollection = pathUrl.endsWith('/');
|
|
97
|
+
// Determine prefix based on method and whether it's a collection or single resource
|
|
98
|
+
let prefix = '';
|
|
99
|
+
switch (methodLower) {
|
|
100
|
+
case 'get':
|
|
101
|
+
// GET on file extension -> get, GET on collection -> list, GET on resource -> get
|
|
102
|
+
prefix = isCollection ? 'list' : 'get';
|
|
103
|
+
break;
|
|
104
|
+
case 'post':
|
|
105
|
+
prefix = isCollection ? 'create' : 'post';
|
|
106
|
+
break;
|
|
107
|
+
case 'put':
|
|
108
|
+
case 'patch':
|
|
109
|
+
prefix = 'update';
|
|
110
|
+
break;
|
|
111
|
+
case 'delete':
|
|
112
|
+
prefix = 'delete';
|
|
113
|
+
break;
|
|
114
|
+
case 'head':
|
|
115
|
+
prefix = 'head';
|
|
116
|
+
break;
|
|
117
|
+
case 'options':
|
|
118
|
+
prefix = 'options';
|
|
119
|
+
break;
|
|
120
|
+
case 'trace':
|
|
121
|
+
prefix = 'trace';
|
|
122
|
+
break;
|
|
123
|
+
default:
|
|
124
|
+
prefix = methodLower;
|
|
125
|
+
}
|
|
126
|
+
// Combine prefix and entity name
|
|
127
|
+
let generatedId = prefix + entityName;
|
|
128
|
+
// Handle collisions by appending path segments
|
|
129
|
+
if (existingIds.has(generatedId)) {
|
|
130
|
+
console.log(`⚠️ Collision detected: '${generatedId}' already used`);
|
|
131
|
+
// add parameters from the last to the first until not colliding
|
|
132
|
+
const params = pathSegments
|
|
133
|
+
.filter(isParam)
|
|
134
|
+
.map((s) => snakeToPascalCase(s.replace(/[{}]/g, '').replace(/[.:-]/g, '_')));
|
|
135
|
+
while (params.length > 0) {
|
|
136
|
+
generatedId += params.pop();
|
|
137
|
+
if (!existingIds.has(generatedId)) {
|
|
138
|
+
console.log(` ➜ Resolved collision with: '${generatedId}'`);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (existingIds.has(generatedId)) {
|
|
143
|
+
// If still colliding, append a counter
|
|
144
|
+
let counter = 2;
|
|
145
|
+
let uniqueId = `${generatedId}${counter}`;
|
|
146
|
+
while (existingIds.has(uniqueId)) {
|
|
147
|
+
counter++;
|
|
148
|
+
uniqueId = `${generatedId}${counter}`;
|
|
149
|
+
}
|
|
150
|
+
generatedId = uniqueId;
|
|
151
|
+
console.log(` ➜ Resolved collision with counter: '${generatedId}'`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return generatedId;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Adds operationId to operations that don't have one.
|
|
158
|
+
* Modifies the OpenAPI spec in place.
|
|
159
|
+
* Handles collisions by appending disambiguating segments.
|
|
160
|
+
*
|
|
161
|
+
* @param openApiSpec - The OpenAPI specification object
|
|
162
|
+
* @param prefixToStrip - Optional prefix to strip from paths (defaults to '/api')
|
|
163
|
+
*/
|
|
164
|
+
function addMissingOperationIds(openApiSpec, prefixToStrip = '/api') {
|
|
165
|
+
if (!openApiSpec.paths) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
// Log the prefix that will be stripped
|
|
169
|
+
if (prefixToStrip) {
|
|
170
|
+
console.log(`🔍 Path prefix '${prefixToStrip}' will be stripped from operation IDs`);
|
|
171
|
+
}
|
|
172
|
+
// Track used operationIds to detect collisions
|
|
173
|
+
const usedOperationIds = new Set();
|
|
174
|
+
// First pass: collect existing operationIds
|
|
175
|
+
Object.entries(openApiSpec.paths).forEach(([_, pathItem]) => {
|
|
176
|
+
Object.entries(pathItem).forEach(([method, op]) => {
|
|
177
|
+
const httpMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head', 'trace'];
|
|
178
|
+
if (!httpMethods.includes(method.toLowerCase())) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (op.operationId) {
|
|
182
|
+
usedOperationIds.add(op.operationId);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
// Second pass: generate operationIds for missing ones
|
|
187
|
+
Object.entries(openApiSpec.paths).forEach(([pathUrl, pathItem]) => {
|
|
188
|
+
Object.entries(pathItem).forEach(([method, op]) => {
|
|
189
|
+
const httpMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head', 'trace'];
|
|
190
|
+
if (!httpMethods.includes(method.toLowerCase())) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (!op.operationId) {
|
|
194
|
+
// Generate operationId with prefix stripped
|
|
195
|
+
let generatedId = generateOperationId(pathUrl, method, prefixToStrip, usedOperationIds);
|
|
196
|
+
op.operationId = generatedId;
|
|
197
|
+
usedOperationIds.add(generatedId);
|
|
198
|
+
console.log(`🏷️ Generated operationId '${generatedId}' for ${method.toUpperCase()} ${pathUrl}`);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
}
|
|
56
203
|
function parseOperationsFromSpec(openapiContent) {
|
|
57
204
|
const openApiSpec = JSON.parse(openapiContent);
|
|
58
205
|
if (!openApiSpec.paths) {
|
|
@@ -174,7 +321,11 @@ async function main() {
|
|
|
174
321
|
console.log(`📁 Created output directory: ${outputDir}`);
|
|
175
322
|
}
|
|
176
323
|
// Fetch OpenAPI spec content
|
|
177
|
-
|
|
324
|
+
let openapiContent = await fetchOpenAPISpec(openapiInput);
|
|
325
|
+
// Parse spec and add missing operationIds
|
|
326
|
+
const openApiSpec = JSON.parse(openapiContent);
|
|
327
|
+
addMissingOperationIds(openApiSpec);
|
|
328
|
+
openapiContent = JSON.stringify(openApiSpec, null, 2);
|
|
178
329
|
// Generate both files
|
|
179
330
|
await Promise.all([generateTypes(openapiContent, outputDir), generateApiOperations(openapiContent, outputDir)]);
|
|
180
331
|
console.log('🎉 Code generation completed successfully!');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-mutation.d.ts","sourceRoot":"","sources":["../src/openapi-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAG/F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAErB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAChG,OAAO,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EACnF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;AACtC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,EACjH,aAAa,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi-mutation.d.ts","sourceRoot":"","sources":["../src/openapi-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAG/F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAErB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAChG,OAAO,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EACnF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;AACtC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,EACjH,aAAa,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;UA2LhB,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAK1F"}
|
package/dist/openapi-mutation.js
CHANGED
|
@@ -103,7 +103,32 @@ pathParamsOrOptions, optionsOrNull) {
|
|
|
103
103
|
const listResolvedPath = resolvePath(listPath, pathParams);
|
|
104
104
|
if (isPathResolved(listResolvedPath)) {
|
|
105
105
|
const listQueryKey = generateQueryKey(listResolvedPath);
|
|
106
|
-
|
|
106
|
+
// Invalidate list queries by comparing normalized query keys.
|
|
107
|
+
// For queries with query parameters (objects), strip the last element before comparing.
|
|
108
|
+
// This matches:
|
|
109
|
+
// - List queries without params: ["api", "user"]
|
|
110
|
+
// - List queries with params: ["api", "user", {filter}] → normalized to ["api", "user"]
|
|
111
|
+
// But NOT single-item queries where last element is a primitive:
|
|
112
|
+
// - Single-item: ["api", "user", "uuid"] → kept as ["api", "user", "uuid"]
|
|
113
|
+
await h.queryClient.invalidateQueries({
|
|
114
|
+
predicate: (query) => {
|
|
115
|
+
const qKey = query.queryKey;
|
|
116
|
+
if (!qKey || qKey.length === 0)
|
|
117
|
+
return false;
|
|
118
|
+
// Normalize query key: strip last element if it's an object (query params)
|
|
119
|
+
const normalizedKey = typeof qKey[qKey.length - 1] === 'object' && qKey[qKey.length - 1] !== null
|
|
120
|
+
? qKey.slice(0, -1)
|
|
121
|
+
: qKey;
|
|
122
|
+
// Compare with listQueryKey
|
|
123
|
+
if (normalizedKey.length !== listQueryKey.length)
|
|
124
|
+
return false;
|
|
125
|
+
for (let i = 0; i < listQueryKey.length; i++) {
|
|
126
|
+
if (normalizedKey[i] !== listQueryKey[i])
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
},
|
|
131
|
+
});
|
|
107
132
|
}
|
|
108
133
|
}
|
|
109
134
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -39,10 +39,15 @@ export interface QueryClientLike {
|
|
|
39
39
|
/**
|
|
40
40
|
* Invalidate queries that match the provided filters.
|
|
41
41
|
* Used to trigger refetches of related data after mutations.
|
|
42
|
+
*
|
|
43
|
+
* @param filters - Filters can include queryKey, exact, and/or a predicate function
|
|
42
44
|
*/
|
|
43
45
|
invalidateQueries(filters: {
|
|
44
|
-
queryKey
|
|
46
|
+
queryKey?: unknown[];
|
|
45
47
|
exact?: boolean;
|
|
48
|
+
predicate?: (query: {
|
|
49
|
+
queryKey: readonly unknown[];
|
|
50
|
+
}) => boolean;
|
|
46
51
|
}): Promise<void>;
|
|
47
52
|
}
|
|
48
53
|
export type Operations<Ops> = object & {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AACxG,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAErF,gBAAgB;AAChB,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/E;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAEtD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qualisero/openapi-endpoint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/qualisero/openapi-endpoint.git"
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@tanstack/vue-query": ">=5.90",
|
|
59
59
|
"axios": ">=1.12",
|
|
60
|
-
"vue": ">=3.3"
|
|
60
|
+
"vue": ">=3.3",
|
|
61
|
+
"openapi-typescript": "^7.9.1"
|
|
61
62
|
},
|
|
62
63
|
"devDependencies": {
|
|
63
64
|
"@eslint/js": "^9.37.0",
|
|
@@ -72,7 +73,6 @@
|
|
|
72
73
|
"gh-pages": "^6.3.0",
|
|
73
74
|
"globals": "^16.4.0",
|
|
74
75
|
"jsdom": "^27.0.0",
|
|
75
|
-
"openapi-typescript": "^7.9.1",
|
|
76
76
|
"prettier": "^3.6.2",
|
|
77
77
|
"typedoc": "^0.28.14",
|
|
78
78
|
"typescript": "^5.9.2",
|