apitally 0.20.0 → 0.21.1

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 (115) hide show
  1. package/README.md +28 -0
  2. package/dist/adonisjs/configure.cjs +6 -1
  3. package/dist/adonisjs/configure.cjs.map +1 -1
  4. package/dist/adonisjs/configure.js +6 -1
  5. package/dist/adonisjs/configure.js.map +1 -1
  6. package/dist/adonisjs/index.cjs +6 -1
  7. package/dist/adonisjs/index.cjs.map +1 -1
  8. package/dist/adonisjs/index.js +6 -1
  9. package/dist/adonisjs/index.js.map +1 -1
  10. package/dist/adonisjs/middleware.cjs.map +1 -1
  11. package/dist/adonisjs/middleware.js.map +1 -1
  12. package/dist/adonisjs/provider.cjs +90 -25
  13. package/dist/adonisjs/provider.cjs.map +1 -1
  14. package/dist/adonisjs/provider.js +90 -25
  15. package/dist/adonisjs/provider.js.map +1 -1
  16. package/dist/adonisjs/stubs/config/apitally.stub +9 -0
  17. package/dist/common/client.cjs +2 -1
  18. package/dist/common/client.cjs.map +1 -1
  19. package/dist/common/client.js +2 -1
  20. package/dist/common/client.js.map +1 -1
  21. package/dist/common/requestLogger.cjs +2 -1
  22. package/dist/common/requestLogger.cjs.map +1 -1
  23. package/dist/common/requestLogger.js +2 -1
  24. package/dist/common/requestLogger.js.map +1 -1
  25. package/dist/elysia/index.cjs +8 -4
  26. package/dist/elysia/index.cjs.map +1 -1
  27. package/dist/elysia/index.js +8 -4
  28. package/dist/elysia/index.js.map +1 -1
  29. package/dist/elysia/plugin.cjs +8 -4
  30. package/dist/elysia/plugin.cjs.map +1 -1
  31. package/dist/elysia/plugin.d.cts +3 -0
  32. package/dist/elysia/plugin.d.ts +3 -0
  33. package/dist/elysia/plugin.js +8 -4
  34. package/dist/elysia/plugin.js.map +1 -1
  35. package/dist/express/index.cjs +90 -25
  36. package/dist/express/index.cjs.map +1 -1
  37. package/dist/express/index.js +90 -25
  38. package/dist/express/index.js.map +1 -1
  39. package/dist/express/middleware.cjs +90 -25
  40. package/dist/express/middleware.cjs.map +1 -1
  41. package/dist/express/middleware.js +90 -25
  42. package/dist/express/middleware.js.map +1 -1
  43. package/dist/fastify/index.cjs +90 -25
  44. package/dist/fastify/index.cjs.map +1 -1
  45. package/dist/fastify/index.js +90 -25
  46. package/dist/fastify/index.js.map +1 -1
  47. package/dist/fastify/plugin.cjs +90 -25
  48. package/dist/fastify/plugin.cjs.map +1 -1
  49. package/dist/fastify/plugin.js +90 -25
  50. package/dist/fastify/plugin.js.map +1 -1
  51. package/dist/h3/index.cjs +8 -4
  52. package/dist/h3/index.cjs.map +1 -1
  53. package/dist/h3/index.js +8 -4
  54. package/dist/h3/index.js.map +1 -1
  55. package/dist/h3/plugin.cjs +8 -4
  56. package/dist/h3/plugin.cjs.map +1 -1
  57. package/dist/h3/plugin.js +8 -4
  58. package/dist/h3/plugin.js.map +1 -1
  59. package/dist/hapi/index.cjs +6182 -0
  60. package/dist/hapi/index.cjs.map +1 -0
  61. package/dist/hapi/index.d.cts +9 -0
  62. package/dist/hapi/index.d.ts +9 -0
  63. package/dist/hapi/index.js +6172 -0
  64. package/dist/hapi/index.js.map +1 -0
  65. package/dist/hapi/plugin.cjs +6179 -0
  66. package/dist/hapi/plugin.cjs.map +1 -0
  67. package/dist/hapi/plugin.d.cts +36 -0
  68. package/dist/hapi/plugin.d.ts +36 -0
  69. package/dist/hapi/plugin.js +6172 -0
  70. package/dist/hapi/plugin.js.map +1 -0
  71. package/dist/hapi/utils.cjs +98 -0
  72. package/dist/hapi/utils.cjs.map +1 -0
  73. package/dist/hapi/utils.d.cts +14 -0
  74. package/dist/hapi/utils.d.ts +14 -0
  75. package/dist/hapi/utils.js +77 -0
  76. package/dist/hapi/utils.js.map +1 -0
  77. package/dist/hono/index.cjs +8 -4
  78. package/dist/hono/index.cjs.map +1 -1
  79. package/dist/hono/index.js +8 -4
  80. package/dist/hono/index.js.map +1 -1
  81. package/dist/hono/middleware.cjs +8 -4
  82. package/dist/hono/middleware.cjs.map +1 -1
  83. package/dist/hono/middleware.js +8 -4
  84. package/dist/hono/middleware.js.map +1 -1
  85. package/dist/koa/index.cjs +8 -4
  86. package/dist/koa/index.cjs.map +1 -1
  87. package/dist/koa/index.js +8 -4
  88. package/dist/koa/index.js.map +1 -1
  89. package/dist/koa/middleware.cjs +8 -4
  90. package/dist/koa/middleware.cjs.map +1 -1
  91. package/dist/koa/middleware.js +8 -4
  92. package/dist/koa/middleware.js.map +1 -1
  93. package/dist/loggers/hapi.cjs +54 -0
  94. package/dist/loggers/hapi.cjs.map +1 -0
  95. package/dist/loggers/hapi.d.cts +10 -0
  96. package/dist/loggers/hapi.d.ts +10 -0
  97. package/dist/loggers/hapi.js +31 -0
  98. package/dist/loggers/hapi.js.map +1 -0
  99. package/dist/loggers/index.cjs +118 -30
  100. package/dist/loggers/index.cjs.map +1 -1
  101. package/dist/loggers/index.d.cts +2 -0
  102. package/dist/loggers/index.d.ts +2 -0
  103. package/dist/loggers/index.js +117 -30
  104. package/dist/loggers/index.js.map +1 -1
  105. package/dist/loggers/pino.cjs +76 -15
  106. package/dist/loggers/pino.cjs.map +1 -1
  107. package/dist/loggers/pino.d.cts +1 -1
  108. package/dist/loggers/pino.d.ts +1 -1
  109. package/dist/loggers/pino.js +76 -15
  110. package/dist/loggers/pino.js.map +1 -1
  111. package/dist/nestjs/index.cjs +98 -26
  112. package/dist/nestjs/index.cjs.map +1 -1
  113. package/dist/nestjs/index.js +96 -25
  114. package/dist/nestjs/index.js.map +1 -1
  115. package/package.json +24 -4
