@sailfish-ai/sf-veritas 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +1,32 @@
1
- var mn = Object.defineProperty;
2
- var Zn = (n, I, C) => I in n ? mn(n, I, { enumerable: !0, configurable: !0, writable: !0, value: C }) : n[I] = C;
3
- var Y = (n, I, C) => Zn(n, typeof I != "symbol" ? I + "" : I, C);
4
- import * as fn from "fs/promises";
5
- import pn from "http";
6
- import Wn from "https";
7
- import Gn from "os";
8
- import { s as yn } from "./source-map-Cr6YkjTd.js";
9
- import { Worker as Bn } from "worker_threads";
10
- import { g as m, a as Yn, C as U } from "./contextManager-RxrMXs5c.js";
11
- import { resolve as Vn } from "path";
12
- function P(n) {
13
- return typeof n == "string" ? n : n == null ? "" : Array.isArray(n) ? n.map((I) => String(I)).join(`
14
- `) : String(n);
1
+ var bI = Object.defineProperty;
2
+ var aI = (I, n, e) => n in I ? bI(I, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : I[n] = e;
3
+ var Y = (I, n, e) => aI(I, typeof n != "symbol" ? n + "" : n, e);
4
+ import * as dI from "fs/promises";
5
+ import mI from "http";
6
+ import ZI from "https";
7
+ import fI from "os";
8
+ import { s as WI } from "./source-map-Cr6YkjTd.js";
9
+ import { Worker as pI } from "worker_threads";
10
+ import { g as d, a as GI, C as Q } from "./contextManager-CZy0w11U.js";
11
+ import { resolve as yI } from "path";
12
+ function BI(I) {
13
+ return typeof I == "string" ? I : I == null ? "" : Array.isArray(I) ? I.map((n) => String(n)).join(`
14
+ `) : String(I);
15
15
  }
16
- function hn(n) {
16
+ function YI(I) {
17
17
  try {
18
- return JSON.stringify(n), !0;
18
+ return JSON.stringify(I), !0;
19
19
  } catch {
20
20
  return !1;
21
21
  }
22
22
  }
23
- function jn(n) {
24
- const I = {}, C = [];
25
- if (n) for (const [g, e] of Object.entries(n)) hn(e) ? I[g] = e : C.push(g);
26
- return { traitsJson: JSON.stringify(I), excludedFields: C };
23
+ function TI(I) {
24
+ const n = {}, e = [];
25
+ if (I) for (const [t, c] of Object.entries(I)) YI(c) ? n[t] = c : e.push(t);
26
+ return { traitsJson: JSON.stringify(n), excludedFields: e };
27
27
  }
28
- class R {
29
- constructor({ file: I, line: C, function: g, code: e, locals: i = {}, offender: t = !1, column: c }) {
28
+ class v {
29
+ constructor({ file: n, line: e, function: t, code: c, locals: l = {}, offender: g = !1, column: i }) {
30
30
  Y(this, "file");
31
31
  Y(this, "line");
32
32
  Y(this, "function");
@@ -34,452 +34,441 @@ class R {
34
34
  Y(this, "locals");
35
35
  Y(this, "offender");
36
36
  Y(this, "column");
37
- this.file = I, this.line = C, this.function = g, this.code = e, this.locals = i, this.offender = t, this.column = c;
37
+ this.file = n, this.line = e, this.function = t, this.code = c, this.locals = l, this.offender = g, this.column = i;
38
38
  }
39
39
  toDict() {
40
- const I = { file: this.file, line: this.line, function: this.function, code: this.code, locals: Object.fromEntries(Object.entries(this.locals).map(([C, g]) => [C, String(g)])) };
41
- return this.offender && (I.offender = this.offender), this.column !== void 0 && (I.column = this.column), I;
40
+ const n = { file: this.file, line: this.line, function: this.function, code: this.code, locals: Object.fromEntries(Object.entries(this.locals).map(([e, t]) => [e, String(t)])) };
41
+ return this.offender && (n.offender = this.offender), this.column !== void 0 && (n.column = this.column), n;
42
42
  }
43
43
  toJson() {
44
44
  return JSON.stringify(this.toDict());
45
45
  }
46
46
  }
47
- class E {
48
- static encode(I) {
49
- return I instanceof R ? I.toDict() : Array.isArray(I) ? I.map((C) => E.encode(C)) : typeof I == "object" && I !== null ? JSON.stringify(I) : I;
47
+ class T {
48
+ static encode(n) {
49
+ return n instanceof v ? n.toDict() : Array.isArray(n) ? n.map((e) => T.encode(e)) : typeof n == "object" && n !== null ? JSON.stringify(n) : n;
50
50
  }
51
- static stringify(I) {
52
- return JSON.stringify(E.encode(I), (C, g) => g instanceof R ? g.toDict() : g);
51
+ static stringify(n) {
52
+ return JSON.stringify(T.encode(n), (e, t) => t instanceof v ? t.toDict() : t);
53
53
  }
54
54
  }
55
- const J = process.env.SF_LOG_LOCATION || "auto";
56
- let z = null, M = !1;
57
- const Cn = "__sf:", ln = Error.prepareStackTrace, _ = ["/sf-veritas/", "/@sailfish-ai/", "/node_modules/", "/dist/", "/<", "/internal/", "node:"];
58
- function Nn(n) {
59
- for (let I = 0; I < _.length; I++) if (n.includes(_[I])) return !0;
55
+ const H = process.env.SF_LOG_LOCATION || "auto";
56
+ let k = null, U = !1;
57
+ const cI = "__sf:", CI = Error.prepareStackTrace, P = ["/sf-veritas/", "/@sailfish-ai/", "/node_modules/", "/dist/", "/<", "/internal/", "node:"];
58
+ function VI(I) {
59
+ for (let n = 0; n < P.length; n++) if (I.includes(P[n])) return !0;
60
60
  return !1;
61
61
  }
62
- function j(n) {
63
- let I = n;
64
- I.startsWith("file://") && (I = I.substring(7)), process.platform === "win32" && I.startsWith("/") && I.length > 2 && I[2] === ":" && (I = I.substring(1));
62
+ function j(I) {
63
+ let n = I;
64
+ n.startsWith("file://") && (n = n.substring(7)), process.platform === "win32" && n.startsWith("/") && n.length > 2 && n[2] === ":" && (n = n.substring(1));
65
65
  try {
66
- return Vn(I);
66
+ return yI(n);
67
67
  } catch {
68
- return n;
68
+ return I;
69
69
  }
70
70
  }
71
- const Hn = process.env.SF_LOG_LOCATION_WALK_FRAMES === "true";
72
- function $(n) {
73
- const I = Error.stackTraceLimit;
74
- Error.stackTraceLimit = 8, Error.prepareStackTrace = (i, t) => t;
75
- const C = {};
76
- Error.captureStackTrace(C, n);
77
- const g = C.stack;
78
- if (Error.prepareStackTrace = ln, Error.stackTraceLimit = I, !g || g.length === 0) return [null, null];
79
- for (let i = 0; i < g.length; i++) {
80
- const t = g[i].getFileName();
81
- if (t && !Nn(t)) return [j(t), g[i].getLineNumber()];
71
+ const hI = process.env.SF_LOG_LOCATION_WALK_FRAMES === "true";
72
+ function M(I) {
73
+ const n = Error.stackTraceLimit;
74
+ Error.stackTraceLimit = 8, Error.prepareStackTrace = (l, g) => g;
75
+ const e = {};
76
+ Error.captureStackTrace(e, I);
77
+ const t = e.stack;
78
+ if (Error.prepareStackTrace = CI, Error.stackTraceLimit = n, !t || t.length === 0) return [null, null];
79
+ for (let l = 0; l < t.length; l++) {
80
+ const g = t[l].getFileName();
81
+ if (g && !VI(g)) return [j(g), t[l].getLineNumber()];
82
82
  }
83
- const e = g[0].getFileName();
84
- return e ? [j(e), g[0].getLineNumber()] : [null, null];
83
+ const c = t[0].getFileName();
84
+ return c ? [j(c), t[0].getLineNumber()] : [null, null];
85
85
  }
86
- function on(n, I, C) {
87
- if (J === "off") return [null, null];
88
- if (C && (J === "auto" || J === "build-inject")) {
89
- const [g, e, i] = (function(t) {
90
- if (t.length === 0) return [null, null, !1];
91
- const c = t[t.length - 1];
92
- if (typeof c != "string" || !c.startsWith(Cn)) return [null, null, !1];
93
- const l = c.lastIndexOf(":");
94
- if (l <= 5) return [null, null, !1];
95
- const o = c.substring(5, l), s = parseInt(c.substring(l + 1), 10);
96
- return isNaN(s) ? [null, null, !1] : [o, s, !0];
97
- })(C);
98
- if (i) return [g, e];
99
- if (J === "build-inject") return [null, null];
86
+ function eI(I, n, e) {
87
+ if (H === "off") return [null, null];
88
+ if (e && (H === "auto" || H === "build-inject")) {
89
+ const [t, c, l] = (function(g) {
90
+ if (g.length === 0) return [null, null, !1];
91
+ const i = g[g.length - 1];
92
+ if (typeof i != "string" || !i.startsWith(cI)) return [null, null, !1];
93
+ const C = i.lastIndexOf(":");
94
+ if (C <= 5) return [null, null, !1];
95
+ const s = i.substring(5, C), m = parseInt(i.substring(C + 1), 10);
96
+ return isNaN(m) ? [null, null, !1] : [s, m, !0];
97
+ })(e);
98
+ if (l) return [t, c];
99
+ if (H === "build-inject") return [null, null];
100
100
  }
101
- if (J === "native") {
102
- const g = (function() {
103
- if (M) return z;
104
- M = !0;
101
+ if (H === "native") {
102
+ const t = (function() {
103
+ if (U) return k;
104
+ U = !0;
105
105
  try {
106
- const e = require("../native/build/Release/sf_source_location.node");
107
- typeof e?.getCallerLocation == "function" && (z = e);
106
+ const c = require("../native/build/Release/sf_source_location.node");
107
+ typeof c?.getCallerLocation == "function" && (k = c);
108
108
  } catch {
109
109
  }
110
- return z;
110
+ return k;
111
111
  })();
112
- if (g) {
113
- const [e, i] = g.getCallerLocation(n ?? 2);
114
- if (e) return [e, i];
112
+ if (t) {
113
+ const [c, l] = t.getCallerLocation(I ?? 2);
114
+ if (c) return [c, l];
115
115
  }
116
- if (J === "native" && z) return [null, null];
116
+ if (H === "native" && k) return [null, null];
117
117
  }
118
- return I ? Hn ? $(I) : (function(g) {
119
- const e = Error.stackTraceLimit;
120
- Error.stackTraceLimit = 1, Error.prepareStackTrace = (o, s) => s;
121
- const i = {};
122
- Error.captureStackTrace(i, g);
123
- const t = i.stack;
124
- if (Error.prepareStackTrace = ln, Error.stackTraceLimit = e, !t || t.length === 0) return [null, null];
125
- const c = t[0], l = c.getFileName();
126
- return l ? [j(l), c.getLineNumber()] : [null, null];
127
- })(I) : $(on);
118
+ return n ? hI ? M(n) : (function(t) {
119
+ const c = Error.stackTraceLimit;
120
+ Error.stackTraceLimit = 1, Error.prepareStackTrace = (s, m) => m;
121
+ const l = {};
122
+ Error.captureStackTrace(l, t);
123
+ const g = l.stack;
124
+ if (Error.prepareStackTrace = CI, Error.stackTraceLimit = c, !g || g.length === 0) return [null, null];
125
+ const i = g[0], C = i.getFileName();
126
+ return C ? [j(C), i.getLineNumber()] : [null, null];
127
+ })(n) : M(eI);
128
128
  }
129
- function W(n) {
130
- if (n.length === 0) return n;
131
- const I = n[n.length - 1];
132
- return typeof I == "string" && I.startsWith(Cn) ? n.slice(0, -1) : n;
129
+ function p(I) {
130
+ if (I.length === 0) return I;
131
+ const n = I[I.length - 1];
132
+ return typeof n == "string" && n.startsWith(cI) ? I.slice(0, -1) : I;
133
133
  }
134
- const O = console.log.bind(console), D = console.error.bind(console), q = console.warn.bind(console), nn = console.info.bind(console), In = console.debug.bind(console), y = O, gn = D;
135
- let a = !1;
136
- const L = 8192;
137
- function Jn(n) {
138
- if (n === null) return "null";
139
- if (n === void 0) return "undefined";
140
- const I = typeof n;
141
- if (I === "string") return n;
142
- if (I === "number" || I === "boolean") return String(n);
143
- if (I === "bigint") return n.toString() + "n";
144
- if (I === "symbol") return n.toString();
145
- if (I === "function") return `[Function: ${n.name || "anonymous"}]`;
146
- if (n instanceof Error) return n.stack || `${n.name}: ${n.message}`;
134
+ const E = console.log.bind(console), O = console.error.bind(console), _ = console.warn.bind(console), $ = console.info.bind(console), q = console.debug.bind(console), y = E, II = O;
135
+ let b = !1;
136
+ const z = 8192;
137
+ function NI(I) {
138
+ if (I === null) return "null";
139
+ if (I === void 0) return "undefined";
140
+ const n = typeof I;
141
+ if (n === "string") return I;
142
+ if (n === "number" || n === "boolean") return String(I);
143
+ if (n === "bigint") return I.toString() + "n";
144
+ if (n === "symbol") return I.toString();
145
+ if (n === "function") return `[Function: ${I.name || "anonymous"}]`;
146
+ if (I instanceof Error) return I.stack || `${I.name}: ${I.message}`;
147
147
  try {
148
- const C = /* @__PURE__ */ new WeakSet(), g = [], e = /* @__PURE__ */ new Map(), i = JSON.stringify(n, function(c, l) {
149
- if (typeof l == "bigint") return l.toString() + "n";
150
- if (typeof l == "function") return `[Function: ${l.name || "anonymous"}]`;
151
- if (typeof l == "symbol") return l.toString();
152
- if (l === void 0) return "[undefined]";
153
- if (c !== "" && e.has(this)) {
154
- const o = e.get(this);
155
- if (o >= 20) return;
156
- e.set(this, o + 1);
148
+ const e = /* @__PURE__ */ new WeakSet(), t = [], c = /* @__PURE__ */ new Map(), l = JSON.stringify(I, function(i, C) {
149
+ if (typeof C == "bigint") return C.toString() + "n";
150
+ if (typeof C == "function") return `[Function: ${C.name || "anonymous"}]`;
151
+ if (typeof C == "symbol") return C.toString();
152
+ if (C === void 0) return "[undefined]";
153
+ if (i !== "" && c.has(this)) {
154
+ const s = c.get(this);
155
+ if (s >= 20) return;
156
+ c.set(this, s + 1);
157
157
  }
158
- if (l !== null && typeof l == "object") {
159
- if (C.has(l)) return "[Circular]";
160
- for (; g.length > 0 && g[g.length - 1] !== this; ) g.pop();
161
- if (g.length >= 3) return Array.isArray(l) ? `[Array(${l.length})]` : "[Object]";
162
- C.add(l), g.push(l), !Array.isArray(l) && Object.keys(l).length > 20 && e.set(l, 0);
158
+ if (C !== null && typeof C == "object") {
159
+ if (e.has(C)) return "[Circular]";
160
+ for (; t.length > 0 && t[t.length - 1] !== this; ) t.pop();
161
+ if (t.length >= 3) return Array.isArray(C) ? `[Array(${C.length})]` : "[Object]";
162
+ e.add(C), t.push(C), !Array.isArray(C) && Object.keys(C).length > 20 && c.set(C, 0);
163
163
  }
164
- return l;
164
+ return C;
165
165
  });
166
- if (i === void 0) return String(n);
167
- let t = i;
168
- if (e.size > 0 && !Array.isArray(n) && e.has(n)) {
169
- const c = Object.keys(n).length;
170
- t = t.slice(0, -1) + `,"...":"${c - 20} more keys"}`;
166
+ if (l === void 0) return String(I);
167
+ let g = l;
168
+ if (c.size > 0 && !Array.isArray(I) && c.has(I)) {
169
+ const i = Object.keys(I).length;
170
+ g = g.slice(0, -1) + `,"...":"${i - 20} more keys"}`;
171
171
  }
172
- return t.length > 500 ? t.substring(0, 500) + "...[truncated]" : t;
172
+ return g.length > 500 ? g.substring(0, 500) + "...[truncated]" : g;
173
173
  } catch {
174
- return String(n);
174
+ return String(I);
175
175
  }
176
176
  }
177
- function S(n) {
178
- if (n.length === 0) return "";
179
- if (n.length === 1 && typeof n[0] == "string") {
180
- const g = n[0];
181
- return g.length > L ? g.substring(0, L) + "...[truncated]" : g;
177
+ function X(I) {
178
+ if (I.length === 0) return "";
179
+ if (I.length === 1 && typeof I[0] == "string") {
180
+ const t = I[0];
181
+ return t.length > z ? t.substring(0, z) + "...[truncated]" : t;
182
182
  }
183
- let I, C = !0;
184
- for (let g = 0; g < n.length; g++) {
185
- const e = typeof n[g];
186
- if (e === "object" && n[g] !== null || e === "function" || e === "symbol") {
187
- C = !1;
183
+ let n, e = !0;
184
+ for (let t = 0; t < I.length; t++) {
185
+ const c = typeof I[t];
186
+ if (c === "object" && I[t] !== null || c === "function" || c === "symbol") {
187
+ e = !1;
188
188
  break;
189
189
  }
190
190
  }
191
- if (C) {
192
- const g = new Array(n.length);
193
- for (let e = 0; e < n.length; e++) {
194
- const i = n[e];
195
- g[e] = i === null ? "null" : i === void 0 ? "undefined" : typeof i == "string" ? i : String(i);
191
+ if (e) {
192
+ const t = new Array(I.length);
193
+ for (let c = 0; c < I.length; c++) {
194
+ const l = I[c];
195
+ t[c] = l === null ? "null" : l === void 0 ? "undefined" : typeof l == "string" ? l : String(l);
196
196
  }
197
- I = g.join(" ");
198
- } else I = n.map(Jn).join(" ");
199
- return I.length > L ? I.substring(0, L) + "...[truncated]" : I;
197
+ n = t.join(" ");
198
+ } else n = I.map(NI).join(" ");
199
+ return n.length > z ? n.substring(0, z) + "...[truncated]" : n;
200
200
  }
201
- function On(n) {
202
- function I(t, c, l, o) {
203
- const s = Yn();
204
- if (s?.logIgnoreRegex && s.logIgnoreRegex.test(c)) return;
205
- const [h, d] = on(2, l, o);
206
- n.setOperationName("CollectLogs"), n.doSend([c, t, h, d]);
201
+ function jI(I) {
202
+ function n(g, i, C, s) {
203
+ const m = GI();
204
+ if (m?.logIgnoreRegex && m.logIgnoreRegex.test(i)) return;
205
+ const [a, A] = eI(2, C, s);
206
+ I.setOperationName("CollectLogs"), I.doSend([i, g, a, A]);
207
207
  }
208
- const C = console.log = (...t) => {
209
- if (a) O(...W(t));
208
+ const e = console.log = (...g) => {
209
+ if (b) E(...p(g));
210
210
  else {
211
- a = !0;
211
+ b = !0;
212
212
  try {
213
- const c = W(t);
214
- I("INFO", S(c), C, t), O(...c);
213
+ const i = p(g);
214
+ n("INFO", X(i), e, g), E(...i);
215
215
  } finally {
216
- a = !1;
216
+ b = !1;
217
217
  }
218
218
  }
219
- }, g = console.error = (...t) => {
220
- if (a) D(...W(t));
219
+ }, t = console.error = (...g) => {
220
+ if (b) O(...p(g));
221
221
  else {
222
- a = !0;
222
+ b = !0;
223
223
  try {
224
- const c = W(t);
225
- I("ERROR", S(c), g, t), D(...c);
224
+ const i = p(g);
225
+ n("ERROR", X(i), t, g), O(...i);
226
226
  } finally {
227
- a = !1;
227
+ b = !1;
228
228
  }
229
229
  }
230
- }, e = console.warn = (...t) => {
231
- if (a) q(...W(t));
230
+ }, c = console.warn = (...g) => {
231
+ if (b) _(...p(g));
232
232
  else {
233
- a = !0;
233
+ b = !0;
234
234
  try {
235
- const c = W(t);
236
- I("WARN", S(c), e, t), q(...c);
235
+ const i = p(g);
236
+ n("WARN", X(i), c, g), _(...i);
237
237
  } finally {
238
- a = !1;
238
+ b = !1;
239
239
  }
240
240
  }
241
- }, i = console.info = (...t) => {
242
- if (a) nn(...W(t));
241
+ }, l = console.info = (...g) => {
242
+ if (b) $(...p(g));
243
243
  else {
244
- a = !0;
244
+ b = !0;
245
245
  try {
246
- const c = W(t);
247
- I("INFO", S(c), i, t), nn(...c);
246
+ const i = p(g);
247
+ n("INFO", X(i), l, g), $(...i);
248
248
  } finally {
249
- a = !1;
249
+ b = !1;
250
250
  }
251
251
  }
252
252
  };
253
- if (m().logLevel === "DEBUG") {
254
- const t = console.debug = (...c) => {
255
- if (a) In(...W(c));
253
+ if (d().logLevel === "DEBUG") {
254
+ const g = console.debug = (...i) => {
255
+ if (b) q(...p(i));
256
256
  else {
257
- a = !0;
257
+ b = !0;
258
258
  try {
259
- const l = W(c);
260
- I("DEBUG", S(l), t, c), In(...l);
259
+ const C = p(i);
260
+ n("DEBUG", X(C), g, i), q(...C);
261
261
  } finally {
262
- a = !1;
262
+ b = !1;
263
263
  }
264
264
  }
265
265
  };
266
266
  }
267
267
  }
268
- let v = 0;
269
- function Dn(n) {
270
- m().sfDebug && y("Initializing Exception Interceptor...");
268
+ let S = 0;
269
+ function EI(I) {
270
+ d().sfDebug && y("Initializing Exception Interceptor...");
271
271
  try {
272
- const c = rn();
273
- n?.setSupplementalFields?.({ isFromLocalService: c }), (async function(l) {
274
- if (cn) return;
275
- cn = !0;
276
- const o = process.env || {};
277
- if (An(o.SF_IS_LOCAL) === void 0)
272
+ const g = oI();
273
+ I?.setSupplementalFields?.({ isFromLocalService: g }), (async function(i) {
274
+ if (tI) return;
275
+ tI = !0;
276
+ const C = process.env || {};
277
+ if (lI(C.SF_IS_LOCAL) === void 0)
278
278
  try {
279
279
  await (async function(s) {
280
- const h = T("http://169.254.169.254/latest/meta-data/", {}, s), d = T("http://metadata.google.internal/computeMetadata/v1/instance/", { "Metadata-Flavor": "Google" }, s), b = T("http://169.254.169.254/metadata/instance?api-version=2021-02-01", { Metadata: "true" }, s);
281
- return (await Promise.allSettled([h, d, b])).some((f) => f.status === "fulfilled" && (f.value === "ok" || f.value === "http_error"));
282
- })(150) && V && (V = !1, l?.setSupplementalFields?.({ isFromLocalService: !1 }));
280
+ const m = x("http://169.254.169.254/latest/meta-data/", {}, s), a = x("http://metadata.google.internal/computeMetadata/v1/instance/", { "Metadata-Flavor": "Google" }, s), A = x("http://169.254.169.254/metadata/instance?api-version=2021-02-01", { Metadata: "true" }, s);
281
+ return (await Promise.allSettled([m, a, A])).some((f) => f.status === "fulfilled" && (f.value === "ok" || f.value === "http_error"));
282
+ })(150) && V && (V = !1, i?.setSupplementalFields?.({ isFromLocalService: !1 }));
283
283
  } catch {
284
284
  }
285
- })(n).catch(() => {
285
+ })(I).catch(() => {
286
286
  });
287
287
  } catch {
288
288
  }
289
- const I = new Bn(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" } });
290
- let C = null;
291
- const g = /* @__PURE__ */ new WeakMap();
292
- I.on("message", async (c) => {
293
- if (typeof c == "string" && m().sfDebug && y(`[Worker] ${c}`), c.readyToGetParameters && I.postMessage({ sfDebug: m().sfDebug, stackDepthLocals: m().stackDepthLocals, nodeModulesToCollectLocalVariablesOn: m().nodeModulesToCollectLocalVariablesOn }), c.type === "exception") {
294
- const { frames: l } = c, o = C;
295
- if (!o) return;
296
- const s = (function(d) {
297
- return d ? d.split(`
298
- `).slice(1).map((b) => {
299
- const f = /at (.+?) \((.+):(\d+):(\d+)\)/.exec(b) || /at (.+):(\d+):(\d+)/.exec(b);
289
+ const n = new pI(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: !0 } });
290
+ let e = null;
291
+ const t = /* @__PURE__ */ new WeakMap();
292
+ n.on("message", async (g) => {
293
+ if (typeof g == "string" && d().sfDebug && y(`[Worker] ${g}`), g.readyToGetParameters && n.postMessage({ sfDebug: d().sfDebug, stackDepthLocals: d().stackDepthLocals, nodeModulesToCollectLocalVariablesOn: d().nodeModulesToCollectLocalVariablesOn }), g.type === "exception") {
294
+ const { frames: i } = g, C = e;
295
+ if (!C) return;
296
+ const s = (function(a) {
297
+ return a ? a.split(`
298
+ `).slice(1).map((A) => {
299
+ const f = /at (.+?) \((.+):(\d+):(\d+)\)/.exec(A) || /at (.+):(\d+):(\d+)/.exec(A);
300
300
  if (f) {
301
- const [, p, B, r, Z] = f;
302
- return new R({ function: p || "<anonymous>", locals: {}, file: B || "<unknown>", line: parseInt(r, 10) || 0, code: "<not captured>", column: parseInt(Z) || 0 });
301
+ const [, W, B, r, Z] = f;
302
+ return new v({ function: W || "<anonymous>", locals: {}, file: B || "<unknown>", line: parseInt(r, 10) || 0, code: "<not captured>", column: parseInt(Z) || 0 });
303
303
  }
304
- return new R({ function: "<unknown>", locals: {}, file: "<unknown>", line: 0, code: "<not captured>", column: 0 });
304
+ return new v({ function: "<unknown>", locals: {}, file: "<unknown>", line: 0, code: "<not captured>", column: 0 });
305
305
  }) : [];
306
- })(P(o.stack)), h = (function(d, b) {
306
+ })(BI(C.stack)), m = (function(a, A) {
307
307
  const f = [];
308
- let p = -1, B = -1;
309
- for (let r = 0; r < d.length; r++) {
310
- const Z = Xn(d[r].file);
308
+ let W = -1, B = -1;
309
+ for (let r = 0; r < a.length; r++) {
310
+ const Z = JI(a[r].file);
311
311
  if (B = r, Z !== "<unknown>") {
312
- for (let u = 0; u < b.length; u++) {
313
- const G = b[u];
314
- if (sn(G, Z) || typeof G.file == "string" && G.file.includes(Z)) {
315
- p = u, v = 0, m().sfDebug && y(`✅ Matched Frame Found: ${Z} @ Debugger Frame ${u}`);
312
+ for (let u = 0; u < A.length; u++) {
313
+ const G = A[u];
314
+ if (iI(G, Z) || typeof G.file == "string" && G.file.includes(Z)) {
315
+ W = u, S = 0, d().sfDebug && y(`✅ Matched Frame Found: ${Z} @ Debugger Frame ${u}`);
316
316
  break;
317
317
  }
318
318
  }
319
- if (p !== -1) break;
319
+ if (W !== -1) break;
320
320
  }
321
321
  }
322
- if (p === -1) return v === 10 ? (v = 0, d) : (++v, m().sfDebug && y(`"❌ No matching frame found. Checking once again, Attempt N ${v}"`), []);
323
- m().sfDebug && y(`🔄 Merging from matched index ${p} onward...`);
324
- for (let r = 0; r < b.length; r++) {
325
- const Z = d[B + r], u = b[p + r];
326
- f.push(new R({ 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>" }));
322
+ if (W === -1) return S === 10 ? (S = 0, a) : (++S, d().sfDebug && y(`"❌ No matching frame found. Checking once again, Attempt N ${S}"`), []);
323
+ d().sfDebug && y(`🔄 Merging from matched index ${W} onward...`);
324
+ for (let r = 0; r < A.length; r++) {
325
+ const Z = a[B + r], u = A[W + r];
326
+ f.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>" }));
327
327
  }
328
328
  return f;
329
- })(s, l || []);
330
- if (h.length !== 0) {
331
- C = null;
332
- const d = m().stackDepthCodeTraceDepth, b = d === -1 ? h : h.slice(0, d + 1), f = Math.min(b.length, s.length);
329
+ })(s, i || []);
330
+ if (m.length !== 0) {
331
+ e = null;
332
+ const a = d().stackDepthCodeTraceDepth, A = a === -1 ? m : m.slice(0, a + 1), f = Math.min(A.length, s.length);
333
333
  await Promise.all(Array.from({ length: f }, async (Z, u) => {
334
- const G = await (async function(un, bn, an) {
335
- const N = (function(A) {
336
- A.startsWith("at ") && (A = A.slice(3).trim());
337
- const H = A.match(/^(.*?)(:\d+)+(\.map)?$/);
338
- return H ? H[1] : A;
339
- })(un);
340
- if (!N || N === "<unknown>") return null;
341
- const X = N + ".map";
334
+ const G = await (async function(sI, AI, rI) {
335
+ const h = (function(o) {
336
+ o.startsWith("at ") && (o = o.slice(3).trim());
337
+ const N = o.match(/^(.*?)(:\d+)+(\.map)?$/);
338
+ return N ? N[1] : o;
339
+ })(sI);
340
+ if (!h || h === "<unknown>") return null;
341
+ const w = h + ".map";
342
342
  try {
343
- let A = K.get(X);
344
- if (A === void 0) {
345
- const F = await fn.readFile(X, "utf-8");
346
- A = F ? JSON.parse(F) : null, en(X, A);
343
+ let o = K.get(w);
344
+ if (o === void 0) {
345
+ const R = await dI.readFile(w, "utf-8");
346
+ o = R ? JSON.parse(R) : null, gI(w, o);
347
347
  }
348
- if (!A) return null;
349
- let H = new yn.SourceMapConsumer(A).originalPositionFor({ line: bn, column: an });
350
- if (N && H.source) {
351
- const F = tn(N), Q = A.sources.findIndex((k) => tn(k) === F);
352
- if (Q === -1) m().sfDebug && y(`Source file "${N}" not found in the source map.`);
348
+ if (!o) return null;
349
+ let N = new WI.SourceMapConsumer(o).originalPositionFor({ line: AI, column: rI });
350
+ if (h && N.source) {
351
+ const R = nI(h), D = o.sources.findIndex((F) => nI(F) === R);
352
+ if (D === -1) d().sfDebug && y(`Source file "${h}" not found in the source map.`);
353
353
  else {
354
- const k = A.sourcesContent[Q], dn = A.names.join(",");
355
- if (k)
356
- return { content: k.split(`
357
- `).slice(H.line - 1, H.line + 20).join(`
358
- `), name: dn, file: H.source };
359
- m().sfDebug && y(`No source content available for file "${N}".`);
354
+ const F = o.sourcesContent[D], uI = o.names.join(",");
355
+ if (F)
356
+ return { content: F.split(`
357
+ `).slice(N.line - 1, N.line + 20).join(`
358
+ `), name: uI, file: N.source };
359
+ d().sfDebug && y(`No source content available for file "${h}".`);
360
360
  }
361
361
  }
362
- return { content: A.sourcesContent[0], name: A.names[0], file: A.file };
363
- } catch (A) {
364
- m().sfDebug && y(`Cant read/parse "${X}: Error - ".`, A), en(X, null);
362
+ return { content: o.sourcesContent[0], name: o.names[0], file: o.file };
363
+ } catch (o) {
364
+ d().sfDebug && y(`Cant read/parse "${w}: Error - ".`, o), gI(w, null);
365
365
  }
366
366
  return null;
367
- })(b[u].file, s[u].line, s[u].column);
368
- G && (G.content != null && (b[u].code = G.content), G.file != null && (b[u].file = G.file));
369
- })), n.setOperationName("CollectExceptions");
370
- const p = o.message ? `${o.name}: ${o.message}` : o.name;
371
- m().sfDebug && y("error message is : ", p);
372
- const B = U.getInstance(), r = g.get(o);
367
+ })(A[u].file, s[u].line, s[u].column);
368
+ G && (G.content != null && (A[u].code = G.content), G.file != null && (A[u].file = G.file));
369
+ })), I.setOperationName("CollectExceptions");
370
+ const W = C.message ? `${C.name}: ${C.message}` : C.name;
371
+ d().sfDebug && y("error message is : ", W);
372
+ const B = Q.getInstance(), r = t.get(C);
373
373
  r ? (B.setTraceIdFor(r, r), B.runWithSession(r, () => {
374
- B.setTraceId(r), n.doSend(p, b);
375
- })) : n.doSend(p, b);
374
+ B.setTraceId(r), I.doSend(W, A);
375
+ })) : I.doSend(W, A);
376
376
  }
377
377
  }
378
- }), I.on("error", (c) => {
379
- gn("[Worker Error]", c);
380
- }), I.on("exit", (c) => {
381
- gn(`[Worker] Exited with code ${c}`);
382
- }), I.unref();
383
- const e = Error, i = /* @__PURE__ */ new Set();
384
- function t(...c) {
385
- const l = Reflect.construct(e, c);
386
- Reflect.setPrototypeOf(l, t.prototype);
378
+ }), n.on("error", (g) => {
379
+ II("[Worker Error]", g);
380
+ }), n.on("exit", (g) => {
381
+ II(`[Worker] Exited with code ${g}`);
382
+ }), n.unref();
383
+ const c = Error;
384
+ function l(...g) {
385
+ const i = new.target ?? l, C = Reflect.construct(c, g, i);
387
386
  try {
388
- const s = U.getInstance().getTraceId();
389
- g.set(l, s);
387
+ const s = Q.getInstance().getTraceId();
388
+ t.set(C, s);
390
389
  } catch {
391
390
  }
392
- e.captureStackTrace && e.captureStackTrace(l, t);
393
- const o = `${l.message}:${P(l.stack).split(`
394
- `)[1]?.trim()}`;
395
- if (!i.has(o)) {
396
- if (i.add(o), i.size > 1e3) {
397
- const s = i.values().next().value;
398
- i.delete(s);
399
- }
400
- C = l, I.postMessage({ type: "processException", error: l.message });
401
- }
402
- return l;
391
+ return c.captureStackTrace && c.captureStackTrace(C, i), e = C, n.postMessage({ type: "processException", error: C.message }), C;
403
392
  }
404
- t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), Object.setPrototypeOf(t, e), globalThis.Error = t;
393
+ l.prototype = c.prototype, Object.setPrototypeOf(l, c), globalThis.Error = l;
405
394
  }
406
- function tn(n) {
407
- return n = (n = (n = n.replace(/^webpack:\/\/[^\/]+\/\.?\//, "")).replace(/^.*\/pages\//, "pages/")).replace(/\.(js|ts)$/, "");
395
+ function nI(I) {
396
+ return I = (I = (I = I.replace(/^webpack:\/\/[^\/]+\/\.?\//, "")).replace(/^.*\/pages\//, "pages/")).replace(/\.(js|ts)$/, "");
408
397
  }
409
- const wn = 50, K = /* @__PURE__ */ new Map();
410
- function en(n, I) {
411
- if (K.size >= wn) {
412
- const C = K.keys().next().value;
413
- K.delete(C);
398
+ const HI = 50, K = /* @__PURE__ */ new Map();
399
+ function gI(I, n) {
400
+ if (K.size >= HI) {
401
+ const e = K.keys().next().value;
402
+ K.delete(e);
414
403
  }
415
- K.set(n, I);
404
+ K.set(I, n);
416
405
  }
417
- function Xn(n) {
418
- return n?.split("/").pop() || "<unknown>";
406
+ function JI(I) {
407
+ return I?.split("/").pop() || "<unknown>";
419
408
  }
420
- function sn(n, I) {
421
- if (!n || typeof n != "object") return !1;
422
- for (const C of Object.values(n))
423
- if (typeof C == "string" && C.includes(I) || typeof C == "object" && sn(C, I)) return !0;
409
+ function iI(I, n) {
410
+ if (!I || typeof I != "object") return !1;
411
+ for (const e of Object.values(I))
412
+ if (typeof e == "string" && e.includes(n) || typeof e == "object" && iI(e, n)) return !0;
424
413
  return !1;
425
414
  }
426
- let V, w, x, cn = !1;
427
- function An(n) {
428
- if (!n) return;
429
- const I = n.toLowerCase().trim();
430
- return !!["1", "true", "yes", "on"].includes(I) || !["0", "false", "no", "off"].includes(I) && void 0;
415
+ let V, J, L, tI = !1;
416
+ function lI(I) {
417
+ if (!I) return;
418
+ const n = I.toLowerCase().trim();
419
+ return !!["1", "true", "yes", "on"].includes(n) || !["0", "false", "no", "off"].includes(n) && void 0;
431
420
  }
432
- function rn() {
421
+ function oI() {
433
422
  if (V !== void 0) return V;
434
- const n = process.env || {}, I = An(n.SF_IS_LOCAL);
435
- if (I !== void 0) return V = I;
436
- const C = (n.SF_ENV || n.NODE_ENV || "").toLowerCase();
437
- if (["local", "dev", "development"].includes(C)) return V = !0;
438
- 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) => !!n[e])) return V = !1;
439
- const g = (Gn.hostname?.() || n.HOSTNAME || "").toLowerCase();
440
- return V = !(g !== "localhost" && !g.endsWith(".local") && !g.includes("local"));
423
+ const I = process.env || {}, n = lI(I.SF_IS_LOCAL);
424
+ if (n !== void 0) return V = n;
425
+ const e = (I.SF_ENV || I.NODE_ENV || "").toLowerCase();
426
+ if (["local", "dev", "development"].includes(e)) return V = !0;
427
+ 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) => !!I[c])) return V = !1;
428
+ const t = (fI.hostname?.() || I.HOSTNAME || "").toLowerCase();
429
+ return V = !(t !== "localhost" && !t.endsWith(".local") && !t.includes("local"));
441
430
  }
442
- function T(n, I, C) {
443
- return new Promise((g) => {
431
+ function x(I, n, e) {
432
+ return new Promise((t) => {
444
433
  try {
445
- const e = new URL(n), i = (e.protocol === "https:" ? Wn : pn).request({ method: "GET", hostname: e.hostname, port: e.port || (e.protocol === "https:" ? 443 : 80), path: e.pathname + (e.search || ""), headers: I }, (t) => {
446
- t.resume(), t.statusCode && t.statusCode >= 200 && t.statusCode < 400 ? g("ok") : g("http_error");
434
+ const c = new URL(I), l = (c.protocol === "https:" ? ZI : mI).request({ method: "GET", hostname: c.hostname, port: c.port || (c.protocol === "https:" ? 443 : 80), path: c.pathname + (c.search || ""), headers: n }, (g) => {
435
+ g.resume(), g.statusCode && g.statusCode >= 200 && g.statusCode < 400 ? t("ok") : t("http_error");
447
436
  });
448
- i.on("error", () => g("error")), i.setTimeout(C, () => {
449
- i.destroy(), g("timeout");
450
- }), i.end();
437
+ l.on("error", () => t("error")), l.setTimeout(e, () => {
438
+ l.destroy(), t("timeout");
439
+ }), l.end();
451
440
  } catch {
452
- g("error");
441
+ t("error");
453
442
  }
454
443
  });
455
444
  }
456
- function Sn() {
457
- if (w !== void 0) return w;
458
- const n = process.env.SF_FUNCSPAN_RUNTIME_ENABLED;
459
- if (n === "true" || n === "1") return w = !0, !0;
460
- if (n === "false" || n === "0") return w = !1, !1;
445
+ function wI() {
446
+ if (J !== void 0) return J;
447
+ const I = process.env.SF_FUNCSPAN_RUNTIME_ENABLED;
448
+ if (I === "true" || I === "1") return J = !0, !0;
449
+ if (I === "false" || I === "0") return J = !1, !1;
461
450
  try {
462
- const { isRuntimeModeConfigured: I } = require("../funcSpanConfigLoader");
463
- if (I && I()) return w = !0, !0;
451
+ const { isRuntimeModeConfigured: n } = require("../funcSpanConfigLoader");
452
+ if (n && n()) return J = !0, !0;
464
453
  } catch {
465
454
  }
466
- return w = !1, !1;
455
+ return J = !1, !1;
467
456
  }
468
- function vn() {
469
- return x !== void 0 || (x = !rn()), x;
457
+ function XI() {
458
+ return L !== void 0 || (L = !oI()), L;
470
459
  }
471
- function Qn() {
472
- return !!Sn() && (!vn() || (console.warn("[FuncSpan Runtime] DISABLED in production environment"), !1));
460
+ function OI() {
461
+ return !!wI() && (!XI() || (console.warn("[FuncSpan Runtime] DISABLED in production environment"), !1));
473
462
  }
474
463
  export {
475
- E as C,
476
- jn as a,
477
- gn as b,
478
- P as c,
479
- On as d,
480
- Dn as e,
481
- vn as f,
482
- Sn as g,
464
+ T as C,
465
+ TI as a,
466
+ II as b,
467
+ BI as c,
468
+ jI as d,
469
+ EI as e,
470
+ XI as f,
471
+ wI as g,
483
472
  y as i,
484
- Qn as s
473
+ OI as s
485
474
  };