@qualisero/openapi-endpoint 0.5.0 → 0.6.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 CHANGED
@@ -5,7 +5,18 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
  [![npm bundle size](https://img.shields.io/bundlephobia/minzip/@qualisero/openapi-endpoint)](https://bundlephobia.com/package/@qualisero/openapi-endpoint)
7
7
 
8
- Type-safe OpenAPI integration for Vue Query (TanStack Query).
8
+ Turns your `openapi.json` into typesafe API composables using Vue Query (TanStack Query): guaranteeing that your frontend and backend share the same contract.
9
+
10
+ ## Overview
11
+
12
+ Let's you get TanStack Vue Query composables that enforce consistency (name of endpoints, typing) with your API's `openapi.json` file:
13
+
14
+ ```typescript
15
+ const { data, isLoading } = api.useQuery(OperationId.getPet, { petId: '123' })
16
+
17
+ const createPetMutation = api.useMutation(OperationId.createPet)
18
+ createPetMutation.mutate({ data: { name: 'Fluffy', species: 'cat' } })
19
+ ```
9
20
 
10
21
  ## Installation
11
22
 
@@ -75,3 +86,114 @@ await createPetMutation.mutateAsync({
75
86
  data: { name: 'Fluffy', species: 'cat' },
76
87
  })
77
88
  ```
89
+
90
+ ## Advanced Usage
91
+
92
+ ### Automatic Operation Type Detection with `api.useEndpoint`
93
+
94
+ 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:
95
+
96
+ ```typescript
97
+ import { ref, computed } from 'vue'
98
+ import { api, OperationId } from './api/init'
99
+
100
+ // Automatically becomes a query for GET operations
101
+ const listEndpoint = api.useEndpoint(OperationId.listPets)
102
+ // TypeScript knows this has query properties like .data, .isLoading, .refetch()
103
+
104
+ // Automatically becomes a mutation for POST operations
105
+ const createEndpoint = api.useEndpoint(OperationId.createPet)
106
+ // TypeScript knows this has mutation properties like .mutate(), .mutateAsync()
107
+
108
+ // Use the endpoints according to their detected type
109
+ const petData = listEndpoint.data // Query data
110
+ await createEndpoint.mutateAsync({ data: { name: 'Fluffy' } }) // Mutation execution
111
+ ```
112
+
113
+ ### Automatic Cache Management and Refetching
114
+
115
+ By default, mutations automatically:
116
+
117
+ 1. Update cache for matching queries with returned data
118
+ 2. Invalidate them to trigger a reload
119
+ 3. Invalidate matching list endpoints
120
+
121
+ ```typescript
122
+ // Default behavior: automatic cache management
123
+ const createPet = api.useMutation(OperationId.createPet)
124
+ // No additional configuration needed - cache management is automatic
125
+
126
+ // Manual control over cache invalidation
127
+ const updatePet = api.useMutation(OperationId.updatePet, {
128
+ dontInvalidate: true, // Disable automatic invalidation
129
+ dontUpdateCache: true, // Disable automatic cache updates
130
+ invalidateOperations: [OperationId.listPets], // Manually specify operations to invalidate
131
+ })
132
+
133
+ // Refetch specific endpoints after mutation
134
+ const petListQuery = api.useQuery(OperationId.listPets)
135
+ const createPetWithRefetch = api.useMutation(OperationId.createPet, {
136
+ refetchEndpoints: [petListQuery], // Manually refetch these endpoints
137
+ })
138
+ ```
139
+
140
+ ### Reactive Enabling/Disabling Based on Path Parameters
141
+
142
+ One powerful feature is chaining queries where one query provides the parameters for another:
143
+
144
+ ```typescript
145
+ import { ref, computed } from 'vue'
146
+
147
+ // First query to get user information
148
+ const userQuery = api.useQuery(OperationId.getUser, { userId: 123 })
149
+
150
+ // Second query that depends on the first query's result
151
+ const userPetsQuery = api.useQuery(
152
+ OperationId.listUserPets,
153
+ computed(() => ({
154
+ userId: userQuery.data.value?.id, // Chain: use ID from first query
155
+ })),
156
+ )
157
+
158
+ // Reactive parameter example
159
+ const selectedPetId = ref<string | undefined>(undefined)
160
+
161
+ // Query automatically enables/disables based on parameter availability
162
+ const petQuery = api.useQuery(
163
+ OperationId.getPet,
164
+ computed(() => ({ petId: selectedPetId.value })),
165
+ )
166
+
167
+ // Query is automatically disabled when petId is null/undefined
168
+ console.log(petQuery.isEnabled.value) // false when selectedPetId.value is null
169
+
170
+ // Enable the query by setting the parameter
171
+ selectedPetId.value = '123'
172
+ console.log(petQuery.isEnabled.value) // true when selectedPetId.value is set
173
+
174
+ // Complex conditional enabling
175
+ const userId = ref<string>('user1')
176
+ const shouldFetchPets = ref(true)
177
+
178
+ const userPetsQuery = api.useQuery(
179
+ OperationId.listUserPets,
180
+ computed(() => ({ userId: userId.value })),
181
+ {
182
+ enabled: computed(
183
+ () => shouldFetchPets.value, // Additional business logic
184
+ ),
185
+ },
186
+ )
187
+ ```
188
+
189
+ ## API Documentation
190
+
191
+ Full API documentation is available at [https://qualisero.github.io/openapi-endpoint/](https://qualisero.github.io/openapi-endpoint/). The documentation includes detailed information about all methods, types, and configuration options.
192
+
193
+ ## Contributing
194
+
195
+ Contributions are welcome! Please read our contributing guidelines and ensure all tests pass.
196
+
197
+ ## License
198
+
199
+ MIT
package/dist/index.d.ts CHANGED
@@ -3,8 +3,10 @@ import { QueryClient } from '@tanstack/vue-query';
3
3
  import { EndpointQueryReturn } from './openapi-query';
4
4
  import { EndpointMutationReturn } from './openapi-mutation';
5
5
  import { Operations, GetPathParameters, OpenApiConfig, QQueryOptions, QMutationOptions, IsQueryOperation } from './types';
6
- export type { OperationInfo, QQueryOptions, OpenApiConfig, OpenApiInstance } from './types';
6
+ export type { OpenApiConfig, OpenApiInstance } from './types';
7
+ /** @internal */
7
8
  export { type EndpointQueryReturn, useEndpointQuery } from './openapi-query';
9
+ /** @internal */
8
10
  export { type EndpointMutationReturn, useEndpointMutation } from './openapi-mutation';
9
11
  /**
10
12
  * Default QueryClient instance with pre-configured options.
@@ -21,11 +23,12 @@ export declare const queryClient: QueryClient;
21
23
  *
22
24
  * @template Ops - The operations type, typically generated from your OpenAPI spec
23
25
  * @param config - Configuration object containing operations metadata and axios instance
24
- * @returns API instance with useQuery, useMutation, useEndpoint, and debug methods
26
+ * @returns {OpenApiInstance<Ops>} API instance with useQuery, useMutation, useEndpoint, and debug methods
25
27
  *
26
28
  * @example
27
29
  * ```typescript
28
30
  * import { useOpenApi } from '@qualisero/openapi-endpoint'
31
+ * // See documentation on how to generate types and operations automatically:
29
32
  * import { openApiOperations, type OpenApiOperations } from './generated/api-operations'
30
33
  * import axios from 'axios'
31
34
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,9 @@ import { useEndpoint } from './openapi-endpoint';
3
3
  import { useEndpointQuery } from './openapi-query';
4
4
  import { useEndpointMutation } from './openapi-mutation';
5
5
  import { getHelpers } from './openapi-helpers';
6
+ /** @internal */
6
7
  export { useEndpointQuery } from './openapi-query';
8
+ /** @internal */
7
9
  export { useEndpointMutation } from './openapi-mutation';
8
10
  /**
9
11
  * Default QueryClient instance with pre-configured options.
@@ -24,11 +26,12 @@ export const queryClient = new QueryClient({
24
26
  *
25
27
  * @template Ops - The operations type, typically generated from your OpenAPI spec
26
28
  * @param config - Configuration object containing operations metadata and axios instance
27
- * @returns API instance with useQuery, useMutation, useEndpoint, and debug methods
29
+ * @returns {OpenApiInstance<Ops>} API instance with useQuery, useMutation, useEndpoint, and debug methods
28
30
  *
29
31
  * @example
30
32
  * ```typescript
31
33
  * import { useOpenApi } from '@qualisero/openapi-endpoint'
34
+ * // See documentation on how to generate types and operations automatically:
32
35
  * import { openApiOperations, type OpenApiOperations } from './generated/api-operations'
33
36
  * import axios from 'axios'
34
37
  *
@@ -86,16 +86,16 @@ pathParamsOrOptions, optionsOrNull) {
86
86
  },
87
87
  onSuccess: async (data, vars, _context) => {
88
88
  const { dontInvalidate: dontInvalidateMutate, dontUpdateCache: dontUpdateCacheMutate, invalidateOperations: invalidateOperationsMutate, refetchEndpoints: refetchEndpointsMutate, } = vars || {};
89
- // Optimistically update cache with returned data for PUT/PATCH requests
89
+ // update cache with returned data for PUT/PATCH requests
90
90
  if (
91
91
  // dontUpdateCacheMutate supersedes dontUpdateCache from options
92
- (dontInvalidateMutate !== undefined ? !dontInvalidateMutate : !dontInvalidate) &&
92
+ (dontUpdateCacheMutate !== undefined ? !dontUpdateCacheMutate : !dontUpdateCache) &&
93
93
  data &&
94
94
  [HttpMethod.PUT, HttpMethod.PATCH].includes(method)) {
95
95
  await h.queryClient.setQueryData(queryKey.value, data);
96
96
  }
97
97
  // Invalidate queries for this path, and any additional specified operations
98
- if (dontUpdateCacheMutate !== undefined ? !dontUpdateCacheMutate : !dontUpdateCache) {
98
+ if (dontInvalidateMutate !== undefined ? !dontInvalidateMutate : !dontInvalidate) {
99
99
  // Invalidate all queries for this path (exact for POST, prefix for others):
100
100
  await h.queryClient.invalidateQueries({ queryKey: queryKey.value, exact: method !== HttpMethod.POST });
101
101
  const listPath = h.getListOperationPath(operationId);
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ import { UseMutationOptions, type UseQueryOptions, QueryClient } from '@tanstack
3
3
  import type { MaybeRef, MaybeRefOrGetter } from 'vue';
4
4
  import type { EndpointQueryReturn } from './openapi-query';
5
5
  import type { EndpointMutationReturn } from './openapi-mutation';
6
+ /** @internal */
6
7
  export type { EndpointQueryReturn, EndpointMutationReturn };
7
8
  export type OperationId = string;
8
9
  export type Operations<Ops> = object & {
@@ -10,9 +11,46 @@ export type Operations<Ops> = object & {
10
11
  method: HttpMethod;
11
12
  };
12
13
  };
14
+ /**
15
+ * Configuration object for initializing the OpenAPI client.
16
+ *
17
+ * This interface defines the required configuration to set up a type-safe OpenAPI client
18
+ * with Vue Query integration. It requires both the operations metadata (typically generated
19
+ * from your OpenAPI specification) and an Axios instance for making HTTP requests.
20
+ *
21
+ * @template Ops - The operations type, typically generated from your OpenAPI specification
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * import { OpenApiConfig } from '@qualisero/openapi-endpoint'
26
+ * import { openApiOperations, type OpenApiOperations } from './generated/api-operations'
27
+ * import axios from 'axios'
28
+ *
29
+ * const config: OpenApiConfig<OpenApiOperations> = {
30
+ * operations: openApiOperations,
31
+ * axios: axios.create({
32
+ * baseURL: 'https://api.example.com',
33
+ * headers: { 'Authorization': 'Bearer token' }
34
+ * }),
35
+ * queryClient: customQueryClient // optional
36
+ * }
37
+ * ```
38
+ */
13
39
  export interface OpenApiConfig<Ops extends Operations<Ops>> {
40
+ /**
41
+ * The operations metadata object, typically generated from your OpenAPI specification.
42
+ * This contains type information and HTTP method details for each API endpoint.
43
+ */
14
44
  operations: Ops;
45
+ /**
46
+ * Axios instance for making HTTP requests.
47
+ * Configure this with your base URL, authentication, and any global request/response interceptors.
48
+ */
15
49
  axios: AxiosInstance;
50
+ /**
51
+ * Optional TanStack Query client instance.
52
+ * If not provided, a default QueryClient with sensible defaults will be used.
53
+ */
16
54
  queryClient?: QueryClient;
17
55
  }
18
56
  export declare enum HttpMethod {
@@ -25,6 +63,7 @@ export declare enum HttpMethod {
25
63
  OPTIONS = "OPTIONS",
26
64
  TRACE = "TRACE"
27
65
  }
66
+ /** @internal */
28
67
  export interface OperationInfo {
29
68
  path: string;
30
69
  method: HttpMethod;
@@ -40,6 +79,7 @@ export type GetResponseData<Ops extends Operations<Ops>, Op extends keyof Ops> =
40
79
  };
41
80
  } ? RequireReadonly<Data> : unknown;
42
81
  type OmitMaybeRef<T, K extends PropertyKey> = T extends MaybeRef<infer U> ? MaybeRef<Omit<U, K> & Partial<Pick<U, K & keyof U>>> : Omit<T, K> & Partial<Pick<T, K & keyof T>>;
82
+ /** @internal */
43
83
  export type QQueryOptions<Ops extends Operations<Ops>, Op extends keyof Ops> = OmitMaybeRef<UseQueryOptions<GetResponseData<Ops, Op>, Error, GetResponseData<Ops, Op>, GetResponseData<Ops, Op>>, 'queryKey' | 'queryFn' | 'enabled'> & {
44
84
  enabled?: MaybeRefOrGetter<boolean>;
45
85
  onLoad?: (data: GetResponseData<Ops, Op>) => void;
@@ -54,10 +94,12 @@ type MutationOnSuccessOptions<Ops extends Operations<Ops>> = {
54
94
  }>;
55
95
  refetchEndpoints?: EndpointQueryReturn<Ops, keyof Ops>[];
56
96
  };
97
+ /** @internal */
57
98
  export type QMutationVars<Ops extends Operations<Ops>, Op extends keyof Ops> = MutationOnSuccessOptions<Ops> & {
58
99
  data?: GetRequestBody<Ops, Op>;
59
100
  pathParams?: GetPathParameters<Ops, Op>;
60
101
  };
102
+ /** @internal */
61
103
  export type QMutationOptions<Ops extends Operations<Ops>, Op extends keyof Ops> = OmitMaybeRef<UseMutationOptions<GetResponseData<Ops, Op>, Error, GetRequestBody<Ops, Op> extends never ? QMutationVars<Ops, Op> | void : QMutationVars<Ops, Op>>, 'mutationFn' | 'mutationKey'> & MutationOnSuccessOptions<Ops> & {
62
104
  axiosOptions?: AxiosRequestConfig;
63
105
  errorHandler?: (error: AxiosError) => GetResponseData<Ops, Op> | void | Promise<GetResponseData<Ops, Op> | void>;
@@ -91,10 +133,133 @@ type RequireReadonly<T> = {
91
133
  export type IsQueryOperation<Ops extends Operations<Ops>, Op extends keyof Ops> = Ops[Op] extends {
92
134
  method: HttpMethod.GET | HttpMethod.HEAD | HttpMethod.OPTIONS;
93
135
  } ? true : false;
136
+ /**
137
+ * Type representing an instance of the OpenAPI client returned by useOpenApi.
138
+ *
139
+ * This interface defines all the methods available on the API client instance,
140
+ * providing type-safe access to queries, mutations, and generic endpoints based
141
+ * on your OpenAPI specification.
142
+ *
143
+ * @template Ops - The operations type from your OpenAPI specification
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * import { OpenApiInstance } from '@qualisero/openapi-endpoint'
148
+ * import { type OpenApiOperations } from './generated/api-operations'
149
+ *
150
+ * // Type your API instance for better IntelliSense
151
+ * const api: OpenApiInstance<OpenApiOperations> = useOpenApi(config)
152
+ *
153
+ * // All methods are now fully typed
154
+ * const query = api.useQuery('getPet', { petId: '123' })
155
+ * const mutation = api.useMutation('createPet')
156
+ * const endpoint = api.useEndpoint('listPets')
157
+ * ```
158
+ */
94
159
  export type OpenApiInstance<Ops extends Operations<Ops>> = {
160
+ /**
161
+ * Debug utility to inspect operation metadata at runtime.
162
+ *
163
+ * This method helps during development to understand how operations are classified
164
+ * and can be useful for debugging type inference issues.
165
+ *
166
+ * @param operationId - The operation ID to inspect
167
+ * @returns Boolean indicating whether the operation is a query (GET/HEAD/OPTIONS)
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * // Check if an operation is a query or mutation
172
+ * const isQuery = api._debugIsQueryOperation('getPet') // true for GET
173
+ * const isMutation = api._debugIsQueryOperation('createPet') // false for POST
174
+ * ```
175
+ */
95
176
  _debugIsQueryOperation: <Op extends keyof Ops>(operationId: Op) => IsQueryOperation<Ops, Op>;
177
+ /**
178
+ * Creates a reactive query for GET/HEAD/OPTIONS operations.
179
+ *
180
+ * This method creates a TanStack Query with automatic type inference, caching,
181
+ * and reactive updates. Only accepts operation IDs that correspond to query operations.
182
+ *
183
+ * @template Op - The operation key from your operations type
184
+ * @param operationId - Operation ID (must be a GET/HEAD/OPTIONS operation)
185
+ * @param pathParamsOrOptions - Path parameters (for parameterized routes) or query options
186
+ * @param optionsOrNull - Additional query options when path parameters are provided separately
187
+ * @returns Reactive query result with data, loading state, error handling, etc.
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * // Simple query without parameters
192
+ * const { data: pets, isLoading } = api.useQuery('listPets')
193
+ *
194
+ * // Query with path parameters
195
+ * const { data: pet } = api.useQuery('getPet', { petId: '123' })
196
+ *
197
+ * // Query with options
198
+ * const { data: pets } = api.useQuery('listPets', {
199
+ * enabled: computed(() => shouldLoad.value),
200
+ * onLoad: (data) => console.log('Loaded:', data)
201
+ * })
202
+ * ```
203
+ */
96
204
  useQuery: <Op extends keyof Ops>(operationId: IsQueryOperation<Ops, Op> extends true ? Op : never, pathParamsOrOptions?: GetPathParameters<Ops, Op> extends Record<string, never> ? QQueryOptions<Ops, Op> : MaybeRefOrGetter<GetPathParameters<Ops, Op> | null | undefined> | QQueryOptions<Ops, Op>, optionsOrNull?: QQueryOptions<Ops, Op>) => EndpointQueryReturn<Ops, Op>;
205
+ /**
206
+ * Creates a reactive mutation for POST/PUT/PATCH/DELETE operations.
207
+ *
208
+ * This method creates a TanStack Query mutation with automatic cache invalidation,
209
+ * optimistic updates, and type-safe request/response handling. Only accepts operation IDs
210
+ * that correspond to mutation operations.
211
+ *
212
+ * @template Op - The operation key from your operations type
213
+ * @param operationId - Operation ID (must be a POST/PUT/PATCH/DELETE operation)
214
+ * @param pathParamsOrOptions - Path parameters (for parameterized routes) or mutation options
215
+ * @param optionsOrNull - Additional mutation options when path parameters are provided separately
216
+ * @returns Reactive mutation result with mutate, mutateAsync, status, etc.
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * // Simple mutation without path parameters
221
+ * const createPet = api.useMutation('createPet', {
222
+ * onSuccess: (data) => console.log('Created:', data),
223
+ * onError: (error) => console.error('Failed:', error)
224
+ * })
225
+ *
226
+ * // Mutation with path parameters
227
+ * const updatePet = api.useMutation('updatePet', { petId: '123' })
228
+ *
229
+ * // Execute mutations
230
+ * await createPet.mutateAsync({ data: { name: 'Fluffy', species: 'cat' } })
231
+ * await updatePet.mutateAsync({ data: { name: 'Updated Name' } })
232
+ * ```
233
+ */
97
234
  useMutation: <Op extends keyof Ops>(operationId: IsQueryOperation<Ops, Op> extends false ? Op : never, pathParamsOrOptions?: GetPathParameters<Ops, Op> extends Record<string, never> ? QMutationOptions<Ops, Op> : MaybeRefOrGetter<GetPathParameters<Ops, Op> | null | undefined> | QMutationOptions<Ops, Op>, optionsOrNull?: QMutationOptions<Ops, Op>) => EndpointMutationReturn<Ops, Op>;
235
+ /**
236
+ * Generic endpoint composable that automatically detects operation type.
237
+ *
238
+ * This is a universal method that returns either a query or mutation based on the
239
+ * operation's HTTP method. It provides the same functionality as useQuery/useMutation
240
+ * but with automatic type detection, making it useful for generic or dynamic scenarios.
241
+ *
242
+ * @template Op - The operation key from your operations type
243
+ * @param operationId - Any valid operation ID from your API specification
244
+ * @param pathParamsOrOptions - Path parameters (for parameterized routes) or operation-specific options
245
+ * @param optionsOrNull - Additional options when path parameters are provided separately
246
+ * @returns Query result for GET/HEAD/OPTIONS operations, mutation result for others
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * // Automatically becomes a query for GET operations
251
+ * const listEndpoint = api.useEndpoint('listPets')
252
+ * // TypeScript infers this has query properties: .data, .isLoading, .refetch(), etc.
253
+ *
254
+ * // Automatically becomes a mutation for POST operations
255
+ * const createEndpoint = api.useEndpoint('createPet')
256
+ * // TypeScript infers this has mutation properties: .mutate(), .mutateAsync(), etc.
257
+ *
258
+ * // Use based on the detected type
259
+ * const petData = listEndpoint.data // Query data
260
+ * await createEndpoint.mutateAsync({ data: { name: 'Fluffy' } }) // Mutation execution
261
+ * ```
262
+ */
98
263
  useEndpoint: <Op extends keyof Ops>(operationId: Op, pathParamsOrOptions?: GetPathParameters<Ops, Op> extends Record<string, never> ? IsQueryOperation<Ops, Op> extends true ? QQueryOptions<Ops, Op> : QMutationOptions<Ops, Op> : MaybeRefOrGetter<GetPathParameters<Ops, Op> | null | undefined> | (IsQueryOperation<Ops, Op> extends true ? QQueryOptions<Ops, Op> : QMutationOptions<Ops, Op>), optionsOrNull?: IsQueryOperation<Ops, Op> extends true ? QQueryOptions<Ops, Op> : QMutationOptions<Ops, Op>) => IsQueryOperation<Ops, Op> extends true ? EndpointQueryReturn<Ops, Op> : EndpointMutationReturn<Ops, Op>;
99
264
  };
100
265
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.5.0",
3
+ "version": "0.6.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/qualisero/openapi-endpoint.git"
@@ -37,6 +37,8 @@
37
37
  "lint:fix": "eslint . --fix",
38
38
  "format": "prettier --write .",
39
39
  "format:check": "prettier --check .",
40
+ "docs": "typedoc",
41
+ "docs:publish": "npm run docs && gh-pages -d docs",
40
42
  "prepublishOnly": "npm run build && npm run check"
41
43
  },
42
44
  "keywords": [
@@ -53,9 +55,9 @@
53
55
  "provenance": true
54
56
  },
55
57
  "peerDependencies": {
56
- "@tanstack/vue-query": "^5.90.2",
57
- "axios": "^1.12.2",
58
- "vue": "^3.5.22"
58
+ "@tanstack/vue-query": ">=5.90",
59
+ "axios": ">=1.12",
60
+ "vue": ">=3.3"
59
61
  },
60
62
  "devDependencies": {
61
63
  "@eslint/js": "^9.37.0",
@@ -67,10 +69,12 @@
67
69
  "@vue/test-utils": "^2.4.6",
68
70
  "eslint": "^9.37.0",
69
71
  "eslint-plugin-prettier": "^5.5.4",
72
+ "gh-pages": "^6.3.0",
70
73
  "globals": "^16.4.0",
71
74
  "jsdom": "^27.0.0",
72
75
  "openapi-typescript": "^7.9.1",
73
76
  "prettier": "^3.6.2",
77
+ "typedoc": "^0.28.14",
74
78
  "typescript": "^5.9.2",
75
79
  "vitest": "^3.2.4"
76
80
  },