langwatch 0.3.1 → 0.3.2

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/README.md CHANGED
@@ -232,7 +232,10 @@ span.end();
232
232
  import { FilterableBatchSpanProcessor, LangWatchExporter } from "langwatch";
233
233
 
234
234
  const processor = new FilterableBatchSpanProcessor(
235
- new LangWatchExporter(apiKey, endpoint),
235
+ new LangWatchExporter({
236
+ apiKey: "your-api-key",
237
+ endpoint: "https://custom.langwatch.com",
238
+ }),
236
239
  excludeRules
237
240
  );
238
241
  ```
@@ -241,7 +244,7 @@ const processor = new FilterableBatchSpanProcessor(
241
244
  ```ts
242
245
  const excludeRules: SpanProcessingExcludeRule[] = [
243
246
  { attribute: "http.url", value: "/health" },
244
- { attribute: "span.type", value: "health" }
247
+ { attribute: "span.type", value: "health" },
245
248
  ];
246
249
  ```
247
250
 
@@ -0,0 +1,49 @@
1
+ import {
2
+ getApiKey,
3
+ getEndpoint
4
+ } from "./chunk-QEWDG5QE.mjs";
5
+
6
+ // package.json
7
+ var version = "0.3.2";
8
+
9
+ // src/observability/exporters/langwatch-exporter.ts
10
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
11
+ var LangWatchExporter = class extends OTLPTraceExporter {
12
+ /**
13
+ * Creates a new LangWatchExporter instance.
14
+ *
15
+ * @param opts - Optional configuration options for the exporter
16
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
17
+ * will use environment variables or fallback configuration.
18
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
19
+ * If not provided, will use environment variables or fallback configuration.
20
+ * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
21
+ * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
22
+ */
23
+ constructor(opts) {
24
+ var _a, _b;
25
+ const setApiKey = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : getApiKey();
26
+ const setEndpoint = (_b = opts == null ? void 0 : opts.endpoint) != null ? _b : getEndpoint();
27
+ if (opts && opts.includeAllSpans !== void 0) {
28
+ console.warn("[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version");
29
+ }
30
+ if (opts && opts.debug !== void 0) {
31
+ console.warn("[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version");
32
+ }
33
+ super({
34
+ headers: {
35
+ "Authorization": `Bearer ${setApiKey}`,
36
+ "X-LangWatch-SDK-Version": version,
37
+ "X-LangWatch-SDK-Language": `typescript-${typeof process !== "undefined" ? "node" : "browser"}`,
38
+ "X-LangWatch-SDK-Name": "langwatch-observability-sdk"
39
+ },
40
+ url: setEndpoint
41
+ });
42
+ }
43
+ };
44
+
45
+ export {
46
+ version,
47
+ LangWatchExporter
48
+ };
49
+ //# sourceMappingURL=chunk-AAROJADR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/observability/exporters/langwatch-exporter.ts"],"sourcesContent":["{\n \"name\": \"langwatch\",\n \"version\": \"0.3.2\",\n \"description\": \"\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.mjs\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"bin\": {\n \"langwatch\": \"./dist/cli/index.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n },\n \"./evaluation\": {\n \"types\": \"./dist/evaluation/index.d.ts\",\n \"require\": \"./dist/evaluation/index.js\",\n \"import\": \"./dist/evaluation/index.mjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability/index.d.ts\",\n \"require\": \"./dist/observability/index.js\",\n \"import\": \"./dist/observability/index.mjs\"\n },\n \"./observability/instrumentation/langchain\": {\n \"types\": \"./dist/observability/instrumentation/langchain/index.d.ts\",\n \"require\": \"./dist/observability/instrumentation/langchain/index.js\",\n \"import\": \"./dist/observability/instrumentation/langchain/index.mjs\"\n },\n \"./prompt\": {\n \"types\": \"./dist/prompt/index.d.ts\",\n \"require\": \"./dist/prompt/index.js\",\n \"import\": \"./dist/prompt/index.mjs\"\n },\n \"./node\": {\n \"types\": \"./dist/client-node.d.ts\",\n \"import\": \"./dist/client-node.mjs\",\n \"require\": \"./dist/client-node.js\"\n },\n \"./browser\": {\n \"types\": \"./dist/client-browser.d.ts\",\n \"import\": \"./dist/client-browser.mjs\",\n \"require\": \"./dist/client-browser.js\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"typescript-sdk\"\n },\n \"scripts\": {\n \"prepare\": \"./copy-types.sh && pnpm run generate:openapi-types\",\n \"test\": \"vitest\",\n \"prebuild\": \"pnpm run prepare\",\n \"build\": \"tsgo --noEmit && tsup\",\n \"prepublish\": \"pnpm run build\",\n \"generate:openapi-types\": \"npx openapi-typescript ../langwatch/src/app/api/openapiLangWatch.json -o ./src/internal/generated/openapi/api-client.ts\"\n },\n \"author\": \"LangWatch\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\",\n \"pnpm\": \">=8\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.32.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.1.0\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250804.1\",\n \"@vercel/otel\": \"^1.13.0\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"esbuild\": \"^0.25.8\",\n \"eslint\": \"^9.32.0\",\n \"fets\": \"^0.8.5\",\n \"nock\": \"^14.0.8\",\n \"ts-to-zod\": \"3.15.0\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.38.0\",\n \"vitest\": \"^3.2.4\"\n },\n \"dependencies\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.36.0\",\n \"@types/prompts\": \"^2.4.9\",\n \"chalk\": \"^4.1.2\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^16.6.1\",\n \"js-yaml\": \"^4.1.0\",\n \"liquidjs\": \"^10.21.1\",\n \"open\": \"^10.2.0\",\n \"openapi-fetch\": \"^0.14.0\",\n \"ora\": \"^5.4.1\",\n \"prompts\": \"^2.4.2\",\n \"xksuid\": \"^0.0.4\",\n \"zod\": \"^4.0.14\"\n },\n \"peerDependencies\": {\n \"@ai-sdk/openai\": \">=2.0.0\",\n \"@langchain/core\": \">=0.3.0\",\n \"@langchain/openai\": \">=0.6.0\",\n \"@langchain/langgraph\": \">=0.4.0\",\n \"@opentelemetry/context-async-hooks\": \">=1.19.0\",\n \"@opentelemetry/context-zone\": \">=1.19.0\",\n \"@opentelemetry/sdk-node\": \">=0.200.0\",\n \"@opentelemetry/sdk-trace-web\": \">=1.19.0\",\n \"langchain\": \">=0.3.0\"\n }\n}\n","import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { version } from \"../../../package.json\";\nimport { getApiKey, getEndpoint } from \"../../client\";\n\nexport interface LangWatchExporterOptions {\n endpoint?: string;\n apiKey?: string;\n includeAllSpans?: boolean;\n debug?: boolean;\n}\n\n/**\n * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // Using custom options\n * const exporter = new LangWatchExporter({\n * apiKey: 'your-api-key',\n * endpoint: 'https://custom.langwatch.com'\n * });\n * ```\n */\nexport class LangWatchExporter extends OTLPTraceExporter {\n /**\n * Creates a new LangWatchExporter instance.\n *\n * @param opts - Optional configuration options for the exporter\n * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version\n * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version\n */\n constructor(opts?: LangWatchExporterOptions) {\n const setApiKey = opts?.apiKey ?? getApiKey();\n const setEndpoint = opts?.endpoint ?? getEndpoint();\n\n if (opts && opts.includeAllSpans !== void 0) {\n console.warn(\"[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version\");\n }\n if (opts && opts.debug !== void 0) {\n console.warn(\"[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version\");\n }\n\n super({\n headers: {\n \"Authorization\": `Bearer ${setApiKey}`,\n \"X-LangWatch-SDK-Version\": version,\n \"X-LangWatch-SDK-Language\": `typescript-${typeof process !== \"undefined\" ? \"node\" : \"browser\"}`,\n \"X-LangWatch-SDK-Name\": \"langwatch-observability-sdk\",\n },\n url: setEndpoint,\n });\n }\n}\n"],"mappings":";;;;;;AAEE,cAAW;;;ACFb,SAAS,yBAAyB;AAkC3B,IAAM,oBAAN,cAAgC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYvD,YAAY,MAAiC;AA9C/C;AA+CI,UAAM,aAAY,kCAAM,WAAN,YAAgB,UAAU;AAC5C,UAAM,eAAc,kCAAM,aAAN,YAAkB,YAAY;AAElD,QAAI,QAAQ,KAAK,oBAAoB,QAAQ;AAC3C,cAAQ,KAAK,6GAA6G;AAAA,IAC5H;AACA,QAAI,QAAQ,KAAK,UAAU,QAAQ;AACjC,cAAQ,KAAK,mGAAmG;AAAA,IAClH;AAEA,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,iBAAiB,UAAU,SAAS;AAAA,QACpC,2BAA2B;AAAA,QAC3B,4BAA4B,cAAc,OAAO,YAAY,cAAc,SAAS,SAAS;AAAA,QAC7F,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkPCQVQ7SBjs = require('./chunk-PCQVQ7SB.js');
5
+
6
+ // package.json
7
+ var version = "0.3.2";
8
+
9
+ // src/observability/exporters/langwatch-exporter.ts
10
+ var _exportertraceotlphttp = require('@opentelemetry/exporter-trace-otlp-http');
11
+ var LangWatchExporter = class extends _exportertraceotlphttp.OTLPTraceExporter {
12
+ /**
13
+ * Creates a new LangWatchExporter instance.
14
+ *
15
+ * @param opts - Optional configuration options for the exporter
16
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
17
+ * will use environment variables or fallback configuration.
18
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
19
+ * If not provided, will use environment variables or fallback configuration.
20
+ * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
21
+ * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
22
+ */
23
+ constructor(opts) {
24
+ var _a, _b;
25
+ const setApiKey = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : _chunkPCQVQ7SBjs.getApiKey.call(void 0, );
26
+ const setEndpoint = (_b = opts == null ? void 0 : opts.endpoint) != null ? _b : _chunkPCQVQ7SBjs.getEndpoint.call(void 0, );
27
+ if (opts && opts.includeAllSpans !== void 0) {
28
+ console.warn("[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version");
29
+ }
30
+ if (opts && opts.debug !== void 0) {
31
+ console.warn("[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version");
32
+ }
33
+ super({
34
+ headers: {
35
+ "Authorization": `Bearer ${setApiKey}`,
36
+ "X-LangWatch-SDK-Version": version,
37
+ "X-LangWatch-SDK-Language": `typescript-${typeof process !== "undefined" ? "node" : "browser"}`,
38
+ "X-LangWatch-SDK-Name": "langwatch-observability-sdk"
39
+ },
40
+ url: setEndpoint
41
+ });
42
+ }
43
+ };
44
+
45
+
46
+
47
+
48
+ exports.version = version; exports.LangWatchExporter = LangWatchExporter;
49
+ //# sourceMappingURL=chunk-IGHXIIIK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-IGHXIIIK.js","../package.json","../src/observability/exporters/langwatch-exporter.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACHE,IAAA,QAAA,EAAW,OAAA;ADKb;AACA;AERA,gFAAkC;AAkC3B,IAAM,kBAAA,EAAN,MAAA,QAAgC,yCAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYvD,WAAA,CAAY,IAAA,EAAiC;AA9C/C,IAAA,IAAA,EAAA,EAAA,EAAA;AA+CI,IAAA,MAAM,UAAA,EAAA,CAAY,GAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,IAAA,CAAM,MAAA,EAAA,GAAN,KAAA,EAAA,GAAA,EAAgB,wCAAA,CAAU;AAC5C,IAAA,MAAM,YAAA,EAAA,CAAc,GAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,IAAA,CAAM,QAAA,EAAA,GAAN,KAAA,EAAA,GAAA,EAAkB,0CAAA,CAAY;AAElD,IAAA,GAAA,CAAI,KAAA,GAAQ,IAAA,CAAK,gBAAA,IAAoB,KAAA,CAAA,EAAQ;AAC3C,MAAA,OAAA,CAAQ,IAAA,CAAK,6GAA6G,CAAA;AAAA,IAC5H;AACA,IAAA,GAAA,CAAI,KAAA,GAAQ,IAAA,CAAK,MAAA,IAAU,KAAA,CAAA,EAAQ;AACjC,MAAA,OAAA,CAAQ,IAAA,CAAK,mGAAmG,CAAA;AAAA,IAClH;AAEA,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS;AAAA,QACP,eAAA,EAAiB,CAAA,OAAA,EAAU,SAAS,CAAA,CAAA;AACT,QAAA;AACC,QAAA;AACJ,QAAA;AAC1B,MAAA;AACK,MAAA;AACN,IAAA;AACH,EAAA;AACF;AFxB6C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-IGHXIIIK.js","sourcesContent":[null,"{\n \"name\": \"langwatch\",\n \"version\": \"0.3.2\",\n \"description\": \"\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.mjs\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"bin\": {\n \"langwatch\": \"./dist/cli/index.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n },\n \"./evaluation\": {\n \"types\": \"./dist/evaluation/index.d.ts\",\n \"require\": \"./dist/evaluation/index.js\",\n \"import\": \"./dist/evaluation/index.mjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability/index.d.ts\",\n \"require\": \"./dist/observability/index.js\",\n \"import\": \"./dist/observability/index.mjs\"\n },\n \"./observability/instrumentation/langchain\": {\n \"types\": \"./dist/observability/instrumentation/langchain/index.d.ts\",\n \"require\": \"./dist/observability/instrumentation/langchain/index.js\",\n \"import\": \"./dist/observability/instrumentation/langchain/index.mjs\"\n },\n \"./prompt\": {\n \"types\": \"./dist/prompt/index.d.ts\",\n \"require\": \"./dist/prompt/index.js\",\n \"import\": \"./dist/prompt/index.mjs\"\n },\n \"./node\": {\n \"types\": \"./dist/client-node.d.ts\",\n \"import\": \"./dist/client-node.mjs\",\n \"require\": \"./dist/client-node.js\"\n },\n \"./browser\": {\n \"types\": \"./dist/client-browser.d.ts\",\n \"import\": \"./dist/client-browser.mjs\",\n \"require\": \"./dist/client-browser.js\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"typescript-sdk\"\n },\n \"scripts\": {\n \"prepare\": \"./copy-types.sh && pnpm run generate:openapi-types\",\n \"test\": \"vitest\",\n \"prebuild\": \"pnpm run prepare\",\n \"build\": \"tsgo --noEmit && tsup\",\n \"prepublish\": \"pnpm run build\",\n \"generate:openapi-types\": \"npx openapi-typescript ../langwatch/src/app/api/openapiLangWatch.json -o ./src/internal/generated/openapi/api-client.ts\"\n },\n \"author\": \"LangWatch\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\",\n \"pnpm\": \">=8\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.32.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.1.0\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250804.1\",\n \"@vercel/otel\": \"^1.13.0\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"esbuild\": \"^0.25.8\",\n \"eslint\": \"^9.32.0\",\n \"fets\": \"^0.8.5\",\n \"nock\": \"^14.0.8\",\n \"ts-to-zod\": \"3.15.0\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.38.0\",\n \"vitest\": \"^3.2.4\"\n },\n \"dependencies\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.36.0\",\n \"@types/prompts\": \"^2.4.9\",\n \"chalk\": \"^4.1.2\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^16.6.1\",\n \"js-yaml\": \"^4.1.0\",\n \"liquidjs\": \"^10.21.1\",\n \"open\": \"^10.2.0\",\n \"openapi-fetch\": \"^0.14.0\",\n \"ora\": \"^5.4.1\",\n \"prompts\": \"^2.4.2\",\n \"xksuid\": \"^0.0.4\",\n \"zod\": \"^4.0.14\"\n },\n \"peerDependencies\": {\n \"@ai-sdk/openai\": \">=2.0.0\",\n \"@langchain/core\": \">=0.3.0\",\n \"@langchain/openai\": \">=0.6.0\",\n \"@langchain/langgraph\": \">=0.4.0\",\n \"@opentelemetry/context-async-hooks\": \">=1.19.0\",\n \"@opentelemetry/context-zone\": \">=1.19.0\",\n \"@opentelemetry/sdk-node\": \">=0.200.0\",\n \"@opentelemetry/sdk-trace-web\": \">=1.19.0\",\n \"langchain\": \">=0.3.0\"\n }\n}\n","import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { version } from \"../../../package.json\";\nimport { getApiKey, getEndpoint } from \"../../client\";\n\nexport interface LangWatchExporterOptions {\n endpoint?: string;\n apiKey?: string;\n includeAllSpans?: boolean;\n debug?: boolean;\n}\n\n/**\n * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // Using custom options\n * const exporter = new LangWatchExporter({\n * apiKey: 'your-api-key',\n * endpoint: 'https://custom.langwatch.com'\n * });\n * ```\n */\nexport class LangWatchExporter extends OTLPTraceExporter {\n /**\n * Creates a new LangWatchExporter instance.\n *\n * @param opts - Optional configuration options for the exporter\n * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version\n * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version\n */\n constructor(opts?: LangWatchExporterOptions) {\n const setApiKey = opts?.apiKey ?? getApiKey();\n const setEndpoint = opts?.endpoint ?? getEndpoint();\n\n if (opts && opts.includeAllSpans !== void 0) {\n console.warn(\"[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version\");\n }\n if (opts && opts.debug !== void 0) {\n console.warn(\"[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version\");\n }\n\n super({\n headers: {\n \"Authorization\": `Bearer ${setApiKey}`,\n \"X-LangWatch-SDK-Version\": version,\n \"X-LangWatch-SDK-Language\": `typescript-${typeof process !== \"undefined\" ? \"node\" : \"browser\"}`,\n \"X-LangWatch-SDK-Name\": \"langwatch-observability-sdk\",\n },\n url: setEndpoint,\n });\n }\n}\n"]}
@@ -6,7 +6,7 @@ var _chunkLD74LVRUjs = require('./chunk-LD74LVRU.js');
6
6
 
7
7
 
8
8
 
9
- var _chunk6I4EA43Yjs = require('./chunk-6I4EA43Y.js');
9
+ var _chunkIGHXIIIKjs = require('./chunk-IGHXIIIK.js');
10
10
 
11
11
 
12
12
  var _chunkKGDAENGDjs = require('./chunk-KGDAENGD.js');
@@ -42,12 +42,15 @@ async function setupLangWatch(options = {}) {
42
42
  if (options.skipOpenTelemetrySetup) return;
43
43
  const endpointURL = new URL("/api/otel/v1/traces", _chunkPCQVQ7SBjs.getEndpoint.call(void 0, ));
44
44
  const langwatchSpanProcessor = new (0, _chunkKGDAENGDjs.FilterableBatchSpanProcessor)(
45
- new (0, _chunk6I4EA43Yjs.LangWatchExporter)(_chunkPCQVQ7SBjs.getApiKey.call(void 0, ), endpointURL.toString()),
45
+ new (0, _chunkIGHXIIIKjs.LangWatchExporter)({
46
+ apiKey: _chunkPCQVQ7SBjs.getApiKey.call(void 0, ),
47
+ endpoint: endpointURL.toString()
48
+ }),
46
49
  (_a = options.otelSpanProcessingExcludeRules) != null ? _a : []
47
50
  );
48
51
  const langwatchResource = _resources.resourceFromAttributes.call(void 0, _chunkFJLK5CFLjs.__spreadProps.call(void 0, _chunkFJLK5CFLjs.__spreadValues.call(void 0, {}, options.baseAttributes), {
49
52
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_LANGUAGE]: "typescript-browser",
50
- [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunk6I4EA43Yjs.version,
53
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunkIGHXIIIKjs.version,
51
54
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_NAME]: "langwatch-observability-sdk"
52
55
  }));
53
56
  if (_chunkLD74LVRUjs.isOtelInitialized.call(void 0, )) {
@@ -61,7 +64,7 @@ async function setupLangWatch(options = {}) {
61
64
  provider = new (0, _sdktraceweb.WebTracerProvider)({
62
65
  resource: _resources.resourceFromAttributes.call(void 0, {
63
66
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_LANGUAGE]: "typescript-browser",
64
- [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunk6I4EA43Yjs.version,
67
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunkIGHXIIIKjs.version,
65
68
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_NAME]: "langwatch-observability-sdk"
66
69
  }),
67
70
  spanProcessors: [langwatchSpanProcessor, ...(_c = options.otelSpanProcessors) != null ? _c : []]
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-browser.js","../src/client-browser.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-browser.js","sourcesContent":[null,"import { setConfig, SetupOptions, getApiKey, getEndpoint } from \"./client\";\nimport { SpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { version } from \"../package.json\";\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { FilterableBatchSpanProcessor } from \"./observability/processors\";\nimport { LangWatchExporter } from \"./observability/exporters\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet provider: WebTracerProvider | null = null;\nlet browserSetupCalled: boolean = false;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (browserSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter(getApiKey(), endpointURL.toString()),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n provider = new WebTracerProvider({\n resource: resourceFromAttributes({\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n }),\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n });\n\n provider.register({\n contextManager: new ZoneContextManager(),\n propagator: new W3CTraceContextPropagator(),\n });\n }\n\n // This is not guaranteed to be called, but it's a good nice to have.\n window.addEventListener(\"beforeunload\", async () => {\n if (provider) {\n await provider.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-browser.js","../src/client-browser.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-browser.js","sourcesContent":[null,"import { setConfig, SetupOptions, getApiKey, getEndpoint } from \"./client\";\nimport { SpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { version } from \"../package.json\";\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { FilterableBatchSpanProcessor } from \"./observability/processors\";\nimport { LangWatchExporter } from \"./observability/exporters\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet provider: WebTracerProvider | null = null;\nlet browserSetupCalled: boolean = false;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (browserSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter({\n apiKey: getApiKey(),\n endpoint: endpointURL.toString(),\n }),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n provider = new WebTracerProvider({\n resource: resourceFromAttributes({\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n }),\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n });\n\n provider.register({\n contextManager: new ZoneContextManager(),\n propagator: new W3CTraceContextPropagator(),\n });\n }\n\n // This is not guaranteed to be called, but it's a good nice to have.\n window.addEventListener(\"beforeunload\", async () => {\n if (provider) {\n await provider.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n });\n}\n"]}
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  LangWatchExporter,
8
8
  version
9
- } from "./chunk-YFUZF7JM.mjs";
9
+ } from "./chunk-AAROJADR.mjs";
10
10
  import {
11
11
  FilterableBatchSpanProcessor
12
12
  } from "./chunk-PR3JDWC3.mjs";
@@ -42,7 +42,10 @@ async function setupLangWatch(options = {}) {
42
42
  if (options.skipOpenTelemetrySetup) return;
43
43
  const endpointURL = new URL("/api/otel/v1/traces", getEndpoint());
44
44
  const langwatchSpanProcessor = new FilterableBatchSpanProcessor(
45
- new LangWatchExporter(getApiKey(), endpointURL.toString()),
45
+ new LangWatchExporter({
46
+ apiKey: getApiKey(),
47
+ endpoint: endpointURL.toString()
48
+ }),
46
49
  (_a = options.otelSpanProcessingExcludeRules) != null ? _a : []
47
50
  );
48
51
  const langwatchResource = resourceFromAttributes(__spreadProps(__spreadValues({}, options.baseAttributes), {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client-browser.ts"],"sourcesContent":["import { setConfig, SetupOptions, getApiKey, getEndpoint } from \"./client\";\nimport { SpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { version } from \"../package.json\";\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { FilterableBatchSpanProcessor } from \"./observability/processors\";\nimport { LangWatchExporter } from \"./observability/exporters\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet provider: WebTracerProvider | null = null;\nlet browserSetupCalled: boolean = false;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (browserSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter(getApiKey(), endpointURL.toString()),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n provider = new WebTracerProvider({\n resource: resourceFromAttributes({\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n }),\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n });\n\n provider.register({\n contextManager: new ZoneContextManager(),\n propagator: new W3CTraceContextPropagator(),\n });\n }\n\n // This is not guaranteed to be called, but it's a good nice to have.\n window.addEventListener(\"beforeunload\", async () => {\n if (provider) {\n await provider.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAwB,yBAAyB;AACjD,SAAS,0BAA0B;AACnC,SAAS,iCAAiC;AAE1C,SAAS,8BAA8B;AAMvC,IAAI,wBAAyC,CAAC;AAC9C,IAAI,WAAqC;AACzC,IAAI,qBAA8B;AAElC,eAAsB,eAAe,UAAwB,CAAC,GAAG;AAfjE;AAgBE,MAAI,oBAAoB;AACtB,UAAM,IAAI,MAAM,4KAA4K;AAAA,EAC9L;AAEA,YAAU,OAAO;AAEjB,MAAI,QAAQ,uBAAwB;AAEpC,QAAM,cAAc,IAAI,IAAI,uBAAuB,YAAY,CAAC;AAChE,QAAM,yBAAyB,IAAI;AAAA,IACjC,IAAI,kBAAkB,UAAU,GAAG,YAAY,SAAS,CAAC;AAAA,KACzD,aAAQ,mCAAR,YAA0C,CAAC;AAAA,EAC7C;AAEA,QAAM,oBAAoB,uBAAuB,iCAC5C,QAAQ,iBADoC;AAAA,IAE/C,CAAY,2BAA2B,GAAG;AAAA,IAC1C,CAAY,0BAA0B,GAAG;AAAA,IACzC,CAAY,uBAAuB,GAAG;AAAA,EACxC,EAAC;AAED,MAAI,kBAAkB,GAAG;AACvB,4CAAwC,iBAAiB;AACzD,6CAAyC,sBAAsB;AAC/D,eAAW,kBAAiB,aAAQ,uBAAR,YAA8B,CAAC,GAAG;AAC5D,+CAAyC,aAAa;AAAA,IACxD;AAEA,4BAAwB,CAAC,sBAAsB;AAAA,EACjD,OAAO;AACL,eAAW,IAAI,kBAAkB;AAAA,MAC/B,UAAU,uBAAuB;AAAA,QAC/B,CAAY,2BAA2B,GAAG;AAAA,QAC1C,CAAY,0BAA0B,GAAG;AAAA,QACzC,CAAY,uBAAuB,GAAG;AAAA,MACxC,CAAC;AAAA,MACD,gBAAgB,CAAC,wBAAwB,IAAI,aAAQ,uBAAR,YAA8B,CAAC,CAAE;AAAA,IAChF,CAAC;AAED,aAAS,SAAS;AAAA,MAChB,gBAAgB,IAAI,mBAAmB;AAAA,MACvC,YAAY,IAAI,0BAA0B;AAAA,IAC5C,CAAC;AAAA,EACH;AAGA,SAAO,iBAAiB,gBAAgB,YAAY;AAClD,QAAI,UAAU;AACZ,YAAM,SAAS,SAAS;AAAA,IAC1B,OAAO;AACL,YAAM,QAAQ,IAAI,sBAAsB,IAAI,OAAK,EAAE,SAAS,CAAC,CAAC;AAAA,IAChE;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/client-browser.ts"],"sourcesContent":["import { setConfig, SetupOptions, getApiKey, getEndpoint } from \"./client\";\nimport { SpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { version } from \"../package.json\";\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { FilterableBatchSpanProcessor } from \"./observability/processors\";\nimport { LangWatchExporter } from \"./observability/exporters\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet provider: WebTracerProvider | null = null;\nlet browserSetupCalled: boolean = false;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (browserSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter({\n apiKey: getApiKey(),\n endpoint: endpointURL.toString(),\n }),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n provider = new WebTracerProvider({\n resource: resourceFromAttributes({\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-browser\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n }),\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n });\n\n provider.register({\n contextManager: new ZoneContextManager(),\n propagator: new W3CTraceContextPropagator(),\n });\n }\n\n // This is not guaranteed to be called, but it's a good nice to have.\n window.addEventListener(\"beforeunload\", async () => {\n if (provider) {\n await provider.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAwB,yBAAyB;AACjD,SAAS,0BAA0B;AACnC,SAAS,iCAAiC;AAE1C,SAAS,8BAA8B;AAMvC,IAAI,wBAAyC,CAAC;AAC9C,IAAI,WAAqC;AACzC,IAAI,qBAA8B;AAElC,eAAsB,eAAe,UAAwB,CAAC,GAAG;AAfjE;AAgBE,MAAI,oBAAoB;AACtB,UAAM,IAAI,MAAM,4KAA4K;AAAA,EAC9L;AAEA,YAAU,OAAO;AAEjB,MAAI,QAAQ,uBAAwB;AAEpC,QAAM,cAAc,IAAI,IAAI,uBAAuB,YAAY,CAAC;AAChE,QAAM,yBAAyB,IAAI;AAAA,IACjC,IAAI,kBAAkB;AAAA,MACpB,QAAQ,UAAU;AAAA,MAClB,UAAU,YAAY,SAAS;AAAA,IACjC,CAAC;AAAA,KACD,aAAQ,mCAAR,YAA0C,CAAC;AAAA,EAC7C;AAEA,QAAM,oBAAoB,uBAAuB,iCAC5C,QAAQ,iBADoC;AAAA,IAE/C,CAAY,2BAA2B,GAAG;AAAA,IAC1C,CAAY,0BAA0B,GAAG;AAAA,IACzC,CAAY,uBAAuB,GAAG;AAAA,EACxC,EAAC;AAED,MAAI,kBAAkB,GAAG;AACvB,4CAAwC,iBAAiB;AACzD,6CAAyC,sBAAsB;AAC/D,eAAW,kBAAiB,aAAQ,uBAAR,YAA8B,CAAC,GAAG;AAC5D,+CAAyC,aAAa;AAAA,IACxD;AAEA,4BAAwB,CAAC,sBAAsB;AAAA,EACjD,OAAO;AACL,eAAW,IAAI,kBAAkB;AAAA,MAC/B,UAAU,uBAAuB;AAAA,QAC/B,CAAY,2BAA2B,GAAG;AAAA,QAC1C,CAAY,0BAA0B,GAAG;AAAA,QACzC,CAAY,uBAAuB,GAAG;AAAA,MACxC,CAAC;AAAA,MACD,gBAAgB,CAAC,wBAAwB,IAAI,aAAQ,uBAAR,YAA8B,CAAC,CAAE;AAAA,IAChF,CAAC;AAED,aAAS,SAAS;AAAA,MAChB,gBAAgB,IAAI,mBAAmB;AAAA,MACvC,YAAY,IAAI,0BAA0B;AAAA,IAC5C,CAAC;AAAA,EACH;AAGA,SAAO,iBAAiB,gBAAgB,YAAY;AAClD,QAAI,UAAU;AACZ,YAAM,SAAS,SAAS;AAAA,IAC1B,OAAO;AACL,YAAM,QAAQ,IAAI,sBAAsB,IAAI,OAAK,EAAE,SAAS,CAAC,CAAC;AAAA,IAChE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -6,7 +6,7 @@ var _chunkLD74LVRUjs = require('./chunk-LD74LVRU.js');
6
6
 
7
7
 
8
8
 
9
- var _chunk6I4EA43Yjs = require('./chunk-6I4EA43Y.js');
9
+ var _chunkIGHXIIIKjs = require('./chunk-IGHXIIIK.js');
10
10
  require('./chunk-2ODBGSBI.js');
11
11
 
12
12
 
@@ -45,12 +45,15 @@ async function setupLangWatch(options = {}) {
45
45
  if (options.skipOpenTelemetrySetup) return;
46
46
  const endpointURL = new URL("/api/otel/v1/traces", _chunkPCQVQ7SBjs.getEndpoint.call(void 0, ));
47
47
  const langwatchSpanProcessor = new (0, _chunkKGDAENGDjs.FilterableBatchSpanProcessor)(
48
- new (0, _chunk6I4EA43Yjs.LangWatchExporter)(_chunkPCQVQ7SBjs.getApiKey.call(void 0, ), endpointURL.toString()),
48
+ new (0, _chunkIGHXIIIKjs.LangWatchExporter)({
49
+ apiKey: _chunkPCQVQ7SBjs.getApiKey.call(void 0, ),
50
+ endpoint: endpointURL.toString()
51
+ }),
49
52
  (_a = options.otelSpanProcessingExcludeRules) != null ? _a : []
50
53
  );
51
54
  const langwatchResource = _resources.resourceFromAttributes.call(void 0, _chunkFJLK5CFLjs.__spreadProps.call(void 0, _chunkFJLK5CFLjs.__spreadValues.call(void 0, {}, options.baseAttributes), {
52
55
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_LANGUAGE]: "typescript-node",
53
- [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunk6I4EA43Yjs.version,
56
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_VERSION]: _chunkIGHXIIIKjs.version,
54
57
  [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_SDK_NAME]: "langwatch-observability-sdk"
55
58
  }));
56
59
  if (_chunkLD74LVRUjs.isOtelInitialized.call(void 0, )) {
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-node.js","../src/client-node.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-node.js","sourcesContent":[null,"import { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { getApiKey, getEndpoint, setConfig, SetupOptions } from \"./client\";\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport { AsyncLocalStorageContextManager } from \"@opentelemetry/context-async-hooks\";\nimport { W3CTraceContextPropagator } from \"@opentelemetry/core\";\nimport { version } from \"../package.json\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\nimport { FilterableBatchSpanProcessor } from \"./observability\";\nimport { LangWatchExporter } from \"./observability/exporters\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet nodeSetupCalled: boolean = false;\nlet sdk: NodeSDK | null = null;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (nodeSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n nodeSetupCalled = true;\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter(getApiKey(), endpointURL.toString()),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-node\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n sdk = new NodeSDK({\n resource: langwatchResource,\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n contextManager: new AsyncLocalStorageContextManager(),\n textMapPropagator: new W3CTraceContextPropagator(),\n });\n\n sdk.start();\n }\n\n // If we detect interrupt, termination, or test beforeExit signals, then we attempt\n // to shutdown.\n // - If an SDK exists, then we just attempt to shutdown the SDK.\n // - If no SDK exists, then we attempt to shutdown ONLY the SpanProcessors that are\n // managed by this LangWatch SDK.\n [\"SIGINT\", \"SIGTERM\", \"beforeExit\"].forEach((signal) => {\n process.on(signal as any, async () => {\n try {\n if (sdk) {\n await sdk.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error shutting down OpenTelemetry SDK:\", error);\n }\n\n if (signal !== \"beforeExit\") {\n process.exit();\n }\n });\n });\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-node.js","../src/client-node.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-node.js","sourcesContent":[null,"import { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { getApiKey, getEndpoint, setConfig, SetupOptions } from \"./client\";\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport { AsyncLocalStorageContextManager } from \"@opentelemetry/context-async-hooks\";\nimport { W3CTraceContextPropagator } from \"@opentelemetry/core\";\nimport { version } from \"../package.json\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\nimport { FilterableBatchSpanProcessor } from \"./observability\";\nimport { LangWatchExporter } from \"./observability/exporters\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet nodeSetupCalled: boolean = false;\nlet sdk: NodeSDK | null = null;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (nodeSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n nodeSetupCalled = true;\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter({\n apiKey: getApiKey(),\n endpoint: endpointURL.toString(),\n }),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-node\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n sdk = new NodeSDK({\n resource: langwatchResource,\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n contextManager: new AsyncLocalStorageContextManager(),\n textMapPropagator: new W3CTraceContextPropagator(),\n });\n\n sdk.start();\n }\n\n // If we detect interrupt, termination, or test beforeExit signals, then we attempt\n // to shutdown.\n // - If an SDK exists, then we just attempt to shutdown the SDK.\n // - If no SDK exists, then we attempt to shutdown ONLY the SpanProcessors that are\n // managed by this LangWatch SDK.\n [\"SIGINT\", \"SIGTERM\", \"beforeExit\"].forEach((signal) => {\n process.on(signal as any, async () => {\n try {\n if (sdk) {\n await sdk.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error shutting down OpenTelemetry SDK:\", error);\n }\n\n if (signal !== \"beforeExit\") {\n process.exit();\n }\n });\n });\n}\n"]}
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  LangWatchExporter,
8
8
  version
9
- } from "./chunk-YFUZF7JM.mjs";
9
+ } from "./chunk-AAROJADR.mjs";
10
10
  import "./chunk-Y666BJA5.mjs";
11
11
  import {
12
12
  FilterableBatchSpanProcessor
@@ -45,7 +45,10 @@ async function setupLangWatch(options = {}) {
45
45
  if (options.skipOpenTelemetrySetup) return;
46
46
  const endpointURL = new URL("/api/otel/v1/traces", getEndpoint());
47
47
  const langwatchSpanProcessor = new FilterableBatchSpanProcessor(
48
- new LangWatchExporter(getApiKey(), endpointURL.toString()),
48
+ new LangWatchExporter({
49
+ apiKey: getApiKey(),
50
+ endpoint: endpointURL.toString()
51
+ }),
49
52
  (_a = options.otelSpanProcessingExcludeRules) != null ? _a : []
50
53
  );
51
54
  const langwatchResource = resourceFromAttributes(__spreadProps(__spreadValues({}, options.baseAttributes), {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client-node.ts"],"sourcesContent":["import { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { getApiKey, getEndpoint, setConfig, SetupOptions } from \"./client\";\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport { AsyncLocalStorageContextManager } from \"@opentelemetry/context-async-hooks\";\nimport { W3CTraceContextPropagator } from \"@opentelemetry/core\";\nimport { version } from \"../package.json\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\nimport { FilterableBatchSpanProcessor } from \"./observability\";\nimport { LangWatchExporter } from \"./observability/exporters\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet nodeSetupCalled: boolean = false;\nlet sdk: NodeSDK | null = null;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (nodeSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n nodeSetupCalled = true;\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter(getApiKey(), endpointURL.toString()),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-node\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n sdk = new NodeSDK({\n resource: langwatchResource,\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n contextManager: new AsyncLocalStorageContextManager(),\n textMapPropagator: new W3CTraceContextPropagator(),\n });\n\n sdk.start();\n }\n\n // If we detect interrupt, termination, or test beforeExit signals, then we attempt\n // to shutdown.\n // - If an SDK exists, then we just attempt to shutdown the SDK.\n // - If no SDK exists, then we attempt to shutdown ONLY the SpanProcessors that are\n // managed by this LangWatch SDK.\n [\"SIGINT\", \"SIGTERM\", \"beforeExit\"].forEach((signal) => {\n process.on(signal as any, async () => {\n try {\n if (sdk) {\n await sdk.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error shutting down OpenTelemetry SDK:\", error);\n }\n\n if (signal !== \"beforeExit\") {\n process.exit();\n }\n });\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,eAAe;AACxB,SAAS,8BAA8B;AACvC,SAAS,uCAAuC;AAChD,SAAS,iCAAiC;AAO1C,IAAI,wBAAyC,CAAC;AAC9C,IAAI,kBAA2B;AAC/B,IAAI,MAAsB;AAE1B,eAAsB,eAAe,UAAwB,CAAC,GAAG;AAhBjE;AAiBE,MAAI,iBAAiB;AACnB,UAAM,IAAI,MAAM,4KAA4K;AAAA,EAC9L;AAEA,YAAU,OAAO;AACjB,oBAAkB;AAElB,MAAI,QAAQ,uBAAwB;AAEpC,QAAM,cAAc,IAAI,IAAI,uBAAuB,YAAY,CAAC;AAChE,QAAM,yBAAyB,IAAI;AAAA,IACjC,IAAI,kBAAkB,UAAU,GAAG,YAAY,SAAS,CAAC;AAAA,KACzD,aAAQ,mCAAR,YAA0C,CAAC;AAAA,EAC7C;AAEA,QAAM,oBAAoB,uBAAuB,iCAC5C,QAAQ,iBADoC;AAAA,IAE/C,CAAY,2BAA2B,GAAG;AAAA,IAC1C,CAAY,0BAA0B,GAAG;AAAA,IACzC,CAAY,uBAAuB,GAAG;AAAA,EACxC,EAAC;AAED,MAAI,kBAAkB,GAAG;AACvB,4CAAwC,iBAAiB;AACzD,6CAAyC,sBAAsB;AAC/D,eAAW,kBAAiB,aAAQ,uBAAR,YAA8B,CAAC,GAAG;AAC5D,+CAAyC,aAAa;AAAA,IACxD;AAEA,4BAAwB,CAAC,sBAAsB;AAAA,EACjD,OAAO;AACL,UAAM,IAAI,QAAQ;AAAA,MAChB,UAAU;AAAA,MACV,gBAAgB,CAAC,wBAAwB,IAAI,aAAQ,uBAAR,YAA8B,CAAC,CAAE;AAAA,MAC9E,gBAAgB,IAAI,gCAAgC;AAAA,MACpD,mBAAmB,IAAI,0BAA0B;AAAA,IACnD,CAAC;AAED,QAAI,MAAM;AAAA,EACZ;AAOA,GAAC,UAAU,WAAW,YAAY,EAAE,QAAQ,CAAC,WAAW;AACtD,YAAQ,GAAG,QAAe,YAAY;AACpC,UAAI;AACF,YAAI,KAAK;AACP,gBAAM,IAAI,SAAS;AAAA,QACrB,OAAO;AACL,gBAAM,QAAQ,IAAI,sBAAsB,IAAI,OAAK,EAAE,SAAS,CAAC,CAAC;AAAA,QAChE;AAAA,MACF,SAAS,OAAO;AAEd,gBAAQ,MAAM,0CAA0C,KAAK;AAAA,MAC/D;AAEA,UAAI,WAAW,cAAc;AAC3B,gBAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/client-node.ts"],"sourcesContent":["import { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { getApiKey, getEndpoint, setConfig, SetupOptions } from \"./client\";\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { resourceFromAttributes } from \"@opentelemetry/resources\";\nimport { AsyncLocalStorageContextManager } from \"@opentelemetry/context-async-hooks\";\nimport { W3CTraceContextPropagator } from \"@opentelemetry/core\";\nimport { version } from \"../package.json\";\nimport * as intSemconv from \"./observability/semconv\";\nimport { addSpanProcessorToExistingTracerProvider, isOtelInitialized, mergeResourceIntoExistingTracerProvider } from \"./client-shared\";\nimport { FilterableBatchSpanProcessor } from \"./observability\";\nimport { LangWatchExporter } from \"./observability/exporters\";\n\nlet managedSpanProcessors: SpanProcessor[] = [];\nlet nodeSetupCalled: boolean = false;\nlet sdk: NodeSDK | null = null;\n\nexport async function setupLangWatch(options: SetupOptions = {}) {\n if (nodeSetupCalled) {\n throw new Error(\"LangWatch setup has already been called in this process. Setup can only be called once, if you need to modify OpenTelemetry setup then use the OpenTelemetry API directly.\");\n }\n\n setConfig(options);\n nodeSetupCalled = true;\n\n if (options.skipOpenTelemetrySetup) return;\n\n const endpointURL = new URL(\"/api/otel/v1/traces\", getEndpoint());\n const langwatchSpanProcessor = new FilterableBatchSpanProcessor(\n new LangWatchExporter({\n apiKey: getApiKey(),\n endpoint: endpointURL.toString(),\n }),\n options.otelSpanProcessingExcludeRules ?? [],\n );\n\n const langwatchResource = resourceFromAttributes({\n ...options.baseAttributes,\n [intSemconv.ATTR_LANGWATCH_SDK_LANGUAGE]: \"typescript-node\",\n [intSemconv.ATTR_LANGWATCH_SDK_VERSION]: version,\n [intSemconv.ATTR_LANGWATCH_SDK_NAME]: \"langwatch-observability-sdk\",\n });\n\n if (isOtelInitialized()) {\n mergeResourceIntoExistingTracerProvider(langwatchResource);\n addSpanProcessorToExistingTracerProvider(langwatchSpanProcessor);\n for (const spanProcessor of options.otelSpanProcessors ?? []) {\n addSpanProcessorToExistingTracerProvider(spanProcessor);\n }\n\n managedSpanProcessors = [langwatchSpanProcessor];\n } else {\n sdk = new NodeSDK({\n resource: langwatchResource,\n spanProcessors: [langwatchSpanProcessor, ...(options.otelSpanProcessors ?? [])],\n contextManager: new AsyncLocalStorageContextManager(),\n textMapPropagator: new W3CTraceContextPropagator(),\n });\n\n sdk.start();\n }\n\n // If we detect interrupt, termination, or test beforeExit signals, then we attempt\n // to shutdown.\n // - If an SDK exists, then we just attempt to shutdown the SDK.\n // - If no SDK exists, then we attempt to shutdown ONLY the SpanProcessors that are\n // managed by this LangWatch SDK.\n [\"SIGINT\", \"SIGTERM\", \"beforeExit\"].forEach((signal) => {\n process.on(signal as any, async () => {\n try {\n if (sdk) {\n await sdk.shutdown();\n } else {\n await Promise.all(managedSpanProcessors.map(p => p.shutdown()));\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error shutting down OpenTelemetry SDK:\", error);\n }\n\n if (signal !== \"beforeExit\") {\n process.exit();\n }\n });\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,eAAe;AACxB,SAAS,8BAA8B;AACvC,SAAS,uCAAuC;AAChD,SAAS,iCAAiC;AAO1C,IAAI,wBAAyC,CAAC;AAC9C,IAAI,kBAA2B;AAC/B,IAAI,MAAsB;AAE1B,eAAsB,eAAe,UAAwB,CAAC,GAAG;AAhBjE;AAiBE,MAAI,iBAAiB;AACnB,UAAM,IAAI,MAAM,4KAA4K;AAAA,EAC9L;AAEA,YAAU,OAAO;AACjB,oBAAkB;AAElB,MAAI,QAAQ,uBAAwB;AAEpC,QAAM,cAAc,IAAI,IAAI,uBAAuB,YAAY,CAAC;AAChE,QAAM,yBAAyB,IAAI;AAAA,IACjC,IAAI,kBAAkB;AAAA,MACpB,QAAQ,UAAU;AAAA,MAClB,UAAU,YAAY,SAAS;AAAA,IACjC,CAAC;AAAA,KACD,aAAQ,mCAAR,YAA0C,CAAC;AAAA,EAC7C;AAEA,QAAM,oBAAoB,uBAAuB,iCAC5C,QAAQ,iBADoC;AAAA,IAE/C,CAAY,2BAA2B,GAAG;AAAA,IAC1C,CAAY,0BAA0B,GAAG;AAAA,IACzC,CAAY,uBAAuB,GAAG;AAAA,EACxC,EAAC;AAED,MAAI,kBAAkB,GAAG;AACvB,4CAAwC,iBAAiB;AACzD,6CAAyC,sBAAsB;AAC/D,eAAW,kBAAiB,aAAQ,uBAAR,YAA8B,CAAC,GAAG;AAC5D,+CAAyC,aAAa;AAAA,IACxD;AAEA,4BAAwB,CAAC,sBAAsB;AAAA,EACjD,OAAO;AACL,UAAM,IAAI,QAAQ;AAAA,MAChB,UAAU;AAAA,MACV,gBAAgB,CAAC,wBAAwB,IAAI,aAAQ,uBAAR,YAA8B,CAAC,CAAE;AAAA,MAC9E,gBAAgB,IAAI,gCAAgC;AAAA,MACpD,mBAAmB,IAAI,0BAA0B;AAAA,IACnD,CAAC;AAED,QAAI,MAAM;AAAA,EACZ;AAOA,GAAC,UAAU,WAAW,YAAY,EAAE,QAAQ,CAAC,WAAW;AACtD,YAAQ,GAAG,QAAe,YAAY;AACpC,UAAI;AACF,YAAI,KAAK;AACP,gBAAM,IAAI,SAAS;AAAA,QACrB,OAAO;AACL,gBAAM,QAAQ,IAAI,sBAAsB,IAAI,OAAK,EAAE,SAAS,CAAC,CAAC;AAAA,QAChE;AAAA,MACF,SAAS,OAAO;AAEd,gBAAQ,MAAM,0CAA0C,KAAK;AAAA,MAC/D;AAEA,UAAI,WAAW,cAAc;AAC3B,gBAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}
package/dist/index.d.mts CHANGED
@@ -8,6 +8,12 @@ import '@opentelemetry/api';
8
8
  import './prompt-D-jpMrLS.mjs';
9
9
  import '@opentelemetry/sdk-trace-base';
10
10
 
11
+ interface LangWatchExporterOptions {
12
+ endpoint?: string;
13
+ apiKey?: string;
14
+ includeAllSpans?: boolean;
15
+ debug?: boolean;
16
+ }
11
17
  /**
12
18
  * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter
13
19
  * to send trace data to LangWatch with proper authentication and metadata headers.
@@ -24,25 +30,26 @@ import '@opentelemetry/sdk-trace-base';
24
30
  * // Using environment variables/fallback configuration
25
31
  * const exporter = new LangWatchExporter();
26
32
  *
27
- * // Using custom API key and endpoint
28
- *
29
- * // With environment variables/fallback configuration
30
- * const exporter = new LangWatchExporter();
31
- *
32
- * // With custom API key and endpoint
33
- * const exporter = new LangWatchExporter('api-key', 'https://custom.langwatch.com');
33
+ * // Using custom options
34
+ * const exporter = new LangWatchExporter({
35
+ * apiKey: 'your-api-key',
36
+ * endpoint: 'https://custom.langwatch.com'
37
+ * });
34
38
  * ```
35
39
  */
36
40
  declare class LangWatchExporter extends OTLPTraceExporter {
37
41
  /**
38
42
  * Creates a new LangWatchExporter instance.
39
43
  *
40
- * @param apiKey - Optional API key for LangWatch authentication. If not provided,
41
- * will use environment variables or fallback configuration.
42
- * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.
43
- * If not provided, will use environment variables or fallback configuration.
44
+ * @param opts - Optional configuration options for the exporter
45
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
46
+ * will use environment variables or fallback configuration.
47
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
48
+ * If not provided, will use environment variables or fallback configuration.
49
+ * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
50
+ * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
44
51
  */
45
- constructor(apiKey?: string, endpointURL?: string);
52
+ constructor(opts?: LangWatchExporterOptions);
46
53
  }
47
54
 
48
55
  export { LangWatchExporter };
package/dist/index.d.ts CHANGED
@@ -8,6 +8,12 @@ import '@opentelemetry/api';
8
8
  import './prompt-D-jpMrLS.js';
9
9
  import '@opentelemetry/sdk-trace-base';
10
10
 
11
+ interface LangWatchExporterOptions {
12
+ endpoint?: string;
13
+ apiKey?: string;
14
+ includeAllSpans?: boolean;
15
+ debug?: boolean;
16
+ }
11
17
  /**
12
18
  * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter
13
19
  * to send trace data to LangWatch with proper authentication and metadata headers.
@@ -24,25 +30,26 @@ import '@opentelemetry/sdk-trace-base';
24
30
  * // Using environment variables/fallback configuration
25
31
  * const exporter = new LangWatchExporter();
26
32
  *
27
- * // Using custom API key and endpoint
28
- *
29
- * // With environment variables/fallback configuration
30
- * const exporter = new LangWatchExporter();
31
- *
32
- * // With custom API key and endpoint
33
- * const exporter = new LangWatchExporter('api-key', 'https://custom.langwatch.com');
33
+ * // Using custom options
34
+ * const exporter = new LangWatchExporter({
35
+ * apiKey: 'your-api-key',
36
+ * endpoint: 'https://custom.langwatch.com'
37
+ * });
34
38
  * ```
35
39
  */
36
40
  declare class LangWatchExporter extends OTLPTraceExporter {
37
41
  /**
38
42
  * Creates a new LangWatchExporter instance.
39
43
  *
40
- * @param apiKey - Optional API key for LangWatch authentication. If not provided,
41
- * will use environment variables or fallback configuration.
42
- * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.
43
- * If not provided, will use environment variables or fallback configuration.
44
+ * @param opts - Optional configuration options for the exporter
45
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
46
+ * will use environment variables or fallback configuration.
47
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
48
+ * If not provided, will use environment variables or fallback configuration.
49
+ * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
50
+ * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
44
51
  */
45
- constructor(apiKey?: string, endpointURL?: string);
52
+ constructor(opts?: LangWatchExporterOptions);
46
53
  }
47
54
 
48
55
  export { LangWatchExporter };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk6I4EA43Yjs = require('./chunk-6I4EA43Y.js');
3
+ var _chunkIGHXIIIKjs = require('./chunk-IGHXIIIK.js');
4
4
 
5
5
 
6
6
  var _chunkPWZBLTHRjs = require('./chunk-PWZBLTHR.js');
@@ -29,5 +29,5 @@ require('./chunk-FJLK5CFL.js');
29
29
 
30
30
 
31
31
 
32
- exports.FilterableBatchSpanProcessor = _chunkKGDAENGDjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunk6I4EA43Yjs.LangWatchExporter; exports.getLangWatchTracer = _chunk52GXX3MAjs.getLangWatchTracer; exports.getPrompt = _chunk5NC5ILKAjs.getPrompt; exports.getPromptVersion = _chunk5NC5ILKAjs.getPromptVersion; exports.recordEvaluation = _chunk52GXX3MAjs.recordEvaluation; exports.runEvaluation = _chunkPWZBLTHRjs.runEvaluation;
32
+ exports.FilterableBatchSpanProcessor = _chunkKGDAENGDjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkIGHXIIIKjs.LangWatchExporter; exports.getLangWatchTracer = _chunk52GXX3MAjs.getLangWatchTracer; exports.getPrompt = _chunk5NC5ILKAjs.getPrompt; exports.getPromptVersion = _chunk5NC5ILKAjs.getPromptVersion; exports.recordEvaluation = _chunk52GXX3MAjs.recordEvaluation; exports.runEvaluation = _chunkPWZBLTHRjs.runEvaluation;
33
33
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LangWatchExporter
3
- } from "./chunk-YFUZF7JM.mjs";
3
+ } from "./chunk-AAROJADR.mjs";
4
4
  import {
5
5
  runEvaluation
6
6
  } from "./chunk-STV4ZVNA.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langwatch",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -67,6 +67,7 @@
67
67
  "@types/js-yaml": "^4.0.9",
68
68
  "@types/node": "^24.1.0",
69
69
  "@typescript/native-preview": "7.0.0-dev.20250804.1",
70
+ "@vercel/otel": "^1.13.0",
70
71
  "@vitest/coverage-v8": "3.2.4",
71
72
  "esbuild": "^0.25.8",
72
73
  "eslint": "^9.32.0",
@@ -99,16 +100,15 @@
99
100
  "zod": "^4.0.14"
100
101
  },
101
102
  "peerDependencies": {
102
- "@ai-sdk/openai": "^2.0.0",
103
- "@langchain/core": "^0.3.66",
104
- "@langchain/openai": "^0.6.3",
105
- "@langchain/langgraph": "^0.4.2",
106
- "@opentelemetry/context-async-hooks": "^2.0.1",
107
- "@opentelemetry/context-zone": "^2.0.1",
108
- "@opentelemetry/sdk-node": "^0.203.0",
109
- "@opentelemetry/sdk-trace-web": "^2.0.1",
110
- "@vercel/otel": "^1.13.0",
111
- "langchain": "^0.3.30"
103
+ "@ai-sdk/openai": ">=2.0.0",
104
+ "@langchain/core": ">=0.3.0",
105
+ "@langchain/openai": ">=0.6.0",
106
+ "@langchain/langgraph": ">=0.4.0",
107
+ "@opentelemetry/context-async-hooks": ">=1.19.0",
108
+ "@opentelemetry/context-zone": ">=1.19.0",
109
+ "@opentelemetry/sdk-node": ">=0.200.0",
110
+ "@opentelemetry/sdk-trace-web": ">=1.19.0",
111
+ "langchain": ">=0.3.0"
112
112
  },
113
113
  "scripts": {
114
114
  "test": "vitest",
@@ -1,39 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _chunkPCQVQ7SBjs = require('./chunk-PCQVQ7SB.js');
5
-
6
- // package.json
7
- var version = "0.3.1";
8
-
9
- // src/observability/exporters/langwatch-exporter.ts
10
- var _exportertraceotlphttp = require('@opentelemetry/exporter-trace-otlp-http');
11
- var LangWatchExporter = class extends _exportertraceotlphttp.OTLPTraceExporter {
12
- /**
13
- * Creates a new LangWatchExporter instance.
14
- *
15
- * @param apiKey - Optional API key for LangWatch authentication. If not provided,
16
- * will use environment variables or fallback configuration.
17
- * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.
18
- * If not provided, will use environment variables or fallback configuration.
19
- */
20
- constructor(apiKey, endpointURL) {
21
- const setApiKey = apiKey != null ? apiKey : _chunkPCQVQ7SBjs.getApiKey.call(void 0, );
22
- const setEndpoint = endpointURL != null ? endpointURL : _chunkPCQVQ7SBjs.getEndpoint.call(void 0, );
23
- super({
24
- headers: {
25
- "Authorization": `Bearer ${setApiKey}`,
26
- "X-LangWatch-SDK-Version": version,
27
- "X-LangWatch-SDK-Language": `typescript-${typeof process !== "undefined" ? "node" : "browser"}`,
28
- "X-LangWatch-SDK-Name": "langwatch-observability-sdk"
29
- },
30
- url: setEndpoint
31
- });
32
- }
33
- };
34
-
35
-
36
-
37
-
38
- exports.version = version; exports.LangWatchExporter = LangWatchExporter;
39
- //# sourceMappingURL=chunk-6I4EA43Y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-6I4EA43Y.js","../package.json","../src/observability/exporters/langwatch-exporter.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACHE,IAAA,QAAA,EAAW,OAAA;ADKb;AACA;AERA,gFAAkC;AA6B3B,IAAM,kBAAA,EAAN,MAAA,QAAgC,yCAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,WAAA,CAAY,MAAA,EAAiB,WAAA,EAAsB;AACjD,IAAA,MAAM,UAAA,EAAY,OAAA,GAAA,KAAA,EAAA,OAAA,EAAU,wCAAA,CAAU;AACtC,IAAA,MAAM,YAAA,EAAc,YAAA,GAAA,KAAA,EAAA,YAAA,EAAe,0CAAA,CAAY;AAE/C,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS;AAAA,QACP,eAAA,EAAiB,CAAA,OAAA,EAAU,SAAS,CAAA,CAAA;AACT,QAAA;AACC,QAAA;AACJ,QAAA;AAC1B,MAAA;AACK,MAAA;AACN,IAAA;AACH,EAAA;AACF;AFnB6C;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-6I4EA43Y.js","sourcesContent":[null,"{\n \"name\": \"langwatch\",\n \"version\": \"0.3.1\",\n \"description\": \"\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.mjs\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"bin\": {\n \"langwatch\": \"./dist/cli/index.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n },\n \"./evaluation\": {\n \"types\": \"./dist/evaluation/index.d.ts\",\n \"require\": \"./dist/evaluation/index.js\",\n \"import\": \"./dist/evaluation/index.mjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability/index.d.ts\",\n \"require\": \"./dist/observability/index.js\",\n \"import\": \"./dist/observability/index.mjs\"\n },\n \"./observability/instrumentation/langchain\": {\n \"types\": \"./dist/observability/instrumentation/langchain/index.d.ts\",\n \"require\": \"./dist/observability/instrumentation/langchain/index.js\",\n \"import\": \"./dist/observability/instrumentation/langchain/index.mjs\"\n },\n \"./prompt\": {\n \"types\": \"./dist/prompt/index.d.ts\",\n \"require\": \"./dist/prompt/index.js\",\n \"import\": \"./dist/prompt/index.mjs\"\n },\n \"./node\": {\n \"types\": \"./dist/client-node.d.ts\",\n \"import\": \"./dist/client-node.mjs\",\n \"require\": \"./dist/client-node.js\"\n },\n \"./browser\": {\n \"types\": \"./dist/client-browser.d.ts\",\n \"import\": \"./dist/client-browser.mjs\",\n \"require\": \"./dist/client-browser.js\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"typescript-sdk\"\n },\n \"scripts\": {\n \"prepare\": \"./copy-types.sh && pnpm run generate:openapi-types\",\n \"test\": \"vitest\",\n \"prebuild\": \"pnpm run prepare\",\n \"build\": \"tsgo --noEmit && tsup\",\n \"prepublish\": \"pnpm run build\",\n \"generate:openapi-types\": \"npx openapi-typescript ../langwatch/src/app/api/openapiLangWatch.json -o ./src/internal/generated/openapi/api-client.ts\"\n },\n \"author\": \"LangWatch\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\",\n \"pnpm\": \">=8\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.32.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.1.0\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250804.1\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"esbuild\": \"^0.25.8\",\n \"eslint\": \"^9.32.0\",\n \"fets\": \"^0.8.5\",\n \"nock\": \"^14.0.8\",\n \"ts-to-zod\": \"3.15.0\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.38.0\",\n \"vitest\": \"^3.2.4\"\n },\n \"dependencies\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.36.0\",\n \"@types/prompts\": \"^2.4.9\",\n \"chalk\": \"^4.1.2\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^16.6.1\",\n \"js-yaml\": \"^4.1.0\",\n \"liquidjs\": \"^10.21.1\",\n \"open\": \"^10.2.0\",\n \"openapi-fetch\": \"^0.14.0\",\n \"ora\": \"^5.4.1\",\n \"prompts\": \"^2.4.2\",\n \"xksuid\": \"^0.0.4\",\n \"zod\": \"^4.0.14\"\n },\n \"peerDependencies\": {\n \"@ai-sdk/openai\": \"^2.0.0\",\n \"@langchain/core\": \"^0.3.66\",\n \"@langchain/openai\": \"^0.6.3\",\n \"@langchain/langgraph\": \"^0.4.2\",\n \"@opentelemetry/context-async-hooks\": \"^2.0.1\",\n \"@opentelemetry/context-zone\": \"^2.0.1\",\n \"@opentelemetry/sdk-node\": \"^0.203.0\",\n \"@opentelemetry/sdk-trace-web\": \"^2.0.1\",\n \"@vercel/otel\": \"^1.13.0\",\n \"langchain\": \"^0.3.30\"\n }\n}\n","import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { version } from \"../../../package.json\";\nimport { getApiKey, getEndpoint } from \"../../client\";\n\n/**\n * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // Using custom API key and endpoint\n *\n * // With environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // With custom API key and endpoint\n * const exporter = new LangWatchExporter('api-key', 'https://custom.langwatch.com');\n * ```\n */\nexport class LangWatchExporter extends OTLPTraceExporter {\n /**\n * Creates a new LangWatchExporter instance.\n *\n * @param apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n */\n constructor(apiKey?: string, endpointURL?: string) {\n const setApiKey = apiKey ?? getApiKey();\n const setEndpoint = endpointURL ?? getEndpoint();\n\n super({\n headers: {\n \"Authorization\": `Bearer ${setApiKey}`,\n \"X-LangWatch-SDK-Version\": version,\n \"X-LangWatch-SDK-Language\": `typescript-${typeof process !== \"undefined\" ? \"node\" : \"browser\"}`,\n \"X-LangWatch-SDK-Name\": \"langwatch-observability-sdk\",\n },\n url: setEndpoint,\n });\n }\n}\n"]}
@@ -1,39 +0,0 @@
1
- import {
2
- getApiKey,
3
- getEndpoint
4
- } from "./chunk-QEWDG5QE.mjs";
5
-
6
- // package.json
7
- var version = "0.3.1";
8
-
9
- // src/observability/exporters/langwatch-exporter.ts
10
- import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
11
- var LangWatchExporter = class extends OTLPTraceExporter {
12
- /**
13
- * Creates a new LangWatchExporter instance.
14
- *
15
- * @param apiKey - Optional API key for LangWatch authentication. If not provided,
16
- * will use environment variables or fallback configuration.
17
- * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.
18
- * If not provided, will use environment variables or fallback configuration.
19
- */
20
- constructor(apiKey, endpointURL) {
21
- const setApiKey = apiKey != null ? apiKey : getApiKey();
22
- const setEndpoint = endpointURL != null ? endpointURL : getEndpoint();
23
- super({
24
- headers: {
25
- "Authorization": `Bearer ${setApiKey}`,
26
- "X-LangWatch-SDK-Version": version,
27
- "X-LangWatch-SDK-Language": `typescript-${typeof process !== "undefined" ? "node" : "browser"}`,
28
- "X-LangWatch-SDK-Name": "langwatch-observability-sdk"
29
- },
30
- url: setEndpoint
31
- });
32
- }
33
- };
34
-
35
- export {
36
- version,
37
- LangWatchExporter
38
- };
39
- //# sourceMappingURL=chunk-YFUZF7JM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../package.json","../src/observability/exporters/langwatch-exporter.ts"],"sourcesContent":["{\n \"name\": \"langwatch\",\n \"version\": \"0.3.1\",\n \"description\": \"\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.mjs\",\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"bin\": {\n \"langwatch\": \"./dist/cli/index.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n },\n \"./evaluation\": {\n \"types\": \"./dist/evaluation/index.d.ts\",\n \"require\": \"./dist/evaluation/index.js\",\n \"import\": \"./dist/evaluation/index.mjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability/index.d.ts\",\n \"require\": \"./dist/observability/index.js\",\n \"import\": \"./dist/observability/index.mjs\"\n },\n \"./observability/instrumentation/langchain\": {\n \"types\": \"./dist/observability/instrumentation/langchain/index.d.ts\",\n \"require\": \"./dist/observability/instrumentation/langchain/index.js\",\n \"import\": \"./dist/observability/instrumentation/langchain/index.mjs\"\n },\n \"./prompt\": {\n \"types\": \"./dist/prompt/index.d.ts\",\n \"require\": \"./dist/prompt/index.js\",\n \"import\": \"./dist/prompt/index.mjs\"\n },\n \"./node\": {\n \"types\": \"./dist/client-node.d.ts\",\n \"import\": \"./dist/client-node.mjs\",\n \"require\": \"./dist/client-node.js\"\n },\n \"./browser\": {\n \"types\": \"./dist/client-browser.d.ts\",\n \"import\": \"./dist/client-browser.mjs\",\n \"require\": \"./dist/client-browser.js\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"typescript-sdk\"\n },\n \"scripts\": {\n \"prepare\": \"./copy-types.sh && pnpm run generate:openapi-types\",\n \"test\": \"vitest\",\n \"prebuild\": \"pnpm run prepare\",\n \"build\": \"tsgo --noEmit && tsup\",\n \"prepublish\": \"pnpm run build\",\n \"generate:openapi-types\": \"npx openapi-typescript ../langwatch/src/app/api/openapiLangWatch.json -o ./src/internal/generated/openapi/api-client.ts\"\n },\n \"author\": \"LangWatch\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\",\n \"pnpm\": \">=8\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.32.0\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.1.0\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250804.1\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"esbuild\": \"^0.25.8\",\n \"eslint\": \"^9.32.0\",\n \"fets\": \"^0.8.5\",\n \"nock\": \"^14.0.8\",\n \"ts-to-zod\": \"3.15.0\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.38.0\",\n \"vitest\": \"^3.2.4\"\n },\n \"dependencies\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.36.0\",\n \"@types/prompts\": \"^2.4.9\",\n \"chalk\": \"^4.1.2\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^16.6.1\",\n \"js-yaml\": \"^4.1.0\",\n \"liquidjs\": \"^10.21.1\",\n \"open\": \"^10.2.0\",\n \"openapi-fetch\": \"^0.14.0\",\n \"ora\": \"^5.4.1\",\n \"prompts\": \"^2.4.2\",\n \"xksuid\": \"^0.0.4\",\n \"zod\": \"^4.0.14\"\n },\n \"peerDependencies\": {\n \"@ai-sdk/openai\": \"^2.0.0\",\n \"@langchain/core\": \"^0.3.66\",\n \"@langchain/openai\": \"^0.6.3\",\n \"@langchain/langgraph\": \"^0.4.2\",\n \"@opentelemetry/context-async-hooks\": \"^2.0.1\",\n \"@opentelemetry/context-zone\": \"^2.0.1\",\n \"@opentelemetry/sdk-node\": \"^0.203.0\",\n \"@opentelemetry/sdk-trace-web\": \"^2.0.1\",\n \"@vercel/otel\": \"^1.13.0\",\n \"langchain\": \"^0.3.30\"\n }\n}\n","import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { version } from \"../../../package.json\";\nimport { getApiKey, getEndpoint } from \"../../client\";\n\n/**\n * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // Using custom API key and endpoint\n *\n * // With environment variables/fallback configuration\n * const exporter = new LangWatchExporter();\n *\n * // With custom API key and endpoint\n * const exporter = new LangWatchExporter('api-key', 'https://custom.langwatch.com');\n * ```\n */\nexport class LangWatchExporter extends OTLPTraceExporter {\n /**\n * Creates a new LangWatchExporter instance.\n *\n * @param apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param endpointURL - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n */\n constructor(apiKey?: string, endpointURL?: string) {\n const setApiKey = apiKey ?? getApiKey();\n const setEndpoint = endpointURL ?? getEndpoint();\n\n super({\n headers: {\n \"Authorization\": `Bearer ${setApiKey}`,\n \"X-LangWatch-SDK-Version\": version,\n \"X-LangWatch-SDK-Language\": `typescript-${typeof process !== \"undefined\" ? \"node\" : \"browser\"}`,\n \"X-LangWatch-SDK-Name\": \"langwatch-observability-sdk\",\n },\n url: setEndpoint,\n });\n }\n}\n"],"mappings":";;;;;;AAEE,cAAW;;;ACFb,SAAS,yBAAyB;AA6B3B,IAAM,oBAAN,cAAgC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,YAAY,QAAiB,aAAsB;AACjD,UAAM,YAAY,0BAAU,UAAU;AACtC,UAAM,cAAc,oCAAe,YAAY;AAE/C,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,iBAAiB,UAAU,SAAS;AAAA,QACpC,2BAA2B;AAAA,QAC3B,4BAA4B,cAAc,OAAO,YAAY,cAAc,SAAS,SAAS;AAAA,QAC7F,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACF;","names":[]}