@ohbug/browser 2.4.0 → 2.4.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.
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.2";
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,43 @@ 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
+ try {
508
+ const location = new URL(data);
509
+ const url = location.origin + location.pathname;
510
+ const searchParams = location.search ? location.searchParams : void 0;
511
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
512
+ return {
513
+ url,
514
+ params
515
+ };
516
+ } catch (_) {
517
+ const location = data.split("?");
518
+ const url = location == null ? void 0 : location[0];
519
+ const search = location == null ? void 0 : location[1];
520
+ const searchParams = search ? new URLSearchParams(search) : void 0;
521
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
522
+ return {
523
+ url,
524
+ params
525
+ };
526
+ }
527
+ }
528
+
465
529
  // src/capture/network/captureAjaxError.ts
466
530
  var global4 = (0, import_utils12.getGlobal)();
467
531
  var access2 = "XMLHttpRequest" in global4;
@@ -495,10 +559,18 @@ function captureAjaxError() {
495
559
  this.addEventListener("readystatechange", function handle() {
496
560
  if (this.readyState === 4) {
497
561
  if (desc.url !== client.__config.endpoint) {
562
+ const { url, params } = getParams(desc.url);
498
563
  const detail = {
499
564
  req: {
500
- url: desc.url,
501
- method: desc.method
565
+ url,
566
+ method: desc.method,
567
+ data: args[0],
568
+ params
569
+ },
570
+ res: {
571
+ status: this.status,
572
+ statusText: this.statusText,
573
+ response: this.response
502
574
  }
503
575
  };
504
576
  client.addAction("ajax", detail, "ajax");
@@ -536,11 +608,18 @@ function captureFetchError() {
536
608
  (origin) => function call(...args) {
537
609
  return origin.apply(this, args).then(
538
610
  (res) => {
539
- const [url, conf] = args;
611
+ const [originalUrl, conf] = args;
612
+ const { url, params } = getParams(originalUrl);
540
613
  const detail = {
541
614
  req: {
542
615
  url,
543
- method: conf && conf.method
616
+ method: conf && conf.method,
617
+ data: conf && conf.body,
618
+ params
619
+ },
620
+ res: {
621
+ status: res.status,
622
+ statusText: res.statusText
544
623
  }
545
624
  };
546
625
  client.addAction("fetch", detail, "fetch");
@@ -550,12 +629,16 @@ function captureFetchError() {
550
629
  return res;
551
630
  },
552
631
  (err) => {
553
- const [url, conf] = args;
632
+ const [originalUrl, conf] = args;
633
+ const { url, params } = getParams(originalUrl);
554
634
  const detail = {
555
635
  req: {
556
636
  url,
557
- method: conf && conf.method
558
- }
637
+ method: conf && conf.method,
638
+ data: conf && conf.body,
639
+ params
640
+ },
641
+ res: { status: 400 }
559
642
  };
560
643
  networkDispatcher(import_core10.EventTypes.FETCH_ERROR, detail);
561
644
  throw err;
@@ -587,15 +670,25 @@ function captureWebSocketError() {
587
670
  (_a2 = backup == null ? void 0 : backup.set) == null ? void 0 : _a2.call(this, function call(e) {
588
671
  const {
589
672
  target: {
590
- url,
591
- readyState
673
+ url: originalUrl,
674
+ readyState,
675
+ protocol,
676
+ extensions,
677
+ binaryType,
678
+ bufferedAmount
592
679
  },
593
680
  timeStamp
594
681
  } = e;
682
+ const { url, params } = getParams(originalUrl);
595
683
  const detail = {
596
684
  url,
685
+ params,
597
686
  timeStamp,
598
- readyState
687
+ readyState,
688
+ protocol,
689
+ extensions,
690
+ binaryType,
691
+ bufferedAmount
599
692
  };
600
693
  networkDispatcher(import_core11.EventTypes.WEBSOCKET_ERROR, detail);
601
694
  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.2";
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,43 @@ 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
+ try {
479
+ const location = new URL(data);
480
+ const url = location.origin + location.pathname;
481
+ const searchParams = location.search ? location.searchParams : void 0;
482
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
483
+ return {
484
+ url,
485
+ params
486
+ };
487
+ } catch (_) {
488
+ const location = data.split("?");
489
+ const url = location == null ? void 0 : location[0];
490
+ const search = location == null ? void 0 : location[1];
491
+ const searchParams = search ? new URLSearchParams(search) : void 0;
492
+ const params = searchParams ? JSON.stringify(groupParamsByKey(searchParams)) : void 0;
493
+ return {
494
+ url,
495
+ params
496
+ };
497
+ }
498
+ }
499
+
436
500
  // src/capture/network/captureAjaxError.ts
437
501
  var global4 = getGlobal4();
438
502
  var access2 = "XMLHttpRequest" in global4;
@@ -466,10 +530,18 @@ function captureAjaxError() {
466
530
  this.addEventListener("readystatechange", function handle() {
467
531
  if (this.readyState === 4) {
468
532
  if (desc.url !== client.__config.endpoint) {
533
+ const { url, params } = getParams(desc.url);
469
534
  const detail = {
470
535
  req: {
471
- url: desc.url,
472
- method: desc.method
536
+ url,
537
+ method: desc.method,
538
+ data: args[0],
539
+ params
540
+ },
541
+ res: {
542
+ status: this.status,
543
+ statusText: this.statusText,
544
+ response: this.response
473
545
  }
474
546
  };
475
547
  client.addAction("ajax", detail, "ajax");
@@ -507,11 +579,18 @@ function captureFetchError() {
507
579
  (origin) => function call(...args) {
508
580
  return origin.apply(this, args).then(
509
581
  (res) => {
510
- const [url, conf] = args;
582
+ const [originalUrl, conf] = args;
583
+ const { url, params } = getParams(originalUrl);
511
584
  const detail = {
512
585
  req: {
513
586
  url,
514
- method: conf && conf.method
587
+ method: conf && conf.method,
588
+ data: conf && conf.body,
589
+ params
590
+ },
591
+ res: {
592
+ status: res.status,
593
+ statusText: res.statusText
515
594
  }
516
595
  };
517
596
  client.addAction("fetch", detail, "fetch");
@@ -521,12 +600,16 @@ function captureFetchError() {
521
600
  return res;
522
601
  },
523
602
  (err) => {
524
- const [url, conf] = args;
603
+ const [originalUrl, conf] = args;
604
+ const { url, params } = getParams(originalUrl);
525
605
  const detail = {
526
606
  req: {
527
607
  url,
528
- method: conf && conf.method
529
- }
608
+ method: conf && conf.method,
609
+ data: conf && conf.body,
610
+ params
611
+ },
612
+ res: { status: 400 }
530
613
  };
531
614
  networkDispatcher(EventTypes10.FETCH_ERROR, detail);
532
615
  throw err;
@@ -558,15 +641,25 @@ function captureWebSocketError() {
558
641
  (_a2 = backup == null ? void 0 : backup.set) == null ? void 0 : _a2.call(this, function call(e) {
559
642
  const {
560
643
  target: {
561
- url,
562
- readyState
644
+ url: originalUrl,
645
+ readyState,
646
+ protocol,
647
+ extensions,
648
+ binaryType,
649
+ bufferedAmount
563
650
  },
564
651
  timeStamp
565
652
  } = e;
653
+ const { url, params } = getParams(originalUrl);
566
654
  const detail = {
567
655
  url,
656
+ params,
568
657
  timeStamp,
569
- readyState
658
+ readyState,
659
+ protocol,
660
+ extensions,
661
+ binaryType,
662
+ bufferedAmount
570
663
  };
571
664
  networkDispatcher(EventTypes11.WEBSOCKET_ERROR, detail);
572
665
  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.2",
4
4
  "description": "Ohbug SDK for browsers",
5
5
  "license": "Apache-2.0",
6
6
  "author": "chenyueban <jasonchan0527@gmail.com>",