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
@@ -1,4 +1,5 @@
1
1
  export { patchConsole } from './console.cjs';
2
+ export { handleHapiRequestEvent } from './hapi.cjs';
2
3
  export { patchNestLogger } from './nestjs.cjs';
3
4
  export { patchPinoLogger } from './pino.cjs';
4
5
  export { patchWinston } from './winston.cjs';
@@ -7,3 +8,4 @@ import '../common/requestLogger.cjs';
7
8
  import 'node:buffer';
8
9
  import 'node:http';
9
10
  import '../common/tempGzipFile.cjs';
11
+ import '@hapi/hapi';
@@ -1,4 +1,5 @@
1
1
  export { patchConsole } from './console.js';
2
+ export { handleHapiRequestEvent } from './hapi.js';
2
3
  export { patchNestLogger } from './nestjs.js';
3
4
  export { patchPinoLogger } from './pino.js';
4
5
  export { patchWinston } from './winston.js';
@@ -7,3 +8,4 @@ import '../common/requestLogger.js';
7
8
  import 'node:buffer';
8
9
  import 'node:http';
9
10
  import '../common/tempGzipFile.js';
11
+ import '@hapi/hapi';
@@ -1265,8 +1265,8 @@ var require_quick_format_unescaped = __commonJS({
1265
1265
  }
1266
1266
  }
1267
1267
  __name(tryStringify, "tryStringify");
