@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.
- package/dist/adapters/elasticsearch.d.ts +21 -0
- package/dist/adapters/elasticsearch.d.ts.map +1 -0
- package/dist/adapters/elasticsearch.js +93 -0
- package/dist/adapters/elasticsearch.js.map +1 -0
- package/dist/adapters/ioredis.d.ts +4 -0
- package/dist/adapters/ioredis.d.ts.map +1 -0
- package/dist/adapters/ioredis.js +60 -0
- package/dist/adapters/ioredis.js.map +1 -0
- package/dist/adapters/mongodb-shape.d.ts +16 -0
- package/dist/adapters/mongodb-shape.d.ts.map +1 -0
- package/dist/adapters/mongodb-shape.js +81 -0
- package/dist/adapters/mongodb-shape.js.map +1 -0
- package/dist/adapters/mongodb.d.ts +4 -0
- package/dist/adapters/mongodb.d.ts.map +1 -0
- package/dist/adapters/mongodb.js +95 -0
- package/dist/adapters/mongodb.js.map +1 -0
- package/dist/adapters/nosql.d.ts +14 -0
- package/dist/adapters/nosql.d.ts.map +1 -0
- package/dist/adapters/nosql.js +61 -0
- package/dist/adapters/nosql.js.map +1 -0
- package/dist/adapters/redis-shape.d.ts +31 -0
- package/dist/adapters/redis-shape.d.ts.map +1 -0
- package/dist/adapters/redis-shape.js +80 -0
- package/dist/adapters/redis-shape.js.map +1 -0
- package/dist/adapters/redis.d.ts +4 -0
- package/dist/adapters/redis.d.ts.map +1 -0
- package/dist/adapters/redis.js +93 -0
- package/dist/adapters/redis.js.map +1 -0
- package/dist/adapters/registry.d.ts +2 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +2 -0
- package/dist/adapters/registry.js.map +1 -1
- package/dist/api.d.ts +5 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +19 -7
- package/dist/api.js.map +1 -1
- package/dist/auto/config.d.ts +14 -0
- package/dist/auto/config.d.ts.map +1 -0
- package/dist/auto/config.js +51 -0
- package/dist/auto/config.js.map +1 -0
- package/dist/auto/esm-loader.d.ts +10 -0
- package/dist/auto/esm-loader.d.ts.map +1 -0
- package/dist/auto/esm-loader.js +10 -0
- package/dist/auto/esm-loader.js.map +1 -0
- package/dist/auto/esm-source.d.ts +15 -0
- package/dist/auto/esm-source.d.ts.map +1 -0
- package/dist/auto/esm-source.js +23 -0
- package/dist/auto/esm-source.js.map +1 -0
- package/dist/auto/frameworks.d.ts +3 -0
- package/dist/auto/frameworks.d.ts.map +1 -0
- package/dist/auto/frameworks.js +112 -0
- package/dist/auto/frameworks.js.map +1 -0
- package/dist/auto/handle.d.ts +7 -0
- package/dist/auto/handle.d.ts.map +1 -0
- package/dist/auto/handle.js +47 -0
- package/dist/auto/handle.js.map +1 -0
- package/dist/auto/hono.d.ts +3 -0
- package/dist/auto/hono.d.ts.map +1 -0
- package/dist/auto/hono.js +43 -0
- package/dist/auto/hono.js.map +1 -0
- package/dist/auto/http.d.ts +18 -0
- package/dist/auto/http.d.ts.map +1 -0
- package/dist/auto/http.js +77 -0
- package/dist/auto/http.js.map +1 -0
- package/dist/auto/install.d.ts +5 -0
- package/dist/auto/install.d.ts.map +1 -0
- package/dist/auto/install.js +26 -0
- package/dist/auto/install.js.map +1 -0
- package/dist/auto/libraries.d.ts +3 -0
- package/dist/auto/libraries.d.ts.map +1 -0
- package/dist/auto/libraries.js +108 -0
- package/dist/auto/libraries.js.map +1 -0
- package/dist/auto/module-hooks.d.ts +14 -0
- package/dist/auto/module-hooks.d.ts.map +1 -0
- package/dist/auto/module-hooks.js +90 -0
- package/dist/auto/module-hooks.js.map +1 -0
- package/dist/auto/nest.d.ts +7 -0
- package/dist/auto/nest.d.ts.map +1 -0
- package/dist/auto/nest.js +26 -0
- package/dist/auto/nest.js.map +1 -0
- package/dist/auto/owner.d.ts +19 -0
- package/dist/auto/owner.d.ts.map +1 -0
- package/dist/auto/owner.js +52 -0
- package/dist/auto/owner.js.map +1 -0
- package/dist/auto/prisma.d.ts +3 -0
- package/dist/auto/prisma.d.ts.map +1 -0
- package/dist/auto/prisma.js +55 -0
- package/dist/auto/prisma.js.map +1 -0
- package/dist/auto/sqlite.d.ts +3 -0
- package/dist/auto/sqlite.d.ts.map +1 -0
- package/dist/auto/sqlite.js +31 -0
- package/dist/auto/sqlite.js.map +1 -0
- package/dist/auto/state.d.ts +14 -0
- package/dist/auto/state.d.ts.map +1 -0
- package/dist/auto/state.js +16 -0
- package/dist/auto/state.js.map +1 -0
- package/dist/auto.d.ts +2 -0
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +4 -0
- package/dist/auto.js.map +1 -0
- package/dist/capture.d.ts +3 -1
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +1 -1
- package/dist/capture.js.map +1 -1
- package/dist/client-attributes.d.ts +19 -0
- package/dist/client-attributes.d.ts.map +1 -0
- package/dist/client-attributes.js +56 -0
- package/dist/client-attributes.js.map +1 -0
- package/dist/db.js +1 -1
- package/dist/db.js.map +1 -1
- package/dist/frameworks/hono.d.ts +16 -0
- package/dist/frameworks/hono.d.ts.map +1 -1
- package/dist/frameworks/hono.js +1 -1
- package/dist/frameworks/hono.js.map +1 -1
- package/dist/frameworks/koa.d.ts +2 -0
- package/dist/frameworks/koa.d.ts.map +1 -1
- package/dist/frameworks/koa.js +1 -1
- package/dist/frameworks/koa.js.map +1 -1
- package/dist/frameworks/nest-errors.d.ts +10 -0
- package/dist/frameworks/nest-errors.d.ts.map +1 -0
- package/dist/frameworks/nest-errors.js +75 -0
- package/dist/frameworks/nest-errors.js.map +1 -0
- package/dist/frameworks/nest-route.d.ts +31 -0
- package/dist/frameworks/nest-route.d.ts.map +1 -0
- package/dist/frameworks/nest-route.js +58 -0
- package/dist/frameworks/nest-route.js.map +1 -0
- package/dist/frameworks/nest.d.ts +16 -0
- package/dist/frameworks/nest.d.ts.map +1 -0
- package/dist/frameworks/nest.js +73 -0
- package/dist/frameworks/nest.js.map +1 -0
- package/dist/frameworks/node-server.d.ts +3 -0
- package/dist/frameworks/node-server.d.ts.map +1 -1
- package/dist/frameworks/node-server.js +1 -1
- package/dist/frameworks/node-server.js.map +1 -1
- package/dist/graphql/document.d.ts +13 -0
- package/dist/graphql/document.d.ts.map +1 -0
- package/dist/graphql/document.js +62 -0
- package/dist/graphql/document.js.map +1 -0
- package/dist/graphql/index.d.ts +11 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +83 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/operation.d.ts +37 -0
- package/dist/graphql/operation.d.ts.map +1 -0
- package/dist/graphql/operation.js +58 -0
- package/dist/graphql/operation.js.map +1 -0
- package/dist/graphql/resolvers.d.ts +5 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +79 -0
- package/dist/graphql/resolvers.js.map +1 -0
- package/dist/graphql/shared.d.ts +14 -0
- package/dist/graphql/shared.d.ts.map +1 -0
- package/dist/graphql/shared.js +21 -0
- package/dist/graphql/shared.js.map +1 -0
- package/dist/http-client.d.ts +8 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +132 -0
- package/dist/http-client.js.map +1 -0
- package/dist/hub-connect.d.ts +2 -0
- package/dist/hub-connect.d.ts.map +1 -1
- package/dist/hub-connect.js +3 -1
- package/dist/hub-connect.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/info.d.ts +2 -0
- package/dist/info.d.ts.map +1 -1
- package/dist/info.js +1 -1
- package/dist/info.js.map +1 -1
- package/dist/kit.d.ts +3 -1
- package/dist/kit.d.ts.map +1 -1
- package/dist/kit.js +1 -0
- package/dist/kit.js.map +1 -1
- package/dist/logger.d.ts +4 -4
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +11 -7
- package/dist/logger.js.map +1 -1
- package/dist/logs/bunyan.d.ts +1 -1
- package/dist/logs/bunyan.d.ts.map +1 -1
- package/dist/logs/bunyan.js +2 -3
- package/dist/logs/bunyan.js.map +1 -1
- package/dist/logs/consola.d.ts +1 -1
- package/dist/logs/consola.d.ts.map +1 -1
- package/dist/logs/consola.js +1 -1
- package/dist/logs/consola.js.map +1 -1
- package/dist/logs/console.d.ts +1 -1
- package/dist/logs/console.d.ts.map +1 -1
- package/dist/logs/console.js +5 -3
- package/dist/logs/console.js.map +1 -1
- package/dist/logs/otel.d.ts.map +1 -1
- package/dist/logs/otel.js +1 -3
- package/dist/logs/otel.js.map +1 -1
- package/dist/logs/pino.d.ts +1 -1
- package/dist/logs/pino.d.ts.map +1 -1
- package/dist/logs/pino.js +2 -3
- package/dist/logs/pino.js.map +1 -1
- package/dist/logs/winston.d.ts +1 -1
- package/dist/logs/winston.d.ts.map +1 -1
- package/dist/logs/winston.js +2 -3
- package/dist/logs/winston.js.map +1 -1
- package/dist/loose-logs.d.ts +13 -0
- package/dist/loose-logs.d.ts.map +1 -0
- package/dist/loose-logs.js +21 -0
- package/dist/loose-logs.js.map +1 -0
- package/dist/mcp-find.d.ts.map +1 -1
- package/dist/mcp-find.js +40 -8
- package/dist/mcp-find.js.map +1 -1
- package/dist/mcp-memory.d.ts +7 -0
- package/dist/mcp-memory.d.ts.map +1 -0
- package/dist/mcp-memory.js +10 -0
- package/dist/mcp-memory.js.map +1 -0
- package/dist/mcp-overview.d.ts +5 -0
- package/dist/mcp-overview.d.ts.map +1 -0
- package/dist/mcp-overview.js +71 -0
- package/dist/mcp-overview.js.map +1 -0
- package/dist/mcp-page.d.ts +28 -0
- package/dist/mcp-page.d.ts.map +1 -0
- package/dist/mcp-page.js +77 -0
- package/dist/mcp-page.js.map +1 -0
- package/dist/mcp-problems.d.ts +5 -0
- package/dist/mcp-problems.d.ts.map +1 -0
- package/dist/mcp-problems.js +56 -0
- package/dist/mcp-problems.js.map +1 -0
- package/dist/mcp-projects.d.ts.map +1 -1
- package/dist/mcp-projects.js +7 -2
- package/dist/mcp-projects.js.map +1 -1
- package/dist/mcp-search.d.ts.map +1 -1
- package/dist/mcp-search.js +9 -5
- package/dist/mcp-search.js.map +1 -1
- package/dist/mcp-shared.d.ts +37 -1
- package/dist/mcp-shared.d.ts.map +1 -1
- package/dist/mcp-shared.js +3 -0
- package/dist/mcp-shared.js.map +1 -1
- package/dist/mcp-store.d.ts +2 -2
- package/dist/mcp-store.d.ts.map +1 -1
- package/dist/mcp-store.js +6 -5
- package/dist/mcp-store.js.map +1 -1
- package/dist/mcp-tags.d.ts +8 -0
- package/dist/mcp-tags.d.ts.map +1 -0
- package/dist/mcp-tags.js +22 -0
- package/dist/mcp-tags.js.map +1 -0
- package/dist/mcp-traffic.d.ts +5 -0
- package/dist/mcp-traffic.d.ts.map +1 -0
- package/dist/mcp-traffic.js +87 -0
- package/dist/mcp-traffic.js.map +1 -0
- package/dist/mcp.d.ts +4 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +14 -3
- package/dist/mcp.js.map +1 -1
- package/dist/messaging/bullmq.d.ts +4 -0
- package/dist/messaging/bullmq.d.ts.map +1 -0
- package/dist/messaging/bullmq.js +137 -0
- package/dist/messaging/bullmq.js.map +1 -0
- package/dist/messaging/shared.d.ts +10 -4
- package/dist/messaging/shared.d.ts.map +1 -1
- package/dist/messaging/shared.js +13 -4
- package/dist/messaging/shared.js.map +1 -1
- package/dist/messaging/sqs-message.d.ts +35 -0
- package/dist/messaging/sqs-message.d.ts.map +1 -0
- package/dist/messaging/sqs-message.js +66 -0
- package/dist/messaging/sqs-message.js.map +1 -0
- package/dist/messaging/sqs.d.ts +4 -0
- package/dist/messaging/sqs.d.ts.map +1 -0
- package/dist/messaging/sqs.js +104 -0
- package/dist/messaging/sqs.js.map +1 -0
- package/dist/processor.d.ts +2 -1
- package/dist/processor.d.ts.map +1 -1
- package/dist/processor.js +8 -3
- package/dist/processor.js.map +1 -1
- package/dist/request-capture.d.ts.map +1 -1
- package/dist/request-capture.js +2 -1
- package/dist/request-capture.js.map +1 -1
- package/dist/request-naming.d.ts +8 -0
- package/dist/request-naming.d.ts.map +1 -0
- package/dist/request-naming.js +29 -0
- package/dist/request-naming.js.map +1 -0
- package/dist/sampling.d.ts.map +1 -1
- package/dist/sampling.js +2 -2
- package/dist/sampling.js.map +1 -1
- package/dist/search-api.d.ts +4 -3
- package/dist/search-api.d.ts.map +1 -1
- package/dist/search-api.js +8 -7
- package/dist/search-api.js.map +1 -1
- package/dist/sourcemaps.d.ts +15 -0
- package/dist/sourcemaps.d.ts.map +1 -0
- package/dist/sourcemaps.js +68 -0
- package/dist/sourcemaps.js.map +1 -0
- package/dist/spans.d.ts +3 -0
- package/dist/spans.d.ts.map +1 -1
- package/dist/spans.js +9 -1
- package/dist/spans.js.map +1 -1
- package/dist/store-entries.d.ts +34 -0
- package/dist/store-entries.d.ts.map +1 -0
- package/dist/store-entries.js +70 -0
- package/dist/store-entries.js.map +1 -0
- package/dist/store.d.ts +4 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +19 -22
- package/dist/store.js.map +1 -1
- package/dist/tags-api.d.ts +9 -0
- package/dist/tags-api.d.ts.map +1 -0
- package/dist/tags-api.js +16 -0
- package/dist/tags-api.js.map +1 -0
- package/dist/tracing.d.ts +6 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +11 -7
- package/dist/tracing.js.map +1 -1
- package/dist/types.d.ts +16 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +3 -2
- package/dist/ui.js.map +1 -1
- package/dist/wizelens.d.ts +3 -1
- package/dist/wizelens.d.ts.map +1 -1
- package/dist/wizelens.js +28 -12
- package/dist/wizelens.js.map +1 -1
- 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":"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"}
|
|
@@ -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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"}
|
package/dist/hub-connect.d.ts
CHANGED
|
@@ -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"}
|
package/dist/hub-connect.js
CHANGED
|
@@ -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);
|
package/dist/hub-connect.js.map
CHANGED
|
@@ -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;
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
package/dist/info.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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
|