@clusterenvision/ui-framework 1.0.0
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/LICENSE +21 -0
- package/README.md +295 -0
- package/dist/ai-assistant-Db002XYC.d.ts +92 -0
- package/dist/ai-assistant-EobSUV70.d.cts +92 -0
- package/dist/browser-DnHpnWwE.d.cts +354 -0
- package/dist/browser-Dx4oKf5e.d.ts +354 -0
- package/dist/browser-signals-07qodpYT.d.cts +66 -0
- package/dist/browser-signals-07qodpYT.d.ts +66 -0
- package/dist/browser-signals.cjs +32 -0
- package/dist/browser-signals.cjs.map +1 -0
- package/dist/browser-signals.d.cts +1 -0
- package/dist/browser-signals.d.ts +1 -0
- package/dist/browser-signals.js +3 -0
- package/dist/browser-signals.js.map +1 -0
- package/dist/browser.cjs +197 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +13 -0
- package/dist/browser.d.ts +13 -0
- package/dist/browser.js +12 -0
- package/dist/browser.js.map +1 -0
- package/dist/chunk-22HQL2Y4.js +568 -0
- package/dist/chunk-22HQL2Y4.js.map +1 -0
- package/dist/chunk-3ZBRNFEE.js +1525 -0
- package/dist/chunk-3ZBRNFEE.js.map +1 -0
- package/dist/chunk-4HRORR2Q.js +1953 -0
- package/dist/chunk-4HRORR2Q.js.map +1 -0
- package/dist/chunk-4L3UXVL5.cjs +68 -0
- package/dist/chunk-4L3UXVL5.cjs.map +1 -0
- package/dist/chunk-6BYWFGQY.cjs +226 -0
- package/dist/chunk-6BYWFGQY.cjs.map +1 -0
- package/dist/chunk-7SCIB5HP.js +57 -0
- package/dist/chunk-7SCIB5HP.js.map +1 -0
- package/dist/chunk-BBAUALNU.js +888 -0
- package/dist/chunk-BBAUALNU.js.map +1 -0
- package/dist/chunk-CHLDE4JQ.js +715 -0
- package/dist/chunk-CHLDE4JQ.js.map +1 -0
- package/dist/chunk-CXTAUXLG.cjs +71 -0
- package/dist/chunk-CXTAUXLG.cjs.map +1 -0
- package/dist/chunk-D2USIT6V.js +121 -0
- package/dist/chunk-D2USIT6V.js.map +1 -0
- package/dist/chunk-D3H5CGVD.js +36 -0
- package/dist/chunk-D3H5CGVD.js.map +1 -0
- package/dist/chunk-DQBX75NJ.js +92 -0
- package/dist/chunk-DQBX75NJ.js.map +1 -0
- package/dist/chunk-DRPG2DFX.js +208 -0
- package/dist/chunk-DRPG2DFX.js.map +1 -0
- package/dist/chunk-EFOOXCY7.cjs +41 -0
- package/dist/chunk-EFOOXCY7.cjs.map +1 -0
- package/dist/chunk-FFCZSYC7.cjs +906 -0
- package/dist/chunk-FFCZSYC7.cjs.map +1 -0
- package/dist/chunk-FNXIYAET.cjs +1593 -0
- package/dist/chunk-FNXIYAET.cjs.map +1 -0
- package/dist/chunk-I6GNUM3P.cjs +63 -0
- package/dist/chunk-I6GNUM3P.cjs.map +1 -0
- package/dist/chunk-IHAMVLRY.js +129 -0
- package/dist/chunk-IHAMVLRY.js.map +1 -0
- package/dist/chunk-IRBUKIRF.cjs +133 -0
- package/dist/chunk-IRBUKIRF.cjs.map +1 -0
- package/dist/chunk-KPG5HAHK.cjs +97 -0
- package/dist/chunk-KPG5HAHK.cjs.map +1 -0
- package/dist/chunk-N7Q2ESLG.cjs +130 -0
- package/dist/chunk-N7Q2ESLG.cjs.map +1 -0
- package/dist/chunk-PFBEIFVS.js +180 -0
- package/dist/chunk-PFBEIFVS.js.map +1 -0
- package/dist/chunk-PVZVFICK.cjs +318 -0
- package/dist/chunk-PVZVFICK.cjs.map +1 -0
- package/dist/chunk-Q3KH6HMU.js +305 -0
- package/dist/chunk-Q3KH6HMU.js.map +1 -0
- package/dist/chunk-QPAAV32J.cjs +1985 -0
- package/dist/chunk-QPAAV32J.cjs.map +1 -0
- package/dist/chunk-R6XQUMWT.cjs +61 -0
- package/dist/chunk-R6XQUMWT.cjs.map +1 -0
- package/dist/chunk-SA5UD5B6.js +92 -0
- package/dist/chunk-SA5UD5B6.js.map +1 -0
- package/dist/chunk-SM35JOYD.cjs +211 -0
- package/dist/chunk-SM35JOYD.cjs.map +1 -0
- package/dist/chunk-SZQNIMYI.cjs +592 -0
- package/dist/chunk-SZQNIMYI.cjs.map +1 -0
- package/dist/chunk-T6T7QE4J.js +224 -0
- package/dist/chunk-T6T7QE4J.js.map +1 -0
- package/dist/chunk-TIF372DZ.js +65 -0
- package/dist/chunk-TIF372DZ.js.map +1 -0
- package/dist/chunk-V6JCOBGY.js +69 -0
- package/dist/chunk-V6JCOBGY.js.map +1 -0
- package/dist/chunk-VHUXNDW2.cjs +189 -0
- package/dist/chunk-VHUXNDW2.cjs.map +1 -0
- package/dist/chunk-W3LNNY3U.cjs +729 -0
- package/dist/chunk-W3LNNY3U.cjs.map +1 -0
- package/dist/chunk-ZUWSU4OA.js +61 -0
- package/dist/chunk-ZUWSU4OA.js.map +1 -0
- package/dist/chunk-ZWUA2LPB.cjs +103 -0
- package/dist/chunk-ZWUA2LPB.cjs.map +1 -0
- package/dist/cli/index.cjs +566 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +558 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/compiler/index.cjs +80 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.d.cts +130 -0
- package/dist/compiler/index.d.ts +130 -0
- package/dist/compiler/index.js +3 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/component-BVzvepw9.d.cts +90 -0
- package/dist/component-wTxZ2BPD.d.ts +90 -0
- package/dist/index-CpxDa60m.d.cts +644 -0
- package/dist/index-CpxDa60m.d.ts +644 -0
- package/dist/index.cjs +1356 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +165 -0
- package/dist/index.d.ts +165 -0
- package/dist/index.js +772 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/dom.cjs +102 -0
- package/dist/lib/dom.cjs.map +1 -0
- package/dist/lib/dom.d.cts +373 -0
- package/dist/lib/dom.d.ts +373 -0
- package/dist/lib/dom.js +3 -0
- package/dist/lib/dom.js.map +1 -0
- package/dist/lib/icons.cjs +20 -0
- package/dist/lib/icons.cjs.map +1 -0
- package/dist/lib/icons.d.cts +64 -0
- package/dist/lib/icons.d.ts +64 -0
- package/dist/lib/icons.js +3 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/index.cjs +247 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +30 -0
- package/dist/lib/index.d.ts +30 -0
- package/dist/lib/index.js +92 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/theme.cjs +56 -0
- package/dist/lib/theme.cjs.map +1 -0
- package/dist/lib/theme.d.cts +27 -0
- package/dist/lib/theme.d.ts +27 -0
- package/dist/lib/theme.js +3 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/router-B9kms5XQ.d.ts +124 -0
- package/dist/router-YnpW_sIK.d.cts +124 -0
- package/dist/runtime/adapters/angular.cjs +48 -0
- package/dist/runtime/adapters/angular.cjs.map +1 -0
- package/dist/runtime/adapters/angular.d.cts +38 -0
- package/dist/runtime/adapters/angular.d.ts +38 -0
- package/dist/runtime/adapters/angular.js +46 -0
- package/dist/runtime/adapters/angular.js.map +1 -0
- package/dist/runtime/adapters/react.cjs +41 -0
- package/dist/runtime/adapters/react.cjs.map +1 -0
- package/dist/runtime/adapters/react.d.cts +26 -0
- package/dist/runtime/adapters/react.d.ts +26 -0
- package/dist/runtime/adapters/react.js +39 -0
- package/dist/runtime/adapters/react.js.map +1 -0
- package/dist/runtime/adapters/vue.cjs +44 -0
- package/dist/runtime/adapters/vue.cjs.map +1 -0
- package/dist/runtime/adapters/vue.d.cts +37 -0
- package/dist/runtime/adapters/vue.d.ts +37 -0
- package/dist/runtime/adapters/vue.js +42 -0
- package/dist/runtime/adapters/vue.js.map +1 -0
- package/dist/runtime/components/ai-assistant.cjs +18 -0
- package/dist/runtime/components/ai-assistant.cjs.map +1 -0
- package/dist/runtime/components/ai-assistant.d.cts +8 -0
- package/dist/runtime/components/ai-assistant.d.ts +8 -0
- package/dist/runtime/components/ai-assistant.js +9 -0
- package/dist/runtime/components/ai-assistant.js.map +1 -0
- package/dist/runtime/components/ai-summary-card.cjs +18 -0
- package/dist/runtime/components/ai-summary-card.cjs.map +1 -0
- package/dist/runtime/components/ai-summary-card.d.cts +19 -0
- package/dist/runtime/components/ai-summary-card.d.ts +19 -0
- package/dist/runtime/components/ai-summary-card.js +9 -0
- package/dist/runtime/components/ai-summary-card.js.map +1 -0
- package/dist/runtime/router.cjs +429 -0
- package/dist/runtime/router.cjs.map +1 -0
- package/dist/runtime/router.d.cts +2 -0
- package/dist/runtime/router.d.ts +2 -0
- package/dist/runtime/router.js +421 -0
- package/dist/runtime/router.js.map +1 -0
- package/dist/runtime/server.cjs +125 -0
- package/dist/runtime/server.cjs.map +1 -0
- package/dist/runtime/server.d.cts +27 -0
- package/dist/runtime/server.d.ts +27 -0
- package/dist/runtime/server.js +117 -0
- package/dist/runtime/server.js.map +1 -0
- package/dist/runtime/workflow/index.cjs +282 -0
- package/dist/runtime/workflow/index.cjs.map +1 -0
- package/dist/runtime/workflow/index.d.cts +1 -0
- package/dist/runtime/workflow/index.d.ts +1 -0
- package/dist/runtime/workflow/index.js +5 -0
- package/dist/runtime/workflow/index.js.map +1 -0
- package/dist/tracing-DGdvMCEl.d.cts +109 -0
- package/dist/tracing-DGdvMCEl.d.ts +109 -0
- package/dist/types-C4RXXKfk.d.cts +76 -0
- package/dist/types-C4RXXKfk.d.ts +76 -0
- package/package.json +166 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/runtime/shared/trace.js
|
|
4
|
+
function isNodeRuntime() {
|
|
5
|
+
return typeof process !== "undefined" && Boolean(process.versions?.node);
|
|
6
|
+
}
|
|
7
|
+
var cachedFsPromise = null;
|
|
8
|
+
function getFsPromises() {
|
|
9
|
+
if (cachedFsPromise) {
|
|
10
|
+
return cachedFsPromise;
|
|
11
|
+
}
|
|
12
|
+
if (!isNodeRuntime()) {
|
|
13
|
+
cachedFsPromise = Promise.reject(new Error("JsonlTraceExporter requires a file writer; provide the writer option when running outside Node.js."));
|
|
14
|
+
return cachedFsPromise;
|
|
15
|
+
}
|
|
16
|
+
cachedFsPromise = import('fs/promises');
|
|
17
|
+
return cachedFsPromise;
|
|
18
|
+
}
|
|
19
|
+
var JsonlTraceExporter = class {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
if (options.writer) {
|
|
23
|
+
this.writerPromise = Promise.resolve(options.writer);
|
|
24
|
+
} else {
|
|
25
|
+
this.writerPromise = getFsPromises();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async export(event) {
|
|
29
|
+
const writer = await this.writerPromise;
|
|
30
|
+
const normalized = normalizeEvent(event, this.options.redactor);
|
|
31
|
+
const payload = JSON.stringify({
|
|
32
|
+
...normalized,
|
|
33
|
+
timestamp: normalized.timestamp.toISOString()
|
|
34
|
+
});
|
|
35
|
+
await writer.appendFile(this.options.filePath, `${payload}
|
|
36
|
+
`, "utf8");
|
|
37
|
+
}
|
|
38
|
+
async flush() {
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var OtlpHttpTraceExporter = class {
|
|
42
|
+
constructor(options) {
|
|
43
|
+
this.options = options;
|
|
44
|
+
if (!options.url) {
|
|
45
|
+
throw new Error("OTLP exporter requires a collector url");
|
|
46
|
+
}
|
|
47
|
+
this.batchSize = Math.max(1, options.batchSize ?? 24);
|
|
48
|
+
this.flushIntervalMs = Math.max(250, options.flushIntervalMs ?? 2e3);
|
|
49
|
+
const globalFetch = typeof globalThis.fetch === "function" ? globalThis.fetch.bind(globalThis) : void 0;
|
|
50
|
+
const httpClient = options.httpClient ?? globalFetch;
|
|
51
|
+
if (!httpClient) {
|
|
52
|
+
throw new Error("fetch is not available in this runtime; provide an httpClient option");
|
|
53
|
+
}
|
|
54
|
+
this.httpClient = httpClient;
|
|
55
|
+
this.queue = [];
|
|
56
|
+
}
|
|
57
|
+
export(event) {
|
|
58
|
+
const normalized = normalizeEvent(event, this.options.redactor);
|
|
59
|
+
this.queue.push(normalized);
|
|
60
|
+
if (this.queue.length >= this.batchSize) {
|
|
61
|
+
void this.flush();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.timer ??= setTimeout(() => {
|
|
65
|
+
this.timer = void 0;
|
|
66
|
+
void this.flush();
|
|
67
|
+
}, this.flushIntervalMs);
|
|
68
|
+
}
|
|
69
|
+
async flush() {
|
|
70
|
+
if (this.timer) {
|
|
71
|
+
clearTimeout(this.timer);
|
|
72
|
+
this.timer = void 0;
|
|
73
|
+
}
|
|
74
|
+
if (!this.queue.length) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const batch = this.queue.splice(0);
|
|
78
|
+
await this.post(batch);
|
|
79
|
+
}
|
|
80
|
+
async shutdown() {
|
|
81
|
+
await this.flush();
|
|
82
|
+
}
|
|
83
|
+
async post(events) {
|
|
84
|
+
const payload = this.buildRequest(events);
|
|
85
|
+
try {
|
|
86
|
+
await this.httpClient(this.options.url, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers: {
|
|
89
|
+
"content-type": "application/json",
|
|
90
|
+
...this.options.headers
|
|
91
|
+
},
|
|
92
|
+
body: JSON.stringify(payload)
|
|
93
|
+
});
|
|
94
|
+
} catch (error) {
|
|
95
|
+
console.warn("Failed to export traces via OTLP", error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
buildRequest(events) {
|
|
99
|
+
return {
|
|
100
|
+
resourceSpans: [
|
|
101
|
+
{
|
|
102
|
+
resource: {
|
|
103
|
+
attributes: serializeAttributes({
|
|
104
|
+
"service.name": this.options.serviceName ?? "ce-ui",
|
|
105
|
+
...this.options.resource
|
|
106
|
+
})
|
|
107
|
+
},
|
|
108
|
+
scopeSpans: [
|
|
109
|
+
{
|
|
110
|
+
scope: { name: this.options.scopeName ?? "ce-ui-runtime" },
|
|
111
|
+
spans: events.map((event) => this.toSpan(event))
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
toSpan(event) {
|
|
119
|
+
const timestamp = event.timestamp.getTime();
|
|
120
|
+
const timestampNano = String(timestamp * 1e6);
|
|
121
|
+
return {
|
|
122
|
+
traceId: generateTraceId(),
|
|
123
|
+
spanId: generateSpanId(),
|
|
124
|
+
name: event.type,
|
|
125
|
+
kind: 0,
|
|
126
|
+
startTimeUnixNano: timestampNano,
|
|
127
|
+
endTimeUnixNano: timestampNano,
|
|
128
|
+
attributes: serializeAttributes({
|
|
129
|
+
...event.context,
|
|
130
|
+
...event.attributes
|
|
131
|
+
}),
|
|
132
|
+
status: { code: 0 }
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
function normalizeEvent(event, redactor) {
|
|
137
|
+
const clone = {
|
|
138
|
+
type: event.type,
|
|
139
|
+
timestamp: event.timestamp instanceof Date ? event.timestamp : new Date(event.timestamp),
|
|
140
|
+
severity: event.severity,
|
|
141
|
+
attributes: event.attributes ? { ...event.attributes } : void 0,
|
|
142
|
+
context: event.context ? { ...event.context } : void 0
|
|
143
|
+
};
|
|
144
|
+
if (redactor) {
|
|
145
|
+
return redactor(clone);
|
|
146
|
+
}
|
|
147
|
+
return clone;
|
|
148
|
+
}
|
|
149
|
+
function serializeAttributes(source) {
|
|
150
|
+
if (!source) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
return Object.entries(source).filter(([, value]) => typeof value !== "undefined").map(([key, value]) => ({
|
|
154
|
+
key,
|
|
155
|
+
value: mapOtlpValue(value)
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
function mapOtlpValue(value) {
|
|
159
|
+
if (typeof value === "string") {
|
|
160
|
+
return { stringValue: value };
|
|
161
|
+
}
|
|
162
|
+
if (typeof value === "number") {
|
|
163
|
+
if (Number.isInteger(value)) {
|
|
164
|
+
return { intValue: value.toString() };
|
|
165
|
+
}
|
|
166
|
+
return { doubleValue: value };
|
|
167
|
+
}
|
|
168
|
+
if (typeof value === "boolean") {
|
|
169
|
+
return { boolValue: value };
|
|
170
|
+
}
|
|
171
|
+
if (value instanceof Date) {
|
|
172
|
+
return { stringValue: value.toISOString() };
|
|
173
|
+
}
|
|
174
|
+
if (value == null) {
|
|
175
|
+
return { stringValue: "" };
|
|
176
|
+
}
|
|
177
|
+
return { stringValue: JSON.stringify(value) };
|
|
178
|
+
}
|
|
179
|
+
function safeRandomUUID() {
|
|
180
|
+
const globalCrypto = globalThis.crypto;
|
|
181
|
+
if (typeof globalCrypto?.randomUUID === "function") {
|
|
182
|
+
return globalCrypto.randomUUID();
|
|
183
|
+
}
|
|
184
|
+
return void 0;
|
|
185
|
+
}
|
|
186
|
+
function randomHex(length) {
|
|
187
|
+
let output = "";
|
|
188
|
+
for (let index = 0; index < length; index += 1) {
|
|
189
|
+
output += Math.floor(Math.random() * 16).toString(16);
|
|
190
|
+
}
|
|
191
|
+
return output;
|
|
192
|
+
}
|
|
193
|
+
function generateTraceId() {
|
|
194
|
+
const uuid = safeRandomUUID();
|
|
195
|
+
if (uuid) {
|
|
196
|
+
return uuid.replace(/-/g, "");
|
|
197
|
+
}
|
|
198
|
+
return randomHex(32);
|
|
199
|
+
}
|
|
200
|
+
function generateSpanId() {
|
|
201
|
+
const uuid = safeRandomUUID();
|
|
202
|
+
if (uuid) {
|
|
203
|
+
return uuid.replace(/-/g, "").slice(0, 16);
|
|
204
|
+
}
|
|
205
|
+
return randomHex(16);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
exports.JsonlTraceExporter = JsonlTraceExporter;
|
|
209
|
+
exports.OtlpHttpTraceExporter = OtlpHttpTraceExporter;
|
|
210
|
+
//# sourceMappingURL=chunk-SM35JOYD.cjs.map
|
|
211
|
+
//# sourceMappingURL=chunk-SM35JOYD.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime/shared/trace.js"],"names":[],"mappings":";;;AAAA,SAAS,aAAA,GAAgB;AACvB,EAAA,OAAO,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,OAAA,CAAQ,UAAU,IAAI,CAAA;AACzE;AAEA,IAAI,eAAA,GAAkB,IAAA;AACtB,SAAS,aAAA,GAAgB;AACvB,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,OAAO,eAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAC,eAAc,EAAG;AACpB,IAAA,eAAA,GAAkB,OAAA,CAAQ,MAAA,CAAO,IAAI,KAAA,CAAM,oGAAoG,CAAC,CAAA;AAChJ,IAAA,OAAO,eAAA;AAAA,EACT;AACA,EAAA,eAAA,GAAkB,OAAO,aAAkB,CAAA;AAC3C,EAAA,OAAO,eAAA;AACT;AAEO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAAY,OAAA,EAAS;AACnB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,MAAA,IAAA,CAAK,aAAA,GAAgB,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,MAAM,CAAA;AAAA,IACrD,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,gBAAgB,aAAA,EAAc;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,aAAA;AAC1B,IAAA,MAAM,UAAA,GAAa,cAAA,CAAe,KAAA,EAAO,IAAA,CAAK,QAAQ,QAAQ,CAAA;AAC9D,IAAA,MAAM,OAAA,GAAU,KAAK,SAAA,CAAU;AAAA,MAC7B,GAAG,UAAA;AAAA,MACH,SAAA,EAAW,UAAA,CAAW,SAAA,CAAU,WAAA;AAAY,KAC7C,CAAA;AACD,IAAA,MAAM,OAAO,UAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,GAAG,OAAO;AAAA,CAAA,EAAM,MAAM,CAAA;AAAA,EACvE;AAAA,EAEA,MAAM,KAAA,GAAQ;AAAA,EAEd;AACF;AAEO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAAY,OAAA,EAAS;AACnB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,MAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,IAC1D;AACA,IAAA,IAAA,CAAK,YAAY,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,CAAQ,aAAa,EAAE,CAAA;AACpD,IAAA,IAAA,CAAK,kBAAkB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,OAAA,CAAQ,mBAAmB,GAAI,CAAA;AACpE,IAAA,MAAM,WAAA,GAAc,OAAO,UAAA,CAAW,KAAA,KAAU,aAAa,UAAA,CAAW,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA,GAAI,MAAA;AACjG,IAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,WAAA;AACzC,IAAA,IAAI,CAAC,UAAA,EAAY;AACf,MAAA,MAAM,IAAI,MAAM,sEAAsE,CAAA;AAAA,IACxF;AACA,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,QAAQ,EAAC;AAAA,EAChB;AAAA,EAEA,OAAO,KAAA,EAAO;AACZ,IAAA,MAAM,UAAA,GAAa,cAAA,CAAe,KAAA,EAAO,IAAA,CAAK,QAAQ,QAAQ,CAAA;AAC9D,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,UAAU,CAAA;AAC1B,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,IAAU,IAAA,CAAK,SAAA,EAAW;AACvC,MAAA,KAAK,KAAK,KAAA,EAAM;AAChB,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,KAAA,KAAU,WAAW,MAAM;AAC9B,MAAA,IAAA,CAAK,KAAA,GAAQ,MAAA;AACb,MAAA,KAAK,KAAK,KAAA,EAAM;AAAA,IAClB,CAAA,EAAG,KAAK,eAAe,CAAA;AAAA,EACzB;AAAA,EAEA,MAAM,KAAA,GAAQ;AACZ,IAAA,IAAI,KAAK,KAAA,EAAO;AACd,MAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AACvB,MAAA,IAAA,CAAK,KAAA,GAAQ,MAAA;AAAA,IACf;AACA,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ;AACtB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA;AACjC,IAAA,MAAM,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,EACvB;AAAA,EAEA,MAAM,QAAA,GAAW;AACf,IAAA,MAAM,KAAK,KAAA,EAAM;AAAA,EACnB;AAAA,EAEA,MAAM,KAAK,MAAA,EAAQ;AACjB,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAK;AAAA,QACtC,MAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB,kBAAA;AAAA,UAChB,GAAG,KAAK,OAAA,CAAQ;AAAA,SAClB;AAAA,QACA,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,OAC7B,CAAA;AAAA,IACH,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,IAAA,CAAK,oCAAoC,KAAK,CAAA;AAAA,IACxD;AAAA,EACF;AAAA,EAEA,aAAa,MAAA,EAAQ;AACnB,IAAA,OAAO;AAAA,MACL,aAAA,EAAe;AAAA,QACb;AAAA,UACE,QAAA,EAAU;AAAA,YACR,YAAY,mBAAA,CAAoB;AAAA,cAC9B,cAAA,EAAgB,IAAA,CAAK,OAAA,CAAQ,WAAA,IAAe,OAAA;AAAA,cAC5C,GAAG,KAAK,OAAA,CAAQ;AAAA,aACjB;AAAA,WACH;AAAA,UACA,UAAA,EAAY;AAAA,YACV;AAAA,cACE,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,aAAa,eAAA,EAAgB;AAAA,cACzD,OAAO,MAAA,CAAO,GAAA,CAAI,WAAS,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC;AAAA;AAC/C;AACF;AACF;AACF,KACF;AAAA,EACF;AAAA,EAEA,OAAO,KAAA,EAAO;AACZ,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,CAAU,OAAA,EAAQ;AAC1C,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,SAAA,GAAY,GAAS,CAAA;AAClD,IAAA,OAAO;AAAA,MACL,SAAS,eAAA,EAAgB;AAAA,MACzB,QAAQ,cAAA,EAAe;AAAA,MACvB,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,IAAA,EAAM,CAAA;AAAA,MACN,iBAAA,EAAmB,aAAA;AAAA,MACnB,eAAA,EAAiB,aAAA;AAAA,MACjB,YAAY,mBAAA,CAAoB;AAAA,QAC9B,GAAG,KAAA,CAAM,OAAA;AAAA,QACT,GAAG,KAAA,CAAM;AAAA,OACV,CAAA;AAAA,MACD,MAAA,EAAQ,EAAE,IAAA,EAAM,CAAA;AAAE,KACpB;AAAA,EACF;AACF;AAEA,SAAS,cAAA,CAAe,OAAO,QAAA,EAAU;AACvC,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,SAAA,EAAW,MAAM,SAAA,YAAqB,IAAA,GAAO,MAAM,SAAA,GAAY,IAAI,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA;AAAA,IACvF,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,YAAY,KAAA,CAAM,UAAA,GAAa,EAAE,GAAG,KAAA,CAAM,YAAW,GAAI,MAAA;AAAA,IACzD,SAAS,KAAA,CAAM,OAAA,GAAU,EAAE,GAAG,KAAA,CAAM,SAAQ,GAAI;AAAA,GAClD;AACA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,SAAS,KAAK,CAAA;AAAA,EACvB;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,oBAAoB,MAAA,EAAQ;AACnC,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,OAAO,OAAA,CAAQ,MAAM,EACzB,MAAA,CAAO,CAAC,GAAG,KAAK,MAAM,OAAO,KAAA,KAAU,WAAW,CAAA,CAClD,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,MAAO;AAAA,IACtB,GAAA;AAAA,IACA,KAAA,EAAO,aAAa,KAAK;AAAA,GAC3B,CAAE,CAAA;AACN;AAEA,SAAS,aAAa,KAAA,EAAO;AAC3B,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,EAAE,aAAa,KAAA,EAAM;AAAA,EAC9B;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA,EAAG;AAC3B,MAAA,OAAO,EAAE,QAAA,EAAU,KAAA,CAAM,QAAA,EAAS,EAAE;AAAA,IACtC;AACA,IAAA,OAAO,EAAE,aAAa,KAAA,EAAM;AAAA,EAC9B;AACA,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAC9B,IAAA,OAAO,EAAE,WAAW,KAAA,EAAM;AAAA,EAC5B;AACA,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,EAAE,WAAA,EAAa,KAAA,CAAM,WAAA,EAAY,EAAE;AAAA,EAC5C;AACA,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO,EAAE,aAAa,EAAA,EAAG;AAAA,EAC3B;AACA,EAAA,OAAO,EAAE,WAAA,EAAa,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,EAAE;AAC9C;AAEA,SAAS,cAAA,GAAiB;AACxB,EAAA,MAAM,eAAe,UAAA,CAAW,MAAA;AAChC,EAAA,IAAI,OAAO,YAAA,EAAc,UAAA,KAAe,UAAA,EAAY;AAClD,IAAA,OAAO,aAAa,UAAA,EAAW;AAAA,EACjC;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,UAAU,MAAA,EAAQ;AACzB,EAAA,IAAI,MAAA,GAAS,EAAA;AACb,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,MAAA,EAAQ,SAAS,CAAA,EAAG;AAC9C,IAAA,MAAA,IAAU,IAAA,CAAK,MAAM,IAAA,CAAK,MAAA,KAAW,EAAE,CAAA,CAAE,SAAS,EAAE,CAAA;AAAA,EACtD;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,eAAA,GAAkB;AACzB,EAAA,MAAM,OAAO,cAAA,EAAe;AAC5B,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA;AAAA,EAC9B;AACA,EAAA,OAAO,UAAU,EAAE,CAAA;AACrB;AAEA,SAAS,cAAA,GAAiB;AACxB,EAAA,MAAM,OAAO,cAAA,EAAe;AAC5B,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,OAAO,KAAK,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AAAA,EAC3C;AACA,EAAA,OAAO,UAAU,EAAE,CAAA;AACrB","file":"chunk-SM35JOYD.cjs","sourcesContent":["function isNodeRuntime() {\n return typeof process !== 'undefined' && Boolean(process.versions?.node);\n}\n\nlet cachedFsPromise = null;\nfunction getFsPromises() {\n if (cachedFsPromise) {\n return cachedFsPromise;\n }\n if (!isNodeRuntime()) {\n cachedFsPromise = Promise.reject(new Error('JsonlTraceExporter requires a file writer; provide the writer option when running outside Node.js.'));\n return cachedFsPromise;\n }\n cachedFsPromise = import('node:fs/promises');\n return cachedFsPromise;\n}\n\nexport class JsonlTraceExporter {\n constructor(options) {\n this.options = options;\n if (options.writer) {\n this.writerPromise = Promise.resolve(options.writer);\n } else {\n this.writerPromise = getFsPromises();\n }\n }\n\n async export(event) {\n const writer = await this.writerPromise;\n const normalized = normalizeEvent(event, this.options.redactor);\n const payload = JSON.stringify({\n ...normalized,\n timestamp: normalized.timestamp.toISOString(),\n });\n await writer.appendFile(this.options.filePath, `${payload}\\n`, 'utf8');\n }\n\n async flush() {\n // no buffering, nothing to flush\n }\n}\n\nexport class OtlpHttpTraceExporter {\n constructor(options) {\n this.options = options;\n if (!options.url) {\n throw new Error('OTLP exporter requires a collector url');\n }\n this.batchSize = Math.max(1, options.batchSize ?? 24);\n this.flushIntervalMs = Math.max(250, options.flushIntervalMs ?? 2000);\n const globalFetch = typeof globalThis.fetch === 'function' ? globalThis.fetch.bind(globalThis) : undefined;\n const httpClient = options.httpClient ?? globalFetch;\n if (!httpClient) {\n throw new Error('fetch is not available in this runtime; provide an httpClient option');\n }\n this.httpClient = httpClient;\n this.queue = [];\n }\n\n export(event) {\n const normalized = normalizeEvent(event, this.options.redactor);\n this.queue.push(normalized);\n if (this.queue.length >= this.batchSize) {\n void this.flush();\n return;\n }\n this.timer ??= setTimeout(() => {\n this.timer = undefined;\n void this.flush();\n }, this.flushIntervalMs);\n }\n\n async flush() {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n if (!this.queue.length) {\n return;\n }\n const batch = this.queue.splice(0);\n await this.post(batch);\n }\n\n async shutdown() {\n await this.flush();\n }\n\n async post(events) {\n const payload = this.buildRequest(events);\n try {\n await this.httpClient(this.options.url, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n ...this.options.headers,\n },\n body: JSON.stringify(payload),\n });\n } catch (error) {\n console.warn('Failed to export traces via OTLP', error);\n }\n }\n\n buildRequest(events) {\n return {\n resourceSpans: [\n {\n resource: {\n attributes: serializeAttributes({\n 'service.name': this.options.serviceName ?? 'ce-ui',\n ...this.options.resource,\n }),\n },\n scopeSpans: [\n {\n scope: { name: this.options.scopeName ?? 'ce-ui-runtime' },\n spans: events.map(event => this.toSpan(event)),\n },\n ],\n },\n ],\n };\n }\n\n toSpan(event) {\n const timestamp = event.timestamp.getTime();\n const timestampNano = String(timestamp * 1_000_000);\n return {\n traceId: generateTraceId(),\n spanId: generateSpanId(),\n name: event.type,\n kind: 0,\n startTimeUnixNano: timestampNano,\n endTimeUnixNano: timestampNano,\n attributes: serializeAttributes({\n ...event.context,\n ...event.attributes,\n }),\n status: { code: 0 },\n };\n }\n}\n\nfunction normalizeEvent(event, redactor) {\n const clone = {\n type: event.type,\n timestamp: event.timestamp instanceof Date ? event.timestamp : new Date(event.timestamp),\n severity: event.severity,\n attributes: event.attributes ? { ...event.attributes } : undefined,\n context: event.context ? { ...event.context } : undefined,\n };\n if (redactor) {\n return redactor(clone);\n }\n return clone;\n}\n\nfunction serializeAttributes(source) {\n if (!source) {\n return [];\n }\n return Object.entries(source)\n .filter(([, value]) => typeof value !== 'undefined')\n .map(([key, value]) => ({\n key,\n value: mapOtlpValue(value),\n }));\n}\n\nfunction mapOtlpValue(value) {\n if (typeof value === 'string') {\n return { stringValue: value };\n }\n if (typeof value === 'number') {\n if (Number.isInteger(value)) {\n return { intValue: value.toString() };\n }\n return { doubleValue: value };\n }\n if (typeof value === 'boolean') {\n return { boolValue: value };\n }\n if (value instanceof Date) {\n return { stringValue: value.toISOString() };\n }\n if (value == null) {\n return { stringValue: '' };\n }\n return { stringValue: JSON.stringify(value) };\n}\n\nfunction safeRandomUUID() {\n const globalCrypto = globalThis.crypto;\n if (typeof globalCrypto?.randomUUID === 'function') {\n return globalCrypto.randomUUID();\n }\n return undefined;\n}\n\nfunction randomHex(length) {\n let output = '';\n for (let index = 0; index < length; index += 1) {\n output += Math.floor(Math.random() * 16).toString(16);\n }\n return output;\n}\n\nfunction generateTraceId() {\n const uuid = safeRandomUUID();\n if (uuid) {\n return uuid.replace(/-/g, '');\n }\n return randomHex(32);\n}\n\nfunction generateSpanId() {\n const uuid = safeRandomUUID();\n if (uuid) {\n return uuid.replace(/-/g, '').slice(0, 16);\n }\n return randomHex(16);\n}\n"]}
|