@wizeworks/lens-node 0.3.0-alpha.2 → 0.3.0-alpha.4

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 (337) hide show
  1. package/dist/adapters/elasticsearch.d.ts +21 -0
  2. package/dist/adapters/elasticsearch.d.ts.map +1 -0
  3. package/dist/adapters/elasticsearch.js +93 -0
  4. package/dist/adapters/elasticsearch.js.map +1 -0
  5. package/dist/adapters/ioredis.d.ts +4 -0
  6. package/dist/adapters/ioredis.d.ts.map +1 -0
  7. package/dist/adapters/ioredis.js +60 -0
  8. package/dist/adapters/ioredis.js.map +1 -0
  9. package/dist/adapters/mongodb-shape.d.ts +16 -0
  10. package/dist/adapters/mongodb-shape.d.ts.map +1 -0
  11. package/dist/adapters/mongodb-shape.js +81 -0
  12. package/dist/adapters/mongodb-shape.js.map +1 -0
  13. package/dist/adapters/mongodb.d.ts +4 -0
  14. package/dist/adapters/mongodb.d.ts.map +1 -0
  15. package/dist/adapters/mongodb.js +95 -0
  16. package/dist/adapters/mongodb.js.map +1 -0
  17. package/dist/adapters/nosql.d.ts +14 -0
  18. package/dist/adapters/nosql.d.ts.map +1 -0
  19. package/dist/adapters/nosql.js +61 -0
  20. package/dist/adapters/nosql.js.map +1 -0
  21. package/dist/adapters/redis-shape.d.ts +31 -0
  22. package/dist/adapters/redis-shape.d.ts.map +1 -0
  23. package/dist/adapters/redis-shape.js +80 -0
  24. package/dist/adapters/redis-shape.js.map +1 -0
  25. package/dist/adapters/redis.d.ts +4 -0
  26. package/dist/adapters/redis.d.ts.map +1 -0
  27. package/dist/adapters/redis.js +93 -0
  28. package/dist/adapters/redis.js.map +1 -0
  29. package/dist/adapters/registry.d.ts +2 -0
  30. package/dist/adapters/registry.d.ts.map +1 -1
  31. package/dist/adapters/registry.js +2 -0
  32. package/dist/adapters/registry.js.map +1 -1
  33. package/dist/api.d.ts +5 -1
  34. package/dist/api.d.ts.map +1 -1
  35. package/dist/api.js +25 -7
  36. package/dist/api.js.map +1 -1
  37. package/dist/auto/config.d.ts +14 -0
  38. package/dist/auto/config.d.ts.map +1 -0
  39. package/dist/auto/config.js +51 -0
  40. package/dist/auto/config.js.map +1 -0
  41. package/dist/auto/esm-loader.d.ts +10 -0
  42. package/dist/auto/esm-loader.d.ts.map +1 -0
  43. package/dist/auto/esm-loader.js +10 -0
  44. package/dist/auto/esm-loader.js.map +1 -0
  45. package/dist/auto/esm-source.d.ts +15 -0
  46. package/dist/auto/esm-source.d.ts.map +1 -0
  47. package/dist/auto/esm-source.js +23 -0
  48. package/dist/auto/esm-source.js.map +1 -0
  49. package/dist/auto/frameworks.d.ts +3 -0
  50. package/dist/auto/frameworks.d.ts.map +1 -0
  51. package/dist/auto/frameworks.js +112 -0
  52. package/dist/auto/frameworks.js.map +1 -0
  53. package/dist/auto/handle.d.ts +7 -0
  54. package/dist/auto/handle.d.ts.map +1 -0
  55. package/dist/auto/handle.js +47 -0
  56. package/dist/auto/handle.js.map +1 -0
  57. package/dist/auto/hono.d.ts +3 -0
  58. package/dist/auto/hono.d.ts.map +1 -0
  59. package/dist/auto/hono.js +43 -0
  60. package/dist/auto/hono.js.map +1 -0
  61. package/dist/auto/http.d.ts +18 -0
  62. package/dist/auto/http.d.ts.map +1 -0
  63. package/dist/auto/http.js +77 -0
  64. package/dist/auto/http.js.map +1 -0
  65. package/dist/auto/install.d.ts +5 -0
  66. package/dist/auto/install.d.ts.map +1 -0
  67. package/dist/auto/install.js +26 -0
  68. package/dist/auto/install.js.map +1 -0
  69. package/dist/auto/libraries.d.ts +3 -0
  70. package/dist/auto/libraries.d.ts.map +1 -0
  71. package/dist/auto/libraries.js +108 -0
  72. package/dist/auto/libraries.js.map +1 -0
  73. package/dist/auto/module-hooks.d.ts +14 -0
  74. package/dist/auto/module-hooks.d.ts.map +1 -0
  75. package/dist/auto/module-hooks.js +90 -0
  76. package/dist/auto/module-hooks.js.map +1 -0
  77. package/dist/auto/nest.d.ts +7 -0
  78. package/dist/auto/nest.d.ts.map +1 -0
  79. package/dist/auto/nest.js +26 -0
  80. package/dist/auto/nest.js.map +1 -0
  81. package/dist/auto/owner.d.ts +19 -0
  82. package/dist/auto/owner.d.ts.map +1 -0
  83. package/dist/auto/owner.js +52 -0
  84. package/dist/auto/owner.js.map +1 -0
  85. package/dist/auto/prisma.d.ts +3 -0
  86. package/dist/auto/prisma.d.ts.map +1 -0
  87. package/dist/auto/prisma.js +55 -0
  88. package/dist/auto/prisma.js.map +1 -0
  89. package/dist/auto/sqlite.d.ts +3 -0
  90. package/dist/auto/sqlite.d.ts.map +1 -0
  91. package/dist/auto/sqlite.js +31 -0
  92. package/dist/auto/sqlite.js.map +1 -0
  93. package/dist/auto/state.d.ts +14 -0
  94. package/dist/auto/state.d.ts.map +1 -0
  95. package/dist/auto/state.js +16 -0
  96. package/dist/auto/state.js.map +1 -0
  97. package/dist/auto.d.ts +2 -0
  98. package/dist/auto.d.ts.map +1 -0
  99. package/dist/auto.js +4 -0
  100. package/dist/auto.js.map +1 -0
  101. package/dist/capture.d.ts +3 -1
  102. package/dist/capture.d.ts.map +1 -1
  103. package/dist/capture.js +4 -4
  104. package/dist/capture.js.map +1 -1
  105. package/dist/client-attributes.d.ts +19 -0
  106. package/dist/client-attributes.d.ts.map +1 -0
  107. package/dist/client-attributes.js +56 -0
  108. package/dist/client-attributes.js.map +1 -0
  109. package/dist/client-spans.d.ts +6 -4
  110. package/dist/client-spans.d.ts.map +1 -1
  111. package/dist/client-spans.js +20 -9
  112. package/dist/client-spans.js.map +1 -1
  113. package/dist/db.js +1 -1
  114. package/dist/db.js.map +1 -1
  115. package/dist/frameworks/fastify.d.ts.map +1 -1
  116. package/dist/frameworks/fastify.js +4 -2
  117. package/dist/frameworks/fastify.js.map +1 -1
  118. package/dist/frameworks/hono.d.ts +16 -0
  119. package/dist/frameworks/hono.d.ts.map +1 -1
  120. package/dist/frameworks/hono.js +4 -4
  121. package/dist/frameworks/hono.js.map +1 -1
  122. package/dist/frameworks/koa.d.ts +2 -0
  123. package/dist/frameworks/koa.d.ts.map +1 -1
  124. package/dist/frameworks/koa.js +4 -4
  125. package/dist/frameworks/koa.js.map +1 -1
  126. package/dist/frameworks/nest-errors.d.ts +10 -0
  127. package/dist/frameworks/nest-errors.d.ts.map +1 -0
  128. package/dist/frameworks/nest-errors.js +75 -0
  129. package/dist/frameworks/nest-errors.js.map +1 -0
  130. package/dist/frameworks/nest-route.d.ts +31 -0
  131. package/dist/frameworks/nest-route.d.ts.map +1 -0
  132. package/dist/frameworks/nest-route.js +58 -0
  133. package/dist/frameworks/nest-route.js.map +1 -0
  134. package/dist/frameworks/nest.d.ts +16 -0
  135. package/dist/frameworks/nest.d.ts.map +1 -0
  136. package/dist/frameworks/nest.js +73 -0
  137. package/dist/frameworks/nest.js.map +1 -0
  138. package/dist/frameworks/node-server.d.ts +3 -0
  139. package/dist/frameworks/node-server.d.ts.map +1 -1
  140. package/dist/frameworks/node-server.js +5 -3
  141. package/dist/frameworks/node-server.js.map +1 -1
  142. package/dist/graphql/document.d.ts +13 -0
  143. package/dist/graphql/document.d.ts.map +1 -0
  144. package/dist/graphql/document.js +62 -0
  145. package/dist/graphql/document.js.map +1 -0
  146. package/dist/graphql/index.d.ts +11 -0
  147. package/dist/graphql/index.d.ts.map +1 -0
  148. package/dist/graphql/index.js +83 -0
  149. package/dist/graphql/index.js.map +1 -0
  150. package/dist/graphql/operation.d.ts +37 -0
  151. package/dist/graphql/operation.d.ts.map +1 -0
  152. package/dist/graphql/operation.js +58 -0
  153. package/dist/graphql/operation.js.map +1 -0
  154. package/dist/graphql/resolvers.d.ts +5 -0
  155. package/dist/graphql/resolvers.d.ts.map +1 -0
  156. package/dist/graphql/resolvers.js +79 -0
  157. package/dist/graphql/resolvers.js.map +1 -0
  158. package/dist/graphql/shared.d.ts +14 -0
  159. package/dist/graphql/shared.d.ts.map +1 -0
  160. package/dist/graphql/shared.js +21 -0
  161. package/dist/graphql/shared.js.map +1 -0
  162. package/dist/http-client.d.ts +8 -0
  163. package/dist/http-client.d.ts.map +1 -0
  164. package/dist/http-client.js +132 -0
  165. package/dist/http-client.js.map +1 -0
  166. package/dist/hub-connect.d.ts +2 -0
  167. package/dist/hub-connect.d.ts.map +1 -1
  168. package/dist/hub-connect.js +3 -1
  169. package/dist/hub-connect.js.map +1 -1
  170. package/dist/index.d.ts +12 -0
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +9 -0
  173. package/dist/index.js.map +1 -1
  174. package/dist/info.d.ts +2 -0
  175. package/dist/info.d.ts.map +1 -1
  176. package/dist/info.js +1 -1
  177. package/dist/info.js.map +1 -1
  178. package/dist/kit.d.ts +3 -1
  179. package/dist/kit.d.ts.map +1 -1
  180. package/dist/kit.js +1 -0
  181. package/dist/kit.js.map +1 -1
  182. package/dist/logger.d.ts +4 -4
  183. package/dist/logger.d.ts.map +1 -1
  184. package/dist/logger.js +11 -7
  185. package/dist/logger.js.map +1 -1
  186. package/dist/logs/bunyan.d.ts +1 -1
  187. package/dist/logs/bunyan.d.ts.map +1 -1
  188. package/dist/logs/bunyan.js +2 -3
  189. package/dist/logs/bunyan.js.map +1 -1
  190. package/dist/logs/consola.d.ts +1 -1
  191. package/dist/logs/consola.d.ts.map +1 -1
  192. package/dist/logs/consola.js +1 -1
  193. package/dist/logs/consola.js.map +1 -1
  194. package/dist/logs/console.d.ts +1 -1
  195. package/dist/logs/console.d.ts.map +1 -1
  196. package/dist/logs/console.js +5 -3
  197. package/dist/logs/console.js.map +1 -1
  198. package/dist/logs/otel.d.ts.map +1 -1
  199. package/dist/logs/otel.js +1 -3
  200. package/dist/logs/otel.js.map +1 -1
  201. package/dist/logs/pino.d.ts +1 -1
  202. package/dist/logs/pino.d.ts.map +1 -1
  203. package/dist/logs/pino.js +2 -3
  204. package/dist/logs/pino.js.map +1 -1
  205. package/dist/logs/winston.d.ts +1 -1
  206. package/dist/logs/winston.d.ts.map +1 -1
  207. package/dist/logs/winston.js +2 -3
  208. package/dist/logs/winston.js.map +1 -1
  209. package/dist/loose-logs.d.ts +13 -0
  210. package/dist/loose-logs.d.ts.map +1 -0
  211. package/dist/loose-logs.js +21 -0
  212. package/dist/loose-logs.js.map +1 -0
  213. package/dist/mcp-find.d.ts +2 -2
  214. package/dist/mcp-find.d.ts.map +1 -1
  215. package/dist/mcp-find.js +68 -26
  216. package/dist/mcp-find.js.map +1 -1
  217. package/dist/mcp-memory.d.ts +7 -0
  218. package/dist/mcp-memory.d.ts.map +1 -0
  219. package/dist/mcp-memory.js +10 -0
  220. package/dist/mcp-memory.js.map +1 -0
  221. package/dist/mcp-metrics.d.ts +2 -2
  222. package/dist/mcp-metrics.d.ts.map +1 -1
  223. package/dist/mcp-metrics.js +11 -9
  224. package/dist/mcp-metrics.js.map +1 -1
  225. package/dist/mcp-overview.d.ts +5 -0
  226. package/dist/mcp-overview.d.ts.map +1 -0
  227. package/dist/mcp-overview.js +71 -0
  228. package/dist/mcp-overview.js.map +1 -0
  229. package/dist/mcp-page.d.ts +28 -0
  230. package/dist/mcp-page.d.ts.map +1 -0
  231. package/dist/mcp-page.js +77 -0
  232. package/dist/mcp-page.js.map +1 -0
  233. package/dist/mcp-problems.d.ts +5 -0
  234. package/dist/mcp-problems.d.ts.map +1 -0
  235. package/dist/mcp-problems.js +56 -0
  236. package/dist/mcp-problems.js.map +1 -0
  237. package/dist/mcp-projects.d.ts +11 -0
  238. package/dist/mcp-projects.d.ts.map +1 -0
  239. package/dist/mcp-projects.js +54 -0
  240. package/dist/mcp-projects.js.map +1 -0
  241. package/dist/mcp-search.d.ts +5 -0
  242. package/dist/mcp-search.d.ts.map +1 -0
  243. package/dist/mcp-search.js +53 -0
  244. package/dist/mcp-search.js.map +1 -0
  245. package/dist/mcp-shared.d.ts +83 -4
  246. package/dist/mcp-shared.d.ts.map +1 -1
  247. package/dist/mcp-shared.js +3 -0
  248. package/dist/mcp-shared.js.map +1 -1
  249. package/dist/mcp-store.d.ts +27 -0
  250. package/dist/mcp-store.d.ts.map +1 -0
  251. package/dist/mcp-store.js +56 -0
  252. package/dist/mcp-store.js.map +1 -0
  253. package/dist/mcp-tags.d.ts +8 -0
  254. package/dist/mcp-tags.d.ts.map +1 -0
  255. package/dist/mcp-tags.js +22 -0
  256. package/dist/mcp-tags.js.map +1 -0
  257. package/dist/mcp-traces.d.ts +2 -2
  258. package/dist/mcp-traces.d.ts.map +1 -1
  259. package/dist/mcp-traces.js +37 -25
  260. package/dist/mcp-traces.js.map +1 -1
  261. package/dist/mcp-traffic.d.ts +5 -0
  262. package/dist/mcp-traffic.d.ts.map +1 -0
  263. package/dist/mcp-traffic.js +87 -0
  264. package/dist/mcp-traffic.js.map +1 -0
  265. package/dist/mcp.d.ts +7 -4
  266. package/dist/mcp.d.ts.map +1 -1
  267. package/dist/mcp.js +27 -8
  268. package/dist/mcp.js.map +1 -1
  269. package/dist/messaging/bullmq.d.ts +4 -0
  270. package/dist/messaging/bullmq.d.ts.map +1 -0
  271. package/dist/messaging/bullmq.js +137 -0
  272. package/dist/messaging/bullmq.js.map +1 -0
  273. package/dist/messaging/shared.d.ts +10 -4
  274. package/dist/messaging/shared.d.ts.map +1 -1
  275. package/dist/messaging/shared.js +13 -4
  276. package/dist/messaging/shared.js.map +1 -1
  277. package/dist/messaging/sqs-message.d.ts +35 -0
  278. package/dist/messaging/sqs-message.d.ts.map +1 -0
  279. package/dist/messaging/sqs-message.js +66 -0
  280. package/dist/messaging/sqs-message.js.map +1 -0
  281. package/dist/messaging/sqs.d.ts +4 -0
  282. package/dist/messaging/sqs.d.ts.map +1 -0
  283. package/dist/messaging/sqs.js +104 -0
  284. package/dist/messaging/sqs.js.map +1 -0
  285. package/dist/processor.d.ts +2 -1
  286. package/dist/processor.d.ts.map +1 -1
  287. package/dist/processor.js +8 -3
  288. package/dist/processor.js.map +1 -1
  289. package/dist/request-capture.d.ts +7 -1
  290. package/dist/request-capture.d.ts.map +1 -1
  291. package/dist/request-capture.js +14 -1
  292. package/dist/request-capture.js.map +1 -1
  293. package/dist/request-naming.d.ts +8 -0
  294. package/dist/request-naming.d.ts.map +1 -0
  295. package/dist/request-naming.js +29 -0
  296. package/dist/request-naming.js.map +1 -0
  297. package/dist/sampling.d.ts.map +1 -1
  298. package/dist/sampling.js +2 -2
  299. package/dist/sampling.js.map +1 -1
  300. package/dist/search-api.d.ts +8 -0
  301. package/dist/search-api.d.ts.map +1 -0
  302. package/dist/search-api.js +21 -0
  303. package/dist/search-api.js.map +1 -0
  304. package/dist/sourcemaps.d.ts +15 -0
  305. package/dist/sourcemaps.d.ts.map +1 -0
  306. package/dist/sourcemaps.js +68 -0
  307. package/dist/sourcemaps.js.map +1 -0
  308. package/dist/spans.d.ts +3 -0
  309. package/dist/spans.d.ts.map +1 -1
  310. package/dist/spans.js +9 -1
  311. package/dist/spans.js.map +1 -1
  312. package/dist/store-entries.d.ts +34 -0
  313. package/dist/store-entries.d.ts.map +1 -0
  314. package/dist/store-entries.js +70 -0
  315. package/dist/store-entries.js.map +1 -0
  316. package/dist/store.d.ts +4 -1
  317. package/dist/store.d.ts.map +1 -1
  318. package/dist/store.js +19 -22
  319. package/dist/store.js.map +1 -1
  320. package/dist/tags-api.d.ts +9 -0
  321. package/dist/tags-api.d.ts.map +1 -0
  322. package/dist/tags-api.js +16 -0
  323. package/dist/tags-api.js.map +1 -0
  324. package/dist/tracing.d.ts +6 -0
  325. package/dist/tracing.d.ts.map +1 -1
  326. package/dist/tracing.js +11 -7
  327. package/dist/tracing.js.map +1 -1
  328. package/dist/types.d.ts +16 -2
  329. package/dist/types.d.ts.map +1 -1
  330. package/dist/ui.d.ts.map +1 -1
  331. package/dist/ui.js +3 -2
  332. package/dist/ui.js.map +1 -1
  333. package/dist/wizelens.d.ts +3 -1
  334. package/dist/wizelens.d.ts.map +1 -1
  335. package/dist/wizelens.js +29 -13
  336. package/dist/wizelens.js.map +1 -1
  337. package/package.json +14 -4
