apitally 0.19.0 → 0.21.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 (128) hide show
  1. package/README.md +98 -43
  2. package/dist/adonisjs/middleware.cjs +3 -0
  3. package/dist/adonisjs/middleware.cjs.map +1 -1
  4. package/dist/adonisjs/middleware.js +3 -0
  5. package/dist/adonisjs/middleware.js.map +1 -1
  6. package/dist/adonisjs/provider.cjs +55 -25
  7. package/dist/adonisjs/provider.cjs.map +1 -1
  8. package/dist/adonisjs/provider.js +55 -25
  9. package/dist/adonisjs/provider.js.map +1 -1
  10. package/dist/common/client.cjs +4 -3
  11. package/dist/common/client.cjs.map +1 -1
  12. package/dist/common/client.js +4 -3
  13. package/dist/common/client.js.map +1 -1
  14. package/dist/common/requestLogger.cjs +5 -1
  15. package/dist/common/requestLogger.cjs.map +1 -1
  16. package/dist/common/requestLogger.d.cts +1 -1
  17. package/dist/common/requestLogger.d.ts +1 -1
  18. package/dist/common/requestLogger.js +5 -1
  19. package/dist/common/requestLogger.js.map +1 -1
  20. package/dist/common/response.cjs +12 -6
  21. package/dist/common/response.cjs.map +1 -1
  22. package/dist/common/response.d.cts +3 -3
  23. package/dist/common/response.d.ts +3 -3
  24. package/dist/common/response.js +12 -6
  25. package/dist/common/response.js.map +1 -1
  26. package/dist/common/validationErrorCounter.cjs +2 -2
  27. package/dist/common/validationErrorCounter.cjs.map +1 -1
  28. package/dist/common/validationErrorCounter.js +2 -2
  29. package/dist/common/validationErrorCounter.js.map +1 -1
  30. package/dist/elysia/index.cjs +1586 -0
  31. package/dist/elysia/index.cjs.map +1 -0
  32. package/dist/elysia/index.d.cts +9 -0
  33. package/dist/elysia/index.d.ts +9 -0
  34. package/dist/elysia/index.js +1556 -0
  35. package/dist/elysia/index.js.map +1 -0
  36. package/dist/elysia/plugin.cjs +1580 -0
  37. package/dist/elysia/plugin.cjs.map +1 -0
  38. package/dist/elysia/plugin.d.cts +53 -0
  39. package/dist/elysia/plugin.d.ts +53 -0
  40. package/dist/elysia/plugin.js +1556 -0
  41. package/dist/elysia/plugin.js.map +1 -0
  42. package/dist/elysia/utils.cjs +98 -0
  43. package/dist/elysia/utils.cjs.map +1 -0
  44. package/dist/elysia/utils.d.cts +12 -0
  45. package/dist/elysia/utils.d.ts +12 -0
  46. package/dist/elysia/utils.js +78 -0
  47. package/dist/elysia/utils.js.map +1 -0
  48. package/dist/express/index.cjs +58 -25
  49. package/dist/express/index.cjs.map +1 -1
  50. package/dist/express/index.js +58 -25
  51. package/dist/express/index.js.map +1 -1
  52. package/dist/express/middleware.cjs +58 -25
  53. package/dist/express/middleware.cjs.map +1 -1
  54. package/dist/express/middleware.js +58 -25
  55. package/dist/express/middleware.js.map +1 -1
  56. package/dist/fastify/index.cjs +58 -25
  57. package/dist/fastify/index.cjs.map +1 -1
  58. package/dist/fastify/index.js +58 -25
  59. package/dist/fastify/index.js.map +1 -1
  60. package/dist/fastify/plugin.cjs +58 -25
  61. package/dist/fastify/plugin.cjs.map +1 -1
  62. package/dist/fastify/plugin.js +58 -25
  63. package/dist/fastify/plugin.js.map +1 -1
  64. package/dist/h3/index.cjs +24 -11
  65. package/dist/h3/index.cjs.map +1 -1
  66. package/dist/h3/index.js +24 -11
  67. package/dist/h3/index.js.map +1 -1
  68. package/dist/h3/plugin.cjs +24 -11
  69. package/dist/h3/plugin.cjs.map +1 -1
  70. package/dist/h3/plugin.js +24 -11
  71. package/dist/h3/plugin.js.map +1 -1
  72. package/dist/hapi/index.cjs +6134 -0
  73. package/dist/hapi/index.cjs.map +1 -0
  74. package/dist/hapi/index.d.cts +9 -0
  75. package/dist/hapi/index.d.ts +9 -0
  76. package/dist/hapi/index.js +6124 -0
  77. package/dist/hapi/index.js.map +1 -0
  78. package/dist/hapi/plugin.cjs +6131 -0
  79. package/dist/hapi/plugin.cjs.map +1 -0
  80. package/dist/hapi/plugin.d.cts +36 -0
  81. package/dist/hapi/plugin.d.ts +36 -0
  82. package/dist/hapi/plugin.js +6124 -0
  83. package/dist/hapi/plugin.js.map +1 -0
  84. package/dist/hapi/utils.cjs +98 -0
  85. package/dist/hapi/utils.cjs.map +1 -0
  86. package/dist/hapi/utils.d.cts +14 -0
  87. package/dist/hapi/utils.d.ts +14 -0
  88. package/dist/hapi/utils.js +77 -0
  89. package/dist/hapi/utils.js.map +1 -0
  90. package/dist/hono/index.cjs +25 -12
  91. package/dist/hono/index.cjs.map +1 -1
  92. package/dist/hono/index.js +25 -12
  93. package/dist/hono/index.js.map +1 -1
  94. package/dist/hono/middleware.cjs +25 -12
  95. package/dist/hono/middleware.cjs.map +1 -1
  96. package/dist/hono/middleware.js +25 -12
  97. package/dist/hono/middleware.js.map +1 -1
  98. package/dist/koa/index.cjs +13 -6
  99. package/dist/koa/index.cjs.map +1 -1
  100. package/dist/koa/index.js +13 -6
  101. package/dist/koa/index.js.map +1 -1
  102. package/dist/koa/middleware.cjs +13 -6
  103. package/dist/koa/middleware.cjs.map +1 -1
  104. package/dist/koa/middleware.js +13 -6
  105. package/dist/koa/middleware.js.map +1 -1
  106. package/dist/loggers/hapi.cjs +54 -0
  107. package/dist/loggers/hapi.cjs.map +1 -0
  108. package/dist/loggers/hapi.d.cts +10 -0
  109. package/dist/loggers/hapi.d.ts +10 -0
  110. package/dist/loggers/hapi.js +31 -0
  111. package/dist/loggers/hapi.js.map +1 -0
  112. package/dist/loggers/index.cjs +81 -28
  113. package/dist/loggers/index.cjs.map +1 -1
  114. package/dist/loggers/index.d.cts +2 -0
  115. package/dist/loggers/index.d.ts +2 -0
  116. package/dist/loggers/index.js +80 -28
  117. package/dist/loggers/index.js.map +1 -1
  118. package/dist/loggers/pino.cjs +39 -13
  119. package/dist/loggers/pino.cjs.map +1 -1
  120. package/dist/loggers/pino.d.cts +1 -1
  121. package/dist/loggers/pino.d.ts +1 -1
  122. package/dist/loggers/pino.js +39 -13
  123. package/dist/loggers/pino.js.map +1 -1
  124. package/dist/nestjs/index.cjs +158 -118
  125. package/dist/nestjs/index.cjs.map +1 -1
  126. package/dist/nestjs/index.js +156 -117
  127. package/dist/nestjs/index.js.map +1 -1
  128. package/package.json +42 -2
