@wizeworks/lens-node 0.3.0-alpha.3 → 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 (318) 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 +19 -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 +1 -1
  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/db.js +1 -1
  110. package/dist/db.js.map +1 -1
  111. package/dist/frameworks/hono.d.ts +16 -0
  112. package/dist/frameworks/hono.d.ts.map +1 -1
  113. package/dist/frameworks/hono.js +1 -1
  114. package/dist/frameworks/hono.js.map +1 -1
  115. package/dist/frameworks/koa.d.ts +2 -0
  116. package/dist/frameworks/koa.d.ts.map +1 -1
  117. package/dist/frameworks/koa.js +1 -1
  118. package/dist/frameworks/koa.js.map +1 -1
  119. package/dist/frameworks/nest-errors.d.ts +10 -0
  120. package/dist/frameworks/nest-errors.d.ts.map +1 -0
  121. package/dist/frameworks/nest-errors.js +75 -0
  122. package/dist/frameworks/nest-errors.js.map +1 -0
  123. package/dist/frameworks/nest-route.d.ts +31 -0
  124. package/dist/frameworks/nest-route.d.ts.map +1 -0
  125. package/dist/frameworks/nest-route.js +58 -0
  126. package/dist/frameworks/nest-route.js.map +1 -0
  127. package/dist/frameworks/nest.d.ts +16 -0
  128. package/dist/frameworks/nest.d.ts.map +1 -0
  129. package/dist/frameworks/nest.js +73 -0
  130. package/dist/frameworks/nest.js.map +1 -0
  131. package/dist/frameworks/node-server.d.ts +3 -0
  132. package/dist/frameworks/node-server.d.ts.map +1 -1
  133. package/dist/frameworks/node-server.js +1 -1
  134. package/dist/frameworks/node-server.js.map +1 -1
  135. package/dist/graphql/document.d.ts +13 -0
  136. package/dist/graphql/document.d.ts.map +1 -0
  137. package/dist/graphql/document.js +62 -0
  138. package/dist/graphql/document.js.map +1 -0
  139. package/dist/graphql/index.d.ts +11 -0
  140. package/dist/graphql/index.d.ts.map +1 -0
  141. package/dist/graphql/index.js +83 -0
  142. package/dist/graphql/index.js.map +1 -0
  143. package/dist/graphql/operation.d.ts +37 -0
  144. package/dist/graphql/operation.d.ts.map +1 -0
  145. package/dist/graphql/operation.js +58 -0
  146. package/dist/graphql/operation.js.map +1 -0
  147. package/dist/graphql/resolvers.d.ts +5 -0
  148. package/dist/graphql/resolvers.d.ts.map +1 -0
  149. package/dist/graphql/resolvers.js +79 -0
  150. package/dist/graphql/resolvers.js.map +1 -0
  151. package/dist/graphql/shared.d.ts +14 -0
  152. package/dist/graphql/shared.d.ts.map +1 -0
  153. package/dist/graphql/shared.js +21 -0
  154. package/dist/graphql/shared.js.map +1 -0
  155. package/dist/http-client.d.ts +8 -0
  156. package/dist/http-client.d.ts.map +1 -0
  157. package/dist/http-client.js +132 -0
  158. package/dist/http-client.js.map +1 -0
  159. package/dist/hub-connect.d.ts +2 -0
  160. package/dist/hub-connect.d.ts.map +1 -1
  161. package/dist/hub-connect.js +3 -1
  162. package/dist/hub-connect.js.map +1 -1
  163. package/dist/index.d.ts +12 -0
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +9 -0
  166. package/dist/index.js.map +1 -1
  167. package/dist/info.d.ts +2 -0
  168. package/dist/info.d.ts.map +1 -1
  169. package/dist/info.js +1 -1
  170. package/dist/info.js.map +1 -1
  171. package/dist/kit.d.ts +3 -1
  172. package/dist/kit.d.ts.map +1 -1
  173. package/dist/kit.js +1 -0
  174. package/dist/kit.js.map +1 -1
  175. package/dist/logger.d.ts +4 -4
  176. package/dist/logger.d.ts.map +1 -1
  177. package/dist/logger.js +11 -7
  178. package/dist/logger.js.map +1 -1
  179. package/dist/logs/bunyan.d.ts +1 -1
  180. package/dist/logs/bunyan.d.ts.map +1 -1
  181. package/dist/logs/bunyan.js +2 -3
  182. package/dist/logs/bunyan.js.map +1 -1
  183. package/dist/logs/consola.d.ts +1 -1
  184. package/dist/logs/consola.d.ts.map +1 -1
  185. package/dist/logs/consola.js +1 -1
  186. package/dist/logs/consola.js.map +1 -1
  187. package/dist/logs/console.d.ts +1 -1
  188. package/dist/logs/console.d.ts.map +1 -1
  189. package/dist/logs/console.js +5 -3
  190. package/dist/logs/console.js.map +1 -1
  191. package/dist/logs/otel.d.ts.map +1 -1
  192. package/dist/logs/otel.js +1 -3
  193. package/dist/logs/otel.js.map +1 -1
  194. package/dist/logs/pino.d.ts +1 -1
  195. package/dist/logs/pino.d.ts.map +1 -1
  196. package/dist/logs/pino.js +2 -3
  197. package/dist/logs/pino.js.map +1 -1
  198. package/dist/logs/winston.d.ts +1 -1
  199. package/dist/logs/winston.d.ts.map +1 -1
  200. package/dist/logs/winston.js +2 -3
  201. package/dist/logs/winston.js.map +1 -1
  202. package/dist/loose-logs.d.ts +13 -0
  203. package/dist/loose-logs.d.ts.map +1 -0
  204. package/dist/loose-logs.js +21 -0
  205. package/dist/loose-logs.js.map +1 -0
  206. package/dist/mcp-find.d.ts.map +1 -1
  207. package/dist/mcp-find.js +40 -8
  208. package/dist/mcp-find.js.map +1 -1
  209. package/dist/mcp-memory.d.ts +7 -0
  210. package/dist/mcp-memory.d.ts.map +1 -0
  211. package/dist/mcp-memory.js +10 -0
  212. package/dist/mcp-memory.js.map +1 -0
  213. package/dist/mcp-overview.d.ts +5 -0
  214. package/dist/mcp-overview.d.ts.map +1 -0
  215. package/dist/mcp-overview.js +71 -0
  216. package/dist/mcp-overview.js.map +1 -0
  217. package/dist/mcp-page.d.ts +28 -0
  218. package/dist/mcp-page.d.ts.map +1 -0
  219. package/dist/mcp-page.js +77 -0
  220. package/dist/mcp-page.js.map +1 -0
  221. package/dist/mcp-problems.d.ts +5 -0
  222. package/dist/mcp-problems.d.ts.map +1 -0
  223. package/dist/mcp-problems.js +56 -0
  224. package/dist/mcp-problems.js.map +1 -0
  225. package/dist/mcp-projects.d.ts.map +1 -1
  226. package/dist/mcp-projects.js +7 -2
  227. package/dist/mcp-projects.js.map +1 -1
  228. package/dist/mcp-search.d.ts.map +1 -1
  229. package/dist/mcp-search.js +9 -5
  230. package/dist/mcp-search.js.map +1 -1
  231. package/dist/mcp-shared.d.ts +37 -1
  232. package/dist/mcp-shared.d.ts.map +1 -1
  233. package/dist/mcp-shared.js +3 -0
  234. package/dist/mcp-shared.js.map +1 -1
  235. package/dist/mcp-store.d.ts +2 -2
  236. package/dist/mcp-store.d.ts.map +1 -1
  237. package/dist/mcp-store.js +6 -5
  238. package/dist/mcp-store.js.map +1 -1
  239. package/dist/mcp-tags.d.ts +8 -0
  240. package/dist/mcp-tags.d.ts.map +1 -0
  241. package/dist/mcp-tags.js +22 -0
  242. package/dist/mcp-tags.js.map +1 -0
  243. package/dist/mcp-traffic.d.ts +5 -0
  244. package/dist/mcp-traffic.d.ts.map +1 -0
  245. package/dist/mcp-traffic.js +87 -0
  246. package/dist/mcp-traffic.js.map +1 -0
  247. package/dist/mcp.d.ts +4 -1
  248. package/dist/mcp.d.ts.map +1 -1
  249. package/dist/mcp.js +14 -3
  250. package/dist/mcp.js.map +1 -1
  251. package/dist/messaging/bullmq.d.ts +4 -0
  252. package/dist/messaging/bullmq.d.ts.map +1 -0
  253. package/dist/messaging/bullmq.js +137 -0
  254. package/dist/messaging/bullmq.js.map +1 -0
  255. package/dist/messaging/shared.d.ts +10 -4
  256. package/dist/messaging/shared.d.ts.map +1 -1
  257. package/dist/messaging/shared.js +13 -4
  258. package/dist/messaging/shared.js.map +1 -1
  259. package/dist/messaging/sqs-message.d.ts +35 -0
  260. package/dist/messaging/sqs-message.d.ts.map +1 -0
  261. package/dist/messaging/sqs-message.js +66 -0
  262. package/dist/messaging/sqs-message.js.map +1 -0
  263. package/dist/messaging/sqs.d.ts +4 -0
  264. package/dist/messaging/sqs.d.ts.map +1 -0
  265. package/dist/messaging/sqs.js +104 -0
  266. package/dist/messaging/sqs.js.map +1 -0
  267. package/dist/processor.d.ts +2 -1
  268. package/dist/processor.d.ts.map +1 -1
  269. package/dist/processor.js +8 -3
  270. package/dist/processor.js.map +1 -1
  271. package/dist/request-capture.d.ts.map +1 -1
  272. package/dist/request-capture.js +2 -1
  273. package/dist/request-capture.js.map +1 -1
  274. package/dist/request-naming.d.ts +8 -0
  275. package/dist/request-naming.d.ts.map +1 -0
  276. package/dist/request-naming.js +29 -0
  277. package/dist/request-naming.js.map +1 -0
  278. package/dist/sampling.d.ts.map +1 -1
  279. package/dist/sampling.js +2 -2
  280. package/dist/sampling.js.map +1 -1
  281. package/dist/search-api.d.ts +4 -3
  282. package/dist/search-api.d.ts.map +1 -1
  283. package/dist/search-api.js +8 -7
  284. package/dist/search-api.js.map +1 -1
  285. package/dist/sourcemaps.d.ts +15 -0
  286. package/dist/sourcemaps.d.ts.map +1 -0
  287. package/dist/sourcemaps.js +68 -0
  288. package/dist/sourcemaps.js.map +1 -0
  289. package/dist/spans.d.ts +3 -0
  290. package/dist/spans.d.ts.map +1 -1
  291. package/dist/spans.js +9 -1
  292. package/dist/spans.js.map +1 -1
  293. package/dist/store-entries.d.ts +34 -0
  294. package/dist/store-entries.d.ts.map +1 -0
  295. package/dist/store-entries.js +70 -0
  296. package/dist/store-entries.js.map +1 -0
  297. package/dist/store.d.ts +4 -1
  298. package/dist/store.d.ts.map +1 -1
  299. package/dist/store.js +19 -22
  300. package/dist/store.js.map +1 -1
  301. package/dist/tags-api.d.ts +9 -0
  302. package/dist/tags-api.d.ts.map +1 -0
  303. package/dist/tags-api.js +16 -0
  304. package/dist/tags-api.js.map +1 -0
  305. package/dist/tracing.d.ts +6 -0
  306. package/dist/tracing.d.ts.map +1 -1
  307. package/dist/tracing.js +11 -7
  308. package/dist/tracing.js.map +1 -1
  309. package/dist/types.d.ts +16 -2
  310. package/dist/types.d.ts.map +1 -1
  311. package/dist/ui.d.ts.map +1 -1
  312. package/dist/ui.js +3 -2
  313. package/dist/ui.js.map +1 -1
  314. package/dist/wizelens.d.ts +3 -1
  315. package/dist/wizelens.d.ts.map +1 -1
  316. package/dist/wizelens.js +28 -12
  317. package/dist/wizelens.js.map +1 -1
  318. package/package.json +14 -4
