@zayne-labs/callapi-plugins 4.0.20 → 4.0.22
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _zayne_labs_callapi_utils0 from "@zayne-labs/callapi/utils";
|
|
2
2
|
import { AnyFunction } from "@zayne-labs/toolkit-type-helpers";
|
|
3
3
|
|
|
4
|
-
//#region ../callapi/dist/
|
|
4
|
+
//#region ../callapi/dist/validation-Dq--Q5zC.d.ts
|
|
5
5
|
//#region src/constants/common.d.ts
|
|
6
6
|
declare const fetchSpecificKeys: readonly (keyof RequestInit | "duplex")[];
|
|
7
7
|
//#endregion
|
|
@@ -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/common-DvZQWmH6.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>;
|
|
@@ -305,7 +305,7 @@ interface URLOptions {
|
|
|
305
305
|
//#region src/validation.d.ts
|
|
306
306
|
type ResultVariant = "infer-input" | "infer-output";
|
|
307
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
|
|
308
|
+
type InferSchemaOutput<TSchema$1, TFallbackResult = unknown> = InferSchemaResult<TSchema$1, TFallbackResult, "infer-output">;
|
|
309
309
|
interface CallApiSchemaConfig {
|
|
310
310
|
/**
|
|
311
311
|
* The base url of the schema. By default it's the baseURL of the callApi instance.
|
|
@@ -346,7 +346,7 @@ interface CallApiSchema {
|
|
|
346
346
|
/**
|
|
347
347
|
* The schema to use for validating the request body.
|
|
348
348
|
*/
|
|
349
|
-
body?: StandardSchemaV1<Body> | ((body: Body) => Awaitable<Body>);
|
|
349
|
+
body?: StandardSchemaV1<Body | undefined> | ((body: Body) => Awaitable<Body | undefined>);
|
|
350
350
|
/**
|
|
351
351
|
* The schema to use for validating the response data.
|
|
352
352
|
*/
|
|
@@ -1177,7 +1177,7 @@ interface RetryOptions<TErrorData$1> {
|
|
|
1177
1177
|
/**
|
|
1178
1178
|
* @description Makes a type partial if the output type of TSchema is not provided or has undefined in the union, otherwise makes it required
|
|
1179
1179
|
*/
|
|
1180
|
-
type MakeSchemaOptionRequiredIfDefined<TSchemaOption extends CallApiSchema[keyof CallApiSchema], TObject> = undefined extends
|
|
1180
|
+
type MakeSchemaOptionRequiredIfDefined<TSchemaOption extends CallApiSchema[keyof CallApiSchema], TObject> = undefined extends InferSchemaOutput<TSchemaOption, undefined> ? TObject : Required<TObject>;
|
|
1181
1181
|
type ApplyURLBasedConfig<TSchemaConfig$1 extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig$1["prefix"] extends string ? `${TSchemaConfig$1["prefix"]}${TSchemaRouteKeys}` : TSchemaConfig$1["baseURL"] extends string ? `${TSchemaConfig$1["baseURL"]}${TSchemaRouteKeys}` : TSchemaRouteKeys;
|
|
1182
1182
|
type ApplyStrictConfig<TSchemaConfig$1 extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig$1["strict"] extends true ? TSchemaRouteKeys :
|
|
1183
1183
|
// eslint-disable-next-line perfectionist/sort-union-types -- Don't sort union types
|
|
@@ -1189,12 +1189,12 @@ type GetCurrentRouteSchema<TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes,
|
|
|
1189
1189
|
type JsonPrimitive = boolean | number | string | null | undefined;
|
|
1190
1190
|
type SerializableObject = Record<PropertyKey, unknown>;
|
|
1191
1191
|
type SerializableArray = Array<JsonPrimitive | SerializableObject> | ReadonlyArray<JsonPrimitive | SerializableObject>;
|
|
1192
|
-
type Body = UnmaskType<RequestInit["body"] | SerializableArray | SerializableObject>;
|
|
1192
|
+
type Body = UnmaskType<Exclude<RequestInit["body"], undefined> | SerializableArray | SerializableObject>;
|
|
1193
1193
|
type InferBodyOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema$1["body"], {
|
|
1194
1194
|
/**
|
|
1195
1195
|
* Body of the request, can be a object or any other supported body type.
|
|
1196
1196
|
*/
|
|
1197
|
-
body?:
|
|
1197
|
+
body?: InferSchemaOutput<TSchema$1["body"], Body>;
|
|
1198
1198
|
}>;
|
|
1199
1199
|
type MethodUnion = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
1200
1200
|
type InferMethodFromURL<TInitURL> = string extends TInitURL ? MethodUnion : TInitURL extends `@${infer TMethod extends RouteKeyMethods}/${string}` ? Uppercase<TMethod> : MethodUnion;
|
|
@@ -1203,16 +1203,16 @@ type InferMethodOption<TSchema$1 extends CallApiSchema, TInitURL> = MakeSchemaOp
|
|
|
1203
1203
|
* HTTP method for the request.
|
|
1204
1204
|
* @default "GET"
|
|
1205
1205
|
*/
|
|
1206
|
-
method?:
|
|
1206
|
+
method?: InferSchemaOutput<TSchema$1["method"], InferMethodFromURL<TInitURL>>;
|
|
1207
1207
|
}>;
|
|
1208
1208
|
type HeadersOption = UnmaskType<Record<"Authorization", CommonAuthorizationHeaders | undefined> | Record<"Content-Type", CommonContentTypes | undefined> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | Array<[string, string]>>;
|
|
1209
1209
|
type InferHeadersOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema$1["headers"], {
|
|
1210
1210
|
/**
|
|
1211
1211
|
* Headers to be used in the request.
|
|
1212
1212
|
*/
|
|
1213
|
-
headers?:
|
|
1213
|
+
headers?: InferSchemaOutput<TSchema$1["headers"], HeadersOption> | ((context: {
|
|
1214
1214
|
baseHeaders: NonNullable<HeadersOption>;
|
|
1215
|
-
}) =>
|
|
1215
|
+
}) => InferSchemaOutput<TSchema$1["headers"], HeadersOption>);
|
|
1216
1216
|
}>;
|
|
1217
1217
|
type InferRequestOptions<TSchema$1 extends CallApiSchema, TInitURL extends InferInitURL<BaseCallApiSchemaRoutes, CallApiSchemaConfig>> = InferBodyOption<TSchema$1> & InferHeadersOption<TSchema$1> & InferMethodOption<TSchema$1, TInitURL>;
|
|
1218
1218
|
interface Register {}
|
|
@@ -1243,13 +1243,13 @@ type InferMetaOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequired
|
|
|
1243
1243
|
* });
|
|
1244
1244
|
* ```
|
|
1245
1245
|
*/
|
|
1246
|
-
meta?:
|
|
1246
|
+
meta?: InferSchemaOutput<TSchema$1["meta"], GlobalMeta>;
|
|
1247
1247
|
}>;
|
|
1248
1248
|
type InferQueryOption<TSchema$1 extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema$1["query"], {
|
|
1249
1249
|
/**
|
|
1250
1250
|
* Parameters to be appended to the URL (i.e: /:id)
|
|
1251
1251
|
*/
|
|
1252
|
-
query?:
|
|
1252
|
+
query?: InferSchemaOutput<TSchema$1["query"], Query>;
|
|
1253
1253
|
}>;
|
|
1254
1254
|
type EmptyString = "";
|
|
1255
1255
|
type EmptyTuple = readonly [];
|
|
@@ -1259,15 +1259,15 @@ type ExtractRouteParamNames<TCurrentRoute$1, TParamNamesAccumulator extends Stri
|
|
|
1259
1259
|
type ConvertParamNamesToRecord<TParamNames extends StringTuple> = Prettify<TParamNames extends (readonly [infer TFirstParamName extends string, ...infer TRemainingParamNames extends StringTuple]) ? Record<TFirstParamName, AllowedQueryParamValues> & ConvertParamNamesToRecord<TRemainingParamNames> : NonNullable<unknown>>;
|
|
1260
1260
|
type ConvertParamNamesToTuple<TParamNames extends StringTuple> = TParamNames extends readonly [string, ...infer TRemainingParamNames extends StringTuple] ? [AllowedQueryParamValues, ...ConvertParamNamesToTuple<TRemainingParamNames>] : [];
|
|
1261
1261
|
type InferParamsFromRoute<TCurrentRoute$1> = ExtractRouteParamNames<TCurrentRoute$1> extends StringTuple ? ExtractRouteParamNames<TCurrentRoute$1> extends EmptyTuple ? Params : ConvertParamNamesToRecord<ExtractRouteParamNames<TCurrentRoute$1>> | ConvertParamNamesToTuple<ExtractRouteParamNames<TCurrentRoute$1>> : Params;
|
|
1262
|
-
type MakeParamsOptionRequired<TParamsSchemaOption extends CallApiSchema["params"], TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TObject> = MakeSchemaOptionRequiredIfDefined<TParamsSchemaOption, Params extends InferParamsFromRoute<TCurrentRouteSchemaKey> ? TObject : TCurrentRouteSchemaKey extends Extract<keyof TBaseSchemaRoutes$1, TCurrentRouteSchemaKey> ? undefined extends
|
|
1262
|
+
type MakeParamsOptionRequired<TParamsSchemaOption extends CallApiSchema["params"], TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TObject> = MakeSchemaOptionRequiredIfDefined<TParamsSchemaOption, Params extends InferParamsFromRoute<TCurrentRouteSchemaKey> ? TObject : TCurrentRouteSchemaKey extends Extract<keyof TBaseSchemaRoutes$1, TCurrentRouteSchemaKey> ? undefined extends InferSchemaOutput<TParamsSchemaOption, null> ? TObject : Required<TObject> : TObject>;
|
|
1263
1263
|
type InferParamsOption<TSchema$1 extends CallApiSchema, TBaseSchemaRoutes$1 extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string> = MakeParamsOptionRequired<TSchema$1["params"], TBaseSchemaRoutes$1, TCurrentRouteSchemaKey, {
|
|
1264
1264
|
/**
|
|
1265
1265
|
* Parameters to be appended to the URL (i.e: /:id)
|
|
1266
1266
|
*/
|
|
1267
|
-
params?:
|
|
1267
|
+
params?: InferSchemaOutput<TSchema$1["params"], InferParamsFromRoute<TCurrentRouteSchemaKey>>;
|
|
1268
1268
|
}>;
|
|
1269
1269
|
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>;
|
|
1270
|
-
type InferPluginOptions<TPluginArray extends CallApiPlugin[]> = UnionToIntersection<TPluginArray extends Array<infer TPlugin> ? TPlugin extends CallApiPlugin ? TPlugin["defineExtraOptions"] extends AnyFunction$1<infer TReturnedSchema> ?
|
|
1270
|
+
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>;
|
|
1271
1271
|
type ResultModeOption<TErrorData$1, TResultMode extends ResultModeType> = TErrorData$1 extends false ? {
|
|
1272
1272
|
resultMode: "onlyData";
|
|
1273
1273
|
} : TErrorData$1 extends false | undefined ? {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["defaultConsoleObject: ConsoleLikeObject"],"sources":["../src/logger/constants.ts","../src/logger/utils.ts","../src/logger/logger.ts"],"sourcesContent":["export const getStatusTextMap = () => {\n\treturn new Map<number, string>([\n\t\t[100, \"Continue\"],\n\t\t[101, \"Switching Protocols\"],\n\t\t[102, \"Processing\"],\n\t\t[200, \"OK\"],\n\t\t[201, \"Created\"],\n\t\t[202, \"Accepted\"],\n\t\t[203, \"Non-Authoritative Information\"],\n\t\t[204, \"No Content\"],\n\t\t[205, \"Reset Content\"],\n\t\t[206, \"Partial Content\"],\n\t\t[207, \"Multi-Status\"],\n\t\t[208, \"Already Reported\"],\n\t\t[226, \"IM Used\"],\n\t\t[300, \"Multiple Choices\"],\n\t\t[301, \"Moved Permanently\"],\n\t\t[302, \"Found\"],\n\t\t[303, \"See Other\"],\n\t\t[304, \"Not Modified\"],\n\t\t[305, \"Use Proxy\"],\n\t\t[307, \"Temporary Redirect\"],\n\t\t[308, \"Permanent Redirect\"],\n\t\t[400, \"Bad Request\"],\n\t\t[401, \"Unauthorized\"],\n\t\t[402, \"Payment Required\"],\n\t\t[403, \"Forbidden\"],\n\t\t[404, \"Not Found\"],\n\t\t[405, \"Method Not Allowed\"],\n\t\t[406, \"Not Acceptable\"],\n\t\t[407, \"Proxy Authentication Required\"],\n\t\t[408, \"Request Timeout\"],\n\t\t[409, \"Conflict\"],\n\t\t[410, \"Gone\"],\n\t\t[411, \"Length Required\"],\n\t\t[412, \"Precondition Failed\"],\n\t\t[413, \"Payload Too Large\"],\n\t\t[414, \"URI Too Long\"],\n\t\t[415, \"Unsupported Media Type\"],\n\t\t[416, \"Range Not Satisfiable\"],\n\t\t[417, \"Expectation Failed\"],\n\t\t[418, \"I'm a teapot\"],\n\t\t[421, \"Misdirected Request\"],\n\t\t[422, \"Unprocessable Entity\"],\n\t\t[423, \"Locked\"],\n\t\t[424, \"Failed Dependency\"],\n\t\t[425, \"Too Early\"],\n\t\t[426, \"Upgrade Required\"],\n\t\t[428, \"Precondition Required\"],\n\t\t[429, \"Too Many Requests\"],\n\t\t[431, \"Request Header Fields Too Large\"],\n\t\t[451, \"Unavailable For Legal Reasons\"],\n\t\t[500, \"Internal Server Error\"],\n\t\t[501, \"Not Implemented\"],\n\t\t[502, \"Bad Gateway\"],\n\t\t[503, \"Service Unavailable\"],\n\t\t[504, \"Gateway Timeout\"],\n\t\t[505, \"HTTP Version Not Supported\"],\n\t\t[506, \"Variant Also Negotiates\"],\n\t\t[507, \"Insufficient Storage\"],\n\t\t[508, \"Loop Detected\"],\n\t\t[510, \"Not Extended\"],\n\t\t[511, \"Network Authentication Required\"],\n\t]);\n};\n","import { getStatusTextMap } from \"./constants\";\n\nexport const getStatusText = (status: number) => {\n\tconst statusTextMap = getStatusTextMap();\n\n\tconst statusText = statusTextMap.get(status) ?? \"Unknown\";\n\n\treturn statusText;\n};\n","import { definePlugin } from \"@zayne-labs/callapi/utils\";\nimport { type AnyFunction, isBoolean } from \"@zayne-labs/toolkit-type-helpers\";\nimport { createConsola } from \"consola\";\nimport { getStatusText } from \"./utils\";\n\ntype ConsoleLikeObject = {\n\terror: AnyFunction<void>;\n\tfail?: AnyFunction<void>;\n\tlog: AnyFunction<void>;\n\tsuccess?: AnyFunction<void>;\n\twarn?: AnyFunction<void>;\n};\n\nconst consola = createConsola({\n\tformatOptions: {\n\t\tcolors: true,\n\t\tcolumns: 80,\n\t\tcompact: 10,\n\t\tdate: false,\n\t\tfancy: true,\n\t},\n});\n\nexport type LoggerOptions = {\n\t/**\n\t * Custom console object\n\t */\n\tconsoleObject?: ConsoleLikeObject;\n\t/**\n\t * Enable or disable the logger\n\t * @default true\n\t */\n\tenabled?:\n\t\t| boolean\n\t\t| {\n\t\t\t\tonError?: boolean;\n\t\t\t\tonRequest?: boolean;\n\t\t\t\tonRequestError?: boolean;\n\t\t\t\tonResponse?: boolean;\n\t\t\t\tonResponseError?: boolean;\n\t\t\t\tonRetry?: boolean;\n\t\t\t\tonSuccess?: boolean;\n\t\t\t\tonValidationError?: boolean;\n\t\t };\n\t/**\n\t * Enable or disable verbose mode\n\t */\n\tmode?: \"basic\" | \"verbose\";\n};\n\n/* eslint-disable ts-eslint/no-unsafe-argument -- Ignore for now */\nexport const defaultConsoleObject: ConsoleLikeObject = {\n\terror: (...args) => consola.error(\"\", ...args),\n\tfail: (...args) => consola.fail(\"\", ...args),\n\tlog: (...args) => consola.info(\"\", ...args),\n\tsuccess: (...args) => consola.success(\"\", ...args),\n\twarn: (...args) => consola.warn(\"\", ...args),\n};\n/* eslint-enable ts-eslint/no-unsafe-argument -- Ignore for now */\n\nexport const loggerPlugin = (options?: LoggerOptions) => {\n\tconst { consoleObject = defaultConsoleObject, enabled = true, mode = \"basic\" } = options ?? {};\n\n\tconst isBasicMode = mode === \"basic\";\n\tconst isVerboseMode = mode === \"verbose\";\n\n\tconst lineBreak = \"\\n\";\n\n\tconst successLog = consoleObject.success ?? consoleObject.log;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Ignore\n\tconst errorLog = consoleObject.error ?? consoleObject.fail ?? consoleObject.log;\n\n\treturn definePlugin({\n\t\t/* eslint-disable perfectionist/sort-objects -- Ignore for now */\n\t\tid: \"logger\",\n\t\tname: \"Logger\",\n\t\tversion: \"1.1.0\",\n\n\t\thooks: {\n\t\t\t/* eslint-enable perfectionist/sort-objects -- Ignore */\n\t\t\tonRequest: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onRequest === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconsoleObject.log(`Request being sent to: ${ctx.options.fullURL}`);\n\t\t\t},\n\n\t\t\tonRequestError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onRequestError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst message = [\n\t\t\t\t\t`${ctx.request.method} to '${ctx.options.fullURL}' failed!`,\n\t\t\t\t\t`Reason = ${ctx.error.name}: ${ctx.error.message}`,\n\t\t\t\t].join(lineBreak);\n\n\t\t\t\terrorLog(message);\n\t\t\t},\n\n\t\t\tonResponseError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onResponseError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst message = [\n\t\t\t\t\t`${ctx.request.method} request to '${ctx.options.fullURL}' failed with status: ${ctx.response.status} (${ctx.response.statusText || getStatusText(ctx.response.status)})`,\n\t\t\t\t\t`Reason = \"${ctx.error.name}: ${ctx.error.message}\"`,\n\t\t\t\t].join(lineBreak);\n\n\t\t\t\tisBasicMode && errorLog(message);\n\n\t\t\t\tconst verboseMessage = [message, \"ErrorData: \"].join(lineBreak);\n\n\t\t\t\tisVerboseMode && consoleObject.error(verboseMessage, ctx.error.errorData);\n\t\t\t},\n\n\t\t\tonRetry: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onRetry === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst log = consoleObject.warn ?? consoleObject.log;\n\n\t\t\t\tlog(`Retrying request... Attempt: `, ctx.retryAttemptCount);\n\t\t\t},\n\n\t\t\tonSuccess: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onSuccess === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tsuccessLog(\"Request succeeded!\", ctx.data);\n\t\t\t},\n\n\t\t\tonValidationError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onValidationError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst getMessage = (limit: number | null = null) => {\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\tlimit === null ?\n\t\t\t\t\t\t\tctx.error.message\n\t\t\t\t\t\t:\t`${ctx.error.message.slice(0, limit).trimEnd()}${ctx.error.message.length > limit ? \"...\" : \"\"}`;\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\t`(${ctx.error.issueCause.toUpperCase()}) Validation for request to '${ctx.options.fullURL}' failed!`,\n\t\t\t\t\t\t`${ctx.error.name}: ${errorMessage}`,\n\t\t\t\t\t].join(lineBreak);\n\t\t\t\t};\n\n\t\t\t\tisBasicMode && errorLog(getMessage(150));\n\n\t\t\t\tconst verboseMessage = [getMessage(), \"Issues: \"].join(lineBreak);\n\n\t\t\t\tisVerboseMode && consoleObject.error(verboseMessage, ctx.error.errorData);\n\t\t\t},\n\t\t},\n\t});\n};\n"],"mappings":"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"}
|
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.22",
|
|
5
5
|
"description": "A collection of plugins for callapi",
|
|
6
6
|
"author": "Ryan Zayne",
|
|
7
7
|
"license": "MIT",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "git+https://github.com/zayne-labs/callapi.git"
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
|
-
"exports": "./dist/
|
|
14
|
+
"exports": "./dist/index.js",
|
|
15
15
|
"files": [
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
@@ -21,24 +21,24 @@
|
|
|
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.22"
|
|
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.
|
|
32
|
-
"@zayne-labs/tsconfig": "0.11.
|
|
31
|
+
"@zayne-labs/toolkit-type-helpers": "^0.12.12",
|
|
32
|
+
"@zayne-labs/tsconfig": "0.11.5",
|
|
33
33
|
"concurrently": "^9.2.1",
|
|
34
34
|
"consola": "3.4.2",
|
|
35
35
|
"cross-env": "^10.1.0",
|
|
36
36
|
"publint": "^0.3.15",
|
|
37
37
|
"size-limit": "11.2.0",
|
|
38
|
-
"tsdown": "
|
|
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.8",
|
|
41
|
+
"@zayne-labs/callapi": "1.11.22"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public",
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["defaultConsoleObject: ConsoleLikeObject"],"sources":["../../src/logger/constants.ts","../../src/logger/utils.ts","../../src/logger/logger.ts"],"sourcesContent":["export const getStatusTextMap = () => {\n\treturn new Map<number, string>([\n\t\t[100, \"Continue\"],\n\t\t[101, \"Switching Protocols\"],\n\t\t[102, \"Processing\"],\n\t\t[200, \"OK\"],\n\t\t[201, \"Created\"],\n\t\t[202, \"Accepted\"],\n\t\t[203, \"Non-Authoritative Information\"],\n\t\t[204, \"No Content\"],\n\t\t[205, \"Reset Content\"],\n\t\t[206, \"Partial Content\"],\n\t\t[207, \"Multi-Status\"],\n\t\t[208, \"Already Reported\"],\n\t\t[226, \"IM Used\"],\n\t\t[300, \"Multiple Choices\"],\n\t\t[301, \"Moved Permanently\"],\n\t\t[302, \"Found\"],\n\t\t[303, \"See Other\"],\n\t\t[304, \"Not Modified\"],\n\t\t[305, \"Use Proxy\"],\n\t\t[307, \"Temporary Redirect\"],\n\t\t[308, \"Permanent Redirect\"],\n\t\t[400, \"Bad Request\"],\n\t\t[401, \"Unauthorized\"],\n\t\t[402, \"Payment Required\"],\n\t\t[403, \"Forbidden\"],\n\t\t[404, \"Not Found\"],\n\t\t[405, \"Method Not Allowed\"],\n\t\t[406, \"Not Acceptable\"],\n\t\t[407, \"Proxy Authentication Required\"],\n\t\t[408, \"Request Timeout\"],\n\t\t[409, \"Conflict\"],\n\t\t[410, \"Gone\"],\n\t\t[411, \"Length Required\"],\n\t\t[412, \"Precondition Failed\"],\n\t\t[413, \"Payload Too Large\"],\n\t\t[414, \"URI Too Long\"],\n\t\t[415, \"Unsupported Media Type\"],\n\t\t[416, \"Range Not Satisfiable\"],\n\t\t[417, \"Expectation Failed\"],\n\t\t[418, \"I'm a teapot\"],\n\t\t[421, \"Misdirected Request\"],\n\t\t[422, \"Unprocessable Entity\"],\n\t\t[423, \"Locked\"],\n\t\t[424, \"Failed Dependency\"],\n\t\t[425, \"Too Early\"],\n\t\t[426, \"Upgrade Required\"],\n\t\t[428, \"Precondition Required\"],\n\t\t[429, \"Too Many Requests\"],\n\t\t[431, \"Request Header Fields Too Large\"],\n\t\t[451, \"Unavailable For Legal Reasons\"],\n\t\t[500, \"Internal Server Error\"],\n\t\t[501, \"Not Implemented\"],\n\t\t[502, \"Bad Gateway\"],\n\t\t[503, \"Service Unavailable\"],\n\t\t[504, \"Gateway Timeout\"],\n\t\t[505, \"HTTP Version Not Supported\"],\n\t\t[506, \"Variant Also Negotiates\"],\n\t\t[507, \"Insufficient Storage\"],\n\t\t[508, \"Loop Detected\"],\n\t\t[510, \"Not Extended\"],\n\t\t[511, \"Network Authentication Required\"],\n\t]);\n};\n","import { getStatusTextMap } from \"./constants\";\n\nexport const getStatusText = (status: number) => {\n\tconst statusTextMap = getStatusTextMap();\n\n\tconst statusText = statusTextMap.get(status) ?? \"Unknown\";\n\n\treturn statusText;\n};\n","import { definePlugin } from \"@zayne-labs/callapi/utils\";\nimport { type AnyFunction, isBoolean } from \"@zayne-labs/toolkit-type-helpers\";\nimport { createConsola } from \"consola\";\nimport { getStatusText } from \"./utils\";\n\ntype ConsoleLikeObject = {\n\terror: AnyFunction<void>;\n\tfail?: AnyFunction<void>;\n\tlog: AnyFunction<void>;\n\tsuccess?: AnyFunction<void>;\n\twarn?: AnyFunction<void>;\n};\n\nconst consola = createConsola({\n\tformatOptions: {\n\t\tcolors: true,\n\t\tcolumns: 80,\n\t\tcompact: 10,\n\t\tdate: false,\n\t\tfancy: true,\n\t},\n});\n\nexport type LoggerOptions = {\n\t/**\n\t * Custom console object\n\t */\n\tconsoleObject?: ConsoleLikeObject;\n\t/**\n\t * Enable or disable the logger\n\t * @default true\n\t */\n\tenabled?:\n\t\t| boolean\n\t\t| {\n\t\t\t\tonError?: boolean;\n\t\t\t\tonRequest?: boolean;\n\t\t\t\tonRequestError?: boolean;\n\t\t\t\tonResponse?: boolean;\n\t\t\t\tonResponseError?: boolean;\n\t\t\t\tonRetry?: boolean;\n\t\t\t\tonSuccess?: boolean;\n\t\t\t\tonValidationError?: boolean;\n\t\t };\n\t/**\n\t * Enable or disable verbose mode\n\t */\n\tmode?: \"basic\" | \"verbose\";\n};\n\n/* eslint-disable ts-eslint/no-unsafe-argument -- Ignore for now */\nexport const defaultConsoleObject: ConsoleLikeObject = {\n\terror: (...args) => consola.error(\"\", ...args),\n\tfail: (...args) => consola.fail(\"\", ...args),\n\tlog: (...args) => consola.info(\"\", ...args),\n\tsuccess: (...args) => consola.success(\"\", ...args),\n\twarn: (...args) => consola.warn(\"\", ...args),\n};\n/* eslint-enable ts-eslint/no-unsafe-argument -- Ignore for now */\n\nexport const loggerPlugin = (options?: LoggerOptions) => {\n\tconst { consoleObject = defaultConsoleObject, enabled = true, mode = \"basic\" } = options ?? {};\n\n\tconst isBasicMode = mode === \"basic\";\n\tconst isVerboseMode = mode === \"verbose\";\n\n\tconst lineBreak = \"\\n\";\n\n\tconst successLog = consoleObject.success ?? consoleObject.log;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Ignore\n\tconst errorLog = consoleObject.error ?? consoleObject.fail ?? consoleObject.log;\n\n\treturn definePlugin({\n\t\t/* eslint-disable perfectionist/sort-objects -- Ignore for now */\n\t\tid: \"logger\",\n\t\tname: \"Logger\",\n\t\tversion: \"1.1.0\",\n\n\t\thooks: {\n\t\t\t/* eslint-enable perfectionist/sort-objects -- Ignore */\n\t\t\tonRequest: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onRequest === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconsoleObject.log(`Request being sent to: ${ctx.options.fullURL}`);\n\t\t\t},\n\n\t\t\tonRequestError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onRequestError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst message = [\n\t\t\t\t\t`${ctx.request.method} to '${ctx.options.fullURL}' failed!`,\n\t\t\t\t\t`Reason = ${ctx.error.name}: ${ctx.error.message}`,\n\t\t\t\t].join(lineBreak);\n\n\t\t\t\terrorLog(message);\n\t\t\t},\n\n\t\t\tonResponseError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onResponseError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst message = [\n\t\t\t\t\t`${ctx.request.method} request to '${ctx.options.fullURL}' failed with status: ${ctx.response.status} (${ctx.response.statusText || getStatusText(ctx.response.status)})`,\n\t\t\t\t\t`Reason = \"${ctx.error.name}: ${ctx.error.message}\"`,\n\t\t\t\t].join(lineBreak);\n\n\t\t\t\tisBasicMode && errorLog(message);\n\n\t\t\t\tconst verboseMessage = [message, \"ErrorData: \"].join(lineBreak);\n\n\t\t\t\tisVerboseMode && consoleObject.error(verboseMessage, ctx.error.errorData);\n\t\t\t},\n\n\t\t\tonRetry: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onRetry === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst log = consoleObject.warn ?? consoleObject.log;\n\n\t\t\t\tlog(`Retrying request... Attempt: `, ctx.retryAttemptCount);\n\t\t\t},\n\n\t\t\tonSuccess: (ctx) => {\n\t\t\t\tconst isEnabled = isBoolean(enabled) ? enabled : enabled.onSuccess === true;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tsuccessLog(\"Request succeeded!\", ctx.data);\n\t\t\t},\n\n\t\t\tonValidationError: (ctx) => {\n\t\t\t\tconst isEnabled =\n\t\t\t\t\tisBoolean(enabled) ? enabled : enabled.onValidationError === true || enabled.onError;\n\n\t\t\t\tif (!isEnabled) return;\n\n\t\t\t\tconst getMessage = (limit: number | null = null) => {\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\tlimit === null ?\n\t\t\t\t\t\t\tctx.error.message\n\t\t\t\t\t\t:\t`${ctx.error.message.slice(0, limit).trimEnd()}${ctx.error.message.length > limit ? \"...\" : \"\"}`;\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\t`(${ctx.error.issueCause.toUpperCase()}) Validation for request to '${ctx.options.fullURL}' failed!`,\n\t\t\t\t\t\t`${ctx.error.name}: ${errorMessage}`,\n\t\t\t\t\t].join(lineBreak);\n\t\t\t\t};\n\n\t\t\t\tisBasicMode && errorLog(getMessage(150));\n\n\t\t\t\tconst verboseMessage = [getMessage(), \"Issues: \"].join(lineBreak);\n\n\t\t\t\tisVerboseMode && consoleObject.error(verboseMessage, ctx.error.errorData);\n\t\t\t},\n\t\t},\n\t});\n};\n"],"mappings":"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"}
|
|
File without changes
|