apitally 0.25.7 → 1.0.0-alpha.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 (549) hide show
  1. package/README.md +191 -184
  2. package/dist/activation.cjs +371 -0
  3. package/dist/activation.cjs.map +1 -0
  4. package/dist/activation.d.cts +41 -0
  5. package/dist/activation.d.ts +41 -0
  6. package/dist/activation.js +357 -0
  7. package/dist/activation.js.map +1 -0
  8. package/dist/adonisjs/configure.cjs +88 -31
  9. package/dist/adonisjs/configure.cjs.map +1 -1
  10. package/dist/adonisjs/configure.d.cts +0 -4
  11. package/dist/adonisjs/configure.d.ts +0 -4
  12. package/dist/adonisjs/configure.js +85 -30
  13. package/dist/adonisjs/configure.js.map +1 -1
  14. package/dist/adonisjs/index.cjs +4 -23
  15. package/dist/adonisjs/index.cjs.map +1 -1
  16. package/dist/adonisjs/index.d.cts +3 -15
  17. package/dist/adonisjs/index.d.ts +3 -15
  18. package/dist/adonisjs/index.js +3 -20
  19. package/dist/adonisjs/index.js.map +1 -1
  20. package/dist/adonisjs/middleware.cjs +43 -109
  21. package/dist/adonisjs/middleware.cjs.map +1 -1
  22. package/dist/adonisjs/middleware.d.cts +1 -16
  23. package/dist/adonisjs/middleware.d.ts +1 -16
  24. package/dist/adonisjs/middleware.js +43 -110
  25. package/dist/adonisjs/middleware.js.map +1 -1
  26. package/dist/adonisjs/provider.cjs +19 -87
  27. package/dist/adonisjs/provider.cjs.map +1 -1
  28. package/dist/adonisjs/provider.d.cts +0 -22
  29. package/dist/adonisjs/provider.d.ts +0 -22
  30. package/dist/adonisjs/provider.js +19 -88
  31. package/dist/adonisjs/provider.js.map +1 -1
  32. package/dist/adonisjs/stubs/config/apitally.stub +11 -15
  33. package/dist/bodyCapture.cjs +128 -0
  34. package/dist/bodyCapture.cjs.map +1 -0
  35. package/dist/bodyCapture.d.cts +31 -0
  36. package/dist/bodyCapture.d.ts +31 -0
  37. package/dist/bodyCapture.js +101 -0
  38. package/dist/bodyCapture.js.map +1 -0
  39. package/dist/config.cjs +209 -0
  40. package/dist/config.cjs.map +1 -0
  41. package/dist/config.d.cts +42 -0
  42. package/dist/config.d.ts +42 -0
  43. package/dist/config.js +174 -0
  44. package/dist/config.js.map +1 -0
  45. package/dist/consumer.cjs +98 -0
  46. package/dist/consumer.cjs.map +1 -0
  47. package/dist/consumer.d.cts +13 -0
  48. package/dist/consumer.d.ts +13 -0
  49. package/dist/consumer.js +78 -0
  50. package/dist/consumer.js.map +1 -0
  51. package/dist/context.cjs +68 -0
  52. package/dist/context.cjs.map +1 -0
  53. package/dist/context.d.cts +29 -0
  54. package/dist/context.d.ts +29 -0
  55. package/dist/context.js +40 -0
  56. package/dist/context.js.map +1 -0
  57. package/dist/elysia/index.cjs +12 -13
  58. package/dist/elysia/index.cjs.map +1 -1
  59. package/dist/elysia/index.d.cts +7 -16
  60. package/dist/elysia/index.d.ts +7 -16
  61. package/dist/elysia/index.js +10 -2
  62. package/dist/elysia/index.js.map +1 -1
  63. package/dist/elysia/middleware.cjs +248 -0
  64. package/dist/elysia/middleware.cjs.map +1 -0
  65. package/dist/elysia/middleware.d.cts +13 -0
  66. package/dist/elysia/middleware.d.ts +13 -0
  67. package/dist/elysia/middleware.js +237 -0
  68. package/dist/elysia/middleware.js.map +1 -0
  69. package/dist/{loggers/index.cjs → elysia/routes.cjs} +16 -19
  70. package/dist/elysia/routes.cjs.map +1 -0
  71. package/dist/elysia/routes.d.cts +7 -0
  72. package/dist/elysia/routes.d.ts +7 -0
  73. package/dist/elysia/routes.js +14 -0
  74. package/dist/elysia/routes.js.map +1 -0
  75. package/dist/exceptions.cjs +75 -0
  76. package/dist/exceptions.cjs.map +1 -0
  77. package/dist/exceptions.d.cts +7 -0
  78. package/dist/exceptions.d.ts +7 -0
  79. package/dist/exceptions.js +49 -0
  80. package/dist/exceptions.js.map +1 -0
  81. package/dist/exportSerialization.cjs +56 -0
  82. package/dist/exportSerialization.cjs.map +1 -0
  83. package/dist/exportSerialization.d.cts +7 -0
  84. package/dist/exportSerialization.d.ts +7 -0
  85. package/dist/exportSerialization.js +32 -0
  86. package/dist/exportSerialization.js.map +1 -0
  87. package/dist/exportWorker.cjs +305 -0
  88. package/dist/exportWorker.cjs.map +1 -0
  89. package/dist/exportWorker.d.cts +46 -0
  90. package/dist/exportWorker.d.ts +46 -0
  91. package/dist/exportWorker.js +279 -0
  92. package/dist/exportWorker.js.map +1 -0
  93. package/dist/express/index.cjs +9 -4
  94. package/dist/express/index.cjs.map +1 -1
  95. package/dist/express/index.d.cts +6 -10
  96. package/dist/express/index.d.ts +6 -10
  97. package/dist/express/index.js +8 -2
  98. package/dist/express/index.js.map +1 -1
  99. package/dist/express/install.cjs +45 -0
  100. package/dist/express/install.cjs.map +1 -0
  101. package/dist/express/install.d.cts +9 -0
  102. package/dist/express/install.d.ts +9 -0
  103. package/dist/express/install.js +21 -0
  104. package/dist/express/install.js.map +1 -0
  105. package/dist/express/middleware.cjs +80 -331
  106. package/dist/express/middleware.cjs.map +1 -1
  107. package/dist/express/middleware.d.cts +3 -21
  108. package/dist/express/middleware.d.ts +3 -21
  109. package/dist/express/middleware.js +81 -328
  110. package/dist/express/middleware.js.map +1 -1
  111. package/dist/express/register.cjs +20 -0
  112. package/dist/express/register.cjs.map +1 -0
  113. package/dist/express/register.d.cts +2 -0
  114. package/dist/express/register.d.ts +2 -0
  115. package/dist/express/register.js +19 -0
  116. package/dist/express/register.js.map +1 -0
  117. package/dist/express/routes.cjs +419 -0
  118. package/dist/express/routes.cjs.map +1 -0
  119. package/dist/express/routes.d.cts +14 -0
  120. package/dist/express/routes.d.ts +14 -0
  121. package/dist/express/routes.js +391 -0
  122. package/dist/express/routes.js.map +1 -0
  123. package/dist/fastify/index.cjs +10 -15
  124. package/dist/fastify/index.cjs.map +1 -1
  125. package/dist/fastify/index.d.cts +6 -11
  126. package/dist/fastify/index.d.ts +6 -11
  127. package/dist/fastify/index.js +9 -3
  128. package/dist/fastify/index.js.map +1 -1
  129. package/dist/{common/logging.cjs → fastify/install.cjs} +15 -16
  130. package/dist/fastify/install.cjs.map +1 -0
  131. package/dist/fastify/install.d.cts +9 -0
  132. package/dist/fastify/install.d.ts +9 -0
  133. package/dist/fastify/install.js +15 -0
  134. package/dist/fastify/install.js.map +1 -0
  135. package/dist/fastify/middleware.cjs +118 -0
  136. package/dist/fastify/middleware.cjs.map +1 -0
  137. package/dist/fastify/middleware.d.cts +7 -0
  138. package/dist/fastify/middleware.d.ts +7 -0
  139. package/dist/fastify/middleware.js +97 -0
  140. package/dist/fastify/middleware.js.map +1 -0
  141. package/dist/{common/paramValidation.cjs → fastify/routes.cjs} +15 -17
  142. package/dist/fastify/routes.cjs.map +1 -0
  143. package/dist/fastify/routes.d.cts +8 -0
  144. package/dist/fastify/routes.d.ts +8 -0
  145. package/dist/fastify/routes.js +14 -0
  146. package/dist/fastify/routes.js.map +1 -0
  147. package/dist/h3/index.cjs +28 -4
  148. package/dist/h3/index.cjs.map +1 -1
  149. package/dist/h3/index.d.cts +7 -10
  150. package/dist/h3/index.d.ts +7 -10
  151. package/dist/h3/index.js +26 -2
  152. package/dist/h3/index.js.map +1 -1
  153. package/dist/h3/middleware.cjs +204 -0
  154. package/dist/h3/middleware.cjs.map +1 -0
  155. package/dist/h3/middleware.d.cts +5 -0
  156. package/dist/h3/middleware.d.ts +5 -0
  157. package/dist/h3/middleware.js +188 -0
  158. package/dist/h3/middleware.js.map +1 -0
  159. package/dist/h3/routes.cjs +66 -0
  160. package/dist/h3/routes.cjs.map +1 -0
  161. package/dist/h3/routes.d.cts +8 -0
  162. package/dist/h3/routes.d.ts +8 -0
  163. package/dist/h3/routes.js +41 -0
  164. package/dist/h3/routes.js.map +1 -0
  165. package/dist/hapi/index.cjs +15 -14
  166. package/dist/hapi/index.cjs.map +1 -1
  167. package/dist/hapi/index.d.cts +7 -10
  168. package/dist/hapi/index.d.ts +7 -10
  169. package/dist/hapi/index.js +14 -3
  170. package/dist/hapi/index.js.map +1 -1
  171. package/dist/{loggers/hapi.cjs → hapi/install.cjs} +20 -26
  172. package/dist/hapi/install.cjs.map +1 -0
  173. package/dist/hapi/install.d.cts +7 -0
  174. package/dist/hapi/install.d.ts +7 -0
  175. package/dist/hapi/install.js +22 -0
  176. package/dist/hapi/install.js.map +1 -0
  177. package/dist/hapi/middleware.cjs +158 -0
  178. package/dist/hapi/middleware.cjs.map +1 -0
  179. package/dist/hapi/middleware.d.cts +5 -0
  180. package/dist/hapi/middleware.d.ts +5 -0
  181. package/dist/hapi/middleware.js +137 -0
  182. package/dist/hapi/middleware.js.map +1 -0
  183. package/dist/hapi/routes.cjs +37 -0
  184. package/dist/hapi/routes.cjs.map +1 -0
  185. package/dist/hapi/routes.d.cts +8 -0
  186. package/dist/hapi/routes.d.ts +8 -0
  187. package/dist/hapi/routes.js +12 -0
  188. package/dist/hapi/routes.js.map +1 -0
  189. package/dist/hono/index.cjs +13 -3
  190. package/dist/hono/index.cjs.map +1 -1
  191. package/dist/hono/index.d.cts +6 -10
  192. package/dist/hono/index.d.ts +6 -10
  193. package/dist/hono/index.js +13 -2
  194. package/dist/hono/index.js.map +1 -1
  195. package/dist/hono/middleware.cjs +211 -127
  196. package/dist/hono/middleware.cjs.map +1 -1
  197. package/dist/hono/middleware.d.cts +3 -18
  198. package/dist/hono/middleware.d.ts +3 -18
  199. package/dist/hono/middleware.js +216 -125
  200. package/dist/hono/middleware.js.map +1 -1
  201. package/dist/hono/routes.cjs +74 -0
  202. package/dist/hono/routes.cjs.map +1 -0
  203. package/dist/hono/routes.d.cts +8 -0
  204. package/dist/hono/routes.d.ts +8 -0
  205. package/dist/hono/routes.js +49 -0
  206. package/dist/hono/routes.js.map +1 -0
  207. package/dist/index.cjs +108 -0
  208. package/dist/index.cjs.map +1 -1
  209. package/dist/index.d.cts +28 -1
  210. package/dist/index.d.ts +28 -1
  211. package/dist/index.js +77 -0
  212. package/dist/index.js.map +1 -1
  213. package/dist/koa/index.cjs +13 -3
  214. package/dist/koa/index.cjs.map +1 -1
  215. package/dist/koa/index.d.cts +6 -10
  216. package/dist/koa/index.d.ts +6 -10
  217. package/dist/koa/index.js +13 -2
  218. package/dist/koa/index.js.map +1 -1
  219. package/dist/koa/middleware.cjs +75 -184
  220. package/dist/koa/middleware.cjs.map +1 -1
  221. package/dist/koa/middleware.d.cts +3 -13
  222. package/dist/koa/middleware.d.ts +3 -13
  223. package/dist/koa/middleware.js +78 -183
  224. package/dist/koa/middleware.js.map +1 -1
  225. package/dist/koa/routes.cjs +71 -0
  226. package/dist/koa/routes.cjs.map +1 -0
  227. package/dist/koa/routes.d.cts +8 -0
  228. package/dist/koa/routes.d.ts +8 -0
  229. package/dist/koa/routes.js +46 -0
  230. package/dist/koa/routes.js.map +1 -0
  231. package/dist/logCapture.cjs +410 -0
  232. package/dist/logCapture.cjs.map +1 -0
  233. package/dist/logCapture.d.cts +16 -0
  234. package/dist/logCapture.d.ts +16 -0
  235. package/dist/logCapture.js +383 -0
  236. package/dist/logCapture.js.map +1 -0
  237. package/dist/logRecordExporter.cjs +83 -0
  238. package/dist/logRecordExporter.cjs.map +1 -0
  239. package/dist/logRecordExporter.d.cts +14 -0
  240. package/dist/logRecordExporter.d.ts +14 -0
  241. package/dist/logRecordExporter.js +59 -0
  242. package/dist/logRecordExporter.js.map +1 -0
  243. package/dist/logRecordProcessor.cjs +120 -0
  244. package/dist/logRecordProcessor.cjs.map +1 -0
  245. package/dist/logRecordProcessor.d.cts +23 -0
  246. package/dist/logRecordProcessor.d.ts +23 -0
  247. package/dist/logRecordProcessor.js +96 -0
  248. package/dist/logRecordProcessor.js.map +1 -0
  249. package/dist/{otel/index.cjs → logRecordTruncation.cjs} +10 -7
  250. package/dist/logRecordTruncation.cjs.map +1 -0
  251. package/dist/logRecordTruncation.d.cts +6 -0
  252. package/dist/logRecordTruncation.d.ts +6 -0
  253. package/dist/logRecordTruncation.js +8 -0
  254. package/dist/logRecordTruncation.js.map +1 -0
  255. package/dist/logger.cjs +62 -0
  256. package/dist/logger.cjs.map +1 -0
  257. package/dist/logger.d.cts +7 -0
  258. package/dist/logger.d.ts +7 -0
  259. package/dist/logger.js +34 -0
  260. package/dist/logger.js.map +1 -0
  261. package/dist/metrics.cjs +171 -0
  262. package/dist/metrics.cjs.map +1 -0
  263. package/dist/metrics.d.cts +24 -0
  264. package/dist/metrics.d.ts +24 -0
  265. package/dist/metrics.js +153 -0
  266. package/dist/metrics.js.map +1 -0
  267. package/dist/nestjs/index.cjs +61 -71
  268. package/dist/nestjs/index.cjs.map +1 -1
  269. package/dist/nestjs/index.d.cts +3 -11
  270. package/dist/nestjs/index.d.ts +3 -11
  271. package/dist/nestjs/index.js +61 -61
  272. package/dist/nestjs/index.js.map +1 -1
  273. package/dist/packageVersion.cjs +67 -0
  274. package/dist/packageVersion.cjs.map +1 -0
  275. package/dist/packageVersion.d.cts +5 -0
  276. package/dist/packageVersion.d.ts +5 -0
  277. package/dist/packageVersion.js +39 -0
  278. package/dist/packageVersion.js.map +1 -0
  279. package/dist/providers.cjs +149 -0
  280. package/dist/providers.cjs.map +1 -0
  281. package/dist/providers.d.cts +15 -0
  282. package/dist/providers.d.ts +15 -0
  283. package/dist/providers.js +136 -0
  284. package/dist/providers.js.map +1 -0
  285. package/dist/redaction.cjs +116 -0
  286. package/dist/redaction.cjs.map +1 -0
  287. package/dist/redaction.d.cts +17 -0
  288. package/dist/redaction.d.ts +17 -0
  289. package/dist/redaction.js +98 -0
  290. package/dist/redaction.js.map +1 -0
  291. package/dist/{common/packageVersions.cjs → requestAttributes.cjs} +21 -19
  292. package/dist/requestAttributes.cjs.map +1 -0
  293. package/dist/requestAttributes.d.cts +8 -0
  294. package/dist/requestAttributes.d.ts +8 -0
  295. package/dist/requestAttributes.js +22 -0
  296. package/dist/requestAttributes.js.map +1 -0
  297. package/dist/requestObservation.cjs +228 -0
  298. package/dist/requestObservation.cjs.map +1 -0
  299. package/dist/requestObservation.d.cts +60 -0
  300. package/dist/requestObservation.d.ts +60 -0
  301. package/dist/requestObservation.js +208 -0
  302. package/dist/requestObservation.js.map +1 -0
  303. package/dist/requestObservationNode.cjs +193 -0
  304. package/dist/requestObservationNode.cjs.map +1 -0
  305. package/dist/requestObservationNode.d.cts +29 -0
  306. package/dist/requestObservationNode.d.ts +29 -0
  307. package/dist/requestObservationNode.js +170 -0
  308. package/dist/requestObservationNode.js.map +1 -0
  309. package/dist/requestObservationWeb.cjs +202 -0
  310. package/dist/requestObservationWeb.cjs.map +1 -0
  311. package/dist/requestObservationWeb.d.cts +32 -0
  312. package/dist/requestObservationWeb.d.ts +32 -0
  313. package/dist/requestObservationWeb.js +182 -0
  314. package/dist/requestObservationWeb.js.map +1 -0
  315. package/dist/sentry.cjs +103 -0
  316. package/dist/sentry.cjs.map +1 -0
  317. package/dist/sentry.d.cts +3 -0
  318. package/dist/sentry.d.ts +3 -0
  319. package/dist/sentry.js +79 -0
  320. package/dist/sentry.js.map +1 -0
  321. package/dist/spanExporter.cjs +218 -0
  322. package/dist/spanExporter.cjs.map +1 -0
  323. package/dist/spanExporter.d.cts +33 -0
  324. package/dist/spanExporter.d.ts +33 -0
  325. package/dist/spanExporter.js +194 -0
  326. package/dist/spanExporter.js.map +1 -0
  327. package/dist/spanProcessor.cjs +523 -0
  328. package/dist/spanProcessor.cjs.map +1 -0
  329. package/dist/spanProcessor.d.cts +67 -0
  330. package/dist/spanProcessor.d.ts +67 -0
  331. package/dist/spanProcessor.js +501 -0
  332. package/dist/spanProcessor.js.map +1 -0
  333. package/dist/spool.cjs +314 -0
  334. package/dist/spool.cjs.map +1 -0
  335. package/dist/spool.d.cts +49 -0
  336. package/dist/spool.d.ts +49 -0
  337. package/dist/spool.js +297 -0
  338. package/dist/spool.js.map +1 -0
  339. package/dist/startup.cjs +93 -0
  340. package/dist/startup.cjs.map +1 -0
  341. package/dist/startup.d.cts +15 -0
  342. package/dist/startup.d.ts +15 -0
  343. package/dist/startup.js +68 -0
  344. package/dist/startup.js.map +1 -0
  345. package/dist/tracing.cjs +116 -0
  346. package/dist/tracing.cjs.map +1 -0
  347. package/dist/tracing.d.cts +5 -0
  348. package/dist/tracing.d.ts +5 -0
  349. package/dist/tracing.js +96 -0
  350. package/dist/tracing.js.map +1 -0
  351. package/package.json +113 -155
  352. package/dist/common/client.cjs +0 -335
  353. package/dist/common/client.cjs.map +0 -1
  354. package/dist/common/client.d.cts +0 -50
  355. package/dist/common/client.d.ts +0 -50
  356. package/dist/common/client.js +0 -302
  357. package/dist/common/client.js.map +0 -1
  358. package/dist/common/consumerRegistry.cjs +0 -84
  359. package/dist/common/consumerRegistry.cjs.map +0 -1
  360. package/dist/common/consumerRegistry.d.cts +0 -20
  361. package/dist/common/consumerRegistry.d.ts +0 -20
  362. package/dist/common/consumerRegistry.js +0 -61
  363. package/dist/common/consumerRegistry.js.map +0 -1
  364. package/dist/common/headers.cjs +0 -55
  365. package/dist/common/headers.cjs.map +0 -1
  366. package/dist/common/headers.d.cts +0 -6
  367. package/dist/common/headers.d.ts +0 -6
  368. package/dist/common/headers.js +0 -31
  369. package/dist/common/headers.js.map +0 -1
  370. package/dist/common/instance.cjs +0 -158
  371. package/dist/common/instance.cjs.map +0 -1
  372. package/dist/common/instance.d.cts +0 -4
  373. package/dist/common/instance.d.ts +0 -4
  374. package/dist/common/instance.js +0 -134
  375. package/dist/common/instance.js.map +0 -1
  376. package/dist/common/logging.cjs.map +0 -1
  377. package/dist/common/logging.d.cts +0 -11
  378. package/dist/common/logging.d.ts +0 -11
  379. package/dist/common/logging.js +0 -17
  380. package/dist/common/logging.js.map +0 -1
  381. package/dist/common/packageVersions.cjs.map +0 -1
  382. package/dist/common/packageVersions.d.cts +0 -3
  383. package/dist/common/packageVersions.d.ts +0 -3
  384. package/dist/common/packageVersions.js +0 -21
  385. package/dist/common/packageVersions.js.map +0 -1
  386. package/dist/common/paramValidation.cjs.map +0 -1
  387. package/dist/common/paramValidation.d.cts +0 -4
  388. package/dist/common/paramValidation.d.ts +0 -4
  389. package/dist/common/paramValidation.js +0 -17
  390. package/dist/common/paramValidation.js.map +0 -1
  391. package/dist/common/requestCounter.cjs +0 -109
  392. package/dist/common/requestCounter.cjs.map +0 -1
  393. package/dist/common/requestCounter.d.cts +0 -24
  394. package/dist/common/requestCounter.d.ts +0 -24
  395. package/dist/common/requestCounter.js +0 -90
  396. package/dist/common/requestCounter.js.map +0 -1
  397. package/dist/common/requestLogger.cjs +0 -541
  398. package/dist/common/requestLogger.cjs.map +0 -1
  399. package/dist/common/requestLogger.d.cts +0 -85
  400. package/dist/common/requestLogger.d.ts +0 -85
  401. package/dist/common/requestLogger.js +0 -507
  402. package/dist/common/requestLogger.js.map +0 -1
  403. package/dist/common/resources.cjs +0 -49
  404. package/dist/common/resources.cjs.map +0 -1
  405. package/dist/common/resources.d.cts +0 -6
  406. package/dist/common/resources.d.ts +0 -6
  407. package/dist/common/resources.js +0 -26
  408. package/dist/common/resources.js.map +0 -1
  409. package/dist/common/response.cjs +0 -104
  410. package/dist/common/response.cjs.map +0 -1
  411. package/dist/common/response.d.cts +0 -15
  412. package/dist/common/response.d.ts +0 -15
  413. package/dist/common/response.js +0 -80
  414. package/dist/common/response.js.map +0 -1
  415. package/dist/common/sentry.cjs +0 -56
  416. package/dist/common/sentry.cjs.map +0 -1
  417. package/dist/common/sentry.d.cts +0 -6
  418. package/dist/common/sentry.d.ts +0 -6
  419. package/dist/common/sentry.js +0 -23
  420. package/dist/common/sentry.js.map +0 -1
  421. package/dist/common/serverErrorCounter.cjs +0 -121
  422. package/dist/common/serverErrorCounter.cjs.map +0 -1
  423. package/dist/common/serverErrorCounter.d.cts +0 -23
  424. package/dist/common/serverErrorCounter.d.ts +0 -23
  425. package/dist/common/serverErrorCounter.js +0 -97
  426. package/dist/common/serverErrorCounter.js.map +0 -1
  427. package/dist/common/spanCollector.cjs +0 -199
  428. package/dist/common/spanCollector.cjs.map +0 -1
  429. package/dist/common/spanCollector.d.cts +0 -45
  430. package/dist/common/spanCollector.d.ts +0 -45
  431. package/dist/common/spanCollector.js +0 -176
  432. package/dist/common/spanCollector.js.map +0 -1
  433. package/dist/common/tempGzipFile.cjs +0 -125
  434. package/dist/common/tempGzipFile.cjs.map +0 -1
  435. package/dist/common/tempGzipFile.d.cts +0 -19
  436. package/dist/common/tempGzipFile.d.ts +0 -19
  437. package/dist/common/tempGzipFile.js +0 -102
  438. package/dist/common/tempGzipFile.js.map +0 -1
  439. package/dist/common/types.cjs +0 -17
  440. package/dist/common/types.cjs.map +0 -1
  441. package/dist/common/types.d.cts +0 -95
  442. package/dist/common/types.d.ts +0 -95
  443. package/dist/common/types.js +0 -1
  444. package/dist/common/types.js.map +0 -1
  445. package/dist/common/validationErrorCounter.cjs +0 -74
  446. package/dist/common/validationErrorCounter.cjs.map +0 -1
  447. package/dist/common/validationErrorCounter.d.cts +0 -20
  448. package/dist/common/validationErrorCounter.d.ts +0 -20
  449. package/dist/common/validationErrorCounter.js +0 -55
  450. package/dist/common/validationErrorCounter.js.map +0 -1
  451. package/dist/elysia/plugin.cjs +0 -237
  452. package/dist/elysia/plugin.cjs.map +0 -1
  453. package/dist/elysia/plugin.d.cts +0 -70
  454. package/dist/elysia/plugin.d.ts +0 -70
  455. package/dist/elysia/plugin.js +0 -218
  456. package/dist/elysia/plugin.js.map +0 -1
  457. package/dist/elysia/utils.cjs +0 -77
  458. package/dist/elysia/utils.cjs.map +0 -1
  459. package/dist/elysia/utils.d.cts +0 -14
  460. package/dist/elysia/utils.d.ts +0 -14
  461. package/dist/elysia/utils.js +0 -54
  462. package/dist/elysia/utils.js.map +0 -1
  463. package/dist/express/utils.cjs +0 -217
  464. package/dist/express/utils.cjs.map +0 -1
  465. package/dist/express/utils.d.cts +0 -37
  466. package/dist/express/utils.d.ts +0 -37
  467. package/dist/express/utils.js +0 -189
  468. package/dist/express/utils.js.map +0 -1
  469. package/dist/fastify/plugin.cjs +0 -316
  470. package/dist/fastify/plugin.cjs.map +0 -1
  471. package/dist/fastify/plugin.d.cts +0 -34
  472. package/dist/fastify/plugin.d.ts +0 -34
  473. package/dist/fastify/plugin.js +0 -282
  474. package/dist/fastify/plugin.js.map +0 -1
  475. package/dist/h3/plugin.cjs +0 -183
  476. package/dist/h3/plugin.cjs.map +0 -1
  477. package/dist/h3/plugin.d.cts +0 -27
  478. package/dist/h3/plugin.d.ts +0 -27
  479. package/dist/h3/plugin.js +0 -159
  480. package/dist/h3/plugin.js.map +0 -1
  481. package/dist/h3/utils.cjs +0 -77
  482. package/dist/h3/utils.cjs.map +0 -1
  483. package/dist/h3/utils.d.cts +0 -14
  484. package/dist/h3/utils.d.ts +0 -14
  485. package/dist/h3/utils.js +0 -54
  486. package/dist/h3/utils.js.map +0 -1
  487. package/dist/hapi/plugin.cjs +0 -210
  488. package/dist/hapi/plugin.cjs.map +0 -1
  489. package/dist/hapi/plugin.d.cts +0 -40
  490. package/dist/hapi/plugin.d.ts +0 -40
  491. package/dist/hapi/plugin.js +0 -187
  492. package/dist/hapi/plugin.js.map +0 -1
  493. package/dist/hapi/utils.cjs +0 -77
  494. package/dist/hapi/utils.cjs.map +0 -1
  495. package/dist/hapi/utils.d.cts +0 -16
  496. package/dist/hapi/utils.d.ts +0 -16
  497. package/dist/hapi/utils.js +0 -53
  498. package/dist/hapi/utils.js.map +0 -1
  499. package/dist/hono/utils.cjs +0 -113
  500. package/dist/hono/utils.cjs.map +0 -1
  501. package/dist/hono/utils.d.cts +0 -16
  502. package/dist/hono/utils.d.ts +0 -16
  503. package/dist/hono/utils.js +0 -88
  504. package/dist/hono/utils.js.map +0 -1
  505. package/dist/loggers/console.cjs +0 -67
  506. package/dist/loggers/console.cjs.map +0 -1
  507. package/dist/loggers/console.d.cts +0 -11
  508. package/dist/loggers/console.d.ts +0 -11
  509. package/dist/loggers/console.js +0 -44
  510. package/dist/loggers/console.js.map +0 -1
  511. package/dist/loggers/hapi.cjs.map +0 -1
  512. package/dist/loggers/hapi.d.cts +0 -12
  513. package/dist/loggers/hapi.d.ts +0 -12
  514. package/dist/loggers/hapi.js +0 -29
  515. package/dist/loggers/hapi.js.map +0 -1
  516. package/dist/loggers/index.cjs.map +0 -1
  517. package/dist/loggers/index.d.cts +0 -13
  518. package/dist/loggers/index.d.ts +0 -13
  519. package/dist/loggers/index.js +0 -13
  520. package/dist/loggers/index.js.map +0 -1
  521. package/dist/loggers/nestjs.cjs +0 -104
  522. package/dist/loggers/nestjs.cjs.map +0 -1
  523. package/dist/loggers/nestjs.d.cts +0 -11
  524. package/dist/loggers/nestjs.d.ts +0 -11
  525. package/dist/loggers/nestjs.js +0 -71
  526. package/dist/loggers/nestjs.js.map +0 -1
  527. package/dist/loggers/pino.cjs +0 -152
  528. package/dist/loggers/pino.cjs.map +0 -1
  529. package/dist/loggers/pino.d.cts +0 -11
  530. package/dist/loggers/pino.d.ts +0 -11
  531. package/dist/loggers/pino.js +0 -119
  532. package/dist/loggers/pino.js.map +0 -1
  533. package/dist/loggers/utils.cjs +0 -64
  534. package/dist/loggers/utils.cjs.map +0 -1
  535. package/dist/loggers/utils.d.cts +0 -6
  536. package/dist/loggers/utils.d.ts +0 -6
  537. package/dist/loggers/utils.js +0 -40
  538. package/dist/loggers/utils.js.map +0 -1
  539. package/dist/loggers/winston.cjs +0 -101
  540. package/dist/loggers/winston.cjs.map +0 -1
  541. package/dist/loggers/winston.d.cts +0 -11
  542. package/dist/loggers/winston.d.ts +0 -11
  543. package/dist/loggers/winston.js +0 -68
  544. package/dist/loggers/winston.js.map +0 -1
  545. package/dist/otel/index.cjs.map +0 -1
  546. package/dist/otel/index.d.cts +0 -2
  547. package/dist/otel/index.d.ts +0 -2
  548. package/dist/otel/index.js +0 -5
  549. package/dist/otel/index.js.map +0 -1