@@ -1265,8 +1265,8 @@ var require_quick_format_unescaped = __commonJS({
1265
1265
  }
1266
1266
  }
1267
1267
  __name(tryStringify, "tryStringify");
1268
- module2.exports = format3;
1269
- function format3(f, args, opts) {
1268
+ module2.exports = format4;
1269
+ function format4(f, args, opts) {
1270
1270
  var ss = opts && opts.stringify || tryStringify;
1271
1271
  var offset = 1;
1272
1272
  if (typeof f === "object" && f !== null) {
@@ -1357,7 +1357,7 @@ var require_quick_format_unescaped = __commonJS({
1357
1357
  }
1358
1358
  return str;
1359
1359
  }
1360
- __name(format3, "format");
1360
+ __name(format4, "format");
1361
1361
  }
1362
1362
  });
1363
1363
 
@@ -2832,7 +2832,7 @@ var require_transport = __commonJS({
2832
2832
  var require_tools = __commonJS({
2833
2833
  "node_modules/pino/lib/tools.js"(exports2, module2) {
2834
2834
  "use strict";
2835
- var format3 = require_quick_format_unescaped();
2835
+ var format4 = require_quick_format_unescaped();
2836
2836
  var { mapHttpRequest, mapHttpResponse } = require_pino_std_serializers();
2837
2837
  var SonicBoom = require_sonic_boom();
2838
2838
  var onExit = require_on_exit_leak_free();
@@ -2869,13 +2869,13 @@ var require_tools = __commonJS({
2869
2869
  if (typeof this[msgPrefixSym] === "string" && msg !== void 0 && msg !== null) {
2870
2870
  msg = this[msgPrefixSym] + msg;
2871
2871
  }
2872
- this[writeSym](o, format3(msg, formatParams, this[formatOptsSym]), level);
2872
+ this[writeSym](o, format4(msg, formatParams, this[formatOptsSym]), level);
2873
2873
  } else {
2874
2874
  let msg = o === void 0 ? n.shift() : o;
2875
2875
  if (typeof this[msgPrefixSym] === "string" && msg !== void 0 && msg !== null) {
2876
2876
  msg = this[msgPrefixSym] + msg;
2877
2877
  }
2878
- this[writeSym](null, format3(msg, n, this[formatOptsSym]), level);
2878
+ this[writeSym](null, format4(msg, n, this[formatOptsSym]), level);
2879
2879
  }
2880
2880
  }
2881
2881
  __name(LOG, "LOG");
@@ -3374,7 +3374,7 @@ var require_meta = __commonJS({
3374
3374
  "node_modules/pino/lib/meta.js"(exports2, module2) {
3375
3375
  "use strict";
3376
3376
  module2.exports = {
3377
- version: "9.8.0"
3377
+ version: "9.9.0"
3378
3378
  };
3379
3379
  }
3380
3380
  });
@@ -4175,7 +4175,6 @@ var require_multistream = __commonJS({
4175
4175
  var { DEFAULT_LEVELS } = require_constants();
4176
4176
  var DEFAULT_INFO_LEVEL = DEFAULT_LEVELS.info;
4177
4177
  function multistream(streamsArray, opts) {
4178
- let counter = 0;
4179
4178
  streamsArray = streamsArray || [];
4180
4179
  opts = opts || {
4181
4180
  dedupe: false
@@ -4190,10 +4189,12 @@ var require_multistream = __commonJS({
4190
4189
  const res = {
4191
4190
  write,
4192
4191
  add,
4192
+ remove,
4193
4193
  emit,
4194
4194
  flushSync,
4195
4195
  end,
4196
4196
  minLevel: 0,
4197
+ lastId: 0,
4197
4198
  streams: [],
4198
4199
  clone,
4199
4200
  [metadata]: true,
@@ -4277,7 +4278,7 @@ var require_multistream = __commonJS({
4277
4278
  stream: stream_,
4278
4279
  level,
4279
4280
  levelVal: void 0,
4280
- id: counter++
4281
+ id: ++res.lastId
4281
4282
  };
4282
4283
  streams.unshift(dest_);
4283
4284
  streams.sort(compareByLevel);
@@ -4285,6 +4286,17 @@ var require_multistream = __commonJS({
4285
4286
  return res;
4286
4287
  }
4287
4288
  __name(add, "add");
4289
+ function remove(id) {
4290
+ const { streams } = this;
4291
+ const index = streams.findIndex((s) => s.id === id);
4292
+ if (index >= 0) {
4293
+ streams.splice(index, 1);
4294
+ streams.sort(compareByLevel);
4295
+ this.minLevel = streams.length > 0 ? streams[0].level : -1;
4296
+ }
4297
+ return res;
4298
+ }
4299
+ __name(remove, "remove");
4288
4300
  function end() {
4289
4301
  for (const { stream } of this.streams) {
4290
4302
  if (typeof stream.flushSync === "function") {
@@ -4305,6 +4317,7 @@ var require_multistream = __commonJS({
4305
4317
  return {
4306
4318
  write,
4307
4319
  add,
4320
+ remove,
4308
4321
  minLevel: level,
4309
4322
  streams,
4310
4323
  clone,
@@ -4513,6 +4526,7 @@ var require_pino = __commonJS({
4513
4526
  // src/loggers/index.ts
4514
4527
  var loggers_exports = {};
4515
4528
  __export(loggers_exports, {
4529
+ handleHapiRequestEvent: () => handleHapiRequestEvent,
4516
4530
  patchConsole: () => patchConsole,
4517
4531
  patchNestLogger: () => patchNestLogger,
4518
4532
  patchPinoLogger: () => patchPinoLogger,
@@ -4560,8 +4574,33 @@ function captureLog(level, args) {
4560
4574
  }
4561
4575
  __name(captureLog, "captureLog");
4562
4576
 
4563
- // src/loggers/utils.ts
4577
+ // src/loggers/hapi.ts
4564
4578
  var import_node_util2 = require("util");
4579
+ var MAX_BUFFER_SIZE2 = 1e3;
4580
+ var VALID_LOG_LEVELS = /* @__PURE__ */ new Set([
4581
+ "trace",
4582
+ "debug",
4583
+ "info",
4584
+ "warn",
4585
+ "warning",
4586
+ "error",
4587
+ "fatal"
4588
+ ]);
4589
+ function handleHapiRequestEvent(event, logsContext) {
4590
+ const logs = logsContext.getStore();
4591
+ if (!logs || logs.length >= MAX_BUFFER_SIZE2) {
4592
+ return;
4593
+ }
4594
+ logs.push({
4595
+ timestamp: Number(event.timestamp) / 1e3,
4596
+ level: event.tags.find((tag) => VALID_LOG_LEVELS.has(tag.toLowerCase())) || "log",
4597
+ message: (0, import_node_util2.format)(event.data)
4598
+ });
4599
+ }
4600
+ __name(handleHapiRequestEvent, "handleHapiRequestEvent");
4601
+
4602
+ // src/loggers/utils.ts
4603
+ var import_node_util3 = require("util");
4565
4604
  function formatMessage(message, ...args) {
4566
4605
  return [
4567
4606
  message,
@@ -4578,7 +4617,7 @@ function formatArg(arg) {
4578
4617
  return arg.trim();
4579
4618
  }
4580
4619
  if (arg instanceof Error) {
4581
- return (0, import_node_util2.format)(arg).trim();
4620
+ return (0, import_node_util3.format)(arg).trim();
4582
4621
  }
4583
4622
  if (arg === void 0 || arg === null || isEmptyObject(arg)) {
4584
4623
  return "";
@@ -4586,7 +4625,7 @@ function formatArg(arg) {
4586
4625
  try {
4587
4626
  return JSON.stringify(arg);
4588
4627
  } catch {
4589
- return (0, import_node_util2.format)(arg).trim();
4628
+ return (0, import_node_util3.format)(arg).trim();
4590
4629
  }
4591
4630
  }
4592
4631
  __name(formatArg, "formatArg");
@@ -4596,7 +4635,7 @@ function isEmptyObject(obj) {
4596
4635
  __name(isEmptyObject, "isEmptyObject");
4597
4636
 
4598
4637
  // src/loggers/nestjs.ts
4599
- var MAX_BUFFER_SIZE2 = 1e3;
4638
+ var MAX_BUFFER_SIZE3 = 1e3;
4600
4639
  var isPatched2 = false;
4601
4640
  var globalLogsContext2;
4602
4641
  async function patchNestLogger(logsContext) {
@@ -4647,7 +4686,7 @@ async function patchNestLogger(logsContext) {
4647
4686
  __name(patchNestLogger, "patchNestLogger");
4648
4687
  function captureLog2(level, args, context) {
4649
4688
  const logs = globalLogsContext2 == null ? void 0 : globalLogsContext2.getStore();
4650
- if (logs && logs.length < MAX_BUFFER_SIZE2) {
4689
+ if (logs && logs.length < MAX_BUFFER_SIZE3) {
4651
4690
  logs.push({
4652
4691
  timestamp: Date.now() / 1e3,
4653
4692
  logger: context,
@@ -4659,7 +4698,7 @@ function captureLog2(level, args, context) {
4659
4698
  __name(captureLog2, "captureLog");
4660
4699
 
4661
4700
  // src/loggers/pino.ts
4662
- var MAX_BUFFER_SIZE3 = 1e3;
4701
+ var MAX_BUFFER_SIZE4 = 1e3;
4663
4702
  var originalStreamSym = Symbol.for("apitally.originalStream");
4664
4703
  var logLevelMap = {
4665
4704
  10: "trace",
@@ -4671,18 +4710,23 @@ var logLevelMap = {
4671
4710
  };
4672
4711
  async function patchPinoLogger(logger, logsContext) {
4673
4712
  try {
4674
- const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4675
- if (!(pino.default.symbols.streamSym in logger)) {
4676
- return;
4713
+ const symbols = [
4714
+ ...Object.getOwnPropertySymbols(logger),
4715
+ ...Object.getOwnPropertySymbols(Object.getPrototypeOf(logger))
4716
+ ];
4717
+ const streamSym = symbols.find((sym) => sym.toString() === "Symbol(pino.stream)");
4718
+ const messageKeySym = symbols.find((sym) => sym.toString() === "Symbol(pino.messageKey)");
4719
+ if (!streamSym || !messageKeySym) {
4720
+ return false;
4677
4721
  }
4678
4722
  if (!(originalStreamSym in logger)) {
4679
- logger[originalStreamSym] = logger[pino.default.symbols.streamSym];
4723
+ logger[originalStreamSym] = logger[streamSym];
4680
4724
  }
4681
4725
  const originalStream = logger[originalStreamSym];
4682
4726
  if (originalStream) {
4683
- const messageKey = logger[pino.default.symbols.messageKeySym];
4684
- const captureStream = new ApitallyLogCaptureStream(logsContext, messageKey);
4685
- logger[pino.default.symbols.streamSym] = pino.default.multistream([
4727
+ const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4728
+ const captureStream = new ApitallyLogCaptureStream(logsContext, logger[messageKeySym]);
4729
+ logger[streamSym] = pino.default.multistream([
4686
4730
  {
4687
4731
  level: 0,
4688
4732
  stream: originalStream
@@ -4695,7 +4739,9 @@ async function patchPinoLogger(logger, logsContext) {
4695
4739
  levels: logger.levels
4696
4740
  });
4697
4741
  }
4742
+ return true;
4698
4743
  } catch {
4744
+ return false;
4699
4745
  }
4700
4746
  }
4701
4747
  __name(patchPinoLogger, "patchPinoLogger");
@@ -4713,7 +4759,7 @@ var ApitallyLogCaptureStream = (_a = class {
4713
4759
  }
4714
4760
  write(msg) {
4715
4761
  const logs = this.logsContext.getStore();
4716
- if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE3) {
4762
+ if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE4) {
4717
4763
  return;
4718
4764
  }
4719
4765
  let obj;
@@ -4726,8 +4772,8 @@ var ApitallyLogCaptureStream = (_a = class {
4726
4772
  return;
4727
4773
  }
4728
4774
  try {
4729
- const message = obj[this.messageKey];
4730
- const rest = removeKeys(obj, [
4775
+ let message = obj[this.messageKey];
4776
+ const ignoreKeys = [
4731
4777
  "hostname",
4732
4778
  "level",
4733
4779
  this.messageKey,
@@ -4736,7 +4782,13 @@ var ApitallyLogCaptureStream = (_a = class {
4736
4782
  "reqId",
4737
4783
  "req",
4738
4784
  "res"
4739
- ]);
4785
+ ];
4786
+ if (!message && "data" in obj && "tags" in obj) {
4787
+ message = obj.data;
4788
+ ignoreKeys.push("data");
4789
+ ignoreKeys.push("tags");
4790
+ }
4791
+ const rest = removeKeys(obj, ignoreKeys);
4740
4792
  const formattedMessage = formatMessage(message, rest);
4741
4793
  if (formattedMessage) {
4742
4794
  logs.push({
@@ -4757,7 +4809,7 @@ var ApitallyLogCaptureStream = (_a = class {
4757
4809
  }, __name(_a, "ApitallyLogCaptureStream"), _a);
4758
4810
 
4759
4811
  // src/loggers/winston.ts
4760
- var MAX_BUFFER_SIZE4 = 1e3;
4812
+ var MAX_BUFFER_SIZE5 = 1e3;
4761
4813
  var isPatched3 = false;
4762
4814
  var globalLogsContext3;
4763
4815
  async function patchWinston(logsContext) {
@@ -4782,7 +4834,7 @@ async function patchWinston(logsContext) {
4782
4834
  __name(patchWinston, "patchWinston");
4783
4835
  function captureLog3(info) {
4784
4836
  const logs = globalLogsContext3 == null ? void 0 : globalLogsContext3.getStore();
4785
- if (!logs || !info || logs.length >= MAX_BUFFER_SIZE4) {
4837
+ if (!logs || !info || logs.length >= MAX_BUFFER_SIZE5) {
4786
4838
  return;
4787
4839
  }
4788
4840
  try {
@@ -4816,6 +4868,7 @@ function parseTimestamp(timestamp) {
4816
4868
  __name(parseTimestamp, "parseTimestamp");
4817
4869
  // Annotate the CommonJS export names for ESM import in node:
4818
4870
  0 && (module.exports = {
4871
+ handleHapiRequestEvent,
4819
4872
  patchConsole,
4820
4873
  patchNestLogger,
4821
4874
  patchPinoLogger,