@posthog/core 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/error-tracking/chunk-ids.d.ts +5 -0
  2. package/dist/error-tracking/chunk-ids.d.ts.map +1 -0
  3. package/dist/error-tracking/chunk-ids.js +68 -0
  4. package/dist/error-tracking/chunk-ids.mjs +34 -0
  5. package/dist/error-tracking/coercers/dom-exception-coercer.d.ts +10 -0
  6. package/dist/error-tracking/coercers/dom-exception-coercer.d.ts.map +1 -0
  7. package/dist/error-tracking/coercers/dom-exception-coercer.js +65 -0
  8. package/dist/error-tracking/coercers/dom-exception-coercer.mjs +31 -0
  9. package/dist/error-tracking/coercers/error-coercer.d.ts +9 -0
  10. package/dist/error-tracking/coercers/error-coercer.d.ts.map +1 -0
  11. package/dist/error-tracking/coercers/error-coercer.js +61 -0
  12. package/dist/error-tracking/coercers/error-coercer.mjs +27 -0
  13. package/dist/error-tracking/coercers/error-event-coercer.d.ts +7 -0
  14. package/dist/error-tracking/coercers/error-event-coercer.d.ts.map +1 -0
  15. package/dist/error-tracking/coercers/error-event-coercer.js +53 -0
  16. package/dist/error-tracking/coercers/error-event-coercer.mjs +19 -0
  17. package/dist/error-tracking/coercers/event-coercer.d.ts +6 -0
  18. package/dist/error-tracking/coercers/event-coercer.d.ts.map +1 -0
  19. package/dist/error-tracking/coercers/event-coercer.js +52 -0
  20. package/dist/error-tracking/coercers/event-coercer.mjs +18 -0
  21. package/dist/error-tracking/coercers/index.d.ts +9 -0
  22. package/dist/error-tracking/coercers/index.d.ts.map +1 -0
  23. package/dist/error-tracking/coercers/index.js +123 -0
  24. package/dist/error-tracking/coercers/index.mjs +8 -0
  25. package/dist/error-tracking/coercers/object-coercer.d.ts +14 -0
  26. package/dist/error-tracking/coercers/object-coercer.d.ts.map +1 -0
  27. package/dist/error-tracking/coercers/object-coercer.js +86 -0
  28. package/dist/error-tracking/coercers/object-coercer.mjs +52 -0
  29. package/dist/error-tracking/coercers/primitive-coercer.d.ts +7 -0
  30. package/dist/error-tracking/coercers/primitive-coercer.d.ts.map +1 -0
  31. package/dist/error-tracking/coercers/primitive-coercer.js +50 -0
  32. package/dist/error-tracking/coercers/primitive-coercer.mjs +16 -0
  33. package/dist/error-tracking/coercers/promise-rejection-event.d.ts +7 -0
  34. package/dist/error-tracking/coercers/promise-rejection-event.d.ts.map +1 -0
  35. package/dist/error-tracking/coercers/promise-rejection-event.js +60 -0
  36. package/dist/error-tracking/coercers/promise-rejection-event.mjs +26 -0
  37. package/dist/error-tracking/coercers/string-coercer.d.ts +7 -0
  38. package/dist/error-tracking/coercers/string-coercer.d.ts.map +1 -0
  39. package/dist/error-tracking/coercers/string-coercer.js +64 -0
  40. package/dist/error-tracking/coercers/string-coercer.mjs +30 -0
  41. package/dist/error-tracking/coercers/utils.d.ts +8 -0
  42. package/dist/error-tracking/coercers/utils.d.ts.map +1 -0
  43. package/dist/error-tracking/coercers/utils.js +57 -0
  44. package/dist/error-tracking/coercers/utils.mjs +20 -0
  45. package/dist/error-tracking/error-properties-builder.d.ts +18 -0
  46. package/dist/error-tracking/error-properties-builder.d.ts.map +1 -0
  47. package/dist/error-tracking/error-properties-builder.js +156 -0
  48. package/dist/error-tracking/error-properties-builder.mjs +122 -0
  49. package/dist/error-tracking/index.d.ts +6 -0
  50. package/dist/error-tracking/index.d.ts.map +1 -0
  51. package/dist/error-tracking/index.js +87 -0
  52. package/dist/error-tracking/index.mjs +4 -0
  53. package/dist/error-tracking/parsers/base.d.ts +9 -0
  54. package/dist/error-tracking/parsers/base.d.ts.map +1 -0
  55. package/dist/error-tracking/parsers/base.js +71 -0
  56. package/dist/error-tracking/parsers/base.mjs +19 -0
  57. package/dist/error-tracking/parsers/chrome.d.ts +3 -0
  58. package/dist/error-tracking/parsers/chrome.d.ts.map +1 -0
  59. package/dist/error-tracking/parsers/chrome.js +61 -0
  60. package/dist/error-tracking/parsers/chrome.mjs +27 -0
  61. package/dist/error-tracking/parsers/gecko.d.ts +3 -0
  62. package/dist/error-tracking/parsers/gecko.d.ts.map +1 -0
  63. package/dist/error-tracking/parsers/gecko.js +58 -0
  64. package/dist/error-tracking/parsers/gecko.mjs +24 -0
  65. package/dist/error-tracking/parsers/index.d.ts +9 -0
  66. package/dist/error-tracking/parsers/index.d.ts.map +1 -0
  67. package/dist/error-tracking/parsers/index.js +101 -0
  68. package/dist/error-tracking/parsers/index.mjs +46 -0
  69. package/dist/error-tracking/parsers/node.d.ts +3 -0
  70. package/dist/error-tracking/parsers/node.d.ts.map +1 -0
  71. package/dist/error-tracking/parsers/node.js +101 -0
  72. package/dist/error-tracking/parsers/node.mjs +67 -0
  73. package/dist/error-tracking/parsers/opera.d.ts +4 -0
  74. package/dist/error-tracking/parsers/opera.d.ts.map +1 -0
  75. package/dist/error-tracking/parsers/opera.js +49 -0
  76. package/dist/error-tracking/parsers/opera.mjs +12 -0
  77. package/dist/error-tracking/parsers/react-native.d.ts +1 -0
  78. package/dist/error-tracking/parsers/react-native.d.ts.map +1 -0
  79. package/dist/error-tracking/parsers/react-native.js +5 -0
  80. package/dist/error-tracking/parsers/react-native.mjs +0 -0
  81. package/dist/error-tracking/parsers/safari.d.ts +22 -0
  82. package/dist/error-tracking/parsers/safari.d.ts.map +1 -0
  83. package/dist/error-tracking/parsers/safari.js +47 -0
  84. package/dist/error-tracking/parsers/safari.mjs +13 -0
  85. package/dist/error-tracking/parsers/winjs.d.ts +3 -0
  86. package/dist/error-tracking/parsers/winjs.d.ts.map +1 -0
  87. package/dist/error-tracking/parsers/winjs.js +41 -0
  88. package/dist/error-tracking/parsers/winjs.mjs +7 -0
  89. package/dist/error-tracking/types.d.ts +87 -0
  90. package/dist/error-tracking/types.d.ts.map +1 -0
  91. package/dist/error-tracking/types.js +43 -0
  92. package/dist/error-tracking/types.mjs +9 -0
  93. package/dist/error-tracking/utils.d.ts +13 -0
  94. package/dist/error-tracking/utils.d.ts.map +1 -0
  95. package/dist/error-tracking/utils.js +57 -0
  96. package/dist/error-tracking/utils.mjs +23 -0
  97. package/dist/index.d.ts +121 -9
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +13 -4
  100. package/dist/index.mjs +5 -4
  101. package/dist/testing/test-utils.d.ts +2 -0
  102. package/dist/testing/test-utils.d.ts.map +1 -1
  103. package/dist/testing/test-utils.js +12 -0
  104. package/dist/testing/test-utils.mjs +10 -1
  105. package/dist/utils/bucketed-rate-limiter.d.ts.map +1 -1
  106. package/dist/utils/number-utils.d.ts.map +1 -1
  107. package/dist/utils/type-utils.d.ts +8 -1
  108. package/dist/utils/type-utils.d.ts.map +1 -1
  109. package/dist/utils/type-utils.js +61 -6
  110. package/dist/utils/type-utils.mjs +36 -2
  111. package/package.json +8 -3
