@ohbug/browser 2.4.0 → 2.4.1

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/index.d.ts CHANGED
@@ -44,6 +44,13 @@ interface AjaxErrorDetail extends OhbugBaseDetail {
44
44
  req: {
45
45
  url: string;
46
46
  method: string;
47
+ data?: string;
48
+ params?: string;
49
+ };
50
+ res: {
51
+ response: string;
52
+ status: number;
53
+ statusText?: string;
47
54
  };
48
55
  }
49
56
 
@@ -51,13 +58,24 @@ interface FetchErrorDetail extends OhbugBaseDetail {
51
58
  req: {
52
59
  url: string;
53
60
  method: string;
61
+ data?: string;
62
+ params?: string;
63
+ };
64
+ res: {
65
+ status: number;
66
+ statusText?: string;
54
67
  };
55
68
  }
56
69
 
57
70
  interface WebsocketErrorDetail extends OhbugBaseDetail {
58
71
  url: string;
72
+ params?: string;
59
73
  timeStamp: number;
60
74
  readyState: number;
75
+ protocol: string;
76
+ extensions: string;
77
+ binaryType: string;
78
+ bufferedAmount: number;
61
79
  }
62
80
 
63
81
  export { AjaxErrorDetail, FetchErrorDetail, ResourceErrorDetail, UncaughtErrorDetail, UnhandledrejectionErrorDetail, UnknownErrorDetail, WebsocketErrorDetail, BrowserClient as default };
package/dist/index.js CHANGED
@@ -83,7 +83,7 @@ var device = () => {
83
83
  };
84
84
 
85
85
  // src/version.ts
86
- var version = "2.4.0";
86
+ var version = "2.4.1";
87
87
 
88
88
  // src/extension.ts
89
89
  var import_core12 = require("@ohbug/core");
@@ -287,16 +287,26 @@ var import_utils5 = require("@ohbug/utils");
287
287
  var import_core = require("@ohbug/core");
288
288
  var import_error_stack_parser = __toESM(require("error-stack-parser"));
