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
@@ -1102,6 +1102,29 @@ var STACK_ITEM_VALID_NAMES = [
1102
1102
  "bound dispatch",
1103
1103
  "mounted_app"
1104
1104
  ];
1105
+ var getRouterInfo = /* @__PURE__ */ __name(function(app) {
1106
+ var _a2, _b;
1107
+ if (app.stack) {
1108
+ return {
1109
+ stack: app.stack,
1110
+ version: "v4"
1111
+ };
1112
+ } else if ((_a2 = app._router) == null ? void 0 : _a2.stack) {
1113
+ return {
1114
+ stack: app._router.stack,
1115
+ version: "v4"
1116
+ };
1117
+ } else if ((_b = app.router) == null ? void 0 : _b.stack) {
1118
+ return {
1119
+ stack: app.router.stack,
1120
+ version: "v5"
1121
+ };
1122
+ }
1123
+ return {
1124
+ stack: null,
1125
+ version: "v4"
1126
+ };
1127
+ }, "getRouterInfo");
1105
1128
  var getRouteMethods = /* @__PURE__ */ __name(function(route) {
1106
1129
  let methods = Object.keys(route.methods);
1107
1130
  methods = methods.filter((method) => method !== "_all");
@@ -1134,12 +1157,12 @@ var parseExpressRoute = /* @__PURE__ */ __name(function(route, basePath) {
1134
1157
  });
1135
1158
  return endpoints;
1136
1159
  }, "parseExpressRoute");
