@posthog/core 1.0.2 → 1.2.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 (204) 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 +52 -0
  16. package/dist/error-tracking/coercers/error-event-coercer.mjs +18 -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 +51 -0
  20. package/dist/error-tracking/coercers/event-coercer.mjs +17 -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 +85 -0
  28. package/dist/error-tracking/coercers/object-coercer.mjs +51 -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 +49 -0
  32. package/dist/error-tracking/coercers/primitive-coercer.mjs +15 -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 +59 -0
  36. package/dist/error-tracking/coercers/promise-rejection-event.mjs +25 -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 +63 -0
  40. package/dist/error-tracking/coercers/string-coercer.mjs +29 -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 +55 -0
  44. package/dist/error-tracking/coercers/utils.mjs +18 -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 +152 -0
  48. package/dist/error-tracking/error-properties-builder.mjs +118 -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 +99 -0
  68. package/dist/error-tracking/parsers/index.mjs +44 -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 +99 -0
  72. package/dist/error-tracking/parsers/node.mjs +65 -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/eventemitter.js +4 -4
  98. package/dist/eventemitter.mjs +4 -4
  99. package/dist/featureFlagUtils.js +20 -45
  100. package/dist/featureFlagUtils.mjs +20 -45
  101. package/dist/gzip.js +1 -2
  102. package/dist/gzip.mjs +1 -2
  103. package/dist/index.d.ts +5 -255
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +61 -1223
  106. package/dist/index.mjs +6 -1190
  107. package/dist/posthog-core-stateless.d.ts +204 -0
  108. package/dist/posthog-core-stateless.d.ts.map +1 -0
  109. package/dist/posthog-core-stateless.js +675 -0
  110. package/dist/posthog-core-stateless.mjs +632 -0
  111. package/dist/posthog-core.d.ts +171 -0
  112. package/dist/posthog-core.d.ts.map +1 -0
  113. package/dist/posthog-core.js +554 -0
  114. package/dist/posthog-core.mjs +520 -0
  115. package/dist/testing/PostHogCoreTestClient.d.ts +2 -1
  116. package/dist/testing/PostHogCoreTestClient.d.ts.map +1 -1
  117. package/dist/testing/PostHogCoreTestClient.js +9 -11
  118. package/dist/testing/PostHogCoreTestClient.mjs +8 -10
  119. package/dist/testing/test-utils.d.ts +2 -0
  120. package/dist/testing/test-utils.d.ts.map +1 -1
  121. package/dist/testing/test-utils.js +13 -1
  122. package/dist/testing/test-utils.mjs +11 -2
  123. package/dist/utils/bucketed-rate-limiter.d.ts.map +1 -1
  124. package/dist/utils/bucketed-rate-limiter.js +8 -12
  125. package/dist/utils/bucketed-rate-limiter.mjs +8 -12
  126. package/dist/utils/index.js +3 -3
  127. package/dist/utils/index.mjs +3 -3
  128. package/dist/utils/number-utils.d.ts.map +1 -1
  129. package/dist/utils/type-utils.d.ts +8 -1
  130. package/dist/utils/type-utils.d.ts.map +1 -1
  131. package/dist/utils/type-utils.js +61 -6
  132. package/dist/utils/type-utils.mjs +36 -2
  133. package/dist/vendor/uuidv7.js +12 -16
  134. package/dist/vendor/uuidv7.mjs +12 -16
  135. package/package.json +10 -4
  136. package/src/__tests__/featureFlagUtils.spec.ts +427 -0
  137. package/src/__tests__/gzip.spec.ts +69 -0
  138. package/src/__tests__/posthog.ai.spec.ts +110 -0
  139. package/src/__tests__/posthog.capture.spec.ts +91 -0
  140. package/src/__tests__/posthog.core.spec.ts +135 -0
  141. package/src/__tests__/posthog.debug.spec.ts +36 -0
  142. package/src/__tests__/posthog.enqueue.spec.ts +93 -0
  143. package/src/__tests__/posthog.featureflags.spec.ts +1106 -0
  144. package/src/__tests__/posthog.featureflags.v1.spec.ts +922 -0
  145. package/src/__tests__/posthog.flush.spec.ts +237 -0
  146. package/src/__tests__/posthog.gdpr.spec.ts +50 -0
  147. package/src/__tests__/posthog.groups.spec.ts +96 -0
  148. package/src/__tests__/posthog.identify.spec.ts +194 -0
  149. package/src/__tests__/posthog.init.spec.ts +110 -0
  150. package/src/__tests__/posthog.listeners.spec.ts +51 -0
  151. package/src/__tests__/posthog.register.spec.ts +47 -0
  152. package/src/__tests__/posthog.reset.spec.ts +76 -0
  153. package/src/__tests__/posthog.sessions.spec.ts +63 -0
  154. package/src/__tests__/posthog.setProperties.spec.ts +102 -0
  155. package/src/__tests__/posthog.shutdown.spec.ts +88 -0
  156. package/src/__tests__/utils.spec.ts +36 -0
  157. package/src/error-tracking/chunk-ids.ts +58 -0
  158. package/src/error-tracking/coercers/dom-exception-coercer.ts +38 -0
  159. package/src/error-tracking/coercers/error-coercer.ts +36 -0
  160. package/src/error-tracking/coercers/error-event-coercer.ts +24 -0
  161. package/src/error-tracking/coercers/event-coercer.ts +19 -0
  162. package/src/error-tracking/coercers/index.ts +8 -0
  163. package/src/error-tracking/coercers/object-coercer.ts +76 -0
  164. package/src/error-tracking/coercers/primitive-coercer.ts +19 -0
  165. package/src/error-tracking/coercers/promise-rejection-event.spec.ts +77 -0
  166. package/src/error-tracking/coercers/promise-rejection-event.ts +53 -0
  167. package/src/error-tracking/coercers/string-coercer.spec.ts +26 -0
  168. package/src/error-tracking/coercers/string-coercer.ts +31 -0
  169. package/src/error-tracking/coercers/utils.ts +33 -0
  170. package/src/error-tracking/error-properties-builder.coerce.spec.ts +202 -0
  171. package/src/error-tracking/error-properties-builder.parse.spec.ts +30 -0
  172. package/src/error-tracking/error-properties-builder.ts +169 -0
  173. package/src/error-tracking/index.ts +5 -0
  174. package/src/error-tracking/parsers/base.ts +29 -0
  175. package/src/error-tracking/parsers/chrome.ts +53 -0
  176. package/src/error-tracking/parsers/gecko.ts +38 -0
  177. package/src/error-tracking/parsers/index.ts +104 -0
  178. package/src/error-tracking/parsers/node.ts +111 -0
  179. package/src/error-tracking/parsers/opera.ts +18 -0
  180. package/src/error-tracking/parsers/react-native.ts +0 -0
  181. package/src/error-tracking/parsers/safari.ts +33 -0
  182. package/src/error-tracking/parsers/winjs.ts +12 -0
  183. package/src/error-tracking/types.ts +107 -0
  184. package/src/error-tracking/utils.ts +39 -0
  185. package/src/eventemitter.ts +27 -0
  186. package/src/featureFlagUtils.ts +192 -0
  187. package/src/gzip.ts +29 -0
  188. package/src/index.ts +8 -0
  189. package/src/posthog-core-stateless.ts +1226 -0
  190. package/src/posthog-core.ts +958 -0
  191. package/src/testing/PostHogCoreTestClient.ts +91 -0
  192. package/src/testing/index.ts +2 -0
  193. package/src/testing/test-utils.ts +47 -0
  194. package/src/types.ts +544 -0
  195. package/src/utils/bucketed-rate-limiter.spec.ts +33 -0
  196. package/src/utils/bucketed-rate-limiter.ts +85 -0
  197. package/src/utils/index.ts +98 -0
  198. package/src/utils/number-utils.spec.ts +89 -0
  199. package/src/utils/number-utils.ts +30 -0
  200. package/src/utils/promise-queue.spec.ts +55 -0
  201. package/src/utils/promise-queue.ts +30 -0
  202. package/src/utils/string-utils.ts +23 -0
  203. package/src/utils/type-utils.ts +134 -0
  204. package/src/vendor/uuidv7.ts +479 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/object-coercer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAiC,MAAM,UAAU,CAAA;AAG9G,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzC,qBAAa,aAAc,YAAW,oBAAoB,CAAC,UAAU,CAAC;IACpE,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,UAAU;IAIlD,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;IAe9E,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAI7C,QAAQ,CAAC,GAAG,EAAE,MAAM;IAmBpB,OAAO,CAAC,eAAe;IAIvB,8EAA8E;IAC9E,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,kBAAkB;CAQ3B"}