289
289
  function uncaughtErrorHandler(e) {
290
- var _a2, _b2, _c;
291
- const [stackFrame] = import_error_stack_parser.default.parse(e.error);
290
+ var _a2, _b2, _c, _d;
292
291
  const detail = {
293
292
  name: (_a2 = e == null ? void 0 : e.error) == null ? void 0 : _a2.name,
294
293
  message: (e == null ? void 0 : e.message) || ((_b2 = e == null ? void 0 : e.error) == null ? void 0 : _b2.message),
295
- filename: (e == null ? void 0 : e.filename) || (stackFrame == null ? void 0 : stackFrame.fileName),
296
- lineno: (e == null ? void 0 : e.lineno) || (stackFrame == null ? void 0 : stackFrame.lineNumber),
297
- colno: (e == null ? void 0 : e.colno) || (stackFrame == null ? void 0 : stackFrame.columnNumber),
294
+ filename: e == null ? void 0 : e.filename,
295
+ lineno: e == null ? void 0 : e.lineno,
296
+ colno: e == null ? void 0 : e.colno,
298
297
  stack: (_c = e == null ? void 0 : e.error) == null ? void 0 : _c.stack
299
298
  };
299
+ if (e.error) {
300
+ try {
301
+ const stackFrame = (_d = import_error_stack_parser.default.parse(e.error)) == null ? void 0 : _d[0];
302
+ if (stackFrame) {
303
+ detail.filename = stackFrame.fileName;
304
+ detail.lineno = stackFrame.lineNumber;
305
+ detail.colno = stackFrame.columnNumber;
306
+ }
307
+ } catch (_) {
308
+ }
309
+ }
300
310
  const { client } = (0, import_utils5.getOhbugObject)();
301
311
  const event = client.createEvent({
302
312
  category: "error",
@@ -335,16 +345,23 @@ var import_utils7 = require("@ohbug/utils");
335
345
  var import_core3 = require("@ohbug/core");
336
346
  var import_error_stack_parser2 = __toESM(require("error-stack-parser"));
337
347
  function unhandledrejectionErrorHandler(e) {
338
- var _a2, _b2, _c;
339
- const [stackFrame] = import_error_stack_parser2.default.parse(e.reason);
348
+ var _a2, _b2, _c, _d;
340
349
  const detail = {
341
350
  name: (_a2 = e == null ? void 0 : e.reason) == null ? void 0 : _a2.name,
342
351
  message: ((_b2 = e == null ? void 0 : e.reason) == null ? void 0 : _b2.message) || (e == null ? void 0 : e.reason),
343
- filename: stackFrame == null ? void 0 : stackFrame.fileName,
344
- lineno: stackFrame == null ? void 0 : stackFrame.lineNumber,
345
- colno: stackFrame == null ? void 0 : stackFrame.columnNumber,
346
352
  stack: (_c = e == null ? void 0 : e.reason) == null ? void 0 : _c.stack
347
353
  };
354
+ if (e.reason) {
355
+ try {
356
+ const stackFrame = (_d = import_error_stack_parser2.default.parse(e.reason)) == null ? void 0 : _d[0];
357
+ if (stackFrame) {
358
+ detail.filename = stackFrame.fileName;
359
+ detail.lineno = stackFrame.lineNumber;
360
+ detail.colno = stackFrame.columnNumber;
361
+ }
362
+ } catch (_) {
363
+ }
364
+ }
348
365
  const { client } = (0, import_utils7.getOhbugObject)();
349
366
  const event = client.createEvent({
350
367
  category: "error",
@@ -359,16 +376,26 @@ var import_utils8 = require("@ohbug/utils");
359
376
  var import_core4 = require("@ohbug/core");
360
377
  var import_error_stack_parser3 = __toESM(require("error-stack-parser"));
361
378
  function unknownErrorHandler(e) {
362
- var _a2, _b2, _c;
363
- const [stackFrame] = import_error_stack_parser3.default.parse(e.error);
379
+ var _a2, _b2, _c, _d;
364
380
  const detail = {
365
381
  name: (_a2 = e == null ? void 0 : e.error) == null ? void 0 : _a2.name,
366
382
  message: (e == null ? void 0 : e.message) || ((_b2 = e == null ? void 0 : e.error) == null ? void 0 : _b2.message),
367
- filename: (e == null ? void 0 : e.filename) || (stackFrame == null ? void 0 : stackFrame.fileName),
368
- lineno: (e == null ? void 0 : e.lineno) || (stackFrame == null ? void 0 : stackFrame.lineNumber),
369
- colno: (e == null ? void 0 : e.colno) || (stackFrame == null ? void 0 : stackFrame.columnNumber),
383
+ filename: e == null ? void 0 : e.filename,
384
+ lineno: e == null ? void 0 : e.lineno,
385
+ colno: e == null ? void 0 : e.colno,
370
386
  stack: (_c = e == null ? void 0 : e.error) == null ? void 0 : _c.stack
371
387
  };
388
+ if (e.error) {
389
+ try {
390
+ const stackFrame = (_d = import_error_stack_parser3.default.parse(e.error)) == null ? void 0 : _d[0];
391
+ if (stackFrame) {
392
+ detail.filename = stackFrame.fileName;
393
+ detail.lineno = stackFrame.lineNumber;
394
+ detail.colno = stackFrame.columnNumber;
395
+ }
396
+ } catch (_) {
397
+ }
398
+ }
372
399
  const { client } = (0, import_utils8.getOhbugObject)();
373
400
  const event = client.createEvent({
374
401
  category: "error",
@@ -462,6 +489,31 @@ function networkDispatcher(type, detail) {
462
489
  }
463
490
  }
464
491
 
492
+ // src/capture/network/getParams.ts
493
+ var groupParamsByKey = (params) => [...params.entries()].reduce((acc, tuple) => {
494
+ const [key, val] = tuple;
495
+ if (acc.hasOwnProperty(key)) {
496
+ if (Array.isArray(acc[key])) {
497
+ acc[key] = [...acc[key], val];
498
+ } else {
499
+ acc[key] = [acc[key], val];
500
+ }
501
+ } else {
502
+ acc[key] = val;
503
+ }
504
+ return acc;
505
+ }, {});
506
+ function getParams(data) {
507
+ const location = new URL(data);
508
+ const url = location.origin + location.pathname;
509
+ const searchParams = location.search ? new URLSearchParams(location.search) : void 0;
510
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
511
+ return {
512
+ url,
513
+ params
514
+ };
515
+ }
516
+
465
517
  // src/capture/network/captureAjaxError.ts
466
518
  var global4 = (0, import_utils12.getGlobal)();
467
519
  var access2 = "XMLHttpRequest" in global4;
@@ -495,10 +547,18 @@ function captureAjaxError() {
495
547
  this.addEventListener("readystatechange", function handle() {
496
548
  if (this.readyState === 4) {
497
549
  if (desc.url !== client.__config.endpoint) {
550
+ const { url, params } = getParams(desc.url);
498
551
  const detail = {
499
552
  req: {
500
- url: desc.url,
501
- method: desc.method
553
+ url,
554
+ method: desc.method,
555
+ data: args[0],
556
+ params
557
+ },
558
+ res: {
559
+ status: this.status,
560
+ statusText: this.statusText,
561
+ response: this.response
502
562
  }
503
563
  };
504
564
  client.addAction("ajax", detail, "ajax");
@@ -536,11 +596,18 @@ function captureFetchError() {
536
596
  (origin) => function call(...args) {
537
597
  return origin.apply(this, args).then(
538
598
  (res) => {
539
- const [url, conf] = args;
599
+ const [originalUrl, conf] = args;
600
+ const { url, params } = getParams(originalUrl);
540
601
  const detail = {
541
602
  req: {
542
603
  url,
543
- method: conf && conf.method
604
+ method: conf && conf.method,
605
+ data: conf && conf.body,
606
+ params
607
+ },
608
+ res: {
609
+ status: res.status,
610
+ statusText: res.statusText
544
611
  }
545
612
  };
546
613
  client.addAction("fetch", detail, "fetch");
@@ -550,12 +617,16 @@ function captureFetchError() {
550
617
  return res;
551
618
  },
552
619
  (err) => {
553
- const [url, conf] = args;
620
+ const [originalUrl, conf] = args;
621
+ const { url, params } = getParams(originalUrl);
554
622
  const detail = {
555
623
  req: {
556
624
  url,
557
- method: conf && conf.method
558
- }
625
+ method: conf && conf.method,
626
+ data: conf && conf.body,
627
+ params
628
+ },
629
+ res: { status: 400 }
559
630
  };
560
631
  networkDispatcher(import_core10.EventTypes.FETCH_ERROR, detail);
561
632
  throw err;
@@ -587,15 +658,25 @@ function captureWebSocketError() {
587
658
  (_a2 = backup == null ? void 0 : backup.set) == null ? void 0 : _a2.call(this, function call(e) {
588
659
  const {
589
660
  target: {
590
- url,
591
- readyState
661
+ url: originalUrl,
662
+ readyState,
663
+ protocol,
664
+ extensions,
665
+ binaryType,
666
+ bufferedAmount
592
667
  },
593
668
  timeStamp
594
669
  } = e;
670
+ const { url, params } = getParams(originalUrl);
595
671
  const detail = {
596
672
  url,
673
+ params,
597
674
  timeStamp,
598
- readyState
675
+ readyState,
676
+ protocol,
677
+ extensions,
678
+ binaryType,
679
+ bufferedAmount
599
680
  };
600
681
  networkDispatcher(import_core11.EventTypes.WEBSOCKET_ERROR, detail);
601
682
  arg.apply(this, args);
package/dist/index.mjs CHANGED
@@ -54,7 +54,7 @@ var device = () => {
54
54
  };
55
55
 
56
56
  // src/version.ts
57
- var version = "2.4.0";
57
+ var version = "2.4.1";
58
58
 
59
59
  // src/extension.ts
60
60
  import { defineExtension } from "@ohbug/core";
@@ -258,16 +258,26 @@ import { getOhbugObject as getOhbugObject4 } from "@ohbug/utils";
258
258
  import { EventTypes } from "@ohbug/core";
259
259
  import ErrorStackParser from "error-stack-parser";
260
260
  function uncaughtErrorHandler(e) {
261
- var _a2, _b2, _c;
262
- const [stackFrame] = ErrorStackParser.parse(e.error);
261
+ var _a2, _b2, _c, _d;
263
262
  const detail = {
264
263
  name: (_a2 = e == null ? void 0 : e.error) == null ? void 0 : _a2.name,
265
264
  message: (e == null ? void 0 : e.message) || ((_b2 = e == null ? void 0 : e.error) == null ? void 0 : _b2.message),
266
- filename: (e == null ? void 0 : e.filename) || (stackFrame == null ? void 0 : stackFrame.fileName),
267
- lineno: (e == null ? void 0 : e.lineno) || (stackFrame == null ? void 0 : stackFrame.lineNumber),
268
- colno: (e == null ? void 0 : e.colno) || (stackFrame == null ? void 0 : stackFrame.columnNumber),
265
+ filename: e == null ? void 0 : e.filename,
266
+ lineno: e == null ? void 0 : e.lineno,
267
+ colno: e == null ? void 0 : e.colno,
269
268
  stack: (_c = e == null ? void 0 : e.error) == null ? void 0 : _c.stack
270
269
  };
270
+ if (e.error) {
271
+ try {
272
+ const stackFrame = (_d = ErrorStackParser.parse(e.error)) == null ? void 0 : _d[0];
273
+ if (stackFrame) {
274
+ detail.filename = stackFrame.fileName;
275
+ detail.lineno = stackFrame.lineNumber;
276
+ detail.colno = stackFrame.columnNumber;
277
+ }
278
+ } catch (_) {
279
+ }
280
+ }
271
281
  const { client } = getOhbugObject4();
272
282
  const event = client.createEvent({
273
283
  category: "error",
@@ -306,16 +316,23 @@ import { getOhbugObject as getOhbugObject6 } from "@ohbug/utils";
306
316
  import { EventTypes as EventTypes3 } from "@ohbug/core";
307
317
  import ErrorStackParser2 from "error-stack-parser";
308
318
  function unhandledrejectionErrorHandler(e) {
309
- var _a2, _b2, _c;
310
- const [stackFrame] = ErrorStackParser2.parse(e.reason);
319
+ var _a2, _b2, _c, _d;
311
320
  const detail = {
312
321
  name: (_a2 = e == null ? void 0 : e.reason) == null ? void 0 : _a2.name,
313
322
  message: ((_b2 = e == null ? void 0 : e.reason) == null ? void 0 : _b2.message) || (e == null ? void 0 : e.reason),
314
- filename: stackFrame == null ? void 0 : stackFrame.fileName,
315
- lineno: stackFrame == null ? void 0 : stackFrame.lineNumber,
316
- colno: stackFrame == null ? void 0 : stackFrame.columnNumber,
317
323
  stack: (_c = e == null ? void 0 : e.reason) == null ? void 0 : _c.stack
318
324
  };
325
+ if (e.reason) {
326
+ try {
327
+ const stackFrame = (_d = ErrorStackParser2.parse(e.reason)) == null ? void 0 : _d[0];
328
+ if (stackFrame) {
329
+ detail.filename = stackFrame.fileName;
330
+ detail.lineno = stackFrame.lineNumber;
331
+ detail.colno = stackFrame.columnNumber;
332
+ }
333
+ } catch (_) {
334
+ }
335
+ }
319
336
  const { client } = getOhbugObject6();
320
337
  const event = client.createEvent({
321
338
  category: "error",
@@ -330,16 +347,26 @@ import { getOhbugObject as getOhbugObject7 } from "@ohbug/utils";
330
347
  import { EventTypes as EventTypes4 } from "@ohbug/core";
331
348
  import ErrorStackParser3 from "error-stack-parser";
332
349
  function unknownErrorHandler(e) {
333
- var _a2, _b2, _c;
334
- const [stackFrame] = ErrorStackParser3.parse(e.error);
350
+ var _a2, _b2, _c, _d;
335
351
  const detail = {
336
352
  name: (_a2 = e == null ? void 0 : e.error) == null ? void 0 : _a2.name,
337
353
  message: (e == null ? void 0 : e.message) || ((_b2 = e == null ? void 0 : e.error) == null ? void 0 : _b2.message),
338
- filename: (e == null ? void 0 : e.filename) || (stackFrame == null ? void 0 : stackFrame.fileName),
339
- lineno: (e == null ? void 0 : e.lineno) || (stackFrame == null ? void 0 : stackFrame.lineNumber),
340
- colno: (e == null ? void 0 : e.colno) || (stackFrame == null ? void 0 : stackFrame.columnNumber),
354
+ filename: e == null ? void 0 : e.filename,
355
+ lineno: e == null ? void 0 : e.lineno,
356
+ colno: e == null ? void 0 : e.colno,
341
357
  stack: (_c = e == null ? void 0 : e.error) == null ? void 0 : _c.stack
342
358
  };
359
+ if (e.error) {
360
+ try {
361
+ const stackFrame = (_d = ErrorStackParser3.parse(e.error)) == null ? void 0 : _d[0];
362
+ if (stackFrame) {
363
+ detail.filename = stackFrame.fileName;
364
+ detail.lineno = stackFrame.lineNumber;
365
+ detail.colno = stackFrame.columnNumber;
366
+ }
367
+ } catch (_) {
368
+ }
369
+ }
343
370
  const { client } = getOhbugObject7();
344
371
  const event = client.createEvent({
345
372
  category: "error",
@@ -433,6 +460,31 @@ function networkDispatcher(type, detail) {
433
460
  }
434
461
  }
435
462
 
463
+ // src/capture/network/getParams.ts
464
+ var groupParamsByKey = (params) => [...params.entries()].reduce((acc, tuple) => {
465
+ const [key, val] = tuple;
466
+ if (acc.hasOwnProperty(key)) {
467
+ if (Array.isArray(acc[key])) {
468
+ acc[key] = [...acc[key], val];
469
+ } else {
470
+ acc[key] = [acc[key], val];
471
+ }
472
+ } else {
473
+ acc[key] = val;
474
+ }
475
+ return acc;
476
+ }, {});
477
+ function getParams(data) {
478
+ const location = new URL(data);
479
+ const url = location.origin + location.pathname;
480
+ const searchParams = location.search ? new URLSearchParams(location.search) : void 0;
481
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
482
+ return {
483
+ url,
484
+ params
485
+ };
486
+ }
487
+
436
488
  // src/capture/network/captureAjaxError.ts
437
489
  var global4 = getGlobal4();
438
490
  var access2 = "XMLHttpRequest" in global4;
@@ -466,10 +518,18 @@ function captureAjaxError() {
466
518
  this.addEventListener("readystatechange", function handle() {
467
519
  if (this.readyState === 4) {
468
520
  if (desc.url !== client.__config.endpoint) {
521
+ const { url, params } = getParams(desc.url);
469
522
  const detail = {
470
523
  req: {
471
- url: desc.url,
472
- method: desc.method
524
+ url,
525
+ method: desc.method,
526
+ data: args[0],
527
+ params
528
+ },
529
+ res: {
530
+ status: this.status,
531
+ statusText: this.statusText,
532
+ response: this.response
473
533
  }
474
534
  };
475
535
  client.addAction("ajax", detail, "ajax");
@@ -507,11 +567,18 @@ function captureFetchError() {
507
567
  (origin) => function call(...args) {
508
568
  return origin.apply(this, args).then(
509
569
  (res) => {
510
- const [url, conf] = args;
570
+ const [originalUrl, conf] = args;
571
+ const { url, params } = getParams(originalUrl);
511
572
  const detail = {
512
573
  req: {
513
574
  url,
514
- method: conf && conf.method
575
+ method: conf && conf.method,
576
+ data: conf && conf.body,
577
+ params
578
+ },
579
+ res: {
580
+ status: res.status,
581
+ statusText: res.statusText
515
582
  }
516
583
  };
517
584
  client.addAction("fetch", detail, "fetch");
@@ -521,12 +588,16 @@ function captureFetchError() {
521
588
  return res;
522
589
  },
523
590
  (err) => {
524
- const [url, conf] = args;
591
+ const [originalUrl, conf] = args;
592
+ const { url, params } = getParams(originalUrl);
525
593
  const detail = {
526
594
  req: {
527
595
  url,
528
- method: conf && conf.method
529
- }
596
+ method: conf && conf.method,
597
+ data: conf && conf.body,
598
+ params
599
+ },
600
+ res: { status: 400 }
530
601
  };
531
602
  networkDispatcher(EventTypes10.FETCH_ERROR, detail);
532
603
  throw err;
@@ -558,15 +629,25 @@ function captureWebSocketError() {
558
629
  (_a2 = backup == null ? void 0 : backup.set) == null ? void 0 : _a2.call(this, function call(e) {
559
630
  const {
560
631
  target: {
561
- url,
562
- readyState
632
+ url: originalUrl,
633
+ readyState,
634
+ protocol,
635
+ extensions,
636
+ binaryType,
637
+ bufferedAmount
563
638
  },
564
639
  timeStamp
565
640
  } = e;
641
+ const { url, params } = getParams(originalUrl);
566
642
  const detail = {
567
643
  url,
644
+ params,
568
645
  timeStamp,
569
- readyState
646
+ readyState,
647
+ protocol,
648
+ extensions,
649
+ binaryType,
650
+ bufferedAmount
570
651
  };
571
652
  networkDispatcher(EventTypes11.WEBSOCKET_ERROR, detail);
572
653
  arg.apply(this, args);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohbug/browser",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "Ohbug SDK for browsers",
5
5
  "license": "Apache-2.0",
6
6
  "author": "chenyueban <jasonchan0527@gmail.com>",