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,189 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- const regExpToParseExpressPathRegExp = /^\/\^\\?\/?(?:(:?[\w\\.-]*(?:\\\/:?[\w\\.-]*)*)|(\(\?:\\?\/?\([^)]+\)\)))\\\/.*/;
4
- const regExpToReplaceExpressPathRegExpParams = /\(\?:\\?\/?\([^)]+\)\)/;
5
- const regExpExpressParamRegExp = /\(\?:\\?\\?\/?\([^)]+\)\)/g;
6
- const regExpExpressPathParamRegExp = /(:[^)]+)\([^)]+\)/g;
7
- const rootPathRegExpValue = "/^\\/?(?=\\/|$)/i";
8
- const stackItemValidNames = [
9
- "router",
10
- "bound dispatch",
11
- "mounted_app"
12
- ];
13
- const stripExpressPathParamRegex = /* @__PURE__ */ __name(function(path) {
14
- return path.replace(regExpExpressPathParamRegExp, "$1");
15
- }, "stripExpressPathParamRegex");
16
- const formatRegExpRoutePath = /* @__PURE__ */ __name(function(re) {
17
- return `RegExp(${re})`;
18
- }, "formatRegExpRoutePath");
19
- const getRouterInfo = /* @__PURE__ */ __name(function(app) {
20
- var _a, _b;
21
- if (app.stack) {
22
- return {
23
- stack: app.stack,
24
- version: "v4"
25
- };
26
- } else if ((_a = app._router) == null ? void 0 : _a.stack) {
27
- return {
28
- stack: app._router.stack,
29
- version: "v4"
30
- };
31
- } else if ((_b = app.router) == null ? void 0 : _b.stack) {
32
- return {
33
- stack: app.router.stack,
34
- version: "v5"
35
- };
36
- }
37
- return {
38
- stack: null,
39
- version: "v4"
40
- };
41
- }, "getRouterInfo");
42
- const getRouteMethods = /* @__PURE__ */ __name(function(route) {
43
- let methods = Object.keys(route.methods);
44
- methods = methods.filter((method) => method !== "_all");
45
- methods = methods.map((method) => method.toUpperCase());
46
- return methods;
47
- }, "getRouteMethods");
48
- const getRouteMiddlewares = /* @__PURE__ */ __name(function(route) {
49
- return route.stack.map((item) => {
50
- return item.handle.name || "anonymous";
51
- });
52
- }, "getRouteMiddlewares");
53
- const hasParams = /* @__PURE__ */ __name(function(expressPathRegExp) {
54
- return regExpExpressParamRegExp.test(expressPathRegExp);
55
- }, "hasParams");
56
- const parseExpressRoute = /* @__PURE__ */ __name(function(route, basePath) {
57
- const paths = Array.isArray(route.path) ? route.path : [
58
- route.path
59
- ];
60
- const endpoints = paths.flatMap((path) => {
61
- let pathStr;
62
- if (typeof path === "string") {
63
- pathStr = stripExpressPathParamRegex(path);
64
- } else if (path instanceof RegExp) {
65
- pathStr = formatRegExpRoutePath(path);
66
- } else {
67
- return [];
68
- }
69
- const completePath = basePath && pathStr === "/" ? basePath : `${basePath}${pathStr}`;
70
- return [
71
- {
72
- path: completePath,
73
- methods: getRouteMethods(route),
74
- middlewares: getRouteMiddlewares(route)
75
- }
76
- ];
77
- });
78
- return endpoints;
79
- }, "parseExpressRoute");
80
- const parseExpressPathRegExp = /* @__PURE__ */ __name(function(expressPathRegExp, keys) {
81
- let parsedRegExp = expressPathRegExp.toString();
82
- let expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
83
- let paramIndex = 0;
84
- while (hasParams(parsedRegExp)) {
85
- const paramName = keys[paramIndex].name;
86
- const paramId = `:${paramName}`;
87
- parsedRegExp = parsedRegExp.replace(regExpToReplaceExpressPathRegExpParams, (str) => {
88
- if (str.startsWith("(?:\\/")) {
89
- return `\\/${paramId}`;
90
- }
91
- return paramId;
92
- });
93
- paramIndex++;
94
- }
95
- if (parsedRegExp !== expressPathRegExp.toString()) {
96
- expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);
97
- }
98
- return expressPathRegExpExec[1].replace(/\\\//g, "/");
99
- }, "parseExpressPathRegExp");
100
- const parseExpressPath = /* @__PURE__ */ __name(function(expressPath, params) {
101
- let result = expressPath;
102
- for (const [paramName, paramValue] of Object.entries(params)) {
103
- result = result.replace(paramValue, `:${paramName}`);
104
- }
105
- return result;
106
- }, "parseExpressPath");
107
- const parseEndpoints = /* @__PURE__ */ __name(function(app, basePath, endpoints) {
108
- const routerInfo = getRouterInfo(app);
109
- const stack = routerInfo.stack;
110
- const version = routerInfo.version;
111
- endpoints = endpoints || [];
112
- basePath = basePath || "";
113
- if (!stack) {
114
- if (endpoints.length) {
115
- endpoints = addEndpoints(endpoints, [
116
- {
117
- path: basePath,
118
- methods: [],
119
- middlewares: []
120
- }
121
- ]);
122
- }
123
- } else {
124
- endpoints = parseStack(stack, basePath, endpoints, version);
125
- }
126
- return endpoints;
127
- }, "parseEndpoints");
128
- const addEndpoints = /* @__PURE__ */ __name(function(currentEndpoints, endpointsToAdd) {
129
- endpointsToAdd.forEach((newEndpoint) => {
130
- const existingEndpoint = currentEndpoints.find((endpoint) => endpoint.path === newEndpoint.path);
131
- if (existingEndpoint !== void 0) {
132
- const newMethods = newEndpoint.methods.filter((method) => !existingEndpoint.methods.includes(method));
133
- existingEndpoint.methods = existingEndpoint.methods.concat(newMethods);
134
- } else {
135
- currentEndpoints.push(newEndpoint);
136
- }
137
- });
138
- return currentEndpoints;
139
- }, "addEndpoints");
140
- const parseStack = /* @__PURE__ */ __name(function(stack, basePath, endpoints, version) {
141
- stack.forEach((stackItem) => {
142
- if (stackItem.route) {
143
- const newEndpoints = parseExpressRoute(stackItem.route, basePath);
144
- endpoints = addEndpoints(endpoints, newEndpoints);
145
- } else if (stackItemValidNames.includes(stackItem.name)) {
146
- let newBasePath = basePath;
147
- if (version === "v4") {
148
- const isExpressPathRegExp = regExpToParseExpressPathRegExp.test(stackItem.regexp);
149
- if (isExpressPathRegExp) {
150
- const parsedPath = parseExpressPathRegExp(stackItem.regexp, stackItem.keys);
151
- newBasePath += `/${parsedPath}`;
152
- } else if (!stackItem.path && stackItem.regexp && stackItem.regexp.toString() !== rootPathRegExpValue) {
153
- newBasePath += `/${formatRegExpRoutePath(stackItem.regexp)}`;
154
- }
155
- } else if (version === "v5") {
156
- if (!stackItem.path) {
157
- return;
158
- } else if (stackItem.path !== "/") {
159
- newBasePath += stackItem.path.startsWith("/") ? stackItem.path : `/${stackItem.path}`;
160
- }
161
- }
162
- endpoints = parseEndpoints(stackItem.handle, newBasePath, endpoints);
163
- }
164
- });
165
- return endpoints;
166
- }, "parseStack");
167
- const getEndpoints = /* @__PURE__ */ __name(function(app, basePath) {
168
- const endpoints = parseEndpoints(app);
169
- const standardHttpMethods = [
170
- "GET",
171
- "POST",
172
- "PUT",
173
- "DELETE",
174
- "PATCH"
175
- ];
176
- return endpoints.flatMap((route) => route.methods.filter((method) => standardHttpMethods.includes(method.toUpperCase())).map((method) => ({
177
- method,
178
- path: (basePath + route.path).replace(/\/\//g, "/")
179
- })));
180
- }, "getEndpoints");
181
- export {
182
- formatRegExpRoutePath,
183
- getEndpoints,
184
- getRouterInfo,
185
- parseExpressPath,
186
- parseExpressPathRegExp,
187
- stripExpressPathParamRegex
188
- };
189
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/express/utils.js"],"sourcesContent":["// Adapted from https://github.com/AlbertoFdzM/express-list-endpoints/blob/305535d43008b46f34e18b01947762e039af6d2d/src/index.js\n// and also incorporated https://github.com/AlbertoFdzM/express-list-endpoints/pull/96\n// and https://github.com/labithiotis/express-list-routes/blob/5432c83a67c2788c56a1cdfc067ec809961c0c05/index.js\n\n/**\n * @typedef {Object} Route\n * @property {Object} methods\n * @property {string | string[]} path\n * @property {any[]} stack\n *\n * @typedef {Object} Endpoint\n * @property {string} path Path name\n * @property {string[]} methods Methods handled\n * @property {string[]} middlewares Mounted middlewares\n */\n\nconst regExpToParseExpressPathRegExp =\n /^\\/\\^\\\\?\\/?(?:(:?[\\w\\\\.-]*(?:\\\\\\/:?[\\w\\\\.-]*)*)|(\\(\\?:\\\\?\\/?\\([^)]+\\)\\)))\\\\\\/.*/;\nconst regExpToReplaceExpressPathRegExpParams = /\\(\\?:\\\\?\\/?\\([^)]+\\)\\)/;\nconst regExpExpressParamRegExp = /\\(\\?:\\\\?\\\\?\\/?\\([^)]+\\)\\)/g;\nconst regExpExpressPathParamRegExp = /(:[^)]+)\\([^)]+\\)/g;\nconst rootPathRegExpValue = \"/^\\\\/?(?=\\\\/|$)/i\";\nconst stackItemValidNames = [\"router\", \"bound dispatch\", \"mounted_app\"];\n\n/**\n * Strips inline RegExp validators from Express path params, e.g.\n * \"/users/:id(\\\\d+)\" → \"/users/:id\".\n * @param {string} path\n * @returns {string}\n */\nexport const stripExpressPathParamRegex = function (path) {\n return path.replace(regExpExpressPathParamRegExp, \"$1\");\n};\n\n/**\n * Formats a RegExp route as a stable string identifier, e.g.\n * /^\\/foo$/ → \"RegExp(/^\\\\/foo$/)\".\n * @param {RegExp} re\n * @returns {string}\n */\nexport const formatRegExpRoutePath = function (re) {\n return `RegExp(${re})`;\n};\n\n/**\n * Detects Express version and returns router information\n * @param {import('express').Express | import('express').Router | any} app\n * @returns {{stack: any[] | null, version: 'v4' | 'v5'}}\n */\nexport const getRouterInfo = function (app) {\n if (app.stack) {\n // Express 4 router\n return { stack: app.stack, version: \"v4\" };\n } else if (app._router?.stack) {\n // Express 4\n return { stack: app._router.stack, version: \"v4\" };\n } else if (app.router?.stack) {\n // Express 5\n return { stack: app.router.stack, version: \"v5\" };\n }\n return { stack: null, version: \"v4\" };\n};\n\n/**\n * Returns all the verbs detected for the passed route\n * @param {Route} route\n */\nconst getRouteMethods = function (route) {\n let methods = Object.keys(route.methods);\n\n methods = methods.filter((method) => method !== \"_all\");\n methods = methods.map((method) => method.toUpperCase());\n\n return methods;\n};\n\n/**\n * Returns the names (or anonymous) of all the middlewares attached to the\n * passed route\n * @param {Route} route\n * @returns {string[]}\n */\nconst getRouteMiddlewares = function (route) {\n return route.stack.map((item) => {\n return item.handle.name || \"anonymous\";\n });\n};\n\n/**\n * Returns true if found regexp related with express params\n * @param {string} expressPathRegExp\n * @returns {boolean}\n */\nconst hasParams = function (expressPathRegExp) {\n return regExpExpressParamRegExp.test(expressPathRegExp);\n};\n\n/**\n * @param {Route} route Express route object to be parsed\n * @param {string} basePath The basePath the route is on\n * @return {Endpoint[]} Endpoints info\n */\nconst parseExpressRoute = function (route, basePath) {\n // route.path can be a string, a RegExp, or an array of either\n const paths = Array.isArray(route.path) ? route.path : [route.path];\n\n /** @type {Endpoint[]} */\n const endpoints = paths.flatMap((path) => {\n let pathStr;\n if (typeof path === \"string\") {\n pathStr = stripExpressPathParamRegex(path);\n } else if (path instanceof RegExp) {\n pathStr = formatRegExpRoutePath(path);\n } else {\n return [];\n }\n const completePath =\n basePath && pathStr === \"/\" ? basePath : `${basePath}${pathStr}`;\n return [\n {\n path: completePath,\n methods: getRouteMethods(route),\n middlewares: getRouteMiddlewares(route),\n },\n ];\n });\n\n return endpoints;\n};\n\n/**\n * @param {RegExp} expressPathRegExp\n * @param {any[]} keys\n * @returns {string}\n */\nexport const parseExpressPathRegExp = function (expressPathRegExp, keys) {\n let parsedRegExp = expressPathRegExp.toString();\n let expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);\n let paramIndex = 0;\n\n while (hasParams(parsedRegExp)) {\n const paramName = keys[paramIndex].name;\n const paramId = `:${paramName}`;\n\n parsedRegExp = parsedRegExp.replace(\n regExpToReplaceExpressPathRegExpParams,\n (str) => {\n // Express >= 4.20.0 uses a different RegExp for parameters: it\n // captures the slash as part of the parameter. We need to check\n // for this case and add the slash to the value that will replace\n // the parameter in the path.\n if (str.startsWith(\"(?:\\\\/\")) {\n return `\\\\/${paramId}`;\n }\n\n return paramId;\n },\n );\n\n paramIndex++;\n }\n\n if (parsedRegExp !== expressPathRegExp.toString()) {\n expressPathRegExpExec = regExpToParseExpressPathRegExp.exec(parsedRegExp);\n }\n\n return expressPathRegExpExec[1].replace(/\\\\\\//g, \"/\");\n};\n\n/**\n * @param {string} expressPath\n * @param {Object.<string, string>} params\n * @returns {string}\n */\nexport const parseExpressPath = function (expressPath, params) {\n let result = expressPath;\n for (const [paramName, paramValue] of Object.entries(params)) {\n result = result.replace(paramValue, `:${paramName}`);\n }\n return result;\n};\n\n/**\n * @param {import('express').Express | import('express').Router | any} app\n * @param {string} [basePath]\n * @param {Endpoint[]} [endpoints]\n * @returns {Endpoint[]}\n */\nconst parseEndpoints = function (app, basePath, endpoints) {\n const routerInfo = getRouterInfo(app);\n const stack = routerInfo.stack;\n const version = routerInfo.version;\n\n endpoints = endpoints || [];\n basePath = basePath || \"\";\n\n if (!stack) {\n if (endpoints.length) {\n endpoints = addEndpoints(endpoints, [\n {\n path: basePath,\n methods: [],\n middlewares: [],\n },\n ]);\n }\n } else {\n endpoints = parseStack(stack, basePath, endpoints, version);\n }\n\n return endpoints;\n};\n\n/**\n * Ensures the path of the new endpoints isn't yet in the array.\n * If the path is already in the array merges the endpoints with the existing\n * one, if not, it adds them to the array.\n *\n * @param {Endpoint[]} currentEndpoints Array of current endpoints\n * @param {Endpoint[]} endpointsToAdd New endpoints to be added to the array\n * @returns {Endpoint[]} Updated endpoints array\n */\nconst addEndpoints = function (currentEndpoints, endpointsToAdd) {\n endpointsToAdd.forEach((newEndpoint) => {\n const existingEndpoint = currentEndpoints.find(\n (endpoint) => endpoint.path === newEndpoint.path,\n );\n\n if (existingEndpoint !== undefined) {\n const newMethods = newEndpoint.methods.filter(\n (method) => !existingEndpoint.methods.includes(method),\n );\n\n existingEndpoint.methods = existingEndpoint.methods.concat(newMethods);\n } else {\n currentEndpoints.push(newEndpoint);\n }\n });\n\n return currentEndpoints;\n};\n\n/**\n * @param {any[]} stack\n * @param {string} basePath\n * @param {Endpoint[]} endpoints\n * @param {'v4' | 'v5'} [version]\n * @returns {Endpoint[]}\n */\nconst parseStack = function (stack, basePath, endpoints, version) {\n stack.forEach((stackItem) => {\n if (stackItem.route) {\n const newEndpoints = parseExpressRoute(stackItem.route, basePath);\n\n endpoints = addEndpoints(endpoints, newEndpoints);\n } else if (stackItemValidNames.includes(stackItem.name)) {\n let newBasePath = basePath;\n\n if (version === \"v4\") {\n const isExpressPathRegExp = regExpToParseExpressPathRegExp.test(\n stackItem.regexp,\n );\n if (isExpressPathRegExp) {\n const parsedPath = parseExpressPathRegExp(\n stackItem.regexp,\n stackItem.keys,\n );\n newBasePath += `/${parsedPath}`;\n } else if (\n !stackItem.path &&\n stackItem.regexp &&\n stackItem.regexp.toString() !== rootPathRegExpValue\n ) {\n newBasePath += `/${formatRegExpRoutePath(stackItem.regexp)}`;\n }\n } else if (version === \"v5\") {\n if (!stackItem.path) {\n return;\n } else if (stackItem.path !== \"/\") {\n newBasePath += stackItem.path.startsWith(\"/\")\n ? stackItem.path\n : `/${stackItem.path}`;\n }\n }\n\n endpoints = parseEndpoints(stackItem.handle, newBasePath, endpoints);\n }\n });\n\n return endpoints;\n};\n\nexport const getEndpoints = function (app, basePath) {\n const endpoints = parseEndpoints(app);\n const standardHttpMethods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\"];\n return endpoints.flatMap((route) =>\n route.methods\n .filter((method) => standardHttpMethods.includes(method.toUpperCase()))\n .map((method) => ({\n method,\n path: (basePath + route.path).replace(/\\/\\//g, \"/\"),\n })),\n );\n};\n"],"mappings":"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","names":["regExpToParseExpressPathRegExp","regExpToReplaceExpressPathRegExpParams","regExpExpressParamRegExp","regExpExpressPathParamRegExp","rootPathRegExpValue","stackItemValidNames","stripExpressPathParamRegex","path","replace","formatRegExpRoutePath","re","getRouterInfo","app","stack","version","_router","router","getRouteMethods","route","methods","Object","keys","filter","method","map","toUpperCase","getRouteMiddlewares","item","handle","name","hasParams","expressPathRegExp","test","parseExpressRoute","basePath","paths","Array","isArray","endpoints","flatMap","pathStr","RegExp","completePath","middlewares","parseExpressPathRegExp","parsedRegExp","toString","expressPathRegExpExec","exec","paramIndex","paramName","paramId","str","startsWith","parseExpressPath","expressPath","params","result","paramValue","entries","parseEndpoints","routerInfo","length","addEndpoints","parseStack","currentEndpoints","endpointsToAdd","forEach","newEndpoint","existingEndpoint","find","endpoint","undefined","newMethods","includes","concat","push","stackItem","newEndpoints","newBasePath","isExpressPathRegExp","regexp","parsedPath","getEndpoints","standardHttpMethods"]}
@@ -1,316 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
- var plugin_exports = {};
31
- __export(plugin_exports, {
32
- apitallyPlugin: () => apitallyPlugin,
33
- default: () => plugin_default,
34
- setConsumer: () => setConsumer
35
- });
36
- module.exports = __toCommonJS(plugin_exports);
37
- var import_fastify_plugin = __toESM(require("fastify-plugin"), 1);
38
- var import_node_async_hooks = require("node:async_hooks");
39
- var import_client = require('../common/client.cjs');
40
- var import_consumerRegistry = require('../common/consumerRegistry.cjs');
41
- var import_headers = require('../common/headers.cjs');
42
- var import_packageVersions = require('../common/packageVersions.cjs');
43
- var import_requestLogger = require('../common/requestLogger.cjs');
44
- var import_loggers = require('../loggers/index.cjs');
45
- const LOGS_SYMBOL = /* @__PURE__ */ Symbol("apitally.logs");
46
- const ASYNC_RESOURCE_SYMBOL = /* @__PURE__ */ Symbol("apitally.asyncResource");
47
- const SPAN_HANDLE_SYMBOL = /* @__PURE__ */ Symbol("apitally.spanHandle");
48
- const apitallyPlugin = /* @__PURE__ */ __name(async (fastify, config) => {
49
- const client = new import_client.ApitallyClient(config);
50
- const routes = [];
51
- const logsContext = new import_node_async_hooks.AsyncLocalStorage();
52
- if (client.requestLogger.config.captureLogs) {
53
- (0, import_loggers.patchConsole)(logsContext);
54
- (0, import_loggers.patchWinston)(logsContext);
55
- (0, import_loggers.patchPinoLogger)(fastify.log, logsContext);
56
- (0, import_loggers.patchNestLogger)(logsContext);
57
- }
58
- fastify.decorateRequest("apitallyConsumer", null);
59
- fastify.decorateRequest("consumerIdentifier", null);
60
- fastify.decorateReply("payload", null);
61
- fastify.addHook("onRoute", (routeOptions) => {
62
- const methods = Array.isArray(routeOptions.method) ? routeOptions.method : [
63
- routeOptions.method
64
- ];
65
- methods.forEach((method) => {
66
- if (![
67
- "HEAD",
68
- "OPTIONS"
69
- ].includes(method.toUpperCase())) {
70
- routes.push({
71
- method: method.toUpperCase(),
72
- path: routeOptions.url
73
- });
74
- }
75
- });
76
- });
77
- fastify.addHook("onReady", () => {
78
- client.setStartupData(getAppInfo(routes, config.appVersion));
79
- client.startSync();
80
- });
81
- fastify.addHook("onClose", async () => {
82
- await client.handleShutdown();
83
- });
84
- fastify.addHook("onRequest", (request, reply, done) => {
85
- if (client.isEnabled()) {
86
- const logs = [];
87
- request[LOGS_SYMBOL] = logs;
88
- logsContext.run(logs, () => {
89
- const spanHandle = client.spanCollector.startSpan();
90
- request[SPAN_HANDLE_SYMBOL] = spanHandle;
91
- spanHandle.runInContext(() => {
92
- const asyncResource = new import_node_async_hooks.AsyncResource("ApitallyContext");
93
- request[ASYNC_RESOURCE_SYMBOL] = asyncResource;
94
- asyncResource.runInAsyncScope(done, request.raw);
95
- });
96
- });
97
- } else {
98
- done();
99
- }
100
- });
101
- fastify.addHook("preValidation", (request, reply, done) => {
102
- if (client.isEnabled() && request[ASYNC_RESOURCE_SYMBOL]) {
103
- const asyncResource = request[ASYNC_RESOURCE_SYMBOL];
104
- asyncResource.runInAsyncScope(done, request.raw);
105
- } else {
106
- done();
107
- }
108
- });
109
- fastify.addHook("onSend", (request, reply, payload, done) => {
110
- const contentType = reply.getHeader("content-type");
111
- if (client.requestLogger.isSupportedContentType(contentType)) {
112
- reply.payload = payload;
113
- }
114
- done();
115
- });
116
- fastify.addHook("onError", (request, reply, error, done) => {
117
- if (!error.statusCode || error.statusCode === 500) {
118
- reply.serverError = error;
119
- }
120
- done();
121
- });
122
- fastify.addHook("onResponse", (request, reply, done) => {
123
- var _a;
124
- if (client.isEnabled() && request.method.toUpperCase() !== "OPTIONS") {
125
- const consumer = getConsumer(request);
126
- const path = "routeOptions" in request ? request.routeOptions.url : request.routerPath;
127
- const requestSize = (0, import_headers.parseContentLength)(request.headers["content-length"]);
128
- const responseSize = (0, import_headers.parseContentLength)(reply.getHeader("content-length"));
129
- const responseTime = getResponseTime(reply);
130
- client.consumerRegistry.addOrUpdateConsumer(consumer);
131
- client.requestCounter.addRequest({
132
- consumer: consumer == null ? void 0 : consumer.identifier,
133
- method: request.method,
134
- path,
135
- statusCode: reply.statusCode,
136
- responseTime,
137
- requestSize,
138
- responseSize
139
- });
140
- if ((reply.statusCode === 400 || reply.statusCode === 422) && reply.payload) {
141
- try {
142
- const parsedPayload = JSON.parse(reply.payload);
143
- const validationErrors = [];
144
- if ((!parsedPayload.code || parsedPayload.code === "FST_ERR_VALIDATION") && typeof parsedPayload.message === "string") {
145
- validationErrors.push(...extractAjvErrors(parsedPayload.message));
146
- } else if (Array.isArray(parsedPayload.message)) {
147
- validationErrors.push(...extractNestValidationErrors(parsedPayload.message));
148
- }
149
- validationErrors.forEach((error) => {
150
- client.validationErrorCounter.addValidationError({
151
- consumer: consumer == null ? void 0 : consumer.identifier,
152
- method: request.method,
153
- path,
154
- ...error
155
- });
156
- });
157
- } catch (error) {
158
- }
159
- }
160
- if (reply.statusCode === 500 && reply.serverError) {
161
- client.serverErrorCounter.addServerError({
162
- consumer: consumer == null ? void 0 : consumer.identifier,
163
- method: request.method,
164
- path,
165
- type: reply.serverError.name,
166
- msg: reply.serverError.message,
167
- traceback: reply.serverError.stack || ""
168
- });
169
- }
170
- const spanHandle = request[SPAN_HANDLE_SYMBOL];
171
- spanHandle == null ? void 0 : spanHandle.setName(`${request.method} ${path}`);
172
- const spans = spanHandle == null ? void 0 : spanHandle.end();
173
- const traceId = spanHandle == null ? void 0 : spanHandle.traceId;
174
- if (client.requestLogger.enabled) {
175
- const logs = request[LOGS_SYMBOL];
176
- client.requestLogger.logRequest({
177
- timestamp: Date.now() / 1e3,
178
- method: request.method,
179
- path,
180
- url: `${request.protocol}://${request.host ?? request.hostname}${request.originalUrl ?? request.url}`,
181
- headers: (0, import_requestLogger.convertHeaders)(request.headers),
182
- size: requestSize,
183
- consumer: consumer == null ? void 0 : consumer.identifier,
184
- body: (0, import_requestLogger.convertBody)(request.body, request.headers["content-type"])
185
- }, {
186
- statusCode: reply.statusCode,
187
- responseTime: responseTime / 1e3,
188
- headers: (0, import_requestLogger.convertHeaders)(reply.getHeaders()),
189
- size: responseSize,
190
- body: (0, import_requestLogger.convertBody)(reply.payload, (_a = reply.getHeader("content-type")) == null ? void 0 : _a.toString())
191
- }, reply.serverError, logs, spans, traceId);
192
- }
193
- }
194
- done();
195
- });
196
- }, "apitallyPlugin");
197
- function getAppInfo(routes, appVersion) {
198
- const versions = [
199
- [
200
- "nodejs",
201
- process.version.replace(/^v/, "")
202
- ]
203
- ];
204
- const fastifyVersion = (0, import_packageVersions.getPackageVersion)("fastify");
205
- const pinoVersion = (0, import_packageVersions.getPackageVersion)("pino");
206
- const nestjsVersion = (0, import_packageVersions.getPackageVersion)("@nestjs/core");
207
- const apitallyVersion = (0, import_packageVersions.getPackageVersion)("../..");
208
- if (fastifyVersion) {
209
- versions.push([
210
- "fastify",
211
- fastifyVersion
212
- ]);
213
- }
214
- if (pinoVersion) {
215
- versions.push([
216
- "pino",
217
- pinoVersion
218
- ]);
219
- }
220
- if (nestjsVersion) {
221
- versions.push([
222
- "nestjs",
223
- nestjsVersion
224
- ]);
225
- }
226
- if (apitallyVersion) {
227
- versions.push([
228
- "apitally",
229
- apitallyVersion
230
- ]);
231
- }
232
- if (appVersion) {
233
- versions.push([
234
- "app",
235
- appVersion
236
- ]);
237
- }
238
- return {
239
- paths: routes,
240
- versions: Object.fromEntries(versions),
241
- client: "js:fastify"
242
- };
243
- }
244
- __name(getAppInfo, "getAppInfo");
245
- function setConsumer(request, consumer) {
246
- request.apitallyConsumer = consumer || void 0;
247
- }
248
- __name(setConsumer, "setConsumer");
249
- function getConsumer(request) {
250
- if (request.apitallyConsumer) {
251
- return (0, import_consumerRegistry.consumerFromStringOrObject)(request.apitallyConsumer);
252
- } else if (request.consumerIdentifier) {
253
- process.emitWarning("The consumerIdentifier property on the request object is deprecated. Use apitallyConsumer instead.", "DeprecationWarning");
254
- return (0, import_consumerRegistry.consumerFromStringOrObject)(request.consumerIdentifier);
255
- }
256
- return null;
257
- }
258
- __name(getConsumer, "getConsumer");
259
- function getResponseTime(reply) {
260
- if (reply.elapsedTime !== void 0) {
261
- return reply.elapsedTime;
262
- } else if (reply.getResponseTime !== void 0) {
263
- return reply.getResponseTime();
264
- }
265
- return 0;
266
- }
267
- __name(getResponseTime, "getResponseTime");
268
- function extractAjvErrors(message) {
269
- try {
270
- const regex = /(?<=^|, )((?:headers|params|query|querystring|body)[/.][^ ]+)(?= )/g;
271
- const matches = [];
272
- let match;
273
- while ((match = regex.exec(message)) !== null) {
274
- matches.push({
275
- match: match[0],
276
- index: match.index
277
- });
278
- }
279
- return matches.map((m, i) => {
280
- const endIndex = i + 1 < matches.length ? matches[i + 1].index - 2 : message.length;
281
- const matchSplit = m.match.split(/[/.]/);
282
- if (matchSplit[0] === "querystring") {
283
- matchSplit[0] = "query";
284
- }
285
- return {
286
- loc: matchSplit.join("."),
287
- msg: message.substring(m.index, endIndex),
288
- type: ""
289
- };
290
- });
291
- } catch (error) {
292
- return [];
293
- }
294
- }
295
- __name(extractAjvErrors, "extractAjvErrors");
296
- function extractNestValidationErrors(message) {
297
- try {
298
- return message.filter((msg) => typeof msg === "string").map((msg) => ({
299
- loc: "",
300
- msg,
301
- type: ""
302
- }));
303
- } catch (error) {
304
- return [];
305
- }
306
- }
307
- __name(extractNestValidationErrors, "extractNestValidationErrors");
308
- var plugin_default = (0, import_fastify_plugin.default)(apitallyPlugin, {
309
- name: "apitally"
310
- });
311
- // Annotate the CommonJS export names for ESM import in node:
312
- 0 && (module.exports = {
313
- apitallyPlugin,
314
- setConsumer
315
- });
316
- //# sourceMappingURL=plugin.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/fastify/plugin.ts"],"sourcesContent":["import type {\n FastifyError,\n FastifyPluginAsync,\n FastifyReply,\n FastifyRequest,\n} from \"fastify\";\nimport fp from \"fastify-plugin\";\nimport { AsyncLocalStorage, AsyncResource } from \"node:async_hooks\";\n\nimport { ApitallyClient } from \"../common/client.js\";\nimport { consumerFromStringOrObject } from \"../common/consumerRegistry.js\";\nimport { parseContentLength } from \"../common/headers.js\";\nimport { getPackageVersion } from \"../common/packageVersions.js\";\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport { convertBody, convertHeaders } from \"../common/requestLogger.js\";\nimport type { SpanHandle } from \"../common/spanCollector.js\";\nimport {\n ApitallyConfig,\n ApitallyConsumer,\n PathInfo,\n ValidationError,\n} from \"../common/types.js\";\nimport {\n patchConsole,\n patchNestLogger,\n patchPinoLogger,\n patchWinston,\n} from \"../loggers/index.js\";\n\nconst LOGS_SYMBOL = Symbol(\"apitally.logs\");\nconst ASYNC_RESOURCE_SYMBOL = Symbol(\"apitally.asyncResource\");\nconst SPAN_HANDLE_SYMBOL = Symbol(\"apitally.spanHandle\");\n\ndeclare module \"fastify\" {\n interface FastifyReply {\n payload: any;\n serverError?: FastifyError;\n }\n\n interface FastifyRequest {\n apitallyConsumer?: ApitallyConsumer | string | null;\n consumerIdentifier?: ApitallyConsumer | string | null; // For backwards compatibility\n\n [LOGS_SYMBOL]?: LogRecord[];\n [ASYNC_RESOURCE_SYMBOL]?: AsyncResource;\n [SPAN_HANDLE_SYMBOL]?: SpanHandle;\n }\n}\n\nconst apitallyPlugin: FastifyPluginAsync<ApitallyConfig> = async (\n fastify,\n config,\n) => {\n const client = new ApitallyClient(config);\n const routes: PathInfo[] = [];\n const logsContext = new AsyncLocalStorage<LogRecord[]>();\n\n if (client.requestLogger.config.captureLogs) {\n patchConsole(logsContext);\n patchWinston(logsContext);\n patchPinoLogger(fastify.log, logsContext);\n patchNestLogger(logsContext);\n }\n\n fastify.decorateRequest(\"apitallyConsumer\", null);\n fastify.decorateRequest(\"consumerIdentifier\", null); // For backwards compatibility\n fastify.decorateReply(\"payload\", null);\n\n fastify.addHook(\"onRoute\", (routeOptions) => {\n const methods = Array.isArray(routeOptions.method)\n ? routeOptions.method\n : [routeOptions.method];\n methods.forEach((method) => {\n if (![\"HEAD\", \"OPTIONS\"].includes(method.toUpperCase())) {\n routes.push({\n method: method.toUpperCase(),\n path: routeOptions.url,\n });\n }\n });\n });\n\n fastify.addHook(\"onReady\", () => {\n client.setStartupData(getAppInfo(routes, config.appVersion));\n client.startSync();\n });\n\n fastify.addHook(\"onClose\", async () => {\n await client.handleShutdown();\n });\n\n // Establish logs context and start span for each request\n fastify.addHook(\"onRequest\", (request, reply, done) => {\n if (client.isEnabled()) {\n const logs: LogRecord[] = [];\n request[LOGS_SYMBOL] = logs;\n logsContext.run(logs, () => {\n const spanHandle = client.spanCollector.startSpan();\n request[SPAN_HANDLE_SYMBOL] = spanHandle;\n spanHandle.runInContext(() => {\n const asyncResource = new AsyncResource(\"ApitallyContext\");\n request[ASYNC_RESOURCE_SYMBOL] = asyncResource;\n asyncResource.runInAsyncScope(done, request.raw);\n });\n });\n } else {\n done();\n }\n });\n\n // Restore async context for later hooks and route handlers\n fastify.addHook(\"preValidation\", (request, reply, done) => {\n if (client.isEnabled() && request[ASYNC_RESOURCE_SYMBOL]) {\n const asyncResource = request[ASYNC_RESOURCE_SYMBOL];\n asyncResource.runInAsyncScope(done, request.raw);\n } else {\n done();\n }\n });\n\n fastify.addHook(\"onSend\", (request, reply, payload: any, done) => {\n const contentType = reply.getHeader(\"content-type\") as string | undefined;\n if (client.requestLogger.isSupportedContentType(contentType)) {\n reply.payload = payload;\n }\n done();\n });\n\n fastify.addHook(\"onError\", (request, reply, error, done) => {\n if (!error.statusCode || error.statusCode === 500) {\n reply.serverError = error;\n }\n done();\n });\n\n fastify.addHook(\"onResponse\", (request, reply, done) => {\n if (client.isEnabled() && request.method.toUpperCase() !== \"OPTIONS\") {\n // Get path from routeOptions if available (from v4), otherwise fallback to deprecated routerPath\n const consumer = getConsumer(request);\n const path =\n \"routeOptions\" in request\n ? (request as any).routeOptions.url\n : (request as any).routerPath;\n const requestSize = parseContentLength(request.headers[\"content-length\"]);\n const responseSize = parseContentLength(\n reply.getHeader(\"content-length\"),\n );\n const responseTime = getResponseTime(reply);\n client.consumerRegistry.addOrUpdateConsumer(consumer);\n client.requestCounter.addRequest({\n consumer: consumer?.identifier,\n method: request.method,\n path,\n statusCode: reply.statusCode,\n responseTime,\n requestSize,\n responseSize,\n });\n\n if (\n (reply.statusCode === 400 || reply.statusCode === 422) &&\n reply.payload\n ) {\n try {\n const parsedPayload = JSON.parse(reply.payload);\n const validationErrors: ValidationError[] = [];\n\n if (\n (!parsedPayload.code ||\n parsedPayload.code === \"FST_ERR_VALIDATION\") &&\n typeof parsedPayload.message === \"string\"\n ) {\n validationErrors.push(...extractAjvErrors(parsedPayload.message));\n } else if (Array.isArray(parsedPayload.message)) {\n validationErrors.push(\n ...extractNestValidationErrors(parsedPayload.message),\n );\n }\n\n validationErrors.forEach((error) => {\n client.validationErrorCounter.addValidationError({\n consumer: consumer?.identifier,\n method: request.method,\n path: path,\n ...error,\n });\n });\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n if (reply.statusCode === 500 && reply.serverError) {\n client.serverErrorCounter.addServerError({\n consumer: consumer?.identifier,\n method: request.method,\n path: path,\n type: reply.serverError.name,\n msg: reply.serverError.message,\n traceback: reply.serverError.stack || \"\",\n });\n }\n\n const spanHandle = request[SPAN_HANDLE_SYMBOL];\n spanHandle?.setName(`${request.method} ${path}`);\n const spans = spanHandle?.end();\n const traceId = spanHandle?.traceId;\n\n if (client.requestLogger.enabled) {\n const logs = request[LOGS_SYMBOL];\n client.requestLogger.logRequest(\n {\n timestamp: Date.now() / 1000,\n method: request.method,\n path,\n url: `${request.protocol}://${request.host ?? request.hostname}${request.originalUrl ?? request.url}`,\n headers: convertHeaders(request.headers),\n size: requestSize,\n consumer: consumer?.identifier,\n body: convertBody(request.body, request.headers[\"content-type\"]),\n },\n {\n statusCode: reply.statusCode,\n responseTime: responseTime / 1000,\n headers: convertHeaders(reply.getHeaders()),\n size: responseSize,\n body: convertBody(\n reply.payload,\n reply.getHeader(\"content-type\")?.toString(),\n ),\n },\n reply.serverError,\n logs,\n spans,\n traceId,\n );\n }\n }\n\n done();\n });\n};\n\nfunction getAppInfo(routes: PathInfo[], appVersion?: string) {\n const versions = [[\"nodejs\", process.version.replace(/^v/, \"\")]];\n const fastifyVersion = getPackageVersion(\"fastify\");\n const pinoVersion = getPackageVersion(\"pino\");\n const nestjsVersion = getPackageVersion(\"@nestjs/core\");\n const apitallyVersion = getPackageVersion(\"../..\");\n if (fastifyVersion) {\n versions.push([\"fastify\", fastifyVersion]);\n }\n if (pinoVersion) {\n versions.push([\"pino\", pinoVersion]);\n }\n if (nestjsVersion) {\n versions.push([\"nestjs\", nestjsVersion]);\n }\n if (apitallyVersion) {\n versions.push([\"apitally\", apitallyVersion]);\n }\n if (appVersion) {\n versions.push([\"app\", appVersion]);\n }\n return {\n paths: routes,\n versions: Object.fromEntries(versions),\n client: \"js:fastify\",\n };\n}\n\nexport function setConsumer(\n request: FastifyRequest,\n consumer: ApitallyConsumer | string | null | undefined,\n) {\n request.apitallyConsumer = consumer || undefined;\n}\n\nfunction getConsumer(request: FastifyRequest) {\n if (request.apitallyConsumer) {\n return consumerFromStringOrObject(request.apitallyConsumer);\n } else if (request.consumerIdentifier) {\n // For backwards compatibility\n process.emitWarning(\n \"The consumerIdentifier property on the request object is deprecated. Use apitallyConsumer instead.\",\n \"DeprecationWarning\",\n );\n return consumerFromStringOrObject(request.consumerIdentifier);\n }\n return null;\n}\n\nfunction getResponseTime(reply: FastifyReply) {\n if (reply.elapsedTime !== undefined) {\n return reply.elapsedTime;\n } else if ((reply as any).getResponseTime !== undefined) {\n return (reply as any).getResponseTime();\n }\n return 0;\n}\n\nfunction extractAjvErrors(message: string): ValidationError[] {\n try {\n const regex =\n /(?<=^|, )((?:headers|params|query|querystring|body)[/.][^ ]+)(?= )/g;\n const matches: { match: string; index: number }[] = [];\n let match: RegExpExecArray | null;\n while ((match = regex.exec(message)) !== null) {\n matches.push({ match: match[0], index: match.index });\n }\n\n return matches.map((m, i) => {\n const endIndex =\n i + 1 < matches.length ? matches[i + 1].index - 2 : message.length;\n const matchSplit = m.match.split(/[/.]/);\n if (matchSplit[0] === \"querystring\") {\n matchSplit[0] = \"query\";\n }\n return {\n loc: matchSplit.join(\".\"),\n msg: message.substring(m.index, endIndex),\n type: \"\",\n };\n });\n } catch (error) {\n return [];\n }\n}\n\nfunction extractNestValidationErrors(message: any[]): ValidationError[] {\n try {\n return message\n .filter((msg: any) => typeof msg === \"string\")\n .map((msg: any) => ({\n loc: \"\",\n msg,\n type: \"\",\n }));\n } catch (error) {\n return [];\n }\n}\n\nexport { apitallyPlugin };\n\nexport default fp(apitallyPlugin, {\n name: \"apitally\",\n});\n"],"mappings":"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","names":["LOGS_SYMBOL","Symbol","ASYNC_RESOURCE_SYMBOL","SPAN_HANDLE_SYMBOL","apitallyPlugin","fastify","config","client","ApitallyClient","routes","logsContext","AsyncLocalStorage","requestLogger","captureLogs","patchConsole","patchWinston","patchPinoLogger","log","patchNestLogger","decorateRequest","decorateReply","addHook","routeOptions","methods","Array","isArray","method","forEach","includes","toUpperCase","push","path","url","setStartupData","getAppInfo","appVersion","startSync","handleShutdown","request","reply","done","isEnabled","logs","run","spanHandle","spanCollector","startSpan","runInContext","asyncResource","AsyncResource","runInAsyncScope","raw","payload","contentType","getHeader","isSupportedContentType","error","statusCode","serverError","consumer","getConsumer","routerPath","requestSize","parseContentLength","headers","responseSize","responseTime","getResponseTime","consumerRegistry","addOrUpdateConsumer","requestCounter","addRequest","identifier","parsedPayload","JSON","parse","validationErrors","code","message","extractAjvErrors","extractNestValidationErrors","validationErrorCounter","addValidationError","serverErrorCounter","addServerError","type","name","msg","traceback","stack","setName","spans","end","traceId","enabled","logRequest","timestamp","Date","now","protocol","host","hostname","originalUrl","convertHeaders","size","body","convertBody","getHeaders","toString","versions","process","version","replace","fastifyVersion","getPackageVersion","pinoVersion","nestjsVersion","apitallyVersion","paths","Object","fromEntries","setConsumer","apitallyConsumer","undefined","consumerFromStringOrObject","consumerIdentifier","emitWarning","elapsedTime","regex","matches","match","exec","index","map","m","i","endIndex","length","matchSplit","split","loc","join","substring","filter","fp"]}
@@ -1,34 +0,0 @@
1
- import { ApitallyConsumer, ApitallyConfig } from '../common/types.cjs';
2
- import { FastifyError, FastifyPluginAsync, FastifyRequest } from 'fastify';
3
- import { AsyncResource } from 'node:async_hooks';
4
- import { LogRecord } from '../common/requestLogger.cjs';
5
- import { SpanHandle } from '../common/spanCollector.cjs';
6
- import '../common/logging.cjs';
7
- import 'winston';
8
- import 'node:buffer';
9
- import 'node:http';
10
- import '@opentelemetry/sdk-trace-base';
11
- import '../common/tempGzipFile.cjs';
12
-
13
- declare const LOGS_SYMBOL: unique symbol;
14
- declare const ASYNC_RESOURCE_SYMBOL: unique symbol;
15
- declare const SPAN_HANDLE_SYMBOL: unique symbol;
16
- declare module "fastify" {
17
- interface FastifyReply {
18
- payload: any;
19
- serverError?: FastifyError;
20
- }
21
- interface FastifyRequest {
22
- apitallyConsumer?: ApitallyConsumer | string | null;
23
- consumerIdentifier?: ApitallyConsumer | string | null;
24
- [LOGS_SYMBOL]?: LogRecord[];
25
- [ASYNC_RESOURCE_SYMBOL]?: AsyncResource;
26
- [SPAN_HANDLE_SYMBOL]?: SpanHandle;
27
- }
28
- }
29
- declare const apitallyPlugin: FastifyPluginAsync<ApitallyConfig>;
30
- declare function setConsumer(request: FastifyRequest, consumer: ApitallyConsumer | string | null | undefined): void;
31
-
32
- declare const _default: FastifyPluginAsync<ApitallyConfig>;
33
-
34
- export { apitallyPlugin, _default as default, setConsumer };
@@ -1,34 +0,0 @@
1
- import { ApitallyConsumer, ApitallyConfig } from '../common/types.js';
2
- import { FastifyError, FastifyPluginAsync, FastifyRequest } from 'fastify';
3
- import { AsyncResource } from 'node:async_hooks';
4
- import { LogRecord } from '../common/requestLogger.js';
5
- import { SpanHandle } from '../common/spanCollector.js';
6
- import '../common/logging.js';
7
- import 'winston';
8
- import 'node:buffer';
9
- import 'node:http';
10
- import '@opentelemetry/sdk-trace-base';
11
- import '../common/tempGzipFile.js';
12
-
13
- declare const LOGS_SYMBOL: unique symbol;
14
- declare const ASYNC_RESOURCE_SYMBOL: unique symbol;
15
- declare const SPAN_HANDLE_SYMBOL: unique symbol;
16
- declare module "fastify" {
17
- interface FastifyReply {
18
- payload: any;
19
- serverError?: FastifyError;
20
- }
21
- interface FastifyRequest {
22
- apitallyConsumer?: ApitallyConsumer | string | null;
23
- consumerIdentifier?: ApitallyConsumer | string | null;
24
- [LOGS_SYMBOL]?: LogRecord[];
25
- [ASYNC_RESOURCE_SYMBOL]?: AsyncResource;
26
- [SPAN_HANDLE_SYMBOL]?: SpanHandle;
27
- }
28
- }
29
- declare const apitallyPlugin: FastifyPluginAsync<ApitallyConfig>;
30
- declare function setConsumer(request: FastifyRequest, consumer: ApitallyConsumer | string | null | undefined): void;
31
-
32
- declare const _default: FastifyPluginAsync<ApitallyConfig>;
33
-
34
- export { apitallyPlugin, _default as default, setConsumer };