@sailfish-ai/sf-veritas 0.2.21 → 0.3.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/dist/consoleLocationTransformer-BSSB5msZ.cjs +1 -0
- package/dist/consoleLocationTransformer-DZu_9MDA.js +51 -0
- package/dist/plugins/funcspanEsbuildPlugin.cjs +1 -1
- package/dist/plugins/funcspanEsbuildPlugin.mjs +20 -16
- package/dist/plugins/funcspanRollupPlugin.cjs +1 -1
- package/dist/plugins/funcspanRollupPlugin.mjs +17 -13
- package/dist/plugins/funcspanTscPlugin.cjs +1 -1
- package/dist/plugins/funcspanTscPlugin.mjs +34 -30
- package/dist/plugins/funcspanVitePlugin.cjs +1 -1
- package/dist/plugins/funcspanVitePlugin.mjs +16 -12
- package/dist/plugins/funcspanWebpackLoader.cjs +1 -1
- package/dist/plugins/funcspanWebpackLoader.mjs +55 -50
- package/dist/plugins/funcspanWebpackPlugin.cjs +1 -1
- package/dist/plugins/funcspanWebpackPlugin.mjs +1 -1
- package/dist/runtimeConfig-BZ61efqE.js +485 -0
- package/dist/runtimeConfig-CWpFWsmz.cjs +6 -0
- package/dist/sf-veritas.cjs +13 -13
- package/dist/sf-veritas.mjs +206 -176
- package/dist/telemetryWorker.cjs +1 -0
- package/dist/types/dataTransmitter.d.ts +6 -5
- package/dist/types/exceptionTransmitter.d.ts +2 -1
- package/dist/types/networkHopTransmitter.d.ts +2 -1
- package/dist/types/networkRequestTransmitter.d.ts +2 -1
- package/dist/types/plugins/consoleLocationTransformer.d.ts +37 -0
- package/dist/types/requestUtils.d.ts +17 -6
- package/dist/types/sourceLocation.d.ts +19 -19
- package/dist/types/telemetryWorker.d.ts +1 -0
- package/dist/worker-pool-capture.cjs +1 -1
- package/dist/worker-pool-capture.mjs +1 -1
- package/dist/workerPoolSpanCapture-Bg5av6gn.cjs +83 -0
- package/dist/{workerPoolSpanCapture-DVYmzgbN.js → workerPoolSpanCapture-BjdZn3LE.js} +222 -168
- package/package.json +1 -1
- package/dist/runtimeConfig-CB57auSb.js +0 -444
- package/dist/runtimeConfig-sm_7bnKx.cjs +0 -9
- package/dist/workerPoolSpanCapture-DFnbcpkU.cjs +0 -83
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
var iI = Object.defineProperty;
|
|
2
|
-
var lI = (I, g, n) => g in I ? iI(I, g, { enumerable: !0, configurable: !0, writable: !0, value: n }) : I[g] = n;
|
|
3
|
-
var Y = (I, g, n) => lI(I, typeof g != "symbol" ? g + "" : g, n);
|
|
4
|
-
import * as oI from "fs/promises";
|
|
5
|
-
import sI from "http";
|
|
6
|
-
import AI from "https";
|
|
7
|
-
import rI from "os";
|
|
8
|
-
import { s as bI } from "./source-map-Cr6YkjTd.js";
|
|
9
|
-
import { Worker as uI } from "worker_threads";
|
|
10
|
-
import { g as m, a as aI, C as D } from "./contextManager-RxrMXs5c.js";
|
|
11
|
-
import { resolve as dI } from "path";
|
|
12
|
-
function x(I) {
|
|
13
|
-
return typeof I == "string" ? I : I == null ? "" : Array.isArray(I) ? I.map((g) => String(g)).join(`
|
|
14
|
-
`) : String(I);
|
|
15
|
-
}
|
|
16
|
-
function mI(I) {
|
|
17
|
-
try {
|
|
18
|
-
return JSON.stringify(I), !0;
|
|
19
|
-
} catch {
|
|
20
|
-
return !1;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function RI(I) {
|
|
24
|
-
const g = {}, n = [];
|
|
25
|
-
if (I) for (const [C, e] of Object.entries(I)) mI(e) ? g[C] = e : n.push(C);
|
|
26
|
-
return { traitsJson: JSON.stringify(g), excludedFields: n };
|
|
27
|
-
}
|
|
28
|
-
class K {
|
|
29
|
-
constructor({ file: g, line: n, function: C, code: e, locals: t = {}, offender: l = !1, column: s }) {
|
|
30
|
-
Y(this, "file");
|
|
31
|
-
Y(this, "line");
|
|
32
|
-
Y(this, "function");
|
|
33
|
-
Y(this, "code");
|
|
34
|
-
Y(this, "locals");
|
|
35
|
-
Y(this, "offender");
|
|
36
|
-
Y(this, "column");
|
|
37
|
-
this.file = g, this.line = n, this.function = C, this.code = e, this.locals = t, this.offender = l, this.column = s;
|
|
38
|
-
}
|
|
39
|
-
toDict() {
|
|
40
|
-
const g = { file: this.file, line: this.line, function: this.function, code: this.code, locals: Object.fromEntries(Object.entries(this.locals).map(([n, C]) => [n, String(C)])) };
|
|
41
|
-
return this.offender && (g.offender = this.offender), this.column !== void 0 && (g.column = this.column), g;
|
|
42
|
-
}
|
|
43
|
-
toJson() {
|
|
44
|
-
return JSON.stringify(this.toDict());
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
class j {
|
|
48
|
-
static encode(g) {
|
|
49
|
-
return g instanceof K ? g.toDict() : Array.isArray(g) ? g.map((n) => j.encode(n)) : typeof g == "object" && g !== null ? JSON.stringify(g) : g;
|
|
50
|
-
}
|
|
51
|
-
static stringify(g) {
|
|
52
|
-
return JSON.stringify(j.encode(g), (n, C) => C instanceof K ? C.toDict() : C);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
const ZI = ["/sf-veritas/", "/@sailfish-ai/", "/node_modules/", "/dist/", "/<", "/internal/", "node:"], H = /* @__PURE__ */ new Map();
|
|
56
|
-
function fI(I) {
|
|
57
|
-
return ZI.some((g) => I.includes(g));
|
|
58
|
-
}
|
|
59
|
-
function WI(I) {
|
|
60
|
-
let g = I;
|
|
61
|
-
g.startsWith("file://") && (g = g.substring(7)), process.platform === "win32" && g.startsWith("/") && g.length > 2 && g[2] === ":" && (g = g.substring(1));
|
|
62
|
-
try {
|
|
63
|
-
return dI(g);
|
|
64
|
-
} catch {
|
|
65
|
-
return I;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function pI(I = 0) {
|
|
69
|
-
const g = new Error().stack;
|
|
70
|
-
if (!g) return [null, null];
|
|
71
|
-
const n = x(g), C = (function(c, i) {
|
|
72
|
-
const A = 2 + i;
|
|
73
|
-
return c.split(`
|
|
74
|
-
`).slice(A, A + 5).join(`
|
|
75
|
-
`);
|
|
76
|
-
})(n, I), e = H.get(C);
|
|
77
|
-
if (e) return e;
|
|
78
|
-
const t = (function(c) {
|
|
79
|
-
if (!c) return [];
|
|
80
|
-
const i = c.split(`
|
|
81
|
-
`).slice(1), A = [];
|
|
82
|
-
for (const f of i) {
|
|
83
|
-
let o = /at\s+(.+?)\s+\((.+?):(\d+):(\d+)\)/.exec(f);
|
|
84
|
-
o ? A.push({ functionName: o[1], file: o[2], line: parseInt(o[3], 10), column: parseInt(o[4], 10) }) : (o = /at\s+(.+?):(\d+):(\d+)/.exec(f), o && A.push({ functionName: "<anonymous>", file: o[1], line: parseInt(o[2], 10), column: parseInt(o[3], 10) }));
|
|
85
|
-
}
|
|
86
|
-
return A;
|
|
87
|
-
})(n), l = 1 + I;
|
|
88
|
-
for (let c = l; c < Math.min(t.length, l + 10); c++) {
|
|
89
|
-
const i = t[c];
|
|
90
|
-
if (!i || !i.file || fI(i.file)) continue;
|
|
91
|
-
const A = [WI(i.file), i.line];
|
|
92
|
-
if (H.size >= 512) {
|
|
93
|
-
const f = H.keys().next().value;
|
|
94
|
-
f !== void 0 && H.delete(f);
|
|
95
|
-
}
|
|
96
|
-
return H.set(C, A), A;
|
|
97
|
-
}
|
|
98
|
-
const s = [null, null];
|
|
99
|
-
return H.set(C, s), s;
|
|
100
|
-
}
|
|
101
|
-
const T = console.log.bind(console), E = console.error.bind(console), Q = console.warn.bind(console), U = console.info.bind(console), P = console.debug.bind(console), y = T, M = E;
|
|
102
|
-
let d = !1;
|
|
103
|
-
const z = 8192;
|
|
104
|
-
function GI(I) {
|
|
105
|
-
if (I === null) return "null";
|
|
106
|
-
if (I === void 0) return "undefined";
|
|
107
|
-
const g = typeof I;
|
|
108
|
-
if (g === "string") return I;
|
|
109
|
-
if (g === "number" || g === "boolean") return String(I);
|
|
110
|
-
if (g === "bigint") return I.toString() + "n";
|
|
111
|
-
if (g === "symbol") return I.toString();
|
|
112
|
-
if (g === "function") return `[Function: ${I.name || "anonymous"}]`;
|
|
113
|
-
if (I instanceof Error) return I.stack || `${I.name}: ${I.message}`;
|
|
114
|
-
try {
|
|
115
|
-
const n = /* @__PURE__ */ new WeakSet(), C = [], e = /* @__PURE__ */ new Map(), t = JSON.stringify(I, function(s, c) {
|
|
116
|
-
if (typeof c == "bigint") return c.toString() + "n";
|
|
117
|
-
if (typeof c == "function") return `[Function: ${c.name || "anonymous"}]`;
|
|
118
|
-
if (typeof c == "symbol") return c.toString();
|
|
119
|
-
if (c === void 0) return "[undefined]";
|
|
120
|
-
if (s !== "" && e.has(this)) {
|
|
121
|
-
const i = e.get(this);
|
|
122
|
-
if (i >= 20) return;
|
|
123
|
-
e.set(this, i + 1);
|
|
124
|
-
}
|
|
125
|
-
if (c !== null && typeof c == "object") {
|
|
126
|
-
if (n.has(c)) return "[Circular]";
|
|
127
|
-
for (; C.length > 0 && C[C.length - 1] !== this; ) C.pop();
|
|
128
|
-
if (C.length >= 3) return Array.isArray(c) ? `[Array(${c.length})]` : "[Object]";
|
|
129
|
-
n.add(c), C.push(c), !Array.isArray(c) && Object.keys(c).length > 20 && e.set(c, 0);
|
|
130
|
-
}
|
|
131
|
-
return c;
|
|
132
|
-
});
|
|
133
|
-
if (t === void 0) return String(I);
|
|
134
|
-
let l = t;
|
|
135
|
-
if (e.size > 0 && !Array.isArray(I) && e.has(I)) {
|
|
136
|
-
const s = Object.keys(I).length;
|
|
137
|
-
l = l.slice(0, -1) + `,"...":"${s - 20} more keys"}`;
|
|
138
|
-
}
|
|
139
|
-
return l.length > 500 ? l.substring(0, 500) + "...[truncated]" : l;
|
|
140
|
-
} catch {
|
|
141
|
-
return String(I);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
function X(I) {
|
|
145
|
-
if (I.length === 0) return "";
|
|
146
|
-
if (I.length === 1 && typeof I[0] == "string") {
|
|
147
|
-
const C = I[0];
|
|
148
|
-
return C.length > z ? C.substring(0, z) + "...[truncated]" : C;
|
|
149
|
-
}
|
|
150
|
-
let g, n = !0;
|
|
151
|
-
for (let C = 0; C < I.length; C++) {
|
|
152
|
-
const e = typeof I[C];
|
|
153
|
-
if (e === "object" && I[C] !== null || e === "function" || e === "symbol") {
|
|
154
|
-
n = !1;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (n) {
|
|
159
|
-
const C = new Array(I.length);
|
|
160
|
-
for (let e = 0; e < I.length; e++) {
|
|
161
|
-
const t = I[e];
|
|
162
|
-
C[e] = t === null ? "null" : t === void 0 ? "undefined" : typeof t == "string" ? t : String(t);
|
|
163
|
-
}
|
|
164
|
-
g = C.join(" ");
|
|
165
|
-
} else g = I.map(GI).join(" ");
|
|
166
|
-
return g.length > z ? g.substring(0, z) + "...[truncated]" : g;
|
|
167
|
-
}
|
|
168
|
-
function FI(I) {
|
|
169
|
-
function g(n, C) {
|
|
170
|
-
const e = aI();
|
|
171
|
-
if (e?.logIgnoreRegex && e.logIgnoreRegex.test(C)) return;
|
|
172
|
-
const [t, l] = pI(2);
|
|
173
|
-
I.setOperationName("CollectLogs"), I.doSend([C, n, t, l]);
|
|
174
|
-
}
|
|
175
|
-
console.log = (...n) => {
|
|
176
|
-
if (d) T(...n);
|
|
177
|
-
else {
|
|
178
|
-
d = !0;
|
|
179
|
-
try {
|
|
180
|
-
g("INFO", X(n)), T(...n);
|
|
181
|
-
} finally {
|
|
182
|
-
d = !1;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}, console.error = (...n) => {
|
|
186
|
-
if (d) E(...n);
|
|
187
|
-
else {
|
|
188
|
-
d = !0;
|
|
189
|
-
try {
|
|
190
|
-
g("ERROR", X(n)), E(...n);
|
|
191
|
-
} finally {
|
|
192
|
-
d = !1;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}, console.warn = (...n) => {
|
|
196
|
-
if (d) Q(...n);
|
|
197
|
-
else {
|
|
198
|
-
d = !0;
|
|
199
|
-
try {
|
|
200
|
-
g("WARN", X(n)), Q(...n);
|
|
201
|
-
} finally {
|
|
202
|
-
d = !1;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}, console.info = (...n) => {
|
|
206
|
-
if (d) U(...n);
|
|
207
|
-
else {
|
|
208
|
-
d = !0;
|
|
209
|
-
try {
|
|
210
|
-
g("INFO", X(n)), U(...n);
|
|
211
|
-
} finally {
|
|
212
|
-
d = !1;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}, m().logLevel === "DEBUG" && (console.debug = (...n) => {
|
|
216
|
-
if (d) P(...n);
|
|
217
|
-
else {
|
|
218
|
-
d = !0;
|
|
219
|
-
try {
|
|
220
|
-
g("DEBUG", X(n)), P(...n);
|
|
221
|
-
} finally {
|
|
222
|
-
d = !1;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
let S = 0;
|
|
228
|
-
function zI(I) {
|
|
229
|
-
m().sfDebug && y("Initializing Exception Interceptor...");
|
|
230
|
-
try {
|
|
231
|
-
const s = nI();
|
|
232
|
-
I?.setSupplementalFields?.({ isFromLocalService: s }), (async function(c) {
|
|
233
|
-
if (q) return;
|
|
234
|
-
q = !0;
|
|
235
|
-
const i = process.env || {};
|
|
236
|
-
if (gI(i.SF_IS_LOCAL) === void 0)
|
|
237
|
-
try {
|
|
238
|
-
await (async function(A) {
|
|
239
|
-
const f = L("http://169.254.169.254/latest/meta-data/", {}, A), o = L("http://metadata.google.internal/computeMetadata/v1/instance/", { "Metadata-Flavor": "Google" }, A), a = L("http://169.254.169.254/metadata/instance?api-version=2021-02-01", { Metadata: "true" }, A);
|
|
240
|
-
return (await Promise.allSettled([f, o, a])).some((W) => W.status === "fulfilled" && (W.value === "ok" || W.value === "http_error"));
|
|
241
|
-
})(150) && V && (V = !1, c?.setSupplementalFields?.({ isFromLocalService: !1 }));
|
|
242
|
-
} catch {
|
|
243
|
-
}
|
|
244
|
-
})(I).catch(() => {
|
|
245
|
-
});
|
|
246
|
-
} catch {
|
|
247
|
-
}
|
|
248
|
-
const g = new uI(new URL("data:application/javascript;base64,Ly8gc3JjL2RlYnVnZ2VyV29ya2VyLnRzCmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICJpbnNwZWN0b3IvcHJvbWlzZXMiOwppbXBvcnQgeyBwYXJlbnRQb3J0LCB3b3JrZXJEYXRhIH0gZnJvbSAid29ya2VyX3RocmVhZHMiOwpnbG9iYWwuc2ZEZWJ1ZyA9IHZvaWQgMDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB2b2lkIDA7Cmdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSB2b2lkIDA7CnZhciBzY3JpcHRTb3VyY2VDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CnZhciBub25BcHBGcmFtZVBhdHRlcm5zID0gWwogIC9ub2RlOmludGVybmFsLywKICAvaW50ZXJuYWxcLy8sCiAgL25vZGVfbW9kdWxlcy8sCiAgL25vZGU6ZnMvCl07CmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDYWxsRnJhbWVzKHNlc3Npb24sIGNhbGxGcmFtZXMsIGRlc2NyaXB0aW9uTGluZXMpIHsKICBjb25zdCBsaW1pdGVkQ2FsbEZyYW1lcyA9IGNhbGxGcmFtZXMuc2xpY2UoMCwgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMpOwogIGlmIChsaW1pdGVkQ2FsbEZyYW1lcy5sZW5ndGggPiAwKSB7CiAgICBjb25zdCBmaXJzdFVybCA9IGxpbWl0ZWRDYWxsRnJhbWVzWzBdLnVybCB8fCAiIjsKICAgIGlmIChub25BcHBGcmFtZVBhdHRlcm5zLnNvbWUoKHApID0+IHAudGVzdChmaXJzdFVybCkpKSB7CiAgICAgIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGZyYW1lczogW10gfSk7CiAgICAgIHJldHVybjsKICAgIH0KICB9CiAgY29uc3QgZnJhbWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICBsaW1pdGVkQ2FsbEZyYW1lcy5tYXAoYXN5bmMgKGZyYW1lLCBpbmRleCkgPT4gewogICAgICB0cnkgewogICAgICAgIGNvbnN0IHsgZnVuY3Rpb25OYW1lLCBsb2NhdGlvbiwgdXJsLCBzY29wZUNoYWluIH0gPSBmcmFtZTsKICAgICAgICBjb25zdCBsb2NhbFNjb3BlID0gc2NvcGVDaGFpbi5maW5kKChzY29wZSkgPT4gc2NvcGUudHlwZSA9PT0gImxvY2FsIik7CiAgICAgICAgbGV0IGNvZGUgPSAiPG5vdCBjYXB0dXJlZD4iOwogICAgICAgIGxldCBmaWxlID0gIiI7CiAgICAgICAgaWYgKHVybCAmJiB1cmwudHJpbSgpICE9PSAiIikgewogICAgICAgICAgZmlsZSA9IHVybDsKICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0aW9uTGluZXNbaW5kZXhdKSB7CiAgICAgICAgICBmaWxlID0gZGVzY3JpcHRpb25MaW5lc1tpbmRleF0udHJpbSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmaWxlID0gIjx1bmtub3duPiI7CiAgICAgICAgfQogICAgICAgIGlmIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5zY3JpcHRJZCkgewogICAgICAgICAgY29uc3Qgc2NyaXB0SWQgPSBsb2NhdGlvbi5zY3JpcHRJZDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCBzY3JpcHRTb3VyY2UgPSBzY3JpcHRTb3VyY2VDYWNoZS5nZXQoc2NyaXB0SWQpOwogICAgICAgICAgICBpZiAoc2NyaXB0U291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZXNzaW9uLnBvc3QoCiAgICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgc2NyaXB0SWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHNjcmlwdFNvdXJjZSA9IHJlc3VsdC5zY3JpcHRTb3VyY2U7CiAgICAgICAgICAgICAgc2NyaXB0U291cmNlQ2FjaGUuc2V0KHNjcmlwdElkLCBzY3JpcHRTb3VyY2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxvY2FscyA9IGxvY2FsU2NvcGU/Lm9iamVjdD8ub2JqZWN0SWQgPyBhd2FpdCBmZXRjaExvY2FsVmFyaWFibGVzKHNlc3Npb24sIGxvY2FsU2NvcGUub2JqZWN0Lm9iamVjdElkKSA6IHt9OwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiIsCiAgICAgICAgICBsb2NhbHMsCiAgICAgICAgICBmaWxlLAogICAgICAgICAgbGluZTogbG9jYXRpb24/LmxpbmVOdW1iZXIgfHwgMCwKICAgICAgICAgIGNvZGUKICAgICAgICB9OwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRXJyb3IgcHJvY2Vzc2luZyBjYWxsIGZyYW1lOiIsIGVycm9yKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZ1bmN0aW9uOiAiPGVycm9yPiIsCiAgICAgICAgICBsb2NhbHM6IHt9LAogICAgICAgICAgZmlsZTogIjx1bmtub3duPiIsCiAgICAgICAgICBsaW5lOiAwLAogICAgICAgICAgY29kZTogIjxub3QgY2FwdHVyZWQ+IgogICAgICAgIH07CiAgICAgIH0KICAgIH0pCiAgKTsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJleGNlcHRpb24iLCBmcmFtZXMgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CiAgaWYgKHJlYXNvbiAhPT0gImV4Y2VwdGlvbiIgJiYgcmVhc29uICE9PSAicHJvbWlzZVJlamVjdGlvbiIpIHsKICAgIHJldHVybjsKICB9CiAgY29uc3Qgbm9uQXBwUGF0dGVybnMgPSBbCiAgICAvbm9kZTppbnRlcm5hbC8sCiAgICAvaW50ZXJuYWxcLy8sCiAgICAvbm9kZV9tb2R1bGVzLywKICAgIC9ub2RlOmZzLwogIF07CiAgbGV0IGZpcnN0RnJhbWVMaW5lID0gIiI7CiAgbGV0IGRlc2NyaXB0aW9uTGluZXMgPSBbXTsKICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKICAgIGRlc2NyaXB0aW9uTGluZXMgPSBkYXRhLmRlc2NyaXB0aW9uLnNwbGl0KCJcbiIpLmZpbHRlcigobGluZSkgPT4gbGluZS50cmltKCkuc3RhcnRzV2l0aCgiYXQgIikpOwogICAgZmlyc3RGcmFtZUxpbmUgPSBkZXNjcmlwdGlvbkxpbmVzWzBdIHx8ICIiOwogICAgaWYgKCFmaXJzdEZyYW1lTGluZSkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBlcnJvckZyb21Ob25BcHAgPSBub25BcHBQYXR0ZXJucy5zb21lKAogICAgICAocGF0dGVybikgPT4gcGF0dGVybi50ZXN0KGZpcnN0RnJhbWVMaW5lLnRyaW0oKSkKICAgICk7CiAgICBjb25zdCBub2RlTW9kdWxlc0xpc3QgPSBBcnJheS5pc0FycmF5KAogICAgICBnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uCiAgICApID8gZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA6IFtdOwogICAgaWYgKGVycm9yRnJvbU5vbkFwcCkgewogICAgICBpZiAobm9kZU1vZHVsZXNMaXN0LmluY2x1ZGVzKCJfX2FsbF9fIikpIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKAogICAgICAgICAgICAiW1dvcmtlcl0gRXJyb3IgaXMgZnJvbSBub24tYXBwIHNvdXJjZSwgYnV0IGNhcHR1cmluZyBkdWUgdG8gX19hbGxfXyBydWxlLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKG5vZGVNb2R1bGVzTGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgY29uc3QgaXNGcm9tQWxsb3dlZE5vZGVNb2R1bGUgPSBub2RlTW9kdWxlc0xpc3Quc29tZSgKICAgICAgICAgIChtb2R1bGVOYW1lKSA9PiBmaXJzdEZyYW1lTGluZS5pbmNsdWRlcyhgJHttb2R1bGVOYW1lfWApCiAgICAgICAgKTsKICAgICAgICBpZiAoIWlzRnJvbUFsbG93ZWROb2RlTW9kdWxlKSB7CiAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coCiAgICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygKICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgYXdhaXQgcHJvY2Vzc0NhbGxGcmFtZXMoc2Vzc2lvbiwgY2FsbEZyYW1lcywgZGVzY3JpcHRpb25MaW5lcyk7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gc3RhcnREZWJ1Z2dlcigpIHsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJtZXNzYWdlIiwgcmVhZHlUb0dldFBhcmFtZXRlcnM6IHRydWUgfSk7CiAgbGV0IHJlc29sdmVNZXNzYWdlUHJvbWlzZTsKICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICByZXNvbHZlTWVzc2FnZVByb21pc2UgPSByZXNvbHZlOwogIH0pOwogIGxldCBpc1BhdXNlZCA9IGZhbHNlOwogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKG1lc3NhZ2U/LnNmRGVidWcgIT09IHZvaWQgMCAmJiBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCJVcGRhdGluZyBnbG9iYWwgZGVidWcgdmFyaWFibGVzLi4uIik7CiAgICAgICAgfQogICAgICAgIGdsb2JhbC5zZkRlYnVnID0gbWVzc2FnZS5zZkRlYnVnOwogICAgICAgIGdsb2JhbC5zdGFja0RlcHRoTG9jYWxzID0gbWVzc2FnZS5zdGFja0RlcHRoTG9jYWxzOwogICAgICAgIGdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKICAgICAgICByZXNvbHZlTWVzc2FnZVByb21pc2UoKTsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigiXHUyNzRDIEVycm9yIGluIG1lc3NhZ2UgaGFuZGxpbmc6IiwgZXJyb3IpOwogICAgICB9CiAgICB9CiAgfSk7CiAgYXdhaXQgbWVzc2FnZVByb21pc2U7CiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5yZXN1bWVkIiwgKCkgPT4gewogICAgICBpc1BhdXNlZCA9IGZhbHNlOwogICAgfSk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5wYXVzZWQiLCBhc3luYyAoZXZlbnQpID0+IHsKICAgICAgaXNQYXVzZWQgPSB0cnVlOwogICAgICBoYW5kbGVQYXVzZWQoc2Vzc2lvbiwgZXZlbnQucGFyYW1zKS50aGVuKAogICAgICAgIGFzeW5jICgpID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgKF8pID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgKTsKICAgIH0pOwogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7CiAgICAgIHN0YXRlOiB3b3JrZXJEYXRhPy5jYXB0dXJlQWxsRXhjZXB0aW9ucyA/ICJhbGwiIDogInVuY2F1Z2h0IgogICAgfSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBlcnJvciAiLCBlcnJvcik7CiAgICB9CiAgfQogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5sb2coIltXb3JrZXJdIERlYnVnZ2VyIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5LiIpOwogIH0KfQphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUKICB9KTsKICB2YXJzW25hbWVdID0gcHJvcGVydGllcy5yZXN1bHQubWFwKCh2KSA9PiBbdi5uYW1lLCB2LnZhbHVlPy52YWx1ZV0pLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICBvYmpba2V5XSA9IHZhbDsKICAgIHJldHVybiBvYmo7CiAgfSwge30pOwp9CmFzeW5jIGZ1bmN0aW9uIHVucm9sbEFycmF5KHNlc3Npb24sIG9iamVjdElkLCBuYW1lLCB2YXJzKSB7CiAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgb2JqZWN0SWQsCiAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0LmZpbHRlcigodikgPT4gdi5uYW1lICE9PSAibGVuZ3RoIiAmJiAhaXNOYU4ocGFyc2VJbnQodi5uYW1lLCAxMCkpKS5zb3J0KChhLCBiKSA9PiBwYXJzZUludChhLm5hbWUsIDEwKSAtIHBhcnNlSW50KGIubmFtZSwgMTApKS5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQpmdW5jdGlvbiB1bnJvbGxPdGhlcihwcm9wLCB2YXJzKSB7CiAgaWYgKCFwcm9wLnZhbHVlKSB7CiAgICByZXR1cm47CiAgfQogIGlmICgidmFsdWUiIGluIHByb3AudmFsdWUpIHsKICAgIGlmIChwcm9wLnZhbHVlLnZhbHVlID09PSB2b2lkIDAgfHwgcHJvcC52YWx1ZS52YWx1ZSA9PT0gbnVsbCkgewogICAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS52YWx1ZX0+YDsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CiAgaWYgKCJkZXNjcmlwdGlvbiIgaW4gcHJvcC52YWx1ZSAmJiBwcm9wLnZhbHVlLnR5cGUgIT09ICJmdW5jdGlvbiIpIHsKICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLmRlc2NyaXB0aW9ufT5gOwogICAgcmV0dXJuOwogIH0KICBpZiAocHJvcC52YWx1ZS50eXBlID09PSAidW5kZWZpbmVkIikgewogICAgdmFyc1twcm9wLm5hbWVdID0gIjx1bmRlZmluZWQ+IjsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKICB0cnkgewogICAgY29uc3QgeyByZXN1bHQgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgICBvYmplY3RJZCwKICAgICAgb3duUHJvcGVydGllczogdHJ1ZQogICAgfSk7CiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmIChwcm9wPy52YWx1ZT8ub2JqZWN0SWQgJiYgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQpzdGFydERlYnVnZ2VyKCkuY2F0Y2goKGVycm9yKSA9PiB7CiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gc3RhcnQgZGVidWdnZXI6IiwgZXJyb3IpOwogIH0KfSk7CnNldEludGVydmFsKCgpID0+IHsKfSwgMWU0KTsKZXhwb3J0IHsKICBwcm9jZXNzQ2FsbEZyYW1lcwp9Owo="), { workerData: { captureAllExceptions: process.env.SF_CAPTURE_ALL_EXCEPTIONS === "true" } });
|
|
249
|
-
let n = null;
|
|
250
|
-
const C = /* @__PURE__ */ new WeakMap();
|
|
251
|
-
g.on("message", async (s) => {
|
|
252
|
-
if (typeof s == "string" && m().sfDebug && y(`[Worker] ${s}`), s.readyToGetParameters && g.postMessage({ sfDebug: m().sfDebug, stackDepthLocals: m().stackDepthLocals, nodeModulesToCollectLocalVariablesOn: m().nodeModulesToCollectLocalVariablesOn }), s.type === "exception") {
|
|
253
|
-
const { frames: c } = s, i = n;
|
|
254
|
-
if (!i) return;
|
|
255
|
-
const A = (function(o) {
|
|
256
|
-
return o ? o.split(`
|
|
257
|
-
`).slice(1).map((a) => {
|
|
258
|
-
const W = /at (.+?) \((.+):(\d+):(\d+)\)/.exec(a) || /at (.+):(\d+):(\d+)/.exec(a);
|
|
259
|
-
if (W) {
|
|
260
|
-
const [, p, B, b, Z] = W;
|
|
261
|
-
return new K({ function: p || "<anonymous>", locals: {}, file: B || "<unknown>", line: parseInt(b, 10) || 0, code: "<not captured>", column: parseInt(Z) || 0 });
|
|
262
|
-
}
|
|
263
|
-
return new K({ function: "<unknown>", locals: {}, file: "<unknown>", line: 0, code: "<not captured>", column: 0 });
|
|
264
|
-
}) : [];
|
|
265
|
-
})(x(i.stack)), f = (function(o, a) {
|
|
266
|
-
const W = [];
|
|
267
|
-
let p = -1, B = -1;
|
|
268
|
-
for (let b = 0; b < o.length; b++) {
|
|
269
|
-
const Z = BI(o[b].file);
|
|
270
|
-
if (B = b, Z !== "<unknown>") {
|
|
271
|
-
for (let u = 0; u < a.length; u++) {
|
|
272
|
-
const G = a[u];
|
|
273
|
-
if (II(G, Z) || typeof G.file == "string" && G.file.includes(Z)) {
|
|
274
|
-
p = u, S = 0, m().sfDebug && y(`✅ Matched Frame Found: ${Z} @ Debugger Frame ${u}`);
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
if (p !== -1) break;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
if (p === -1) return S === 10 ? (S = 0, o) : (++S, m().sfDebug && y(`"❌ No matching frame found. Checking once again, Attempt N ${S}"`), []);
|
|
282
|
-
m().sfDebug && y(`🔄 Merging from matched index ${p} onward...`);
|
|
283
|
-
for (let b = 0; b < a.length; b++) {
|
|
284
|
-
const Z = o[B + b], u = a[p + b];
|
|
285
|
-
W.push(new K({ function: u?.function || Z?.function || "<anonymous>", locals: u?.locals || Z?.locals || {}, file: Z?.file || u?.file || "<unknown>", line: u?.line || Z?.line || 0, code: u?.code || Z?.code || "<not captured>" }));
|
|
286
|
-
}
|
|
287
|
-
return W;
|
|
288
|
-
})(A, c || []);
|
|
289
|
-
if (f.length !== 0) {
|
|
290
|
-
n = null;
|
|
291
|
-
const o = m().stackDepthCodeTraceDepth, a = o === -1 ? f : f.slice(0, o + 1), W = Math.min(a.length, A.length);
|
|
292
|
-
await Promise.all(Array.from({ length: W }, async (Z, u) => {
|
|
293
|
-
const G = await (async function(CI, eI, cI) {
|
|
294
|
-
const h = (function(r) {
|
|
295
|
-
r.startsWith("at ") && (r = r.slice(3).trim());
|
|
296
|
-
const N = r.match(/^(.*?)(:\d+)+(\.map)?$/);
|
|
297
|
-
return N ? N[1] : r;
|
|
298
|
-
})(CI);
|
|
299
|
-
if (!h || h === "<unknown>") return null;
|
|
300
|
-
const w = h + ".map";
|
|
301
|
-
try {
|
|
302
|
-
let r = v.get(w);
|
|
303
|
-
if (r === void 0) {
|
|
304
|
-
const R = await oI.readFile(w, "utf-8");
|
|
305
|
-
r = R ? JSON.parse(R) : null, $(w, r);
|
|
306
|
-
}
|
|
307
|
-
if (!r) return null;
|
|
308
|
-
let N = new bI.SourceMapConsumer(r).originalPositionFor({ line: eI, column: cI });
|
|
309
|
-
if (h && N.source) {
|
|
310
|
-
const R = _(h), O = r.sources.findIndex((F) => _(F) === R);
|
|
311
|
-
if (O === -1) m().sfDebug && y(`Source file "${h}" not found in the source map.`);
|
|
312
|
-
else {
|
|
313
|
-
const F = r.sourcesContent[O], tI = r.names.join(",");
|
|
314
|
-
if (F)
|
|
315
|
-
return { content: F.split(`
|
|
316
|
-
`).slice(N.line - 1, N.line + 20).join(`
|
|
317
|
-
`), name: tI, file: N.source };
|
|
318
|
-
m().sfDebug && y(`No source content available for file "${h}".`);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
return { content: r.sourcesContent[0], name: r.names[0], file: r.file };
|
|
322
|
-
} catch (r) {
|
|
323
|
-
m().sfDebug && y(`Cant read/parse "${w}: Error - ".`, r), $(w, null);
|
|
324
|
-
}
|
|
325
|
-
return null;
|
|
326
|
-
})(a[u].file, A[u].line, A[u].column);
|
|
327
|
-
G && (G.content != null && (a[u].code = G.content), G.file != null && (a[u].file = G.file));
|
|
328
|
-
})), I.setOperationName("CollectExceptions");
|
|
329
|
-
const p = i.message ? `${i.name}: ${i.message}` : i.name;
|
|
330
|
-
m().sfDebug && y("error message is : ", p);
|
|
331
|
-
const B = D.getInstance(), b = C.get(i);
|
|
332
|
-
b ? (B.setTraceIdFor(b, b), B.runWithSession(b, () => {
|
|
333
|
-
B.setTraceId(b), I.doSend(p, a);
|
|
334
|
-
})) : I.doSend(p, a);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}), g.on("error", (s) => {
|
|
338
|
-
M("[Worker Error]", s);
|
|
339
|
-
}), g.on("exit", (s) => {
|
|
340
|
-
M(`[Worker] Exited with code ${s}`);
|
|
341
|
-
}), g.unref();
|
|
342
|
-
const e = Error, t = /* @__PURE__ */ new Set();
|
|
343
|
-
function l(...s) {
|
|
344
|
-
const c = Reflect.construct(e, s);
|
|
345
|
-
Reflect.setPrototypeOf(c, l.prototype);
|
|
346
|
-
try {
|
|
347
|
-
const A = D.getInstance().getTraceId();
|
|
348
|
-
C.set(c, A);
|
|
349
|
-
} catch {
|
|
350
|
-
}
|
|
351
|
-
e.captureStackTrace && e.captureStackTrace(c, l);
|
|
352
|
-
const i = `${c.message}:${x(c.stack).split(`
|
|
353
|
-
`)[1]?.trim()}`;
|
|
354
|
-
if (!t.has(i)) {
|
|
355
|
-
if (t.add(i), t.size > 1e3) {
|
|
356
|
-
const A = t.values().next().value;
|
|
357
|
-
t.delete(A);
|
|
358
|
-
}
|
|
359
|
-
n = c, g.postMessage({ type: "processException", error: c.message });
|
|
360
|
-
}
|
|
361
|
-
return c;
|
|
362
|
-
}
|
|
363
|
-
l.prototype = Object.create(e.prototype, { constructor: { value: l, enumerable: !1, writable: !0, configurable: !0 } }), Object.setPrototypeOf(l, e), globalThis.Error = l;
|
|
364
|
-
}
|
|
365
|
-
function _(I) {
|
|
366
|
-
return I = (I = (I = I.replace(/^webpack:\/\/[^\/]+\/\.?\//, "")).replace(/^.*\/pages\//, "pages/")).replace(/\.(js|ts)$/, "");
|
|
367
|
-
}
|
|
368
|
-
const yI = 50, v = /* @__PURE__ */ new Map();
|
|
369
|
-
function $(I, g) {
|
|
370
|
-
if (v.size >= yI) {
|
|
371
|
-
const n = v.keys().next().value;
|
|
372
|
-
v.delete(n);
|
|
373
|
-
}
|
|
374
|
-
v.set(I, g);
|
|
375
|
-
}
|
|
376
|
-
function BI(I) {
|
|
377
|
-
return I?.split("/").pop() || "<unknown>";
|
|
378
|
-
}
|
|
379
|
-
function II(I, g) {
|
|
380
|
-
if (!I || typeof I != "object") return !1;
|
|
381
|
-
for (const n of Object.values(I))
|
|
382
|
-
if (typeof n == "string" && n.includes(g) || typeof n == "object" && II(n, g)) return !0;
|
|
383
|
-
return !1;
|
|
384
|
-
}
|
|
385
|
-
let V, J, k, q = !1;
|
|
386
|
-
function gI(I) {
|
|
387
|
-
if (!I) return;
|
|
388
|
-
const g = I.toLowerCase().trim();
|
|
389
|
-
return !!["1", "true", "yes", "on"].includes(g) || !["0", "false", "no", "off"].includes(g) && void 0;
|
|
390
|
-
}
|
|
391
|
-
function nI() {
|
|
392
|
-
if (V !== void 0) return V;
|
|
393
|
-
const I = process.env || {}, g = gI(I.SF_IS_LOCAL);
|
|
394
|
-
if (g !== void 0) return V = g;
|
|
395
|
-
const n = (I.SF_ENV || I.NODE_ENV || "").toLowerCase();
|
|
396
|
-
if (["local", "dev", "development"].includes(n)) return V = !0;
|
|
397
|
-
if (["KUBERNETES_SERVICE_HOST", "AWS_EXECUTION_ENV", "ECS_CONTAINER_METADATA_URI", "ECS_CONTAINER_METADATA_URI_V4", "GAE_ENV", "K_SERVICE", "GOOGLE_CLOUD_PROJECT", "WEBSITE_INSTANCE_ID", "VERCEL", "NETLIFY", "DYNO", "RENDER", "FLY_APP_NAME", "RAILWAY_STATIC_URL", "CF_PAGES", "CLOUDFLARE"].some((e) => !!I[e])) return V = !1;
|
|
398
|
-
const C = (rI.hostname?.() || I.HOSTNAME || "").toLowerCase();
|
|
399
|
-
return V = !(C !== "localhost" && !C.endsWith(".local") && !C.includes("local"));
|
|
400
|
-
}
|
|
401
|
-
function L(I, g, n) {
|
|
402
|
-
return new Promise((C) => {
|
|
403
|
-
try {
|
|
404
|
-
const e = new URL(I), t = (e.protocol === "https:" ? AI : sI).request({ method: "GET", hostname: e.hostname, port: e.port || (e.protocol === "https:" ? 443 : 80), path: e.pathname + (e.search || ""), headers: g }, (l) => {
|
|
405
|
-
l.resume(), l.statusCode && l.statusCode >= 200 && l.statusCode < 400 ? C("ok") : C("http_error");
|
|
406
|
-
});
|
|
407
|
-
t.on("error", () => C("error")), t.setTimeout(n, () => {
|
|
408
|
-
t.destroy(), C("timeout");
|
|
409
|
-
}), t.end();
|
|
410
|
-
} catch {
|
|
411
|
-
C("error");
|
|
412
|
-
}
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
function YI() {
|
|
416
|
-
if (J !== void 0) return J;
|
|
417
|
-
const I = process.env.SF_FUNCSPAN_RUNTIME_ENABLED;
|
|
418
|
-
if (I === "true" || I === "1") return J = !0, !0;
|
|
419
|
-
if (I === "false" || I === "0") return J = !1, !1;
|
|
420
|
-
try {
|
|
421
|
-
const { isRuntimeModeConfigured: g } = require("../funcSpanConfigLoader");
|
|
422
|
-
if (g && g()) return J = !0, !0;
|
|
423
|
-
} catch {
|
|
424
|
-
}
|
|
425
|
-
return J = !1, !1;
|
|
426
|
-
}
|
|
427
|
-
function VI() {
|
|
428
|
-
return k !== void 0 || (k = !nI()), k;
|
|
429
|
-
}
|
|
430
|
-
function kI() {
|
|
431
|
-
return !!YI() && (!VI() || (console.warn("[FuncSpan Runtime] DISABLED in production environment"), !1));
|
|
432
|
-
}
|
|
433
|
-
export {
|
|
434
|
-
j as C,
|
|
435
|
-
RI as a,
|
|
436
|
-
M as b,
|
|
437
|
-
x as c,
|
|
438
|
-
FI as d,
|
|
439
|
-
zI as e,
|
|
440
|
-
VI as f,
|
|
441
|
-
YI as g,
|
|
442
|
-
y as i,
|
|
443
|
-
kI as s
|
|
444
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";const ln=require("fs/promises"),on=require("http"),sn=require("https"),An=require("os"),rn=require("./source-map-rHHEdpre.cjs"),bn=require("worker_threads"),a=require("./contextManager-0D8uHQ1_.cjs"),un=require("path");function an(n){const I=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const g in n)if(g!=="default"){const e=Object.getOwnPropertyDescriptor(n,g);Object.defineProperty(I,g,e.get?e:{enumerable:!0,get:()=>n[g]})}}return I.default=n,Object.freeze(I)}const dn=an(ln);function k(n){return typeof n=="string"?n:n==null?"":Array.isArray(n)?n.map(I=>String(I)).join(`
|
|
2
|
-
`):String(n)}function mn(n){try{return JSON.stringify(n),!0}catch{return!1}}class v{file;line;function;code;locals;offender;column;constructor({file:I,line:g,function:e,code:C,locals:t={},offender:l=!1,column:s}){this.file=I,this.line=g,this.function=e,this.code=C,this.locals=t,this.offender=l,this.column=s}toDict(){const I={file:this.file,line:this.line,function:this.function,code:this.code,locals:Object.fromEntries(Object.entries(this.locals).map(([g,e])=>[g,String(e)]))};return this.offender&&(I.offender=this.offender),this.column!==void 0&&(I.column=this.column),I}toJson(){return JSON.stringify(this.toDict())}}class L{static encode(I){return I instanceof v?I.toDict():Array.isArray(I)?I.map(g=>L.encode(g)):typeof I=="object"&&I!==null?JSON.stringify(I):I}static stringify(I){return JSON.stringify(L.encode(I),(g,e)=>e instanceof v?e.toDict():e)}}const Zn=["/sf-veritas/","/@sailfish-ai/","/node_modules/","/dist/","/<","/internal/","node:"],N=new Map;function fn(n){return Zn.some(I=>n.includes(I))}function Wn(n){let I=n;I.startsWith("file://")&&(I=I.substring(7)),process.platform==="win32"&&I.startsWith("/")&&I.length>2&&I[2]===":"&&(I=I.substring(1));try{return un.resolve(I)}catch{return n}}function pn(n=0){const I=new Error().stack;if(!I)return[null,null];const g=k(I),e=(function(c,i){const A=2+i;return c.split(`
|
|
3
|
-
`).slice(A,A+5).join(`
|
|
4
|
-
`)})(g,n),C=N.get(e);if(C)return C;const t=(function(c){if(!c)return[];const i=c.split(`
|
|
5
|
-
`).slice(1),A=[];for(const f of i){let o=/at\s+(.+?)\s+\((.+?):(\d+):(\d+)\)/.exec(f);o?A.push({functionName:o[1],file:o[2],line:parseInt(o[3],10),column:parseInt(o[4],10)}):(o=/at\s+(.+?):(\d+):(\d+)/.exec(f),o&&A.push({functionName:"<anonymous>",file:o[1],line:parseInt(o[2],10),column:parseInt(o[3],10)}))}return A})(g),l=1+n;for(let c=l;c<Math.min(t.length,l+10);c++){const i=t[c];if(!i||!i.file||fn(i.file))continue;const A=[Wn(i.file),i.line];if(N.size>=512){const f=N.keys().next().value;f!==void 0&&N.delete(f)}return N.set(e,A),A}const s=[null,null];return N.set(e,s),s}const E=console.log.bind(console),T=console.error.bind(console),D=console.warn.bind(console),Q=console.info.bind(console),U=console.debug.bind(console),G=E,x=T;let m=!1;const F=8192;function Gn(n){if(n===null)return"null";if(n===void 0)return"undefined";const I=typeof n;if(I==="string")return n;if(I==="number"||I==="boolean")return String(n);if(I==="bigint")return n.toString()+"n";if(I==="symbol")return n.toString();if(I==="function")return`[Function: ${n.name||"anonymous"}]`;if(n instanceof Error)return n.stack||`${n.name}: ${n.message}`;try{const g=new WeakSet,e=[],C=new Map,t=JSON.stringify(n,function(s,c){if(typeof c=="bigint")return c.toString()+"n";if(typeof c=="function")return`[Function: ${c.name||"anonymous"}]`;if(typeof c=="symbol")return c.toString();if(c===void 0)return"[undefined]";if(s!==""&&C.has(this)){const i=C.get(this);if(i>=20)return;C.set(this,i+1)}if(c!==null&&typeof c=="object"){if(g.has(c))return"[Circular]";for(;e.length>0&&e[e.length-1]!==this;)e.pop();if(e.length>=3)return Array.isArray(c)?`[Array(${c.length})]`:"[Object]";g.add(c),e.push(c),!Array.isArray(c)&&Object.keys(c).length>20&&C.set(c,0)}return c});if(t===void 0)return String(n);let l=t;if(C.size>0&&!Array.isArray(n)&&C.has(n)){const s=Object.keys(n).length;l=l.slice(0,-1)+`,"...":"${s-20} more keys"}`}return l.length>500?l.substring(0,500)+"...[truncated]":l}catch{return String(n)}}function w(n){if(n.length===0)return"";if(n.length===1&&typeof n[0]=="string"){const e=n[0];return e.length>F?e.substring(0,F)+"...[truncated]":e}let I,g=!0;for(let e=0;e<n.length;e++){const C=typeof n[e];if(C==="object"&&n[e]!==null||C==="function"||C==="symbol"){g=!1;break}}if(g){const e=new Array(n.length);for(let C=0;C<n.length;C++){const t=n[C];e[C]=t===null?"null":t===void 0?"undefined":typeof t=="string"?t:String(t)}I=e.join(" ")}else I=n.map(Gn).join(" ");return I.length>F?I.substring(0,F)+"...[truncated]":I}let X=0;function P(n){return n=(n=(n=n.replace(/^webpack:\/\/[^\/]+\/\.?\//,"")).replace(/^.*\/pages\//,"pages/")).replace(/\.(js|ts)$/,"")}const yn=50,S=new Map;function M(n,I){if(S.size>=yn){const g=S.keys().next().value;S.delete(g)}S.set(n,I)}function Bn(n){return n?.split("/").pop()||"<unknown>"}function nn(n,I){if(!n||typeof n!="object")return!1;for(const g of Object.values(n))if(typeof g=="string"&&g.includes(I)||typeof g=="object"&&nn(g,I))return!0;return!1}let Y,H,z,_=!1;function In(n){if(!n)return;const I=n.toLowerCase().trim();return!!["1","true","yes","on"].includes(I)||!["0","false","no","off"].includes(I)&&void 0}function gn(){if(Y!==void 0)return Y;const n=process.env||{},I=In(n.SF_IS_LOCAL);if(I!==void 0)return Y=I;const g=(n.SF_ENV||n.NODE_ENV||"").toLowerCase();if(["local","dev","development"].includes(g))return Y=!0;if(["KUBERNETES_SERVICE_HOST","AWS_EXECUTION_ENV","ECS_CONTAINER_METADATA_URI","ECS_CONTAINER_METADATA_URI_V4","GAE_ENV","K_SERVICE","GOOGLE_CLOUD_PROJECT","WEBSITE_INSTANCE_ID","VERCEL","NETLIFY","DYNO","RENDER","FLY_APP_NAME","RAILWAY_STATIC_URL","CF_PAGES","CLOUDFLARE"].some(C=>!!n[C]))return Y=!1;const e=(An.hostname?.()||n.HOSTNAME||"").toLowerCase();return Y=!(e!=="localhost"&&!e.endsWith(".local")&&!e.includes("local"))}function j(n,I,g){return new Promise(e=>{try{const C=new URL(n),t=(C.protocol==="https:"?sn:on).request({method:"GET",hostname:C.hostname,port:C.port||(C.protocol==="https:"?443:80),path:C.pathname+(C.search||""),headers:I},l=>{l.resume(),l.statusCode&&l.statusCode>=200&&l.statusCode<400?e("ok"):e("http_error")});t.on("error",()=>e("error")),t.setTimeout(g,()=>{t.destroy(),e("timeout")}),t.end()}catch{e("error")}})}function $(){if(H!==void 0)return H;const n=process.env.SF_FUNCSPAN_RUNTIME_ENABLED;if(n==="true"||n==="1")return H=!0,!0;if(n==="false"||n==="0")return H=!1,!1;try{const{isRuntimeModeConfigured:I}=require("../funcSpanConfigLoader");if(I&&I())return H=!0,!0}catch{}return H=!1,!1}function q(){return z!==void 0||(z=!gn()),z}exports.CustomJSONEncoderForFrameInfo=L,exports.initializeExceptionInterceptor=function(n){a.getConfig().sfDebug&&G("Initializing Exception Interceptor...");try{const s=gn();n?.setSupplementalFields?.({isFromLocalService:s}),(async function(c){if(_)return;_=!0;const i=process.env||{};if(In(i.SF_IS_LOCAL)===void 0)try{await(async function(A){const f=j("http://169.254.169.254/latest/meta-data/",{},A),o=j("http://metadata.google.internal/computeMetadata/v1/instance/",{"Metadata-Flavor":"Google"},A),d=j("http://169.254.169.254/metadata/instance?api-version=2021-02-01",{Metadata:"true"},A);return(await Promise.allSettled([f,o,d])).some(W=>W.status==="fulfilled"&&(W.value==="ok"||W.value==="http_error"))})(150)&&Y&&(Y=!1,c?.setSupplementalFields?.({isFromLocalService:!1}))}catch{}})(n).catch(()=>{})}catch{}const I=new bn.Worker(new URL("data:application/javascript;base64,Ly8gc3JjL2RlYnVnZ2VyV29ya2VyLnRzCmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICJpbnNwZWN0b3IvcHJvbWlzZXMiOwppbXBvcnQgeyBwYXJlbnRQb3J0LCB3b3JrZXJEYXRhIH0gZnJvbSAid29ya2VyX3RocmVhZHMiOwpnbG9iYWwuc2ZEZWJ1ZyA9IHZvaWQgMDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB2b2lkIDA7Cmdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSB2b2lkIDA7CnZhciBzY3JpcHRTb3VyY2VDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CnZhciBub25BcHBGcmFtZVBhdHRlcm5zID0gWwogIC9ub2RlOmludGVybmFsLywKICAvaW50ZXJuYWxcLy8sCiAgL25vZGVfbW9kdWxlcy8sCiAgL25vZGU6ZnMvCl07CmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDYWxsRnJhbWVzKHNlc3Npb24sIGNhbGxGcmFtZXMsIGRlc2NyaXB0aW9uTGluZXMpIHsKICBjb25zdCBsaW1pdGVkQ2FsbEZyYW1lcyA9IGNhbGxGcmFtZXMuc2xpY2UoMCwgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMpOwogIGlmIChsaW1pdGVkQ2FsbEZyYW1lcy5sZW5ndGggPiAwKSB7CiAgICBjb25zdCBmaXJzdFVybCA9IGxpbWl0ZWRDYWxsRnJhbWVzWzBdLnVybCB8fCAiIjsKICAgIGlmIChub25BcHBGcmFtZVBhdHRlcm5zLnNvbWUoKHApID0+IHAudGVzdChmaXJzdFVybCkpKSB7CiAgICAgIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGZyYW1lczogW10gfSk7CiAgICAgIHJldHVybjsKICAgIH0KICB9CiAgY29uc3QgZnJhbWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICBsaW1pdGVkQ2FsbEZyYW1lcy5tYXAoYXN5bmMgKGZyYW1lLCBpbmRleCkgPT4gewogICAgICB0cnkgewogICAgICAgIGNvbnN0IHsgZnVuY3Rpb25OYW1lLCBsb2NhdGlvbiwgdXJsLCBzY29wZUNoYWluIH0gPSBmcmFtZTsKICAgICAgICBjb25zdCBsb2NhbFNjb3BlID0gc2NvcGVDaGFpbi5maW5kKChzY29wZSkgPT4gc2NvcGUudHlwZSA9PT0gImxvY2FsIik7CiAgICAgICAgbGV0IGNvZGUgPSAiPG5vdCBjYXB0dXJlZD4iOwogICAgICAgIGxldCBmaWxlID0gIiI7CiAgICAgICAgaWYgKHVybCAmJiB1cmwudHJpbSgpICE9PSAiIikgewogICAgICAgICAgZmlsZSA9IHVybDsKICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0aW9uTGluZXNbaW5kZXhdKSB7CiAgICAgICAgICBmaWxlID0gZGVzY3JpcHRpb25MaW5lc1tpbmRleF0udHJpbSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmaWxlID0gIjx1bmtub3duPiI7CiAgICAgICAgfQogICAgICAgIGlmIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5zY3JpcHRJZCkgewogICAgICAgICAgY29uc3Qgc2NyaXB0SWQgPSBsb2NhdGlvbi5zY3JpcHRJZDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCBzY3JpcHRTb3VyY2UgPSBzY3JpcHRTb3VyY2VDYWNoZS5nZXQoc2NyaXB0SWQpOwogICAgICAgICAgICBpZiAoc2NyaXB0U291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZXNzaW9uLnBvc3QoCiAgICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgc2NyaXB0SWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHNjcmlwdFNvdXJjZSA9IHJlc3VsdC5zY3JpcHRTb3VyY2U7CiAgICAgICAgICAgICAgc2NyaXB0U291cmNlQ2FjaGUuc2V0KHNjcmlwdElkLCBzY3JpcHRTb3VyY2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxvY2FscyA9IGxvY2FsU2NvcGU/Lm9iamVjdD8ub2JqZWN0SWQgPyBhd2FpdCBmZXRjaExvY2FsVmFyaWFibGVzKHNlc3Npb24sIGxvY2FsU2NvcGUub2JqZWN0Lm9iamVjdElkKSA6IHt9OwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiIsCiAgICAgICAgICBsb2NhbHMsCiAgICAgICAgICBmaWxlLAogICAgICAgICAgbGluZTogbG9jYXRpb24/LmxpbmVOdW1iZXIgfHwgMCwKICAgICAgICAgIGNvZGUKICAgICAgICB9OwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRXJyb3IgcHJvY2Vzc2luZyBjYWxsIGZyYW1lOiIsIGVycm9yKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZ1bmN0aW9uOiAiPGVycm9yPiIsCiAgICAgICAgICBsb2NhbHM6IHt9LAogICAgICAgICAgZmlsZTogIjx1bmtub3duPiIsCiAgICAgICAgICBsaW5lOiAwLAogICAgICAgICAgY29kZTogIjxub3QgY2FwdHVyZWQ+IgogICAgICAgIH07CiAgICAgIH0KICAgIH0pCiAgKTsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJleGNlcHRpb24iLCBmcmFtZXMgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CiAgaWYgKHJlYXNvbiAhPT0gImV4Y2VwdGlvbiIgJiYgcmVhc29uICE9PSAicHJvbWlzZVJlamVjdGlvbiIpIHsKICAgIHJldHVybjsKICB9CiAgY29uc3Qgbm9uQXBwUGF0dGVybnMgPSBbCiAgICAvbm9kZTppbnRlcm5hbC8sCiAgICAvaW50ZXJuYWxcLy8sCiAgICAvbm9kZV9tb2R1bGVzLywKICAgIC9ub2RlOmZzLwogIF07CiAgbGV0IGZpcnN0RnJhbWVMaW5lID0gIiI7CiAgbGV0IGRlc2NyaXB0aW9uTGluZXMgPSBbXTsKICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKICAgIGRlc2NyaXB0aW9uTGluZXMgPSBkYXRhLmRlc2NyaXB0aW9uLnNwbGl0KCJcbiIpLmZpbHRlcigobGluZSkgPT4gbGluZS50cmltKCkuc3RhcnRzV2l0aCgiYXQgIikpOwogICAgZmlyc3RGcmFtZUxpbmUgPSBkZXNjcmlwdGlvbkxpbmVzWzBdIHx8ICIiOwogICAgaWYgKCFmaXJzdEZyYW1lTGluZSkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBlcnJvckZyb21Ob25BcHAgPSBub25BcHBQYXR0ZXJucy5zb21lKAogICAgICAocGF0dGVybikgPT4gcGF0dGVybi50ZXN0KGZpcnN0RnJhbWVMaW5lLnRyaW0oKSkKICAgICk7CiAgICBjb25zdCBub2RlTW9kdWxlc0xpc3QgPSBBcnJheS5pc0FycmF5KAogICAgICBnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uCiAgICApID8gZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA6IFtdOwogICAgaWYgKGVycm9yRnJvbU5vbkFwcCkgewogICAgICBpZiAobm9kZU1vZHVsZXNMaXN0LmluY2x1ZGVzKCJfX2FsbF9fIikpIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKAogICAgICAgICAgICAiW1dvcmtlcl0gRXJyb3IgaXMgZnJvbSBub24tYXBwIHNvdXJjZSwgYnV0IGNhcHR1cmluZyBkdWUgdG8gX19hbGxfXyBydWxlLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKG5vZGVNb2R1bGVzTGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgY29uc3QgaXNGcm9tQWxsb3dlZE5vZGVNb2R1bGUgPSBub2RlTW9kdWxlc0xpc3Quc29tZSgKICAgICAgICAgIChtb2R1bGVOYW1lKSA9PiBmaXJzdEZyYW1lTGluZS5pbmNsdWRlcyhgJHttb2R1bGVOYW1lfWApCiAgICAgICAgKTsKICAgICAgICBpZiAoIWlzRnJvbUFsbG93ZWROb2RlTW9kdWxlKSB7CiAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coCiAgICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygKICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgYXdhaXQgcHJvY2Vzc0NhbGxGcmFtZXMoc2Vzc2lvbiwgY2FsbEZyYW1lcywgZGVzY3JpcHRpb25MaW5lcyk7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gc3RhcnREZWJ1Z2dlcigpIHsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJtZXNzYWdlIiwgcmVhZHlUb0dldFBhcmFtZXRlcnM6IHRydWUgfSk7CiAgbGV0IHJlc29sdmVNZXNzYWdlUHJvbWlzZTsKICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICByZXNvbHZlTWVzc2FnZVByb21pc2UgPSByZXNvbHZlOwogIH0pOwogIGxldCBpc1BhdXNlZCA9IGZhbHNlOwogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKG1lc3NhZ2U/LnNmRGVidWcgIT09IHZvaWQgMCAmJiBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCJVcGRhdGluZyBnbG9iYWwgZGVidWcgdmFyaWFibGVzLi4uIik7CiAgICAgICAgfQogICAgICAgIGdsb2JhbC5zZkRlYnVnID0gbWVzc2FnZS5zZkRlYnVnOwogICAgICAgIGdsb2JhbC5zdGFja0RlcHRoTG9jYWxzID0gbWVzc2FnZS5zdGFja0RlcHRoTG9jYWxzOwogICAgICAgIGdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKICAgICAgICByZXNvbHZlTWVzc2FnZVByb21pc2UoKTsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigiXHUyNzRDIEVycm9yIGluIG1lc3NhZ2UgaGFuZGxpbmc6IiwgZXJyb3IpOwogICAgICB9CiAgICB9CiAgfSk7CiAgYXdhaXQgbWVzc2FnZVByb21pc2U7CiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5yZXN1bWVkIiwgKCkgPT4gewogICAgICBpc1BhdXNlZCA9IGZhbHNlOwogICAgfSk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5wYXVzZWQiLCBhc3luYyAoZXZlbnQpID0+IHsKICAgICAgaXNQYXVzZWQgPSB0cnVlOwogICAgICBoYW5kbGVQYXVzZWQoc2Vzc2lvbiwgZXZlbnQucGFyYW1zKS50aGVuKAogICAgICAgIGFzeW5jICgpID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgKF8pID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgKTsKICAgIH0pOwogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7CiAgICAgIHN0YXRlOiB3b3JrZXJEYXRhPy5jYXB0dXJlQWxsRXhjZXB0aW9ucyA/ICJhbGwiIDogInVuY2F1Z2h0IgogICAgfSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBlcnJvciAiLCBlcnJvcik7CiAgICB9CiAgfQogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5sb2coIltXb3JrZXJdIERlYnVnZ2VyIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5LiIpOwogIH0KfQphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUKICB9KTsKICB2YXJzW25hbWVdID0gcHJvcGVydGllcy5yZXN1bHQubWFwKCh2KSA9PiBbdi5uYW1lLCB2LnZhbHVlPy52YWx1ZV0pLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICBvYmpba2V5XSA9IHZhbDsKICAgIHJldHVybiBvYmo7CiAgfSwge30pOwp9CmFzeW5jIGZ1bmN0aW9uIHVucm9sbEFycmF5KHNlc3Npb24sIG9iamVjdElkLCBuYW1lLCB2YXJzKSB7CiAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgb2JqZWN0SWQsCiAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0LmZpbHRlcigodikgPT4gdi5uYW1lICE9PSAibGVuZ3RoIiAmJiAhaXNOYU4ocGFyc2VJbnQodi5uYW1lLCAxMCkpKS5zb3J0KChhLCBiKSA9PiBwYXJzZUludChhLm5hbWUsIDEwKSAtIHBhcnNlSW50KGIubmFtZSwgMTApKS5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQpmdW5jdGlvbiB1bnJvbGxPdGhlcihwcm9wLCB2YXJzKSB7CiAgaWYgKCFwcm9wLnZhbHVlKSB7CiAgICByZXR1cm47CiAgfQogIGlmICgidmFsdWUiIGluIHByb3AudmFsdWUpIHsKICAgIGlmIChwcm9wLnZhbHVlLnZhbHVlID09PSB2b2lkIDAgfHwgcHJvcC52YWx1ZS52YWx1ZSA9PT0gbnVsbCkgewogICAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS52YWx1ZX0+YDsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CiAgaWYgKCJkZXNjcmlwdGlvbiIgaW4gcHJvcC52YWx1ZSAmJiBwcm9wLnZhbHVlLnR5cGUgIT09ICJmdW5jdGlvbiIpIHsKICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLmRlc2NyaXB0aW9ufT5gOwogICAgcmV0dXJuOwogIH0KICBpZiAocHJvcC52YWx1ZS50eXBlID09PSAidW5kZWZpbmVkIikgewogICAgdmFyc1twcm9wLm5hbWVdID0gIjx1bmRlZmluZWQ+IjsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKICB0cnkgewogICAgY29uc3QgeyByZXN1bHQgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgICBvYmplY3RJZCwKICAgICAgb3duUHJvcGVydGllczogdHJ1ZQogICAgfSk7CiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmIChwcm9wPy52YWx1ZT8ub2JqZWN0SWQgJiYgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQpzdGFydERlYnVnZ2VyKCkuY2F0Y2goKGVycm9yKSA9PiB7CiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gc3RhcnQgZGVidWdnZXI6IiwgZXJyb3IpOwogIH0KfSk7CnNldEludGVydmFsKCgpID0+IHsKfSwgMWU0KTsKZXhwb3J0IHsKICBwcm9jZXNzQ2FsbEZyYW1lcwp9Owo="),{workerData:{captureAllExceptions:process.env.SF_CAPTURE_ALL_EXCEPTIONS==="true"}});let g=null;const e=new WeakMap;I.on("message",async s=>{if(typeof s=="string"&&a.getConfig().sfDebug&&G(`[Worker] ${s}`),s.readyToGetParameters&&I.postMessage({sfDebug:a.getConfig().sfDebug,stackDepthLocals:a.getConfig().stackDepthLocals,nodeModulesToCollectLocalVariablesOn:a.getConfig().nodeModulesToCollectLocalVariablesOn}),s.type==="exception"){const{frames:c}=s,i=g;if(!i)return;const A=(function(o){return o?o.split(`
|
|
6
|
-
`).slice(1).map(d=>{const W=/at (.+?) \((.+):(\d+):(\d+)\)/.exec(d)||/at (.+):(\d+):(\d+)/.exec(d);if(W){const[,p,B,b,Z]=W;return new v({function:p||"<anonymous>",locals:{},file:B||"<unknown>",line:parseInt(b,10)||0,code:"<not captured>",column:parseInt(Z)||0})}return new v({function:"<unknown>",locals:{},file:"<unknown>",line:0,code:"<not captured>",column:0})}):[]})(k(i.stack)),f=(function(o,d){const W=[];let p=-1,B=-1;for(let b=0;b<o.length;b++){const Z=Bn(o[b].file);if(B=b,Z!=="<unknown>"){for(let u=0;u<d.length;u++){const y=d[u];if(nn(y,Z)||typeof y.file=="string"&&y.file.includes(Z)){p=u,X=0,a.getConfig().sfDebug&&G(`✅ Matched Frame Found: ${Z} @ Debugger Frame ${u}`);break}}if(p!==-1)break}}if(p===-1)return X===10?(X=0,o):(++X,a.getConfig().sfDebug&&G(`"❌ No matching frame found. Checking once again, Attempt N ${X}"`),[]);a.getConfig().sfDebug&&G(`🔄 Merging from matched index ${p} onward...`);for(let b=0;b<d.length;b++){const Z=o[B+b],u=d[p+b];W.push(new v({function:u?.function||Z?.function||"<anonymous>",locals:u?.locals||Z?.locals||{},file:Z?.file||u?.file||"<unknown>",line:u?.line||Z?.line||0,code:u?.code||Z?.code||"<not captured>"}))}return W})(A,c||[]);if(f.length!==0){g=null;const o=a.getConfig().stackDepthCodeTraceDepth,d=o===-1?f:f.slice(0,o+1),W=Math.min(d.length,A.length);await Promise.all(Array.from({length:W},async(Z,u)=>{const y=await(async function(en,Cn,cn){const V=(function(r){r.startsWith("at ")&&(r=r.slice(3).trim());const h=r.match(/^(.*?)(:\d+)+(\.map)?$/);return h?h[1]:r})(en);if(!V||V==="<unknown>")return null;const J=V+".map";try{let r=S.get(J);if(r===void 0){const K=await dn.readFile(J,"utf-8");r=K?JSON.parse(K):null,M(J,r)}if(!r)return null;let h=new rn.sourceMapExports.SourceMapConsumer(r).originalPositionFor({line:Cn,column:cn});if(V&&h.source){const K=P(V),O=r.sources.findIndex(R=>P(R)===K);if(O===-1)a.getConfig().sfDebug&&G(`Source file "${V}" not found in the source map.`);else{const R=r.sourcesContent[O],tn=r.names.join(",");if(R)return{content:R.split(`
|
|
7
|
-
`).slice(h.line-1,h.line+20).join(`
|
|
8
|
-
`),name:tn,file:h.source};a.getConfig().sfDebug&&G(`No source content available for file "${V}".`)}}return{content:r.sourcesContent[0],name:r.names[0],file:r.file}}catch(r){a.getConfig().sfDebug&&G(`Cant read/parse "${J}: Error - ".`,r),M(J,null)}return null})(d[u].file,A[u].line,A[u].column);y&&(y.content!=null&&(d[u].code=y.content),y.file!=null&&(d[u].file=y.file))})),n.setOperationName("CollectExceptions");const p=i.message?`${i.name}: ${i.message}`:i.name;a.getConfig().sfDebug&&G("error message is : ",p);const B=a.ContextManager.getInstance(),b=e.get(i);b?(B.setTraceIdFor(b,b),B.runWithSession(b,()=>{B.setTraceId(b),n.doSend(p,d)})):n.doSend(p,d)}}}),I.on("error",s=>{x("[Worker Error]",s)}),I.on("exit",s=>{x(`[Worker] Exited with code ${s}`)}),I.unref();const C=Error,t=new Set;function l(...s){const c=Reflect.construct(C,s);Reflect.setPrototypeOf(c,l.prototype);try{const A=a.ContextManager.getInstance().getTraceId();e.set(c,A)}catch{}C.captureStackTrace&&C.captureStackTrace(c,l);const i=`${c.message}:${k(c.stack).split(`
|
|
9
|
-
`)[1]?.trim()}`;if(!t.has(i)){if(t.add(i),t.size>1e3){const A=t.values().next().value;t.delete(A)}g=c,I.postMessage({type:"processException",error:c.message})}return c}l.prototype=Object.create(C.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf(l,C),globalThis.Error=l},exports.initializeLogInterceptor=function(n){function I(g,e){const C=a.getGlobalConfigUnsafe();if(C?.logIgnoreRegex&&C.logIgnoreRegex.test(e))return;const[t,l]=pn(2);n.setOperationName("CollectLogs"),n.doSend([e,g,t,l])}console.log=(...g)=>{if(m)E(...g);else{m=!0;try{I("INFO",w(g)),E(...g)}finally{m=!1}}},console.error=(...g)=>{if(m)T(...g);else{m=!0;try{I("ERROR",w(g)),T(...g)}finally{m=!1}}},console.warn=(...g)=>{if(m)D(...g);else{m=!0;try{I("WARN",w(g)),D(...g)}finally{m=!1}}},console.info=(...g)=>{if(m)Q(...g);else{m=!0;try{I("INFO",w(g)),Q(...g)}finally{m=!1}}},a.getConfig().logLevel==="DEBUG"&&(console.debug=(...g)=>{if(m)U(...g);else{m=!0;try{I("DEBUG",w(g)),U(...g)}finally{m=!1}}})},exports.internalError=x,exports.internalLog=G,exports.isProductionEnvironment=q,exports.isRuntimeModeEnabled=$,exports.serializeJsonWithExclusions=function(n){const I={},g=[];if(n)for(const[e,C]of Object.entries(n))mn(C)?I[e]=C:g.push(e);return{traitsJson:JSON.stringify(I),excludedFields:g}},exports.shouldEnableRuntimeHooks=function(){return!!$()&&(!q()||(console.warn("[FuncSpan Runtime] DISABLED in production environment"),!1))},exports.stackToString=k;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";const w=require("async_hooks"),B=require("fs"),v=require("worker_threads"),l=require("./contextManager-0D8uHQ1_.cjs");class M{apiKey;endpoint;queryType="mutation";operationName="";serviceUUID=l.getConfig().serviceUUID;contextManager;constructor(){this.apiKey=l.getConfig().apiKey,this.endpoint=l.getConfig().apiGraphqlEndpoint,this.contextManager=l.ContextManager.getInstance()}get queryName(){return this.operationName?this.operationName.charAt(0).toLowerCase()+this.operationName.slice(1):""}getDefaultVariables(){const t=Date.now().toString(),o=this.contextManager.getOrSetSfTraceId(),s=this.contextManager.getCurrentFunctionSpanId();return{apiKey:this.apiKey,serviceUuid:this.serviceUUID,sessionId:o,timestampMs:t,parentSpanId:s}}getVariables(t={}){return{...this.getDefaultVariables(),...t}}setOperationName(t){this.operationName=t}setEndpoint(t){this.endpoint=t}setServiceUUID(t){this.serviceUUID=t}}const K=fetch;let _=!1;async function P(n,t,o,s){try{const a=l.getConfig();let i;try{i=JSON.stringify({query:o,variables:s,operationName:t})}catch{i=JSON.stringify({query:o,operationName:t})}_=!0,K(n,{method:"POST",headers:{"Content-Type":"application/json"},body:i}).then(async e=>{if(_=!1,!e.ok)return void(a.sfDebug&&console.error(`GraphQL request failed with status ${e.status} for ${t}`));const r=await e.json();r.errors?.length?(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0;console.error(d==="identifyServiceDetails"?`IdentifyServiceDetails NOT sent successfully for service: UUID=${c.serviceUUID}`:`GraphQL request failed with errors: ${JSON.stringify(g)} for operation key ${d}`)})(r.data,r.errors,a):a.sfDebug&&(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0,p=u[d]||!1;d==="identifyServiceDetails"&&(c.setServiceIdentificationReceived(p),l.getConfig().sfDebug&&console.log(`IdentifyServiceDetails sent successfully for service: UUID=${c.serviceUUID}; serviceIdentificationReceived=${d==="identifyServiceDetails"?p:"N/A"}`))})(r.data,0,a)}).catch(e=>{_=!1,a.sfDebug&&(console.error(`[RequestUtils] Fetch error for ${t} to ${n}:`,e),e.cause&&console.error("[RequestUtils] Error cause:",e.cause))})}catch(a){_=!1,l.getConfig().sfDebug&&console.error("Error sending data to GraphQL server:",a)}}function N(n,t){if(!n)return t;const o=n.toLowerCase();return o==="true"||o==="1"||o==="yes"}const O="__sf_funcspanOverrideStorage";globalThis[O]||(globalThis[O]=new w.AsyncLocalStorage);const I=globalThis[O];function C(n,t){try{const o=JSON.stringify(n).length/1048576;return o<=t?n:{_truncated:!0,_originalSizeMB:o.toFixed(2),_limitMB:t,_preview:JSON.stringify(n).substring(0,500)+"..."}}catch{return{_error:"Failed to serialize data",_type:typeof n}}}function S(n,t){const o=process.env[n];return o===void 0?t:o==="true"||o==="1"}function E(n,t){const o=process.env[n];if(o===void 0)return t;const s=parseFloat(o);return isNaN(s)?t:s}function T(){return{enabled:S("SF_WORKER_POOL_ENABLED",!0),trackFs:S("SF_WORKER_POOL_TRACK_FS",!1),trackDns:S("SF_WORKER_POOL_TRACK_DNS",!1),trackCrypto:S("SF_WORKER_POOL_TRACK_CRYPTO",!1),trackZlib:S("SF_WORKER_POOL_TRACK_ZLIB",!1),captureArguments:S("SF_WORKER_POOL_CAPTURE_ARGUMENTS",!0),captureReturnValue:S("SF_WORKER_POOL_CAPTURE_RETURN_VALUE",!0),argLimitMb:E("SF_WORKER_POOL_ARG_LIMIT_MB",1),returnLimitMb:E("SF_WORKER_POOL_RETURN_LIMIT_MB",1)}}function D(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){const r={};switch(i){case"readFile":case"writeFile":case"appendFile":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"?(r.encoding=e[1].encoding||null,r.flag=e[1].flag||null):typeof e[1]=="string"&&(r.encoding=e[1]),i!=="writeFile"&&i!=="appendFile"||(Buffer.isBuffer(e[1])?(r.dataType="Buffer",r.dataSize=e[1].length):typeof e[1]=="string"&&(r.dataType="string",r.dataSize=e[1].length));break;case"readdir":case"stat":case"lstat":case"access":case"chmod":case"mkdir":case"rmdir":case"unlink":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"&&(r.options={...e[1]},delete r.options.callback);break;case"rename":r.oldPath=String(e[0]||""),r.newPath=String(e[1]||"");break;case"open":r.path=String(e[0]||""),r.flags=e[1],r.mode=e[2];break;case"close":case"fstat":r.fd=e[0];break;case"read":case"write":r.fd=e[0],Buffer.isBuffer(e[1])&&(r.bufferSize=e[1].length),r.offset=e[2],r.length=e[3],r.position=e[4];break;default:r.argsCount=e.length-1}return r})(t,o);break;case"dns":a=(function(i,e){const r={};switch(i){case"lookup":r.hostname=String(e[0]||""),typeof e[1]=="object"?(r.family=e[1].family,r.all=e[1].all):typeof e[1]=="number"&&(r.family=e[1]);break;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":r.hostname=String(e[0]||"");break;case"reverse":r.ip=String(e[0]||"");break;default:r.argsCount=e.length-1}return r})(t,o);break;case"crypto":a=(function(i,e){const r={};switch(i){case"pbkdf2":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.iterations=e[2],r.keylen=e[3],r.digest=e[4];break;case"scrypt":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.keylen=e[2],typeof e[3]=="object"&&(r.N=e[3].N,r.r=e[3].r,r.p=e[3].p);break;case"randomBytes":r.size=e[0];break;case"generateKeyPair":r.type=e[0],typeof e[1]=="object"&&(r.modulusLength=e[1].modulusLength,r.namedCurve=e[1].namedCurve);break;default:r.argsCount=e.length-1}return r})(t,o);break;case"zlib":a=(function(i,e){const r={};return Buffer.isBuffer(e[0])?(r.inputType="Buffer",r.inputSize=e[0].length):typeof e[0]=="string"?(r.inputType="string",r.inputSize=e[0].length):r.inputType=typeof e[0],e[1]&&typeof e[1]=="object"&&typeof e[1]!="function"&&(r.options={...e[1]}),r})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture arguments",argsCount:o.length-1}}}function L(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){if(!e)return null;switch(i){case"readFile":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e};case"readdir":return{count:Array.isArray(e)?e.length:0,items:e};case"stat":case"lstat":case"fstat":return{size:e.size,mode:e.mode,isFile:e.isFile(),isDirectory:e.isDirectory()};case"open":return{fd:e};case"read":return{bytesRead:e};case"write":return{bytesWritten:e};default:return e}})(t,o);break;case"dns":a=(function(i,e){if(!e)return null;switch(i){case"lookup":return Array.isArray(e)?{count:e.length,addresses:e}:e;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":return{count:Array.isArray(e)?e.length:0,records:e};case"reverse":return{hostnames:e};default:return e}})(t,o);break;case"crypto":a=(function(i,e){if(!e)return null;switch(i){case"pbkdf2":case"scrypt":case"randomBytes":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:{type:typeof e};case"generateKeyPair":return{hasPublicKey:!!e?.publicKey,hasPrivateKey:!!e?.privateKey};default:return e}})(t,o);break;case"zlib":a=(function(i,e){return e?Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e}:null})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture result",type:typeof o}}}function V(n){return n.operationType==="worker_pool"}class W extends M{constructor(){super(),this.operationName="CollectFunctionSpans"}send(t){const o=l.getConfig().sfDebug;o&&console.log(`[FunctionSpanTransmitter] Preparing to send ${t.length} function span(s)`);for(const s of t)try{if(V(s)){this.sendWorkerPoolSpan(s,o);continue}const a=s;let i;if(a.result!==void 0&&a.result!==null){const r=typeof a.result;i=JSON.stringify({type:r,has_value:!0,value:a.result})}else i=a.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const e=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:a.spanId,parentSpanId:a.parentSpanId,filePath:a.filePath,lineNumber:a.metadata.line,columnNumber:a.metadata.column,functionName:a.functionName,arguments:JSON.stringify(a.args||{}),returnValue:i,startTimeNs:(1e6*Date.now()-1e6*a.duration).toString(),durationNs:(1e6*a.duration).toString()});o&&(console.log(`[FunctionSpanTransmitter] Sending GraphQL mutation to ${this.endpoint}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(e,null,2))),P(this.endpoint,this.operationName,this.getQuery(),e),o&&console.log(`[FunctionSpanTransmitter] Queued function span for ${a.functionName}`)}catch(a){console.error(`[FunctionSpanTransmitter] Error preparing function span for ${s.functionName}:`,a)}}sendWorkerPoolSpan(t,o){try{let s;if(t.result!==void 0&&t.result!==null){const i=typeof t.result;s=JSON.stringify({type:i,has_value:!0,value:t.result})}else s=t.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const a=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:t.spanId,operationName:t.operationName,moduleName:t.moduleName,methodName:t.methodName,startTimeNs:t.startTimeNs,durationNs:t.durationNs,arguments:JSON.stringify(t.args||{}),returnValue:s,error:t.error,pid:t.pid,threadId:t.threadId});o&&(console.log(`[FunctionSpanTransmitter] Sending worker pool span: ${t.operationName}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(a,null,2))),P(this.endpoint,"CollectWorkerPoolSpans",this.getWorkerPoolQuery(),a),o&&console.log(`[FunctionSpanTransmitter] Queued worker pool span for ${t.operationName}`)}catch(s){console.error(`[FunctionSpanTransmitter] Error preparing worker pool span for ${t.operationName}:`,s)}}getWorkerPoolQuery(){return`
|
|
2
|
-
mutation CollectWorkerPoolSpans(
|
|
3
|
-
$apiKey: String!,
|
|
4
|
-
$serviceUuid: String!,
|
|
5
|
-
$sessionId: String!,
|
|
6
|
-
$timestampMs: String!,
|
|
7
|
-
$library: String!,
|
|
8
|
-
$version: String!,
|
|
9
|
-
$spanId: String!,
|
|
10
|
-
$operationName: String!,
|
|
11
|
-
$moduleName: String!,
|
|
12
|
-
$methodName: String!,
|
|
13
|
-
$startTimeNs: String!,
|
|
14
|
-
$durationNs: String!,
|
|
15
|
-
$parentSpanId: String,
|
|
16
|
-
$arguments: String,
|
|
17
|
-
$returnValue: String,
|
|
18
|
-
$error: String,
|
|
19
|
-
$pid: Int,
|
|
20
|
-
$threadId: Int
|
|
21
|
-
) {
|
|
22
|
-
collectWorkerPoolSpans(
|
|
23
|
-
apiKey: $apiKey,
|
|
24
|
-
serviceUuid: $serviceUuid,
|
|
25
|
-
sessionId: $sessionId,
|
|
26
|
-
timestampMs: $timestampMs,
|
|
27
|
-
library: $library,
|
|
28
|
-
version: $version,
|
|
29
|
-
spanId: $spanId,
|
|
30
|
-
operationName: $operationName,
|
|
31
|
-
moduleName: $moduleName,
|
|
32
|
-
methodName: $methodName,
|
|
33
|
-
startTimeNs: $startTimeNs,
|
|
34
|
-
durationNs: $durationNs,
|
|
35
|
-
parentSpanId: $parentSpanId,
|
|
36
|
-
arguments: $arguments,
|
|
37
|
-
returnValue: $returnValue,
|
|
38
|
-
error: $error,
|
|
39
|
-
pid: $pid,
|
|
40
|
-
threadId: $threadId
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
`}getQuery(){return`
|
|
44
|
-
${this.queryType} ${this.operationName}(
|
|
45
|
-
$apiKey: String!,
|
|
46
|
-
$serviceUuid: String!,
|
|
47
|
-
$sessionId: String!,
|
|
48
|
-
$timestampMs: String!,
|
|
49
|
-
$parentSpanId: String,
|
|
50
|
-
$library: String!,
|
|
51
|
-
$version: String!,
|
|
52
|
-
$spanId: String!,
|
|
53
|
-
$filePath: String!,
|
|
54
|
-
$lineNumber: Int!,
|
|
55
|
-
$columnNumber: Int!,
|
|
56
|
-
$functionName: String!,
|
|
57
|
-
$arguments: String!,
|
|
58
|
-
$returnValue: String,
|
|
59
|
-
$startTimeNs: String!,
|
|
60
|
-
$durationNs: String!
|
|
61
|
-
) {
|
|
62
|
-
${this.queryName}(
|
|
63
|
-
apiKey: $apiKey,
|
|
64
|
-
serviceUuid: $serviceUuid,
|
|
65
|
-
sessionId: $sessionId,
|
|
66
|
-
timestampMs: $timestampMs,
|
|
67
|
-
parentSpanId: $parentSpanId,
|
|
68
|
-
library: $library,
|
|
69
|
-
version: $version,
|
|
70
|
-
spanId: $spanId,
|
|
71
|
-
filePath: $filePath,
|
|
72
|
-
lineNumber: $lineNumber,
|
|
73
|
-
columnNumber: $columnNumber,
|
|
74
|
-
functionName: $functionName,
|
|
75
|
-
arguments: $arguments,
|
|
76
|
-
returnValue: $returnValue,
|
|
77
|
-
startTimeNs: $startTimeNs,
|
|
78
|
-
durationNs: $durationNs
|
|
79
|
-
)
|
|
80
|
-
}
|
|
81
|
-
`}}let F=null;function k(n){const t=l.getGlobalConfigUnsafe(),o=t?.sfDebug||!1;o&&console.log("[WorkerPool] Capturing span:",{operation:n.operationName,duration:`${n.duration}ms`,error:n.error,spanId:n.spanId,parentSpanId:n.parentSpanId}),process.env.SF_FUNCSPAN_CONSOLE_OUTPUT==="true"&&console.log(`
|
|
82
|
-
⚙️ Worker Pool Operation:`,{operation:n.operationName,duration:`${n.duration.toFixed(2)}ms`,arguments:n.args,result:n.error?`Error: ${n.error}`:n.result,spanId:n.spanId,parentSpanId:n.parentSpanId||"none"});const s=process.env.SF_FUNCSPAN_JSONL_FILE;if(s)try{const a=s==="true"||s==="1"?"funcspans.jsonl":s,i=Date.now(),e=process.hrtime.bigint(),r=BigInt(n.startTimeNs),u=Number(e-r)/1e6,g=new Date(i-u).toISOString(),c=JSON.stringify({timestamp:g,operationType:n.operationType,operationName:n.operationName,moduleName:n.moduleName,methodName:n.methodName,duration:n.duration,durationNs:n.durationNs,startTimeNs:n.startTimeNs,arguments:n.args,returnValue:n.error?{error:String(n.error)}:n.result,spanId:n.spanId,parentSpanId:n.parentSpanId,pid:n.pid,threadId:n.threadId})+`
|
|
83
|
-
`;B.appendFileSync(a,c,"utf-8")}catch(a){console.error("[WorkerPool] Error writing to JSONL file:",a)}if(o&&console.log("[WorkerPool] Sending span to transmitter"),process.env.SF_FUNCSPAN_SKIP_BACKEND!=="true")try{(F||(F=new W),F).send([n]),o&&console.log("[WorkerPool] Span sent successfully")}catch(a){o&&console.error("[WorkerPool] Error sending span:",a)}}exports.BaseTransmitter=M,exports.FunctionSpanTransmitter=W,exports.captureWorkerPoolOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t}`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=new w.AsyncResource("WorkerPoolOperation"),d=process.hrtime.bigint();let p=null;r.captureArguments&&(p=D(n,t,s,r.argLimitMb));const f=s.findIndex(y=>typeof y=="function");if(f===-1)return e&&console.log(`[WorkerPool] No callback found for ${n}.${t}`),o.apply(a,s);const m=s[f],h=[...s];return h[f]=function(y,...$){const b=process.hrtime.bigint()-d,A=Number(b)/1e6;m(y,...$),c.runInAsyncScope(()=>{e&&console.log(`[WorkerPool] ${n}.${t} completed in ${A.toFixed(3)}ms (${b}ns)`);let U=null,R=null;y?R=y?.message||String(y):r.captureReturnValue&&$.length>0&&(U=L(n,t,$[0],r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:A,durationNs:b.toString(),startTimeNs:d.toString(),args:p,result:U,error:R,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId})}),c.emitDestroy()},o.apply(a,h)},exports.captureWorkerPoolPromiseOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t} (Promise)`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=process.hrtime.bigint();let d=null;return r.captureArguments&&(d=D(n,t,s,r.argLimitMb)),o.apply(a,s).then(p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;e&&console.log(`[WorkerPool] ${n}.${t} completed in ${m.toFixed(3)}ms (${f}ns)`);let h=null;return r.captureReturnValue&&(h=L(n,t,p,r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:h,error:null,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p},p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;throw e&&console.log(`[WorkerPool] ${n}.${t} failed in ${m.toFixed(3)}ms: ${p?.message||p}`),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:null,error:p?.message||String(p),spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p})},exports.clearFuncspanOverride=function(){},exports.funcspanOverrideStorage=I,exports.getDefaultConfig=function(){return{capture_arguments:!1,capture_return_value:!1,arg_limit_mb:1,return_limit_mb:1,autocapture_all_child_functions:!1,sample_rate:0,enable_sampling:!1,capture_sf_veritas:!1,parse_json_strings:!1}},exports.getEnvConfig=function(){return{capture_arguments:N(process.env.SF_FUNCSPAN_CAPTURE_ARGUMENTS,!0),capture_return_value:N(process.env.SF_FUNCSPAN_CAPTURE_RETURN_VALUE,!0),arg_limit_mb:parseInt(process.env.SF_FUNCSPAN_ARG_LIMIT_MB||"1",10),return_limit_mb:parseInt(process.env.SF_FUNCSPAN_RETURN_LIMIT_MB||"1",10),autocapture_all_child_functions:N(process.env.SF_FUNCSPAN_AUTOCAPTURE_ALL_CHILD_FUNCTIONS,!1),sample_rate:parseFloat(process.env.SF_FUNCSPAN_SAMPLE_RATE||"1.0"),enable_sampling:N(process.env.SF_FUNCSPAN_ENABLE_SAMPLING,!1),capture_sf_veritas:N(process.env.SF_FUNCSPAN_CAPTURE_SF_VERITAS,!1),parse_json_strings:N(process.env.SF_FUNCSPAN_PARSE_JSON_STRINGS,!1)}},exports.getFuncspanOverride=function(){return I.getStore()},exports.isModuleTrackingEnabled=function(n){const t=T();if(!t.enabled)return!1;switch(n){case"fs":return t.trackFs;case"dns":return t.trackDns;case"crypto":return t.trackCrypto;case"zlib":return t.trackZlib;default:return!1}},exports.isSendingInternalTelemetry=function(){return _},exports.mergeConfigs=function(...n){const t={};for(const o of n)for(const s in o)o[s]!==void 0&&(t[s]=o[s]);return t},exports.nonBlockingPost=P,exports.parseHeaderOverride=function(n){try{const t=n.split("-");return t.length!==9?(console.error(`[FuncSpan] Invalid header format: expected 9 parts, got ${t.length}`),null):{capture_arguments:t[0]==="1",capture_return_value:t[1]==="1",arg_limit_mb:parseInt(t[2],10),return_limit_mb:parseInt(t[3],10),autocapture_all_child_functions:t[4]==="1",sample_rate:parseFloat(t[5]),enable_sampling:t[6]==="1",capture_sf_veritas:t[7]==="1",parse_json_strings:t[8]==="1"}}catch(t){return console.error(`[FuncSpan] Failed to parse header override "${n}":`,t),null}},exports.setFuncspanOverride=function(n){I.enterWith(n)},exports.truncateToLimit=C;
|