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
@@ -0,0 +1,357 @@
1
+ import { isMainThread } from "node:worker_threads";
2
+ import { UndiciInstrumentation } from "@opentelemetry/instrumentation-undici";
3
+ import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
4
+ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
5
+ import {
6
+ getConfig,
7
+ isApitallyDisabledViaEnv,
8
+ setConfig
9
+ } from "./config.js";
10
+ import { ExportWorker } from "./exportWorker.js";
11
+ import {
12
+ installConsoleCapture,
13
+ installNestLoggerCapture,
14
+ installPinoCapture,
15
+ installWinstonCapture
16
+ } from "./logCapture.js";
17
+ import { logDebug, logError, logWarning } from "./logger.js";
18
+ import { ApitallyLogRecordExporter } from "./logRecordExporter.js";
19
+ import { ApitallyLogRecordProcessor } from "./logRecordProcessor.js";
20
+ import { MetricsPipeline } from "./metrics.js";
21
+ import { getDistroVersion } from "./packageVersion.js";
22
+ import {
23
+ createLoggerProvider,
24
+ resolveEnvAndCreateResource,
25
+ setupTracerProvider
26
+ } from "./providers.js";
27
+ import { Redaction } from "./redaction.js";
28
+ import { installSentryEventIdRecording } from "./sentry.js";
29
+ import { ApitallySpanExporter } from "./spanExporter.js";
30
+ import {
31
+ isApitallySpanProcessorDeclared,
32
+ SpanPipeline,
33
+ setActiveSpanPipeline,
34
+ setServerSpanActivationCallback
35
+ } from "./spanProcessor.js";
36
+ import { Spool } from "./spool.js";
37
+ import { emitStartupEvent } from "./startup.js";
38
+ const BATCH_SCHEDULE_DELAY_MILLIS = 1e3;
39
+ const BATCH_EXPORT_TIMEOUT_MILLIS = 3e4;
40
+ const BATCH_MAX_QUEUE_SIZE = 2048;
41
+ const BATCH_MAX_EXPORT_BATCH_SIZE = 512;
42
+ const BATCH_MAX_EXPORT_BATCH_SIZE_WITH_BODY_CAPTURE = 32;
43
+ const SIGNAL_FLUSH_TIMEOUT_MILLIS = 5e3;
44
+ const ACTIVATION_STATE_KEY = /* @__PURE__ */ Symbol.for("apitally.activation");
45
+ function configure(options = {}) {
46
+ const config = setConfig(options);
47
+ if (!config.disabled && process.env.OTEL_SEMCONV_STABILITY_OPT_IN === void 0) {
48
+ process.env.OTEL_SEMCONV_STABILITY_OPT_IN = "http/dup";
49
+ }
50
+ setServerSpanActivationCallback(activate);
51
+ return config;
52
+ }
53
+ function registerStartupEventInfo(info) {
54
+ const activationState = getActivationState();
55
+ activationState.startupEventInfo ??= info;
56
+ }
57
+ function activate(triggeringSpan) {
58
+ const activationState = getActivationState();
59
+ if (activationState.activationAttempted) {
60
+ return;
61
+ }
62
+ activationState.activationAttempted = true;
63
+ if (shouldSkipActivation()) {
64
+ return;
65
+ }
66
+ try {
67
+ const handles = startPipelines(activationState.startupEventInfo, triggeringSpan);
68
+ activationState.handles = handles;
69
+ activationState.runShutdown = () => drainAndStop(handles);
70
+ installBeforeExitHook(activationState);
71
+ installSignalHooks(activationState);
72
+ } catch (error) {
73
+ logError(`Apitally activation failed: ${String(error)}`);
74
+ }
75
+ }
76
+ function isActivated() {
77
+ return getActivationState().handles !== void 0;
78
+ }
79
+ function getActivationHandles() {
80
+ return getActivationState().handles;
81
+ }
82
+ async function flushTelemetry() {
83
+ try {
84
+ await getActivationState().handles?.worker.runCycle();
85
+ } catch (error) {
86
+ logDebug(`Error flushing telemetry: ${String(error)}`);
87
+ }
88
+ }
89
+ function shutdown() {
90
+ const activationState = getActivationState();
91
+ const handles = activationState.handles;
92
+ const runShutdown = activationState.runShutdown;
93
+ if (!handles || !runShutdown) {
94
+ return Promise.resolve();
95
+ }
96
+ if (!activationState.shutdownPromise) {
97
+ removeLifecycleHooks(activationState);
98
+ const signalDrainPromise = activationState.signalDrainPromise;
99
+ activationState.shutdownPromise = (signalDrainPromise ? signalDrainPromise.then(() => handles.worker.waitForIdle()) : Promise.resolve()).then(runShutdown);
100
+ }
101
+ return activationState.shutdownPromise;
102
+ }
103
+ const activationFactories = {
104
+ createSpool: () => new Spool(),
105
+ createExportWorker: (options) => new ExportWorker(options)
106
+ };
107
+ const defaultFactories = { ...activationFactories };
108
+ async function resetActivation() {
109
+ Object.assign(activationFactories, defaultFactories);
110
+ const holder = globalThis;
111
+ const activationState = holder[ACTIVATION_STATE_KEY];
112
+ delete holder[ACTIVATION_STATE_KEY];
113
+ hasWarnedAboutVersionSkew = false;
114
+ if (!activationState) {
115
+ return;
116
+ }
117
+ removeLifecycleHooks(activationState);
118
+ const handles = activationState.handles;
119
+ if (!handles) {
120
+ return;
121
+ }
122
+ handles.undiciInstrumentation?.disable();
123
+ await handles.worker.stop();
124
+ await handles.spanPipeline.shutdown();
125
+ await handles.loggerProvider.shutdown();
126
+ await handles.spool.clear();
127
+ }
128
+ let hasWarnedAboutVersionSkew = false;
129
+ function getActivationState() {
130
+ const holder = globalThis;
131
+ const existing = holder[ACTIVATION_STATE_KEY];
132
+ if (existing) {
133
+ if (!hasWarnedAboutVersionSkew && existing.sdkVersion !== getDistroVersion()) {
134
+ hasWarnedAboutVersionSkew = true;
135
+ logWarning(
136
+ `Two copies of the apitally package with different versions (${existing.sdkVersion} and ${getDistroVersion()}) are loaded in this process; version ${existing.sdkVersion} stays active. To resolve this, deduplicate the apitally installation.`
137
+ );
138
+ }
139
+ return existing;
140
+ }
141
+ const activationState = {
142
+ sdkVersion: getDistroVersion(),
143
+ activationAttempted: false
144
+ };
145
+ holder[ACTIVATION_STATE_KEY] = activationState;
146
+ return activationState;
147
+ }
148
+ function shouldSkipActivation() {
149
+ return Boolean(process.env.JEST_WORKER_ID) || Boolean(process.env.VITEST) || process.env.NODE_ENV === "test" || // The emergency kill switch overrides an explicit disabled: false option.
150
+ isApitallyDisabledViaEnv() || getConfig().disabled;
151
+ }
152
+ function startPipelines(startupEventInfo, triggeringSpan) {
153
+ const config = getConfig();
154
+ let hasUserProvider = isApitallySpanProcessorDeclared();
155
+ const { env, resource } = resolveEnvAndCreateResource(hasUserProvider, triggeringSpan?.resource);
156
+ const instanceId = resource.attributes["service.instance.id"];
157
+ const spool = activationFactories.createSpool();
158
+ const spanExporter = new ApitallySpanExporter({
159
+ redaction: new Redaction(),
160
+ env,
161
+ instanceId,
162
+ spool,
163
+ maskRequestBody: config.maskRequestBody,
164
+ maskResponseBody: config.maskResponseBody
165
+ });
166
+ const batchSpanProcessor = new BatchSpanProcessor(spanExporter, {
167
+ scheduledDelayMillis: BATCH_SCHEDULE_DELAY_MILLIS,
168
+ exportTimeoutMillis: BATCH_EXPORT_TIMEOUT_MILLIS,
169
+ maxQueueSize: BATCH_MAX_QUEUE_SIZE,
170
+ maxExportBatchSize: config.captureRequestBody || config.captureResponseBody ? BATCH_MAX_EXPORT_BATCH_SIZE_WITH_BODY_CAPTURE : BATCH_MAX_EXPORT_BATCH_SIZE
171
+ });
172
+ const spanPipeline = new SpanPipeline(batchSpanProcessor);
173
+ let tracerProvider;
174
+ if (!hasUserProvider) {
175
+ tracerProvider = setupTracerProvider(resource, [spanPipeline]);
176
+ if (!tracerProvider) {
177
+ hasUserProvider = true;
178
+ logWarning(
179
+ "Apitally could not register its OpenTelemetry tracer provider because another provider is already registered. Only metrics and the startup event are sent to Apitally until you add ApitallySpanProcessor (exported by the apitally package) to your tracer provider's spanProcessors constructor option or the NodeSDK spanProcessors option."
180
+ );
181
+ }
182
+ }
183
+ setActiveSpanPipeline(spanPipeline);
184
+ const batchLogProcessor = new BatchLogRecordProcessor({
185
+ exporter: new ApitallyLogRecordExporter(spool),
186
+ scheduledDelayMillis: BATCH_SCHEDULE_DELAY_MILLIS,
187
+ exportTimeoutMillis: BATCH_EXPORT_TIMEOUT_MILLIS,
188
+ maxQueueSize: BATCH_MAX_QUEUE_SIZE,
189
+ maxExportBatchSize: BATCH_MAX_EXPORT_BATCH_SIZE
190
+ });
191
+ const logRecordProcessor = new ApitallyLogRecordProcessor(batchLogProcessor, spanPipeline);
192
+ const loggerProvider = createLoggerProvider(resource, [logRecordProcessor]);
193
+ const metricsPipeline = new MetricsPipeline(resource, spool);
194
+ spanPipeline.metricsRecorder = (record) => metricsPipeline.recordFromRequest(record);
195
+ const worker = activationFactories.createExportWorker({
196
+ spool,
197
+ otlpEndpoint: config.otlpEndpoint,
198
+ writeToken: config.writeToken,
199
+ env
200
+ });
201
+ worker.flushCallbacks.push(
202
+ () => metricsPipeline.collectAndExport(),
203
+ () => batchSpanProcessor.forceFlush(),
204
+ () => batchLogProcessor.forceFlush()
205
+ );
206
+ if (config.captureLogs) {
207
+ installConsoleCapture(loggerProvider);
208
+ installNestLoggerCapture(loggerProvider);
209
+ installWinstonCapture(loggerProvider);
210
+ installPinoCapture(loggerProvider);
211
+ }
212
+ installSentryEventIdRecording();
213
+ let undiciInstrumentation;
214
+ if (!hasUserProvider) {
215
+ undiciInstrumentation = createUndiciInstrumentation(config.otlpEndpoint);
216
+ }
217
+ worker.start();
218
+ if (startupEventInfo) {
219
+ emitStartupEvent(loggerProvider, startupEventInfo);
220
+ }
221
+ return {
222
+ spanPipeline,
223
+ tracerProvider,
224
+ loggerProvider,
225
+ metricsPipeline,
226
+ spool,
227
+ worker,
228
+ undiciInstrumentation
229
+ };
230
+ }
231
+ function createUndiciInstrumentation(otlpEndpoint) {
232
+ const endpointOrigin = new URL(otlpEndpoint).origin;
233
+ return new UndiciInstrumentation({
234
+ ignoreRequestHook: (request) => {
235
+ try {
236
+ return new URL(String(request.origin)).origin === endpointOrigin;
237
+ } catch {
238
+ return false;
239
+ }
240
+ }
241
+ });
242
+ }
243
+ async function drainAndStop(handles) {
244
+ try {
245
+ await handles.spanPipeline.shutdown();
246
+ await handles.loggerProvider.shutdown();
247
+ await handles.worker.finalDrain();
248
+ await handles.worker.stop();
249
+ } catch (error) {
250
+ logWarning(`Error draining telemetry on shutdown: ${String(error)}`);
251
+ }
252
+ }
253
+ function installSignalHooks(activationState) {
254
+ if (process.platform === "win32" || !isMainThread) {
255
+ return;
256
+ }
257
+ let listeners;
258
+ listeners = {
259
+ SIGTERM: () => handleTerminationSignal(activationState, listeners, "SIGTERM"),
260
+ SIGINT: () => handleTerminationSignal(activationState, listeners, "SIGINT")
261
+ };
262
+ activationState.signalListeners = listeners;
263
+ try {
264
+ process.prependOnceListener("SIGTERM", listeners.SIGTERM);
265
+ process.prependOnceListener("SIGINT", listeners.SIGINT);
266
+ } catch (error) {
267
+ removeSignalHooks(activationState, listeners);
268
+ logWarning(`Unable to install Apitally signal handlers: ${String(error)}`);
269
+ }
270
+ }
271
+ function handleTerminationSignal(activationState, listeners, signal) {
272
+ const hasApplicationListener = process.listeners(signal).some((listener) => listener !== listeners[signal]);
273
+ removeSignalHooks(activationState, listeners);
274
+ const drainPromise = flushAfterTerminationSignal(activationState, signal, hasApplicationListener);
275
+ activationState.signalDrainPromise = drainPromise;
276
+ void drainPromise.catch((error) => {
277
+ logDebug(`Error flushing telemetry on ${signal}: ${String(error)}`);
278
+ });
279
+ }
280
+ async function flushAfterTerminationSignal(activationState, signal, hasApplicationListener) {
281
+ const handles = activationState.handles;
282
+ if (!handles) {
283
+ return;
284
+ }
285
+ try {
286
+ if (activationState.shutdownPromise) {
287
+ await waitForSignalDeadline(activationState.shutdownPromise);
288
+ } else {
289
+ await handles.worker.finalDrain(SIGNAL_FLUSH_TIMEOUT_MILLIS);
290
+ }
291
+ } catch (error) {
292
+ logDebug(`Error flushing telemetry on ${signal}: ${String(error)}`);
293
+ }
294
+ if (hasApplicationListener || process.listeners(signal).length > 0) {
295
+ return;
296
+ }
297
+ const exitCode = signal === "SIGTERM" ? 143 : 130;
298
+ if (process.platform === "linux" && process.pid === 1) {
299
+ process.exit(exitCode);
300
+ }
301
+ try {
302
+ process.kill(process.pid, signal);
303
+ } catch {
304
+ process.exit(exitCode);
305
+ }
306
+ }
307
+ async function waitForSignalDeadline(promise) {
308
+ let deadlineTimer;
309
+ const deadlineReached = new Promise((resolve) => {
310
+ deadlineTimer = setTimeout(resolve, SIGNAL_FLUSH_TIMEOUT_MILLIS);
311
+ });
312
+ try {
313
+ await Promise.race([promise, deadlineReached]);
314
+ } finally {
315
+ if (deadlineTimer) {
316
+ clearTimeout(deadlineTimer);
317
+ }
318
+ }
319
+ }
320
+ function removeSignalHooks(activationState, listeners = activationState.signalListeners) {
321
+ if (!listeners) {
322
+ return;
323
+ }
324
+ process.removeListener("SIGTERM", listeners.SIGTERM);
325
+ process.removeListener("SIGINT", listeners.SIGINT);
326
+ if (activationState.signalListeners === listeners) {
327
+ activationState.signalListeners = void 0;
328
+ }
329
+ }
330
+ function removeLifecycleHooks(activationState) {
331
+ removeSignalHooks(activationState);
332
+ if (activationState.beforeExitListener) {
333
+ process.removeListener("beforeExit", activationState.beforeExitListener);
334
+ activationState.beforeExitListener = void 0;
335
+ }
336
+ }
337
+ function installBeforeExitHook(activationState) {
338
+ const listener = () => {
339
+ void shutdown().catch((error) => {
340
+ logDebug(`Error draining telemetry on shutdown: ${String(error)}`);
341
+ });
342
+ };
343
+ activationState.beforeExitListener = listener;
344
+ process.on("beforeExit", listener);
345
+ }
346
+ export {
347
+ activate,
348
+ activationFactories,
349
+ configure,
350
+ flushTelemetry,
351
+ getActivationHandles,
352
+ isActivated,
353
+ registerStartupEventInfo,
354
+ resetActivation,
355
+ shutdown
356
+ };
357
+ //# sourceMappingURL=activation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/activation.ts"],"sourcesContent":["import { isMainThread } from \"node:worker_threads\";\nimport { UndiciInstrumentation } from \"@opentelemetry/instrumentation-undici\";\nimport { BatchLogRecordProcessor, type LoggerProvider } from \"@opentelemetry/sdk-logs\";\nimport { BatchSpanProcessor, type Span } from \"@opentelemetry/sdk-trace-base\";\nimport type { NodeTracerProvider } from \"@opentelemetry/sdk-trace-node\";\nimport {\n type ApitallyConfig,\n type ApitallyOptions,\n getConfig,\n isApitallyDisabledViaEnv,\n setConfig,\n} from \"./config.js\";\nimport { ExportWorker, type ExportWorkerOptions } from \"./exportWorker.js\";\nimport {\n installConsoleCapture,\n installNestLoggerCapture,\n installPinoCapture,\n installWinstonCapture,\n} from \"./logCapture.js\";\nimport { logDebug, logError, logWarning } from \"./logger.js\";\nimport { ApitallyLogRecordExporter } from \"./logRecordExporter.js\";\nimport { ApitallyLogRecordProcessor } from \"./logRecordProcessor.js\";\nimport { MetricsPipeline } from \"./metrics.js\";\nimport { getDistroVersion } from \"./packageVersion.js\";\nimport {\n createLoggerProvider,\n resolveEnvAndCreateResource,\n setupTracerProvider,\n} from \"./providers.js\";\nimport { Redaction } from \"./redaction.js\";\nimport { installSentryEventIdRecording } from \"./sentry.js\";\nimport { ApitallySpanExporter } from \"./spanExporter.js\";\nimport {\n isApitallySpanProcessorDeclared,\n SpanPipeline,\n setActiveSpanPipeline,\n setServerSpanActivationCallback,\n} from \"./spanProcessor.js\";\nimport { Spool } from \"./spool.js\";\nimport { emitStartupEvent, type StartupEventInfo } from \"./startup.js\";\n\n// The worker sends every 15 seconds, so batches only need to reach the spool\n// within that interval.\nconst BATCH_SCHEDULE_DELAY_MILLIS = 1_000;\nconst BATCH_EXPORT_TIMEOUT_MILLIS = 30_000;\nconst BATCH_MAX_QUEUE_SIZE = 2_048;\nconst BATCH_MAX_EXPORT_BATCH_SIZE = 512;\nconst BATCH_MAX_EXPORT_BATCH_SIZE_WITH_BODY_CAPTURE = 32;\nconst SIGNAL_FLUSH_TIMEOUT_MILLIS = 5_000;\n\ntype TerminationSignal = \"SIGTERM\" | \"SIGINT\";\ntype SignalListeners = Record<TerminationSignal, () => void>;\n\n// The ESM and CJS builds can load together, so a Symbol.for key gives both\n// copies the same activation state.\nconst ACTIVATION_STATE_KEY = Symbol.for(\"apitally.activation\");\n\ninterface ActivationState {\n sdkVersion: string;\n activationAttempted: boolean;\n startupEventInfo?: StartupEventInfo;\n handles?: ActivationHandles;\n runShutdown?: () => Promise<void>;\n shutdownPromise?: Promise<void>;\n beforeExitListener?: () => void;\n signalListeners?: SignalListeners;\n signalDrainPromise?: Promise<void>;\n}\n\ninterface ActivationHandles {\n spanPipeline: SpanPipeline;\n tracerProvider?: NodeTracerProvider;\n loggerProvider: LoggerProvider;\n metricsPipeline: MetricsPipeline;\n spool: Spool;\n worker: ExportWorker;\n undiciInstrumentation?: UndiciInstrumentation;\n}\n\n// Configuration stays synchronous; activate() defers timers and I/O.\nexport function configure(options: ApitallyOptions = {}): ApitallyConfig {\n const config = setConfig(options);\n // User instrumentations read this at initialization. `http/dup` adds stable\n // HTTP attributes alongside legacy ones; a user-set value takes precedence.\n if (!config.disabled && process.env.OTEL_SEMCONV_STABILITY_OPT_IN === undefined) {\n process.env.OTEL_SEMCONV_STABILITY_OPT_IN = \"http/dup\";\n }\n setServerSpanActivationCallback(activate);\n return config;\n}\n\n// The first integration registration wins so one process emits one startup event.\nexport function registerStartupEventInfo(info: StartupEventInfo): void {\n const activationState = getActivationState();\n activationState.startupEventInfo ??= info;\n}\n\n// Activation is synchronous and attempted once, so concurrent first requests\n// observe either no activation or completed activation.\nexport function activate(triggeringSpan?: Span): void {\n const activationState = getActivationState();\n if (activationState.activationAttempted) {\n return;\n }\n activationState.activationAttempted = true;\n if (shouldSkipActivation()) {\n return;\n }\n try {\n const handles = startPipelines(activationState.startupEventInfo, triggeringSpan);\n activationState.handles = handles;\n activationState.runShutdown = () => drainAndStop(handles);\n installBeforeExitHook(activationState);\n installSignalHooks(activationState);\n } catch (error) {\n logError(`Apitally activation failed: ${String(error)}`);\n }\n}\n\nexport function isActivated(): boolean {\n return getActivationState().handles !== undefined;\n}\n\nexport function getActivationHandles(): ActivationHandles | undefined {\n return getActivationState().handles;\n}\n\nexport async function flushTelemetry(): Promise<void> {\n try {\n await getActivationState().handles?.worker.runCycle();\n } catch (error) {\n logDebug(`Error flushing telemetry: ${String(error)}`);\n }\n}\n\n// Concurrent calls and lifecycle hooks share one final drain; calls before\n// activation are no-ops.\nexport function shutdown(): Promise<void> {\n const activationState = getActivationState();\n const handles = activationState.handles;\n const runShutdown = activationState.runShutdown;\n if (!handles || !runShutdown) {\n return Promise.resolve();\n }\n if (!activationState.shutdownPromise) {\n removeLifecycleHooks(activationState);\n const signalDrainPromise = activationState.signalDrainPromise;\n activationState.shutdownPromise = (\n signalDrainPromise\n ? signalDrainPromise.then(() => handles.worker.waitForIdle())\n : Promise.resolve()\n ).then(runShutdown);\n }\n return activationState.shutdownPromise;\n}\n\n// Tests replace these factories to isolate spool files and worker timing.\nexport const activationFactories = {\n createSpool: (): Spool => new Spool(),\n createExportWorker: (options: ExportWorkerOptions): ExportWorker => new ExportWorker(options),\n};\nconst defaultFactories = { ...activationFactories };\n\n// Tests reset process-global activation and its side effects between cases.\nexport async function resetActivation(): Promise<void> {\n Object.assign(activationFactories, defaultFactories);\n const holder = globalThis as Record<symbol, ActivationState | undefined>;\n const activationState = holder[ACTIVATION_STATE_KEY];\n delete holder[ACTIVATION_STATE_KEY];\n hasWarnedAboutVersionSkew = false;\n if (!activationState) {\n return;\n }\n removeLifecycleHooks(activationState);\n const handles = activationState.handles;\n if (!handles) {\n return;\n }\n handles.undiciInstrumentation?.disable();\n await handles.worker.stop();\n await handles.spanPipeline.shutdown();\n await handles.loggerProvider.shutdown();\n await handles.spool.clear();\n}\n\nlet hasWarnedAboutVersionSkew = false;\n\nfunction getActivationState(): ActivationState {\n const holder = globalThis as Record<symbol, ActivationState | undefined>;\n const existing = holder[ACTIVATION_STATE_KEY];\n if (existing) {\n if (!hasWarnedAboutVersionSkew && existing.sdkVersion !== getDistroVersion()) {\n hasWarnedAboutVersionSkew = true;\n logWarning(\n `Two copies of the apitally package with different versions (${existing.sdkVersion} and ${getDistroVersion()}) are loaded in this process; version ${existing.sdkVersion} stays active. To resolve this, deduplicate the apitally installation.`,\n );\n }\n return existing;\n }\n const activationState: ActivationState = {\n sdkVersion: getDistroVersion(),\n activationAttempted: false,\n };\n holder[ACTIVATION_STATE_KEY] = activationState;\n return activationState;\n}\n\nfunction shouldSkipActivation(): boolean {\n return (\n Boolean(process.env.JEST_WORKER_ID) ||\n Boolean(process.env.VITEST) ||\n process.env.NODE_ENV === \"test\" ||\n // The emergency kill switch overrides an explicit disabled: false option.\n isApitallyDisabledViaEnv() ||\n getConfig().disabled\n );\n}\n\nfunction startPipelines(\n startupEventInfo: StartupEventInfo | undefined,\n triggeringSpan?: Span,\n): ActivationHandles {\n const config = getConfig();\n let hasUserProvider = isApitallySpanProcessorDeclared();\n const { env, resource } = resolveEnvAndCreateResource(hasUserProvider, triggeringSpan?.resource);\n const instanceId = resource.attributes[\"service.instance.id\"] as string;\n const spool = activationFactories.createSpool();\n const spanExporter = new ApitallySpanExporter({\n redaction: new Redaction(),\n env,\n instanceId,\n spool,\n maskRequestBody: config.maskRequestBody,\n maskResponseBody: config.maskResponseBody,\n });\n // Concrete options prevent OTel environment variables from changing batch\n // behavior. Each processor gets a fresh object because its config is mutated.\n const batchSpanProcessor = new BatchSpanProcessor(spanExporter, {\n scheduledDelayMillis: BATCH_SCHEDULE_DELAY_MILLIS,\n exportTimeoutMillis: BATCH_EXPORT_TIMEOUT_MILLIS,\n maxQueueSize: BATCH_MAX_QUEUE_SIZE,\n maxExportBatchSize:\n config.captureRequestBody || config.captureResponseBody\n ? BATCH_MAX_EXPORT_BATCH_SIZE_WITH_BODY_CAPTURE\n : BATCH_MAX_EXPORT_BATCH_SIZE,\n });\n const spanPipeline = new SpanPipeline(batchSpanProcessor);\n let tracerProvider: NodeTracerProvider | undefined;\n if (!hasUserProvider) {\n tracerProvider = setupTracerProvider(resource, [spanPipeline]);\n if (!tracerProvider) {\n hasUserProvider = true;\n logWarning(\n \"Apitally could not register its OpenTelemetry tracer provider because another provider is already registered. Only metrics and the startup event are sent to Apitally until you add ApitallySpanProcessor (exported by the apitally package) to your tracer provider's spanProcessors constructor option or the NodeSDK spanProcessors option.\",\n );\n }\n }\n setActiveSpanPipeline(spanPipeline);\n // BatchLogRecordProcessor requires its single-options-object form; positional\n // arguments create a broken processor.\n const batchLogProcessor = new BatchLogRecordProcessor({\n exporter: new ApitallyLogRecordExporter(spool),\n scheduledDelayMillis: BATCH_SCHEDULE_DELAY_MILLIS,\n exportTimeoutMillis: BATCH_EXPORT_TIMEOUT_MILLIS,\n maxQueueSize: BATCH_MAX_QUEUE_SIZE,\n maxExportBatchSize: BATCH_MAX_EXPORT_BATCH_SIZE,\n });\n const logRecordProcessor = new ApitallyLogRecordProcessor(batchLogProcessor, spanPipeline);\n const loggerProvider = createLoggerProvider(resource, [logRecordProcessor]);\n const metricsPipeline = new MetricsPipeline(resource, spool);\n spanPipeline.metricsRecorder = (record) => metricsPipeline.recordFromRequest(record);\n const worker = activationFactories.createExportWorker({\n spool,\n otlpEndpoint: config.otlpEndpoint,\n writeToken: config.writeToken,\n env,\n });\n worker.flushCallbacks.push(\n () => metricsPipeline.collectAndExport(),\n () => batchSpanProcessor.forceFlush(),\n () => batchLogProcessor.forceFlush(),\n );\n if (config.captureLogs) {\n installConsoleCapture(loggerProvider);\n installNestLoggerCapture(loggerProvider);\n installWinstonCapture(loggerProvider);\n installPinoCapture(loggerProvider);\n }\n installSentryEventIdRecording();\n let undiciInstrumentation: UndiciInstrumentation | undefined;\n if (!hasUserProvider) {\n undiciInstrumentation = createUndiciInstrumentation(config.otlpEndpoint);\n }\n worker.start();\n if (startupEventInfo) {\n emitStartupEvent(loggerProvider, startupEventInfo);\n }\n return {\n spanPipeline,\n tracerProvider,\n loggerProvider,\n metricsPipeline,\n spool,\n worker,\n undiciInstrumentation,\n };\n}\n\n// ignoreRequestHook prevents telemetry for export POSTs. The request origin can\n// be a string or URL at runtime despite its string type.\nfunction createUndiciInstrumentation(otlpEndpoint: string): UndiciInstrumentation {\n const endpointOrigin = new URL(otlpEndpoint).origin;\n return new UndiciInstrumentation({\n ignoreRequestHook: (request) => {\n try {\n return new URL(String(request.origin)).origin === endpointOrigin;\n } catch {\n return false;\n }\n },\n });\n}\n\nasync function drainAndStop(handles: ActivationHandles): Promise<void> {\n try {\n await handles.spanPipeline.shutdown();\n await handles.loggerProvider.shutdown();\n await handles.worker.finalDrain();\n await handles.worker.stop();\n } catch (error) {\n logWarning(`Error draining telemetry on shutdown: ${String(error)}`);\n }\n}\n\nfunction installSignalHooks(activationState: ActivationState): void {\n if (process.platform === \"win32\" || !isMainThread) {\n return;\n }\n let listeners: SignalListeners;\n listeners = {\n SIGTERM: () => handleTerminationSignal(activationState, listeners, \"SIGTERM\"),\n SIGINT: () => handleTerminationSignal(activationState, listeners, \"SIGINT\"),\n };\n activationState.signalListeners = listeners;\n try {\n process.prependOnceListener(\"SIGTERM\", listeners.SIGTERM);\n process.prependOnceListener(\"SIGINT\", listeners.SIGINT);\n } catch (error) {\n removeSignalHooks(activationState, listeners);\n logWarning(`Unable to install Apitally signal handlers: ${String(error)}`);\n }\n}\n\nfunction handleTerminationSignal(\n activationState: ActivationState,\n listeners: SignalListeners,\n signal: TerminationSignal,\n): void {\n const hasApplicationListener = process\n .listeners(signal)\n .some((listener) => listener !== listeners[signal]);\n removeSignalHooks(activationState, listeners);\n const drainPromise = flushAfterTerminationSignal(activationState, signal, hasApplicationListener);\n activationState.signalDrainPromise = drainPromise;\n void drainPromise.catch((error: unknown) => {\n logDebug(`Error flushing telemetry on ${signal}: ${String(error)}`);\n });\n}\n\nasync function flushAfterTerminationSignal(\n activationState: ActivationState,\n signal: TerminationSignal,\n hasApplicationListener: boolean,\n): Promise<void> {\n const handles = activationState.handles;\n if (!handles) {\n return;\n }\n try {\n if (activationState.shutdownPromise) {\n await waitForSignalDeadline(activationState.shutdownPromise);\n } else {\n await handles.worker.finalDrain(SIGNAL_FLUSH_TIMEOUT_MILLIS);\n }\n } catch (error) {\n logDebug(`Error flushing telemetry on ${signal}: ${String(error)}`);\n }\n if (hasApplicationListener || process.listeners(signal).length > 0) {\n return;\n }\n const exitCode = signal === \"SIGTERM\" ? 143 : 130;\n if (process.platform === \"linux\" && process.pid === 1) {\n process.exit(exitCode);\n }\n try {\n process.kill(process.pid, signal);\n } catch {\n process.exit(exitCode);\n }\n}\n\nasync function waitForSignalDeadline(promise: Promise<void>): Promise<void> {\n let deadlineTimer: NodeJS.Timeout | undefined;\n const deadlineReached = new Promise<void>((resolve) => {\n deadlineTimer = setTimeout(resolve, SIGNAL_FLUSH_TIMEOUT_MILLIS);\n });\n try {\n await Promise.race([promise, deadlineReached]);\n } finally {\n if (deadlineTimer) {\n clearTimeout(deadlineTimer);\n }\n }\n}\n\nfunction removeSignalHooks(\n activationState: ActivationState,\n listeners = activationState.signalListeners,\n): void {\n if (!listeners) {\n return;\n }\n process.removeListener(\"SIGTERM\", listeners.SIGTERM);\n process.removeListener(\"SIGINT\", listeners.SIGINT);\n if (activationState.signalListeners === listeners) {\n activationState.signalListeners = undefined;\n }\n}\n\nfunction removeLifecycleHooks(activationState: ActivationState): void {\n removeSignalHooks(activationState);\n if (activationState.beforeExitListener) {\n process.removeListener(\"beforeExit\", activationState.beforeExitListener);\n activationState.beforeExitListener = undefined;\n }\n}\n\nfunction installBeforeExitHook(activationState: ActivationState): void {\n const listener = () => {\n // The drain keeps the event loop alive until shutdown settles.\n void shutdown().catch((error: unknown) => {\n logDebug(`Error draining telemetry on shutdown: ${String(error)}`);\n });\n };\n activationState.beforeExitListener = listener;\n process.on(\"beforeExit\", listener);\n}\n"],"mappings":"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","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,56 +21,114 @@ __export(configure_exports, {
22
21
  configure: () => configure