@@ -0,0 +1,85 @@
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
+ ObjectCoercer: ()=>ObjectCoercer
28
+ });
29
+ const index_js_namespaceObject = require("../../utils/index.js");
30
+ const external_types_js_namespaceObject = require("../types.js");
31
+ const external_utils_js_namespaceObject = require("./utils.js");
32
+ class ObjectCoercer {
33
+ match(candidate) {
34
+ return 'object' == typeof candidate && null !== candidate;
35
+ }
36
+ coerce(candidate, ctx) {
37
+ const errorProperty = this.getErrorPropertyFromObject(candidate);
38
+ if (errorProperty) return ctx.apply(errorProperty);
39
+ return {
40
+ type: this.getType(candidate),
41
+ value: this.getValue(candidate),
42
+ stack: ctx.syntheticException?.stack,
43
+ level: this.isSeverityLevel(candidate.level) ? candidate.level : 'error',
44
+ synthetic: true
45
+ };
46
+ }
47
+ getType(err) {
48
+ return (0, index_js_namespaceObject.isEvent)(err) ? err.constructor.name : 'Error';
49
+ }
50
+ getValue(err) {
51
+ if ('name' in err && 'string' == typeof err.name) {
52
+ let message = `'${err.name}' captured as exception`;
53
+ if ('message' in err && 'string' == typeof err.message) message += ` with message: '${err.message}'`;
54
+ return message;
55
+ }
56
+ if ('message' in err && 'string' == typeof err.message) return err.message;
57
+ const className = this.getObjectClassName(err);
58
+ const keys = (0, external_utils_js_namespaceObject.extractExceptionKeysForMessage)(err);
59
+ return `${className && 'Object' !== className ? `'${className}'` : 'Object'} captured as exception with keys: ${keys}`;
60
+ }
61
+ isSeverityLevel(x) {
62
+ return (0, index_js_namespaceObject.isString)(x) && !(0, index_js_namespaceObject.isEmptyString)(x) && external_types_js_namespaceObject.severityLevels.indexOf(x) >= 0;
63
+ }
64
+ getErrorPropertyFromObject(obj) {
65
+ for(const prop in obj)if (Object.prototype.hasOwnProperty.call(obj, prop)) {
66
+ const value = obj[prop];
67
+ if ((0, index_js_namespaceObject.isError)(value)) return value;
68
+ }
69
+ }
70
+ getObjectClassName(obj) {
71
+ try {
72
+ const prototype = Object.getPrototypeOf(obj);
73
+ return prototype ? prototype.constructor.name : void 0;
74
+ } catch (e) {
75
+ return;
76
+ }
77
+ }
78
+ }
79
+ exports.ObjectCoercer = __webpack_exports__.ObjectCoercer;
80
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
81
+ "ObjectCoercer"
82
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
83
+ Object.defineProperty(exports, '__esModule', {
84
+ value: true
85
+ });
@@ -0,0 +1,51 @@
1
+ import { isEmptyString, isError, isEvent, isString } from "../../utils/index.mjs";
2
+ import { severityLevels } from "../types.mjs";
3
+ import { extractExceptionKeysForMessage } from "./utils.mjs";
4
+ class ObjectCoercer {
5
+ match(candidate) {
6
+ return 'object' == typeof candidate && null !== candidate;
7
+ }
8
+ coerce(candidate, ctx) {
9
+ const errorProperty = this.getErrorPropertyFromObject(candidate);
10
+ if (errorProperty) return ctx.apply(errorProperty);
11
+ return {
12
+ type: this.getType(candidate),
13
+ value: this.getValue(candidate),
14
+ stack: ctx.syntheticException?.stack,
15
+ level: this.isSeverityLevel(candidate.level) ? candidate.level : 'error',
16
+ synthetic: true
17
+ };
18
+ }
19
+ getType(err) {
20
+ return isEvent(err) ? err.constructor.name : 'Error';
21
+ }
22
+ getValue(err) {
23
+ if ('name' in err && 'string' == typeof err.name) {
24
+ let message = `'${err.name}' captured as exception`;
25
+ if ('message' in err && 'string' == typeof err.message) message += ` with message: '${err.message}'`;
26
+ return message;
27
+ }
28
+ if ('message' in err && 'string' == typeof err.message) return err.message;
29
+ const className = this.getObjectClassName(err);
30
+ const keys = extractExceptionKeysForMessage(err);
31
+ return `${className && 'Object' !== className ? `'${className}'` : 'Object'} captured as exception with keys: ${keys}`;
32
+ }
33
+ isSeverityLevel(x) {
34
+ return isString(x) && !isEmptyString(x) && severityLevels.indexOf(x) >= 0;
35
+ }
36
+ getErrorPropertyFromObject(obj) {
37
+ for(const prop in obj)if (Object.prototype.hasOwnProperty.call(obj, prop)) {
38
+ const value = obj[prop];
39
+ if (isError(value)) return value;
40
+ }
41
+ }
42
+ getObjectClassName(obj) {
43
+ try {
44
+ const prototype = Object.getPrototypeOf(obj);
45
+ return prototype ? prototype.constructor.name : void 0;
46
+ } catch (e) {
47
+ return;
48
+ }
49
+ }
50
+ }
51
+ export { ObjectCoercer };
@@ -0,0 +1,7 @@
1
+ import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
2
+ export type PrimitiveType = null | undefined | boolean | number | string | symbol | bigint;
3
+ export declare class PrimitiveCoercer implements ErrorTrackingCoercer<PrimitiveType> {
4
+ match(candidate: unknown): candidate is PrimitiveType;
5
+ coerce(value: PrimitiveType, ctx: CoercingContext): ExceptionLike | undefined;
6
+ }
7
+ //# sourceMappingURL=primitive-coercer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/primitive-coercer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/E,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1F,qBAAa,gBAAiB,YAAW,oBAAoB,CAAC,aAAa,CAAC;IAC1E,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,aAAa;IAIrD,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;CAQ9E"}
@@ -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
+ PrimitiveCoercer: ()=>PrimitiveCoercer
28
+ });
29
+ const index_js_namespaceObject = require("../../utils/index.js");
30
+ class PrimitiveCoercer {
31
+ match(candidate) {
32
+ return (0, index_js_namespaceObject.isPrimitive)(candidate);
33
+ }
34
+ coerce(value, ctx) {
35
+ return {
36
+ type: 'Error',
37
+ value: `Primitive value captured as exception: ${String(value)}`,
38
+ stack: ctx.syntheticException?.stack,
39
+ synthetic: true
40
+ };
41
+ }
42
+ }
43
+ exports.PrimitiveCoercer = __webpack_exports__.PrimitiveCoercer;
44
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
45
+ "PrimitiveCoercer"
46
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
47
+ Object.defineProperty(exports, '__esModule', {
48
+ value: true
49
+ });
@@ -0,0 +1,15 @@
1
+ import { isPrimitive } from "../../utils/index.mjs";
2
+ class PrimitiveCoercer {
3
+ match(candidate) {
4
+ return isPrimitive(candidate);
5
+ }
6
+ coerce(value, ctx) {
7
+ return {
8
+ type: 'Error',
9
+ value: `Primitive value captured as exception: ${String(value)}`,
10
+ stack: ctx.syntheticException?.stack,
11
+ synthetic: true
12
+ };
13
+ }
14
+ }
15
+ export { PrimitiveCoercer };
@@ -0,0 +1,7 @@
1
+ import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
2
+ export declare class PromiseRejectionEventCoercer implements ErrorTrackingCoercer<PromiseRejectionEvent> {
3
+ match(err: unknown): err is PromiseRejectionEvent;
4
+ coerce(err: PromiseRejectionEvent, ctx: CoercingContext): ExceptionLike | undefined;
5
+ private getUnhandledRejectionReason;
6
+ }
7
+ //# sourceMappingURL=promise-rejection-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-rejection-event.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/promise-rejection-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG/E,qBAAa,4BAA6B,YAAW,oBAAoB,CAAC,qBAAqB,CAAC;IAC9F,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB;IAIjD,MAAM,CAAC,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;IAcnF,OAAO,CAAC,2BAA2B;CA6BpC"}
@@ -0,0 +1,59 @@
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
+ PromiseRejectionEventCoercer: ()=>PromiseRejectionEventCoercer
28
+ });
29
+ const index_js_namespaceObject = require("../../utils/index.js");
30
+ class PromiseRejectionEventCoercer {
31
+ match(err) {
32
+ return (0, index_js_namespaceObject.isBuiltin)(err, 'PromiseRejectionEvent');
33
+ }
34
+ coerce(err, ctx) {
35
+ const reason = this.getUnhandledRejectionReason(err);
36
+ if ((0, index_js_namespaceObject.isPrimitive)(reason)) return {
37
+ type: 'UnhandledRejection',
38
+ value: `Non-Error promise rejection captured with value: ${String(reason)}`,
39
+ stack: ctx.syntheticException?.stack,
40
+ synthetic: true
41
+ };
42
+ return ctx.apply(reason);
43
+ }
44
+ getUnhandledRejectionReason(error) {
45
+ if ((0, index_js_namespaceObject.isPrimitive)(error)) return error;
46
+ try {
47
+ if ('reason' in error) return error.reason;
48
+ if ('detail' in error && 'reason' in error.detail) return error.detail.reason;
49
+ } catch {}
50
+ return error;
51
+ }
52
+ }
53
+ exports.PromiseRejectionEventCoercer = __webpack_exports__.PromiseRejectionEventCoercer;
54
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
55
+ "PromiseRejectionEventCoercer"
56
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
57
+ Object.defineProperty(exports, '__esModule', {
58
+ value: true
59
+ });
@@ -0,0 +1,25 @@
1
+ import { isBuiltin, isPrimitive } from "../../utils/index.mjs";
2
+ class PromiseRejectionEventCoercer {
3
+ match(err) {
4
+ return isBuiltin(err, 'PromiseRejectionEvent');
5
+ }
6
+ coerce(err, ctx) {
7
+ const reason = this.getUnhandledRejectionReason(err);
8
+ if (isPrimitive(reason)) return {
9
+ type: 'UnhandledRejection',
10
+ value: `Non-Error promise rejection captured with value: ${String(reason)}`,
11
+ stack: ctx.syntheticException?.stack,
12
+ synthetic: true
13
+ };
14
+ return ctx.apply(reason);
15
+ }
16
+ getUnhandledRejectionReason(error) {
17
+ if (isPrimitive(error)) return error;
18
+ try {
19
+ if ('reason' in error) return error.reason;
20
+ if ('detail' in error && 'reason' in error.detail) return error.detail.reason;
21
+ } catch {}
22
+ return error;
23
+ }
24
+ }
25
+ export { PromiseRejectionEventCoercer };
@@ -0,0 +1,7 @@
1
+ import { ExceptionLike, ErrorTrackingCoercer, CoercingContext } from '../types';
2
+ export declare class StringCoercer implements ErrorTrackingCoercer<string> {
3
+ match(input: unknown): input is string;
4
+ coerce(input: string, ctx: CoercingContext): ExceptionLike;
5
+ getInfos(candidate: string): [string, string];
6
+ }
7
+ //# sourceMappingURL=string-coercer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/string-coercer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK/E,qBAAa,aAAc,YAAW,oBAAoB,CAAC,MAAM,CAAC;IAChE,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAItC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa;IAU1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAU9C"}
@@ -0,0 +1,63 @@
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
+ StringCoercer: ()=>StringCoercer
28
+ });
29
+ const ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
30
+ class StringCoercer {
31
+ match(input) {
32
+ return 'string' == typeof input;
33
+ }
34
+ coerce(input, ctx) {
35
+ const [type, value] = this.getInfos(input);
36
+ return {
37
+ type: type ?? 'Error',
38
+ value: value ?? input,
39
+ stack: ctx.syntheticException?.stack,
40
+ synthetic: true
41
+ };
42
+ }
43
+ getInfos(candidate) {
44
+ let type = 'Error';
45
+ let value = candidate;
46
+ const groups = candidate.match(ERROR_TYPES_PATTERN);
47
+ if (groups) {
48
+ type = groups[1];
49
+ value = groups[2];
50
+ }
51
+ return [
52
+ type,
53
+ value
54
+ ];
55
+ }
56
+ }
57
+ exports.StringCoercer = __webpack_exports__.StringCoercer;
58
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
59
+ "StringCoercer"
60
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
61
+ Object.defineProperty(exports, '__esModule', {
62
+ value: true
63
+ });
@@ -0,0 +1,29 @@
1
+ const ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
2
+ class StringCoercer {
3
+ match(input) {
4
+ return 'string' == typeof input;
5
+ }
6
+ coerce(input, ctx) {
7
+ const [type, value] = this.getInfos(input);
8
+ return {
9
+ type: type ?? 'Error',
10
+ value: value ?? input,
11
+ stack: ctx.syntheticException?.stack,
12
+ synthetic: true
13
+ };
14
+ }
15
+ getInfos(candidate) {
16
+ let type = 'Error';
17
+ let value = candidate;
18
+ const groups = candidate.match(ERROR_TYPES_PATTERN);
19
+ if (groups) {
20
+ type = groups[1];
21
+ value = groups[2];
22
+ }
23
+ return [
24
+ type,
25
+ value
26
+ ];
27
+ }
28
+ }
29
+ export { StringCoercer };
@@ -0,0 +1,8 @@
1
+ export declare function truncate(str: string, max?: number): string;
2
+ /**
3
+ * Given any captured exception, extract its keys and create a sorted
4
+ * and truncated list that will be used inside the event message.
5
+ * eg. `Non-error exception captured with keys: foo, bar, baz`
6
+ */
7
+ export declare function extractExceptionKeysForMessage(err: object, maxLength?: number): string;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,MAAM,CAK7D;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAK,GAAG,MAAM,CAoBlF"}
@@ -0,0 +1,55 @@
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
+ extractExceptionKeysForMessage: ()=>extractExceptionKeysForMessage,
28
+ truncate: ()=>truncate
29
+ });
30
+ function truncate(str, max = 0) {
31
+ if ('string' != typeof str || 0 === max) return str;
32
+ return str.length <= max ? str : `${str.slice(0, max)}...`;
33
+ }
34
+ function extractExceptionKeysForMessage(err, maxLength = 40) {
35
+ const keys = Object.keys(err);
36
+ keys.sort();
37
+ if (!keys.length) return '[object has no keys]';
38
+ for(let i = keys.length; i > 0; i--){
39
+ const serialized = keys.slice(0, i).join(', ');
40
+ if (!(serialized.length > maxLength)) {
41
+ if (i === keys.length) return serialized;
42
+ return serialized.length <= maxLength ? serialized : `${serialized.slice(0, maxLength)}...`;
43
+ }
44
+ }
45
+ return '';
46
+ }
47
+ exports.extractExceptionKeysForMessage = __webpack_exports__.extractExceptionKeysForMessage;
48
+ exports.truncate = __webpack_exports__.truncate;
49
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
50
+ "extractExceptionKeysForMessage",
51
+ "truncate"
52
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
53
+ Object.defineProperty(exports, '__esModule', {
54
+ value: true
55
+ });
@@ -0,0 +1,18 @@
1
+ function truncate(str, max = 0) {
2
+ if ('string' != typeof str || 0 === max) return str;
3
+ return str.length <= max ? str : `${str.slice(0, max)}...`;
4
+ }
5
+ function extractExceptionKeysForMessage(err, maxLength = 40) {
6
+ const keys = Object.keys(err);
7
+ keys.sort();
8
+ if (!keys.length) return '[object has no keys]';
9
+ for(let i = keys.length; i > 0; i--){
10
+ const serialized = keys.slice(0, i).join(', ');
11
+ if (!(serialized.length > maxLength)) {
12
+ if (i === keys.length) return serialized;
13
+ return serialized.length <= maxLength ? serialized : `${serialized.slice(0, maxLength)}...`;
14
+ }
15
+ }
16
+ return '';
17
+ }
18
+ export { extractExceptionKeysForMessage, truncate };
@@ -0,0 +1,18 @@
1
+ import { ErrorProperties, ExceptionLike, CoercingContext, StackFrameModifierFn, StackParser, ErrorTrackingCoercer, EventHint, StackLineParser, ParsingContext, Mechanism, ParsedException } from './types';
2
+ export declare class ErrorPropertiesBuilder {
3
+ private coercers;
4
+ private modifiers;
5
+ stackParser: StackParser;
6
+ constructor(coercers?: ErrorTrackingCoercer<any>[], parsers?: StackLineParser[], modifiers?: StackFrameModifierFn[]);
7
+ buildFromUnknown(input: unknown, hint?: EventHint): ErrorProperties;
8
+ coerceFallback(ctx: CoercingContext): ExceptionLike;
9
+ parseStacktrace(err: ExceptionLike, ctx: ParsingContext): ParsedException;
10
+ private applyChunkIds;
11
+ private applyCoercers;
12
+ private applyModifiers;
13
+ private modifyFrames;
14
+ private convertToExceptionList;
15
+ buildParsingContext(): ParsingContext;
16
+ buildCoercingContext(mechanism: Mechanism, hint: EventHint, depth?: number): CoercingContext;
17
+ }
18
+ //# sourceMappingURL=error-properties-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-properties-builder.d.ts","sourceRoot":"","sources":["../../src/error-tracking/error-properties-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,aAAa,EAEb,eAAe,EAEf,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,cAAc,EAEd,SAAS,EACT,eAAe,EAEhB,MAAM,SAAS,CAAA;AAIhB,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,SAAS;IALnB,WAAW,EAAE,WAAW,CAAA;gBAGd,QAAQ,GAAE,oBAAoB,CAAC,GAAG,CAAC,EAAO,EAClD,OAAO,GAAE,eAAe,EAAO,EACvB,SAAS,GAAE,oBAAoB,EAAO;IAKhD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,SAAc,GAAG,eAAe;IAiBvE,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa;IASnD,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,eAAe;IAYzE,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;YASP,cAAc;YAQd,YAAY;IAY1B,OAAO,CAAC,sBAAsB;IA6B9B,mBAAmB,IAAI,cAAc;IAOrC,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,GAAG,eAAe;CAuBhG"}