@@ -6,6 +6,17 @@ const HEX16 = /^[0-9a-f]{16}$/;
6
6
  const MAX_EVENTS = 50;
7
7
  const LEVELS = ["trace", "debug", "info", "warn", "error", "critical"];
8
8
  const text = (v, fallback, max) => (typeof v === "string" && v ? v.slice(0, max) : fallback);
9
+ // A crawler's clock put its page view 4.6 hours before the server request. Within this gap the difference is network time.
10
+ const CLOCK_TOLERANCE_MS = 10_000;
11
+ /** How far (ms) to move a browser's times onto this server's clock: 0 when it sent no clock, or one close enough. */
12
+ export function browserClockOffset(sentAt, receivedAt) {
13
+ const sent = Number(sentAt);
14
+ if (!Number.isFinite(sent) || sent <= 0)
15
+ return 0;
16
+ const offset = receivedAt - sent;
17
+ return Math.abs(offset) > CLOCK_TOLERANCE_MS ? offset : 0;
18
+ }
19
+ const shifted = (ms, shiftMs) => (ms ? ms + shiftMs : ms);
9
20
  function toAttributes(raw, redactKeys) {
10
21
  const out = {};
11
22
  if (raw && typeof raw === "object") {
@@ -14,17 +25,17 @@ function toAttributes(raw, redactKeys) {
14
25
  }
15
26
  return redactAttributes(out, redactKeys);
16
27
  }
17
- function toEvents(raw, redactKeys) {
28
+ function toEvents(raw, redactKeys, shiftMs) {
18
29
  const events = Array.isArray(raw) ? raw : [];
19
30
  return events.slice(0, MAX_EVENTS).flatMap((e) => {
20
31
  if (!e || typeof e !== "object")
21
32
  return [];
22
33
  const ev = e;
23
- return [{ name: String(ev.name ?? "event"), timeMs: Number(ev.timeMs) || 0, attributes: toAttributes(ev.attributes, redactKeys) }];
34
+ return [{ name: String(ev.name ?? "event"), timeMs: shifted(Number(ev.timeMs) || 0, shiftMs), attributes: toAttributes(ev.attributes, redactKeys) }];
24
35
  });
25
36
  }
26
- /** Validate and redact one span posted by the browser. Returns null when it is not a valid span. */
27
- export function sanitizeClientSpan(raw, redactKeys) {
37
+ /** Validate and redact one span posted by the browser, moved by `shiftMs` (see browserClockOffset). Returns null when it is not a valid span. */
38
+ export function sanitizeClientSpan(raw, redactKeys, shiftMs = 0) {
28
39
  if (!raw || typeof raw !== "object")
29
40
  return null;
30
41
  const s = raw;
@@ -41,23 +52,23 @@ export function sanitizeClientSpan(raw, redactKeys) {
41
52
  kind: SPAN_KINDS.includes(s.kind) ? s.kind : "client",
42
53
  category: CATEGORIES.includes(s.category) ? s.category : "browser",
43
54
  service: typeof s.service === "string" && s.service ? s.service.slice(0, 100) : "browser",
44
- startMs: Number(s.startMs) || 0,
55
+ startMs: shifted(Number(s.startMs) || 0, shiftMs),
45
56
  durationMs: Math.max(0, Number(s.durationMs) || 0),
46
57
  status: s.status === "error" || s.status === "ok" ? s.status : "unset",
47
58
  statusMessage: typeof s.statusMessage === "string" ? s.statusMessage : null,
48
59
  attributes: toAttributes(s.attributes, redactKeys),
49
- events: toEvents(s.events, redactKeys),
60
+ events: toEvents(s.events, redactKeys, shiftMs),
50
61
  };
51
62
  }
52
- /** Validate and redact one browser log line. Returns null when it has no valid trace. */
53
- export function sanitizeClientLog(raw, redactKeys) {
63
+ /** Validate and redact one browser log line, moved by `shiftMs`. Returns null when it has no valid trace. */
64
+ export function sanitizeClientLog(raw, redactKeys, shiftMs = 0) {
54
65
  if (!raw || typeof raw !== "object")
55
66
  return null;
56
67
  const l = raw;
57
68
  if (typeof l.traceId !== "string" || !HEX32.test(l.traceId))
58
69
  return null;
59
70
  const log = {
60
- timeMs: Number(l.timeMs) || Date.now(),
71
+ timeMs: shifted(Number(l.timeMs), shiftMs) || Date.now(),
61
72
  level: LEVELS.includes(l.level) ? l.level : "info",
62
73
  category: text(l.category, "console", 100),
63
74
  message: typeof l.message === "string" ? l.message.slice(0, 4000) : "",
@@ -1 +1 @@
1
- {"version":3,"file":"client-spans.js","sourceRoot":"","sources":["../src/client-spans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-spans.js","sourceRoot":"","sources":["../src/client-spans.ts"],"names":[],"mappings":"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"}
package/dist/db.js CHANGED
@@ -32,7 +32,7 @@ function dbAttributes(info, sql, params, redactKeys) {
32
32
  const p = redactParams(params, redactKeys);
33
33
  if (p !== null)
34
34
  attributes["wizelens.db.parameters"] = p;
35
- return attributes;
35
+ return info.attributes ? { ...info.attributes, ...attributes } : attributes;
36
36
  }
37
37
  function spanName(attributes) {
38
38
  const op = String(attributes["db.operation.name"]);
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../src/frameworks/fastify.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;AAmDlC,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,SAC3B,OAAO,SAAS,OAAO,QAAQ,IAAI,KAAG,IAAI,CAahE"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../src/frameworks/fastify.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;AAoDlC,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,SAC3B,OAAO,SAAS,OAAO,QAAQ,IAAI,KAAG,IAAI,CAahE"}
@@ -1,6 +1,6 @@
1
1
  import { context } from "@opentelemetry/api";
2
2
  import { captureOf } from "../adapters/registry.js";
3
- import { captureRequest, isOwnPath, isPreflight, pathOf, serveOwnPath } from "../request-capture.js";
3
+ import { captureRequest, isOwnPath, isUntraced, pathOf, serveOwnPath, withoutTracing } from "../request-capture.js";
4
4
  import { instrumentPino } from "../logs/pino.js";
5
5
  import { markRouted } from "../route-timing.js";
6
6
  import { recordOn } from "../spans.js";
@@ -8,8 +8,10 @@ const requests = new WeakMap();
8
8
  function addHooks(app, d) {
9
9
  app.addHook("onRequest", (request, reply, done) => {
10
10
  const rawUrl = request.raw.url ?? "/";
11
- if (isOwnPath(d, pathOf(rawUrl)) || isPreflight(request.raw))
11
+ if (isOwnPath(d, pathOf(rawUrl)))
12
12
  return done();
13
+ if (isUntraced(request.raw))
14
+ return withoutTracing(() => done());
13
15
  const captured = captureRequest(d, request.raw, reply.raw, rawUrl, () => request.routeOptions?.url);
14
16
  requests.set(request.raw, captured);
15
17
  context.with(captured.ctx, () => done());
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/frameworks/fastify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../src/frameworks/fastify.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,21 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
1
2
  import type { WizeLens } from "../types.js";
3
+ export interface HonoContextLike {
4
+ env?: {
5
+ incoming?: IncomingMessage;
6
+ outgoing?: ServerResponse;
7
+ };
8
+ req: {
9
+ matchedRoutes?: {
10
+ method: string;
11
+ path: string;
12
+ }[];
13
+ };
14
+ error?: unknown;
15
+ }
2
16
  type HonoNext = () => Promise<void>;
17
+ /** The route of the handler that answered: the last matched route that is not middleware. */
18
+ export declare function honoRoute(c: HonoContextLike): string | undefined;
3
19
  /** Hono middleware for @hono/node-server: `app.use(wizelensHono(wizelens))`. Use it first. */
4
20
  export declare function wizelensHono(wizelens: WizeLens): (context_: unknown, next: HonoNext) => Promise<Response | void>;
5
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/frameworks/hono.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,KAAK,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAWpC,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,cACU,OAAO,QAAQ,QAAQ,KAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB1G"}
1
+ {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/frameworks/hono.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAChE,GAAG,EAAE;QAAE,aAAa,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAKpC,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,cACU,OAAO,QAAQ,QAAQ,KAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB1G"}
@@ -1,11 +1,11 @@
1
1
  import { context } from "@opentelemetry/api";
2
2
  import { captureOf } from "../adapters/registry.js";
3
- import { captureRequest, isOwnPath, isPreflight, pathOf, serveOwnPath } from "../request-capture.js";
3
+ import { captureRequest, isOwnPath, isUntraced, pathOf, serveOwnPath, withoutTracing } from "../request-capture.js";
4
4
  import { recordOn } from "../spans.js";
5
5
  /** Tells @hono/node-server that the response was already written to the Node response. */
6
6
  const alreadySent = () => new Response(null, { headers: { "x-hono-already-sent": "true" } });
7
7
  /** The route of the handler that answered: the last matched route that is not middleware. */
8
- function honoRoute(c) {
8
+ export function honoRoute(c) {
9
9
  const routes = c.req.matchedRoutes ?? [];
10
10
  return routes.filter((r) => r.method !== "ALL").pop()?.path;
11
11
  }
@@ -23,8 +23,8 @@ export function wizelensHono(wizelens) {
23
23
  await serveOwnPath(d, incoming, outgoing);
24
24
  return alreadySent();
25
25
  }
26
- if (isPreflight(incoming))
27
- return next();
26
+ if (isUntraced(incoming))
27
+ return withoutTracing(next);
28
28
  const { span, ctx } = captureRequest(d, incoming, outgoing, rawUrl, () => honoRoute(c));
29
29
  await context.with(ctx, next);
30
30
  if (c.error)
@@ -1 +1 @@
1
- {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/frameworks/hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAYvC,0FAA0F;AAC1F,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAE7F,6FAA6F;AAC7F,SAAS,SAAS,CAAC,CAAkB;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;AAC9D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,KAAK,UAAU,sBAAsB,CAAC,QAAiB,EAAE,IAAc;QAC5E,MAAM,CAAC,GAAG,QAA2B,CAAC;QACtC,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC;QACnC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/frameworks/hono.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAYvC,0FAA0F;AAC1F,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAE7F,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,CAAkB;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;AAC9D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,KAAK,UAAU,sBAAsB,CAAC,QAAiB,EAAE,IAAc;QAC5E,MAAM,CAAC,GAAG,QAA2B,CAAC;QACtC,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC;QACnC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC"}
@@ -7,6 +7,8 @@ interface KoaContextLike {
7
7
  _matchedRoute?: unknown;
8
8
  }
9
9
  type KoaNext = () => Promise<unknown>;
10
+ /** Koa's error handler removes all headers, then sets `err.headers`. Keep the WizeLens headers so the browser can link the failure. */
11
+ export declare function keepHeaders(err: unknown, res: ServerResponse): void;
10
12
  /** Koa middleware: `app.use(wizelensKoa(wizelens))`. Use it first. Reads the route from @koa/router. */
11
13
  export declare function wizelensKoa(wizelens: WizeLens): (ctx: KoaContextLike, next: KoaNext) => Promise<void>;
12
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../src/frameworks/koa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,UAAU,cAAc;IACtB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,KAAK,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAYtC,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,SACK,cAAc,QAAQ,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAoB/F"}
1
+ {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../src/frameworks/koa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,UAAU,cAAc;IACtB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,KAAK,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAItC,uIAAuI;AACvI,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAKnE;AAED,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,SACK,cAAc,QAAQ,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAoB/F"}
@@ -1,12 +1,12 @@
1
1
  import { context } from "@opentelemetry/api";
2
2
  import { HEADER_ENDPOINT, HEADER_TRACE } from "@wizeworks/lens-core";
3
3
  import { captureOf } from "../adapters/registry.js";
4
- import { captureRequest, isOwnPath, isPreflight, pathOf, serveOwnPath } from "../request-capture.js";
4
+ import { captureRequest, isOwnPath, isUntraced, pathOf, serveOwnPath, withoutTracing } from "../request-capture.js";
5
5
  import { watchRoute } from "../route-timing.js";
6
6
  import { recordOn } from "../spans.js";
7
7
  const KEEP = [HEADER_TRACE, HEADER_ENDPOINT, "Access-Control-Expose-Headers"];
8
8
  /** Koa's error handler removes all headers, then sets `err.headers`. Keep the WizeLens headers so the browser can link the failure. */
9
- function keepHeaders(err, res) {
9
+ export function keepHeaders(err, res) {
10
10
  if (!err || typeof err !== "object")
11
11
  return;
12
12
  const e = err;
@@ -24,8 +24,8 @@ export function wizelensKoa(wizelens) {
24
24
  ctx.respond = false;
25
25
  return serveOwnPath(d, ctx.req, ctx.res);
26
26
  }
27
- if (isPreflight(ctx.req))
28
- return void (await next());
27
+ if (isUntraced(ctx.req))
28
+ return void (await withoutTracing(next));
29
29
  const route = () => (typeof ctx._matchedRoute === "string" ? ctx._matchedRoute : undefined);
30
30
  const { span, ctx: otelCtx, startedAt } = captureRequest(d, ctx.req, ctx.res, rawUrl, route);
31
31
  watchRoute(ctx, "_matchedRoute", span, startedAt);
@@ -1 +1 @@
1
- {"version":3,"file":"koa.js","sourceRoot":"","sources":["../../src/frameworks/koa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAavC,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,+BAA+B,CAAC,CAAC;AAE9E,uIAAuI;AACvI,SAAS,WAAW,CAAC,GAAY,EAAE,GAAmB;IACpD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IAC5C,MAAM,CAAC,GAAG,GAA4C,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,KAAK,UAAU,qBAAqB,CAAC,GAAmB,EAAE,IAAa;QAC5E,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7F,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"koa.js","sourceRoot":"","sources":["../../src/frameworks/koa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAavC,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,+BAA+B,CAAC,CAAC;AAE9E,uIAAuI;AACvI,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,GAAmB;IAC3D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IAC5C,MAAM,CAAC,GAAG,GAA4C,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,KAAK,UAAU,qBAAqB,CAAC,GAAmB,EAAE,IAAa;QAC5E,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7F,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { IncomingMessage } from "node:http";
2
+ /** The Node request behind what Nest hands out: the Express request itself, or the Fastify request's `raw`. */
3
+ export declare function rawRequest(req: unknown): IncomingMessage | undefined;
4
+ /** Record a Nest exception on its request's span, once, however many hooks see it. */
5
+ export declare function recordNestError(req: IncomingMessage | undefined, err: unknown): void;
6
+ /** The handler's stream with `onError` called before an error goes on to Nest's exception filters. */
7
+ export declare function tapErrors(source: unknown, onError: (err: unknown) => void): unknown;
8
+ /** Hook Nest's RouterExceptionFilters so every exception its filters answer (guards, pipes, handlers, middleware) is recorded. Run before `app.init()`. */
9
+ export declare function hookExceptionFilters(filters: object): boolean;
10
+ //# sourceMappingURL=nest-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-errors.d.ts","sourceRoot":"","sources":["../../src/frameworks/nest-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAuBjD,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAIpE;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAKpF;AAoBD,sGAAsG;AACtG,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAanF;AAeD,2JAA2J;AAC3J,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU7D"}
@@ -0,0 +1,75 @@
1
+ import { patchMethod } from "../adapters/registry.js";
2
+ import { requestSpan } from "../request-capture.js";
3
+ import { recordOn } from "../spans.js";
4
+ const recorded = new WeakMap();
5
+ /** The Node request behind what Nest hands out: the Express request itself, or the Fastify request's `raw`. */
6
+ export function rawRequest(req) {
7
+ const r = req;
8
+ if (r?.raw && typeof r.raw === "object" && "headers" in r.raw)
9
+ return r.raw;
10
+ return r && typeof r === "object" && r.headers ? r : undefined;
11
+ }
12
+ /** Record a Nest exception on its request's span, once, however many hooks see it. */
13
+ export function recordNestError(req, err) {
14
+ const span = req ? requestSpan(req) : undefined;
15
+ if (!span || err === undefined || recorded.get(span) === err)
16
+ return;
17
+ recorded.set(span, err);
18
+ recordOn(span, err);
19
+ }
20
+ /** The HTTP status of a Nest HttpException, if it is one. */
21
+ function statusOf(err) {
22
+ const getStatus = err?.getStatus;
23
+ return typeof getStatus === "function" ? Number(getStatus.call(err)) : undefined;
24
+ }
25
+ /** An rxjs-compatible stream from a subscribe function: one of the source's own class, else an interop observable. */
26
+ function streamLike(source, subscribe) {
27
+ const Ctor = source.constructor;
28
+ if (typeof Ctor === "function" && Ctor !== Object)
29
+ return new Ctor(subscribe);
30
+ const out = { subscribe };
31
+ const self = () => out;
32
+ out["@@observable"] = self;
33
+ const symbol = Symbol.observable;
34
+ if (symbol)
35
+ out[symbol] = self;
36
+ return out;
37
+ }
38
+ /** The handler's stream with `onError` called before an error goes on to Nest's exception filters. */
39
+ export function tapErrors(source, onError) {
40
+ const s = source;
41
+ if (!s || typeof s.subscribe !== "function")
42
+ return source;
43
+ return streamLike(s, (subscriber) => s.subscribe({
44
+ next: (value) => subscriber.next?.(value),
45
+ error: (err) => {
46
+ onError(err);
47
+ subscriber.error?.(err);
48
+ },
49
+ complete: () => subscriber.complete?.(),
50
+ }));
51
+ }
52
+ /** Wrap one exception handler: every exception it is given is recorded, except the 404 of a path no route matched. */
53
+ function hookHandler(handler, appLevel) {
54
+ if (!handler || typeof handler !== "object")
55
+ return;
56
+ patchMethod(handler, "next", (next) => function (exception, host) {
57
+ if (!(appLevel && statusOf(exception) === 404)) {
58
+ const req = host?.getArgByIndex?.(0);
59
+ recordNestError(rawRequest(req), exception);
60
+ }
61
+ return next.call(this, exception, host);
62
+ }, "nest-filter");
63
+ }
64
+ /** Hook Nest's RouterExceptionFilters so every exception its filters answer (guards, pipes, handlers, middleware) is recorded. Run before `app.init()`. */
65
+ export function hookExceptionFilters(filters) {
66
+ return patchMethod(filters, "create", (original) => function (...args) {
67
+ const handler = original.apply(this, args);
68
+ const owner = args[0];
69
+ // The not-found and error handlers of the app are made for a plain `{}`, not a controller.
70
+ const appLevel = !!owner && Object.getPrototypeOf(owner) === Object.prototype;
71
+ hookHandler(handler, appLevel);
72
+ return handler;
73
+ }, "nest-filters");
74
+ }
75
+ //# sourceMappingURL=nest-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-errors.js","sourceRoot":"","sources":["../../src/frameworks/nest-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ type Target = object;
2
+ /** The parts of a Nest ExecutionContext the add-on reads. */
3
+ export interface NestContextLike {
4
+ getClass(): Target & {
5
+ name?: string;
6
+ };
7
+ getHandler(): Target & {
8
+ name?: string;
9
+ };
10
+ }
11
+ /** The parts of a Nest app the add-on reads: its global prefix and versioning. Both are private config, read when present. */
12
+ export interface NestConfigHolder {
13
+ config?: {
14
+ getGlobalPrefix?: () => string | undefined;
15
+ getVersioning?: () => {
16
+ type?: number;
17
+ prefix?: string | false;
18
+ defaultVersion?: unknown;
19
+ } | undefined;
20
+ };
21
+ }
22
+ /** Join route parts into "/a/b/:id", with no empty, double, or trailing slashes. */
23
+ export declare const joinRoute: (...parts: string[]) => string;
24
+ /** True when a route template ("/orders/:id", "/files/*path", "/a{/:b}") matches a path. */
25
+ export declare function routeMatches(template: string, path: string): boolean;
26
+ /** The version this handler declares, else its controller's, as a list. A neutral version (a symbol) is no version. */
27
+ export declare function versionsOf(ctx: NestContextLike, fallback?: unknown): string[];
28
+ /** The route template of a Nest handler from its metadata, picked by the path it answered. Undefined when there is no metadata. */
29
+ export declare function nestRoute(ctx: NestContextLike, app: NestConfigHolder | undefined, path: string): string | undefined;
30
+ export {};
31
+ //# sourceMappingURL=nest-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-route.d.ts","sourceRoot":"","sources":["../../src/frameworks/nest-route.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,MAAM,CAAC;AAErB,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,IAAI,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,UAAU,IAAI,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,8HAA8H;AAC9H,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QAC3C,aAAa,CAAC,EAAE,MAAM;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;YAAC,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,SAAS,CAAC;KACxG,CAAC;CACH;AAYD,oFAAoF;AACpF,eAAO,MAAM,SAAS,aAAc,MAAM,EAAE,KAAG,MAA4E,CAAC;AAE5H,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpE;AAED,uHAAuH;AACvH,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAG7E;AAsBD,mIAAmI;AACnI,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInH"}
@@ -0,0 +1,58 @@
1
+ // Nest's metadata keys (@nestjs/common constants) and its URI versioning type, so the add-on has no dependency on Nest.
2
+ const PATH_METADATA = "path";
3
+ const VERSION_METADATA = "__version__";
4
+ const VERSIONING_URI = 0;
5
+ const metadata = (key, target) => Reflect.getMetadata?.(key, target);
6
+ const listOf = (value) => {
7
+ const list = Array.isArray(value) ? value : [value];
8
+ return list.filter((v) => typeof v === "string");
9
+ };
10
+ const orRoot = (list) => (list.length > 0 ? list : [""]);
11
+ /** Join route parts into "/a/b/:id", with no empty, double, or trailing slashes. */
12
+ export const joinRoute = (...parts) => `/${parts.flatMap((p) => p.split("/")).filter(Boolean).join("/")}`;
13
+ /** True when a route template ("/orders/:id", "/files/*path", "/a{/:b}") matches a path. */
14
+ export function routeMatches(template, path) {
15
+ const pattern = template
16
+ .replace(/[.+?^$()|[\]\\]/g, "\\$&")
17
+ .replace(/\{/g, "(?:")
18
+ .replace(/\}/g, ")?")
19
+ .replace(/:\w+/g, "[^/]+")
20
+ .replace(/\*\w*/g, ".*");
21
+ return new RegExp(`^${pattern}/?$`).test(path);
22
+ }
23
+ /** The version this handler declares, else its controller's, as a list. A neutral version (a symbol) is no version. */
24
+ export function versionsOf(ctx, fallback) {
25
+ const declared = metadata(VERSION_METADATA, ctx.getHandler()) ?? metadata(VERSION_METADATA, ctx.getClass()) ?? fallback;
26
+ return listOf(declared);
27
+ }
28
+ /** The URI version segments ("v1") a route can start with, or [""] when URI versioning is off. */
29
+ function uriVersions(ctx, app) {
30
+ const versioning = app?.config?.getVersioning?.();
31
+ if (!versioning || versioning.type !== VERSIONING_URI)
32
+ return [""];
33
+ const prefix = versioning.prefix === false ? "" : (versioning.prefix ?? "v");
34
+ return orRoot(versionsOf(ctx, versioning.defaultVersion).map((v) => `${prefix}${v}`));
35
+ }
36
+ /** Every route Nest could have registered this handler under: global prefix (or excluded), version, controller path, handler path. */
37
+ function candidates(ctx, app) {
38
+ const prefix = app?.config?.getGlobalPrefix?.() ?? "";
39
+ const prefixes = prefix ? [prefix, ""] : [""];
40
+ const versions = uriVersions(ctx, app);
41
+ const controllers = orRoot(listOf(metadata(PATH_METADATA, ctx.getClass())));
42
+ const handlers = orRoot(listOf(metadata(PATH_METADATA, ctx.getHandler())));
43
+ const out = [];
44
+ for (const p of prefixes)
45
+ for (const v of versions)
46
+ for (const c of controllers)
47
+ for (const h of handlers)
48
+ out.push(joinRoute(p, v, c, h));
49
+ return out;
50
+ }
51
+ /** The route template of a Nest handler from its metadata, picked by the path it answered. Undefined when there is no metadata. */
52
+ export function nestRoute(ctx, app, path) {
53
+ if (metadata(PATH_METADATA, ctx.getHandler()) === undefined)
54
+ return undefined;
55
+ const all = candidates(ctx, app);
56
+ return all.find((route) => routeMatches(route, path)) ?? all[0];
57
+ }
58
+ //# sourceMappingURL=nest-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-route.js","sourceRoot":"","sources":["../../src/frameworks/nest-route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { WizeLens } from "../types.js";
2
+ export interface NestOptions {
3
+ /** Add the request capture for the app's platform (Express middleware or the Fastify plugin). False when you added it yourself. Default true. */
4
+ capture?: boolean;
5
+ }
6
+ /** A NestJS interceptor that names the request by its controller and handler and records what they throw: `app.useGlobalInterceptors(new WizeLensNestInterceptor(app))`. */
7
+ export declare class WizeLensNestInterceptor {
8
+ private readonly app;
9
+ constructor(app?: unknown);
10
+ intercept(context: unknown, next: unknown): unknown;
11
+ }
12
+ /** Add the global interceptor and the exception filter hook to a Nest app, once. */
13
+ export declare function addNestHooks(app: unknown): boolean;
14
+ /** Trace a NestJS app on Express or Fastify: call `instrumentNest(wizelens, app)` right after `NestFactory.create`, before `app.listen()`. */
15
+ export declare function instrumentNest(wizelens: WizeLens, app: unknown, options?: NestOptions): boolean;
16
+ //# sourceMappingURL=nest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest.d.ts","sourceRoot":"","sources":["../../src/frameworks/nest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAO,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqBjD,MAAM,WAAW,WAAW;IAC1B,iJAAiJ;IACjJ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgBD,4KAA4K;AAC5K,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,GAAG,CAAC,EAAE,OAAO,EAExB;IAED,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAQlD;CACF;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CASlD;AASD,8IAA8I;AAC9I,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAMnG"}
@@ -0,0 +1,73 @@
1
+ import { captureOf } from "../adapters/registry.js";
2
+ import { pathOf, requestSpan } from "../request-capture.js";
3
+ import { setFallbackRoute } from "../request-naming.js";
4
+ import { wizelensFastify } from "./fastify.js";
5
+ import { hookExceptionFilters, rawRequest, recordNestError, tapErrors } from "./nest-errors.js";
6
+ import { nestRoute, versionsOf } from "./nest-route.js";
7
+ const INSTALLED = Symbol.for("wizeworks.wizelens.nest");
8
+ /** Controller, handler, version, and the metadata route of the handler that answers this request. */
9
+ function describeHandler(span, ctx, app, path) {
10
+ const controller = ctx.getClass().name;
11
+ const handler = ctx.getHandler().name;
12
+ if (controller)
13
+ span.setAttribute("nest.controller", controller);
14
+ if (handler)
15
+ span.setAttribute("nest.handler", handler);
16
+ const version = versionsOf(ctx, app?.config?.getVersioning?.()?.defaultVersion)[0];
17
+ if (version)
18
+ span.setAttribute("nest.version", version);
19
+ const route = nestRoute(ctx, app, path);
20
+ if (route)
21
+ setFallbackRoute(span, route);
22
+ }
23
+ /** A NestJS interceptor that names the request by its controller and handler and records what they throw: `app.useGlobalInterceptors(new WizeLensNestInterceptor(app))`. */
24
+ export class WizeLensNestInterceptor {
25
+ app;
26
+ constructor(app) {
27
+ this.app = app;
28
+ }
29
+ intercept(context, next) {
30
+ const ctx = context;
31
+ const handler = next;
32
+ const req = ctx.getType?.() === "http" ? rawRequest(ctx.switchToHttp?.().getRequest?.()) : undefined;
33
+ const span = req ? requestSpan(req) : undefined;
34
+ if (!req || !span)
35
+ return handler.handle();
36
+ describeHandler(span, ctx, this.app, pathOf(req.originalUrl ?? req.url ?? "/"));
37
+ return tapErrors(handler.handle(), (err) => recordNestError(req, err));
38
+ }
39
+ }
40
+ /** Add the global interceptor and the exception filter hook to a Nest app, once. */
41
+ export function addNestHooks(app) {
42
+ const a = app;
43
+ if (!a || typeof a.useGlobalInterceptors !== "function")
44
+ return false;
45
+ if (a[INSTALLED])
46
+ return true;
47
+ a[INSTALLED] = true;
48
+ a.useGlobalInterceptors(new WizeLensNestInterceptor(a));
49
+ const filters = a.routesResolver?.routerExceptionsFilter;
50
+ if (filters)
51
+ hookExceptionFilters(Object.getPrototypeOf(filters));
52
+ return true;
53
+ }
54
+ /** Capture requests the way the app's platform needs: the Express middleware, or the Fastify plugin. */
55
+ function addCapture(wizelens, app) {
56
+ const platform = app.getHttpAdapter?.()?.getType?.();
57
+ if (platform === "express")
58
+ app.use?.(wizelens.middleware);
59
+ else if (platform === "fastify")
60
+ void app.register?.(wizelensFastify(wizelens));
61
+ }
62
+ /** Trace a NestJS app on Express or Fastify: call `instrumentNest(wizelens, app)` right after `NestFactory.create`, before `app.listen()`. */
63
+ export function instrumentNest(wizelens, app, options = {}) {
64
+ const a = app;
65
+ if (!captureOf(wizelens) || !a || typeof a.useGlobalInterceptors !== "function")
66
+ return false;
67
+ if (a[INSTALLED])
68
+ return true;
69
+ if (options.capture !== false)
70
+ addCapture(wizelens, a);
71
+ return addNestHooks(a);
72
+ }
73
+ //# sourceMappingURL=nest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest.js","sourceRoot":"","sources":["../../src/frameworks/nest.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
+ import { type Span as OtelSpan } from "@opentelemetry/api";
1
2
  import { type CaptureDeps } from "../request-capture.js";
2
3
  /** True for a path that is not traced, for example a static file. */
3
4
  export type IgnorePath = (path: string) => boolean;
5
+ /** A string attribute of a live SDK span. The OTel API has no getter, so this reads the SDK field. */
6
+ export declare function attributeOf(span: OtelSpan, key: string): string | undefined;
4
7
  /** Trace each request of every node:http and node:https server in this process. For frameworks with no middleware hook, such as Next.js. */
5
8
  export declare function traceServers(d: CaptureDeps, ignore: IgnorePath): void;
6
9
  //# sourceMappingURL=node-server.d.ts.map