apitally 0.13.0 → 0.14.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.
Files changed (51) hide show
  1. package/README.md +6 -10
  2. package/dist/adonisjs/provider.cjs.map +1 -1
  3. package/dist/adonisjs/provider.js.map +1 -1
  4. package/dist/common/client.cjs.map +1 -1
  5. package/dist/common/client.js.map +1 -1
  6. package/dist/common/consumerRegistry.cjs.map +1 -1
  7. package/dist/common/consumerRegistry.js.map +1 -1
  8. package/dist/common/requestCounter.cjs.map +1 -1
  9. package/dist/common/requestCounter.js.map +1 -1
  10. package/dist/common/requestLogger.cjs.map +1 -1
  11. package/dist/common/requestLogger.js.map +1 -1
  12. package/dist/common/serverErrorCounter.cjs.map +1 -1
  13. package/dist/common/serverErrorCounter.js.map +1 -1
  14. package/dist/common/tempGzipFile.cjs.map +1 -1
  15. package/dist/common/tempGzipFile.js.map +1 -1
  16. package/dist/common/types.cjs.map +1 -1
  17. package/dist/common/types.d.cts +0 -1
  18. package/dist/common/types.d.ts +0 -1
  19. package/dist/common/validationErrorCounter.cjs.map +1 -1
  20. package/dist/common/validationErrorCounter.js.map +1 -1
  21. package/dist/express/index.cjs +65 -20
  22. package/dist/express/index.cjs.map +1 -1
  23. package/dist/express/index.js +65 -20
  24. package/dist/express/index.js.map +1 -1
  25. package/dist/express/middleware.cjs +65 -20
  26. package/dist/express/middleware.cjs.map +1 -1
  27. package/dist/express/middleware.js +65 -20
  28. package/dist/express/middleware.js.map +1 -1
  29. package/dist/express/utils.cjs +59 -16
  30. package/dist/express/utils.cjs.map +1 -1
  31. package/dist/express/utils.d.cts +11 -2
  32. package/dist/express/utils.d.ts +11 -2
  33. package/dist/express/utils.js +56 -15
  34. package/dist/express/utils.js.map +1 -1
  35. package/dist/fastify/index.cjs.map +1 -1
  36. package/dist/fastify/index.js.map +1 -1
  37. package/dist/fastify/plugin.cjs.map +1 -1
  38. package/dist/fastify/plugin.js.map +1 -1
  39. package/dist/hono/index.cjs.map +1 -1
  40. package/dist/hono/index.js.map +1 -1
  41. package/dist/hono/middleware.cjs.map +1 -1
  42. package/dist/hono/middleware.js.map +1 -1
  43. package/dist/koa/index.cjs.map +1 -1
  44. package/dist/koa/index.js.map +1 -1
  45. package/dist/koa/middleware.cjs.map +1 -1
  46. package/dist/koa/middleware.js.map +1 -1
  47. package/dist/nestjs/index.cjs +65 -20
  48. package/dist/nestjs/index.cjs.map +1 -1
  49. package/dist/nestjs/index.js +65 -20
  50. package/dist/nestjs/index.js.map +1 -1
  51. package/package.json +26 -52
@@ -1073,6 +1073,29 @@ var STACK_ITEM_VALID_NAMES = [
1073
1073
  "bound dispatch",
1074
1074
  "mounted_app"
1075
1075
  ];
1076
+ var getRouterInfo = /* @__PURE__ */ __name(function(app) {
1077
+ var _a2, _b;
1078
+ if (app.stack) {
1079
+ return {
1080
+ stack: app.stack,
1081
+ version: "v4"
1082
+ };
1083
+ } else if ((_a2 = app._router) == null ? void 0 : _a2.stack) {
1084
+ return {
1085
+ stack: app._router.stack,
1086
+ version: "v4"
1087
+ };
1088
+ } else if ((_b = app.router) == null ? void 0 : _b.stack) {
1089
+ return {
1090
+ stack: app.router.stack,
1091
+ version: "v5"
1092
+ };
1093
+ }
1094
+ return {
1095
+ stack: null,
1096
+ version: "v4"
1097
+ };
1098
+ }, "getRouterInfo");
1076
1099
  var getRouteMethods = /* @__PURE__ */ __name(function(route) {
1077
1100
  let methods = Object.keys(route.methods);
1078
1101
  methods = methods.filter((method) => method !== "_all");
@@ -1105,12 +1128,12 @@ var parseExpressRoute = /* @__PURE__ */ __name(function(route, basePath) {
1105
1128
  });
1106
1129
  return endpoints;
1107
1130
  }, "parseExpressRoute");
