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