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,116 +1,49 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { performance } from "node:perf_hooks";
4
- import { consumerFromStringOrObject } from "../common/consumerRegistry.js";
5
- import { parseContentLength } from "../common/headers.js";
6
- import { convertHeaders } from "../common/requestLogger.js";
7
- const _ApitallyMiddleware = class _ApitallyMiddleware {
1
+ import { context } from "@opentelemetry/api";
2
+ import { isActivated } from "../activation.js";
3
+ import { getConfig } from "../config.js";
4
+ import { logWarning } from "../logger.js";
5
+ import { finalizeRequestObservation } from "../requestObservation.js";
6
+ import { captureNodeResponse, startNodeRequestObservation } from "../requestObservationNode.js";
7
+ const TRACER_NAME = "apitally.adonisjs";
8
+ class ApitallyMiddleware {
8
9
  async handle(ctx, next) {
9
- const client = await ctx.containerResolver.make("apitallyClient");
10
- const logsContext = await ctx.containerResolver.make("apitallyLogsContext");
11
- if (!client.isEnabled() || ctx.request.method().toUpperCase() === "OPTIONS") {
12
- await next();
13
- return;
10
+ if (!isActivated()) {
11
+ return next();
14
12
  }
15
- return logsContext.run([], async () => {
16
- var _a, _b;
17
- const path = (_a = ctx.route) == null ? void 0 : _a.pattern;
18
- const timestamp = Date.now() / 1e3;
19
- const startTime = performance.now();
20
- const spanHandle = client.spanCollector.startSpan();
21
- await spanHandle.runInContext(next);
22
- const responseTime = performance.now() - startTime;
23
- spanHandle.setName(`${ctx.request.method()} ${path}`);
24
- const spans = spanHandle.end();
25
- const traceId = spanHandle.traceId;
26
- const requestSize = parseContentLength(ctx.request.header("content-length"));
27
- const requestContentType = (_b = ctx.request.header("content-type")) == null ? void 0 : _b.toString();
28
- let responseStatus = ctx.response.getStatus();
29
- let responseHeaders = ctx.response.getHeaders();
30
- let responseSize;
31
- let responseContentType;
32
- const consumer = ctx.apitallyConsumer ? consumerFromStringOrObject(ctx.apitallyConsumer) : null;
33
- client.consumerRegistry.addOrUpdateConsumer(consumer);
34
- const onWriteHead = /* @__PURE__ */ __name((statusCode, headers) => {
35
- var _a2;
36
- responseStatus = statusCode;
37
- responseHeaders = headers;
38
- responseSize = parseContentLength(headers["content-length"]);
39
- responseContentType = (_a2 = headers["content-type"]) == null ? void 0 : _a2.toString();
40
- if (path) {
41
- client.requestCounter.addRequest({
42
- consumer: consumer == null ? void 0 : consumer.identifier,
43
- method: ctx.request.method(),
44
- path,
45
- statusCode: responseStatus,
46
- responseTime,
47
- requestSize,
48
- responseSize
49
- });
50
- if (responseStatus === 422 && ctx.apitallyError && "code" in ctx.apitallyError && "messages" in ctx.apitallyError && ctx.apitallyError.code === "E_VALIDATION_ERROR" && Array.isArray(ctx.apitallyError.messages)) {
51
- ctx.apitallyError.messages.forEach((message) => {
52
- client.validationErrorCounter.addValidationError({
53
- consumer: consumer == null ? void 0 : consumer.identifier,
54
- method: ctx.request.method(),
55
- path,
56
- loc: message.field,
57
- msg: message.message,
58
- type: message.rule
59
- });
60
- });
61
- }
62
- if (responseStatus === 500 && ctx.apitallyError) {
63
- client.serverErrorCounter.addServerError({
64
- consumer: consumer == null ? void 0 : consumer.identifier,
65
- method: ctx.request.method(),
66
- path,
67
- type: ctx.apitallyError.name,
68
- msg: ctx.apitallyError.message,
69
- traceback: ctx.apitallyError.stack || ""
70
- });
71
- }
72
- }
73
- }, "onWriteHead");
74
- const originalWriteHead = ctx.response.response.writeHead;
75
- ctx.response.response.writeHead = (...args) => {
76
- originalWriteHead.apply(ctx.response.response, args);
77
- onWriteHead(args[0], typeof args[1] === "string" ? args[2] : args[1]);
78
- return ctx.response.response;
79
- };
80
- if (client.requestLogger.enabled) {
81
- const logs = logsContext.getStore();
82
- const onEnd = /* @__PURE__ */ __name((chunk) => {
83
- const requestBody = client.requestLogger.config.logRequestBody && client.requestLogger.isSupportedContentType(requestContentType) ? ctx.request.raw() : void 0;
84
- const responseBody = client.requestLogger.config.logResponseBody && client.requestLogger.isSupportedContentType(responseContentType) ? chunk : void 0;
85
- client.requestLogger.logRequest({
86
- timestamp,
87
- method: ctx.request.method(),
88
- path,
89
- url: ctx.request.completeUrl(true),
90
- headers: convertHeaders(ctx.request.headers()),
91
- size: requestSize,
92
- consumer: consumer == null ? void 0 : consumer.identifier,
93
- body: requestBody ? Buffer.from(requestBody) : void 0
94
- }, {
95
- statusCode: responseStatus,
96
- responseTime: responseTime / 1e3,
97
- headers: convertHeaders(responseHeaders),
98
- size: responseSize,
99
- body: responseBody ? Buffer.from(responseBody) : void 0
100
- }, ctx.apitallyError, logs, spans, traceId);
101
- }, "onEnd");
102
- const originalEnd = ctx.response.response.end;
103
- ctx.response.response.end = (...args) => {
104
- originalEnd.apply(ctx.response.response, args);
105
- onEnd(typeof args[0] !== "function" ? args[0] : void 0);
106
- return ctx.response.response;
107
- };
108
- }
109
- });
13
+ let requestContext;
14
+ try {
15
+ const request = ctx.request.request;
16
+ const response = ctx.response.response;
17
+ const started = startNodeRequestObservation({ request, tracerName: TRACER_NAME });
18
+ requestContext = started.requestContext;
19
+ context.bind(requestContext, request);
20
+ context.bind(requestContext, response);
21
+ captureNodeResponse(
22
+ response,
23
+ getConfig().captureResponseBody && started.observation.requestRecord.dropReason === void 0,
24
+ started.observation.requestBodyCapture,
25
+ (name) => ctx.response.getHeader(name)
26
+ ).then((completion) => {
27
+ finalizeRequestObservation({
28
+ observation: started.observation,
29
+ completedAtMillis: completion.completedAtMillis,
30
+ statusCode: response.statusCode,
31
+ route: ctx.route?.pattern,
32
+ clientAddress: ctx.request.ip(),
33
+ requestHeaders: request.headers,
34
+ responseHeaders: ctx.response.getHeaders(),
35
+ capturedRequestBody: completion.requestBody,
36
+ capturedResponseBody: completion
37
+ });
38
+ }).catch((error) => {
39
+ logWarning(`Error in the Apitally middleware: ${String(error)}`);
40
+ });
41
+ } catch (error) {
42
+ logWarning(`Error in the Apitally middleware: ${String(error)}`);
43
+ }
44
+ return requestContext ? context.with(requestContext, next) : next();
110
45
  }
111
- };
112
- __name(_ApitallyMiddleware, "ApitallyMiddleware");
113
- let ApitallyMiddleware = _ApitallyMiddleware;
46
+ }
114
47
  export {
115
48
  ApitallyMiddleware as default
116
49
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/middleware.ts"],"sourcesContent":["import { HttpContext } from \"@adonisjs/core/http\";\nimport { NextFn } from \"@adonisjs/core/types/http\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { OutgoingHttpHeaders } from \"node:http\";\nimport { performance } from \"node:perf_hooks\";\n\nimport type { 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 type { ApitallyConsumer } from \"../common/types.js\";\n\ndeclare module \"@adonisjs/core/http\" {\n interface HttpContext {\n apitallyConsumer?: ApitallyConsumer | string;\n apitallyError?: Error;\n }\n}\n\nexport default class ApitallyMiddleware {\n async handle(ctx: HttpContext, next: NextFn) {\n const client: ApitallyClient =\n await ctx.containerResolver.make(\"apitallyClient\");\n const logsContext: AsyncLocalStorage<LogRecord[]> =\n await ctx.containerResolver.make(\"apitallyLogsContext\");\n\n if (\n !client.isEnabled() ||\n ctx.request.method().toUpperCase() === \"OPTIONS\"\n ) {\n await next();\n return;\n }\n\n return logsContext.run([], async () => {\n const path = ctx.route?.pattern;\n const timestamp = Date.now() / 1000;\n const startTime = performance.now();\n\n const spanHandle = client.spanCollector.startSpan();\n await spanHandle.runInContext(next);\n\n const responseTime = performance.now() - startTime;\n spanHandle.setName(`${ctx.request.method()} ${path}`);\n const spans = spanHandle.end();\n const traceId = spanHandle.traceId;\n\n const requestSize = parseContentLength(\n ctx.request.header(\"content-length\"),\n );\n const requestContentType = ctx.request.header(\"content-type\")?.toString();\n let responseStatus = ctx.response.getStatus();\n let responseHeaders = ctx.response.getHeaders();\n let responseSize: number | undefined;\n let responseContentType: string | undefined;\n\n const consumer = ctx.apitallyConsumer\n ? consumerFromStringOrObject(ctx.apitallyConsumer)\n : null;\n client.consumerRegistry.addOrUpdateConsumer(consumer);\n\n const onWriteHead = (\n statusCode: number,\n headers: OutgoingHttpHeaders,\n ) => {\n responseStatus = statusCode;\n responseHeaders = headers;\n responseSize = parseContentLength(headers[\"content-length\"]);\n responseContentType = headers[\"content-type\"]?.toString();\n\n if (path) {\n client.requestCounter.addRequest({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n statusCode: responseStatus,\n responseTime,\n requestSize,\n responseSize,\n });\n\n if (\n responseStatus === 422 &&\n ctx.apitallyError &&\n \"code\" in ctx.apitallyError &&\n \"messages\" in ctx.apitallyError &&\n ctx.apitallyError.code === \"E_VALIDATION_ERROR\" &&\n Array.isArray(ctx.apitallyError.messages)\n ) {\n ctx.apitallyError.messages.forEach((message) => {\n client.validationErrorCounter.addValidationError({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n loc: message.field,\n msg: message.message,\n type: message.rule,\n });\n });\n }\n\n if (responseStatus === 500 && ctx.apitallyError) {\n client.serverErrorCounter.addServerError({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n type: ctx.apitallyError.name,\n msg: ctx.apitallyError.message,\n traceback: ctx.apitallyError.stack || \"\",\n });\n }\n }\n };\n\n // Capture the final status code and response headers just before they are sent\n const originalWriteHead = ctx.response.response.writeHead;\n ctx.response.response.writeHead = (...args: any) => {\n originalWriteHead.apply(ctx.response.response, args);\n onWriteHead(args[0], typeof args[1] === \"string\" ? args[2] : args[1]);\n return ctx.response.response;\n };\n\n if (client.requestLogger.enabled) {\n const logs = logsContext.getStore();\n\n const onEnd = (chunk: any) => {\n const requestBody =\n client.requestLogger.config.logRequestBody &&\n client.requestLogger.isSupportedContentType(requestContentType)\n ? ctx.request.raw()\n : undefined;\n const responseBody =\n client.requestLogger.config.logResponseBody &&\n client.requestLogger.isSupportedContentType(responseContentType)\n ? chunk\n : undefined;\n\n client.requestLogger.logRequest(\n {\n timestamp,\n method: ctx.request.method(),\n path,\n url: ctx.request.completeUrl(true),\n headers: convertHeaders(ctx.request.headers()),\n size: requestSize,\n consumer: consumer?.identifier,\n body: requestBody ? Buffer.from(requestBody) : undefined,\n },\n {\n statusCode: responseStatus,\n responseTime: responseTime / 1000,\n headers: convertHeaders(responseHeaders),\n size: responseSize,\n body: responseBody ? Buffer.from(responseBody) : undefined,\n },\n ctx.apitallyError,\n logs,\n spans,\n traceId,\n );\n };\n\n // Capture the final response body just before it is sent\n const originalEnd = ctx.response.response.end;\n ctx.response.response.end = (...args: any) => {\n originalEnd.apply(ctx.response.response, args);\n onEnd(typeof args[0] !== \"function\" ? args[0] : undefined);\n return ctx.response.response;\n };\n }\n });\n }\n}\n"],"mappings":"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","names":["performance","consumerFromStringOrObject","parseContentLength","convertHeaders","ApitallyMiddleware","handle","ctx","next","client","containerResolver","make","logsContext","isEnabled","request","method","toUpperCase","run","path","route","pattern","timestamp","Date","now","startTime","spanHandle","spanCollector","startSpan","runInContext","responseTime","setName","spans","end","traceId","requestSize","header","requestContentType","toString","responseStatus","response","getStatus","responseHeaders","getHeaders","responseSize","responseContentType","consumer","apitallyConsumer","consumerRegistry","addOrUpdateConsumer","onWriteHead","statusCode","headers","_a","requestCounter","addRequest","identifier","apitallyError","code","Array","isArray","messages","forEach","message","validationErrorCounter","addValidationError","loc","field","msg","type","rule","serverErrorCounter","addServerError","name","traceback","stack","originalWriteHead","writeHead","args","apply","requestLogger","enabled","logs","getStore","onEnd","chunk","requestBody","config","logRequestBody","isSupportedContentType","raw","undefined","responseBody","logResponseBody","logRequest","url","completeUrl","size","body","Buffer","from","originalEnd"]}
1
+ {"version":3,"sources":["../../src/adonisjs/middleware.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\nimport type { NextFn } from \"@adonisjs/core/types/http\";\nimport { type Context, context } from \"@opentelemetry/api\";\n\nimport { isActivated } from \"../activation.js\";\nimport { getConfig } from \"../config.js\";\nimport { logWarning } from \"../logger.js\";\nimport { finalizeRequestObservation } from \"../requestObservation.js\";\nimport { captureNodeResponse, startNodeRequestObservation } from \"../requestObservationNode.js\";\n\nconst TRACER_NAME = \"apitally.adonisjs\";\n\nexport default class ApitallyMiddleware {\n async handle(ctx: HttpContext, next: NextFn): Promise<unknown> {\n if (!isActivated()) {\n return next();\n }\n\n let requestContext: Context | undefined;\n try {\n const request = ctx.request.request;\n const response = ctx.response.response;\n const started = startNodeRequestObservation({ request, tracerName: TRACER_NAME });\n requestContext = started.requestContext;\n context.bind(requestContext, request);\n context.bind(requestContext, response);\n captureNodeResponse(\n response,\n getConfig().captureResponseBody &&\n started.observation.requestRecord.dropReason === undefined,\n started.observation.requestBodyCapture,\n (name) => ctx.response.getHeader(name),\n )\n .then((completion) => {\n finalizeRequestObservation({\n observation: started.observation,\n completedAtMillis: completion.completedAtMillis,\n statusCode: response.statusCode,\n route: ctx.route?.pattern,\n clientAddress: ctx.request.ip(),\n requestHeaders: request.headers,\n responseHeaders: ctx.response.getHeaders(),\n capturedRequestBody: completion.requestBody,\n capturedResponseBody: completion,\n });\n })\n .catch((error: unknown) => {\n logWarning(`Error in the Apitally middleware: ${String(error)}`);\n });\n } catch (error) {\n logWarning(`Error in the Apitally middleware: ${String(error)}`);\n }\n\n return requestContext ? context.with(requestContext, next) : next();\n }\n}\n"],"mappings":"AAEA,SAAuB,eAAe;AAEtC,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,kCAAkC;AAC3C,SAAS,qBAAqB,mCAAmC;AAEjE,MAAM,cAAc;AAEpB,MAAO,mBAAiC;AAAA,EACtC,MAAM,OAAO,KAAkB,MAAgC;AAC7D,QAAI,CAAC,YAAY,GAAG;AAClB,aAAO,KAAK;AAAA,IACd;AAEA,QAAI;AACJ,QAAI;AACF,YAAM,UAAU,IAAI,QAAQ;AAC5B,YAAM,WAAW,IAAI,SAAS;AAC9B,YAAM,UAAU,4BAA4B,EAAE,SAAS,YAAY,YAAY,CAAC;AAChF,uBAAiB,QAAQ;AACzB,cAAQ,KAAK,gBAAgB,OAAO;AACpC,cAAQ,KAAK,gBAAgB,QAAQ;AACrC;AAAA,QACE;AAAA,QACA,UAAU,EAAE,uBACV,QAAQ,YAAY,cAAc,eAAe;AAAA,QACnD,QAAQ,YAAY;AAAA,QACpB,CAAC,SAAS,IAAI,SAAS,UAAU,IAAI;AAAA,MACvC,EACG,KAAK,CAAC,eAAe;AACpB,mCAA2B;AAAA,UACzB,aAAa,QAAQ;AAAA,UACrB,mBAAmB,WAAW;AAAA,UAC9B,YAAY,SAAS;AAAA,UACrB,OAAO,IAAI,OAAO;AAAA,UAClB,eAAe,IAAI,QAAQ,GAAG;AAAA,UAC9B,gBAAgB,QAAQ;AAAA,UACxB,iBAAiB,IAAI,SAAS,WAAW;AAAA,UACzC,qBAAqB,WAAW;AAAA,UAChC,sBAAsB;AAAA,QACxB,CAAC;AAAA,MACH,CAAC,EACA,MAAM,CAAC,UAAmB;AACzB,mBAAW,qCAAqC,OAAO,KAAK,CAAC,EAAE;AAAA,MACjE,CAAC;AAAA,IACL,SAAS,OAAO;AACd,iBAAW,qCAAqC,OAAO,KAAK,CAAC,EAAE;AAAA,IACjE;AAEA,WAAO,iBAAiB,QAAQ,KAAK,gBAAgB,IAAI,IAAI,KAAK;AAAA,EACpE;AACF;","names":[]}
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -22,102 +21,35 @@ __export(provider_exports, {
22
21
  default: () => ApitallyProvider
23
22
  });