@@ -1244,11 +1244,31 @@ var require_time = __commonJS({
1244
1244
  var epochTime = /* @__PURE__ */ __name(() => `,"time":${Date.now()}`, "epochTime");
1245
1245
  var unixTime = /* @__PURE__ */ __name(() => `,"time":${Math.round(Date.now() / 1e3)}`, "unixTime");
1246
1246
  var isoTime = /* @__PURE__ */ __name(() => `,"time":"${new Date(Date.now()).toISOString()}"`, "isoTime");
1247
+ var NS_PER_MS = 1000000n;
1248
+ var NS_PER_SEC = 1000000000n;
1249
+ var startWallTimeNs = BigInt(Date.now()) * NS_PER_MS;
1250
+ var startHrTime = process.hrtime.bigint();
1251
+ var isoTimeNano = /* @__PURE__ */ __name(() => {
1252
+ const elapsedNs = process.hrtime.bigint() - startHrTime;
1253
+ const currentTimeNs = startWallTimeNs + elapsedNs;
1254
+ const secondsSinceEpoch = currentTimeNs / NS_PER_SEC;
1255
+ const nanosWithinSecond = currentTimeNs % NS_PER_SEC;
1256
+ const msSinceEpoch = Number(secondsSinceEpoch * 1000n + nanosWithinSecond / 1000000n);
1257
+ const date = new Date(msSinceEpoch);
1258
+ const year = date.getUTCFullYear();
1259
+ const month = (date.getUTCMonth() + 1).toString().padStart(2, "0");
1260
+ const day = date.getUTCDate().toString().padStart(2, "0");
1261
+ const hours = date.getUTCHours().toString().padStart(2, "0");
1262
+ const minutes = date.getUTCMinutes().toString().padStart(2, "0");
1263
+ const seconds = date.getUTCSeconds().toString().padStart(2, "0");
1264
+ return `,"time":"${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${nanosWithinSecond.toString().padStart(9, "0")}Z"`;
1265
+ }, "isoTimeNano");
1247
1266
  module2.exports = {
1248
1267
  nullTime,
1249
1268
  epochTime,
1250
1269
  unixTime,
1251
- isoTime
1270
+ isoTime,
1271
+ isoTimeNano
1252
1272
  };
1253
1273
  }
1254
1274
  });