@@ -0,0 +1,24 @@
1
+ import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
2
+ import { extractSafariExtensionDetails } from "./safari.mjs";
3
+ const geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
4
+ const geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
5
+ const geckoStackLineParser = (line)=>{
6
+ const parts = geckoREgex.exec(line);
7
+ if (parts) {
8
+ const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
9
+ if (isEval) {
10
+ const subMatch = geckoEvalRegex.exec(parts[3]);
11
+ if (subMatch) {
12
+ parts[1] = parts[1] || 'eval';
13
+ parts[3] = subMatch[1];
14
+ parts[4] = subMatch[2];
15
+ parts[5] = '';
16
+ }
17
+ }
18
+ let filename = parts[3];
19
+ let func = parts[1] || UNKNOWN_FUNCTION;
20
+ [func, filename] = extractSafariExtensionDetails(func, filename);
21
+ return createFrame(filename, func, parts[4] ? +parts[4] : void 0, parts[5] ? +parts[5] : void 0);
22
+ }
23
+ };
24
+ export { geckoStackLineParser };
@@ -0,0 +1,9 @@
1
+ import { StackFrame, StackLineParser, StackParser } from '../types';
2
+ export { chromeStackLineParser } from './chrome';
3
+ export { winjsStackLineParser } from './winjs';
4
+ export { geckoStackLineParser } from './gecko';
5
+ export { opera10StackLineParser, opera11StackLineParser } from './opera';
6
+ export { nodeStackLineParser } from './node';
7
+ export declare function reverseAndStripFrames(stack: ReadonlyArray<StackFrame>): StackFrame[];
8
+ export declare function createStackParser(...parsers: StackLineParser[]): StackParser;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAK5C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAcpF;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE,GAAG,WAAW,CA0C5E"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ createStackParser: ()=>createStackParser,
28
+ winjsStackLineParser: ()=>external_winjs_js_namespaceObject.winjsStackLineParser,
29
+ nodeStackLineParser: ()=>external_node_js_namespaceObject.nodeStackLineParser,
30
+ geckoStackLineParser: ()=>external_gecko_js_namespaceObject.geckoStackLineParser,
31
+ opera10StackLineParser: ()=>external_opera_js_namespaceObject.opera10StackLineParser,
32
+ opera11StackLineParser: ()=>external_opera_js_namespaceObject.opera11StackLineParser,
33
+ chromeStackLineParser: ()=>external_chrome_js_namespaceObject.chromeStackLineParser,
34
+ reverseAndStripFrames: ()=>reverseAndStripFrames
35
+ });
36
+ const external_base_js_namespaceObject = require("./base.js");
37
+ const external_chrome_js_namespaceObject = require("./chrome.js");
38
+ const external_winjs_js_namespaceObject = require("./winjs.js");
39
+ const external_gecko_js_namespaceObject = require("./gecko.js");
40
+ const external_opera_js_namespaceObject = require("./opera.js");
41
+ const external_node_js_namespaceObject = require("./node.js");
42
+ const WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
43
+ const STACKTRACE_FRAME_LIMIT = 50;
44
+ function reverseAndStripFrames(stack) {
45
+ if (!stack.length) return [];
46
+ const localStack = Array.from(stack);
47
+ localStack.reverse();
48
+ return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame)=>({
49
+ ...frame,
50
+ filename: frame.filename || getLastStackFrame(localStack).filename,
51
+ function: frame.function || external_base_js_namespaceObject.UNKNOWN_FUNCTION
52
+ }));
53
+ }
54
+ function getLastStackFrame(arr) {
55
+ return arr[arr.length - 1] || {};
56
+ }
57
+ function createStackParser() {
58
+ for(var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++)parsers[_key] = arguments[_key];
59
+ return function(stack) {
60
+ let skipFirstLines = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
61
+ const frames = [];
62
+ const lines = stack.split('\n');
63
+ for(let i = skipFirstLines; i < lines.length; i++){
64
+ const line = lines[i];
65
+ if (line.length > 1024) continue;
66
+ const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;
67
+ if (!cleanedLine.match(/\S*Error: /)) {
68
+ for (const parser of parsers){
69
+ const frame = parser(cleanedLine);
70
+ if (frame) {
71
+ frames.push(frame);
72
+ break;
73
+ }
74
+ }
75
+ if (frames.length >= STACKTRACE_FRAME_LIMIT) break;
76
+ }
77
+ }
78
+ return reverseAndStripFrames(frames);
79
+ };
80
+ }
81
+ exports.chromeStackLineParser = __webpack_exports__.chromeStackLineParser;
82
+ exports.createStackParser = __webpack_exports__.createStackParser;
83
+ exports.geckoStackLineParser = __webpack_exports__.geckoStackLineParser;
84
+ exports.nodeStackLineParser = __webpack_exports__.nodeStackLineParser;
85
+ exports.opera10StackLineParser = __webpack_exports__.opera10StackLineParser;
86
+ exports.opera11StackLineParser = __webpack_exports__.opera11StackLineParser;
87
+ exports.reverseAndStripFrames = __webpack_exports__.reverseAndStripFrames;
88
+ exports.winjsStackLineParser = __webpack_exports__.winjsStackLineParser;
89
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
90
+ "chromeStackLineParser",
91
+ "createStackParser",
92
+ "geckoStackLineParser",
93
+ "nodeStackLineParser",
94
+ "opera10StackLineParser",
95
+ "opera11StackLineParser",
96
+ "reverseAndStripFrames",
97
+ "winjsStackLineParser"
98
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
99
+ Object.defineProperty(exports, '__esModule', {
100
+ value: true
101
+ });
@@ -0,0 +1,46 @@
1
+ import { UNKNOWN_FUNCTION } from "./base.mjs";
2
+ import { chromeStackLineParser } from "./chrome.mjs";
3
+ import { winjsStackLineParser } from "./winjs.mjs";
4
+ import { geckoStackLineParser } from "./gecko.mjs";
5
+ import { opera10StackLineParser, opera11StackLineParser } from "./opera.mjs";
6
+ import { nodeStackLineParser } from "./node.mjs";
7
+ const WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
8
+ const STACKTRACE_FRAME_LIMIT = 50;
9
+ function reverseAndStripFrames(stack) {
10
+ if (!stack.length) return [];
11
+ const localStack = Array.from(stack);
12
+ localStack.reverse();
13
+ return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame)=>({
14
+ ...frame,
15
+ filename: frame.filename || getLastStackFrame(localStack).filename,
16
+ function: frame.function || UNKNOWN_FUNCTION
17
+ }));
18
+ }
19
+ function getLastStackFrame(arr) {
20
+ return arr[arr.length - 1] || {};
21
+ }
22
+ function createStackParser() {
23
+ for(var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++)parsers[_key] = arguments[_key];
24
+ return function(stack) {
25
+ let skipFirstLines = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
26
+ const frames = [];
27
+ const lines = stack.split('\n');
28
+ for(let i = skipFirstLines; i < lines.length; i++){
29
+ const line = lines[i];
30
+ if (line.length > 1024) continue;
31
+ const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;
32
+ if (!cleanedLine.match(/\S*Error: /)) {
33
+ for (const parser of parsers){
34
+ const frame = parser(cleanedLine);
35
+ if (frame) {
36
+ frames.push(frame);
37
+ break;
38
+ }
39
+ }
40
+ if (frames.length >= STACKTRACE_FRAME_LIMIT) break;
41
+ }
42
+ }
43
+ return reverseAndStripFrames(frames);
44
+ };
45
+ }
46
+ export { chromeStackLineParser, createStackParser, geckoStackLineParser, nodeStackLineParser, opera10StackLineParser, opera11StackLineParser, reverseAndStripFrames, winjsStackLineParser };
@@ -0,0 +1,3 @@
1
+ import { StackLineParser } from '../types';
2
+ export declare const nodeStackLineParser: StackLineParser;
3
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAO1C,eAAO,MAAM,mBAAmB,EAAE,eA4EjC,CAAA"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ nodeStackLineParser: ()=>nodeStackLineParser
28
+ });
29
+ const external_base_js_namespaceObject = require("./base.js");
30
+ const FILENAME_MATCH = /^\s*[-]{4,}$/;
31
+ const FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
32
+ const nodeStackLineParser = (line)=>{
33
+ const lineMatch = line.match(FULL_MATCH);
34
+ if (lineMatch) {
35
+ var _lineMatch_;
36
+ let object;
37
+ let method;
38
+ let functionName;
39
+ let typeName;
40
+ let methodName;
41
+ if (lineMatch[1]) {
42
+ functionName = lineMatch[1];
43
+ let methodStart = functionName.lastIndexOf('.');
44
+ if ('.' === functionName[methodStart - 1]) methodStart--;
45
+ if (methodStart > 0) {
46
+ object = functionName.slice(0, methodStart);
47
+ method = functionName.slice(methodStart + 1);
48
+ const objectEnd = object.indexOf('.Module');
49
+ if (objectEnd > 0) {
50
+ functionName = functionName.slice(objectEnd + 1);
51
+ object = object.slice(0, objectEnd);
52
+ }
53
+ }
54
+ typeName = void 0;
55
+ }
56
+ if (method) {
57
+ typeName = object;
58
+ methodName = method;
59
+ }
60
+ if ('<anonymous>' === method) {
61
+ methodName = void 0;
62
+ functionName = void 0;
63
+ }
64
+ if (void 0 === functionName) {
65
+ methodName = methodName || external_base_js_namespaceObject.UNKNOWN_FUNCTION;
66
+ functionName = typeName ? `${typeName}.${methodName}` : methodName;
67
+ }
68
+ let filename = (null == (_lineMatch_ = lineMatch[2]) ? void 0 : _lineMatch_.startsWith('file://')) ? lineMatch[2].slice(7) : lineMatch[2];
69
+ const isNative = 'native' === lineMatch[5];
70
+ if (null == filename ? void 0 : filename.match(/\/[A-Z]:/)) filename = filename.slice(1);
71
+ if (!filename && lineMatch[5] && !isNative) filename = lineMatch[5];
72
+ return {
73
+ filename: filename ? decodeURI(filename) : void 0,
74
+ module: void 0,
75
+ function: functionName,
76
+ lineno: _parseIntOrUndefined(lineMatch[3]),
77
+ colno: _parseIntOrUndefined(lineMatch[4]),
78
+ in_app: filenameIsInApp(filename || '', isNative),
79
+ platform: "node:javascript"
80
+ };
81
+ }
82
+ if (line.match(FILENAME_MATCH)) return {
83
+ filename: line,
84
+ platform: "node:javascript"
85
+ };
86
+ };
87
+ function filenameIsInApp(filename) {
88
+ let isNative = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;
89
+ const isInternal = isNative || filename && !filename.startsWith('/') && !filename.match(/^[A-Z]:/) && !filename.startsWith('.') && !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//);
90
+ return !isInternal && void 0 !== filename && !filename.includes('node_modules/');
91
+ }
92
+ function _parseIntOrUndefined(input) {
93
+ return parseInt(input || '', 10) || void 0;
94
+ }
95
+ exports.nodeStackLineParser = __webpack_exports__.nodeStackLineParser;
96
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
97
+ "nodeStackLineParser"
98
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
99
+ Object.defineProperty(exports, '__esModule', {
100
+ value: true
101
+ });
@@ -0,0 +1,67 @@
1
+ import { UNKNOWN_FUNCTION } from "./base.mjs";
2
+ const FILENAME_MATCH = /^\s*[-]{4,}$/;
3
+ const FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
4
+ const nodeStackLineParser = (line)=>{
5
+ const lineMatch = line.match(FULL_MATCH);
6
+ if (lineMatch) {
7
+ var _lineMatch_;
8
+ let object;
9
+ let method;
10
+ let functionName;
11
+ let typeName;
12
+ let methodName;
13
+ if (lineMatch[1]) {
14
+ functionName = lineMatch[1];
15
+ let methodStart = functionName.lastIndexOf('.');
16
+ if ('.' === functionName[methodStart - 1]) methodStart--;
17
+ if (methodStart > 0) {
18
+ object = functionName.slice(0, methodStart);
19
+ method = functionName.slice(methodStart + 1);
20
+ const objectEnd = object.indexOf('.Module');
21
+ if (objectEnd > 0) {
22
+ functionName = functionName.slice(objectEnd + 1);
23
+ object = object.slice(0, objectEnd);
24
+ }
25
+ }
26
+ typeName = void 0;
27
+ }
28
+ if (method) {
29
+ typeName = object;
30
+ methodName = method;
31
+ }
32
+ if ('<anonymous>' === method) {
33
+ methodName = void 0;
34
+ functionName = void 0;
35
+ }
36
+ if (void 0 === functionName) {
37
+ methodName = methodName || UNKNOWN_FUNCTION;
38
+ functionName = typeName ? `${typeName}.${methodName}` : methodName;
39
+ }
40
+ let filename = (null == (_lineMatch_ = lineMatch[2]) ? void 0 : _lineMatch_.startsWith('file://')) ? lineMatch[2].slice(7) : lineMatch[2];
41
+ const isNative = 'native' === lineMatch[5];
42
+ if (null == filename ? void 0 : filename.match(/\/[A-Z]:/)) filename = filename.slice(1);
43
+ if (!filename && lineMatch[5] && !isNative) filename = lineMatch[5];
44
+ return {
45
+ filename: filename ? decodeURI(filename) : void 0,
46
+ module: void 0,
47
+ function: functionName,
48
+ lineno: _parseIntOrUndefined(lineMatch[3]),
49
+ colno: _parseIntOrUndefined(lineMatch[4]),
50
+ in_app: filenameIsInApp(filename || '', isNative),
51
+ platform: "node:javascript"
52
+ };
53
+ }
54
+ if (line.match(FILENAME_MATCH)) return {
55
+ filename: line,
56
+ platform: "node:javascript"
57
+ };
58
+ };
59
+ function filenameIsInApp(filename) {
60
+ let isNative = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;
61
+ const isInternal = isNative || filename && !filename.startsWith('/') && !filename.match(/^[A-Z]:/) && !filename.startsWith('.') && !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//);
62
+ return !isInternal && void 0 !== filename && !filename.includes('node_modules/');
63
+ }
64
+ function _parseIntOrUndefined(input) {
65
+ return parseInt(input || '', 10) || void 0;
66
+ }
67
+ export { nodeStackLineParser };
@@ -0,0 +1,4 @@
1
+ import { StackLineParser } from '../types';
2
+ export declare const opera10StackLineParser: StackLineParser;
3
+ export declare const opera11StackLineParser: StackLineParser;
4
+ //# sourceMappingURL=opera.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opera.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/opera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK1C,eAAO,MAAM,sBAAsB,EAAE,eAGpC,CAAA;AAMD,eAAO,MAAM,sBAAsB,EAAE,eAGpC,CAAA"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ opera11StackLineParser: ()=>opera11StackLineParser,
28
+ opera10StackLineParser: ()=>opera10StackLineParser
29
+ });
30
+ const external_base_js_namespaceObject = require("./base.js");
31
+ const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
32
+ const opera10StackLineParser = (line)=>{
33
+ const parts = opera10Regex.exec(line);
34
+ return parts ? (0, external_base_js_namespaceObject.createFrame)(parts[2], parts[3] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[1]) : void 0;
35
+ };
36
+ const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
37
+ const opera11StackLineParser = (line)=>{
38
+ const parts = opera11Regex.exec(line);
39
+ return parts ? (0, external_base_js_namespaceObject.createFrame)(parts[5], parts[3] || parts[4] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[1], +parts[2]) : void 0;
40
+ };
41
+ exports.opera10StackLineParser = __webpack_exports__.opera10StackLineParser;
42
+ exports.opera11StackLineParser = __webpack_exports__.opera11StackLineParser;
43
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
44
+ "opera10StackLineParser",
45
+ "opera11StackLineParser"
46
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
47
+ Object.defineProperty(exports, '__esModule', {
48
+ value: true
49
+ });
@@ -0,0 +1,12 @@
1
+ import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
2
+ const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
3
+ const opera10StackLineParser = (line)=>{
4
+ const parts = opera10Regex.exec(line);
5
+ return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : void 0;
6
+ };
7
+ const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
8
+ const opera11StackLineParser = (line)=>{
9
+ const parts = opera11Regex.exec(line);
10
+ return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : void 0;
11
+ };
12
+ export { opera10StackLineParser, opera11StackLineParser };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=react-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/react-native.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ var __webpack_exports__ = {};
2
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ });
File without changes
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
3
+ * What it means, is that instead of format like:
4
+ *
5
+ * Error: wat
6
+ * at function@url:row:col
7
+ * at function@url:row:col
8
+ * at function@url:row:col
9
+ *
10
+ * it produces something like:
11
+ *
12
+ * function@url:row:col
13
+ * function@url:row:col
14
+ * function@url:row:col
15
+ *
16
+ * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.
17
+ * This function is extracted so that we can use it in both places without duplicating the logic.
18
+ * Unfortunately "just" changing RegExp is too complicated now and making it pass all tests
19
+ * and fix this case seems like an impossible, or at least way too time-consuming task.
20
+ */
21
+ export declare const extractSafariExtensionDetails: (func: string, filename: string) => [string, string];
22
+ //# sourceMappingURL=safari.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safari.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/safari.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAU7F,CAAA"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ extractSafariExtensionDetails: ()=>extractSafariExtensionDetails
28
+ });
29
+ const external_base_js_namespaceObject = require("./base.js");
30
+ const extractSafariExtensionDetails = (func, filename)=>{
31
+ const isSafariExtension = -1 !== func.indexOf('safari-extension');
32
+ const isSafariWebExtension = -1 !== func.indexOf('safari-web-extension');
33
+ return isSafariExtension || isSafariWebExtension ? [
34
+ -1 !== func.indexOf('@') ? func.split('@')[0] : external_base_js_namespaceObject.UNKNOWN_FUNCTION,
35
+ isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`
36
+ ] : [
37
+ func,
38
+ filename
39
+ ];
40
+ };
41
+ exports.extractSafariExtensionDetails = __webpack_exports__.extractSafariExtensionDetails;
42
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
43
+ "extractSafariExtensionDetails"
44
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
45
+ Object.defineProperty(exports, '__esModule', {
46
+ value: true
47
+ });
@@ -0,0 +1,13 @@
1
+ import { UNKNOWN_FUNCTION } from "./base.mjs";
2
+ const extractSafariExtensionDetails = (func, filename)=>{
3
+ const isSafariExtension = -1 !== func.indexOf('safari-extension');
4
+ const isSafariWebExtension = -1 !== func.indexOf('safari-web-extension');
5
+ return isSafariExtension || isSafariWebExtension ? [
6
+ -1 !== func.indexOf('@') ? func.split('@')[0] : UNKNOWN_FUNCTION,
7
+ isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`
8
+ ] : [
9
+ func,
10
+ filename
11
+ ];
12
+ };
13
+ export { extractSafariExtensionDetails };
@@ -0,0 +1,3 @@
1
+ import { StackLineParser } from '../types';
2
+ export declare const winjsStackLineParser: StackLineParser;
3
+ //# sourceMappingURL=winjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winjs.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/winjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK1C,eAAO,MAAM,oBAAoB,EAAE,eAMlC,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ winjsStackLineParser: ()=>winjsStackLineParser
28
+ });
29
+ const external_base_js_namespaceObject = require("./base.js");
30
+ const winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
31
+ const winjsStackLineParser = (line)=>{
32
+ const parts = winjsRegex.exec(line);
33
+ return parts ? (0, external_base_js_namespaceObject.createFrame)(parts[2], parts[1] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : void 0) : void 0;
34
+ };
35
+ exports.winjsStackLineParser = __webpack_exports__.winjsStackLineParser;
36
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
37
+ "winjsStackLineParser"
38
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
39
+ Object.defineProperty(exports, '__esModule', {
40
+ value: true
41
+ });
@@ -0,0 +1,7 @@
1
+ import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
2
+ const winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
3
+ const winjsStackLineParser = (line)=>{
4
+ const parts = winjsRegex.exec(line);
5
+ return parts ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : void 0) : void 0;
6
+ };
7
+ export { winjsStackLineParser };