@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
@@ -0,0 +1,80 @@
1
+ import { ATTR_DB_FINGERPRINT } from "@wizeworks/lens-core";
2
+ import { clip, fingerprint, isIdLike, serverAttributes } from "./nosql.js";
3
+ const words = (list) => new Set(list.split(/\s+/).filter(Boolean));
4
+ // Commands with no key: their arguments (a password, a script, a config value) are never shown.
5
+ const NO_KEYS = words(`AUTH HELLO PING ECHO INFO SELECT QUIT FLUSHDB FLUSHALL DBSIZE CONFIG CLIENT CLUSTER COMMAND TIME MULTI EXEC DISCARD
6
+ SCRIPT SCAN RANDOMKEY SAVE BGSAVE BGREWRITEAOF LASTSAVE ROLE SLOWLOG MEMORY MODULE ACL FUNCTION SWAPDB WAIT READONLY READWRITE RESET
7
+ UNWATCH LATENCY MONITOR DEBUG SHUTDOWN REPLICAOF SLAVEOF`);
8
+ const ALL_KEYS = words("MGET DEL UNLINK EXISTS TOUCH WATCH SINTER SUNION SDIFF PFCOUNT PFMERGE SINTERSTORE SUNIONSTORE SDIFFSTORE");
9
+ const PAIRS = words("MSET MSETNX");
10
+ const TWO_KEYS = words("RENAME RENAMENX RPOPLPUSH SMOVE LMOVE BLMOVE BRPOPLPUSH COPY");
11
+ const BLOCKING = words("BLPOP BRPOP BZPOPMIN BZPOPMAX");
12
+ const SCRIPTS = words("EVAL EVALSHA EVAL_RO EVALSHA_RO FCALL FCALL_RO");
13
+ const MAX_KEYS = 5;
14
+ const MAX_COMMANDS = 10;
15
+ /** The key arguments of a command. Every other argument is a value and is dropped. */
16
+ export function keysOf(name, args) {
17
+ if (NO_KEYS.has(name))
18
+ return [];
19
+ if (ALL_KEYS.has(name))
20
+ return [...args];
21
+ if (PAIRS.has(name))
22
+ return args.filter((_, i) => i % 2 === 0);
23
+ if (TWO_KEYS.has(name))
24
+ return args.slice(0, 2);
25
+ if (BLOCKING.has(name))
26
+ return args.slice(0, -1);
27
+ if (SCRIPTS.has(name))
28
+ return args.slice(2, 2 + (Number(args[1]) || 0));
29
+ return args.slice(0, 1);
30
+ }
31
+ const SEPARATORS = /([:/|#,={}\s]+)/;
32
+ /** A key with its ids, emails, and tokens as `?`: "user:123:cart" is "user:?:cart". */
33
+ export function keyShape(key) {
34
+ if (typeof key !== "string")
35
+ return "?";
36
+ const parts = key.split(SEPARATORS).map((part, i) => (i % 2 === 1 || !isIdLike(part) ? part : "?"));
37
+ return clip(parts.join(""), 200);
38
+ }
39
+ /** `GET user:?`: the command and the shapes of its keys, never the values. */
40
+ export function commandText(name, args) {
41
+ const upper = name.toUpperCase();
42
+ const shapes = [...new Set(keysOf(upper, args).map(keyShape))];
43
+ const keys = shapes.length > MAX_KEYS ? [...shapes.slice(0, MAX_KEYS), "…"] : shapes;
44
+ return [upper, ...keys].join(" ");
45
+ }
46
+ const infoOf = (adapter, operation, conn, extra) => ({
47
+ system: "redis",
48
+ adapter,
49
+ operation,
50
+ namespace: conn.namespace,
51
+ requireParent: true,
52
+ attributes: { ...serverAttributes(conn.host, conn.port), ...extra },
53
+ });
54
+ /** The span facts and query text of one command. */
55
+ export function commandCall(adapter, cmd, conn) {
56
+ const name = cmd.name.toUpperCase();
57
+ const info = infoOf(adapter, name, conn, { [ATTR_DB_FINGERPRINT]: fingerprint([name, ...cmd.args]) });
58
+ return { info, text: commandText(name, cmd.args) };
59
+ }
60
+ /** The span facts of a pipeline or MULTI: one span, the command count, and each distinct command shape. */
61
+ export function batchCall(adapter, kind, cmds, conn) {
62
+ const shapes = [...new Set(cmds.map((c) => commandText(c.name, c.args)))];
63
+ const listed = shapes.length > MAX_COMMANDS ? [...shapes.slice(0, MAX_COMMANDS), "…"] : shapes;
64
+ const values = cmds.flatMap((c) => [c.name.toUpperCase(), ...c.args]);
65
+ const extra = { "db.operation.batch.size": cmds.length, [ATTR_DB_FINGERPRINT]: fingerprint(values) };
66
+ return { info: { ...infoOf(adapter, kind, conn, extra), rowsOf: () => undefined }, text: clip(`${kind} ${listed.join("; ")}`) };
67
+ }
68
+ /** The first failed reply of a pipeline: ioredis gives [err, value] pairs, node-redis gives the error itself. */
69
+ export function replyError(result) {
70
+ if (!Array.isArray(result))
71
+ return undefined;
72
+ for (const reply of result) {
73
+ if (reply instanceof Error)
74
+ return reply;
75
+ if (Array.isArray(reply) && reply[0] instanceof Error)
76
+ return reply[0];
77
+ }
78
+ return undefined;
79
+ }
80
+ //# sourceMappingURL=redis-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-shape.js","sourceRoot":"","sources":["../../src/adapters/redis-shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { WizeLens } from "../types.js";
2
+ /** Trace every node-redis (v4+) command, MULTI, and pipeline. Pass the `redis` or `@redis/client` module, or a client. Returns false when nothing was patched. */
3
+ export declare function instrumentRedis(wizelens: WizeLens, target: unknown): boolean;
4
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/adapters/redis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmG5C,kKAAkK;AAClK,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAM5E"}
@@ -0,0 +1,93 @@
1
+ import { runTraced } from "../db.js";
2
+ import { ownerOf, runChecked } from "./nosql.js";
3
+ import { batchCall, commandCall, replyError } from "./redis-shape.js";
4
+ import { dbSpansOf, patchMethod } from "./registry.js";
5
+ function urlParts(url) {
6
+ if (!url)
7
+ return {};
8
+ try {
9
+ const u = new URL(url);
10
+ return { host: u.hostname || undefined, port: u.port ? Number(u.port) : undefined, db: u.pathname.slice(1) || undefined };
11
+ }
12
+ catch {
13
+ return {};
14
+ }
15
+ }
16
+ function connOf(client) {
17
+ const o = client.options ?? {};
18
+ const url = urlParts(o.url);
19
+ if (o.socket?.path)
20
+ return { namespace: String(o.database ?? url.db ?? 0) };
21
+ return { namespace: String(o.database ?? url.db ?? 0), host: o.socket?.host ?? url.host ?? "localhost", port: o.socket?.port ?? url.port ?? 6379 };
22
+ }
23
+ const toCommand = (raw) => ({ name: String(raw[0] ?? ""), args: raw.slice(1) });
24
+ // v4 typed commands may start with commandOptions(), an object keyed by a symbol.
25
+ const isOptions = (v) => typeof v === "object" && v !== null && !Array.isArray(v) && Object.getOwnPropertySymbols(v).length > 0;
26
+ /** The raw arguments ("GET", key) of a v4 typed command, built the way the client builds them. */
27
+ function rawOf(command, args) {
28
+ if (typeof command?.transformArguments !== "function" || !Array.isArray(args))
29
+ return null;
30
+ try {
31
+ const out = command.transformArguments(...(isOptions(args[0]) ? args.slice(1) : args));
32
+ return Array.isArray(out) && out.length > 0 ? out : null;
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ }
38
+ /** Wrap a method whose call is one command, given its raw arguments. */
39
+ function oneCommand(start, rawArgs) {
40
+ return (original) => function (...args) {
41
+ const raw = rawArgs(args);
42
+ if (!raw)
43
+ return original.apply(this, args);
44
+ const { info, text } = commandCall("redis", toCommand(raw), connOf(this));
45
+ return runTraced(start(info, text, undefined), [], () => original.apply(this, args));
46
+ };
47
+ }
48
+ /** Wrap a method that runs queued commands as one MULTI or pipeline. */
49
+ function batch(start, kindOf) {
50
+ return (original) => function (...args) {
51
+ const queue = args[0];
52
+ if (!Array.isArray(queue) || queue.length === 0)
53
+ return original.apply(this, args);
54
+ const cmds = queue.map((c) => toCommand(Array.isArray(c?.args) ? c.args : []));
55
+ const { info, text } = batchCall("redis", kindOf(args), cmds, connOf(this));
56
+ return runChecked(start(info, text, undefined), [], () => original.apply(this, args), replyError);
57
+ };
58
+ }
59
+ const scriptRaw = (args) => {
60
+ const script = args[0];
61
+ return script?.SHA1 && Array.isArray(args[1]) ? ["EVALSHA", script.SHA1, script.NUMBER_OF_KEYS ?? 0, ...args[1]] : null;
62
+ };
63
+ function patchClient(proto, start) {
64
+ patchMethod(proto, "sendCommand", oneCommand(start, (a) => (Array.isArray(a[0]) && a[0].length > 0 ? a[0] : null)));
65
+ patchMethod(proto, "commandsExecutor", oneCommand(start, (a) => rawOf(a[0], a[1])));
66
+ patchMethod(proto, "executeScript", oneCommand(start, scriptRaw));
67
+ patchMethod(proto, "multiExecutor", batch(start, (a) => (a[2] === undefined ? "PIPELINE" : "MULTI")));
68
+ patchMethod(proto, "_executeMulti", batch(start, () => "MULTI"));
69
+ patchMethod(proto, "_executePipeline", batch(start, () => "PIPELINE"));
70
+ }
71
+ /** The client prototype: from the RedisClient class, its module, a client, or a client made (not connected) by createClient. */
72
+ function prototypeOf(target) {
73
+ const t = target;
74
+ if (typeof target === "function")
75
+ return typeof t?.prototype?.sendCommand === "function" ? t.prototype : null;
76
+ if (t && typeof t.sendCommand === "function")
77
+ return ownerOf(t, "sendCommand");
78
+ if (t?.default)
79
+ return prototypeOf(t.default);
80
+ if (typeof t?.createClient === "function")
81
+ return prototypeOf(t.createClient());
82
+ return null;
83
+ }
84
+ /** Trace every node-redis (v4+) command, MULTI, and pipeline. Pass the `redis` or `@redis/client` module, or a client. Returns false when nothing was patched. */
85
+ export function instrumentRedis(wizelens, target) {
86
+ const start = dbSpansOf(wizelens);
87
+ const proto = prototypeOf(target);
88
+ if (!start || !proto)
89
+ return false;
90
+ patchClient(proto, start);
91
+ return true;
92
+ }
93
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/adapters/redis.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export declare function addCleanup(wizelens: WizeLens, fn: () => void): void;
20
20
  export declare function runCleanups(wizelens: WizeLens): void;
21
21
  /** Called once by createWizeLens. A disabled instance is never registered, so adapters do nothing. */
22
22
  export declare function registerParts(wizelens: WizeLens, p: AdapterParts): void;
23
+ /** Everything an enabled instance gives its adapters, or null. */
24
+ export declare const partsOf: (wizelens: WizeLens) => AdapterParts | null;
23
25
  /** The database span factory of an enabled instance, or null. */
24
26
  export declare const dbSpansOf: (wizelens: WizeLens) => StartDbSpan | null;
25
27
  /** Tracer provider of an enabled instance, or null. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAKD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAInE;AAED,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGpD;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAEvE;AAED,iEAAiE;AACjE,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,uDAAuD;AACvD,eAAO,MAAM,UAAU,aAAc,QAAQ,KAAG,cAAc,GAAG,IAA6C,CAAC;AAE/G,uDAAuD;AACvD,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,wEAAwE;AACxE,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,oDAAoD;AACpD,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,OAAO,GAAG,IAAyC,CAAC;AAEnG,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9C,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CASnI"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAKD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAInE;AAED,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGpD;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAEvE;AAED,kEAAkE;AAClE,eAAO,MAAM,OAAO,aAAc,QAAQ,KAAG,YAAY,GAAG,IAAmC,CAAC;AAEhG,iEAAiE;AACjE,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,uDAAuD;AACvD,eAAO,MAAM,UAAU,aAAc,QAAQ,KAAG,cAAc,GAAG,IAA6C,CAAC;AAE/G,uDAAuD;AACvD,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,wEAAwE;AACxE,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,WAAW,GAAG,IAA4C,CAAC;AAE1G,oDAAoD;AACpD,eAAO,MAAM,SAAS,aAAc,QAAQ,KAAG,OAAO,GAAG,IAAyC,CAAC;AAEnG,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9C,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CASnI"}
@@ -16,6 +16,8 @@ export function runCleanups(wizelens) {
16
16
  export function registerParts(wizelens, p) {
17
17
  parts.set(wizelens, p);
18
18
  }
19
+ /** Everything an enabled instance gives its adapters, or null. */
20
+ export const partsOf = (wizelens) => parts.get(wizelens) ?? null;
19
21
  /** The database span factory of an enabled instance, or null. */
20
22
  export const dbSpansOf = (wizelens) => parts.get(wizelens)?.dbSpans ?? null;
21
23
  /** Tracer provider of an enabled instance, or null. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAkBA,MAAM,KAAK,GAAG,IAAI,OAAO,EAA0B,CAAC;AACpD,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA4B,CAAC;AAEzD,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,EAAc;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,CAAe;IAC/D,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAyB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AAE/G,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;AAInG,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAmB,MAAS,EAAE,IAAY,EAAE,IAAkC,EAAE,IAAI,GAAG,QAAQ;IACxH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAA0C,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAK,QAA+C,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,QAAkB,CAAC,CAAC;IACzC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAkBA,MAAM,KAAK,GAAG,IAAI,OAAO,EAA0B,CAAC;AACpD,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA4B,CAAC;AAEzD,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,EAAc;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,CAAe;IAC/D,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAEhG,iEAAiE;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAyB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AAE/G,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAE1G,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;AAInG,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAmB,MAAS,EAAE,IAAY,EAAE,IAAkC,EAAE,IAAI,GAAG,QAAQ;IACxH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAA0C,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAK,QAA+C,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,QAAkB,CAAC,CAAC;IACzC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
- import { type ServiceInfo, type Trace, type TraceSummary } from "@wizeworks/lens-core";
2
+ import { type MapLoader, type ServiceInfo, type TagRule, type Trace, type TraceSummary } from "@wizeworks/lens-core";
3
3
  import { type McpDataSource } from "./mcp.js";
4
4
  import type { MetricStore } from "./metrics/store.js";
5
5
  import type { TraceStore } from "./store.js";
@@ -18,6 +18,10 @@ export interface ApiDeps {
18
18
  selfEndpoints: ReadonlySet<string>;
19
19
  /** False is send-only: only the browser span intake answers. */
20
20
  dashboard: boolean;
21
+ /** Build folders and dev servers to read source maps from; null when off. */
22
+ sourceMaps?: MapLoader | null;
23
+ /** The `tags` option's rules and the built-ins (docs/TAGS-PLAN.md). */
24
+ tags: readonly TagRule[];
21
25
  }
22
26
  /** `api/traces`: summaries by default, full local traces with `full=true` (and `since`). */
23
27
  export declare function listTraces(store: TraceStore, params: URLSearchParams): TraceSummary[] | Trace[];
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGnG,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,MAAM,WAAW,CAAC;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC1F,iCAAiC;IACjC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAS/F;AAmDD,wJAAwJ;AACxJ,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,SACH,eAAe,OAAO,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC,CAyB3F"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAkD,KAAK,SAAS,EAAE,KAAK,WAAW,EAAsC,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzM,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ7C,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,MAAM,WAAW,CAAC;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC1F,iCAAiC;IACjC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,uEAAuE;IACvE,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1B;AAMD,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAS/F;AA+DD,wJAAwJ;AACxJ,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,SACH,eAAe,OAAO,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC,CAyB3F"}
package/dist/api.js CHANGED
@@ -1,7 +1,9 @@
1
- import { HEADER_HOP } from "@wizeworks/lens-core";
2
- import { remoteOf, sanitizeClientLog, sanitizeClientSpan } from "./client-spans.js";
1
+ import { annotateErrorFrames, answerResolve, HEADER_HOP, SOURCEMAPS_RESOLVE_PATH } from "@wizeworks/lens-core";
2
+ import { browserClockOffset, remoteOf, sanitizeClientLog, sanitizeClientSpan } from "./client-spans.js";
3
3
  import { firstHeader, readJson, sendJson, setCors } from "./http-util.js";
4
4
  import { handleMcp } from "./mcp.js";
5
+ import { sendSearch, sendSuggest } from "./search-api.js";
6
+ import { sendTagMatch, sendTags } from "./tags-api.js";
5
7
  import { serveUi } from "./ui.js";
6
8
  const MAX_CLIENT_SPANS = 500;
7
9
  const MAX_CLIENT_LOGS = 100;
@@ -30,12 +32,14 @@ async function sendTrace(d, traceId, req, res, url) {
30
32
  async function receiveClientSpans(d, req, res) {
31
33
  try {
32
34
  const body = (await readJson(req));
35
+ const shiftMs = browserClockOffset(body?.sentAt, Date.now());
33
36
  const spans = Array.isArray(body?.spans) ? body.spans.slice(0, MAX_CLIENT_SPANS) : [];
34
37
  const origin = firstHeader(req.headers.origin);
35
- for (const raw of spans) {
36
- const span = sanitizeClientSpan(raw, d.redactKeys);
37
- if (!span)
38
- continue;
38
+ const clean = spans.map((raw) => sanitizeClientSpan(raw, d.redactKeys, shiftMs)).filter((s) => s !== null);
39
+ // Browser errors group by their original frame: add it now, while the maps are at hand.
40
+ if (d.sourceMaps)
41
+ await annotateErrorFrames(clean, d.sourceMaps);
42
+ for (const span of clean) {
39
43
  d.store.addSpan(span);
40
44
  const remote = remoteOf(span, origin);
41
45
  if (remote && !d.selfEndpoints.has(remote))
@@ -43,7 +47,7 @@ async function receiveClientSpans(d, req, res) {
43
47
  }
44
48
  const logs = Array.isArray(body?.logs) ? body.logs.slice(0, MAX_CLIENT_LOGS) : [];
45
49
  for (const raw of logs) {
46
- const entry = sanitizeClientLog(raw, d.redactKeys);
50
+ const entry = sanitizeClientLog(raw, d.redactKeys, shiftMs);
47
51
  if (entry)
48
52
  d.store.addLog(entry.traceId, entry.log);
49
53
  }
@@ -53,6 +57,10 @@ async function receiveClientSpans(d, req, res) {
53
57
  sendJson(res, 400, { error: "invalid body" });
54
58
  }
55
59
  }
60
+ async function sendResolve(load, req, res) {
61
+ const answer = await answerResolve(await readJson(req).catch(() => undefined), load);
62
+ sendJson(res, answer.status, answer.body);
63
+ }
56
64
  async function handleApi(d, sub, method, req, res, url) {
57
65
  if (sub === "api/info" && method === "GET")
58
66
  return sendJson(res, 200, d.info());
@@ -63,6 +71,16 @@ async function handleApi(d, sub, method, req, res, url) {
63
71
  return sendTrace(d, traceMatch[1], req, res, url);
64
72
  if (sub === CLIENT_SPANS && method === "POST")
65
73
  return receiveClientSpans(d, req, res);
74
+ if (sub === SOURCEMAPS_RESOLVE_PATH && method === "POST" && d.sourceMaps)
75
+ return sendResolve(d.sourceMaps, req, res);
76
+ if (sub === "api/search" && method === "GET")
77
+ return sendSearch(d.store, d.tags, url.searchParams, res, d.info().environment);
78
+ if (sub === "api/search/suggest" && method === "GET")
79
+ return sendSuggest(d.store, d.tags, url.searchParams, res, d.info().environment);
80
+ if (sub === "api/tags" && method === "GET")
81
+ return sendTags(d.tags, res);
82
+ if (sub === "api/tags/match" && method === "POST")
83
+ return sendTagMatch(d.store, d.tags, req, res, d.info().environment);
66
84
  if (sub === "api/metrics/points" && method === "GET" && d.metrics) {
67
85
  const since = Number(url.searchParams.get("since"));
68
86
  return sendJson(res, 200, { points: d.metrics.since(Number.isFinite(since) ? since : 0) });
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { WizeLensOptions } from "../types.js";
2
+ type Env = Record<string, string | undefined>;
3
+ /** Comma list of auto hooks to leave off, for example "prisma,pino". */
4
+ export declare const SKIP_ENV = "WIZELENS_AUTO_SKIP";
5
+ /** The `name` of the first package.json at or above `dir`, skipping packages inside node_modules. */
6
+ export declare function packageNameAbove(dir: string): string | undefined;
7
+ /** The service name: OTEL_SERVICE_NAME, then OTEL_RESOURCE_ATTRIBUTES, then the app's package.json name (no npm scope). */
8
+ export declare function autoServiceName(env?: Env, cwd?: string, main?: string | undefined): string;
9
+ /** The auto install's options. Everything else comes from the variables createWizeLens already reads. */
10
+ export declare function autoOptions(env?: Env): WizeLensOptions;
11
+ /** True when `name` is listed in WIZELENS_AUTO_SKIP. */
12
+ export declare function skipped(name: string, env?: Env): boolean;
13
+ export {};
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/auto/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,QAAQ,uBAAuB,CAAC;AAE7C,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQhE;AAoBD,2HAA2H;AAC3H,wBAAgB,eAAe,CAAC,GAAG,GAAE,GAAiB,EAAE,GAAG,SAAgB,EAAE,IAAI,qBAAkB,GAAG,MAAM,CAK3G;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,GAAG,GAAE,GAAiB,GAAG,eAAe,CAEnE;AAED,wDAAwD;AACxD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,GAAiB,GAAG,OAAO,CAErE"}
@@ -0,0 +1,51 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ /** Comma list of auto hooks to leave off, for example "prisma,pino". */
4
+ export const SKIP_ENV = "WIZELENS_AUTO_SKIP";
5
+ /** The `name` of the first package.json at or above `dir`, skipping packages inside node_modules. */
6
+ export function packageNameAbove(dir) {
7
+ for (let d = dir;; d = dirname(d)) {
8
+ if (!/[\\/]node_modules([\\/]|$)/.test(d)) {
9
+ const name = readName(join(d, "package.json"));
10
+ if (name)
11
+ return name;
12
+ }
13
+ if (dirname(d) === d)
14
+ return undefined;
15
+ }
16
+ }
17
+ function readName(file) {
18
+ try {
19
+ const name = JSON.parse(readFileSync(file, "utf8")).name;
20
+ return typeof name === "string" && name.trim() ? name.trim() : undefined;
21
+ }
22
+ catch {
23
+ return undefined;
24
+ }
25
+ }
26
+ /** `service.name` from OTEL_RESOURCE_ATTRIBUTES ("service.name=orders,team=shop"). */
27
+ function resourceServiceName(env) {
28
+ for (const pair of (env.OTEL_RESOURCE_ATTRIBUTES ?? "").split(",")) {
29
+ const [key, ...rest] = pair.split("=");
30
+ if (key?.trim() === "service.name" && rest.join("=").trim())
31
+ return decodeURIComponent(rest.join("=").trim());
32
+ }
33
+ return undefined;
34
+ }
35
+ /** The service name: OTEL_SERVICE_NAME, then OTEL_RESOURCE_ATTRIBUTES, then the app's package.json name (no npm scope). */
36
+ export function autoServiceName(env = process.env, cwd = process.cwd(), main = process.argv[1]) {
37
+ const named = env.OTEL_SERVICE_NAME?.trim() || resourceServiceName(env);
38
+ if (named)
39
+ return named;
40
+ const pkg = packageNameAbove(cwd) ?? (main ? packageNameAbove(dirname(main)) : undefined);
41
+ return pkg?.replace(/^@[^/]+\//, "") ?? "node-app";
42
+ }
43
+ /** The auto install's options. Everything else comes from the variables createWizeLens already reads. */
44
+ export function autoOptions(env = process.env) {
45
+ return { serviceName: autoServiceName(env) };
46
+ }
47
+ /** True when `name` is listed in WIZELENS_AUTO_SKIP. */
48
+ export function skipped(name, env = process.env) {
49
+ return (env[SKIP_ENV] ?? "").split(",").some((s) => s.trim().toLowerCase() === name);
50
+ }
51
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/auto/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type EsmPatch } from "./esm-source.js";
2
+ interface LoadResult {
3
+ format?: string | null;
4
+ source?: unknown;
5
+ }
6
+ type NextLoad = (url: string, context: unknown) => Promise<LoadResult>;
7
+ export declare function initialize(data: EsmPatch[] | undefined): void;
8
+ export declare function load(url: string, context: unknown, next: NextLoad): Promise<LoadResult>;
9
+ export {};
10
+ //# sourceMappingURL=esm-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm-loader.d.ts","sourceRoot":"","sources":["../../src/auto/esm-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,iBAAiB,CAAC;AAEjE,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAIvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,IAAI,CAE7D;AAED,wBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7F"}
@@ -0,0 +1,10 @@
1
+ // Loader hooks for Node versions without module.registerHooks. They run on the loader thread and only edit source.
2
+ import { transformSource } from "./esm-source.js";
3
+ let patches = [];
4
+ export function initialize(data) {
5
+ patches = data ?? [];
6
+ }
7
+ export async function load(url, context, next) {
8
+ return transformSource(url, await next(url, context), patches);
9
+ }
10
+ //# sourceMappingURL=esm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm-loader.js","sourceRoot":"","sources":["../../src/auto/esm-loader.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,OAAO,EAAiB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQjE,IAAI,OAAO,GAAe,EAAE,CAAC;AAE7B,MAAM,UAAU,UAAU,CAAC,IAA4B;IACrD,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,OAAgB,EAAE,IAAc;IACtE,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** A line added to the end of matching ES modules. It runs inside the module, so it can read and replace its bindings. */
2
+ export interface EsmPatch {
3
+ pattern: RegExp;
4
+ code: string;
5
+ }
6
+ interface LoadResult {
7
+ format?: string | null;
8
+ source?: unknown;
9
+ }
10
+ /** The load result with every matching patch added to an ES module's source. */
11
+ export declare function transformSource<T extends LoadResult>(url: string, result: T, patches: readonly EsmPatch[]): T;
12
+ /** A patch that hands the module's `binding` to the auto hook `id`. With `replace`, a returned value takes its place. */
13
+ export declare function esmPatch(pattern: RegExp, id: string, binding: string, replace?: boolean): EsmPatch;
14
+ export {};
15
+ //# sourceMappingURL=esm-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm-source.d.ts","sourceRoot":"","sources":["../../src/auto/esm-source.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAQD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,CAAC,CAK7G;AAED,yHAAyH;AACzH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,QAAQ,CAKhG"}
@@ -0,0 +1,23 @@
1
+ function text(source) {
2
+ if (typeof source === "string")
3
+ return source;
4
+ if (source instanceof Uint8Array)
5
+ return new TextDecoder().decode(source);
6
+ return null;
7
+ }
8
+ /** The load result with every matching patch added to an ES module's source. */
9
+ export function transformSource(url, result, patches) {
10
+ if (result.format !== "module" || patches.length === 0)
11
+ return result;
12
+ const lines = patches.filter((p) => p.pattern.test(url)).map((p) => p.code);
13
+ const source = lines.length > 0 ? text(result.source) : null;
14
+ return source === null ? result : { ...result, source: `${source}\n;${lines.join("\n;")}\n` };
15
+ }
16
+ /** A patch that hands the module's `binding` to the auto hook `id`. With `replace`, a returned value takes its place. */
17
+ export function esmPatch(pattern, id, binding, replace = false) {
18
+ const value = `typeof ${binding} === "undefined" ? undefined : ${binding}`;
19
+ const call = `globalThis[Symbol.for("wizeworks.wizelens.auto.esm")]?.(${JSON.stringify(id)}, ${value})`;
20
+ // The try keeps the module running when a new version renamed the binding.
21
+ return { pattern, code: `try { ${replace ? `${binding} = ${call} ?? ${binding}` : call}; } catch {}` };
22
+ }
23
+ //# sourceMappingURL=esm-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm-source.js","sourceRoot":"","sources":["../../src/auto/esm-source.ts"],"names":[],"mappings":"AAWA,SAAS,IAAI,CAAC,MAAe;IAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAuB,GAAW,EAAE,MAAS,EAAE,OAA4B;IACxG,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,EAAU,EAAE,OAAe,EAAE,OAAO,GAAG,KAAK;IACpF,MAAM,KAAK,GAAG,UAAU,OAAO,kCAAkC,OAAO,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,2DAA2D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC;IACxG,2EAA2E;IAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,IAAI,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;AACzG,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Hook every framework the add-on supports, except the ones listed in WIZELENS_AUTO_SKIP. */
2
+ export declare function hookFrameworks(): void;
3
+ //# sourceMappingURL=frameworks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworks.d.ts","sourceRoot":"","sources":["../../src/auto/frameworks.ts"],"names":[],"mappings":"AAiIA,8FAA8F;AAC9F,wBAAgB,cAAc,IAAI,IAAI,CAErC"}