@zayne-labs/callapi-plugins 4.0.23 → 4.0.25
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.d.ts +222 -228
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ declare const fallBackRouteSchemaKey = "@default";
|
|
|
10
10
|
type FallBackRouteSchemaKey = typeof fallBackRouteSchemaKey;
|
|
11
11
|
//#endregion
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region ../callapi/dist/
|
|
13
|
+
//#region ../callapi/dist/validation-BXtphXvQ.d.ts
|
|
14
14
|
//#region src/types/type-helpers.d.ts
|
|
15
15
|
type AnyString = string & NonNullable<unknown>;
|
|
16
16
|
type AnyNumber = number & NonNullable<unknown>;
|
|
@@ -31,6 +31,7 @@ type UnmaskType<TValue$1> = {
|
|
|
31
31
|
}["_"];
|
|
32
32
|
type RemovePrefix<TPrefix extends "dedupe" | "retry", TKey extends string> = TKey extends `${TPrefix}${infer TRest}` ? Uncapitalize<TRest> : TKey;
|
|
33
33
|
type Awaitable<TValue$1> = Promise<TValue$1> | TValue$1;
|
|
34
|
+
type DistributiveOmit<TObject, TKeysToOmit extends keyof TObject> = TObject extends unknown ? Omit<TObject, TKeysToOmit> : never;
|
|
34
35
|
type CommonRequestHeaders = "Access-Control-Allow-Credentials" | "Access-Control-Allow-Headers" | "Access-Control-Allow-Methods" | "Access-Control-Allow-Origin" | "Access-Control-Expose-Headers" | "Access-Control-Max-Age" | "Age" | "Allow" | "Cache-Control" | "Clear-Site-Data" | "Content-Disposition" | "Content-Encoding" | "Content-Language" | "Content-Length" | "Content-Location" | "Content-Range" | "Content-Security-Policy-Report-Only" | "Content-Security-Policy" | "Cookie" | "Cross-Origin-Embedder-Policy" | "Cross-Origin-Opener-Policy" | "Cross-Origin-Resource-Policy" | "Date" | "ETag" | "Expires" | "Last-Modified" | "Location" | "Permissions-Policy" | "Pragma" | "Retry-After" | "Save-Data" | "Sec-CH-Prefers-Color-Scheme" | "Sec-CH-Prefers-Reduced-Motion" | "Sec-CH-UA-Arch" | "Sec-CH-UA-Bitness" | "Sec-CH-UA-Form-Factor" | "Sec-CH-UA-Full-Version-List" | "Sec-CH-UA-Full-Version" | "Sec-CH-UA-Mobile" | "Sec-CH-UA-Model" | "Sec-CH-UA-Platform-Version" | "Sec-CH-UA-Platform" | "Sec-CH-UA-WoW64" | "Sec-CH-UA" | "Sec-Fetch-Dest" | "Sec-Fetch-Mode" | "Sec-Fetch-Site" | "Sec-Fetch-User" | "Sec-GPC" | "Server-Timing" | "Server" | "Service-Worker-Navigation-Preload" | "Set-Cookie" | "Strict-Transport-Security" | "Timing-Allow-Origin" | "Trailer" | "Transfer-Encoding" | "Upgrade" | "Vary" | "Warning" | "WWW-Authenticate" | "X-Content-Type-Options" | "X-DNS-Prefetch-Control" | "X-Frame-Options" | "X-Permitted-Cross-Domain-Policies" | "X-Powered-By" | "X-Robots-Tag" | "X-XSS-Protection" | AnyString;
|
|
35
36
|
type CommonAuthorizationHeaders = `${"Basic" | "Bearer" | "Token"} ${string}`;
|
|
36
37
|
type CommonContentTypes = "application/epub+zip" | "application/gzip" | "application/json" | "application/ld+json" | "application/octet-stream" | "application/ogg" | "application/pdf" | "application/rtf" | "application/vnd.ms-fontobject" | "application/wasm" | "application/xhtml+xml" | "application/xml" | "application/zip" | "audio/aac" | "audio/mpeg" | "audio/ogg" | "audio/opus" | "audio/webm" | "audio/x-midi" | "font/otf" | "font/ttf" | "font/woff" | "font/woff2" | "image/avif" | "image/bmp" | "image/gif" | "image/jpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "image/x-icon" | "model/gltf-binary" | "model/gltf+json" | "text/calendar" | "text/css" | "text/csv" | "text/html" | "text/javascript" | "text/plain" | "video/3gpp" | "video/3gpp2" | "video/av1" | "video/mp2t" | "video/mp4" | "video/mpeg" | "video/ogg" | "video/webm" | "video/x-msvideo" | AnyString;
|
|
@@ -182,210 +183,6 @@ declare namespace StandardSchemaV1 {
|
|
|
182
183
|
type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"];
|
|
183
184
|
}
|
|
184
185
|
//#endregion
|
|
185
|
-
//#region src/url.d.ts
|
|
186
|
-
type AllowedQueryParamValues = UnmaskType<boolean | number | string>;
|
|
187
|
-
type RecordStyleParams = UnmaskType<Record<string, AllowedQueryParamValues>>;
|
|
188
|
-
type TupleStyleParams = UnmaskType<AllowedQueryParamValues[]>;
|
|
189
|
-
type Params = UnmaskType<RecordStyleParams | TupleStyleParams>;
|
|
190
|
-
type Query = UnmaskType<Record<string, AllowedQueryParamValues>>;
|
|
191
|
-
type InitURLOrURLObject = AnyString | RouteKeyMethodsURLUnion | URL;
|
|
192
|
-
interface URLOptions {
|
|
193
|
-
/**
|
|
194
|
-
* Base URL for all API requests. Will only be prepended to relative URLs.
|
|
195
|
-
*
|
|
196
|
-
* Absolute URLs (starting with http/https) will not be prepended by the baseURL.
|
|
197
|
-
*
|
|
198
|
-
* @example
|
|
199
|
-
* ```ts
|
|
200
|
-
* // Set base URL for all requests
|
|
201
|
-
* baseURL: "https://api.example.com/v1"
|
|
202
|
-
*
|
|
203
|
-
* // Then use relative URLs in requests
|
|
204
|
-
* callApi("/users") // → https://api.example.com/v1/users
|
|
205
|
-
* callApi("/posts/123") // → https://api.example.com/v1/posts/123
|
|
206
|
-
*
|
|
207
|
-
* // Environment-specific base URLs
|
|
208
|
-
* baseURL: process.env.NODE_ENV === "production"
|
|
209
|
-
* ? "https://api.example.com"
|
|
210
|
-
* : "http://localhost:3000/api"
|
|
211
|
-
* ```
|
|
212
|
-
*/
|
|
213
|
-
baseURL?: string;
|
|
214
|
-
/**
|
|
215
|
-
* Resolved request URL after processing baseURL, parameters, and query strings (readonly)
|
|
216
|
-
*
|
|
217
|
-
* This is the final URL that will be used for the HTTP request, computed from
|
|
218
|
-
* baseURL, initURL, params, and query parameters.
|
|
219
|
-
*
|
|
220
|
-
*/
|
|
221
|
-
readonly fullURL?: string;
|
|
222
|
-
/**
|
|
223
|
-
* The original URL string passed to the callApi instance (readonly)
|
|
224
|
-
*
|
|
225
|
-
* This preserves the original URL as provided, including any method modifiers like "@get/" or "@post/".
|
|
226
|
-
*
|
|
227
|
-
*/
|
|
228
|
-
readonly initURL?: string;
|
|
229
|
-
/**
|
|
230
|
-
* The URL string after normalization, with method modifiers removed(readonly)
|
|
231
|
-
*
|
|
232
|
-
* Method modifiers like "@get/", "@post/" are stripped to create a clean URL
|
|
233
|
-
* for parameter substitution and final URL construction.
|
|
234
|
-
*
|
|
235
|
-
*/
|
|
236
|
-
readonly initURLNormalized?: string;
|
|
237
|
-
/**
|
|
238
|
-
* Parameters to be substituted into URL path segments.
|
|
239
|
-
*
|
|
240
|
-
* Supports both object-style (named parameters) and array-style (positional parameters)
|
|
241
|
-
* for flexible URL parameter substitution.
|
|
242
|
-
*
|
|
243
|
-
* @example
|
|
244
|
-
* ```typescript
|
|
245
|
-
* // Object-style parameters (recommended)
|
|
246
|
-
* const namedParams: URLOptions = {
|
|
247
|
-
* initURL: "/users/:userId/posts/:postId",
|
|
248
|
-
* params: { userId: "123", postId: "456" }
|
|
249
|
-
* };
|
|
250
|
-
* // Results in: /users/123/posts/456
|
|
251
|
-
*
|
|
252
|
-
* // Array-style parameters (positional)
|
|
253
|
-
* const positionalParams: URLOptions = {
|
|
254
|
-
* initURL: "/users/:userId/posts/:postId",
|
|
255
|
-
* params: ["123", "456"] // Maps in order: userId=123, postId=456
|
|
256
|
-
* };
|
|
257
|
-
* // Results in: /users/123/posts/456
|
|
258
|
-
*
|
|
259
|
-
* // Single parameter
|
|
260
|
-
* const singleParam: URLOptions = {
|
|
261
|
-
* initURL: "/users/:id",
|
|
262
|
-
* params: { id: "user-123" }
|
|
263
|
-
* };
|
|
264
|
-
* // Results in: /users/user-123
|
|
265
|
-
* ```
|
|
266
|
-
*/
|
|
267
|
-
params?: Params;
|
|
268
|
-
/**
|
|
269
|
-
* Query parameters to append to the URL as search parameters.
|
|
270
|
-
*
|
|
271
|
-
* These will be serialized into the URL query string using standard
|
|
272
|
-
* URL encoding practices.
|
|
273
|
-
*
|
|
274
|
-
* @example
|
|
275
|
-
* ```typescript
|
|
276
|
-
* // Basic query parameters
|
|
277
|
-
* const queryOptions: URLOptions = {
|
|
278
|
-
* initURL: "/users",
|
|
279
|
-
* query: {
|
|
280
|
-
* page: 1,
|
|
281
|
-
* limit: 10,
|
|
282
|
-
* search: "john doe",
|
|
283
|
-
* active: true
|
|
284
|
-
* }
|
|
285
|
-
* };
|
|
286
|
-
* // Results in: /users?page=1&limit=10&search=john%20doe&active=true
|
|
287
|
-
*
|
|
288
|
-
* // Filtering and sorting
|
|
289
|
-
* const filterOptions: URLOptions = {
|
|
290
|
-
* initURL: "/products",
|
|
291
|
-
* query: {
|
|
292
|
-
* category: "electronics",
|
|
293
|
-
* minPrice: 100,
|
|
294
|
-
* maxPrice: 500,
|
|
295
|
-
* sortBy: "price",
|
|
296
|
-
* order: "asc"
|
|
297
|
-
* }
|
|
298
|
-
* };
|
|
299
|
-
* // Results in: /products?category=electronics&minPrice=100&maxPrice=500&sortBy=price&order=asc
|
|
300
|
-
* ```
|
|
301
|
-
*/
|
|
302
|
-
query?: Query;
|
|
303
|
-
}
|
|
304
|
-
//#endregion
|
|
305
|
-
//#region src/validation.d.ts
|
|
306
|
-
type ResultVariant = "infer-input" | "infer-output";
|
|
307
|
-
type InferSchemaResult<TSchema$1, TFallbackResult, TResultVariant extends ResultVariant> = undefined extends TSchema$1 ? TFallbackResult : TSchema$1 extends StandardSchemaV1 ? TResultVariant extends "infer-input" ? StandardSchemaV1.InferInput<TSchema$1> : StandardSchemaV1.InferOutput<TSchema$1> : TSchema$1 extends AnyFunction$1<infer TResult> ? Awaited<TResult> : TFallbackResult;
|
|
308
|
-
type InferSchemaOutput<TSchema$1, TFallbackResult = unknown> = InferSchemaResult<TSchema$1, TFallbackResult, "infer-output">;
|
|
309
|
-
interface CallApiSchemaConfig {
|
|
310
|
-
/**
|
|
311
|
-
* The base url of the schema. By default it's the baseURL of the callApi instance.
|
|
312
|
-
*/
|
|
313
|
-
baseURL?: string;
|
|
314
|
-
/**
|
|
315
|
-
* Disables runtime validation for the schema.
|
|
316
|
-
*/
|
|
317
|
-
disableRuntimeValidation?: boolean;
|
|
318
|
-
/**
|
|
319
|
-
* If `true`, the original input value will be used instead of the transformed/validated output.
|
|
320
|
-
*
|
|
321
|
-
* This is useful when you want to validate the input but don't want any transformations
|
|
322
|
-
* applied by the validation schema (e.g., type coercion, default values, etc).
|
|
323
|
-
*/
|
|
324
|
-
disableValidationOutputApplication?: boolean;
|
|
325
|
-
/**
|
|
326
|
-
* Optional url prefix that will be substituted for the `baseURL` of the schemaConfig at runtime.
|
|
327
|
-
*
|
|
328
|
-
* This allows you to reuse the same schema against different base URLs (for example,
|
|
329
|
-
* swapping between `/api/v1` and `/api/v2`) without redefining the entire schema.
|
|
330
|
-
*/
|
|
331
|
-
prefix?: string;
|
|
332
|
-
/**
|
|
333
|
-
* Controls the strictness of API route validation.
|
|
334
|
-
*
|
|
335
|
-
* When true:
|
|
336
|
-
* - Only routes explicitly defined in the schema will be considered valid to typescript and the runtime.
|
|
337
|
-
* - Attempting to call routes not defined in the schema will result in both type errors and runtime validation errors.
|
|
338
|
-
* - Useful for ensuring API calls conform exactly to your schema definition
|
|
339
|
-
*
|
|
340
|
-
* When false or undefined (default):
|
|
341
|
-
* - All routes will be allowed, whether they are defined in the schema or not
|
|
342
|
-
*/
|
|
343
|
-
strict?: boolean;
|
|
344
|
-
}
|
|
345
|
-
interface CallApiSchema {
|
|
346
|
-
/**
|
|
347
|
-
* The schema to use for validating the request body.
|
|
348
|
-
*/
|
|
349
|
-
body?: StandardSchemaV1<Body | undefined> | ((body: Body) => Awaitable<Body | undefined>);
|
|
350
|
-
/**
|
|
351
|
-
* The schema to use for validating the response data.
|
|
352
|
-
*/
|
|
353
|
-
data?: StandardSchemaV1 | ((data: unknown) => unknown);
|
|
354
|
-
/**
|
|
355
|
-
* The schema to use for validating the response error data.
|
|
356
|
-
*/
|
|
357
|
-
errorData?: StandardSchemaV1 | ((errorData: unknown) => unknown);
|
|
358
|
-
/**
|
|
359
|
-
* The schema to use for validating the request headers.
|
|
360
|
-
*/
|
|
361
|
-
headers?: StandardSchemaV1<HeadersOption | undefined> | ((headers: HeadersOption) => Awaitable<HeadersOption | undefined>);
|
|
362
|
-
/**
|
|
363
|
-
* The schema to use for validating the meta option.
|
|
364
|
-
*/
|
|
365
|
-
meta?: StandardSchemaV1<GlobalMeta | undefined> | ((meta: GlobalMeta) => Awaitable<GlobalMeta | undefined>);
|
|
366
|
-
/**
|
|
367
|
-
* The schema to use for validating the request method.
|
|
368
|
-
*/
|
|
369
|
-
method?: StandardSchemaV1<MethodUnion | undefined> | ((method: MethodUnion) => Awaitable<MethodUnion | undefined>);
|
|
370
|
-
/**
|
|
371
|
-
* The schema to use for validating the request url parameters.
|
|
372
|
-
*/
|
|
373
|
-
params?: StandardSchemaV1<Params | undefined> | ((params: Params) => Awaitable<Params | undefined>);
|
|
374
|
-
/**
|
|
375
|
-
* The schema to use for validating the request url queries.
|
|
376
|
-
*/
|
|
377
|
-
query?: StandardSchemaV1<Query | undefined> | ((query: Query) => Awaitable<Query | undefined>);
|
|
378
|
-
}
|
|
379
|
-
declare const routeKeyMethods: readonly ["delete", "get", "patch", "post", "put"];
|
|
380
|
-
type RouteKeyMethods = (typeof routeKeyMethods)[number];
|
|
381
|
-
type RouteKeyMethodsURLUnion = `@${RouteKeyMethods}/`;
|
|
382
|
-
type BaseSchemaRouteKeyPrefixes = FallBackRouteSchemaKey | RouteKeyMethodsURLUnion;
|
|
383
|
-
type BaseCallApiSchemaRoutes = Partial<Record<AnyString | BaseSchemaRouteKeyPrefixes, CallApiSchema>>;
|
|
384
|
-
type BaseCallApiSchemaAndConfig = {
|
|
385
|
-
config?: CallApiSchemaConfig;
|
|
386
|
-
routes: BaseCallApiSchemaRoutes;
|
|
387
|
-
};
|
|
388
|
-
//#endregion
|
|
389
186
|
//#region src/utils/external/error.d.ts
|
|
390
187
|
type HTTPErrorDetails<TErrorData$1> = Pick<CallApiExtraOptions, "defaultHTTPErrorMessage"> & {
|
|
391
188
|
errorData: TErrorData$1;
|
|
@@ -457,10 +254,6 @@ type CallApiResultSuccessVariant<TData$1> = {
|
|
|
457
254
|
error: null;
|
|
458
255
|
response: Response;
|
|
459
256
|
};
|
|
460
|
-
type CallApiResultSuccessVariantWithoutResponse<TData$1> = {
|
|
461
|
-
data: NoInfer<TData$1>;
|
|
462
|
-
error: null;
|
|
463
|
-
};
|
|
464
257
|
type PossibleJavaScriptError = UnmaskType<{
|
|
465
258
|
errorData: false;
|
|
466
259
|
message: string;
|
|
@@ -490,26 +283,18 @@ type CallApiResultErrorVariant<TErrorData$1> = {
|
|
|
490
283
|
error: PossibleJavaScriptOrValidationError;
|
|
491
284
|
response: Response | null;
|
|
492
285
|
};
|
|
493
|
-
type CallApiResultErrorVariantWithoutResponse<TErrorData$1> = {
|
|
494
|
-
data: null;
|
|
495
|
-
error: PossibleHTTPError<TErrorData$1>;
|
|
496
|
-
} | {
|
|
497
|
-
data: null;
|
|
498
|
-
error: PossibleJavaScriptOrValidationError;
|
|
499
|
-
};
|
|
500
286
|
type CallApiSuccessOrErrorVariant<TData$1, TError> = CallApiResultErrorVariant<TError> | CallApiResultSuccessVariant<TData$1>;
|
|
501
|
-
type CallApiSuccessOrErrorVariantWithoutResponse<TData$1, TErrorData$1> = CallApiResultErrorVariantWithoutResponse<TErrorData$1> | CallApiResultSuccessVariantWithoutResponse<TData$1>;
|
|
502
287
|
type ResultModeMapWithoutException<TData$1, TErrorData$1, TResponseType extends ResponseTypeType, TComputedData = GetResponseType<TData$1, TResponseType>, TComputedErrorData = GetResponseType<TErrorData$1, TResponseType>, TComputedResult extends CallApiSuccessOrErrorVariant<TComputedData, TComputedErrorData> = CallApiSuccessOrErrorVariant<TComputedData, TComputedErrorData>> = UnmaskType<{
|
|
503
288
|
all: TComputedResult;
|
|
504
289
|
onlyData: TComputedResult["data"];
|
|
505
290
|
onlyResponse: TComputedResult["response"];
|
|
506
|
-
withoutResponse:
|
|
291
|
+
withoutResponse: DistributiveOmit<TComputedResult, "response">;
|
|
507
292
|
}>;
|
|
508
293
|
type ResultModeMapWithException<TData$1, TResponseType extends ResponseTypeType, TComputedData = GetResponseType<TData$1, TResponseType>, TComputedResult extends CallApiResultSuccessVariant<TComputedData> = CallApiResultSuccessVariant<TComputedData>> = {
|
|
509
294
|
all: TComputedResult;
|
|
510
295
|
onlyData: TComputedResult["data"];
|
|
511
296
|
onlyResponse: TComputedResult["response"];
|
|
512
|
-
withoutResponse:
|
|
297
|
+
withoutResponse: DistributiveOmit<TComputedResult, "response">;
|
|
513
298
|
};
|
|
514
299
|
type ResultModeMap<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResponseType extends ResponseTypeType = ResponseTypeType, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError> = TThrowOnError extends true ? ResultModeMapWithException<TData$1, TResponseType> : ResultModeMapWithoutException<TData$1, TErrorData$1, TResponseType>;
|
|
515
300
|
type ResultModePlaceholder = null;
|
|
@@ -555,6 +340,126 @@ interface Middlewares {
|
|
|
555
340
|
}) => FetchImpl;
|
|
556
341
|
}
|
|
557
342
|
//#endregion
|
|
343
|
+
//#region src/url.d.ts
|
|
344
|
+
type AllowedQueryParamValues = UnmaskType<boolean | number | string>;
|
|
345
|
+
type RecordStyleParams = UnmaskType<Record<string, AllowedQueryParamValues>>;
|
|
346
|
+
type TupleStyleParams = UnmaskType<AllowedQueryParamValues[]>;
|
|
347
|
+
type Params = UnmaskType<RecordStyleParams | TupleStyleParams>;
|
|
348
|
+
type Query = UnmaskType<Record<string, AllowedQueryParamValues>>;
|
|
349
|
+
type InitURLOrURLObject = AnyString | RouteKeyMethodsURLUnion | URL;
|
|
350
|
+
interface URLOptions {
|
|
351
|
+
/**
|
|
352
|
+
* Base URL for all API requests. Will only be prepended to relative URLs.
|
|
353
|
+
*
|
|
354
|
+
* Absolute URLs (starting with http/https) will not be prepended by the baseURL.
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```ts
|
|
358
|
+
* // Set base URL for all requests
|
|
359
|
+
* baseURL: "https://api.example.com/v1"
|
|
360
|
+
*
|
|
361
|
+
* // Then use relative URLs in requests
|
|
362
|
+
* callApi("/users") // → https://api.example.com/v1/users
|
|
363
|
+
* callApi("/posts/123") // → https://api.example.com/v1/posts/123
|
|
364
|
+
*
|
|
365
|
+
* // Environment-specific base URLs
|
|
366
|
+
* baseURL: process.env.NODE_ENV === "production"
|
|
367
|
+
* ? "https://api.example.com"
|
|
368
|
+
* : "http://localhost:3000/api"
|
|
369
|
+
* ```
|
|
370
|
+
*/
|
|
371
|
+
baseURL?: string;
|
|
372
|
+
/**
|
|
373
|
+
* Resolved request URL after processing baseURL, parameters, and query strings (readonly)
|
|
374
|
+
*
|
|
375
|
+
* This is the final URL that will be used for the HTTP request, computed from
|
|
376
|
+
* baseURL, initURL, params, and query parameters.
|
|
377
|
+
*
|
|
378
|
+
*/
|
|
379
|
+
readonly fullURL?: string;
|
|
380
|
+
/**
|
|
381
|
+
* The original URL string passed to the callApi instance (readonly)
|
|
382
|
+
*
|
|
383
|
+
* This preserves the original URL as provided, including any method modifiers like "@get/" or "@post/".
|
|
384
|
+
*
|
|
385
|
+
*/
|
|
386
|
+
readonly initURL?: string;
|
|
387
|
+
/**
|
|
388
|
+
* The URL string after normalization, with method modifiers removed(readonly)
|
|
389
|
+
*
|
|
390
|
+
* Method modifiers like "@get/", "@post/" are stripped to create a clean URL
|
|
391
|
+
* for parameter substitution and final URL construction.
|
|
392
|
+
*
|
|
393
|
+
*/
|
|
394
|
+
readonly initURLNormalized?: string;
|
|
395
|
+
/**
|
|
396
|
+
* Parameters to be substituted into URL path segments.
|
|
397
|
+
*
|
|
398
|
+
* Supports both object-style (named parameters) and array-style (positional parameters)
|
|
399
|
+
* for flexible URL parameter substitution.
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```typescript
|
|
403
|
+
* // Object-style parameters (recommended)
|
|
404
|
+
* const namedParams: URLOptions = {
|
|
405
|
+
* initURL: "/users/:userId/posts/:postId",
|
|
406
|
+
* params: { userId: "123", postId: "456" }
|
|
407
|
+
* };
|
|
408
|
+
* // Results in: /users/123/posts/456
|
|
409
|
+
*
|
|
410
|
+
* // Array-style parameters (positional)
|
|
411
|
+
* const positionalParams: URLOptions = {
|
|
412
|
+
* initURL: "/users/:userId/posts/:postId",
|
|
413
|
+
* params: ["123", "456"] // Maps in order: userId=123, postId=456
|
|
414
|
+
* };
|
|
415
|
+
* // Results in: /users/123/posts/456
|
|
416
|
+
*
|
|
417
|
+
* // Single parameter
|
|
418
|
+
* const singleParam: URLOptions = {
|
|
419
|
+
* initURL: "/users/:id",
|
|
420
|
+
* params: { id: "user-123" }
|
|
421
|
+
* };
|
|
422
|
+
* // Results in: /users/user-123
|
|
423
|
+
* ```
|
|
424
|
+
*/
|
|
425
|
+
params?: Params;
|
|
426
|
+
/**
|
|
427
|
+
* Query parameters to append to the URL as search parameters.
|
|
428
|
+
*
|
|
429
|
+
* These will be serialized into the URL query string using standard
|
|
430
|
+
* URL encoding practices.
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```typescript
|
|
434
|
+
* // Basic query parameters
|
|
435
|
+
* const queryOptions: URLOptions = {
|
|
436
|
+
* initURL: "/users",
|
|
437
|
+
* query: {
|
|
438
|
+
* page: 1,
|
|
439
|
+
* limit: 10,
|
|
440
|
+
* search: "john doe",
|
|
441
|
+
* active: true
|
|
442
|
+
* }
|
|
443
|
+
* };
|
|
444
|
+
* // Results in: /users?page=1&limit=10&search=john%20doe&active=true
|
|
445
|
+
*
|
|
446
|
+
* // Filtering and sorting
|
|
447
|
+
* const filterOptions: URLOptions = {
|
|
448
|
+
* initURL: "/products",
|
|
449
|
+
* query: {
|
|
450
|
+
* category: "electronics",
|
|
451
|
+
* minPrice: 100,
|
|
452
|
+
* maxPrice: 500,
|
|
453
|
+
* sortBy: "price",
|
|
454
|
+
* order: "asc"
|
|
455
|
+
* }
|
|
456
|
+
* };
|
|
457
|
+
* // Results in: /products?category=electronics&minPrice=100&maxPrice=500&sortBy=price&order=asc
|
|
458
|
+
* ```
|
|
459
|
+
*/
|
|
460
|
+
query?: Query;
|
|
461
|
+
}
|
|
462
|
+
//#endregion
|
|
558
463
|
//#region src/plugins.d.ts
|
|
559
464
|
type PluginSetupContext<TPluginExtraOptions = unknown> = RequestContext & PluginExtraOptions<TPluginExtraOptions> & {
|
|
560
465
|
initURL: string;
|
|
@@ -1220,7 +1125,7 @@ interface Register {}
|
|
|
1220
1125
|
type GlobalMeta = Register extends {
|
|
1221
1126
|
meta?: infer TMeta extends Record<string, unknown>;
|
|
1222
1127
|
} ? TMeta : never;
|
|
1223
|
-
type InferMetaOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema$1["meta"], {
|
|
1128
|
+
type InferMetaOption<TSchema$1 extends CallApiSchema, TCallApiEnv extends CallApiEnv> = MakeSchemaOptionRequiredIfDefined<TSchema$1["meta"], {
|
|
1224
1129
|
/**
|
|
1225
1130
|
* - An optional field you can fill with additional information,
|
|
1226
1131
|
* to associate with the request, typically used for logging or tracing.
|
|
@@ -1244,7 +1149,7 @@ type InferMetaOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequired
|
|
|
1244
1149
|
* });
|
|
1245
1150
|
* ```
|
|
1246
1151
|
*/
|
|
1247
|
-
meta?: InferSchemaOutput<TSchema$1["meta"],
|
|
1152
|
+
meta?: InferSchemaOutput<TSchema$1["meta"], TCallApiEnv["Meta"]>;
|
|
1248
1153
|
}>;
|
|
1249
1154
|
type InferQueryOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema$1["query"], {
|
|
1250
1155
|
/**
|
|
@@ -1267,7 +1172,7 @@ type InferParamsOption<TSchema$1 extends CallApiSchema, TBaseSchemaRoutes$1 exte
|
|
|
1267
1172
|
*/
|
|
1268
1173
|
params?: InferSchemaOutput<TSchema$1["params"], InferParamsFromRoute<TCurrentRouteSchemaKey>>;
|
|
1269
1174
|
}>;
|
|
1270
|
-
type InferExtraOptions<TSchema$1 extends CallApiSchema, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string> = InferMetaOption<TSchema$1> & InferParamsOption<TSchema$1, TBaseSchemaRoutes$1, TCurrentRouteSchemaKey> & InferQueryOption<TSchema$1>;
|
|
1175
|
+
type InferExtraOptions<TSchema$1 extends CallApiSchema, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TCallApiEnv extends CallApiEnv> = InferMetaOption<TSchema$1, TCallApiEnv> & InferParamsOption<TSchema$1, TBaseSchemaRoutes$1, TCurrentRouteSchemaKey> & InferQueryOption<TSchema$1>;
|
|
1271
1176
|
type InferPluginOptions<TPluginArray extends CallApiPlugin[]> = UnionToIntersection<TPluginArray extends Array<infer TPlugin> ? TPlugin extends CallApiPlugin ? TPlugin["defineExtraOptions"] extends AnyFunction$1<infer TReturnedSchema> ? InferSchemaOutput<TReturnedSchema> : never : never : never>;
|
|
1272
1177
|
type ResultModeOption<TErrorData$1, TResultMode extends ResultModeType> = TErrorData$1 extends false ? {
|
|
1273
1178
|
resultMode: "onlyData";
|
|
@@ -1287,6 +1192,10 @@ type ThrowOnErrorOption<TErrorData$1, TThrowOnError extends ThrowOnErrorUnion> =
|
|
|
1287
1192
|
};
|
|
1288
1193
|
//#endregion
|
|
1289
1194
|
//#region src/types/common.d.ts
|
|
1195
|
+
|
|
1196
|
+
type CallApiEnv = {
|
|
1197
|
+
Meta?: GlobalMeta;
|
|
1198
|
+
};
|
|
1290
1199
|
type FetchSpecificKeysUnion = Exclude<(typeof fetchSpecificKeys)[number], "body" | "headers" | "method">;
|
|
1291
1200
|
type ModifiedRequestInit = RequestInit & {
|
|
1292
1201
|
duplex?: "half";
|
|
@@ -1309,7 +1218,7 @@ type CallApiRequestOptions = Prettify<{
|
|
|
1309
1218
|
type CallApiRequestOptionsForHooks = Omit<CallApiRequestOptions, "headers"> & {
|
|
1310
1219
|
headers: Record<string, string | undefined>;
|
|
1311
1220
|
};
|
|
1312
|
-
type SharedExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TPluginArray extends CallApiPlugin[] = DefaultPluginArray> = DedupeOptions & HookConfigOptions & HooksOrHooksArray<TData$1, TErrorData$1, Partial<InferPluginOptions<TPluginArray>>> & Middlewares & Partial<InferPluginOptions<TPluginArray>> & ResultModeOption<TErrorData$1, TResultMode> & RetryOptions<TErrorData$1> & ThrowOnErrorOption<TErrorData$1, TThrowOnError> & URLOptions & {
|
|
1221
|
+
type SharedExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TCallApiEnv extends CallApiEnv = CallApiEnv, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TPluginArray extends CallApiPlugin[] = DefaultPluginArray> = DedupeOptions & HookConfigOptions & HooksOrHooksArray<TData$1, TErrorData$1, Partial<InferPluginOptions<TPluginArray>>> & Middlewares & Partial<InferPluginOptions<TPluginArray>> & ResultModeOption<TErrorData$1, TResultMode> & RetryOptions<TErrorData$1> & ThrowOnErrorOption<TErrorData$1, TThrowOnError> & URLOptions & {
|
|
1313
1222
|
/**
|
|
1314
1223
|
* Automatically add an Authorization header value.
|
|
1315
1224
|
*
|
|
@@ -1487,7 +1396,7 @@ type SharedExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataTyp
|
|
|
1487
1396
|
* });
|
|
1488
1397
|
* ```
|
|
1489
1398
|
*/
|
|
1490
|
-
meta?:
|
|
1399
|
+
meta?: TCallApiEnv["Meta"];
|
|
1491
1400
|
/**
|
|
1492
1401
|
* Custom function to parse response strings into actual value instead of the default response.json().
|
|
1493
1402
|
*
|
|
@@ -1683,7 +1592,7 @@ type SharedExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataTyp
|
|
|
1683
1592
|
*/
|
|
1684
1593
|
timeout?: number;
|
|
1685
1594
|
};
|
|
1686
|
-
type BaseCallApiExtraOptions<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeType = ResultModeType, TBaseThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TBaseResponseType extends ResponseTypeType = ResponseTypeType, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemaAndConfig extends BaseCallApiSchemaAndConfig = BaseCallApiSchemaAndConfig> = SharedExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray> & {
|
|
1595
|
+
type BaseCallApiExtraOptions<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeType = ResultModeType, TBaseCallApiEnv extends CallApiEnv = CallApiEnv, TBaseThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TBaseResponseType extends ResponseTypeType = ResponseTypeType, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemaAndConfig extends BaseCallApiSchemaAndConfig = BaseCallApiSchemaAndConfig> = SharedExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseCallApiEnv, TBaseThrowOnError, TBaseResponseType, TBasePluginArray> & {
|
|
1687
1596
|
/**
|
|
1688
1597
|
* Array of base CallApi plugins to extend library functionality.
|
|
1689
1598
|
*
|
|
@@ -1793,7 +1702,7 @@ type InferExtendSchemaConfigContext<TBaseSchemaConfig extends CallApiSchemaConfi
|
|
|
1793
1702
|
type InferExtendPluginContext<TBasePluginArray extends CallApiPlugin[]> = {
|
|
1794
1703
|
basePlugins: TBasePluginArray;
|
|
1795
1704
|
};
|
|
1796
|
-
type CallApiExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes = BaseCallApiSchemaRoutes, TSchema$1 extends CallApiSchema = CallApiSchema, TBaseSchemaConfig extends CallApiSchemaConfig = CallApiSchemaConfig, TSchemaConfig$1 extends CallApiSchemaConfig = CallApiSchemaConfig, TCurrentRouteSchemaKey extends string = string, TComputedPluginContext = InferExtendPluginContext<TBasePluginArray>, TComputedSchemaContext = InferExtendSchemaContext<TBaseSchemaRoutes$1, TCurrentRouteSchemaKey>, TComputedSchemaConfigContext = InferExtendSchemaConfigContext<TBaseSchemaConfig>> = SharedExtraOptions<TData$1, TErrorData$1, TResultMode, TThrowOnError, TResponseType, TPluginArray> & {
|
|
1705
|
+
type CallApiExtraOptions<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TCallApiEnv extends CallApiEnv = CallApiEnv, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes = BaseCallApiSchemaRoutes, TSchema$1 extends CallApiSchema = CallApiSchema, TBaseSchemaConfig extends CallApiSchemaConfig = CallApiSchemaConfig, TSchemaConfig$1 extends CallApiSchemaConfig = CallApiSchemaConfig, TCurrentRouteSchemaKey extends string = string, TComputedPluginContext = InferExtendPluginContext<TBasePluginArray>, TComputedSchemaContext = InferExtendSchemaContext<TBaseSchemaRoutes$1, TCurrentRouteSchemaKey>, TComputedSchemaConfigContext = InferExtendSchemaConfigContext<TBaseSchemaConfig>> = SharedExtraOptions<TData$1, TErrorData$1, TResultMode, TCallApiEnv, TThrowOnError, TResponseType, TPluginArray> & {
|
|
1797
1706
|
/**
|
|
1798
1707
|
* Array of instance-specific CallApi plugins or a function to configure plugins.
|
|
1799
1708
|
*
|
|
@@ -1827,8 +1736,93 @@ type InstanceContext = {
|
|
|
1827
1736
|
options: CallApiExtraOptions;
|
|
1828
1737
|
request: CallApiRequestOptions;
|
|
1829
1738
|
};
|
|
1830
|
-
type BaseCallApiConfig<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeType = ResultModeType, TBaseThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TBaseResponseType extends ResponseTypeType = ResponseTypeType, TBaseSchemaAndConfig extends BaseCallApiSchemaAndConfig = BaseCallApiSchemaAndConfig, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TComputedBaseConfig = BaseCallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemaAndConfig>> = (CallApiRequestOptions & TComputedBaseConfig) | ((context: InstanceContext) => CallApiRequestOptions & TComputedBaseConfig);
|
|
1831
|
-
type CallApiConfig<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes = BaseCallApiSchemaRoutes, TSchema$1 extends CallApiSchema = CallApiSchema, TBaseSchemaConfig extends CallApiSchemaConfig = CallApiSchemaConfig, TSchemaConfig$1 extends CallApiSchemaConfig = CallApiSchemaConfig, TInitURL extends InitURLOrURLObject = InitURLOrURLObject, TCurrentRouteSchemaKey extends string = string, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TPluginArray extends CallApiPlugin[] = DefaultPluginArray> = InferExtraOptions<TSchema$1, TBaseSchemaRoutes$1, TCurrentRouteSchemaKey> & InferRequestOptions<TSchema$1, TInitURL> & Omit<CallApiExtraOptions<TData$1, TErrorData$1, TResultMode, TThrowOnError, TResponseType, TBasePluginArray, TPluginArray, TBaseSchemaRoutes$1, TSchema$1, TBaseSchemaConfig, TSchemaConfig$1, TCurrentRouteSchemaKey>, keyof InferExtraOptions<CallApiSchema, BaseCallApiSchemaRoutes, string>> & Omit<CallApiRequestOptions, keyof InferRequestOptions<CallApiSchema, string>>;
|
|
1739
|
+
type BaseCallApiConfig<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeType = ResultModeType, TBaseCallApiEnv extends CallApiEnv = CallApiEnv, TBaseThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TBaseResponseType extends ResponseTypeType = ResponseTypeType, TBaseSchemaAndConfig extends BaseCallApiSchemaAndConfig = BaseCallApiSchemaAndConfig, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TComputedBaseConfig = BaseCallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseCallApiEnv, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemaAndConfig>> = (CallApiRequestOptions & TComputedBaseConfig) | ((context: InstanceContext) => CallApiRequestOptions & TComputedBaseConfig);
|
|
1740
|
+
type CallApiConfig<TData$1 = DefaultDataType, TErrorData$1 = DefaultDataType, TResultMode extends ResultModeType = ResultModeType, TCallApiEnv extends CallApiEnv = CallApiEnv, TThrowOnError extends ThrowOnErrorUnion = DefaultThrowOnError, TResponseType extends ResponseTypeType = ResponseTypeType, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes = BaseCallApiSchemaRoutes, TSchema$1 extends CallApiSchema = CallApiSchema, TBaseSchemaConfig extends CallApiSchemaConfig = CallApiSchemaConfig, TSchemaConfig$1 extends CallApiSchemaConfig = CallApiSchemaConfig, TInitURL extends InitURLOrURLObject = InitURLOrURLObject, TCurrentRouteSchemaKey extends string = string, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TPluginArray extends CallApiPlugin[] = DefaultPluginArray> = InferExtraOptions<TSchema$1, TBaseSchemaRoutes$1, TCurrentRouteSchemaKey, TCallApiEnv> & InferRequestOptions<TSchema$1, TInitURL> & Omit<CallApiExtraOptions<TData$1, TErrorData$1, TResultMode, TCallApiEnv, TThrowOnError, TResponseType, TBasePluginArray, TPluginArray, TBaseSchemaRoutes$1, TSchema$1, TBaseSchemaConfig, TSchemaConfig$1, TCurrentRouteSchemaKey>, keyof InferExtraOptions<CallApiSchema, BaseCallApiSchemaRoutes, string, CallApiEnv>> & Omit<CallApiRequestOptions, keyof InferRequestOptions<CallApiSchema, string>>;
|
|
1741
|
+
//#endregion
|
|
1742
|
+
//#region src/validation.d.ts
|
|
1743
|
+
type ResultVariant = "infer-input" | "infer-output";
|
|
1744
|
+
type InferSchemaResult<TSchema$1, TFallbackResult, TResultVariant extends ResultVariant> = undefined extends TSchema$1 ? TFallbackResult : TSchema$1 extends StandardSchemaV1 ? TResultVariant extends "infer-input" ? StandardSchemaV1.InferInput<TSchema$1> : StandardSchemaV1.InferOutput<TSchema$1> : TSchema$1 extends AnyFunction$1<infer TResult> ? Awaited<TResult> : TFallbackResult;
|
|
1745
|
+
type InferSchemaOutput<TSchema$1, TFallbackResult = unknown> = InferSchemaResult<TSchema$1, TFallbackResult, "infer-output">;
|
|
1746
|
+
interface CallApiSchemaConfig {
|
|
1747
|
+
/**
|
|
1748
|
+
* The base url of the schema. By default it's the baseURL of the callApi instance.
|
|
1749
|
+
*/
|
|
1750
|
+
baseURL?: string;
|
|
1751
|
+
/**
|
|
1752
|
+
* Disables runtime validation for the schema.
|
|
1753
|
+
*/
|
|
1754
|
+
disableRuntimeValidation?: boolean;
|
|
1755
|
+
/**
|
|
1756
|
+
* If `true`, the original input value will be used instead of the transformed/validated output.
|
|
1757
|
+
*
|
|
1758
|
+
* This is useful when you want to validate the input but don't want any transformations
|
|
1759
|
+
* applied by the validation schema (e.g., type coercion, default values, etc).
|
|
1760
|
+
*/
|
|
1761
|
+
disableValidationOutputApplication?: boolean;
|
|
1762
|
+
/**
|
|
1763
|
+
* Optional url prefix that will be substituted for the `baseURL` of the schemaConfig at runtime.
|
|
1764
|
+
*
|
|
1765
|
+
* This allows you to reuse the same schema against different base URLs (for example,
|
|
1766
|
+
* swapping between `/api/v1` and `/api/v2`) without redefining the entire schema.
|
|
1767
|
+
*/
|
|
1768
|
+
prefix?: string;
|
|
1769
|
+
/**
|
|
1770
|
+
* Controls the strictness of API route validation.
|
|
1771
|
+
*
|
|
1772
|
+
* When true:
|
|
1773
|
+
* - Only routes explicitly defined in the schema will be considered valid to typescript and the runtime.
|
|
1774
|
+
* - Attempting to call routes not defined in the schema will result in both type errors and runtime validation errors.
|
|
1775
|
+
* - Useful for ensuring API calls conform exactly to your schema definition
|
|
1776
|
+
*
|
|
1777
|
+
* When false or undefined (default):
|
|
1778
|
+
* - All routes will be allowed, whether they are defined in the schema or not
|
|
1779
|
+
*/
|
|
1780
|
+
strict?: boolean;
|
|
1781
|
+
}
|
|
1782
|
+
interface CallApiSchema {
|
|
1783
|
+
/**
|
|
1784
|
+
* The schema to use for validating the request body.
|
|
1785
|
+
*/
|
|
1786
|
+
body?: StandardSchemaV1<Body | undefined> | ((body: Body) => Awaitable<Body | undefined>);
|
|
1787
|
+
/**
|
|
1788
|
+
* The schema to use for validating the response data.
|
|
1789
|
+
*/
|
|
1790
|
+
data?: StandardSchemaV1 | ((data: unknown) => unknown);
|
|
1791
|
+
/**
|
|
1792
|
+
* The schema to use for validating the response error data.
|
|
1793
|
+
*/
|
|
1794
|
+
errorData?: StandardSchemaV1 | ((errorData: unknown) => unknown);
|
|
1795
|
+
/**
|
|
1796
|
+
* The schema to use for validating the request headers.
|
|
1797
|
+
*/
|
|
1798
|
+
headers?: StandardSchemaV1<HeadersOption | undefined> | ((headers: HeadersOption) => Awaitable<HeadersOption | undefined>);
|
|
1799
|
+
/**
|
|
1800
|
+
* The schema to use for validating the meta option.
|
|
1801
|
+
*/
|
|
1802
|
+
meta?: StandardSchemaV1<GlobalMeta | undefined> | ((meta: GlobalMeta) => Awaitable<GlobalMeta | undefined>);
|
|
1803
|
+
/**
|
|
1804
|
+
* The schema to use for validating the request method.
|
|
1805
|
+
*/
|
|
1806
|
+
method?: StandardSchemaV1<MethodUnion | undefined> | ((method: MethodUnion) => Awaitable<MethodUnion | undefined>);
|
|
1807
|
+
/**
|
|
1808
|
+
* The schema to use for validating the request url parameters.
|
|
1809
|
+
*/
|
|
1810
|
+
params?: StandardSchemaV1<Params | undefined> | ((params: Params) => Awaitable<Params | undefined>);
|
|
1811
|
+
/**
|
|
1812
|
+
* The schema to use for validating the request url queries.
|
|
1813
|
+
*/
|
|
1814
|
+
query?: StandardSchemaV1<Query | undefined> | ((query: Query) => Awaitable<Query | undefined>);
|
|
1815
|
+
}
|
|
1816
|
+
declare const routeKeyMethods: readonly ["delete", "get", "patch", "post", "put"];
|
|
1817
|
+
type RouteKeyMethods = (typeof routeKeyMethods)[number];
|
|
1818
|
+
type RouteKeyMethodsURLUnion = `@${RouteKeyMethods}/`;
|
|
1819
|
+
type BaseSchemaRouteKeyPrefixes = FallBackRouteSchemaKey | RouteKeyMethodsURLUnion;
|
|
1820
|
+
type BaseCallApiSchemaRoutes = Partial<Record<AnyString | BaseSchemaRouteKeyPrefixes, CallApiSchema>>;
|
|
1821
|
+
type BaseCallApiSchemaAndConfig = {
|
|
1822
|
+
config?: CallApiSchemaConfig;
|
|
1823
|
+
routes: BaseCallApiSchemaRoutes;
|
|
1824
|
+
};
|
|
1825
|
+
//#endregion
|
|
1832
1826
|
//#endregion
|
|
1833
1827
|
//#region src/logger/logger.d.ts
|
|
1834
1828
|
type ConsoleLikeObject = {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zayne-labs/callapi-plugins",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.25",
|
|
5
5
|
"description": "A collection of plugins for callapi",
|
|
6
6
|
"author": "Ryan Zayne",
|
|
7
7
|
"license": "MIT",
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"@zayne-labs/toolkit-type-helpers": ">=0.11.17",
|
|
23
23
|
"consola": "3.x.x",
|
|
24
|
-
"@zayne-labs/callapi": "1.11.
|
|
24
|
+
"@zayne-labs/callapi": "1.11.25"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@arethetypeswrong/cli": "0.18.2",
|
|
28
28
|
"@size-limit/esbuild-why": "11.2.0",
|
|
29
29
|
"@size-limit/preset-small-lib": "11.2.0",
|
|
30
30
|
"@total-typescript/ts-reset": "0.6.1",
|
|
31
|
-
"@zayne-labs/toolkit-type-helpers": "^0.12.
|
|
31
|
+
"@zayne-labs/toolkit-type-helpers": "^0.12.14",
|
|
32
32
|
"@zayne-labs/tsconfig": "0.11.5",
|
|
33
33
|
"concurrently": "^9.2.1",
|
|
34
34
|
"consola": "3.4.2",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"size-limit": "11.2.0",
|
|
38
38
|
"tsdown": "0.15.9",
|
|
39
39
|
"typescript": "5.9.3",
|
|
40
|
-
"vitest": "^4.0.
|
|
41
|
-
"@zayne-labs/callapi": "1.11.
|
|
40
|
+
"vitest": "^4.0.14",
|
|
41
|
+
"@zayne-labs/callapi": "1.11.25"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public",
|