@@ -0,0 +1,37 @@
1
+ import { type Attributes, type Span as OtelSpan } from "@opentelemetry/api";
2
+ import { type LocationLike } from "./document.js";
3
+ interface DefinitionLike {
4
+ kind: string;
5
+ operation?: string;
6
+ name?: {
7
+ value?: string;
8
+ };
9
+ }
10
+ export interface DocumentLike {
11
+ definitions?: readonly DefinitionLike[];
12
+ loc?: LocationLike;
13
+ }
14
+ export interface ExecutionArgsLike {
15
+ schema?: unknown;
16
+ document?: DocumentLike;
17
+ operationName?: string | null;
18
+ }
19
+ /** The operation one execute call runs. */
20
+ export interface Operation {
21
+ type: string;
22
+ name: string | undefined;
23
+ }
24
+ /** The call of `execute(args)`, or of graphql 15's `execute(schema, document, rootValue, contextValue, variables, operationName)`. */
25
+ export declare function callOf(args: readonly unknown[]): ExecutionArgsLike | null;
26
+ /** The operation a document runs: the one named `operationName`, or its only operation. */
27
+ export declare function operationOf(call: ExecutionArgsLike): Operation;
28
+ /** "query GetOrders", or "query" for an anonymous operation. */
29
+ export declare const spanNameOf: (op: Operation) => string;
30
+ /** The name an operation adds to its request's endpoint: its name, else "anonymous query". */
31
+ export declare const endpointPartOf: (op: Operation) => string;
32
+ /** Span attributes of one operation. The document keeps its shape; literal values are replaced, variables never stored. */
33
+ export declare function operationAttributes(op: Operation, call: ExecutionArgsLike, withDocument: boolean): Attributes;
34
+ /** Record the `errors` of an execution result (GraphQL answers errors, it does not throw them). */
35
+ export declare function recordResultErrors(span: OtelSpan, result: unknown): void;
36
+ export {};
37
+ //# sourceMappingURL=operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/graphql/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGhE,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AACD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AACD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AASD,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAID,sIAAsI;AACtI,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAMzE;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAI9D;AAED,gEAAgE;AAChE,eAAO,MAAM,UAAU,OAAQ,SAAS,KAAG,MAAuD,CAAC;AAEnG,8FAA8F;AAC9F,eAAO,MAAM,cAAc,OAAQ,SAAS,KAAG,MAA2C,CAAC;AAE3F,2HAA2H;AAC3H,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,GAAG,UAAU,CAM7G;AAcD,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAOxE"}
@@ -0,0 +1,58 @@
1
+ import { SpanStatusCode } from "@opentelemetry/api";
2
+ import { documentText } from "./document.js";
3
+ const MAX_ERRORS = 10;
4
+ /** The call of `execute(args)`, or of graphql 15's `execute(schema, document, rootValue, contextValue, variables, operationName)`. */
5
+ export function callOf(args) {
6
+ const first = args[0];
7
+ if (args.length === 1 && first && typeof first === "object" && first.document)
8
+ return first;
9
+ const document = args[1];
10
+ if (!document?.definitions)
11
+ return null;
12
+ return { schema: args[0], document, operationName: args[5] };
13
+ }
14
+ /** The operation a document runs: the one named `operationName`, or its only operation. */
15
+ export function operationOf(call) {
16
+ const ops = (call.document?.definitions ?? []).filter((d) => d.kind === "OperationDefinition");
17
+ const wanted = call.operationName ? ops.find((d) => d.name?.value === call.operationName) : ops.length === 1 ? ops[0] : undefined;
18
+ return { type: wanted?.operation ?? "query", name: wanted?.name?.value ?? call.operationName ?? undefined };
19
+ }
20
+ /** "query GetOrders", or "query" for an anonymous operation. */
21
+ export const spanNameOf = (op) => (op.name ? `${op.type} ${op.name}` : op.type);
22
+ /** The name an operation adds to its request's endpoint: its name, else "anonymous query". */
23
+ export const endpointPartOf = (op) => op.name ?? `anonymous ${op.type}`;
24
+ /** Span attributes of one operation. The document keeps its shape; literal values are replaced, variables never stored. */
25
+ export function operationAttributes(op, call, withDocument) {
26
+ const attributes = { "graphql.operation.type": op.type };
27
+ if (op.name)
28
+ attributes["graphql.operation.name"] = op.name;
29
+ const text = withDocument ? documentText(call.document?.loc) : undefined;
30
+ if (text)
31
+ attributes["graphql.document"] = text;
32
+ return attributes;
33
+ }
34
+ function recordGraphqlError(span, error) {
35
+ const cause = error.originalError instanceof Error ? error.originalError : undefined;
36
+ const attributes = {
37
+ "exception.type": cause?.name ?? error.name ?? "GraphQLError",
38
+ "exception.message": error.message ?? String(error),
39
+ };
40
+ const stack = cause?.stack ?? error.stack;
41
+ if (stack)
42
+ attributes["exception.stacktrace"] = stack;
43
+ if (error.path?.length)
44
+ attributes["graphql.error.path"] = error.path.join(".");
45
+ span.addEvent("exception", attributes);
46
+ }
47
+ /** Record the `errors` of an execution result (GraphQL answers errors, it does not throw them). */
48
+ export function recordResultErrors(span, result) {
49
+ const errors = result?.errors;
50
+ if (!Array.isArray(errors) || errors.length === 0)
51
+ return;
52
+ for (const error of errors.slice(0, MAX_ERRORS))
53
+ recordGraphqlError(span, (error ?? {}));
54
+ span.setAttribute("graphql.error.count", errors.length);
55
+ const first = errors[0];
56
+ span.setStatus({ code: SpanStatusCode.ERROR, message: first?.message ?? "GraphQL error" });
57
+ }
58
+ //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/graphql/operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type Tracer } from "@opentelemetry/api";
2
+ import { type GraphqlOptions } from "./shared.js";
3
+ /** Wrap the resolvers of a schema once, by the options. Built-in introspection types are skipped. */
4
+ export declare function hookResolvers(tracer: Tracer, schema: unknown, options: GraphqlOptions): void;
5
+ //# sourceMappingURL=resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5F,OAAO,EAAa,KAAK,cAAc,EAA6B,MAAM,aAAa,CAAC;AAmFxF,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAQ5F"}
@@ -0,0 +1,79 @@
1
+ import { context, SpanKind, trace } from "@opentelemetry/api";
2
+ import { preciseNow } from "../precise.js";
3
+ import { recordOn } from "../spans.js";
4
+ import { afterCall, IN_OPERATION } from "./shared.js";
5
+ const hooked = new WeakSet();
6
+ const WRAPPED = Symbol.for("wizeworks.wizelens.graphql.resolver");
7
+ /** "orders.0.items" from graphql-js's linked path. */
8
+ function pathText(path) {
9
+ const keys = [];
10
+ for (let p = path; p; p = p.prev)
11
+ keys.unshift(p.key);
12
+ return keys.join(".");
13
+ }
14
+ function resolverAttributes(field, typeName, fieldType, info) {
15
+ const attributes = { "graphql.field.name": field, "graphql.parent.type": typeName };
16
+ if (fieldType !== undefined)
17
+ attributes["graphql.field.type"] = String(fieldType);
18
+ const path = pathText(info?.path);
19
+ if (path)
20
+ attributes["graphql.field.path"] = path;
21
+ return attributes;
22
+ }
23
+ /** A resolver that runs inside its own span. For the "all" mode. */
24
+ function spanAround(tracer, name, attrs, original) {
25
+ return function (...args) {
26
+ if (!context.active().getValue(IN_OPERATION))
27
+ return original.apply(this, args);
28
+ const span = tracer.startSpan(name, { kind: SpanKind.INTERNAL, attributes: attrs(args[3]) });
29
+ return context.with(trace.setSpan(context.active(), span), () => afterCall(() => original.apply(this, args), (_result, error) => {
30
+ if (error)
31
+ recordOn(span, error);
32
+ span.end();
33
+ }));
34
+ };
35
+ }
36
+ /** A resolver timed in place: only a slow one gets a span, written after it finished. For the "slow" mode. */
37
+ function spanWhenSlow(tracer, name, attrs, original, slowMs) {
38
+ return function (...args) {
39
+ const ctx = context.active();
40
+ if (!ctx.getValue(IN_OPERATION))
41
+ return original.apply(this, args);
42
+ const startedMs = preciseNow();
43
+ return afterCall(() => original.apply(this, args), (_result, error) => {
44
+ const endMs = preciseNow();
45
+ // A fast failure is already in the operation's errors.
46
+ if (endMs - startedMs < slowMs)
47
+ return;
48
+ const span = tracer.startSpan(name, { kind: SpanKind.INTERNAL, startTime: startedMs, attributes: attrs(args[3]) }, ctx);
49
+ if (error)
50
+ recordOn(span, error);
51
+ span.end(endMs);
52
+ });
53
+ };
54
+ }
55
+ function wrapField(tracer, typeName, field, options) {
56
+ const original = field.resolve;
57
+ if (typeof original !== "function" || original[WRAPPED])
58
+ return;
59
+ const fieldName = field.name ?? "field";
60
+ const attrs = (info) => resolverAttributes(fieldName, typeName, field.type, info);
61
+ const name = `${typeName}.${fieldName}`;
62
+ const wrapped = options.resolvers === "all" ? spanAround(tracer, name, attrs, original) : spanWhenSlow(tracer, name, attrs, original, options.slowResolverMs ?? 50);
63
+ Object.defineProperty(wrapped, WRAPPED, { value: true });
64
+ field.resolve = wrapped;
65
+ }
66
+ /** Wrap the resolvers of a schema once, by the options. Built-in introspection types are skipped. */
67
+ export function hookResolvers(tracer, schema, options) {
68
+ const s = schema;
69
+ if (options.resolvers === "none" || !s || typeof s.getTypeMap !== "function" || hooked.has(s))
70
+ return;
71
+ hooked.add(s);
72
+ for (const [typeName, type] of Object.entries(s.getTypeMap())) {
73
+ if (typeName.startsWith("__") || typeof type?.getFields !== "function")
74
+ continue;
75
+ for (const field of Object.values(type.getFields()))
76
+ wrapField(tracer, typeName, field, options);
77
+ }
78
+ }
79
+ //# sourceMappingURL=resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAe,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAuB,YAAY,EAAe,MAAM,aAAa,CAAC;AAuBxF,MAAM,MAAM,GAAG,IAAI,OAAO,EAAU,CAAC;AACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAElE,sDAAsD;AACtD,SAAS,QAAQ,CAAC,IAA0B;IAC1C,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI;QAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,QAAgB,EAAE,SAAkB,EAAE,IAA0B;IACzG,MAAM,UAAU,GAAe,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC;IAChG,IAAI,SAAS,KAAK,SAAS;QAAE,UAAU,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI;QAAE,UAAU,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;IAClD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,oEAAoE;AACpE,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,KAAiD,EAAE,QAAgB;IACnH,OAAO,UAAyB,GAAG,IAAe;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC,EAAE,CAAC,CAAC;QACzG,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAC9D,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC7D,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,SAAS,YAAY,CAAC,MAAc,EAAE,IAAY,EAAE,KAAiD,EAAE,QAAgB,EAAE,MAAc;IACrI,OAAO,UAAyB,GAAG,IAAe;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACpE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;YAC3B,uDAAuD;YACvD,IAAI,KAAK,GAAG,SAAS,GAAG,MAAM;gBAAE,OAAO;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpI,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,KAAgB,EAAE,OAAuB;IAC5F,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAK,QAA+C,CAAC,OAAO,CAAC;QAAE,OAAO;IACxG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,IAA0B,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IACpK,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,MAAe,EAAE,OAAuB;IACpF,MAAM,CAAC,GAAG,MAAuC,CAAC;IAClD,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO;IACtG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU;YAAE,SAAS;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnG,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface GraphqlOptions {
2
+ /** Resolver spans: "slow" (default) for resolvers at or over `slowResolverMs`, "all" for every resolver with its own `resolve`, "none" for none. */
3
+ resolvers?: "slow" | "all" | "none";
4
+ /** A resolver at least this slow (ms) gets a span in "slow" mode. Default 50. */
5
+ slowResolverMs?: number;
6
+ /** Keep the operation's document, with literal values replaced, as `graphql.document`. Default true. */
7
+ document?: boolean;
8
+ }
9
+ /** Set inside a traced operation: only its resolvers are traced. */
10
+ export declare const IN_OPERATION: symbol;
11
+ export type Method = (this: unknown, ...args: unknown[]) => unknown;
12
+ /** Call `fn` and run `done` when it settles, sync or async, with its result or error. Returns what `fn` returns. */
13
+ export declare function afterCall<T>(fn: () => T, done: (result: unknown, error: unknown) => void): T;
14
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/graphql/shared.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,oJAAoJ;IACpJ,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oEAAoE;AACpE,eAAO,MAAM,YAAY,QAA2D,CAAC;AAErF,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAEpE,oHAAoH;AACpH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,CAAC,CAW5F"}
@@ -0,0 +1,21 @@
1
+ import { createContextKey } from "@opentelemetry/api";
2
+ import { isThenable } from "../db.js";
3
+ /** Set inside a traced operation: only its resolvers are traced. */
4
+ export const IN_OPERATION = createContextKey("wizeworks.wizelens.graphql.operation");
5
+ /** Call `fn` and run `done` when it settles, sync or async, with its result or error. Returns what `fn` returns. */
6
+ export function afterCall(fn, done) {
7
+ let out;
8
+ try {
9
+ out = fn();
10
+ }
11
+ catch (err) {
12
+ done(undefined, err ?? new Error("GraphQL call failed"));
13
+ throw err;
14
+ }
15
+ if (isThenable(out))
16
+ out.then((value) => done(value, undefined), (err) => done(undefined, err ?? new Error("rejected")));
17
+ else
18
+ done(out, undefined);
19
+ return out;
20
+ }
21
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/graphql/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAWtC,oEAAoE;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,sCAAsC,CAAC,CAAC;AAIrF,oHAAoH;AACpH,MAAM,UAAU,SAAS,CAAI,EAAW,EAAE,IAA+C;IACvF,IAAI,GAAM,CAAC;IACX,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;;QAC7H,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ClientRequest } from "node:http";
2
+ import { type Tracer } from "@opentelemetry/api";
3
+ import { type OnRemote } from "./client-attributes.js";
4
+ /** The URL a request goes to, without user name or password. A proxied request carries its full URL as the path. */
5
+ export declare function urlOf(req: ClientRequest): URL | undefined;
6
+ /** Trace outgoing node:http and node:https calls made inside a request, as fetch calls are. Returns the stop function. */
7
+ export declare function instrumentHttp(tracer: Tracer, onRemote: OnRemote): () => void;
8
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,WAAW,CAAC;AAChE,OAAO,EAAkG,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjJ,OAAO,EAAkE,KAAK,QAAQ,EAAmC,MAAM,wBAAwB,CAAC;AA4BxJ,oHAAoH;AACpH,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,GAAG,GAAG,SAAS,CAWzD;AA0DD,0HAA0H;AAC1H,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CA2B7E"}
@@ -0,0 +1,132 @@
1
+ import { subscribe, unsubscribe } from "node:diagnostics_channel";
2
+ import { context, isSpanContextValid, propagation, SpanKind, trace } from "@opentelemetry/api";
3
+ import { isTracingSuppressed } from "@opentelemetry/core";
4
+ import { HEADER_ENDPOINT, HEADER_HOP } from "@wizeworks/lens-core";
5
+ import { clientMethod, clientRequestAttributes, clientSpanName, isAbort, setClientError, setClientStatus } from "./client-attributes.js";
6
+ // Node publishes these for every ClientRequest: http.request, http.get, https.*, and new ClientRequest through any Agent.
7
+ const CREATED = "http.client.request.created";
8
+ const START = "http.client.request.start";
9
+ const RESPONSE = "http.client.response.finish";
10
+ const ERROR = "http.client.request.error";
11
+ const ABSOLUTE = /^https?:\/\//i;
12
+ /** The port in a Host header, when it names the host the request connects to. */
13
+ function portIn(header, host) {
14
+ if (typeof header !== "string")
15
+ return undefined;
16
+ try {
17
+ const url = new URL(`http://${header}`);
18
+ return url.hostname.replace(/^\[|\]$/g, "").toLowerCase() === host.toLowerCase() ? url.port : undefined;
19
+ }
20
+ catch {
21
+ return undefined;
22
+ }
23
+ }
24
+ /** The URL a request goes to, without user name or password. A proxied request carries its full URL as the path. */
25
+ export function urlOf(req) {
26
+ try {
27
+ const host = req.host.includes(":") && !req.host.startsWith("[") ? `[${req.host}]` : req.host;
28
+ const port = portIn(req.getHeader("host"), req.host);
29
+ const url = ABSOLUTE.test(req.path) ? new URL(req.path) : new URL(req.path, `${req.protocol}//${host}${port ? `:${port}` : ""}`);
30
+ url.username = "";
31
+ url.password = "";
32
+ return url;
33
+ }
34
+ catch {
35
+ return undefined;
36
+ }
37
+ }
38
+ /** Calls inside a request only, never with tracing off (WizeLens's own calls), never federation hops. */
39
+ function shouldTrace(ctx, req) {
40
+ const parent = trace.getSpanContext(ctx);
41
+ if (isTracingSuppressed(ctx) || !parent || !isSpanContextValid(parent))
42
+ return false;
43
+ return req.method !== "CONNECT" && req.getHeader(HEADER_HOP) === undefined;
44
+ }
45
+ /** Write traceparent while the headers can still change. Array headers are already written, so they go without it. */
46
+ function inject(req, ctx) {
47
+ if (req.headersSent)
48
+ return;
49
+ try {
50
+ propagation.inject(ctx, req, { set: (carrier, key, value) => carrier.setHeader(key, value) });
51
+ }
52
+ catch {
53
+ // The headers were sent in between: trace without propagation.
54
+ }
55
+ }
56
+ function startCall(tracer, req, propagate) {
57
+ const ctx = context.active();
58
+ const url = shouldTrace(ctx, req) ? urlOf(req) : undefined;
59
+ if (!url)
60
+ return null;
61
+ const agent = req.getHeader("user-agent");
62
+ const attributes = clientRequestAttributes(req.method, url, typeof agent === "string" ? agent : undefined);
63
+ const span = tracer.startSpan(clientSpanName(clientMethod(req.method)), { kind: SpanKind.CLIENT, attributes }, ctx);
64
+ if (propagate)
65
+ inject(req, trace.setSpan(ctx, span));
66
+ return { span, failed: false };
67
+ }
68
+ function setPeer(span, req, version) {
69
+ const socket = req.socket;
70
+ if (socket?.remoteAddress)
71
+ span.setAttribute("network.peer.address", socket.remoteAddress);
72
+ if (socket?.remotePort)
73
+ span.setAttribute("network.peer.port", socket.remotePort);
74
+ span.setAttribute("network.protocol.version", version || "1.1");
75
+ }
76
+ function onResponse(call, req, res, onRemote) {
77
+ setPeer(call.span, req, res.httpVersion);
78
+ setClientStatus(call.span, res.statusCode ?? 0);
79
+ const endpoint = res.headers[HEADER_ENDPOINT.toLowerCase()];
80
+ if (typeof endpoint === "string" && endpoint)
81
+ onRemote(call.span.spanContext().traceId, endpoint);
82
+ }
83
+ function onError(call, req, error) {
84
+ if (call.failed || isAbort(error))
85
+ return;
86
+ call.failed = true;
87
+ setPeer(call.span, req);
88
+ setClientError(call.span, error);
89
+ }
90
+ /** The request closed: after the whole body, an error, or an abort. A body cut off by the server is an error. */
91
+ function finish(call, req) {
92
+ const cut = req.res?.errored;
93
+ if (cut && !req.aborted)
94
+ onError(call, req, cut);
95
+ call.span.end();
96
+ }
97
+ /** Trace outgoing node:http and node:https calls made inside a request, as fetch calls are. Returns the stop function. */
98
+ export function instrumentHttp(tracer, onRemote) {
99
+ const calls = new WeakMap();
100
+ const begin = (propagate) => ({ request }) => {
101
+ if (calls.has(request))
102
+ return;
103
+ const call = startCall(tracer, request, propagate);
104
+ calls.set(request, call);
105
+ if (call)
106
+ request.once("close", () => finish(call, request));
107
+ };
108
+ const handlers = {
109
+ [CREATED]: begin(true),
110
+ // Only when Node has no created channel: the headers are written by now, so no traceparent.
111
+ [START]: begin(false),
112
+ [RESPONSE]: (m) => {
113
+ const { request, response } = m;
114
+ const call = calls.get(request);
115
+ if (call && response)
116
+ onResponse(call, request, response, onRemote);
117
+ },
118
+ [ERROR]: (m) => {
119
+ const { request, error } = m;
120
+ const call = calls.get(request);
121
+ if (call)
122
+ onError(call, request, error);
123
+ },
124
+ };
125
+ for (const [name, fn] of Object.entries(handlers))
126
+ subscribe(name, fn);
127
+ return () => {
128
+ for (const [name, fn] of Object.entries(handlers))
129
+ unsubscribe(name, fn);
130
+ };
131
+ }
132
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { HubExporter } from "./hub-export.js";
3
3
  import type { MetricStore } from "./metrics/store.js";