1108
- var parseExpressPath = /* @__PURE__ */ __name(function(expressPathRegExp, params) {
1131
+ var parseExpressPathRegExp = /* @__PURE__ */ __name(function(expressPathRegExp, keys) {
1109
1132
  let parsedRegExp = expressPathRegExp.toString();
1110
1133
  let expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
1111
1134
  let paramIndex = 0;
1112
1135
  while (hasParams(parsedRegExp)) {
1113
- const paramName = params[paramIndex].name;
1136
+ const paramName = keys[paramIndex].name;
1114
1137
  const paramId = `:${paramName}`;
1115
1138
  parsedRegExp = parsedRegExp.replace(regExpToReplaceExpressPathRegExpParams, (str) => {
1116
1139
  if (str.startsWith("(?:\\/")) {
@@ -1123,11 +1146,19 @@ var parseExpressPath = /* @__PURE__ */ __name(function(expressPathRegExp, params
1123
1146
  if (parsedRegExp !== expressPathRegExp.toString()) {
1124
1147
  expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
1125
1148
  }
1126
- const parsedPath = expressPathRegExpExec[1].replace(/\\\//g, "/");
1127
- return parsedPath;
1149
+ return expressPathRegExpExec[1].replace(/\\\//g, "/");
1150
+ }, "parseExpressPathRegExp");
1151
+ var parseExpressPath = /* @__PURE__ */ __name(function(expressPath, params) {
1152
+ let result = expressPath;
1153
+ for (const [paramName, paramValue] of Object.entries(params)) {
1154
+ result = result.replace(paramValue, `:${paramName}`);
1155
+ }
1156
+ return result;
1128
1157
  }, "parseExpressPath");
1129
1158
  var parseEndpoints = /* @__PURE__ */ __name(function(app, basePath, endpoints) {
1130
- const stack = app.stack || app._router && app._router.stack;
1159
+ const routerInfo = getRouterInfo(app);
1160
+ const stack = routerInfo.stack;
1161
+ const version = routerInfo.version;
1131
1162
  endpoints = endpoints || [];
1132
1163
  basePath = basePath || "";
1133
1164
  if (!stack) {
@@ -1141,7 +1172,7 @@ var parseEndpoints = /* @__PURE__ */ __name(function(app, basePath, endpoints) {
1141
1172
  ]);
1142
1173
  }
1143
1174
  } else {
1144
- endpoints = parseStack(stack, basePath, endpoints);
1175
+ endpoints = parseStack(stack, basePath, endpoints, version);
1145
1176
  }
1146
1177
  return endpoints;
1147
1178
  }, "parseEndpoints");
@@ -1157,20 +1188,28 @@ var addEndpoints = /* @__PURE__ */ __name(function(currentEndpoints, endpointsTo
1157
1188
  });
1158
1189
  return currentEndpoints;
1159
1190
  }, "addEndpoints");
1160
- var parseStack = /* @__PURE__ */ __name(function(stack, basePath, endpoints) {
1191
+ var parseStack = /* @__PURE__ */ __name(function(stack, basePath, endpoints, version) {
1161
1192
  stack.forEach((stackItem) => {
1162
1193
  if (stackItem.route) {
1163
1194
  const newEndpoints = parseExpressRoute(stackItem.route, basePath);
1164
1195
  endpoints = addEndpoints(endpoints, newEndpoints);
1165
1196
  } else if (STACK_ITEM_VALID_NAMES.includes(stackItem.name)) {
1166
- const isExpressPathRegexp = regExpToParseExpressPathRegExp.test(stackItem.regexp);
1167
1197
  let newBasePath = basePath;
1168
- if (isExpressPathRegexp) {
1169
- const parsedPath = parseExpressPath(stackItem.regexp, stackItem.keys);
1170
- newBasePath += `/${parsedPath}`;
1171
- } else if (!stackItem.path && stackItem.regexp && stackItem.regexp.toString() !== EXPRESS_ROOT_PATH_REGEXP_VALUE) {
1172
- const regExpPath = ` RegExp(${stackItem.regexp}) `;
1173
- newBasePath += `/${regExpPath}`;
1198
+ if (version === "v4") {
1199
+ const isExpressPathRegExp = regExpToParseExpressPathRegExp.test(stackItem.regexp);
1200
+ if (isExpressPathRegExp) {
1201
+ const parsedPath = parseExpressPathRegExp(stackItem.regexp, stackItem.keys);
1202
+ newBasePath += `/${parsedPath}`;
1203
+ } else if (!stackItem.path && stackItem.regexp && stackItem.regexp.toString() !== EXPRESS_ROOT_PATH_REGEXP_VALUE) {
1204
+ const regExpPath = `RegExp(${stackItem.regexp})`;
1205
+ newBasePath += `/${regExpPath}`;
1206
+ }
1207
+ } else if (version === "v5") {
1208
+ if (!stackItem.path) {
1209
+ return;
1210
+ } else if (stackItem.path !== "/") {
1211
+ newBasePath += stackItem.path.startsWith("/") ? stackItem.path : `/${stackItem.path}`;
1212
+ }
1174
1213
  }
1175
1214
  endpoints = parseEndpoints(stackItem.handle, newBasePath, endpoints);
1176
1215
  }
@@ -1221,7 +1260,7 @@ var getMiddleware = /* @__PURE__ */ __name((app, client) => {
1221
1260
  }
1222
1261
  return originalSend.call(res, body);
1223
1262
  };
1224
- res.on("finish", () => {
1263
+ res.once("finish", () => {
1225
1264
  try {
1226
1265
  const responseTime = performance.now() - startTime;
1227
1266
  const path = getRoutePath(req);
@@ -1320,8 +1359,11 @@ var getRoutePath = /* @__PURE__ */ __name((req) => {
1320
1359
  return;
1321
1360
  }
1322
1361
  if (req.baseUrl) {
1323
- const routerPath = getRouterPath(req.app._router.stack, req.baseUrl);
1324
- return req.route.path === "/" ? routerPath : routerPath + req.route.path;
1362
+ const routerInfo = getRouterInfo(req.app);
1363
+ if (routerInfo.stack) {
1364
+ const routerPath = getRouterPath(routerInfo.stack, req.baseUrl);
1365
+ return req.route.path === "/" ? routerPath : routerPath + req.route.path;
1366
+ }
1325
1367
  }
1326
1368
  return req.route.path;
1327
1369
  }, "getRoutePath");
@@ -1331,12 +1373,15 @@ var getRouterPath = /* @__PURE__ */ __name((stack, baseUrl) => {
1331
1373
  while (stack && stack.length > 0) {
1332
1374
  const routerLayer = stack.find((layer) => {
1333
1375
  var _a3;
1334
- return layer.name === "router" && layer.path && ((_a3 = layer.regexp) == null ? void 0 : _a3.test(baseUrl));
1376
+ return layer.name === "router" && layer.path && (baseUrl.startsWith(layer.path) || ((_a3 = layer.regexp) == null ? void 0 : _a3.test(baseUrl)));
1335
1377
  });
1336
1378
  if (routerLayer) {
1337
- if (routerLayer.keys.length > 0) {
1338
- const parsedPath = parseExpressPath(routerLayer.regexp, routerLayer.keys);
1379
+ if (routerLayer.regexp && routerLayer.keys && routerLayer.keys.length > 0) {
1380
+ const parsedPath = parseExpressPathRegExp(routerLayer.regexp, routerLayer.keys);
1339
1381
  routerPaths.push("/" + parsedPath);
1382
+ } else if (routerLayer.params && Object.keys(routerLayer.params).length > 0) {
1383
+ const parsedPath = parseExpressPath(routerLayer.path, routerLayer.params);
1384
+ routerPaths.push(parsedPath);
1340
1385
  } else {
1341
1386
  routerPaths.push(routerLayer.path);
1342
1387
  }