24
23
  module.exports = __toCommonJS(provider_exports);
25
- var import_node_async_hooks = require("node:async_hooks");
26
- var import_client = require('../common/client.cjs');
27
- var import_packageVersions = require('../common/packageVersions.cjs');
28
- var import_loggers = require('../loggers/index.cjs');
29
- const _ApitallyProvider = class _ApitallyProvider {
30
- app;
24
+ var import_activation = require('../activation.cjs');
25
+ var import_packageVersion = require('../packageVersion.cjs');
26
+ class ApitallyProvider {
31
27
  constructor(app) {
32
28
  this.app = app;
33
29
  }
30
+ app;
34
31
  register() {
35
- this.app.container.singleton("apitallyClient", () => {
36
- const config = this.app.config.get("apitally");
37
- return new import_client.ApitallyClient(config);
38
- });
39
- this.app.container.singleton("apitallyLogsContext", () => {
40
- return new import_node_async_hooks.AsyncLocalStorage();
41
- });
42
- }
43
- async start() {
44
- const client = await this.app.container.make("apitallyClient");
45
- if (client.requestLogger.config.captureLogs) {
46
- const logsContext = await this.app.container.make("apitallyLogsContext");
47
- const logger = await this.app.container.make("logger");
48
- (0, import_loggers.patchPinoLogger)(logger.pino, logsContext);
49
- (0, import_loggers.patchConsole)(logsContext);
50
- }
32
+ (0, import_activation.configure)(this.app.config.get("apitally"));
51
33
  }
52
34
  async ready() {
53
- const client = await this.app.container.make("apitallyClient");
35
+ if (this.app.getEnvironment() !== "web") {
36
+ return;
37
+ }
54
38
  const router = await this.app.container.make("router");
55
- const paths = listRoutes(router);
56
- const versions = getVersions(this.app.config.get("apitally.appVersion"));
57
- const startupData = {
58
- paths,
59
- versions,
60
- client: "js:adonisjs"
61
- };
62
- client.setStartupData(startupData);
63
- client.startSync();
39
+ (0, import_activation.registerStartupEventInfo)({
40
+ framework: "adonisjs",
41
+ frameworkVersion: (0, import_packageVersion.resolvePackageVersion)("@adonisjs/core"),
42
+ resolvePaths: () => resolvePaths(router)
43
+ });
44
+ (0, import_activation.activate)();
64
45
  }
65
46
  async shutdown() {
66
- const client = await this.app.container.make("apitallyClient");
67
- await client.handleShutdown();
68
- }
69
- };
70
- __name(_ApitallyProvider, "ApitallyProvider");
71
- let ApitallyProvider = _ApitallyProvider;
72
- function listRoutes(router) {
73
- const routes = router.toJSON();
74
- const paths = [];
75
- for (const domain in routes) {
76
- for (const route of routes[domain]) {
77
- for (const method of route.methods) {
78
- if (![
79
- "HEAD",
80
- "OPTIONS"
81
- ].includes(method.toUpperCase())) {
82
- paths.push({
83
- method: method.toUpperCase(),
84
- path: route.pattern
85
- });
86
- }
87
- }
88
- }
47
+ await (0, import_activation.shutdown)();
89
48
  }
90
- return paths;
91
49
  }
92
- __name(listRoutes, "listRoutes");
93
- function getVersions(appVersion) {
94
- const versions = [
95
- [
96
- "nodejs",
97
- process.version.replace(/^v/, "")
98
- ]
99
- ];
100
- const adonisJsVersion = (0, import_packageVersions.getPackageVersion)("@adonisjs/core");
101
- const apitallyVersion = (0, import_packageVersions.getPackageVersion)("../..");
102
- if (adonisJsVersion) {
103
- versions.push([
104
- "adonisjs",
105
- adonisJsVersion
106
- ]);
107
- }
108
- if (apitallyVersion) {
109
- versions.push([
110
- "apitally",
111
- apitallyVersion
112
- ]);
113
- }
114
- if (appVersion) {
115
- versions.push([
116
- "app",
117
- appVersion
118
- ]);
119
- }
120
- return Object.fromEntries(versions);
50
+ function resolvePaths(router) {
51
+ return Object.values(router.toJSON()).flatMap(
52
+ (routes) => routes.flatMap((route) => route.methods.map((method) => ({ method, path: route.pattern })))
53
+ );
121
54
  }
122
- __name(getVersions, "getVersions");
123
55
  //# sourceMappingURL=provider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/provider.ts"],"sourcesContent":["import type { Router } from \"@adonisjs/core/http\";\nimport type { ApplicationService } from \"@adonisjs/core/types\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport { ApitallyClient } from \"../common/client.js\";\nimport { getPackageVersion } from \"../common/packageVersions.js\";\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport type { ApitallyConfig, PathInfo, StartupData } from \"../common/types.js\";\nimport { patchConsole, patchPinoLogger } from \"../loggers/index.js\";\n\ndeclare module \"@adonisjs/core/types\" {\n interface ContainerBindings {\n apitallyClient: ApitallyClient;\n apitallyLogsContext: AsyncLocalStorage<LogRecord[]>;\n }\n}\n\nexport default class ApitallyProvider {\n constructor(protected app: ApplicationService) {}\n\n register() {\n this.app.container.singleton(\"apitallyClient\", () => {\n const config: ApitallyConfig = this.app.config.get(\"apitally\");\n return new ApitallyClient(config);\n });\n this.app.container.singleton(\"apitallyLogsContext\", () => {\n return new AsyncLocalStorage<LogRecord[]>();\n });\n }\n\n async start() {\n const client = await this.app.container.make(\"apitallyClient\");\n if (client.requestLogger.config.captureLogs) {\n const logsContext = await this.app.container.make(\"apitallyLogsContext\");\n const logger = await this.app.container.make(\"logger\");\n\n patchPinoLogger(logger.pino, logsContext);\n patchConsole(logsContext);\n }\n }\n\n async ready() {\n const client = await this.app.container.make(\"apitallyClient\");\n const router = await this.app.container.make(\"router\");\n\n const paths = listRoutes(router);\n const versions = getVersions(this.app.config.get(\"apitally.appVersion\"));\n const startupData: StartupData = {\n paths,\n versions,\n client: \"js:adonisjs\",\n };\n client.setStartupData(startupData);\n client.startSync();\n }\n\n async shutdown() {\n const client = await this.app.container.make(\"apitallyClient\");\n await client.handleShutdown();\n }\n}\n\nfunction listRoutes(router: Router) {\n const routes = router.toJSON();\n const paths: Array<PathInfo> = [];\n for (const domain in routes) {\n for (const route of routes[domain]) {\n for (const method of route.methods) {\n if (![\"HEAD\", \"OPTIONS\"].includes(method.toUpperCase())) {\n paths.push({\n method: method.toUpperCase(),\n path: route.pattern,\n });\n }\n }\n }\n }\n return paths;\n}\n\nfunction getVersions(appVersion?: string) {\n const versions = [[\"nodejs\", process.version.replace(/^v/, \"\")]];\n const adonisJsVersion = getPackageVersion(\"@adonisjs/core\");\n const apitallyVersion = getPackageVersion(\"../..\");\n if (adonisJsVersion) {\n versions.push([\"adonisjs\", adonisJsVersion]);\n }\n if (apitallyVersion) {\n versions.push([\"apitally\", apitallyVersion]);\n }\n if (appVersion) {\n versions.push([\"app\", appVersion]);\n }\n return Object.fromEntries(versions);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA;;;;;AAAA,8BAAkC;AAElC,oBAA+B;AAC/B,6BAAkC;AAGlC,qBAA8C;AAS9C,MAAqBA,oBAArB,MAAqBA,kBAAAA;;EACnB,YAAsBC,KAAyB;SAAzBA,MAAAA;EAA0B;EAEhDC,WAAW;AACT,SAAKD,IAAIE,UAAUC,UAAU,kBAAkB,MAAA;AAC7C,YAAMC,SAAyB,KAAKJ,IAAII,OAAOC,IAAI,UAAA;AACnD,aAAO,IAAIC,6BAAeF,MAAAA;IAC5B,CAAA;AACA,SAAKJ,IAAIE,UAAUC,UAAU,uBAAuB,MAAA;AAClD,aAAO,IAAII,0CAAAA;IACb,CAAA;EACF;EAEA,MAAMC,QAAQ;AACZ,UAAMC,SAAS,MAAM,KAAKT,IAAIE,UAAUQ,KAAK,gBAAA;AAC7C,QAAID,OAAOE,cAAcP,OAAOQ,aAAa;AAC3C,YAAMC,cAAc,MAAM,KAAKb,IAAIE,UAAUQ,KAAK,qBAAA;AAClD,YAAMI,SAAS,MAAM,KAAKd,IAAIE,UAAUQ,KAAK,QAAA;AAE7CK,0CAAgBD,OAAOE,MAAMH,WAAAA;AAC7BI,uCAAaJ,WAAAA;IACf;EACF;EAEA,MAAMK,QAAQ;AACZ,UAAMT,SAAS,MAAM,KAAKT,IAAIE,UAAUQ,KAAK,gBAAA;AAC7C,UAAMS,SAAS,MAAM,KAAKnB,IAAIE,UAAUQ,KAAK,QAAA;AAE7C,UAAMU,QAAQC,WAAWF,MAAAA;AACzB,UAAMG,WAAWC,YAAY,KAAKvB,IAAII,OAAOC,IAAI,qBAAA,CAAA;AACjD,UAAMmB,cAA2B;MAC/BJ;MACAE;MACAb,QAAQ;IACV;AACAA,WAAOgB,eAAeD,WAAAA;AACtBf,WAAOiB,UAAS;EAClB;EAEA,MAAMC,WAAW;AACf,UAAMlB,SAAS,MAAM,KAAKT,IAAIE,UAAUQ,KAAK,gBAAA;AAC7C,UAAMD,OAAOmB,eAAc;EAC7B;AACF;AA3CqB7B;AAArB,IAAqBA,mBAArB;AA6CA,SAASsB,WAAWF,QAAc;AAChC,QAAMU,SAASV,OAAOW,OAAM;AAC5B,QAAMV,QAAyB,CAAA;AAC/B,aAAWW,UAAUF,QAAQ;AAC3B,eAAWG,SAASH,OAAOE,MAAAA,GAAS;AAClC,iBAAWE,UAAUD,MAAME,SAAS;AAClC,YAAI,CAAC;UAAC;UAAQ;UAAWC,SAASF,OAAOG,YAAW,CAAA,GAAK;AACvDhB,gBAAMiB,KAAK;YACTJ,QAAQA,OAAOG,YAAW;YAC1BE,MAAMN,MAAMO;UACd,CAAA;QACF;MACF;IACF;EACF;AACA,SAAOnB;AACT;AAhBSC;AAkBT,SAASE,YAAYiB,YAAmB;AACtC,QAAMlB,WAAW;IAAC;MAAC;MAAUmB,QAAQC,QAAQC,QAAQ,MAAM,EAAA;;;AAC3D,QAAMC,sBAAkBC,0CAAkB,gBAAA;AAC1C,QAAMC,sBAAkBD,0CAAkB,OAAA;AAC1C,MAAID,iBAAiB;AACnBtB,aAASe,KAAK;MAAC;MAAYO;KAAgB;EAC7C;AACA,MAAIE,iBAAiB;AACnBxB,aAASe,KAAK;MAAC;MAAYS;KAAgB;EAC7C;AACA,MAAIN,YAAY;AACdlB,aAASe,KAAK;MAAC;MAAOG;KAAW;EACnC;AACA,SAAOO,OAAOC,YAAY1B,QAAAA;AAC5B;AAdSC;","names":["ApitallyProvider","app","register","container","singleton","config","get","ApitallyClient","AsyncLocalStorage","start","client","make","requestLogger","captureLogs","logsContext","logger","patchPinoLogger","pino","patchConsole","ready","router","paths","listRoutes","versions","getVersions","startupData","setStartupData","startSync","shutdown","handleShutdown","routes","toJSON","domain","route","method","methods","includes","toUpperCase","push","path","pattern","appVersion","process","version","replace","adonisJsVersion","getPackageVersion","apitallyVersion","Object","fromEntries"]}
1
+ {"version":3,"sources":["../../src/adonisjs/provider.ts"],"sourcesContent":["import type { ApplicationService, HttpRouterService } from \"@adonisjs/core/types\";\nimport { activate, configure, registerStartupEventInfo, shutdown } from \"../activation.js\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { resolvePackageVersion } from \"../packageVersion.js\";\nimport type { RoutePath } from \"../startup.js\";\n\nexport default class ApitallyProvider {\n constructor(protected app: ApplicationService) {}\n\n register(): void {\n configure(this.app.config.get<ApitallyOptions>(\"apitally\"));\n }\n\n async ready(): Promise<void> {\n if (this.app.getEnvironment() !== \"web\") {\n return;\n }\n const router = await this.app.container.make(\"router\");\n registerStartupEventInfo({\n framework: \"adonisjs\",\n frameworkVersion: resolvePackageVersion(\"@adonisjs/core\"),\n resolvePaths: () => resolvePaths(router),\n });\n activate();\n }\n\n async shutdown(): Promise<void> {\n await shutdown();\n }\n}\n\nfunction resolvePaths(router: HttpRouterService): RoutePath[] {\n return Object.values(router.toJSON()).flatMap((routes) =>\n routes.flatMap((route) => route.methods.map((method) => ({ method, path: route.pattern }))),\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAwE;AAExE,4BAAsC;AAGtC,MAAO,iBAA+B;AAAA,EACpC,YAAsB,KAAyB;AAAzB;AAAA,EAA0B;AAAA,EAA1B;AAAA,EAEtB,WAAiB;AACf,qCAAU,KAAK,IAAI,OAAO,IAAqB,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,IAAI,eAAe,MAAM,OAAO;AACvC;AAAA,IACF;AACA,UAAM,SAAS,MAAM,KAAK,IAAI,UAAU,KAAK,QAAQ;AACrD,oDAAyB;AAAA,MACvB,WAAW;AAAA,MACX,sBAAkB,6CAAsB,gBAAgB;AAAA,MACxD,cAAc,MAAM,aAAa,MAAM;AAAA,IACzC,CAAC;AACD,oCAAS;AAAA,EACX;AAAA,EAEA,MAAM,WAA0B;AAC9B,cAAM,4BAAS;AAAA,EACjB;AACF;AAEA,SAAS,aAAa,QAAwC;AAC5D,SAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAE;AAAA,IAAQ,CAAC,WAC7C,OAAO,QAAQ,CAAC,UAAU,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,MAAM,MAAM,QAAQ,EAAE,CAAC;AAAA,EAC5F;AACF;","names":[]}
@@ -1,31 +1,9 @@
1
1
  import { ApplicationService } from '@adonisjs/core/types';
2
- import { AsyncLocalStorage } from 'node:async_hooks';
3
- import { ApitallyClient } from '../common/client.cjs';
4
- import { LogRecord } from '../common/requestLogger.cjs';
5
- import '../common/consumerRegistry.cjs';
6
- import '../common/types.cjs';
7
- import '../common/logging.cjs';
8
- import 'winston';
9
- import '../common/requestCounter.cjs';
10
- import '../common/serverErrorCounter.cjs';
11
- import '../common/spanCollector.cjs';
12
- import '@opentelemetry/sdk-trace-base';
13
- import '../common/validationErrorCounter.cjs';
14
- import 'node:buffer';
15
- import 'node:http';
16
- import '../common/tempGzipFile.cjs';
17
2
 
18
- declare module "@adonisjs/core/types" {
19
- interface ContainerBindings {
20
- apitallyClient: ApitallyClient;
21
- apitallyLogsContext: AsyncLocalStorage<LogRecord[]>;
22
- }
23
- }
24
3
  declare class ApitallyProvider {
25
4
  protected app: ApplicationService;
26
5
  constructor(app: ApplicationService);
27
6
  register(): void;
28
- start(): Promise<void>;
29
7
  ready(): Promise<void>;
30
8
  shutdown(): Promise<void>;
31
9
  }
@@ -1,31 +1,9 @@
1
1
  import { ApplicationService } from '@adonisjs/core/types';
2
- import { AsyncLocalStorage } from 'node:async_hooks';
3
- import { ApitallyClient } from '../common/client.js';
4
- import { LogRecord } from '../common/requestLogger.js';
5
- import '../common/consumerRegistry.js';
6
- import '../common/types.js';
7
- import '../common/logging.js';
8
- import 'winston';
9
- import '../common/requestCounter.js';
10
- import '../common/serverErrorCounter.js';
11
- import '../common/spanCollector.js';
12
- import '@opentelemetry/sdk-trace-base';
13
- import '../common/validationErrorCounter.js';
14
- import 'node:buffer';
15
- import 'node:http';
16
- import '../common/tempGzipFile.js';
17
2
 
18
- declare module "@adonisjs/core/types" {
19
- interface ContainerBindings {
20
- apitallyClient: ApitallyClient;
21
- apitallyLogsContext: AsyncLocalStorage<LogRecord[]>;
22
- }
23
- }
24
3
  declare class ApitallyProvider {
25
4
  protected app: ApplicationService;
26
5
  constructor(app: ApplicationService);
27
6
  register(): void;
28
- start(): Promise<void>;
29
7
  ready(): Promise<void>;
30
8
  shutdown(): Promise<void>;
31
9
  }
@@ -1,103 +1,34 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { AsyncLocalStorage } from "node:async_hooks";
4
- import { ApitallyClient } from "../common/client.js";
5
- import { getPackageVersion } from "../common/packageVersions.js";
6
- import { patchConsole, patchPinoLogger } from "../loggers/index.js";
7
- const _ApitallyProvider = class _ApitallyProvider {
8
- app;
1
+ import { activate, configure, registerStartupEventInfo, shutdown } from "../activation.js";
2
+ import { resolvePackageVersion } from "../packageVersion.js";
3
+ class ApitallyProvider {
9
4
  constructor(app) {
10
5
  this.app = app;
11
6
  }
7
+ app;
12
8
  register() {
13
- this.app.container.singleton("apitallyClient", () => {
14
- const config = this.app.config.get("apitally");
15
- return new ApitallyClient(config);
16
- });
17
- this.app.container.singleton("apitallyLogsContext", () => {
18
- return new AsyncLocalStorage();
19
- });
20
- }
21
- async start() {
22
- const client = await this.app.container.make("apitallyClient");
23
- if (client.requestLogger.config.captureLogs) {
24
- const logsContext = await this.app.container.make("apitallyLogsContext");
25
- const logger = await this.app.container.make("logger");
26
- patchPinoLogger(logger.pino, logsContext);
27
- patchConsole(logsContext);
28
- }
9
+ configure(this.app.config.get("apitally"));
29
10
  }
30
11
  async ready() {
31
- const client = await this.app.container.make("apitallyClient");
12
+ if (this.app.getEnvironment() !== "web") {
13
+ return;
14
+ }
32
15
  const router = await this.app.container.make("router");
33
- const paths = listRoutes(router);
34
- const versions = getVersions(this.app.config.get("apitally.appVersion"));
35
- const startupData = {
36
- paths,
37
- versions,
38
- client: "js:adonisjs"
39
- };
40
- client.setStartupData(startupData);
41
- client.startSync();
16
+ registerStartupEventInfo({
17
+ framework: "adonisjs",
18
+ frameworkVersion: resolvePackageVersion("@adonisjs/core"),
19
+ resolvePaths: () => resolvePaths(router)
20
+ });
21
+ activate();
42
22
  }
43
23
  async shutdown() {
44
- const client = await this.app.container.make("apitallyClient");
45
- await client.handleShutdown();
46
- }
47
- };
48
- __name(_ApitallyProvider, "ApitallyProvider");
49
- let ApitallyProvider = _ApitallyProvider;
50
- function listRoutes(router) {
51
- const routes = router.toJSON();
52
- const paths = [];
53
- for (const domain in routes) {
54
- for (const route of routes[domain]) {
55
- for (const method of route.methods) {
56
- if (![
57
- "HEAD",
58
- "OPTIONS"
59
- ].includes(method.toUpperCase())) {
60
- paths.push({
61
- method: method.toUpperCase(),
62
- path: route.pattern
63
- });
64
- }
65
- }
66
- }
24
+ await shutdown();
67
25
  }
68
- return paths;
69
26
  }
70
- __name(listRoutes, "listRoutes");
71
- function getVersions(appVersion) {
72
- const versions = [
73
- [
74
- "nodejs",
75
- process.version.replace(/^v/, "")
76
- ]
77
- ];
78
- const adonisJsVersion = getPackageVersion("@adonisjs/core");
79
- const apitallyVersion = getPackageVersion("../..");
80
- if (adonisJsVersion) {
81
- versions.push([
82
- "adonisjs",
83
- adonisJsVersion
84
- ]);
85
- }
86
- if (apitallyVersion) {
87
- versions.push([
88
- "apitally",
89
- apitallyVersion
90
- ]);
91
- }
92
- if (appVersion) {
93
- versions.push([
94
- "app",
95
- appVersion
96
- ]);
97
- }
98
- return Object.fromEntries(versions);
27
+ function resolvePaths(router) {
28
+ return Object.values(router.toJSON()).flatMap(
29
+ (routes) => routes.flatMap((route) => route.methods.map((method) => ({ method, path: route.pattern })))
30
+ );
99
31
  }
100
- __name(getVersions, "getVersions");
101
32
  export {
102
33
  ApitallyProvider as default
103
34
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/provider.ts"],"sourcesContent":["import type { Router } from \"@adonisjs/core/http\";\nimport type { ApplicationService } from \"@adonisjs/core/types\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport { ApitallyClient } from \"../common/client.js\";\nimport { getPackageVersion } from \"../common/packageVersions.js\";\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport type { ApitallyConfig, PathInfo, StartupData } from \"../common/types.js\";\nimport { patchConsole, patchPinoLogger } from \"../loggers/index.js\";\n\ndeclare module \"@adonisjs/core/types\" {\n interface ContainerBindings {\n apitallyClient: ApitallyClient;\n apitallyLogsContext: AsyncLocalStorage<LogRecord[]>;\n }\n}\n\nexport default class ApitallyProvider {\n constructor(protected app: ApplicationService) {}\n\n register() {\n this.app.container.singleton(\"apitallyClient\", () => {\n const config: ApitallyConfig = this.app.config.get(\"apitally\");\n return new ApitallyClient(config);\n });\n this.app.container.singleton(\"apitallyLogsContext\", () => {\n return new AsyncLocalStorage<LogRecord[]>();\n });\n }\n\n async start() {\n const client = await this.app.container.make(\"apitallyClient\");\n if (client.requestLogger.config.captureLogs) {\n const logsContext = await this.app.container.make(\"apitallyLogsContext\");\n const logger = await this.app.container.make(\"logger\");\n\n patchPinoLogger(logger.pino, logsContext);\n patchConsole(logsContext);\n }\n }\n\n async ready() {\n const client = await this.app.container.make(\"apitallyClient\");\n const router = await this.app.container.make(\"router\");\n\n const paths = listRoutes(router);\n const versions = getVersions(this.app.config.get(\"apitally.appVersion\"));\n const startupData: StartupData = {\n paths,\n versions,\n client: \"js:adonisjs\",\n };\n client.setStartupData(startupData);\n client.startSync();\n }\n\n async shutdown() {\n const client = await this.app.container.make(\"apitallyClient\");\n await client.handleShutdown();\n }\n}\n\nfunction listRoutes(router: Router) {\n const routes = router.toJSON();\n const paths: Array<PathInfo> = [];\n for (const domain in routes) {\n for (const route of routes[domain]) {\n for (const method of route.methods) {\n if (![\"HEAD\", \"OPTIONS\"].includes(method.toUpperCase())) {\n paths.push({\n method: method.toUpperCase(),\n path: route.pattern,\n });\n }\n }\n }\n }\n return paths;\n}\n\nfunction getVersions(appVersion?: string) {\n const versions = [[\"nodejs\", process.version.replace(/^v/, \"\")]];\n const adonisJsVersion = getPackageVersion(\"@adonisjs/core\");\n const apitallyVersion = getPackageVersion(\"../..\");\n if (adonisJsVersion) {\n versions.push([\"adonisjs\", adonisJsVersion]);\n }\n if (apitallyVersion) {\n versions.push([\"apitally\", apitallyVersion]);\n }\n if (appVersion) {\n versions.push([\"app\", appVersion]);\n }\n return Object.fromEntries(versions);\n}\n"],"mappings":";;AAEA,SAASA,yBAAyB;AAElC,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAGlC,SAASC,cAAcC,uBAAuB;AAS9C,MAAqBC,oBAArB,MAAqBA,kBAAAA;;EACnB,YAAsBC,KAAyB;SAAzBA,MAAAA;EAA0B;EAEhDC,WAAW;AACT,SAAKD,IAAIE,UAAUC,UAAU,kBAAkB,MAAA;AAC7C,YAAMC,SAAyB,KAAKJ,IAAII,OAAOC,IAAI,UAAA;AACnD,aAAO,IAAIV,eAAeS,MAAAA;IAC5B,CAAA;AACA,SAAKJ,IAAIE,UAAUC,UAAU,uBAAuB,MAAA;AAClD,aAAO,IAAIT,kBAAAA;IACb,CAAA;EACF;EAEA,MAAMY,QAAQ;AACZ,UAAMC,SAAS,MAAM,KAAKP,IAAIE,UAAUM,KAAK,gBAAA;AAC7C,QAAID,OAAOE,cAAcL,OAAOM,aAAa;AAC3C,YAAMC,cAAc,MAAM,KAAKX,IAAIE,UAAUM,KAAK,qBAAA;AAClD,YAAMI,SAAS,MAAM,KAAKZ,IAAIE,UAAUM,KAAK,QAAA;AAE7CV,sBAAgBc,OAAOC,MAAMF,WAAAA;AAC7Bd,mBAAac,WAAAA;IACf;EACF;EAEA,MAAMG,QAAQ;AACZ,UAAMP,SAAS,MAAM,KAAKP,IAAIE,UAAUM,KAAK,gBAAA;AAC7C,UAAMO,SAAS,MAAM,KAAKf,IAAIE,UAAUM,KAAK,QAAA;AAE7C,UAAMQ,QAAQC,WAAWF,MAAAA;AACzB,UAAMG,WAAWC,YAAY,KAAKnB,IAAII,OAAOC,IAAI,qBAAA,CAAA;AACjD,UAAMe,cAA2B;MAC/BJ;MACAE;MACAX,QAAQ;IACV;AACAA,WAAOc,eAAeD,WAAAA;AACtBb,WAAOe,UAAS;EAClB;EAEA,MAAMC,WAAW;AACf,UAAMhB,SAAS,MAAM,KAAKP,IAAIE,UAAUM,KAAK,gBAAA;AAC7C,UAAMD,OAAOiB,eAAc;EAC7B;AACF;AA3CqBzB;AAArB,IAAqBA,mBAArB;AA6CA,SAASkB,WAAWF,QAAc;AAChC,QAAMU,SAASV,OAAOW,OAAM;AAC5B,QAAMV,QAAyB,CAAA;AAC/B,aAAWW,UAAUF,QAAQ;AAC3B,eAAWG,SAASH,OAAOE,MAAAA,GAAS;AAClC,iBAAWE,UAAUD,MAAME,SAAS;AAClC,YAAI,CAAC;UAAC;UAAQ;UAAWC,SAASF,OAAOG,YAAW,CAAA,GAAK;AACvDhB,gBAAMiB,KAAK;YACTJ,QAAQA,OAAOG,YAAW;YAC1BE,MAAMN,MAAMO;UACd,CAAA;QACF;MACF;IACF;EACF;AACA,SAAOnB;AACT;AAhBSC;AAkBT,SAASE,YAAYiB,YAAmB;AACtC,QAAMlB,WAAW;IAAC;MAAC;MAAUmB,QAAQC,QAAQC,QAAQ,MAAM,EAAA;;;AAC3D,QAAMC,kBAAkB5C,kBAAkB,gBAAA;AAC1C,QAAM6C,kBAAkB7C,kBAAkB,OAAA;AAC1C,MAAI4C,iBAAiB;AACnBtB,aAASe,KAAK;MAAC;MAAYO;KAAgB;EAC7C;AACA,MAAIC,iBAAiB;AACnBvB,aAASe,KAAK;MAAC;MAAYQ;KAAgB;EAC7C;AACA,MAAIL,YAAY;AACdlB,aAASe,KAAK;MAAC;MAAOG;KAAW;EACnC;AACA,SAAOM,OAAOC,YAAYzB,QAAAA;AAC5B;AAdSC;","names":["AsyncLocalStorage","ApitallyClient","getPackageVersion","patchConsole","patchPinoLogger","ApitallyProvider","app","register","container","singleton","config","get","start","client","make","requestLogger","captureLogs","logsContext","logger","pino","ready","router","paths","listRoutes","versions","getVersions","startupData","setStartupData","startSync","shutdown","handleShutdown","routes","toJSON","domain","route","method","methods","includes","toUpperCase","push","path","pattern","appVersion","process","version","replace","adonisJsVersion","apitallyVersion","Object","fromEntries"]}
1
+ {"version":3,"sources":["../../src/adonisjs/provider.ts"],"sourcesContent":["import type { ApplicationService, HttpRouterService } from \"@adonisjs/core/types\";\nimport { activate, configure, registerStartupEventInfo, shutdown } from \"../activation.js\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { resolvePackageVersion } from \"../packageVersion.js\";\nimport type { RoutePath } from \"../startup.js\";\n\nexport default class ApitallyProvider {\n constructor(protected app: ApplicationService) {}\n\n register(): void {\n configure(this.app.config.get<ApitallyOptions>(\"apitally\"));\n }\n\n async ready(): Promise<void> {\n if (this.app.getEnvironment() !== \"web\") {\n return;\n }\n const router = await this.app.container.make(\"router\");\n registerStartupEventInfo({\n framework: \"adonisjs\",\n frameworkVersion: resolvePackageVersion(\"@adonisjs/core\"),\n resolvePaths: () => resolvePaths(router),\n });\n activate();\n }\n\n async shutdown(): Promise<void> {\n await shutdown();\n }\n}\n\nfunction resolvePaths(router: HttpRouterService): RoutePath[] {\n return Object.values(router.toJSON()).flatMap((routes) =>\n routes.flatMap((route) => route.methods.map((method) => ({ method, path: route.pattern }))),\n );\n}\n"],"mappings":"AACA,SAAS,UAAU,WAAW,0BAA0B,gBAAgB;AAExE,SAAS,6BAA6B;AAGtC,MAAO,iBAA+B;AAAA,EACpC,YAAsB,KAAyB;AAAzB;AAAA,EAA0B;AAAA,EAA1B;AAAA,EAEtB,WAAiB;AACf,cAAU,KAAK,IAAI,OAAO,IAAqB,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,IAAI,eAAe,MAAM,OAAO;AACvC;AAAA,IACF;AACA,UAAM,SAAS,MAAM,KAAK,IAAI,UAAU,KAAK,QAAQ;AACrD,6BAAyB;AAAA,MACvB,WAAW;AAAA,MACX,kBAAkB,sBAAsB,gBAAgB;AAAA,MACxD,cAAc,MAAM,aAAa,MAAM;AAAA,IACzC,CAAC;AACD,aAAS;AAAA,EACX;AAAA,EAEA,MAAM,WAA0B;AAC9B,UAAM,SAAS;AAAA,EACjB;AACF;AAEA,SAAS,aAAa,QAAwC;AAC5D,SAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAE;AAAA,IAAQ,CAAC,WAC7C,OAAO,QAAQ,CAAC,UAAU,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,MAAM,MAAM,QAAQ,EAAE,CAAC;AAAA,EAC5F;AACF;","names":[]}
@@ -4,22 +4,18 @@
4
4
  })
5
5
  }}}
6
6
  import env from '#start/env'
7
- import app from '@adonisjs/core/services/app'
8
7
  import { defineConfig } from 'apitally/adonisjs'
9
8
 
10
- const apitallyConfig = defineConfig({
11
- clientId: env.get('APITALLY_CLIENT_ID'),
12
- env: env.get('APITALLY_ENV', app.inProduction ? 'prod' : 'dev'),
13
- {{#if enableRequestLogging}}
14
- requestLogging: {
15
- enabled: true,
16
- logRequestHeaders: true,
17
- logRequestBody: true,
18
- logResponseBody: true,
19
- captureLogs: true,
20
- captureTraces: true,
21
- },
9
+ export default defineConfig({
10
+ writeToken: env.get('APITALLY_WRITE_TOKEN'),
11
+ env: env.get('APITALLY_ENV'),
12
+ {{#if captureRequestHeaders}}
13
+ captureRequestHeaders: true,
14
+ {{/if}}
15
+ {{#if captureRequestBody}}
16
+ captureRequestBody: true,
17
+ {{/if}}
18
+ {{#if captureResponseBody}}
19
+ captureResponseBody: true,
22
20
  {{/if}}
23
21
  })
24
-
25
- export default apitallyConfig