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 +5 -2
- package/dist/chunk-AAROJADR.mjs +49 -0
- package/dist/chunk-AAROJADR.mjs.map +1 -0
- package/dist/chunk-IGHXIIIK.js +49 -0
- package/dist/chunk-IGHXIIIK.js.map +1 -0
- package/dist/client-browser.js +7 -4
- package/dist/client-browser.js.map +1 -1
- package/dist/client-browser.mjs +5 -2
- package/dist/client-browser.mjs.map +1 -1
- package/dist/client-node.js +6 -3
- package/dist/client-node.js.map +1 -1
- package/dist/client-node.mjs +5 -2
- package/dist/client-node.mjs.map +1 -1
- package/dist/index.d.mts +19 -12
- package/dist/index.d.ts +19 -12
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/package.json +11 -11
- package/dist/chunk-6I4EA43Y.js +0 -39
- package/dist/chunk-6I4EA43Y.js.map +0 -1
- package/dist/chunk-YFUZF7JM.mjs +0 -39
- package/dist/chunk-YFUZF7JM.mjs.map +0 -1
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(
|
|
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"]}
|
package/dist/client-browser.js
CHANGED
|
@@ -6,7 +6,7 @@ var _chunkLD74LVRUjs = require('./chunk-LD74LVRU.js');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
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,
|
|
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]:
|
|
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]:
|
|
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":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;AC1BA,2DAAiD;AACjD,0DAAmC;AACnC,2CAA0C;AAE1C,qDAAuC;AAMvC,IAAI,sBAAA,EAAyC,CAAC,CAAA;AAC9C,IAAI,SAAA,EAAqC,IAAA;AACzC,IAAI,mBAAA,EAA8B,KAAA;AAElC,MAAA,SAAsB,cAAA,CAAe,QAAA,EAAwB,CAAC,CAAA,EAAG;AAfjE,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgBE,EAAA,GAAA,CAAI,kBAAA,EAAoB;AACtB,IAAA,MAAM,IAAI,KAAA,CAAM,4KAA4K,CAAA;AAAA,EAC9L;AAEA,EAAA,wCAAA,OAAiB,CAAA;AAEjB,EAAA,GAAA,CAAI,OAAA,CAAQ,sBAAA,EAAwB,MAAA;AAEpC,EAAA,MAAM,YAAA,EAAc,IAAI,GAAA,CAAI,qBAAA,EAAuB,0CAAA,CAAa,CAAA;AAChE,EAAA,MAAM,uBAAA,EAAyB,IAAI,kDAAA;AAAA,IACjC,IAAI,uCAAA,CAAkB,wCAAA,CAAU,
|
|
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"]}
|
package/dist/client-browser.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
LangWatchExporter,
|
|
8
8
|
version
|
|
9
|
-
} from "./chunk-
|
|
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(
|
|
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()
|
|
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":[]}
|
package/dist/client-node.js
CHANGED
|
@@ -6,7 +6,7 @@ var _chunkLD74LVRUjs = require('./chunk-LD74LVRU.js');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
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,
|
|
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]:
|
|
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, )) {
|
package/dist/client-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/client-node.js","../src/client-node.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;AC3BA,kDAAwB;AACxB,qDAAuC;AACvC,uEAAgD;AAChD,2CAA0C;AAO1C,IAAI,sBAAA,EAAyC,CAAC,CAAA;AAC9C,IAAI,gBAAA,EAA2B,KAAA;AAC/B,IAAI,IAAA,EAAsB,IAAA;AAE1B,MAAA,SAAsB,cAAA,CAAe,QAAA,EAAwB,CAAC,CAAA,EAAG;AAhBjE,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiBE,EAAA,GAAA,CAAI,eAAA,EAAiB;AACnB,IAAA,MAAM,IAAI,KAAA,CAAM,4KAA4K,CAAA;AAAA,EAC9L;AAEA,EAAA,wCAAA,OAAiB,CAAA;AACjB,EAAA,gBAAA,EAAkB,IAAA;AAElB,EAAA,GAAA,CAAI,OAAA,CAAQ,sBAAA,EAAwB,MAAA;AAEpC,EAAA,MAAM,YAAA,EAAc,IAAI,GAAA,CAAI,qBAAA,EAAuB,0CAAA,CAAa,CAAA;AAChE,EAAA,MAAM,uBAAA,EAAyB,IAAI,kDAAA;AAAA,IACjC,IAAI,uCAAA,CAAkB,wCAAA,CAAU,
|
|
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"]}
|
package/dist/client-node.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
LangWatchExporter,
|
|
8
8
|
version
|
|
9
|
-
} from "./chunk-
|
|
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(
|
|
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), {
|
package/dist/client-node.mjs.map
CHANGED
|
@@ -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()
|
|
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
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
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(
|
|
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
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
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(
|
|
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
|
|
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 =
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langwatch",
|
|
3
|
-
"version": "0.3.
|
|
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": "
|
|
103
|
-
"@langchain/core": "
|
|
104
|
-
"@langchain/openai": "
|
|
105
|
-
"@langchain/langgraph": "
|
|
106
|
-
"@opentelemetry/context-async-hooks": "
|
|
107
|
-
"@opentelemetry/context-zone": "
|
|
108
|
-
"@opentelemetry/sdk-node": "
|
|
109
|
-
"@opentelemetry/sdk-trace-web": "
|
|
110
|
-
"
|
|
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",
|
package/dist/chunk-6I4EA43Y.js
DELETED
|
@@ -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"]}
|
package/dist/chunk-YFUZF7JM.mjs
DELETED
|
@@ -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":[]}
|