@@ -1,237 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var plugin_exports = {};
21
- __export(plugin_exports, {
22
- default: () => apitallyPlugin
23
- });
24
- module.exports = __toCommonJS(plugin_exports);
25
- var import_elysia = require("elysia");
26
- var import_node_async_hooks = require("node:async_hooks");
27
- var import_node_perf_hooks = require("node:perf_hooks");
28
- var import_client = require('../common/client.cjs');
29
- var import_consumerRegistry = require('../common/consumerRegistry.cjs');
30
- var import_headers = require('../common/headers.cjs');
31
- var import_requestLogger = require('../common/requestLogger.cjs');
32
- var import_response = require('../common/response.cjs');
33
- var import_loggers = require('../loggers/index.cjs');
34
- var import_utils = require('./utils.cjs');
35
- const START_TIME_SYMBOL = /* @__PURE__ */ Symbol("apitally.startTime");
36
- const REQUEST_BODY_SYMBOL = /* @__PURE__ */ Symbol("apitally.requestBody");
37
- const RESPONSE_SYMBOL = /* @__PURE__ */ Symbol("apitally.response");
38
- const RESPONSE_PROMISE_SYMBOL = /* @__PURE__ */ Symbol("apitally.responsePromise");
39
- const ERROR_SYMBOL = /* @__PURE__ */ Symbol("apitally.error");
40
- const CLIENT_SYMBOL = /* @__PURE__ */ Symbol("apitally.client");
41
- const REQUEST_SYMBOL = /* @__PURE__ */ Symbol("apitally.request");
42
- const SPAN_HANDLE_SYMBOL = /* @__PURE__ */ Symbol("apitally.spanHandle");
43
- function apitallyPlugin(config) {
44
- const client = new import_client.ApitallyClient(config);
45
- const logsContext = new import_node_async_hooks.AsyncLocalStorage();
46
- if (client.requestLogger.enabled && client.requestLogger.config.captureLogs) {
47
- (0, import_loggers.patchConsole)(logsContext);
48
- (0, import_loggers.patchWinston)(logsContext);
49
- }
50
- return (app) => {
51
- const handler = app["~adapter"].handler;
52
- if (!handler.mapResponse.name.startsWith("wrapped")) {
53
- const originalMapResponse = handler.mapResponse;
54
- const originalMapCompactResponse = handler.mapCompactResponse;
55
- const originalMapEarlyResponse = handler.mapEarlyResponse;
56
- const captureMappedResponse = /* @__PURE__ */ __name((originalResponse, mappedResponse, set) => {
57
- const request = set == null ? void 0 : set[REQUEST_SYMBOL];
58
- if (request instanceof Request && mappedResponse instanceof Response && !(RESPONSE_SYMBOL in request) && CLIENT_SYMBOL in request) {
59
- if (typeof originalResponse === "string") {
60
- const responseBody = Buffer.from(originalResponse);
61
- request[RESPONSE_SYMBOL] = mappedResponse;
62
- request[RESPONSE_PROMISE_SYMBOL] = Promise.resolve({
63
- body: responseBody,
64
- size: responseBody.length,
65
- completed: true
66
- });
67
- } else {
68
- const client2 = request[CLIENT_SYMBOL];
69
- const [newResponse, responsePromise] = (0, import_response.captureResponse)(mappedResponse, {
70
- captureBody: client2.requestLogger.enabled && client2.requestLogger.config.logResponseBody,
71
- maxBodySize: client2.requestLogger.maxBodySize
72
- });
73
- request[RESPONSE_SYMBOL] = newResponse;
74
- request[RESPONSE_PROMISE_SYMBOL] = responsePromise;
75
- return newResponse;
76
- }
77
- }
78
- return mappedResponse;
79
- }, "captureMappedResponse");
80
- handler.mapResponse = /* @__PURE__ */ __name(function wrappedMapResponse(response, set) {
81
- const mappedResponse = originalMapResponse(response, set);
82
- const newResponse = captureMappedResponse(response, mappedResponse, set);
83
- return newResponse;
84
- }, "wrappedMapResponse");
85
- handler.mapCompactResponse = /* @__PURE__ */ __name(function wrappedMapCompactResponse(response) {
86
- const mappedResponse = originalMapCompactResponse(response);
87
- const newResponse = captureMappedResponse(response, mappedResponse, void 0);
88
- return newResponse;
89
- }, "wrappedMapCompactResponse");
90
- handler.mapEarlyResponse = /* @__PURE__ */ __name(function wrappedMapEarlyResponse(response, set) {
91
- const mappedResponse = originalMapEarlyResponse(response, set);
92
- const newResponse = captureMappedResponse(response, mappedResponse, set);
93
- return newResponse;
94
- }, "wrappedMapEarlyResponse");
95
- }
96
- return app.decorate("apitally", {}).onStart(() => {
97
- const appInfo = (0, import_utils.getAppInfo)(app, config.appVersion);
98
- client.setStartupData(appInfo);
99
- client.startSync();
100
- }).onStop(async () => {
101
- await client.handleShutdown();
102
- }).onRequest(async ({ request, set }) => {
103
- if (!client.isEnabled() || request.method.toUpperCase() === "OPTIONS") {
104
- return;
105
- }
106
- request[CLIENT_SYMBOL] = client;
107
- request[START_TIME_SYMBOL] = import_node_perf_hooks.performance.now();
108
- set[REQUEST_SYMBOL] = request;
109
- logsContext.enterWith([]);
110
- const spanHandle = client.spanCollector.startSpan();
111
- request[SPAN_HANDLE_SYMBOL] = spanHandle;
112
- spanHandle.enterContext();
113
- if (client.requestLogger.enabled && client.requestLogger.config.logRequestBody) {
114
- const contentType = request.headers.get("content-type");
115
- const requestSize = (0, import_headers.parseContentLength)(request.headers.get("content-length")) ?? 0;
116
- if (client.requestLogger.isSupportedContentType(contentType) && requestSize <= client.requestLogger.maxBodySize) {
117
- try {
118
- request[REQUEST_BODY_SYMBOL] = Buffer.from(await request.clone().arrayBuffer());
119
- } catch (error) {
120
- }
121
- }
122
- }
123
- }).onAfterResponse(async ({ request, set, route, apitally }) => {
124
- if (!client.isEnabled() || request.method.toUpperCase() === "OPTIONS") {
125
- return;
126
- }
127
- const startTime = request[START_TIME_SYMBOL];
128
- const responseTime = startTime ? import_node_perf_hooks.performance.now() - startTime : 0;
129
- const spanHandle = request[SPAN_HANDLE_SYMBOL];
130
- spanHandle == null ? void 0 : spanHandle.setName(`${request.method} ${route}`);
131
- const spans = spanHandle == null ? void 0 : spanHandle.end();
132
- const traceId = spanHandle == null ? void 0 : spanHandle.traceId;
133
- const requestBody = request[REQUEST_BODY_SYMBOL];
134
- const requestSize = (0, import_headers.parseContentLength)(request.headers.get("content-length")) ?? (requestBody == null ? void 0 : requestBody.length);
135
- let responsePromise = request[RESPONSE_PROMISE_SYMBOL];
136
- let response = request[RESPONSE_SYMBOL];
137
- const error = request[ERROR_SYMBOL];
138
- if (!response && error && "toResponse" in error && typeof error.toResponse === "function") {
139
- try {
140
- response = error.toResponse();
141
- const errorResponseBody = Buffer.from(await response.arrayBuffer());
142
- responsePromise = Promise.resolve({
143
- body: errorResponseBody,
144
- size: errorResponseBody.length,
145
- completed: true
146
- });
147
- } catch (error2) {
148
- }
149
- }
150
- const statusCode = (response == null ? void 0 : response.status) ?? getStatusCode(set) ?? 200;
151
- if (!response) {
152
- response = new Response(null, {
153
- status: statusCode,
154
- statusText: "",
155
- headers: new Headers()
156
- });
157
- responsePromise = Promise.resolve({
158
- body: void 0,
159
- size: 0,
160
- completed: true
161
- });
162
- }
163
- const consumer = apitally.consumer ? (0, import_consumerRegistry.consumerFromStringOrObject)(apitally.consumer) : null;
164
- client.consumerRegistry.addOrUpdateConsumer(consumer);
165
- responsePromise == null ? void 0 : responsePromise.then(async (capturedResponse) => {
166
- const responseHeaders = (response == null ? void 0 : response.headers) ?? set.headers;
167
- const responseSize = capturedResponse.completed ? capturedResponse.size : void 0;
168
- client.requestCounter.addRequest({
169
- consumer: consumer == null ? void 0 : consumer.identifier,
170
- method: request.method,
171
- path: route,
172
- statusCode,
173
- responseTime,
174
- requestSize,
175
- responseSize
176
- });
177
- if (client.requestLogger.enabled) {
178
- const logs = logsContext.getStore();
179
- client.requestLogger.logRequest({
180
- timestamp: (Date.now() - responseTime) / 1e3,
181
- method: request.method,
182
- path: route,
183
- url: request.url,
184
- headers: (0, import_requestLogger.convertHeaders)(Object.fromEntries(request.headers.entries())),
185
- size: requestSize,
186
- consumer: consumer == null ? void 0 : consumer.identifier,
187
- body: requestBody
188
- }, {
189
- statusCode,
190
- responseTime: responseTime / 1e3,
191
- headers: (0, import_requestLogger.convertHeaders)(responseHeaders),
192
- size: responseSize,
193
- body: capturedResponse.body
194
- }, error, logs, spans, traceId);
195
- }
196
- });
197
- if ((statusCode === 400 || statusCode === 422) && error instanceof import_elysia.ValidationError) {
198
- try {
199
- const parsedMessage = JSON.parse(error.message);
200
- client.validationErrorCounter.addValidationError({
201
- consumer: consumer == null ? void 0 : consumer.identifier,
202
- method: request.method,
203
- path: route,
204
- loc: (parsedMessage.on ?? "") + "." + (parsedMessage.property ?? ""),
205
- msg: parsedMessage.message,
206
- type: ""
207
- });
208
- } catch (error2) {
209
- }
210
- }
211
- if (statusCode === 500 && error) {
212
- client.serverErrorCounter.addServerError({
213
- consumer: consumer == null ? void 0 : consumer.identifier,
214
- method: request.method,
215
- path: route,
216
- type: error.name,
217
- msg: error.message,
218
- traceback: error.stack || ""
219
- });
220
- }
221
- }).onError(({ request, error }) => {
222
- if (client.isEnabled() && error instanceof Error) {
223
- request[ERROR_SYMBOL] = error;
224
- }
225
- });
226
- };
227
- }
228
- __name(apitallyPlugin, "apitallyPlugin");
229
- function getStatusCode(set) {
230
- if (typeof set.status === "number") {
231
- return set.status;
232
- } else if (typeof set.status === "string") {
233
- return import_elysia.StatusMap[set.status];
234
- }
235
- }
236
- __name(getStatusCode, "getStatusCode");
237
- //# sourceMappingURL=plugin.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/elysia/plugin.ts"],"sourcesContent":["import { Context, Elysia, StatusMap, ValidationError } from \"elysia\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { performance } from \"node:perf_hooks\";\n\nimport { ApitallyClient } from \"../common/client.js\";\nimport { consumerFromStringOrObject } from \"../common/consumerRegistry.js\";\nimport { parseContentLength } from \"../common/headers.js\";\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport { convertHeaders } from \"../common/requestLogger.js\";\nimport { CapturedResponse, captureResponse } from \"../common/response.js\";\nimport type { SpanHandle } from \"../common/spanCollector.js\";\nimport { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nimport { patchConsole, patchWinston } from \"../loggers/index.js\";\nimport { getAppInfo } from \"./utils.js\";\n\nconst START_TIME_SYMBOL = Symbol(\"apitally.startTime\");\nconst REQUEST_BODY_SYMBOL = Symbol(\"apitally.requestBody\");\nconst RESPONSE_SYMBOL = Symbol(\"apitally.response\");\nconst RESPONSE_PROMISE_SYMBOL = Symbol(\"apitally.responsePromise\");\nconst ERROR_SYMBOL = Symbol(\"apitally.error\");\nconst CLIENT_SYMBOL = Symbol(\"apitally.client\");\nconst REQUEST_SYMBOL = Symbol(\"apitally.request\");\nconst SPAN_HANDLE_SYMBOL = Symbol(\"apitally.spanHandle\");\n\ndeclare global {\n interface Request {\n [START_TIME_SYMBOL]?: number;\n [REQUEST_BODY_SYMBOL]?: Buffer;\n [RESPONSE_SYMBOL]?: Response;\n [RESPONSE_PROMISE_SYMBOL]?: Promise<CapturedResponse>;\n [ERROR_SYMBOL]?: Readonly<Error>;\n [CLIENT_SYMBOL]?: ApitallyClient;\n [SPAN_HANDLE_SYMBOL]?: SpanHandle;\n }\n}\n\ntype ContextSet = Context[\"set\"] & {\n [REQUEST_SYMBOL]?: Request;\n};\n\ninterface ApitallyContext {\n consumer?: ApitallyConsumer | string;\n}\n\nexport default function apitallyPlugin(config: ApitallyConfig) {\n const client = new ApitallyClient(config);\n const logsContext = new AsyncLocalStorage<LogRecord[]>();\n\n if (client.requestLogger.enabled && client.requestLogger.config.captureLogs) {\n patchConsole(logsContext);\n patchWinston(logsContext);\n }\n\n return (app: Elysia) => {\n const handler = app[\"~adapter\"].handler;\n\n if (!handler.mapResponse.name.startsWith(\"wrapped\")) {\n const originalMapResponse = handler.mapResponse;\n const originalMapCompactResponse = handler.mapCompactResponse;\n const originalMapEarlyResponse = handler.mapEarlyResponse;\n\n const captureMappedResponse = (\n originalResponse: unknown,\n mappedResponse: unknown,\n set?: ContextSet,\n ) => {\n const request = set?.[REQUEST_SYMBOL];\n if (\n request instanceof Request &&\n mappedResponse instanceof Response &&\n !(RESPONSE_SYMBOL in request) &&\n CLIENT_SYMBOL in request\n ) {\n if (typeof originalResponse === \"string\") {\n // Preserve the response body value as Blob if the original response is a string,\n // so that Bun adds a Content-Type header.\n const responseBody = Buffer.from(originalResponse as string);\n request[RESPONSE_SYMBOL] = mappedResponse;\n request[RESPONSE_PROMISE_SYMBOL] = Promise.resolve({\n body: responseBody,\n size: responseBody.length,\n completed: true,\n });\n } else {\n // Otherwise capture the response using streaming\n const client = request[CLIENT_SYMBOL]!;\n const [newResponse, responsePromise] = captureResponse(\n mappedResponse,\n {\n captureBody:\n client.requestLogger.enabled &&\n client.requestLogger.config.logResponseBody,\n maxBodySize: client.requestLogger.maxBodySize,\n },\n );\n request[RESPONSE_SYMBOL] = newResponse;\n request[RESPONSE_PROMISE_SYMBOL] = responsePromise;\n return newResponse;\n }\n }\n return mappedResponse;\n };\n\n handler.mapResponse = function wrappedMapResponse(\n response: unknown,\n set: ContextSet,\n ) {\n const mappedResponse = originalMapResponse(response, set);\n const newResponse = captureMappedResponse(\n response,\n mappedResponse,\n set,\n );\n return newResponse;\n };\n handler.mapCompactResponse = function wrappedMapCompactResponse(\n response: unknown,\n ) {\n const mappedResponse = originalMapCompactResponse(response);\n const newResponse = captureMappedResponse(\n response,\n mappedResponse,\n undefined,\n );\n return newResponse;\n };\n handler.mapEarlyResponse = function wrappedMapEarlyResponse(\n response: unknown,\n set: ContextSet,\n ) {\n const mappedResponse = originalMapEarlyResponse(response, set);\n const newResponse = captureMappedResponse(\n response,\n mappedResponse,\n set,\n );\n return newResponse;\n };\n }\n\n return app\n .decorate(\"apitally\", {} as ApitallyContext)\n .onStart(() => {\n const appInfo = getAppInfo(app, config.appVersion);\n client.setStartupData(appInfo);\n client.startSync();\n })\n .onStop(async () => {\n await client.handleShutdown();\n })\n .onRequest(async ({ request, set }) => {\n if (!client.isEnabled() || request.method.toUpperCase() === \"OPTIONS\") {\n return;\n }\n\n request[CLIENT_SYMBOL] = client;\n request[START_TIME_SYMBOL] = performance.now();\n (set as ContextSet)[REQUEST_SYMBOL] = request;\n logsContext.enterWith([]);\n\n // Start span and enter the context for subsequent handlers\n const spanHandle = client.spanCollector.startSpan();\n request[SPAN_HANDLE_SYMBOL] = spanHandle;\n spanHandle.enterContext();\n\n // Capture request body\n if (\n client.requestLogger.enabled &&\n client.requestLogger.config.logRequestBody\n ) {\n const contentType = request.headers.get(\"content-type\");\n const requestSize =\n parseContentLength(request.headers.get(\"content-length\")) ?? 0;\n\n if (\n client.requestLogger.isSupportedContentType(contentType) &&\n requestSize <= client.requestLogger.maxBodySize\n ) {\n try {\n request[REQUEST_BODY_SYMBOL] = Buffer.from(\n await request.clone().arrayBuffer(),\n );\n } catch (error) {\n // ignore\n }\n }\n }\n })\n .onAfterResponse(async ({ request, set, route, apitally }) => {\n if (!client.isEnabled() || request.method.toUpperCase() === \"OPTIONS\") {\n return;\n }\n\n const startTime = request[START_TIME_SYMBOL];\n const responseTime = startTime ? performance.now() - startTime : 0;\n\n const spanHandle = request[SPAN_HANDLE_SYMBOL];\n spanHandle?.setName(`${request.method} ${route}`);\n const spans = spanHandle?.end();\n const traceId = spanHandle?.traceId;\n\n const requestBody = request[REQUEST_BODY_SYMBOL];\n const requestSize =\n parseContentLength(request.headers.get(\"content-length\")) ??\n requestBody?.length;\n\n let responsePromise = request[RESPONSE_PROMISE_SYMBOL];\n let response = request[RESPONSE_SYMBOL];\n const error = request[ERROR_SYMBOL];\n\n if (\n !response &&\n error &&\n \"toResponse\" in error &&\n typeof error.toResponse === \"function\"\n ) {\n // Convert error to response\n try {\n response = error.toResponse() as Response;\n const errorResponseBody = Buffer.from(await response.arrayBuffer());\n responsePromise = Promise.resolve({\n body: errorResponseBody,\n size: errorResponseBody.length,\n completed: true,\n });\n } catch (error) {\n // ignore\n }\n }\n\n const statusCode = response?.status ?? getStatusCode(set) ?? 200;\n\n if (!response) {\n // Create empty fake response for errors without the toResponse method\n response = new Response(null, {\n status: statusCode,\n statusText: \"\",\n headers: new Headers(),\n });\n responsePromise = Promise.resolve({\n body: undefined,\n size: 0,\n completed: true,\n });\n }\n\n const consumer = apitally.consumer\n ? consumerFromStringOrObject(apitally.consumer)\n : null;\n client.consumerRegistry.addOrUpdateConsumer(consumer);\n\n // Log request when response has been fully captured\n responsePromise?.then(async (capturedResponse) => {\n const responseHeaders = response?.headers ?? set.headers;\n const responseSize = capturedResponse.completed\n ? capturedResponse.size\n : undefined;\n\n client.requestCounter.addRequest({\n consumer: consumer?.identifier,\n method: request.method,\n path: route,\n statusCode,\n responseTime,\n requestSize,\n responseSize,\n });\n\n if (client.requestLogger.enabled) {\n const logs = logsContext.getStore();\n client.requestLogger.logRequest(\n {\n timestamp: (Date.now() - responseTime) / 1000,\n method: request.method,\n path: route,\n url: request.url,\n headers: convertHeaders(\n Object.fromEntries(request.headers.entries()),\n ),\n size: requestSize,\n consumer: consumer?.identifier,\n body: requestBody,\n },\n {\n statusCode,\n responseTime: responseTime / 1000,\n headers: convertHeaders(responseHeaders),\n size: responseSize,\n body: capturedResponse.body,\n },\n error,\n logs,\n spans,\n traceId,\n );\n }\n });\n\n // Handle validation errors\n if (\n (statusCode === 400 || statusCode === 422) &&\n error instanceof ValidationError\n ) {\n try {\n const parsedMessage = JSON.parse(error.message);\n client.validationErrorCounter.addValidationError({\n consumer: consumer?.identifier,\n method: request.method,\n path: route,\n loc:\n (parsedMessage.on ?? \"\") + \".\" + (parsedMessage.property ?? \"\"),\n msg: parsedMessage.message,\n type: \"\",\n });\n } catch (error) {\n // ignore\n }\n }\n\n // Handle server errors\n if (statusCode === 500 && error) {\n client.serverErrorCounter.addServerError({\n consumer: consumer?.identifier,\n method: request.method,\n path: route,\n type: error.name,\n msg: error.message,\n traceback: error.stack || \"\",\n });\n }\n })\n .onError(({ request, error }) => {\n if (client.isEnabled() && error instanceof Error) {\n request[ERROR_SYMBOL] = error;\n }\n });\n };\n}\n\nfunction getStatusCode(set: Context[\"set\"]) {\n if (typeof set.status === \"number\") {\n return set.status;\n } else if (typeof set.status === \"string\") {\n return StatusMap[set.status];\n }\n}\n"],"mappings":"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","names":["START_TIME_SYMBOL","Symbol","REQUEST_BODY_SYMBOL","RESPONSE_SYMBOL","RESPONSE_PROMISE_SYMBOL","ERROR_SYMBOL","CLIENT_SYMBOL","REQUEST_SYMBOL","SPAN_HANDLE_SYMBOL","config","client","ApitallyClient","logsContext","AsyncLocalStorage","requestLogger","enabled","captureLogs","patchConsole","patchWinston","app","handler","mapResponse","name","startsWith","originalMapResponse","originalMapCompactResponse","mapCompactResponse","originalMapEarlyResponse","mapEarlyResponse","captureMappedResponse","originalResponse","mappedResponse","set","request","Request","Response","responseBody","Buffer","from","Promise","resolve","body","size","length","completed","newResponse","responsePromise","captureResponse","captureBody","logResponseBody","maxBodySize","wrappedMapResponse","response","wrappedMapCompactResponse","undefined","wrappedMapEarlyResponse","decorate","onStart","appInfo","getAppInfo","appVersion","setStartupData","startSync","onStop","handleShutdown","onRequest","isEnabled","method","toUpperCase","performance","now","enterWith","spanHandle","spanCollector","startSpan","enterContext","logRequestBody","contentType","headers","get","requestSize","parseContentLength","isSupportedContentType","clone","arrayBuffer","error","onAfterResponse","route","apitally","startTime","responseTime","setName","spans","end","traceId","requestBody","toResponse","errorResponseBody","statusCode","status","getStatusCode","statusText","Headers","consumer","consumerFromStringOrObject","consumerRegistry","addOrUpdateConsumer","then","capturedResponse","responseHeaders","responseSize","requestCounter","addRequest","identifier","path","logs","getStore","logRequest","timestamp","Date","url","convertHeaders","Object","fromEntries","entries","ValidationError","parsedMessage","JSON","parse","message","validationErrorCounter","addValidationError","loc","on","property","msg","type","serverErrorCounter","addServerError","traceback","stack","onError","Error","apitallyPlugin","StatusMap"]}
@@ -1,70 +0,0 @@
1
- import { ApitallyConfig, ApitallyConsumer } from '../common/types.cjs';
2
- import { Elysia } from 'elysia';
3
- import { ApitallyClient } from '../common/client.cjs';
4
- import { CapturedResponse } from '../common/response.cjs';
5
- import { SpanHandle } from '../common/spanCollector.cjs';
6
- import '../common/logging.cjs';
7
- import 'winston';
8
- import '../common/requestLogger.cjs';
9
- import 'node:buffer';
10
- import 'node:http';
11
- import '../common/tempGzipFile.cjs';
12
- import '@opentelemetry/sdk-trace-base';
13
- import '../common/consumerRegistry.cjs';
14
- import '../common/requestCounter.cjs';
15
- import '../common/serverErrorCounter.cjs';
16
- import '../common/validationErrorCounter.cjs';
17
-
18
- declare const START_TIME_SYMBOL: unique symbol;
19
- declare const REQUEST_BODY_SYMBOL: unique symbol;
20
- declare const RESPONSE_SYMBOL: unique symbol;
21
- declare const RESPONSE_PROMISE_SYMBOL: unique symbol;
22
- declare const ERROR_SYMBOL: unique symbol;
23
- declare const CLIENT_SYMBOL: unique symbol;
24
- declare const SPAN_HANDLE_SYMBOL: unique symbol;
25
- declare global {
26
- interface Request {
27
- [START_TIME_SYMBOL]?: number;
28
- [REQUEST_BODY_SYMBOL]?: Buffer;
29
- [RESPONSE_SYMBOL]?: Response;
30
- [RESPONSE_PROMISE_SYMBOL]?: Promise<CapturedResponse>;
31
- [ERROR_SYMBOL]?: Readonly<Error>;
32
- [CLIENT_SYMBOL]?: ApitallyClient;
33
- [SPAN_HANDLE_SYMBOL]?: SpanHandle;
34
- }
35
- }
36
- interface ApitallyContext {
37
- consumer?: ApitallyConsumer | string;
38
- }
39
- declare function apitallyPlugin(config: ApitallyConfig): (app: Elysia) => Elysia<"", {
40
- decorator: {
41
- apitally: ApitallyContext;
42
- };
43
- store: {};
44
- derive: {};
45
- resolve: {};
46
- }, {
47
- typebox: {};
48
- error: {};
49
- }, {
50
- schema: {};
51
- standaloneSchema: {};
52
- macro: {};
53
- macroFn: {};
54
- parser: {};
55
- response: {};
56
- }, {}, {
57
- derive: {};
58
- resolve: {};
59
- schema: {};
60
- standaloneSchema: {};
61
- response: {};
62
- }, {
63
- derive: {};
64
- resolve: {};
65
- schema: {};
66
- standaloneSchema: {};
67
- response: {};
68
- }>;
69
-
70
- export { apitallyPlugin as default };
@@ -1,70 +0,0 @@
1
- import { ApitallyConfig, ApitallyConsumer } from '../common/types.js';
2
- import { Elysia } from 'elysia';
3
- import { ApitallyClient } from '../common/client.js';
4
- import { CapturedResponse } from '../common/response.js';
5
- import { SpanHandle } from '../common/spanCollector.js';
6
- import '../common/logging.js';
7
- import 'winston';
8
- import '../common/requestLogger.js';
9
- import 'node:buffer';
10
- import 'node:http';
11
- import '../common/tempGzipFile.js';
12
- import '@opentelemetry/sdk-trace-base';
13
- import '../common/consumerRegistry.js';
14
- import '../common/requestCounter.js';
15
- import '../common/serverErrorCounter.js';
16
- import '../common/validationErrorCounter.js';
17
-
18
- declare const START_TIME_SYMBOL: unique symbol;
19
- declare const REQUEST_BODY_SYMBOL: unique symbol;
20
- declare const RESPONSE_SYMBOL: unique symbol;
21
- declare const RESPONSE_PROMISE_SYMBOL: unique symbol;
22
- declare const ERROR_SYMBOL: unique symbol;
23
- declare const CLIENT_SYMBOL: unique symbol;
24
- declare const SPAN_HANDLE_SYMBOL: unique symbol;
25
- declare global {
26
- interface Request {
27
- [START_TIME_SYMBOL]?: number;
28
- [REQUEST_BODY_SYMBOL]?: Buffer;
29
- [RESPONSE_SYMBOL]?: Response;
30
- [RESPONSE_PROMISE_SYMBOL]?: Promise<CapturedResponse>;
31
- [ERROR_SYMBOL]?: Readonly<Error>;
32
- [CLIENT_SYMBOL]?: ApitallyClient;
33
- [SPAN_HANDLE_SYMBOL]?: SpanHandle;
34
- }
35
- }
36
- interface ApitallyContext {
37
- consumer?: ApitallyConsumer | string;
38
- }
39
- declare function apitallyPlugin(config: ApitallyConfig): (app: Elysia) => Elysia<"", {
40
- decorator: {
41
- apitally: ApitallyContext;
42
- };
43
- store: {};
44
- derive: {};
45
- resolve: {};
46
- }, {
47
- typebox: {};
48
- error: {};
49
- }, {
50
- schema: {};
51
- standaloneSchema: {};
52
- macro: {};
53
- macroFn: {};
54
- parser: {};
55
- response: {};
56
- }, {}, {
57
- derive: {};
58
- resolve: {};
59
- schema: {};
60
- standaloneSchema: {};
61
- response: {};
62
- }, {
63
- derive: {};
64
- resolve: {};
65
- schema: {};
66
- standaloneSchema: {};
67
- response: {};
68
- }>;
69
-
70
- export { apitallyPlugin as default };
@@ -1,218 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { StatusMap, ValidationError } from "elysia";
4
- import { AsyncLocalStorage } from "node:async_hooks";
5
- import { performance } from "node:perf_hooks";
6
- import { ApitallyClient } from "../common/client.js";
7
- import { consumerFromStringOrObject } from "../common/consumerRegistry.js";
8
- import { parseContentLength } from "../common/headers.js";
9
- import { convertHeaders } from "../common/requestLogger.js";
10
- import { captureResponse } from "../common/response.js";
11
- import { patchConsole, patchWinston } from "../loggers/index.js";
12
- import { getAppInfo } from "./utils.js";
13
- const START_TIME_SYMBOL = /* @__PURE__ */ Symbol("apitally.startTime");
14
- const REQUEST_BODY_SYMBOL = /* @__PURE__ */ Symbol("apitally.requestBody");
15
- const RESPONSE_SYMBOL = /* @__PURE__ */ Symbol("apitally.response");
16
- const RESPONSE_PROMISE_SYMBOL = /* @__PURE__ */ Symbol("apitally.responsePromise");
17
- const ERROR_SYMBOL = /* @__PURE__ */ Symbol("apitally.error");
18
- const CLIENT_SYMBOL = /* @__PURE__ */ Symbol("apitally.client");
19
- const REQUEST_SYMBOL = /* @__PURE__ */ Symbol("apitally.request");
20
- const SPAN_HANDLE_SYMBOL = /* @__PURE__ */ Symbol("apitally.spanHandle");
21
- function apitallyPlugin(config) {
22
- const client = new ApitallyClient(config);
23
- const logsContext = new AsyncLocalStorage();
24
- if (client.requestLogger.enabled && client.requestLogger.config.captureLogs) {
25
- patchConsole(logsContext);
26
- patchWinston(logsContext);
27
- }
28
- return (app) => {
29
- const handler = app["~adapter"].handler;
30
- if (!handler.mapResponse.name.startsWith("wrapped")) {
31
- const originalMapResponse = handler.mapResponse;
32
- const originalMapCompactResponse = handler.mapCompactResponse;
33
- const originalMapEarlyResponse = handler.mapEarlyResponse;
34
- const captureMappedResponse = /* @__PURE__ */ __name((originalResponse, mappedResponse, set) => {
35
- const request = set == null ? void 0 : set[REQUEST_SYMBOL];
36
- if (request instanceof Request && mappedResponse instanceof Response && !(RESPONSE_SYMBOL in request) && CLIENT_SYMBOL in request) {
37
- if (typeof originalResponse === "string") {
38
- const responseBody = Buffer.from(originalResponse);
39
- request[RESPONSE_SYMBOL] = mappedResponse;
40
- request[RESPONSE_PROMISE_SYMBOL] = Promise.resolve({
41
- body: responseBody,
42
- size: responseBody.length,
43
- completed: true
44
- });
45
- } else {
46
- const client2 = request[CLIENT_SYMBOL];
47
- const [newResponse, responsePromise] = captureResponse(mappedResponse, {
48
- captureBody: client2.requestLogger.enabled && client2.requestLogger.config.logResponseBody,
49
- maxBodySize: client2.requestLogger.maxBodySize
50
- });
51
- request[RESPONSE_SYMBOL] = newResponse;
52
- request[RESPONSE_PROMISE_SYMBOL] = responsePromise;
53
- return newResponse;
54
- }
55
- }
56
- return mappedResponse;
57
- }, "captureMappedResponse");
58
- handler.mapResponse = /* @__PURE__ */ __name(function wrappedMapResponse(response, set) {
59
- const mappedResponse = originalMapResponse(response, set);
60
- const newResponse = captureMappedResponse(response, mappedResponse, set);
61
- return newResponse;
62
- }, "wrappedMapResponse");
63
- handler.mapCompactResponse = /* @__PURE__ */ __name(function wrappedMapCompactResponse(response) {
64
- const mappedResponse = originalMapCompactResponse(response);
65
- const newResponse = captureMappedResponse(response, mappedResponse, void 0);
66
- return newResponse;
67
- }, "wrappedMapCompactResponse");
68
- handler.mapEarlyResponse = /* @__PURE__ */ __name(function wrappedMapEarlyResponse(response, set) {
69
- const mappedResponse = originalMapEarlyResponse(response, set);
70
- const newResponse = captureMappedResponse(response, mappedResponse, set);
71
- return newResponse;
72
- }, "wrappedMapEarlyResponse");
73
- }
74
- return app.decorate("apitally", {}).onStart(() => {
75
- const appInfo = getAppInfo(app, config.appVersion);
76
- client.setStartupData(appInfo);
77
- client.startSync();
78
- }).onStop(async () => {
79
- await client.handleShutdown();
80
- }).onRequest(async ({ request, set }) => {
81
- if (!client.isEnabled() || request.method.toUpperCase() === "OPTIONS") {
82
- return;
83
- }
84
- request[CLIENT_SYMBOL] = client;
85
- request[START_TIME_SYMBOL] = performance.now();
86
- set[REQUEST_SYMBOL] = request;
87
- logsContext.enterWith([]);
88
- const spanHandle = client.spanCollector.startSpan();
89
- request[SPAN_HANDLE_SYMBOL] = spanHandle;
90
- spanHandle.enterContext();
91
- if (client.requestLogger.enabled && client.requestLogger.config.logRequestBody) {
92
- const contentType = request.headers.get("content-type");
93
- const requestSize = parseContentLength(request.headers.get("content-length")) ?? 0;
94
- if (client.requestLogger.isSupportedContentType(contentType) && requestSize <= client.requestLogger.maxBodySize) {
95
- try {
96
- request[REQUEST_BODY_SYMBOL] = Buffer.from(await request.clone().arrayBuffer());
97
- } catch (error) {
98
- }
99
- }
100
- }
101
- }).onAfterResponse(async ({ request, set, route, apitally }) => {
102
- if (!client.isEnabled() || request.method.toUpperCase() === "OPTIONS") {
103
- return;
104
- }
105
- const startTime = request[START_TIME_SYMBOL];
106
- const responseTime = startTime ? performance.now() - startTime : 0;
107
- const spanHandle = request[SPAN_HANDLE_SYMBOL];
108
- spanHandle == null ? void 0 : spanHandle.setName(`${request.method} ${route}`);
109
- const spans = spanHandle == null ? void 0 : spanHandle.end();
110
- const traceId = spanHandle == null ? void 0 : spanHandle.traceId;
111
- const requestBody = request[REQUEST_BODY_SYMBOL];
112
- const requestSize = parseContentLength(request.headers.get("content-length")) ?? (requestBody == null ? void 0 : requestBody.length);
113
- let responsePromise = request[RESPONSE_PROMISE_SYMBOL];
114
- let response = request[RESPONSE_SYMBOL];
115
- const error = request[ERROR_SYMBOL];
116
- if (!response && error && "toResponse" in error && typeof error.toResponse === "function") {
117
- try {
118
- response = error.toResponse();
119
- const errorResponseBody = Buffer.from(await response.arrayBuffer());
120
- responsePromise = Promise.resolve({
121
- body: errorResponseBody,
122
- size: errorResponseBody.length,
123
- completed: true
124
- });
125
- } catch (error2) {
126
- }
127
- }
128
- const statusCode = (response == null ? void 0 : response.status) ?? getStatusCode(set) ?? 200;
129
- if (!response) {
130
- response = new Response(null, {
131
- status: statusCode,
132
- statusText: "",
133
- headers: new Headers()
134
- });
135
- responsePromise = Promise.resolve({
136
- body: void 0,
137
- size: 0,
138
- completed: true
139
- });
140
- }
141
- const consumer = apitally.consumer ? consumerFromStringOrObject(apitally.consumer) : null;
142
- client.consumerRegistry.addOrUpdateConsumer(consumer);
143
- responsePromise == null ? void 0 : responsePromise.then(async (capturedResponse) => {
144
- const responseHeaders = (response == null ? void 0 : response.headers) ?? set.headers;
145
- const responseSize = capturedResponse.completed ? capturedResponse.size : void 0;
146
- client.requestCounter.addRequest({
147
- consumer: consumer == null ? void 0 : consumer.identifier,
148
- method: request.method,
149
- path: route,
150
- statusCode,
151
- responseTime,
152
- requestSize,
153
- responseSize
154
- });
155
- if (client.requestLogger.enabled) {
156
- const logs = logsContext.getStore();
157
- client.requestLogger.logRequest({
158
- timestamp: (Date.now() - responseTime) / 1e3,
159
- method: request.method,
160
- path: route,
161
- url: request.url,
162
- headers: convertHeaders(Object.fromEntries(request.headers.entries())),
163
- size: requestSize,
164
- consumer: consumer == null ? void 0 : consumer.identifier,
165
- body: requestBody
166
- }, {
167
- statusCode,
168
- responseTime: responseTime / 1e3,
169
- headers: convertHeaders(responseHeaders),
170
- size: responseSize,
171
- body: capturedResponse.body
172
- }, error, logs, spans, traceId);
173
- }
174
- });
175
- if ((statusCode === 400 || statusCode === 422) && error instanceof ValidationError) {
176
- try {
177
- const parsedMessage = JSON.parse(error.message);
178
- client.validationErrorCounter.addValidationError({
179
- consumer: consumer == null ? void 0 : consumer.identifier,
180
- method: request.method,
181
- path: route,
182
- loc: (parsedMessage.on ?? "") + "." + (parsedMessage.property ?? ""),
183
- msg: parsedMessage.message,
184
- type: ""
185
- });
186
- } catch (error2) {
187
- }
188
- }
189
- if (statusCode === 500 && error) {
190
- client.serverErrorCounter.addServerError({
191
- consumer: consumer == null ? void 0 : consumer.identifier,
192
- method: request.method,
193
- path: route,
194
- type: error.name,
195
- msg: error.message,
196
- traceback: error.stack || ""
197
- });
198
- }
199
- }).onError(({ request, error }) => {
200
- if (client.isEnabled() && error instanceof Error) {
201
- request[ERROR_SYMBOL] = error;
202
- }
203
- });
204
- };
205
- }
206
- __name(apitallyPlugin, "apitallyPlugin");
207
- function getStatusCode(set) {
208
- if (typeof set.status === "number") {
209
- return set.status;
210
- } else if (typeof set.status === "string") {
211
- return StatusMap[set.status];
212
- }
213
- }
214
- __name(getStatusCode, "getStatusCode");
215
- export {
216
- apitallyPlugin as default
217
- };
218
- //# sourceMappingURL=plugin.js.map