1268
- module.exports = format3;
1269
- function format3(f, args, opts) {
1268
+ module.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"(exports, module) {
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"(exports, module) {
3375
3375
  "use strict";
3376
3376
  module.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,
@@ -4550,8 +4563,33 @@ function captureLog(level, args) {
4550
4563
  }
4551
4564
  __name(captureLog, "captureLog");
4552
4565
 
4553
- // src/loggers/utils.ts
4566
+ // src/loggers/hapi.ts
4554
4567
  import { format as format2 } from "util";
4568
+ var MAX_BUFFER_SIZE2 = 1e3;
4569
+ var VALID_LOG_LEVELS = /* @__PURE__ */ new Set([
4570
+ "trace",
4571
+ "debug",
4572
+ "info",
4573
+ "warn",
4574
+ "warning",
4575
+ "error",
4576
+ "fatal"
4577
+ ]);
4578
+ function handleHapiRequestEvent(event, logsContext) {
4579
+ const logs = logsContext.getStore();
4580
+ if (!logs || logs.length >= MAX_BUFFER_SIZE2) {
4581
+ return;
4582
+ }
4583
+ logs.push({
4584
+ timestamp: Number(event.timestamp) / 1e3,
4585
+ level: event.tags.find((tag) => VALID_LOG_LEVELS.has(tag.toLowerCase())) || "log",
4586
+ message: format2(event.data)
4587
+ });
4588
+ }
4589
+ __name(handleHapiRequestEvent, "handleHapiRequestEvent");
4590
+
4591
+ // src/loggers/utils.ts
4592
+ import { format as format3 } from "util";
4555
4593
  function formatMessage(message, ...args) {
4556
4594
  return [
4557
4595
  message,
@@ -4568,7 +4606,7 @@ function formatArg(arg) {
4568
4606
  return arg.trim();
4569
4607
  }
4570
4608
  if (arg instanceof Error) {
4571
- return format2(arg).trim();
4609
+ return format3(arg).trim();
4572
4610
  }
4573
4611
  if (arg === void 0 || arg === null || isEmptyObject(arg)) {
4574
4612
  return "";
@@ -4576,7 +4614,7 @@ function formatArg(arg) {
4576
4614
  try {
4577
4615
  return JSON.stringify(arg);
4578
4616
  } catch {
4579
- return format2(arg).trim();
4617
+ return format3(arg).trim();
4580
4618
  }
4581
4619
  }
4582
4620
  __name(formatArg, "formatArg");
@@ -4586,7 +4624,7 @@ function isEmptyObject(obj) {
4586
4624
  __name(isEmptyObject, "isEmptyObject");
4587
4625
 
4588
4626
  // src/loggers/nestjs.ts
4589
- var MAX_BUFFER_SIZE2 = 1e3;
4627
+ var MAX_BUFFER_SIZE3 = 1e3;
4590
4628
  var isPatched2 = false;
4591
4629
  var globalLogsContext2;
4592
4630
  async function patchNestLogger(logsContext) {
@@ -4637,7 +4675,7 @@ async function patchNestLogger(logsContext) {
4637
4675
  __name(patchNestLogger, "patchNestLogger");
4638
4676
  function captureLog2(level, args, context) {
4639
4677
  const logs = globalLogsContext2 == null ? void 0 : globalLogsContext2.getStore();
4640
- if (logs && logs.length < MAX_BUFFER_SIZE2) {
4678
+ if (logs && logs.length < MAX_BUFFER_SIZE3) {
4641
4679
  logs.push({
4642
4680
  timestamp: Date.now() / 1e3,
4643
4681
  logger: context,
@@ -4649,7 +4687,7 @@ function captureLog2(level, args, context) {
4649
4687
  __name(captureLog2, "captureLog");
4650
4688
 
4651
4689
  // src/loggers/pino.ts
4652
- var MAX_BUFFER_SIZE3 = 1e3;
4690
+ var MAX_BUFFER_SIZE4 = 1e3;
4653
4691
  var originalStreamSym = Symbol.for("apitally.originalStream");
4654
4692
  var logLevelMap = {
4655
4693
  10: "trace",
@@ -4661,18 +4699,23 @@ var logLevelMap = {
4661
4699
  };
4662
4700
  async function patchPinoLogger(logger, logsContext) {
4663
4701
  try {
4664
- const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4665
- if (!(pino.default.symbols.streamSym in logger)) {
4666
- return;
4702
+ const symbols = [
4703
+ ...Object.getOwnPropertySymbols(logger),
4704
+ ...Object.getOwnPropertySymbols(Object.getPrototypeOf(logger))
4705
+ ];
4706
+ const streamSym = symbols.find((sym) => sym.toString() === "Symbol(pino.stream)");
4707
+ const messageKeySym = symbols.find((sym) => sym.toString() === "Symbol(pino.messageKey)");
4708
+ if (!streamSym || !messageKeySym) {
4709
+ return false;
4667
4710
  }
4668
4711
  if (!(originalStreamSym in logger)) {
4669
- logger[originalStreamSym] = logger[pino.default.symbols.streamSym];
4712
+ logger[originalStreamSym] = logger[streamSym];
4670
4713
  }
4671
4714
  const originalStream = logger[originalStreamSym];
4672
4715
  if (originalStream) {
4673
- const messageKey = logger[pino.default.symbols.messageKeySym];
4674
- const captureStream = new ApitallyLogCaptureStream(logsContext, messageKey);
4675
- logger[pino.default.symbols.streamSym] = pino.default.multistream([
4716
+ const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4717
+ const captureStream = new ApitallyLogCaptureStream(logsContext, logger[messageKeySym]);
4718
+ logger[streamSym] = pino.default.multistream([
4676
4719
  {
4677
4720
  level: 0,
4678
4721
  stream: originalStream
@@ -4685,7 +4728,9 @@ async function patchPinoLogger(logger, logsContext) {
4685
4728
  levels: logger.levels
4686
4729
  });
4687
4730
  }
4731
+ return true;
4688
4732
  } catch {
4733
+ return false;
4689
4734
  }
4690
4735
  }
4691
4736
  __name(patchPinoLogger, "patchPinoLogger");
@@ -4703,7 +4748,7 @@ var ApitallyLogCaptureStream = (_a = class {
4703
4748
  }
4704
4749
  write(msg) {
4705
4750
  const logs = this.logsContext.getStore();
4706
- if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE3) {
4751
+ if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE4) {
4707
4752
  return;
4708
4753
  }
4709
4754
  let obj;
@@ -4716,8 +4761,8 @@ var ApitallyLogCaptureStream = (_a = class {
4716
4761
  return;
4717
4762
  }
4718
4763
  try {
4719
- const message = obj[this.messageKey];
4720
- const rest = removeKeys(obj, [
4764
+ let message = obj[this.messageKey];
4765
+ const ignoreKeys = [
4721
4766
  "hostname",
4722
4767
  "level",
4723
4768
  this.messageKey,
@@ -4726,7 +4771,13 @@ var ApitallyLogCaptureStream = (_a = class {
4726
4771
  "reqId",
4727
4772
  "req",
4728
4773
  "res"
4729
- ]);
4774
+ ];
4775
+ if (!message && "data" in obj && "tags" in obj) {
4776
+ message = obj.data;
4777
+ ignoreKeys.push("data");
4778
+ ignoreKeys.push("tags");
4779
+ }
4780
+ const rest = removeKeys(obj, ignoreKeys);
4730
4781
  const formattedMessage = formatMessage(message, rest);
4731
4782
  if (formattedMessage) {
4732
4783
  logs.push({
@@ -4747,7 +4798,7 @@ var ApitallyLogCaptureStream = (_a = class {
4747
4798
  }, __name(_a, "ApitallyLogCaptureStream"), _a);
4748
4799
 
4749
4800
  // src/loggers/winston.ts
4750
- var MAX_BUFFER_SIZE4 = 1e3;
4801
+ var MAX_BUFFER_SIZE5 = 1e3;
4751
4802
  var isPatched3 = false;
4752
4803
  var globalLogsContext3;
4753
4804
  async function patchWinston(logsContext) {
@@ -4772,7 +4823,7 @@ async function patchWinston(logsContext) {
4772
4823
  __name(patchWinston, "patchWinston");
4773
4824
  function captureLog3(info) {
4774
4825
  const logs = globalLogsContext3 == null ? void 0 : globalLogsContext3.getStore();
4775
- if (!logs || !info || logs.length >= MAX_BUFFER_SIZE4) {
4826
+ if (!logs || !info || logs.length >= MAX_BUFFER_SIZE5) {
4776
4827
  return;
4777
4828
  }
4778
4829
  try {
@@ -4805,6 +4856,7 @@ function parseTimestamp(timestamp) {
4805
4856
  }
4806
4857
  __name(parseTimestamp, "parseTimestamp");
4807
4858
  export {
4859
+ handleHapiRequestEvent,
4808
4860
  patchConsole,
4809
4861
  patchNestLogger,
4810
4862
  patchPinoLogger,