apitally 0.13.0 → 0.15.0
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 +29 -10
- package/dist/adonisjs/index.cjs +6 -4
- package/dist/adonisjs/index.cjs.map +1 -1
- package/dist/adonisjs/index.d.cts +2 -2
- package/dist/adonisjs/index.d.ts +2 -2
- package/dist/adonisjs/index.js +6 -4
- package/dist/adonisjs/index.js.map +1 -1
- package/dist/adonisjs/middleware.cjs +19 -19
- package/dist/adonisjs/middleware.cjs.map +1 -1
- package/dist/adonisjs/middleware.js +19 -19
- package/dist/adonisjs/middleware.js.map +1 -1
- package/dist/adonisjs/provider.cjs +11 -4
- package/dist/adonisjs/provider.cjs.map +1 -1
- package/dist/adonisjs/provider.js +11 -4
- package/dist/adonisjs/provider.js.map +1 -1
- package/dist/common/client.cjs +5 -0
- package/dist/common/client.cjs.map +1 -1
- package/dist/common/client.js +5 -0
- package/dist/common/client.js.map +1 -1
- package/dist/common/consumerRegistry.cjs.map +1 -1
- package/dist/common/consumerRegistry.js.map +1 -1
- package/dist/common/{utils.cjs → headers.cjs} +14 -5
- package/dist/common/headers.cjs.map +1 -0
- package/dist/common/{utils.d.cts → headers.d.cts} +2 -1
- package/dist/common/{utils.d.ts → headers.d.ts} +2 -1
- package/dist/common/{utils.js → headers.js} +10 -2
- package/dist/common/headers.js.map +1 -0
- package/dist/common/requestCounter.cjs.map +1 -1
- package/dist/common/requestCounter.js.map +1 -1
- package/dist/common/requestLogger.cjs +5 -0
- package/dist/common/requestLogger.cjs.map +1 -1
- package/dist/common/requestLogger.d.cts +1 -0
- package/dist/common/requestLogger.d.ts +1 -0
- package/dist/common/requestLogger.js +5 -0
- package/dist/common/requestLogger.js.map +1 -1
- package/dist/common/response.cjs +106 -0
- package/dist/common/response.cjs.map +1 -0
- package/dist/common/response.d.cts +6 -0
- package/dist/common/response.d.ts +6 -0
- package/dist/common/response.js +80 -0
- package/dist/common/response.js.map +1 -0
- package/dist/common/serverErrorCounter.cjs.map +1 -1
- package/dist/common/serverErrorCounter.js.map +1 -1
- package/dist/common/tempGzipFile.cjs.map +1 -1
- package/dist/common/tempGzipFile.js.map +1 -1
- package/dist/common/types.cjs.map +1 -1
- package/dist/common/types.d.cts +0 -1
- package/dist/common/types.d.ts +0 -1
- package/dist/common/validationErrorCounter.cjs.map +1 -1
- package/dist/common/validationErrorCounter.js.map +1 -1
- package/dist/express/index.cjs +134 -62
- package/dist/express/index.cjs.map +1 -1
- package/dist/express/index.d.cts +2 -2
- package/dist/express/index.d.ts +2 -2
- package/dist/express/index.js +132 -61
- package/dist/express/index.js.map +1 -1
- package/dist/express/middleware.cjs +134 -62
- package/dist/express/middleware.cjs.map +1 -1
- package/dist/express/middleware.d.cts +5 -4
- package/dist/express/middleware.d.ts +5 -4
- package/dist/express/middleware.js +132 -61
- package/dist/express/middleware.js.map +1 -1
- package/dist/express/utils.cjs +59 -16
- package/dist/express/utils.cjs.map +1 -1
- package/dist/express/utils.d.cts +11 -2
- package/dist/express/utils.d.ts +11 -2
- package/dist/express/utils.js +56 -15
- package/dist/express/utils.js.map +1 -1
- package/dist/fastify/index.cjs +44 -29
- package/dist/fastify/index.cjs.map +1 -1
- package/dist/fastify/index.d.cts +2 -2
- package/dist/fastify/index.d.ts +2 -2
- package/dist/fastify/index.js +41 -27
- package/dist/fastify/index.js.map +1 -1
- package/dist/fastify/plugin.cjs +46 -28
- package/dist/fastify/plugin.cjs.map +1 -1
- package/dist/fastify/plugin.d.cts +3 -2
- package/dist/fastify/plugin.d.ts +3 -2
- package/dist/fastify/plugin.js +41 -27
- package/dist/fastify/plugin.js.map +1 -1
- package/dist/h3/index.cjs +1336 -0
- package/dist/h3/index.cjs.map +1 -0
- package/dist/h3/index.d.cts +9 -0
- package/dist/h3/index.d.ts +9 -0
- package/dist/h3/index.js +1305 -0
- package/dist/h3/index.js.map +1 -0
- package/dist/h3/plugin.cjs +1334 -0
- package/dist/h3/plugin.cjs.map +1 -0
- package/dist/h3/plugin.d.cts +21 -0
- package/dist/h3/plugin.d.ts +21 -0
- package/dist/h3/plugin.js +1305 -0
- package/dist/h3/plugin.js.map +1 -0
- package/dist/h3/utils.cjs +127 -0
- package/dist/h3/utils.cjs.map +1 -0
- package/dist/h3/utils.d.cts +14 -0
- package/dist/h3/utils.d.ts +14 -0
- package/dist/h3/utils.js +107 -0
- package/dist/h3/utils.js.map +1 -0
- package/dist/hono/index.cjs +177 -141
- package/dist/hono/index.cjs.map +1 -1
- package/dist/hono/index.d.cts +2 -2
- package/dist/hono/index.d.ts +2 -2
- package/dist/hono/index.js +175 -140
- package/dist/hono/index.js.map +1 -1
- package/dist/hono/middleware.cjs +177 -141
- package/dist/hono/middleware.cjs.map +1 -1
- package/dist/hono/middleware.d.cts +4 -3
- package/dist/hono/middleware.d.ts +4 -3
- package/dist/hono/middleware.js +175 -140
- package/dist/hono/middleware.js.map +1 -1
- package/dist/hono/utils.cjs +126 -0
- package/dist/hono/utils.cjs.map +1 -0
- package/dist/hono/utils.d.cts +14 -0
- package/dist/hono/utils.d.ts +14 -0
- package/dist/hono/utils.js +106 -0
- package/dist/hono/utils.js.map +1 -0
- package/dist/koa/index.cjs +41 -17
- package/dist/koa/index.cjs.map +1 -1
- package/dist/koa/index.d.cts +2 -2
- package/dist/koa/index.d.ts +2 -2
- package/dist/koa/index.js +40 -17
- package/dist/koa/index.js.map +1 -1
- package/dist/koa/middleware.cjs +41 -17
- package/dist/koa/middleware.cjs.map +1 -1
- package/dist/koa/middleware.d.cts +4 -3
- package/dist/koa/middleware.d.ts +4 -3
- package/dist/koa/middleware.js +40 -17
- package/dist/koa/middleware.js.map +1 -1
- package/dist/nestjs/index.cjs +131 -64
- package/dist/nestjs/index.cjs.map +1 -1
- package/dist/nestjs/index.d.cts +2 -2
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +130 -63
- package/dist/nestjs/index.js.map +1 -1
- package/package.json +46 -53
- package/dist/common/utils.cjs.map +0 -1
- package/dist/common/utils.js.map +0 -1
package/dist/hono/middleware.cjs
CHANGED
|
@@ -33,10 +33,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
33
33
|
// src/hono/middleware.ts
|
|
34
34
|
var middleware_exports = {};
|
|
35
35
|
__export(middleware_exports, {
|
|
36
|
+
setConsumer: () => setConsumer,
|
|
36
37
|
useApitally: () => useApitally
|
|
37
38
|
});
|
|
38
39
|
module.exports = __toCommonJS(middleware_exports);
|
|
39
|
-
var import_handler = require("hono/utils/handler");
|
|
40
40
|
var import_perf_hooks = require("perf_hooks");
|
|
41
41
|
|
|
42
42
|
// src/common/client.ts
|
|
@@ -403,6 +403,8 @@ var BODY_MASKED = import_buffer2.Buffer.from("<masked>");
|
|
|
403
403
|
var MASKED = "******";
|
|
404
404
|
var ALLOWED_CONTENT_TYPES = [
|
|
405
405
|
"application/json",
|
|
406
|
+
"application/problem+json",
|
|
407
|
+
"application/vnd.api+json",
|
|
406
408
|
"text/plain"
|
|
407
409
|
];
|
|
408
410
|
var EXCLUDE_PATH_PATTERNS = [
|
|
@@ -467,6 +469,9 @@ var _RequestLogger = class _RequestLogger {
|
|
|
467
469
|
}, 1e3);
|
|
468
470
|
}
|
|
469
471
|
}
|
|
472
|
+
get maxBodySize() {
|
|
473
|
+
return MAX_BODY_SIZE;
|
|
474
|
+
}
|
|
470
475
|
shouldExcludePath(urlPath) {
|
|
471
476
|
const patterns = [
|
|
472
477
|
...this.config.excludePaths,
|
|
@@ -1021,25 +1026,7 @@ __name(_ApitallyClient, "ApitallyClient");
|
|
|
1021
1026
|
__publicField(_ApitallyClient, "instance");
|
|
1022
1027
|
var ApitallyClient = _ApitallyClient;
|
|
1023
1028
|
|
|
1024
|
-
// src/common/
|
|
1025
|
-
var import_module = require("module");
|
|
1026
|
-
var import_meta = {};
|
|
1027
|
-
function getPackageVersion(name) {
|
|
1028
|
-
const packageJsonPath = `${name}/package.json`;
|
|
1029
|
-
try {
|
|
1030
|
-
return require(packageJsonPath).version || null;
|
|
1031
|
-
} catch (error) {
|
|
1032
|
-
try {
|
|
1033
|
-
const _require = (0, import_module.createRequire)(import_meta.url);
|
|
1034
|
-
return _require(packageJsonPath).version || null;
|
|
1035
|
-
} catch (error2) {
|
|
1036
|
-
return null;
|
|
1037
|
-
}
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1040
|
-
__name(getPackageVersion, "getPackageVersion");
|
|
1041
|
-
|
|
1042
|
-
// src/common/utils.ts
|
|
1029
|
+
// src/common/headers.ts
|
|
1043
1030
|
function parseContentLength(contentLength) {
|
|
1044
1031
|
if (contentLength === void 0 || contentLength === null) {
|
|
1045
1032
|
return void 0;
|
|
@@ -1058,102 +1045,8 @@ function parseContentLength(contentLength) {
|
|
|
1058
1045
|
}
|
|
1059
1046
|
__name(parseContentLength, "parseContentLength");
|
|
1060
1047
|
|
|
1061
|
-
// src/
|
|
1062
|
-
|
|
1063
|
-
const client = new ApitallyClient(config);
|
|
1064
|
-
const middleware = getMiddleware(client);
|
|
1065
|
-
app.use(middleware);
|
|
1066
|
-
setTimeout(() => {
|
|
1067
|
-
client.setStartupData(getAppInfo(app, config.appVersion));
|
|
1068
|
-
}, 1e3);
|
|
1069
|
-
}, "useApitally");
|
|
1070
|
-
var getMiddleware = /* @__PURE__ */ __name((client) => {
|
|
1071
|
-
return async (c, next) => {
|
|
1072
|
-
if (!client.isEnabled()) {
|
|
1073
|
-
await next();
|
|
1074
|
-
return;
|
|
1075
|
-
}
|
|
1076
|
-
const startTime = import_perf_hooks.performance.now();
|
|
1077
|
-
await next();
|
|
1078
|
-
let response;
|
|
1079
|
-
const responseTime = import_perf_hooks.performance.now() - startTime;
|
|
1080
|
-
const [responseSize, newResponse] = await measureResponseSize(c.res);
|
|
1081
|
-
const requestSize = parseContentLength(c.req.header("content-length"));
|
|
1082
|
-
const consumer = getConsumer(c);
|
|
1083
|
-
client.consumerRegistry.addOrUpdateConsumer(consumer);
|
|
1084
|
-
client.requestCounter.addRequest({
|
|
1085
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1086
|
-
method: c.req.method,
|
|
1087
|
-
path: c.req.routePath,
|
|
1088
|
-
statusCode: c.res.status,
|
|
1089
|
-
responseTime,
|
|
1090
|
-
requestSize,
|
|
1091
|
-
responseSize
|
|
1092
|
-
});
|
|
1093
|
-
response = newResponse;
|
|
1094
|
-
if (c.res.status === 400) {
|
|
1095
|
-
const [responseJson, newResponse2] = await getResponseJson(response);
|
|
1096
|
-
const validationErrors = extractZodErrors(responseJson);
|
|
1097
|
-
validationErrors.forEach((error) => {
|
|
1098
|
-
client.validationErrorCounter.addValidationError({
|
|
1099
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1100
|
-
method: c.req.method,
|
|
1101
|
-
path: c.req.routePath,
|
|
1102
|
-
...error
|
|
1103
|
-
});
|
|
1104
|
-
});
|
|
1105
|
-
response = newResponse2;
|
|
1106
|
-
}
|
|
1107
|
-
if (c.error) {
|
|
1108
|
-
client.serverErrorCounter.addServerError({
|
|
1109
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1110
|
-
method: c.req.method,
|
|
1111
|
-
path: c.req.routePath,
|
|
1112
|
-
type: c.error.name,
|
|
1113
|
-
msg: c.error.message,
|
|
1114
|
-
traceback: c.error.stack || ""
|
|
1115
|
-
});
|
|
1116
|
-
}
|
|
1117
|
-
if (client.requestLogger.enabled) {
|
|
1118
|
-
let requestBody;
|
|
1119
|
-
let responseBody;
|
|
1120
|
-
let newResponse2 = response;
|
|
1121
|
-
const responseContentType = c.res.headers.get("content-type");
|
|
1122
|
-
if (client.requestLogger.config.logRequestBody) {
|
|
1123
|
-
requestBody = Buffer.from(await c.req.arrayBuffer());
|
|
1124
|
-
}
|
|
1125
|
-
if (client.requestLogger.config.logResponseBody && client.requestLogger.isSupportedContentType(responseContentType)) {
|
|
1126
|
-
[responseBody, newResponse2] = await getResponseBody(response);
|
|
1127
|
-
response = newResponse2;
|
|
1128
|
-
}
|
|
1129
|
-
client.requestLogger.logRequest({
|
|
1130
|
-
timestamp: Date.now() / 1e3,
|
|
1131
|
-
method: c.req.method,
|
|
1132
|
-
path: c.req.routePath,
|
|
1133
|
-
url: c.req.url,
|
|
1134
|
-
headers: convertHeaders(c.req.header()),
|
|
1135
|
-
size: Number(requestSize),
|
|
1136
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1137
|
-
body: requestBody
|
|
1138
|
-
}, {
|
|
1139
|
-
statusCode: c.res.status,
|
|
1140
|
-
responseTime: responseTime / 1e3,
|
|
1141
|
-
headers: convertHeaders(c.res.headers),
|
|
1142
|
-
size: responseSize,
|
|
1143
|
-
body: responseBody
|
|
1144
|
-
}, c.error);
|
|
1145
|
-
}
|
|
1146
|
-
c.res = response;
|
|
1147
|
-
};
|
|
1148
|
-
}, "getMiddleware");
|
|
1149
|
-
var getConsumer = /* @__PURE__ */ __name((c) => {
|
|
1150
|
-
const consumer = c.get("apitallyConsumer");
|
|
1151
|
-
if (consumer) {
|
|
1152
|
-
return consumerFromStringOrObject(consumer);
|
|
1153
|
-
}
|
|
1154
|
-
return null;
|
|
1155
|
-
}, "getConsumer");
|
|
1156
|
-
var measureResponseSize = /* @__PURE__ */ __name(async (response) => {
|
|
1048
|
+
// src/common/response.ts
|
|
1049
|
+
async function measureResponseSize(response) {
|
|
1157
1050
|
const [newResponse1, newResponse2] = await teeResponse(response);
|
|
1158
1051
|
let size = 0;
|
|
1159
1052
|
if (newResponse2.body) {
|
|
@@ -1171,18 +1064,20 @@ var measureResponseSize = /* @__PURE__ */ __name(async (response) => {
|
|
|
1171
1064
|
size,
|
|
1172
1065
|
newResponse1
|
|
1173
1066
|
];
|
|
1174
|
-
}
|
|
1175
|
-
|
|
1067
|
+
}
|
|
1068
|
+
__name(measureResponseSize, "measureResponseSize");
|
|
1069
|
+
async function getResponseBody(response) {
|
|
1176
1070
|
const [newResponse1, newResponse2] = await teeResponse(response);
|
|
1177
1071
|
const responseBuffer = Buffer.from(await newResponse2.arrayBuffer());
|
|
1178
1072
|
return [
|
|
1179
1073
|
responseBuffer,
|
|
1180
1074
|
newResponse1
|
|
1181
1075
|
];
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1076
|
+
}
|
|
1077
|
+
__name(getResponseBody, "getResponseBody");
|
|
1078
|
+
async function getResponseJson(response) {
|
|
1184
1079
|
const contentType = response.headers.get("content-type");
|
|
1185
|
-
if (contentType
|
|
1080
|
+
if (contentType == null ? void 0 : contentType.includes("application/json")) {
|
|
1186
1081
|
const [newResponse1, newResponse2] = await teeResponse(response);
|
|
1187
1082
|
const responseJson = await newResponse2.json();
|
|
1188
1083
|
return [
|
|
@@ -1194,8 +1089,9 @@ var getResponseJson = /* @__PURE__ */ __name(async (response) => {
|
|
|
1194
1089
|
null,
|
|
1195
1090
|
response
|
|
1196
1091
|
];
|
|
1197
|
-
}
|
|
1198
|
-
|
|
1092
|
+
}
|
|
1093
|
+
__name(getResponseJson, "getResponseJson");
|
|
1094
|
+
async function teeResponse(response) {
|
|
1199
1095
|
if (!response.body) {
|
|
1200
1096
|
return [
|
|
1201
1097
|
response,
|
|
@@ -1217,22 +1113,32 @@ var teeResponse = /* @__PURE__ */ __name(async (response) => {
|
|
|
1217
1113
|
newResponse1,
|
|
1218
1114
|
newResponse2
|
|
1219
1115
|
];
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1116
|
+
}
|
|
1117
|
+
__name(teeResponse, "teeResponse");
|
|
1118
|
+
|
|
1119
|
+
// src/hono/utils.ts
|
|
1120
|
+
var import_handler = require("hono/utils/handler");
|
|
1121
|
+
|
|
1122
|
+
// src/common/packageVersions.ts
|
|
1123
|
+
var import_module = require("module");
|
|
1124
|
+
var import_meta = {};
|
|
1125
|
+
function getPackageVersion(name) {
|
|
1126
|
+
const packageJsonPath = `${name}/package.json`;
|
|
1127
|
+
try {
|
|
1128
|
+
return require(packageJsonPath).version || null;
|
|
1129
|
+
} catch (error) {
|
|
1130
|
+
try {
|
|
1131
|
+
const _require = (0, import_module.createRequire)(import_meta.url);
|
|
1132
|
+
return _require(packageJsonPath).version || null;
|
|
1133
|
+
} catch (error2) {
|
|
1134
|
+
return null;
|
|
1135
|
+
}
|
|
1232
1136
|
}
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1137
|
+
}
|
|
1138
|
+
__name(getPackageVersion, "getPackageVersion");
|
|
1139
|
+
|
|
1140
|
+
// src/hono/utils.ts
|
|
1141
|
+
function getAppInfo(app, appVersion) {
|
|
1236
1142
|
const versions = [];
|
|
1237
1143
|
if (process.versions.node) {
|
|
1238
1144
|
versions.push([
|
|
@@ -1271,8 +1177,9 @@ var getAppInfo = /* @__PURE__ */ __name((app, appVersion) => {
|
|
|
1271
1177
|
versions: Object.fromEntries(versions),
|
|
1272
1178
|
client: "js:hono"
|
|
1273
1179
|
};
|
|
1274
|
-
}
|
|
1275
|
-
|
|
1180
|
+
}
|
|
1181
|
+
__name(getAppInfo, "getAppInfo");
|
|
1182
|
+
function listEndpoints(app) {
|
|
1276
1183
|
const endpoints = [];
|
|
1277
1184
|
app.routes.forEach((route) => {
|
|
1278
1185
|
if (route.method !== "ALL" && !(0, import_handler.isMiddleware)(route.handler)) {
|
|
@@ -1283,9 +1190,138 @@ var listEndpoints = /* @__PURE__ */ __name((app) => {
|
|
|
1283
1190
|
}
|
|
1284
1191
|
});
|
|
1285
1192
|
return endpoints;
|
|
1286
|
-
}
|
|
1193
|
+
}
|
|
1194
|
+
__name(listEndpoints, "listEndpoints");
|
|
1195
|
+
function extractZodErrors(responseJson) {
|
|
1196
|
+
var _a2;
|
|
1197
|
+
const errors = [];
|
|
1198
|
+
if (responseJson && responseJson.success === false && responseJson.error && responseJson.error.name === "ZodError") {
|
|
1199
|
+
const zodError = responseJson.error;
|
|
1200
|
+
(_a2 = zodError.issues) == null ? void 0 : _a2.forEach((zodIssue) => {
|
|
1201
|
+
errors.push({
|
|
1202
|
+
loc: zodIssue.path.join("."),
|
|
1203
|
+
msg: zodIssue.message,
|
|
1204
|
+
type: zodIssue.code
|
|
1205
|
+
});
|
|
1206
|
+
});
|
|
1207
|
+
}
|
|
1208
|
+
return errors;
|
|
1209
|
+
}
|
|
1210
|
+
__name(extractZodErrors, "extractZodErrors");
|
|
1211
|
+
|
|
1212
|
+
// src/hono/middleware.ts
|
|
1213
|
+
function useApitally(app, config) {
|
|
1214
|
+
const client = new ApitallyClient(config);
|
|
1215
|
+
const middleware = getMiddleware(client);
|
|
1216
|
+
app.use(middleware);
|
|
1217
|
+
const setStartupData = /* @__PURE__ */ __name((attempt = 1) => {
|
|
1218
|
+
const appInfo = getAppInfo(app, config.appVersion);
|
|
1219
|
+
if (appInfo.paths.length > 0 || attempt >= 10) {
|
|
1220
|
+
client.setStartupData(appInfo);
|
|
1221
|
+
} else {
|
|
1222
|
+
setTimeout(() => setStartupData(attempt + 1), 500);
|
|
1223
|
+
}
|
|
1224
|
+
}, "setStartupData");
|
|
1225
|
+
setTimeout(() => setStartupData(), 500);
|
|
1226
|
+
}
|
|
1227
|
+
__name(useApitally, "useApitally");
|
|
1228
|
+
function getMiddleware(client) {
|
|
1229
|
+
return async (c, next) => {
|
|
1230
|
+
if (!client.isEnabled()) {
|
|
1231
|
+
await next();
|
|
1232
|
+
return;
|
|
1233
|
+
}
|
|
1234
|
+
const timestamp = Date.now() / 1e3;
|
|
1235
|
+
const startTime = import_perf_hooks.performance.now();
|
|
1236
|
+
await next();
|
|
1237
|
+
let response;
|
|
1238
|
+
const responseTime = import_perf_hooks.performance.now() - startTime;
|
|
1239
|
+
const [responseSize, newResponse] = await measureResponseSize(c.res);
|
|
1240
|
+
const requestSize = parseContentLength(c.req.header("content-length"));
|
|
1241
|
+
const consumer = getConsumer(c);
|
|
1242
|
+
client.consumerRegistry.addOrUpdateConsumer(consumer);
|
|
1243
|
+
client.requestCounter.addRequest({
|
|
1244
|
+
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1245
|
+
method: c.req.method,
|
|
1246
|
+
path: c.req.routePath,
|
|
1247
|
+
statusCode: c.res.status,
|
|
1248
|
+
responseTime,
|
|
1249
|
+
requestSize,
|
|
1250
|
+
responseSize
|
|
1251
|
+
});
|
|
1252
|
+
response = newResponse;
|
|
1253
|
+
if (c.res.status === 400) {
|
|
1254
|
+
const [responseJson, newResponse2] = await getResponseJson(response);
|
|
1255
|
+
const validationErrors = extractZodErrors(responseJson);
|
|
1256
|
+
validationErrors.forEach((error) => {
|
|
1257
|
+
client.validationErrorCounter.addValidationError({
|
|
1258
|
+
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1259
|
+
method: c.req.method,
|
|
1260
|
+
path: c.req.routePath,
|
|
1261
|
+
...error
|
|
1262
|
+
});
|
|
1263
|
+
});
|
|
1264
|
+
response = newResponse2;
|
|
1265
|
+
}
|
|
1266
|
+
if (c.error) {
|
|
1267
|
+
client.serverErrorCounter.addServerError({
|
|
1268
|
+
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1269
|
+
method: c.req.method,
|
|
1270
|
+
path: c.req.routePath,
|
|
1271
|
+
type: c.error.name,
|
|
1272
|
+
msg: c.error.message,
|
|
1273
|
+
traceback: c.error.stack || ""
|
|
1274
|
+
});
|
|
1275
|
+
}
|
|
1276
|
+
if (client.requestLogger.enabled) {
|
|
1277
|
+
let requestBody;
|
|
1278
|
+
let responseBody;
|
|
1279
|
+
let newResponse2 = response;
|
|
1280
|
+
const requestContentType = c.req.header("content-type");
|
|
1281
|
+
const responseContentType = c.res.headers.get("content-type");
|
|
1282
|
+
if (client.requestLogger.config.logRequestBody && client.requestLogger.isSupportedContentType(requestContentType)) {
|
|
1283
|
+
requestBody = Buffer.from(await c.req.arrayBuffer());
|
|
1284
|
+
}
|
|
1285
|
+
if (client.requestLogger.config.logResponseBody && client.requestLogger.isSupportedContentType(responseContentType)) {
|
|
1286
|
+
[responseBody, newResponse2] = await getResponseBody(response);
|
|
1287
|
+
response = newResponse2;
|
|
1288
|
+
}
|
|
1289
|
+
client.requestLogger.logRequest({
|
|
1290
|
+
timestamp,
|
|
1291
|
+
method: c.req.method,
|
|
1292
|
+
path: c.req.routePath,
|
|
1293
|
+
url: c.req.url,
|
|
1294
|
+
headers: convertHeaders(c.req.header()),
|
|
1295
|
+
size: Number(requestSize),
|
|
1296
|
+
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
1297
|
+
body: requestBody
|
|
1298
|
+
}, {
|
|
1299
|
+
statusCode: c.res.status,
|
|
1300
|
+
responseTime: responseTime / 1e3,
|
|
1301
|
+
headers: convertHeaders(c.res.headers),
|
|
1302
|
+
size: responseSize,
|
|
1303
|
+
body: responseBody
|
|
1304
|
+
}, c.error);
|
|
1305
|
+
}
|
|
1306
|
+
c.res = response;
|
|
1307
|
+
};
|
|
1308
|
+
}
|
|
1309
|
+
__name(getMiddleware, "getMiddleware");
|
|
1310
|
+
function setConsumer(c, consumer) {
|
|
1311
|
+
c.set("apitallyConsumer", consumer || void 0);
|
|
1312
|
+
}
|
|
1313
|
+
__name(setConsumer, "setConsumer");
|
|
1314
|
+
function getConsumer(c) {
|
|
1315
|
+
const consumer = c.get("apitallyConsumer");
|
|
1316
|
+
if (consumer) {
|
|
1317
|
+
return consumerFromStringOrObject(consumer);
|
|
1318
|
+
}
|
|
1319
|
+
return null;
|
|
1320
|
+
}
|
|
1321
|
+
__name(getConsumer, "getConsumer");
|
|
1287
1322
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1288
1323
|
0 && (module.exports = {
|
|
1324
|
+
setConsumer,
|
|
1289
1325
|
useApitally
|
|
1290
1326
|
});
|
|
1291
1327
|
//# sourceMappingURL=middleware.cjs.map
|