4
4
  import type { TraceStore } from "./store.js";
5
5
  import type { WizeLensOptions } from "./types.js";
6
+ /** The app's version: the option, else WIZELENS_RELEASE, else OTEL_SERVICE_VERSION, else npm_package_version (set by npm scripts). */
7
+ export declare const releaseOf: (o: WizeLensOptions) => string | undefined;
6
8
  /** The hub URL from options, or from WIZELENS_HUB. Null when no hub is set. */
7
9
  export declare const hubUrlOf: (o: WizeLensOptions) => string | null;
8
10
  /** Start sending to the hub, when one is set. Null endpoints mean send-only: the hub gets no address to read from. */
@@ -1 +1 @@
1
- {"version":3,"file":"hub-connect.d.ts","sourceRoot":"","sources":["../src/hub-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,MAAO,eAAe,KAAG,MAAM,GAAG,IAAsD,CAAC;AAE9G,sHAAsH;AACtH,wBAAgB,UAAU,CACxB,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,WAAW,EACvB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,EACzC,OAAO,GAAE,WAAW,GAAG,IAAW,GACjC,WAAW,GAAG,SAAS,CAazB"}
1
+ {"version":3,"file":"hub-connect.d.ts","sourceRoot":"","sources":["../src/hub-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,sIAAsI;AACtI,eAAO,MAAM,SAAS,MAAO,eAAe,KAAG,MAAM,GAAG,SAAiK,CAAC;AAE1N,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,MAAO,eAAe,KAAG,MAAM,GAAG,IAAsD,CAAC;AAE9G,sHAAsH;AACtH,wBAAgB,UAAU,CACxB,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,WAAW,EACvB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,EACzC,OAAO,GAAE,WAAW,GAAG,IAAW,GACjC,WAAW,GAAG,SAAS,CAazB"}
@@ -1,5 +1,7 @@
1
1
  import { HUB_ENV, HUB_TOKEN_ENV, normalizeHubUrl } from "@wizeworks/lens-core";
2
2
  import { HubExporter } from "./hub-export.js";
3
+ /** The app's version: the option, else WIZELENS_RELEASE, else OTEL_SERVICE_VERSION, else npm_package_version (set by npm scripts). */
4
+ export const releaseOf = (o) => (o.release || process.env.WIZELENS_RELEASE || process.env.OTEL_SERVICE_VERSION || process.env.npm_package_version)?.trim().slice(0, 50) || undefined;
3
5
  /** The hub URL from options, or from WIZELENS_HUB. Null when no hub is set. */
4
6
  export const hubUrlOf = (o) => normalizeHubUrl(o.hub ?? process.env[HUB_ENV]);
5
7
  /** Start sending to the hub, when one is set. Null endpoints mean send-only: the hub gets no address to read from. */
@@ -10,7 +12,7 @@ export function connectHub(o, store, info, selfEndpoints, metrics = null) {
10
12
  const sender = () => {
11
13
  const i = info();
12
14
  const endpoint = selfEndpoints ? (o.publicEndpoint ?? selfEndpoints.values().next().value) : undefined;
13
- return { service: i.service, project: i.project, version: i.version, runtime: i.runtime, environment: i.environment, host: i.host, endpoint, startedMs: i.startedMs };
15
+ return { service: i.service, project: i.project, version: i.version, release: releaseOf(o), runtime: i.runtime, environment: i.environment, host: i.host, endpoint, startedMs: i.startedMs };
14
16
  };
15
17
  const exporter = new HubExporter({ url, token: o.hubToken ?? process.env[HUB_TOKEN_ENV], sender, warn: (m) => console.warn(m) });
16
18
  exporter.attach(store);
@@ -1 +1 @@
1
- {"version":3,"file":"hub-connect.js","sourceRoot":"","sources":["../src/hub-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAkB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAiB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9G,sHAAsH;AACtH,MAAM,UAAU,UAAU,CACxB,CAAkB,EAClB,KAAiB,EACjB,IAAuB,EACvB,aAAyC,EACzC,OAAO,GAAuB,IAAI;IAElC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAc,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACxK,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,OAAO;QAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"hub-connect.js","sourceRoot":"","sources":["../src/hub-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAkB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,sIAAsI;AACtI,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAkB,EAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AAE1N,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAiB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9G,sHAAsH;AACtH,MAAM,UAAU,UAAU,CACxB,CAAkB,EAClB,KAAiB,EACjB,IAAuB,EACvB,aAAyC,EACzC,OAAO,GAAuB,IAAI;IAElC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAc,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/L,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,OAAO;QAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { createWizeLens } from "./wizelens.js";
2
2
  export type { DbCallInfo, LogFn, WizeLens, WizeLensLogger, WizeLensOptions } from "./wizelens.js";
3
3
  export type { SamplingOptions } from "./sampling.js";
4
+ export type { SourceMapOptions } from "./sourcemaps.js";
4
5
  export { instrumentPg } from "./adapters/pg.js";
5
6
  export { instrumentMysql2 } from "./adapters/mysql2.js";
6
7
  export { instrumentBetterSqlite3, instrumentNodeSqlite } from "./adapters/sqlite.js";
@@ -8,10 +9,18 @@ export { prismaExtension } from "./adapters/prisma.js";
8
9
  export type { PrismaOptions } from "./adapters/prisma.js";
9
10
  export { instrumentTypeOrm } from "./adapters/typeorm.js";
10
11
  export { instrumentDrizzle } from "./adapters/drizzle.js";
12
+ export { instrumentIoRedis } from "./adapters/ioredis.js";
13
+ export { instrumentRedis } from "./adapters/redis.js";
14
+ export { instrumentMongoDb } from "./adapters/mongodb.js";
15
+ export { instrumentElasticsearch } from "./adapters/elasticsearch.js";
11
16
  export { wizelensFastify } from "./frameworks/fastify.js";
12
17
  export { wizelensKoa } from "./frameworks/koa.js";
13
18
  export { wizelensHono } from "./frameworks/hono.js";
14
19
  export { instrumentGrpc } from "./grpc/index.js";
20
+ export { instrumentNest, WizeLensNestInterceptor } from "./frameworks/nest.js";
21
+ export type { NestOptions } from "./frameworks/nest.js";
22
+ export { instrumentGraphql } from "./graphql/index.js";
23
+ export type { GraphqlOptions } from "./graphql/index.js";
15
24
  export { instrumentPino } from "./logs/pino.js";
16
25
  export { instrumentWinston } from "./logs/winston.js";
17
26
  export { instrumentBunyan } from "./logs/bunyan.js";
@@ -25,6 +34,9 @@ export type { MetricStoreOptions } from "./metrics/store.js";
25
34
  export { instrumentAmqplib } from "./messaging/amqplib.js";
26
35
  export { instrumentKafkaJs } from "./messaging/kafkajs.js";
27
36
  export { instrumentServiceBus } from "./messaging/servicebus.js";
37
+ export { instrumentBullMq } from "./messaging/bullmq.js";
38
+ export { instrumentSqs } from "./messaging/sqs.js";
39
+ export { processSqsMessage } from "./messaging/sqs-message.js";
28
40
  export type { DrizzleDriver } from "./adapters/drizzle.js";
29
41
  export { TraceStore } from "./store.js";
30
42
  export type { StoredTrace, TraceChanges, TraceStoreOptions } from "./store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClG,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnF,mBAAmB,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,10 +5,16 @@ export { instrumentBetterSqlite3, instrumentNodeSqlite } from "./adapters/sqlite
5
5
  export { prismaExtension } from "./adapters/prisma.js";
6
6
  export { instrumentTypeOrm } from "./adapters/typeorm.js";
7
7
  export { instrumentDrizzle } from "./adapters/drizzle.js";
8
+ export { instrumentIoRedis } from "./adapters/ioredis.js";
9
+ export { instrumentRedis } from "./adapters/redis.js";
10
+ export { instrumentMongoDb } from "./adapters/mongodb.js";
11
+ export { instrumentElasticsearch } from "./adapters/elasticsearch.js";
8
12
  export { wizelensFastify } from "./frameworks/fastify.js";
9
13
  export { wizelensKoa } from "./frameworks/koa.js";
10
14
  export { wizelensHono } from "./frameworks/hono.js";
11
15
  export { instrumentGrpc } from "./grpc/index.js";
16
+ export { instrumentNest, WizeLensNestInterceptor } from "./frameworks/nest.js";
17
+ export { instrumentGraphql } from "./graphql/index.js";
12
18
  export { instrumentPino } from "./logs/pino.js";
13
19
  export { instrumentWinston } from "./logs/winston.js";
14
20
  export { instrumentBunyan } from "./logs/bunyan.js";
@@ -21,6 +27,9 @@ export { MetricStore } from "./metrics/store.js";
21
27
  export { instrumentAmqplib } from "./messaging/amqplib.js";
22
28
  export { instrumentKafkaJs } from "./messaging/kafkajs.js";
23
29
  export { instrumentServiceBus } from "./messaging/servicebus.js";
30
+ export { instrumentBullMq } from "./messaging/bullmq.js";
31
+ export { instrumentSqs } from "./messaging/sqs.js";
32
+ export { processSqsMessage } from "./messaging/sqs-message.js";
24
33
  export { TraceStore } from "./store.js";
25
34
  export { SqlitePersister } from "./persist.js";
26
35
  export { CATEGORY_ATTR, StoreSpanProcessor, toContractSpan } from "./processor.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/info.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface InfoInputs {
12
12
  sqlite: () => boolean;
13
13
  /** True when the add-on keeps metrics. */
14
14
  metrics?: boolean;
15
+ /** True when the add-on resolves browser stacks with source maps. */
16
+ sourceMaps?: boolean;
15
17
  }
16
18
  /** `api/info`: who this service is and how WizeLens is set up. */
17
19
  export declare function buildInfo(i: InfoInputs): ServiceInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,eAAO,MAAM,OAAO,EAAE,MAAoE,CAAC;AAC3F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAoBpD"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,eAAO,MAAM,OAAO,EAAE,MAAoE,CAAC;AAC3F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAoBpD"}
package/dist/info.js CHANGED
@@ -11,7 +11,7 @@ export function buildInfo(i) {
11
11
  const o = i.options;
12
12
  return {
13
13
  mode: "in-app",
14
- capabilities: [...IN_APP_CAPABILITIES, "search", ...(i.metrics ? ["metrics"] : [])],
14
+ capabilities: [...IN_APP_CAPABILITIES, "search", "tags", ...(i.metrics ? ["metrics"] : []), ...(i.sourceMaps ? ["sourcemaps"] : [])],
15
15
  service: o.serviceName,
16
16
  version: VERSION,
17
17
  runtime: `node ${process.version}`,
package/dist/info.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAC3F,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAYpC,kEAAkE;AAClE,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,GAAG,mBAAmB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,QAAQ,OAAO,CAAC,OAAO,EAAE;QAClC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;QAClD,IAAI,EAAE,QAAQ,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC7G,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,qBAAqB,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,kBAAkB,EAAE;QAC/H,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QAC7B,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC5C,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS;QAC3D,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../src/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAC3F,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAcpC,kEAAkE;AAClE,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACpB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,GAAG,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,YAAY,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1J,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,QAAQ,OAAO,CAAC,OAAO,EAAE;QAClC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;QAClD,IAAI,EAAE,QAAQ,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC7G,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,qBAAqB,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,kBAAkB,EAAE;QAC/H,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QAC7B,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC5C,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS;QAC3D,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS;KACxC,CAAC;AACJ,CAAC"}
package/dist/kit.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { handleMcp } from "./mcp.js";
2
- export type { McpDataSource, McpProject, McpProjects } from "./mcp.js";
2
+ export type { McpDataSource, McpProject, McpProjects, OverviewPage } from "./mcp.js";
3
3
  export { sanitizeClientSpan } from "./client-spans.js";
4
4
  export { resolveUiDir, serveUi } from "./ui.js";
5
5
  export { firstHeader, readJson, sendJson, setCors } from "./http-util.js";
@@ -11,4 +11,6 @@ export type { SdkResourceMetrics } from "./metrics/otel.js";
11
11
  export { exponentialToExplicit } from "./metrics/exponential.js";
12
12
  export type { ExponentialHistogram } from "./metrics/exponential.js";
13
13
  export { DEFAULT_N_PLUS_ONE, DEFAULT_SLOW_QUERY_MS, VERSION } from "./info.js";
14
+ export { dirMapLoader, localMapLoader } from "./sourcemaps.js";
15
+ export type { SourceMapOptions } from "./sourcemaps.js";
14
16
  //# sourceMappingURL=kit.d.ts.map
package/dist/kit.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/kit.js CHANGED
@@ -9,4 +9,5 @@ export { CATEGORY_ATTR } from "./processor.js";
9
9
  export { pointsFromSdk } from "./metrics/otel.js";
10
10
  export { exponentialToExplicit } from "./metrics/exponential.js";
11
11
  export { DEFAULT_N_PLUS_ONE, DEFAULT_SLOW_QUERY_MS, VERSION } from "./info.js";
12
+ export { dirMapLoader, localMapLoader } from "./sourcemaps.js";
12
13
  //# sourceMappingURL=kit.js.map