23
22
  });
24
23
  module.exports = __toCommonJS(configure_exports);
25
- const import_meta = {};
24
+ var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
25
+ var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
26
26
  var import_node_url = require("node:url");
27
- var import_paramValidation = require('../common/paramValidation.cjs');
28
- const STUBS_ROOT = (0, import_node_url.fileURLToPath)(new URL("./stubs/", import_meta.url));
27
+ var import_config = require('../config.cjs');
28
+ const STUBS_ROOT = (0, import_node_url.fileURLToPath)(new URL("./stubs/", importMetaUrl));
29
+ const ENV_FORMAT = /^[a-z0-9-]{1,32}$/;
29
30
  async function configure(command) {
30
- const clientId = await command.prompt.ask("Apitally client ID", {
31
- result(value) {
32
- return value.trim().toLowerCase();
33
- },
34
- validate(value) {
35
- return (0, import_paramValidation.isValidClientId)(value);
36
- }
31
+ const writeToken = await command.prompt.ask("Apitally write token", {
32
+ result: (value) => value.trim(),
33
+ validate: (value) => (0, import_config.isValidWriteToken)(value.trim())
37
34
  });
38
- const env = await command.prompt.ask("Environment name", {
39
- default: "dev",
40
- result(value) {
41
- return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-");
42
- },
43
- validate(value) {
44
- return (0, import_paramValidation.isValidEnv)(value);
45
- }
35
+ const env = await command.prompt.ask("Environment", {
36
+ default: import_config.DEFAULT_ENV,
37
+ result: normalizeEnv,
38
+ validate: (value) => ENV_FORMAT.test(normalizeEnv(value))
39
+ });
40
+ const captureRequestHeaders = await command.prompt.confirm("Capture request headers?", {
41
+ default: false
46
42
  });
47
- const enableRequestLogging = await command.prompt.confirm("Enable request logging?", {
43
+ const captureRequestBody = await command.prompt.confirm("Capture request bodies?", {
44
+ default: false
45
+ });
46
+ const captureResponseBody = await command.prompt.confirm("Capture response bodies?", {
48
47
  default: false
49
48
  });
50
49
  const codemods = await command.createCodemods();
51
50
  await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {
52
- enableRequestLogging
51
+ captureRequestHeaders,
52
+ captureRequestBody,
53
+ captureResponseBody
53
54
  });
54
- await codemods.registerMiddleware("router", [
55
- {
56
- path: "apitally/adonisjs/middleware"
57
- }
58
- ]);
59
55
  await codemods.updateRcFile((rcFile) => {
60
56
  rcFile.addProvider("apitally/adonisjs/provider");
61
57
  });
58
+ await codemods.registerMiddleware("server", [{ path: "apitally/adonisjs/middleware" }]);
62
59
  await codemods.defineEnvVariables({
63
- APITALLY_CLIENT_ID: clientId,
60
+ APITALLY_WRITE_TOKEN: writeToken,
64
61
  APITALLY_ENV: env
65
62
  });
66
63
  await codemods.defineEnvValidations({
67
- leadingComment: "Variables for configuring the apitally package",
68
64
  variables: {
69
- APITALLY_CLIENT_ID: "Env.schema.string()",
70
- APITALLY_ENV: "Env.schema.string.optional()"
65
+ APITALLY_WRITE_TOKEN: "Env.schema.string()",
66
+ APITALLY_ENV: "Env.schema.string()"
71
67
  }
72
68
  });
69
+ await updateExceptionHandler(codemods, command);
70
+ }
71
+ function normalizeEnv(value) {
72
+ return value.trim().toLowerCase().replace(/[ _]/g, "-");
73
+ }
74
+ async function updateExceptionHandler(codemods, command) {
75
+ const project = await codemods.getTsMorphProject();
76
+ const handlerPath = command.app.makePath("app/exceptions/handler.ts");
77
+ const sourceFile = project?.getSourceFile(handlerPath) ?? project?.addSourceFileAtPathIfExists(handlerPath);
78
+ const handlerClass = sourceFile?.getClasses().find((candidate) => candidate.isDefaultExport());
79
+ const method = handlerClass?.getMethod("handle");
80
+ if (method) {
81
+ const alreadyConfigured = method.getDescendants().some((node) => {
82
+ if (node.getKindName() !== "CallExpression") {
83
+ return false;
84
+ }
85
+ return node.getExpression().getText() === "captureException";
86
+ });
87
+ if (alreadyConfigured) {
88
+ return;
89
+ }
90
+ const parameters = method.getParameters();
91
+ const statements = method.getStatements();
92
+ const statement = statements[0];
93
+ if (method.isAsync() && parameters.length >= 2 && statements.length === 1 && statement?.getKindName() === "ReturnStatement") {
94
+ const returnExpression = statement.getExpression();
95
+ const errorName = parameters[0].getName();
96
+ const contextName = parameters[1].getName();
97
+ if (returnExpression?.getKindName() === "CallExpression" && returnExpression.getExpression().getText() === "super.handle" && returnExpression.getArguments().map((argument) => argument.getText()).join(",") === `${errorName},${contextName}`) {
98
+ const importDeclaration = sourceFile?.getImportDeclaration(
99
+ (candidate) => candidate.getModuleSpecifierValue() === "apitally"
100
+ );
101
+ if (importDeclaration) {
102
+ if (!importDeclaration.getNamedImports().some(
103
+ (namedImport) => namedImport.getName() === "captureException"
104
+ )) {
105
+ importDeclaration.addNamedImport("captureException");
106
+ }
107
+ } else {
108
+ sourceFile?.addImportDeclaration({
109
+ moduleSpecifier: "apitally",
110
+ namedImports: ["captureException"]
111
+ });
112
+ }
113
+ method.setBodyText(
114
+ `const result = await super.handle(${errorName}, ${contextName})
115
+ if (${contextName}.response.getStatus() >= 500) {
116
+ captureException(${errorName})
117
+ }
118
+ return result`
119
+ );
120
+ await sourceFile?.save();
121
+ return;
122
+ }
123
+ }
124
+ }
125
+ command.logger.warning(
126
+ 'Could not update "app/exceptions/handler.ts" automatically. Add the following import and method:'
127
+ );
128
+ command.logger.info(
129
+ 'import { captureException } from "apitally"\n\nasync handle(error: unknown, ctx: HttpContext) {\n const result = await super.handle(error, ctx)\n if (ctx.response.getStatus() >= 500) {\n captureException(error)\n }\n return result\n}'
130
+ );
73
131
  }
74
- __name(configure, "configure");
75
132
  // Annotate the CommonJS export names for ESM import in node:
76
133
  0 && (module.exports = {
77
134
  configure
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/configure.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { isValidClientId, isValidEnv } from \"../common/paramValidation.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const clientId = await command.prompt.ask(\"Apitally client ID\", {\n result(value) {\n return value.trim().toLowerCase();\n },\n validate(value) {\n return isValidClientId(value);\n },\n });\n const env = await command.prompt.ask(\"Environment name\", {\n default: \"dev\",\n result(value) {\n return value\n .trim()\n .toLowerCase()\n .replaceAll(\"_\", \"-\")\n .replaceAll(\" \", \"-\");\n },\n validate(value) {\n return isValidEnv(value);\n },\n });\n const enableRequestLogging = await command.prompt.confirm(\n \"Enable request logging?\",\n {\n default: false,\n },\n );\n\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {\n enableRequestLogging,\n });\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: clientId,\n APITALLY_ENV: env,\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAKA,sBAA8B;AAE9B,6BAA4C;AAE5C,MAAMA,iBAAaC,+BAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,OAAOC,IAAI,sBAAsB;IAC9DC,OAAOC,OAAK;AACV,aAAOA,MAAMC,KAAI,EAAGC,YAAW;IACjC;IACAC,SAASH,OAAK;AACZ,iBAAOI,wCAAgBJ,KAAAA;IACzB;EACF,CAAA;AACA,QAAMK,MAAM,MAAMV,QAAQE,OAAOC,IAAI,oBAAoB;IACvDQ,SAAS;IACTP,OAAOC,OAAK;AACV,aAAOA,MACJC,KAAI,EACJC,YAAW,EACXK,WAAW,KAAK,GAAA,EAChBA,WAAW,KAAK,GAAA;IACrB;IACAJ,SAASH,OAAK;AACZ,iBAAOQ,mCAAWR,KAAAA;IACpB;EACF,CAAA;AACA,QAAMS,uBAAuB,MAAMd,QAAQE,OAAOa,QAChD,2BACA;IACEJ,SAAS;EACX,CAAA;AAGF,QAAMK,WAAW,MAAMhB,QAAQiB,eAAc;AAE7C,QAAMD,SAASE,cAAcvB,YAAY,wBAAwB;IAC/DmB;EACF,CAAA;AAEA,QAAME,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoBxB;IACpByB,cAAchB;EAChB,CAAA;AAEA,QAAMM,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AAzDsB3B;","names":["STUBS_ROOT","fileURLToPath","URL","url","configure","command","clientId","prompt","ask","result","value","trim","toLowerCase","validate","isValidClientId","env","default","replaceAll","isValidEnv","enableRequestLogging","confirm","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables"]}
1
+ {"version":3,"sources":["../../src/adonisjs/configure.ts","../../node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["import { fileURLToPath } from \"node:url\";\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\n\nimport { DEFAULT_ENV, isValidWriteToken } from \"../config.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\nconst ENV_FORMAT = /^[a-z0-9-]{1,32}$/;\n\nexport async function configure(command: Configure): Promise<void> {\n const writeToken = await command.prompt.ask(\"Apitally write token\", {\n result: (value) => value.trim(),\n validate: (value) => isValidWriteToken(value.trim()),\n });\n const env = await command.prompt.ask(\"Environment\", {\n default: DEFAULT_ENV,\n result: normalizeEnv,\n validate: (value) => ENV_FORMAT.test(normalizeEnv(value)),\n });\n const captureRequestHeaders = await command.prompt.confirm(\"Capture request headers?\", {\n default: false,\n });\n const captureRequestBody = await command.prompt.confirm(\"Capture request bodies?\", {\n default: false,\n });\n const captureResponseBody = await command.prompt.confirm(\"Capture response bodies?\", {\n default: false,\n });\n\n const codemods = await command.createCodemods();\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {\n captureRequestHeaders,\n captureRequestBody,\n captureResponseBody,\n });\n await codemods.updateRcFile((rcFile) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n await codemods.registerMiddleware(\"server\", [{ path: \"apitally/adonisjs/middleware\" }]);\n await codemods.defineEnvVariables({\n APITALLY_WRITE_TOKEN: writeToken,\n APITALLY_ENV: env,\n });\n await codemods.defineEnvValidations({\n variables: {\n APITALLY_WRITE_TOKEN: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string()\",\n },\n });\n await updateExceptionHandler(codemods, command);\n}\n\nfunction normalizeEnv(value: string): string {\n return value.trim().toLowerCase().replace(/[ _]/g, \"-\");\n}\n\nasync function updateExceptionHandler(\n codemods: Awaited<ReturnType<Configure[\"createCodemods\"]>>,\n command: Configure,\n): Promise<void> {\n const project = await codemods.getTsMorphProject();\n const handlerPath = command.app.makePath(\"app/exceptions/handler.ts\");\n const sourceFile =\n project?.getSourceFile(handlerPath) ?? project?.addSourceFileAtPathIfExists(handlerPath);\n const handlerClass = sourceFile\n ?.getClasses()\n .find((candidate: { isDefaultExport: () => boolean }) => candidate.isDefaultExport());\n const method = handlerClass?.getMethod(\"handle\");\n if (method) {\n const alreadyConfigured = method\n .getDescendants()\n .some((node: { getKindName: () => string }) => {\n if (node.getKindName() !== \"CallExpression\") {\n return false;\n }\n return (\n (node as typeof node & { getExpression: () => { getText: () => string } })\n .getExpression()\n .getText() === \"captureException\"\n );\n });\n if (alreadyConfigured) {\n return;\n }\n\n const parameters = method.getParameters();\n const statements = method.getStatements();\n const statement = statements[0];\n if (\n method.isAsync() &&\n parameters.length >= 2 &&\n statements.length === 1 &&\n statement?.getKindName() === \"ReturnStatement\"\n ) {\n const returnExpression = (\n statement as typeof statement & {\n getExpression: () =>\n | {\n getArguments: () => Array<{ getText: () => string }>;\n getExpression: () => { getText: () => string };\n getKindName: () => string;\n }\n | undefined;\n }\n ).getExpression();\n const errorName = parameters[0].getName();\n const contextName = parameters[1].getName();\n if (\n returnExpression?.getKindName() === \"CallExpression\" &&\n returnExpression.getExpression().getText() === \"super.handle\" &&\n returnExpression\n .getArguments()\n .map((argument: { getText: () => string }) => argument.getText())\n .join(\",\") === `${errorName},${contextName}`\n ) {\n const importDeclaration = sourceFile?.getImportDeclaration(\n (candidate: { getModuleSpecifierValue: () => string }) =>\n candidate.getModuleSpecifierValue() === \"apitally\",\n );\n if (importDeclaration) {\n if (\n !importDeclaration\n .getNamedImports()\n .some(\n (namedImport: { getName: () => string }) =>\n namedImport.getName() === \"captureException\",\n )\n ) {\n importDeclaration.addNamedImport(\"captureException\");\n }\n } else {\n sourceFile?.addImportDeclaration({\n moduleSpecifier: \"apitally\",\n namedImports: [\"captureException\"],\n });\n }\n method.setBodyText(\n `const result = await super.handle(${errorName}, ${contextName})\\n` +\n `if (${contextName}.response.getStatus() >= 500) {\\n` +\n ` captureException(${errorName})\\n` +\n `}\\n` +\n `return result`,\n );\n await sourceFile?.save();\n return;\n }\n }\n }\n\n command.logger.warning(\n 'Could not update \"app/exceptions/handler.ts\" automatically. Add the following import and method:',\n );\n command.logger.info(\n 'import { captureException } from \"apitally\"\\n\\n' +\n \"async handle(error: unknown, ctx: HttpContext) {\\n\" +\n \" const result = await super.handle(error, ctx)\\n\" +\n \" if (ctx.response.getStatus() >= 500) {\\n\" +\n \" captureException(error)\\n\" +\n \" }\\n\" +\n \" return result\\n\" +\n \"}\",\n );\n}\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":"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","names":[]}
@@ -1,9 +1,5 @@
1
1
  import Configure from '@adonisjs/core/commands/configure';
2
2
 
3
- /**
4
- * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.
5
- */
6
-
7
3
  declare function configure(command: Configure): Promise<void>;
8
4
 
9
5
  export { configure };
@@ -1,9 +1,5 @@
1
1
  import Configure from '@adonisjs/core/commands/configure';
2
2
 
3
- /**
4
- * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.
5
- */
6
-
7
3
  declare function configure(command: Configure): Promise<void>;
8
4
 
9
5
  export { configure };