@stripchatdev/ext-helper 0.1.4 → 0.1.5

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.
Files changed (2) hide show
  1. package/dist/ext-helper.js +106 -68
  2. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- const T = (e) => !!e && typeof e == "object" && "protocol" in e && e.protocol === "iframe_pubsub" && "version" in e && e.version === "1.0", y = (e, t) => e, w = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
1
+ const S = (e) => !!e && typeof e == "object" && "protocol" in e && e.protocol === "iframe_pubsub" && "version" in e && e.version === "1.0", E = (e, t) => e, w = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
2
2
  var l;
3
3
  (function(e) {
4
4
  e.Base32IncorrectEncoding = "B32_ENC_INVALID", e.DecodeTimeInvalidCharacter = "DEC_TIME_CHAR", e.DecodeTimeValueMalformed = "DEC_TIME_MALFORMED", e.EncodeTimeNegative = "ENC_TIME_NEG", e.EncodeTimeSizeExceeded = "ENC_TIME_SIZE_EXCEED", e.EncodeTimeValueMalformed = "ENC_TIME_MALFORMED", e.PRNGDetectFailure = "PRNG_DETECT", e.ULIDInvalid = "ULID_INVALID", e.Unexpected = "UNEXPECTED", e.UUIDInvalid = "UUID_INVALID";
@@ -8,12 +8,12 @@ class f extends Error {
8
8
  super(`${r} (${t})`), this.name = "ULIDError", this.code = t;
9
9
  }
10
10
  }
11
- function _(e) {
11
+ function T(e) {
12
12
  const t = Math.floor(e() * 32) % 32;
13
13
  return w.charAt(t);
14
14
  }
15
- function P(e) {
16
- const t = S(), r = t && (t.crypto || t.msCrypto) || null;
15
+ function _(e) {
16
+ const t = O(), r = t && (t.crypto || t.msCrypto) || null;
17
17
  if (typeof (r == null ? void 0 : r.getRandomValues) == "function")
18
18
  return () => {
19
19
  const n = new Uint8Array(1);
@@ -23,16 +23,16 @@ function P(e) {
23
23
  return () => r.randomBytes(1).readUInt8() / 255;
24
24
  throw new f(l.PRNGDetectFailure, "Failed to find a reliable PRNG");
25
25
  }
26
- function S() {
26
+ function O() {
27
27
  return q() ? self : typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : null;
28
28
  }
29
- function H(e, t) {
29
+ function P(e, t) {
30
30
  let r = "";
31
31
  for (; e > 0; e--)
32
- r = _(t) + r;
32
+ r = T(t) + r;
33
33
  return r;
34
34
  }
35
- function O(e, t = 10) {
35
+ function H(e, t = 10) {
36
36
  if (isNaN(e))
37
37
  throw new f(l.EncodeTimeValueMalformed, `Time must be a number: ${e}`);
38
38
  if (e > 281474976710655)
@@ -50,8 +50,8 @@ function q() {
50
50
  return typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope;
51
51
  }
52
52
  function b(e, t) {
53
- const r = P(), n = Date.now();
54
- return O(n, 10) + H(16, r);
53
+ const r = _(), n = Date.now();
54
+ return H(n, 10) + P(16, r);
55
55
  }
56
56
  const L = ({ seq: e, uniqId: t }) => (r) => ({
57
57
  ...{
@@ -62,14 +62,14 @@ const L = ({ seq: e, uniqId: t }) => (r) => ({
62
62
  timestamp: Date.now()
63
63
  },
64
64
  ...r
65
- }), g = L({
65
+ }), y = L({
66
66
  uniqId: () => b(),
67
67
  seq: () => b()
68
68
  });
69
69
  class A {
70
70
  constructor(t) {
71
71
  this.eventHandlerMap = /* @__PURE__ */ new Map(), this.globalMessageHandler = (s, o) => {
72
- if (T(s)) {
72
+ if (S(s)) {
73
73
  if (s.type === "event") {
74
74
  const { eventName: i } = s, a = this.eventHandlerMap.get(i);
75
75
  if (!a)
@@ -90,41 +90,41 @@ class A {
90
90
  this.brokerId = r, this.transport = n, this.transport.onMessage(this.globalMessageHandler);
91
91
  }
92
92
  subscribe(t, r) {
93
- const n = y(t);
93
+ const n = E(t);
94
94
  let s = this.eventHandlerMap.get(n);
95
95
  s || (s = /* @__PURE__ */ new Set(), this.eventHandlerMap.set(n, s)), s.add(r);
96
- const o = g({
96
+ const o = y({
97
97
  type: "subscribe",
98
98
  eventName: t
99
99
  });
100
100
  this.transport.send(this.brokerId, o);
101
101
  }
102
102
  unsubscribe(t, r) {
103
- const n = y(t);
103
+ const n = E(t);
104
104
  let s = this.eventHandlerMap.get(n);
105
105
  if (!s)
106
106
  return;
107
107
  r ? s.delete(r) : this.eventHandlerMap.delete(n);
108
- const o = g({
108
+ const o = y({
109
109
  type: "unsubscribe",
110
110
  eventName: t
111
111
  });
112
112
  this.transport.send(this.brokerId, o);
113
113
  }
114
114
  }
115
- const C = !!Error.captureStackTrace, D = "APP_ERROR";
116
- class E extends Error {
115
+ const x = !!Error.captureStackTrace, C = "APP_ERROR";
116
+ class g extends Error {
117
117
  constructor(t, r) {
118
- super(t), this.name = new.target.name || D, this.cause = r, C && Error.captureStackTrace(this, this.constructor);
118
+ super(t), this.name = new.target.name || C, this.cause = r, x && Error.captureStackTrace(this, this.constructor);
119
119
  }
120
120
  static serializeCause(t) {
121
- return t instanceof E ? t.toJSON() : t instanceof Error ? { name: t.name, message: t.message } : t !== null && typeof t == "object" ? t : String(t);
121
+ return t instanceof g ? t.toJSON() : t instanceof Error ? { name: t.name, message: t.message } : t !== null && typeof t == "object" ? t : String(t);
122
122
  }
123
123
  toJSON() {
124
124
  return {
125
125
  name: this.name,
126
126
  message: this.message,
127
- cause: this.cause ? E.serializeCause(this.cause) : void 0
127
+ cause: this.cause ? g.serializeCause(this.cause) : void 0
128
128
  };
129
129
  }
130
130
  toString() {
@@ -136,12 +136,12 @@ class E extends Error {
136
136
  }
137
137
  }
138
138
  }
139
- const x = {
139
+ const D = {
140
140
  INTERNAL_ERROR: "INTERNAL_ERROR"
141
- }, G = "RPC_ERROR";
142
- class j extends E {
141
+ }, j = "RPC_ERROR";
142
+ class G extends g {
143
143
  constructor(t) {
144
- super(t.message || "rpc error", t.cause), this.name = G, this.code = (t == null ? void 0 : t.code) || x.INTERNAL_ERROR, this.method = t.method, this.params = t.params;
144
+ super(t.message || "rpc error", t.cause), this.name = j, this.code = (t == null ? void 0 : t.code) || D.INTERNAL_ERROR, this.method = t.method, this.params = t.params;
145
145
  }
146
146
  toJSON() {
147
147
  return {
@@ -160,10 +160,10 @@ const F = (e) => !!e && typeof e == "object" && "protocol" in e && e.protocol ==
160
160
  timestamp: Date.now()
161
161
  },
162
162
  ...t
163
- }), X = B({
163
+ }), z = B({
164
164
  uniqId: () => b()
165
165
  });
166
- class U {
166
+ class X {
167
167
  constructor(t) {
168
168
  this.pendingEntryMap = /* @__PURE__ */ new Map(), this.globalMessageHandler = (s) => {
169
169
  if (F(s)) {
@@ -182,7 +182,7 @@ class U {
182
182
  console.error("[RpcClient] globalMessageHandler: got error response without pending request", s);
183
183
  return;
184
184
  }
185
- this.pendingEntryMap.delete(o), i.reject(new j(s.error));
185
+ this.pendingEntryMap.delete(o), i.reject(new G(s.error));
186
186
  return;
187
187
  }
188
188
  console.error("[RpcClient] globalMessageHandler: invalid message schema", s);
@@ -192,7 +192,7 @@ class U {
192
192
  this.serverId = r, this.transport = n, this.transport.onMessage(this.globalMessageHandler);
193
193
  }
194
194
  makeRequest(t, r) {
195
- const n = X({
195
+ const n = z({
196
196
  type: "request",
197
197
  method: t,
198
198
  params: r
@@ -269,8 +269,8 @@ class W {
269
269
  }
270
270
  }
271
271
  const p = {
272
- name: "UnknownError",
273
- message: "Unknown error"
272
+ name: "unknownError",
273
+ message: "unknown error"
274
274
  }, M = (e, t = 3, r = 0) => {
275
275
  if (e instanceof Error) {
276
276
  const n = r < t && e.cause ? M(e.cause, t, r + 1) : void 0;
@@ -300,26 +300,67 @@ const p = {
300
300
  } catch {
301
301
  return {
302
302
  name: p.name,
303
- message: "Unserializable error object"
303
+ message: "failed to serialize error: unserializable error object"
304
304
  };
305
305
  }
306
306
  return p;
307
- }, $ = "get", I = (e, t) => {
307
+ }, I = (e) => {
308
+ const t = [];
309
+ if (e instanceof Error)
310
+ t.push(e.message), "cause" in e && t.push(I(e.cause));
311
+ else
312
+ try {
313
+ const r = JSON.stringify(e);
314
+ t.push(r);
315
+ } catch {
316
+ t.push("failed to get chained error message: unserializable error object");
317
+ }
318
+ return t.join(":");
319
+ }, $ = [
320
+ // browser internals — harmless noise
321
+ /resizeObserver loop/ig,
322
+ // cross-origin script errors with zero useful info
323
+ /Script error/ig,
324
+ // browser extensions injecting errors
325
+ /chrome-extension:\/\//ig,
326
+ /moz-extension:\/\//ig,
327
+ /safari-extension:\/\//ig,
328
+ // module/chunk loading failures (network flaky, retries handle it)
329
+ /importing a module script failed/ig,
330
+ /loading chunk [\w.-]+ failed/ig,
331
+ /failed to fetch dynamically imported module/ig,
332
+ /error loading dynamically imported module/ig,
333
+ // canceled navigation / aborted
334
+ /AbortError/ig,
335
+ /the operation was aborted/ig,
336
+ /the user aborted a request/ig,
337
+ // webSocket noise
338
+ /webSocket is closed before the connection is established/ig,
339
+ // generic network noise already captured by fetch/xhr integrations
340
+ /networkError when attempting to fetch resource/ig,
341
+ /load failed/ig
342
+ ], J = (e) => $.some((t) => (t.lastIndex = 0, t.test(e))), V = (e) => {
343
+ const t = I(e.error), r = typeof e.data == "object" && "message" in e.data && typeof e.data.message == "string" ? e.data.message : "";
344
+ return [t, r].filter((n) => !!n).join(":");
345
+ }, U = (e) => e.data && typeof e.data == "object" && "filename" in e.data ? String(e.data.filename ?? "") : "", K = (e) => {
346
+ const t = V(e), r = U(e);
347
+ return r && /^(chrome|moz|safari)-extension:\/\//.test(r) ? !0 : !!t && J(t);
348
+ }, Z = "get", Q = (e, t) => {
308
349
  var s;
309
350
  let r, n;
310
351
  return e instanceof Request ? (r = e.url, n = e.method) : e instanceof URL ? r = e.toString() : r = e, {
311
- method: n || ((s = t == null ? void 0 : t.method) == null ? void 0 : s.toString()) || $,
352
+ method: n || ((s = t == null ? void 0 : t.method) == null ? void 0 : s.toString()) || Z,
312
353
  url: r
313
354
  };
314
- }, z = (e, t, r) => ({
355
+ }, Y = (e, t, r) => ({
315
356
  statusCode: r.status,
316
- ...I(e, t)
317
- }), V = (e) => {
357
+ ...Q(e, t)
358
+ }), ee = (e) => {
318
359
  const t = window.fetch;
319
360
  Object.defineProperty(window, "fetch", {
320
361
  value: async (n, s) => {
321
362
  try {
322
- const o = new Error("synthetic error"), i = await t(n, s), a = i.clone(), c = z(n, s, a);
363
+ const o = new Error("synthetic error"), i = await t(n, s), a = i.clone(), c = Y(n, s, a);
323
364
  if (i.status >= 500) {
324
365
  const u = new Error("fetch response error");
325
366
  u.stack = o.stack, e.report({
@@ -332,12 +373,12 @@ const p = {
332
373
  const {
333
374
  arrayBuffer: h,
334
375
  blob: m,
335
- json: N,
376
+ json: v,
336
377
  text: k
337
378
  } = i;
338
379
  return i.json = async function() {
339
380
  try {
340
- return await N.call(this);
381
+ return await v.call(this);
341
382
  } catch (u) {
342
383
  throw e.report({
343
384
  type: "network",
@@ -393,18 +434,13 @@ const p = {
393
434
  }
394
435
  }, i;
395
436
  } catch (o) {
396
- throw o instanceof Error && o.name === "AbortError" || e.report({
397
- type: "network",
398
- kind: "fetchRequestError",
399
- error: o,
400
- data: I(n, s)
401
- }), o;
437
+ throw o instanceof Error && o.name === "AbortError", o;
402
438
  }
403
439
  },
404
- configurable: !1,
405
- writable: !1
440
+ configurable: !0,
441
+ writable: !0
406
442
  });
407
- }, J = (e) => {
443
+ }, te = (e) => {
408
444
  window.addEventListener("unhandledrejection", ({ reason: t }) => {
409
445
  e.report({
410
446
  type: "runtime",
@@ -424,18 +460,18 @@ const p = {
424
460
  }
425
461
  });
426
462
  });
427
- }, v = Symbol("patchedXHLHttpRequest"), d = Symbol("requestInfo"), K = (e) => ({
463
+ }, N = Symbol("patchedXHLHttpRequest"), d = Symbol("requestInfo"), re = (e) => ({
428
464
  statusCode: e.status,
429
465
  ...e[d]
430
- }), Z = (e) => (e[d] || (e[d] = {}), e[d]), Q = (e) => {
431
- e[v] = !0;
432
- }, Y = (e) => e[v] === !0, ee = (e) => {
466
+ }), ne = (e) => (e[d] || (e[d] = {}), e[d]), se = (e) => {
467
+ e[N] = !0;
468
+ }, oe = (e) => e[N] === !0, ie = (e) => {
433
469
  const t = XMLHttpRequest.prototype.send, r = XMLHttpRequest.prototype.open, n = function(...o) {
434
470
  const [i, a] = o;
435
471
  this[d] = {
436
472
  method: i,
437
473
  url: typeof a == "string" ? a : a.toString()
438
- }, Y(this) || (Q(this), this.addEventListener("error", () => {
474
+ }, oe(this) || (se(this), this.addEventListener("error", () => {
439
475
  const c = new Error("XMLHttpRequest network error");
440
476
  e.report({
441
477
  type: "network",
@@ -457,7 +493,7 @@ const p = {
457
493
  e.report({
458
494
  type: "network",
459
495
  kind: "xmlHttpRequestLoadError",
460
- data: K(this),
496
+ data: re(this),
461
497
  error: c
462
498
  });
463
499
  }
@@ -474,7 +510,7 @@ const p = {
474
510
  }
475
511
  }, s = function(o) {
476
512
  try {
477
- const i = Z(this), a = new Error("XMLHttpRequest request initiator");
513
+ const i = ne(this), a = new Error("XMLHttpRequest request initiator");
478
514
  i.requestStack = a.stack, t.call(this, o);
479
515
  } catch (i) {
480
516
  throw e.report({
@@ -487,20 +523,22 @@ const p = {
487
523
  };
488
524
  Object.defineProperty(XMLHttpRequest.prototype, "open", {
489
525
  value: n,
490
- configurable: !1,
491
- writable: !1
526
+ configurable: !0,
527
+ writable: !0
492
528
  }), Object.defineProperty(XMLHttpRequest.prototype, "send", {
493
529
  value: s,
494
- configurable: !1,
495
- writable: !1
530
+ configurable: !0,
531
+ writable: !0
496
532
  });
497
533
  };
498
534
  let R;
499
- class te {
535
+ class ae {
500
536
  constructor(t) {
501
537
  this.onError = t;
502
538
  }
503
539
  report(t) {
540
+ if (K(t))
541
+ return;
504
542
  const { error: r, ...n } = t;
505
543
  this.onError({
506
544
  ...n,
@@ -511,10 +549,10 @@ class te {
511
549
  this.applyIntegrations();
512
550
  }
513
551
  applyIntegrations() {
514
- R || (R = !0, J(this), ee(this), V(this));
552
+ R || (R = !0, te(this), ie(this), ee(this));
515
553
  }
516
554
  }
517
- class re {
555
+ class ce {
518
556
  constructor(t) {
519
557
  const {
520
558
  serverId: r,
@@ -526,13 +564,13 @@ class re {
526
564
  origin: n,
527
565
  source: s
528
566
  }, a = new W({});
529
- a.addPeer(i), this.rpcClient = new U({
567
+ a.addPeer(i), this.rpcClient = new X({
530
568
  transport: a,
531
569
  serverId: r
532
570
  }), this.subscriber = new A({
533
571
  transport: a,
534
572
  brokerId: i.id
535
- }), document.documentElement.dataset.theme = o, this.crashReporter = new te((c) => {
573
+ }), document.documentElement.dataset.theme = o, this.crashReporter = new ae((c) => {
536
574
  this.makeRequest("v1.system.report.crash", c);
537
575
  });
538
576
  }
@@ -571,8 +609,8 @@ class re {
571
609
  }), this.crashReporter.init();
572
610
  }
573
611
  }
574
- const ne = () => {
575
- const e = new URL(window.location.href), t = e.searchParams.get("origin") || "", r = e.searchParams.get("theme") || "dark", n = new re({
612
+ const ue = () => {
613
+ const e = new URL(window.location.href), t = e.searchParams.get("origin") || "", r = e.searchParams.get("theme") || "dark", n = new ce({
576
614
  serverId: "server",
577
615
  serverOrigin: t || window.parent.origin,
578
616
  serverSource: window.parent,
@@ -581,5 +619,5 @@ const ne = () => {
581
619
  return n.bootstrap(), n;
582
620
  };
583
621
  export {
584
- ne as createExtHelper
622
+ ue as createExtHelper
585
623
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stripchatdev/ext-helper",
3
3
  "private": false,
4
- "version": "0.1.4",
4
+ "version": "0.1.5",
5
5
  "type": "module",
6
6
  "module": "./dist/ext-helper.js",
7
7
  "types": "./dist/index.d.ts",