@@ -1265,8 +1285,8 @@ var require_quick_format_unescaped = __commonJS({
1265
1285
  }
1266
1286
  }
1267
1287
  __name(tryStringify, "tryStringify");
1268
- module2.exports = format3;
1269
- function format3(f, args, opts) {
1288
+ module2.exports = format4;
1289
+ function format4(f, args, opts) {
1270
1290
  var ss = opts && opts.stringify || tryStringify;
1271
1291
  var offset = 1;
1272
1292
  if (typeof f === "object" && f !== null) {
@@ -1357,7 +1377,7 @@ var require_quick_format_unescaped = __commonJS({
1357
1377
  }
1358
1378
  return str;
1359
1379
  }
1360
- __name(format3, "format");
1380
+ __name(format4, "format");
1361
1381
  }
1362
1382
  });
1363
1383
 
@@ -2832,13 +2852,25 @@ var require_transport = __commonJS({
2832
2852
  var require_tools = __commonJS({
2833
2853
  "node_modules/pino/lib/tools.js"(exports2, module2) {
2834
2854
  "use strict";
2835
- var format3 = require_quick_format_unescaped();
2855
+ var diagChan = require("diagnostics_channel");
2856
+ var format4 = require_quick_format_unescaped();
2836
2857
  var { mapHttpRequest, mapHttpResponse } = require_pino_std_serializers();
2837
2858
  var SonicBoom = require_sonic_boom();
2838
2859
  var onExit = require_on_exit_leak_free();
2839
2860
  var { lsCacheSym, chindingsSym, writeSym, serializersSym, formatOptsSym, endSym, stringifiersSym, stringifySym, stringifySafeSym, wildcardFirstSym, nestedKeySym, formattersSym, messageKeySym, errorKeySym, nestedKeyStrSym, msgPrefixSym } = require_symbols();
2840
2861
  var { isMainThread } = require("worker_threads");
2841
2862
  var transport = require_transport();
2863
+ var asJsonChan;
2864
+ if (typeof diagChan.tracingChannel === "function") {
2865
+ asJsonChan = diagChan.tracingChannel("pino_asJson");
2866
+ } else {
2867
+ asJsonChan = {
2868
+ hasSubscribers: false,
2869
+ traceSync(fn, store, thisArg, ...args) {
2870
+ return fn.call(thisArg, ...args);
2871
+ }
2872
+ };
2873
+ }
2842
2874
  function noop() {
2843
2875
  }
2844
2876
  __name(noop, "noop");
@@ -2869,13 +2901,13 @@ var require_tools = __commonJS({
2869
2901
  if (typeof this[msgPrefixSym] === "string" && msg !== void 0 && msg !== null) {
2870
2902
  msg = this[msgPrefixSym] + msg;
2871
2903
  }
2872
- this[writeSym](o, format3(msg, formatParams, this[formatOptsSym]), level);
2904
+ this[writeSym](o, format4(msg, formatParams, this[formatOptsSym]), level);
2873
2905
  } else {
2874
2906
  let msg = o === void 0 ? n.shift() : o;
2875
2907
  if (typeof this[msgPrefixSym] === "string" && msg !== void 0 && msg !== null) {
2876
2908
  msg = this[msgPrefixSym] + msg;
2877
2909
  }
2878
- this[writeSym](null, format3(msg, n, this[formatOptsSym]), level);
2910
+ this[writeSym](null, format4(msg, n, this[formatOptsSym]), level);
2879
2911
  }
2880
2912
  }
2881
2913
  __name(LOG, "LOG");
@@ -2907,6 +2939,17 @@ var require_tools = __commonJS({
2907
2939
  }
2908
2940
  __name(asString, "asString");
2909
2941
  function asJson(obj, msg, num, time) {
2942
+ if (asJsonChan.hasSubscribers === false) {
2943
+ return _asJson.call(this, obj, msg, num, time);
2944
+ }
2945
+ const store = {
2946
+ instance: this,
2947
+ arguments
2948
+ };
2949
+ return asJsonChan.traceSync(_asJson, store, this, obj, msg, num, time);
2950
+ }
2951
+ __name(asJson, "asJson");
2952
+ function _asJson(obj, msg, num, time) {
2910
2953
  const stringify2 = this[stringifySym];
2911
2954
  const stringifySafe = this[stringifySafeSym];
2912
2955
  const stringifiers = this[stringifiersSym];
@@ -2987,7 +3030,7 @@ var require_tools = __commonJS({
2987
3030
  return data + propStr + msgStr + end;
2988
3031
  }
2989
3032
  }
2990
- __name(asJson, "asJson");
3033
+ __name(_asJson, "_asJson");
2991
3034
  function asChindings(instance, bindings) {
2992
3035
  let value;
2993
3036
  let data = instance[chindingsSym];
@@ -3374,7 +3417,7 @@ var require_meta = __commonJS({
3374
3417
  "node_modules/pino/lib/meta.js"(exports2, module2) {
3375
3418
  "use strict";
3376
3419
  module2.exports = {
3377
- version: "9.9.0"
3420
+ version: "9.11.0"
3378
3421
  };
3379
3422
  }
3380
3423
  });
@@ -3415,6 +3458,9 @@ var require_proto = __commonJS({
3415
3458
  get msgPrefix() {
3416
3459
  return this[msgPrefixSym];
3417
3460
  },
3461
+ get [Symbol.toStringTag]() {
3462
+ return "Pino";
3463
+ },
3418
3464
  [lsCacheSym]: initialLsCache,
3419
3465
  [writeSym]: write,
3420
3466
  [asJsonSym]: asJson,
@@ -3478,8 +3524,10 @@ var require_proto = __commonJS({
3478
3524
  instance[msgPrefixSym] = (this[msgPrefixSym] || "") + options.msgPrefix;
3479
3525
  }
3480
3526
  instance[chindingsSym] = asChindings(instance, bindings2);
3481
- const childLevel = options.level || this.level;
3482
- instance[setLevelSym](childLevel);
3527
+ if (options.level !== void 0 && options.level !== this.level || options.hasOwnProperty("customLevels")) {
3528
+ const childLevel = options.level || this.level;
3529
+ instance[setLevelSym](childLevel);
3530
+ }
3483
3531
  this.onChild(instance);
3484
3532
  return instance;
3485
3533
  }
@@ -4526,6 +4574,7 @@ var require_pino = __commonJS({
4526
4574
  // src/loggers/index.ts
4527
4575
  var loggers_exports = {};
4528
4576
  __export(loggers_exports, {
4577
+ handleHapiRequestEvent: () => handleHapiRequestEvent,
4529
4578
  patchConsole: () => patchConsole,
4530
4579
  patchNestLogger: () => patchNestLogger,
4531
4580
  patchPinoLogger: () => patchPinoLogger,
@@ -4573,8 +4622,33 @@ function captureLog(level, args) {
4573
4622
  }
4574
4623
  __name(captureLog, "captureLog");
4575
4624
 
4576
- // src/loggers/utils.ts
4625
+ // src/loggers/hapi.ts
4577
4626
  var import_node_util2 = require("util");
4627
+ var MAX_BUFFER_SIZE2 = 1e3;
4628
+ var VALID_LOG_LEVELS = /* @__PURE__ */ new Set([
4629
+ "trace",
4630
+ "debug",
4631
+ "info",
4632
+ "warn",
4633
+ "warning",
4634
+ "error",
4635
+ "fatal"
4636
+ ]);
4637
+ function handleHapiRequestEvent(event, logsContext) {
4638
+ const logs = logsContext.getStore();
4639
+ if (!logs || logs.length >= MAX_BUFFER_SIZE2) {
4640
+ return;
4641
+ }
4642
+ logs.push({
4643
+ timestamp: Number(event.timestamp) / 1e3,
4644
+ level: event.tags.find((tag) => VALID_LOG_LEVELS.has(tag.toLowerCase())) || "log",
4645
+ message: (0, import_node_util2.format)(event.data)
4646
+ });
4647
+ }
4648
+ __name(handleHapiRequestEvent, "handleHapiRequestEvent");
4649
+
4650
+ // src/loggers/utils.ts
4651
+ var import_node_util3 = require("util");
4578
4652
  function formatMessage(message, ...args) {
4579
4653
  return [
4580
4654
  message,
@@ -4591,7 +4665,7 @@ function formatArg(arg) {
4591
4665
  return arg.trim();
4592
4666
  }
4593
4667
  if (arg instanceof Error) {
4594
- return (0, import_node_util2.format)(arg).trim();
4668
+ return (0, import_node_util3.format)(arg).trim();
4595
4669
  }
4596
4670
  if (arg === void 0 || arg === null || isEmptyObject(arg)) {
4597
4671
  return "";
@@ -4599,7 +4673,7 @@ function formatArg(arg) {
4599
4673
  try {
4600
4674
  return JSON.stringify(arg);
4601
4675
  } catch {
4602
- return (0, import_node_util2.format)(arg).trim();
4676
+ return (0, import_node_util3.format)(arg).trim();
4603
4677
  }
4604
4678
  }
4605
4679
  __name(formatArg, "formatArg");
@@ -4609,7 +4683,7 @@ function isEmptyObject(obj) {
4609
4683
  __name(isEmptyObject, "isEmptyObject");
4610
4684
 
4611
4685
  // src/loggers/nestjs.ts
4612
- var MAX_BUFFER_SIZE2 = 1e3;
4686
+ var MAX_BUFFER_SIZE3 = 1e3;
4613
4687
  var isPatched2 = false;
4614
4688
  var globalLogsContext2;
4615
4689
  async function patchNestLogger(logsContext) {
@@ -4660,7 +4734,7 @@ async function patchNestLogger(logsContext) {
4660
4734
  __name(patchNestLogger, "patchNestLogger");
4661
4735
  function captureLog2(level, args, context) {
4662
4736
  const logs = globalLogsContext2 == null ? void 0 : globalLogsContext2.getStore();
4663
- if (logs && logs.length < MAX_BUFFER_SIZE2) {
4737
+ if (logs && logs.length < MAX_BUFFER_SIZE3) {
4664
4738
  logs.push({
4665
4739
  timestamp: Date.now() / 1e3,
4666
4740
  logger: context,
@@ -4672,7 +4746,7 @@ function captureLog2(level, args, context) {
4672
4746
  __name(captureLog2, "captureLog");
4673
4747
 
4674
4748
  // src/loggers/pino.ts
4675
- var MAX_BUFFER_SIZE3 = 1e3;
4749
+ var MAX_BUFFER_SIZE4 = 1e3;
4676
4750
  var originalStreamSym = Symbol.for("apitally.originalStream");
4677
4751
  var logLevelMap = {
4678
4752
  10: "trace",
@@ -4684,18 +4758,23 @@ var logLevelMap = {
4684
4758
  };
4685
4759
  async function patchPinoLogger(logger, logsContext) {
4686
4760
  try {
4687
- const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4688
- if (!(pino.default.symbols.streamSym in logger)) {
4689
- return;
4761
+ const symbols = [
4762
+ ...Object.getOwnPropertySymbols(logger),
4763
+ ...Object.getOwnPropertySymbols(Object.getPrototypeOf(logger))
4764
+ ];
4765
+ const streamSym = symbols.find((sym) => sym.toString() === "Symbol(pino.stream)");
4766
+ const messageKeySym = symbols.find((sym) => sym.toString() === "Symbol(pino.messageKey)");
4767
+ if (!streamSym || !messageKeySym) {
4768
+ return false;
4690
4769
  }
4691
4770
  if (!(originalStreamSym in logger)) {
4692
- logger[originalStreamSym] = logger[pino.default.symbols.streamSym];
4771
+ logger[originalStreamSym] = logger[streamSym];
4693
4772
  }
4694
4773
  const originalStream = logger[originalStreamSym];
4695
4774
  if (originalStream) {
4696
- const messageKey = logger[pino.default.symbols.messageKeySym];
4697
- const captureStream = new ApitallyLogCaptureStream(logsContext, messageKey);
4698
- logger[pino.default.symbols.streamSym] = pino.default.multistream([
4775
+ const pino = await Promise.resolve().then(() => __toESM(require_pino(), 1));
4776
+ const captureStream = new ApitallyLogCaptureStream(logsContext, logger[messageKeySym]);
4777
+ logger[streamSym] = pino.default.multistream([
4699
4778
  {
4700
4779
  level: 0,
4701
4780
  stream: originalStream
@@ -4708,7 +4787,9 @@ async function patchPinoLogger(logger, logsContext) {
4708
4787
  levels: logger.levels
4709
4788
  });
4710
4789
  }
4790
+ return true;
4711
4791
  } catch {
4792
+ return false;
4712
4793
  }
4713
4794
  }
4714
4795
  __name(patchPinoLogger, "patchPinoLogger");
@@ -4726,7 +4807,7 @@ var ApitallyLogCaptureStream = (_a = class {
4726
4807
  }
4727
4808
  write(msg) {
4728
4809
  const logs = this.logsContext.getStore();
4729
- if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE3) {
4810
+ if (!logs || !msg || logs.length >= MAX_BUFFER_SIZE4) {
4730
4811
  return;
4731
4812
  }
4732
4813
  let obj;
@@ -4739,8 +4820,8 @@ var ApitallyLogCaptureStream = (_a = class {
4739
4820
  return;
4740
4821
  }
4741
4822
  try {
4742
- const message = obj[this.messageKey];
4743
- const rest = removeKeys(obj, [
4823
+ let message = obj[this.messageKey];
4824
+ const ignoreKeys = [
4744
4825
  "hostname",
4745
4826
  "level",
4746
4827
  this.messageKey,
@@ -4749,7 +4830,13 @@ var ApitallyLogCaptureStream = (_a = class {
4749
4830
  "reqId",
4750
4831
  "req",
4751
4832
  "res"
4752
- ]);
4833
+ ];
4834
+ if (!message && "data" in obj && "tags" in obj) {
4835
+ message = obj.data;
4836
+ ignoreKeys.push("data");
4837
+ ignoreKeys.push("tags");
4838
+ }
4839
+ const rest = removeKeys(obj, ignoreKeys);
4753
4840
  const formattedMessage = formatMessage(message, rest);
4754
4841
  if (formattedMessage) {
4755
4842
  logs.push({
@@ -4770,7 +4857,7 @@ var ApitallyLogCaptureStream = (_a = class {
4770
4857
  }, __name(_a, "ApitallyLogCaptureStream"), _a);
4771
4858
 
4772
4859
  // src/loggers/winston.ts
4773
- var MAX_BUFFER_SIZE4 = 1e3;
4860
+ var MAX_BUFFER_SIZE5 = 1e3;
4774
4861
  var isPatched3 = false;
4775
4862
  var globalLogsContext3;
4776
4863
  async function patchWinston(logsContext) {
@@ -4795,7 +4882,7 @@ async function patchWinston(logsContext) {
4795
4882
  __name(patchWinston, "patchWinston");
4796
4883
  function captureLog3(info) {
4797
4884
  const logs = globalLogsContext3 == null ? void 0 : globalLogsContext3.getStore();
4798
- if (!logs || !info || logs.length >= MAX_BUFFER_SIZE4) {
4885
+ if (!logs || !info || logs.length >= MAX_BUFFER_SIZE5) {
4799
4886
  return;
4800
4887
  }
4801
4888
  try {
@@ -4829,6 +4916,7 @@ function parseTimestamp(timestamp) {
4829
4916
  __name(parseTimestamp, "parseTimestamp");
4830
4917
  // Annotate the CommonJS export names for ESM import in node:
4831
4918
  0 && (module.exports = {
4919
+ handleHapiRequestEvent,
4832
4920
  patchConsole,
4833
4921
  patchNestLogger,
4834
4922
  patchPinoLogger,