1137
- var parseExpressPath = /* @__PURE__ */ __name(function(expressPathRegExp, params) {
1160
+ var parseExpressPathRegExp = /* @__PURE__ */ __name(function(expressPathRegExp, keys) {
1138
1161
  let parsedRegExp = expressPathRegExp.toString();
1139
1162
  let expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
1140
1163
  let paramIndex = 0;
1141
1164
  while (hasParams(parsedRegExp)) {
1142
- const paramName = params[paramIndex].name;
1165
+ const paramName = keys[paramIndex].name;
1143
1166
  const paramId = `:${paramName}`;
1144
1167
  parsedRegExp = parsedRegExp.replace(regExpToReplaceExpressPathRegExpParams, (str) => {
1145
1168
  if (str.startsWith("(?:\\/")) {
@@ -1152,11 +1175,19 @@ var parseExpressPath = /* @__PURE__ */ __name(function(expressPathRegExp, params
1152
1175
  if (parsedRegExp !== expressPathRegExp.toString()) {
1153
1176
  expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
1154
1177
  }
1155
- const parsedPath = expressPathRegExpExec[1].replace(/\\\//g, "/");
1156
- return parsedPath;
1178
+ return expressPathRegExpExec[1].replace(/\\\//g, "/");
1179
+ }, "parseExpressPathRegExp");
1180
+ var parseExpressPath = /* @__PURE__ */ __name(function(expressPath, params) {
1181
+ let result = expressPath;
1182
+ for (const [paramName, paramValue] of Object.entries(params)) {
1183
+ result = result.replace(paramValue, `:${paramName}`);
1184
+ }
1185
+ return result;
1157
1186
  }, "parseExpressPath");
1158
1187
  var parseEndpoints = /* @__PURE__ */ __name(function(app, basePath, endpoints) {
1159
- const stack = app.stack || app._router && app._router.stack;
1188
+ const routerInfo = getRouterInfo(app);
1189
+ const stack = routerInfo.stack;
1190
+ const version = routerInfo.version;
1160
1191
  endpoints = endpoints || [];
1161
1192
  basePath = basePath || "";
1162
1193
  if (!stack) {
@@ -1170,7 +1201,7 @@ var parseEndpoints = /* @__PURE__ */ __name(function(app, basePath, endpoints) {
1170
1201
  ]);
1171
1202
  }
1172
1203
  } else {
1173
- endpoints = parseStack(stack, basePath, endpoints);
1204
+ endpoints = parseStack(stack, basePath, endpoints, version);
1174
1205
  }
1175
1206
  return endpoints;
1176
1207
  }, "parseEndpoints");
@@ -1186,20 +1217,28 @@ var addEndpoints = /* @__PURE__ */ __name(function(currentEndpoints, endpointsTo
1186
1217
  });
1187
1218
  return currentEndpoints;
1188
1219
  }, "addEndpoints");
1189
- var parseStack = /* @__PURE__ */ __name(function(stack, basePath, endpoints) {
1220
+ var parseStack = /* @__PURE__ */ __name(function(stack, basePath, endpoints, version) {
1190
1221
  stack.forEach((stackItem) => {
1191
1222
  if (stackItem.route) {
1192
1223
  const newEndpoints = parseExpressRoute(stackItem.route, basePath);
1193
1224
  endpoints = addEndpoints(endpoints, newEndpoints);
1194
1225
  } else if (STACK_ITEM_VALID_NAMES.includes(stackItem.name)) {
1195
- const isExpressPathRegexp = regExpToParseExpressPathRegExp.test(stackItem.regexp);
1196
1226
  let newBasePath = basePath;
1197
- if (isExpressPathRegexp) {
1198
- const parsedPath = parseExpressPath(stackItem.regexp, stackItem.keys);
1199
- newBasePath += `/${parsedPath}`;
1200
- } else if (!stackItem.path && stackItem.regexp && stackItem.regexp.toString() !== EXPRESS_ROOT_PATH_REGEXP_VALUE) {
1201
- const regExpPath = ` RegExp(${stackItem.regexp}) `;
1202
- newBasePath += `/${regExpPath}`;
1227
+ if (version === "v4") {
1228
+ const isExpressPathRegExp = regExpToParseExpressPathRegExp.test(stackItem.regexp);
1229
+ if (isExpressPathRegExp) {
1230
+ const parsedPath = parseExpressPathRegExp(stackItem.regexp, stackItem.keys);
1231
+ newBasePath += `/${parsedPath}`;
1232
+ } else if (!stackItem.path && stackItem.regexp && stackItem.regexp.toString() !== EXPRESS_ROOT_PATH_REGEXP_VALUE) {
1233
+ const regExpPath = `RegExp(${stackItem.regexp})`;
1234
+ newBasePath += `/${regExpPath}`;
1235
+ }
1236
+ } else if (version === "v5") {
1237
+ if (!stackItem.path) {
1238
+ return;
1239
+ } else if (stackItem.path !== "/") {
1240
+ newBasePath += stackItem.path.startsWith("/") ? stackItem.path : `/${stackItem.path}`;
1241
+ }
1203
1242
  }
1204
1243
  endpoints = parseEndpoints(stackItem.handle, newBasePath, endpoints);
1205
1244
  }
@@ -1250,7 +1289,7 @@ var getMiddleware = /* @__PURE__ */ __name((app, client) => {
1250
1289
  }
1251
1290
  return originalSend.call(res, body);
1252
1291
  };
1253
- res.on("finish", () => {
1292
+ res.once("finish", () => {
1254
1293
  try {
1255
1294
  const responseTime = import_perf_hooks.performance.now() - startTime;
1256
1295
  const path = getRoutePath(req);
@@ -1349,8 +1388,11 @@ var getRoutePath = /* @__PURE__ */ __name((req) => {
1349
1388
  return;
1350
1389
  }
1351
1390
  if (req.baseUrl) {
1352
- const routerPath = getRouterPath(req.app._router.stack, req.baseUrl);
1353
- return req.route.path === "/" ? routerPath : routerPath + req.route.path;
1391
+ const routerInfo = getRouterInfo(req.app);
1392
+ if (routerInfo.stack) {
1393
+ const routerPath = getRouterPath(routerInfo.stack, req.baseUrl);
1394
+ return req.route.path === "/" ? routerPath : routerPath + req.route.path;
1395
+ }
1354
1396
  }
1355
1397
  return req.route.path;
1356
1398
  }, "getRoutePath");
@@ -1360,12 +1402,15 @@ var getRouterPath = /* @__PURE__ */ __name((stack, baseUrl) => {
1360
1402
  while (stack && stack.length > 0) {
1361
1403
  const routerLayer = stack.find((layer) => {
1362
1404
  var _a3;
1363
- return layer.name === "router" && layer.path && ((_a3 = layer.regexp) == null ? void 0 : _a3.test(baseUrl));
1405
+ return layer.name === "router" && layer.path && (baseUrl.startsWith(layer.path) || ((_a3 = layer.regexp) == null ? void 0 : _a3.test(baseUrl)));
1364
1406
  });
1365
1407
  if (routerLayer) {
1366
- if (routerLayer.keys.length > 0) {
1367
- const parsedPath = parseExpressPath(routerLayer.regexp, routerLayer.keys);
1408
+ if (routerLayer.regexp && routerLayer.keys && routerLayer.keys.length > 0) {
1409
+ const parsedPath = parseExpressPathRegExp(routerLayer.regexp, routerLayer.keys);
1368
1410
  routerPaths.push("/" + parsedPath);
1411
+ } else if (routerLayer.params && Object.keys(routerLayer.params).length > 0) {
1412
+ const parsedPath = parseExpressPath(routerLayer.path, routerLayer.params);
1413
+ routerPaths.push(parsedPath);
1369
1414
  } else {
1370
1415
  routerPaths.push(routerLayer.path);
1371
1416
  }