11.26 修改K线图样式

This commit is contained in:
尚政杰
2025-11-26 17:19:38 +08:00
parent 48f49c6cf0
commit 4e64455b9b
4803 changed files with 146408 additions and 648 deletions

View File

@@ -1,4 +1,5 @@
import App from './App' import App from './App'
import share from './utils/share.js'
// #ifndef VUE3 // #ifndef VUE3
import Vue from 'vue' import Vue from 'vue'
@@ -15,6 +16,7 @@ app.$mount()
import { createSSRApp } from 'vue' import { createSSRApp } from 'vue'
export function createApp() { export function createApp() {
const app = createSSRApp(App) const app = createSSRApp(App)
app.mixin(share)
return { return {
app app
} }

1
node_modules/.bin/node-which generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../which/bin/node-which

116
node_modules/.package-lock.json generated vendored Normal file
View File

@@ -0,0 +1,116 @@
{
"name": "uniapp markdown语法渲染及代码高亮",
"version": "1.2.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/@posthog/core": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.6.0.tgz",
"integrity": "sha512-Tbh8UACwbb7jFdDC7wwXHtfNzO+4wKh3VbyMHmp2UBe6w1jliJixexTJNfkqdGZm+ht3M10mcKvGGPnoZ2zLBg==",
"dependencies": {
"cross-spawn": "^7.0.6"
}
},
"node_modules/core-js": {
"version": "3.47.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz",
"integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/fflate": {
"version": "0.4.8",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz",
"integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA=="
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"engines": {
"node": ">=8"
}
},
"node_modules/posthog-js": {
"version": "1.298.0",
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.298.0.tgz",
"integrity": "sha512-Zwzsf7TO8qJ6DFLuUlQSsT/5OIOcxSBZlKOSk3satkEnwKdmnBXUuxgVXRHrvq1kj7OB2PVAPgZiQ8iHHj9DRA==",
"dependencies": {
"@posthog/core": "1.6.0",
"core-js": "^3.38.1",
"fflate": "^0.4.8",
"preact": "^10.19.3",
"web-vitals": "^4.2.4"
}
},
"node_modules/preact": {
"version": "10.27.2",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz",
"integrity": "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dependencies": {
"shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"engines": {
"node": ">=8"
}
},
"node_modules/web-vitals": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
"integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw=="
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
}
}
}

View File

@@ -0,0 +1,5 @@
import type { StackParser } from './types';
type ChunkIdMapType = Record<string, string>;
export declare function getFilenameToChunkIdMap(stackParser: StackParser): ChunkIdMapType | undefined;
export {};
//# sourceMappingURL=chunk-ids.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"chunk-ids.d.ts","sourceRoot":"","sources":["../../src/error-tracking/chunk-ids.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAM5C,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CA2C5F"}

View File

@@ -0,0 +1,68 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
getFilenameToChunkIdMap: ()=>getFilenameToChunkIdMap
});
let parsedStackResults;
let lastKeysCount;
let cachedFilenameChunkIds;
function getFilenameToChunkIdMap(stackParser) {
const chunkIdMap = globalThis._posthogChunkIds;
if (!chunkIdMap) return;
const chunkIdKeys = Object.keys(chunkIdMap);
if (cachedFilenameChunkIds && chunkIdKeys.length === lastKeysCount) return cachedFilenameChunkIds;
lastKeysCount = chunkIdKeys.length;
cachedFilenameChunkIds = chunkIdKeys.reduce((acc, stackKey)=>{
if (!parsedStackResults) parsedStackResults = {};
const result = parsedStackResults[stackKey];
if (result) acc[result[0]] = result[1];
else {
const parsedStack = stackParser(stackKey);
for(let i = parsedStack.length - 1; i >= 0; i--){
const stackFrame = parsedStack[i];
const filename = stackFrame?.filename;
const chunkId = chunkIdMap[stackKey];
if (filename && chunkId) {
acc[filename] = chunkId;
parsedStackResults[stackKey] = [
filename,
chunkId
];
break;
}
}
}
return acc;
}, {});
return cachedFilenameChunkIds;
}
exports.getFilenameToChunkIdMap = __webpack_exports__.getFilenameToChunkIdMap;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"getFilenameToChunkIdMap"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,34 @@
let parsedStackResults;
let lastKeysCount;
let cachedFilenameChunkIds;
function getFilenameToChunkIdMap(stackParser) {
const chunkIdMap = globalThis._posthogChunkIds;
if (!chunkIdMap) return;
const chunkIdKeys = Object.keys(chunkIdMap);
if (cachedFilenameChunkIds && chunkIdKeys.length === lastKeysCount) return cachedFilenameChunkIds;
lastKeysCount = chunkIdKeys.length;
cachedFilenameChunkIds = chunkIdKeys.reduce((acc, stackKey)=>{
if (!parsedStackResults) parsedStackResults = {};
const result = parsedStackResults[stackKey];
if (result) acc[result[0]] = result[1];
else {
const parsedStack = stackParser(stackKey);
for(let i = parsedStack.length - 1; i >= 0; i--){
const stackFrame = parsedStack[i];
const filename = stackFrame?.filename;
const chunkId = chunkIdMap[stackKey];
if (filename && chunkId) {
acc[filename] = chunkId;
parsedStackResults[stackKey] = [
filename,
chunkId
];
break;
}
}
}
return acc;
}, {});
return cachedFilenameChunkIds;
}
export { getFilenameToChunkIdMap };

View File

@@ -0,0 +1,10 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export declare class DOMExceptionCoercer implements ErrorTrackingCoercer<DOMException> {
match(err: unknown): err is DOMException;
coerce(err: DOMException, ctx: CoercingContext): ExceptionLike;
private getType;
private getValue;
private isDOMException;
private isDOMError;
}
//# sourceMappingURL=dom-exception-coercer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"dom-exception-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/dom-exception-coercer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAG7F,qBAAa,mBAAoB,YAAW,oBAAoB,CAAC,YAAY,CAAC;IAC5E,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY;IAIxC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa;IAY9D,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;CAGnB"}

View File

@@ -0,0 +1,65 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
DOMExceptionCoercer: ()=>DOMExceptionCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
class DOMExceptionCoercer {
match(err) {
return this.isDOMException(err) || this.isDOMError(err);
}
coerce(err, ctx) {
const hasStack = (0, index_js_namespaceObject.isString)(err.stack);
return {
type: this.getType(err),
value: this.getValue(err),
stack: hasStack ? err.stack : void 0,
cause: err.cause ? ctx.next(err.cause) : void 0,
synthetic: false
};
}
getType(candidate) {
return this.isDOMError(candidate) ? 'DOMError' : 'DOMException';
}
getValue(err) {
const name = err.name || (this.isDOMError(err) ? 'DOMError' : 'DOMException');
const message = err.message ? `${name}: ${err.message}` : name;
return message;
}
isDOMException(err) {
return (0, index_js_namespaceObject.isBuiltin)(err, 'DOMException');
}
isDOMError(err) {
return (0, index_js_namespaceObject.isBuiltin)(err, 'DOMError');
}
}
exports.DOMExceptionCoercer = __webpack_exports__.DOMExceptionCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"DOMExceptionCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,31 @@
import { isBuiltin, isString } from "../../utils/index.mjs";
class DOMExceptionCoercer {
match(err) {
return this.isDOMException(err) || this.isDOMError(err);
}
coerce(err, ctx) {
const hasStack = isString(err.stack);
return {
type: this.getType(err),
value: this.getValue(err),
stack: hasStack ? err.stack : void 0,
cause: err.cause ? ctx.next(err.cause) : void 0,
synthetic: false
};
}
getType(candidate) {
return this.isDOMError(candidate) ? 'DOMError' : 'DOMException';
}
getValue(err) {
const name = err.name || (this.isDOMError(err) ? 'DOMError' : 'DOMException');
const message = err.message ? `${name}: ${err.message}` : name;
return message;
}
isDOMException(err) {
return isBuiltin(err, 'DOMException');
}
isDOMError(err) {
return isBuiltin(err, 'DOMError');
}
}
export { DOMExceptionCoercer };

View File

@@ -0,0 +1,9 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export declare class ErrorCoercer implements ErrorTrackingCoercer<Error> {
match(err: unknown): err is Error;
coerce(err: Error, ctx: CoercingContext): ExceptionLike;
private getType;
private getMessage;
private getStack;
}
//# sourceMappingURL=error-coercer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"error-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/error-coercer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/E,qBAAa,YAAa,YAAW,oBAAoB,CAAC,KAAK,CAAC;IAC9D,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK;IAIjC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa;IAUvD,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;CAGjB"}

View File

@@ -0,0 +1,61 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
ErrorCoercer: ()=>ErrorCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
class ErrorCoercer {
match(err) {
return (0, index_js_namespaceObject.isPlainError)(err);
}
coerce(err, ctx) {
return {
type: this.getType(err),
value: this.getMessage(err, ctx),
stack: this.getStack(err),
cause: err.cause ? ctx.next(err.cause) : void 0,
synthetic: false
};
}
getType(err) {
return err.name || err.constructor.name;
}
getMessage(err, _ctx) {
const message = err.message;
if (message.error && 'string' == typeof message.error.message) return String(message.error.message);
return String(message);
}
getStack(err) {
return err.stacktrace || err.stack || void 0;
}
}
exports.ErrorCoercer = __webpack_exports__.ErrorCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"ErrorCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,27 @@
import { isPlainError } from "../../utils/index.mjs";
class ErrorCoercer {
match(err) {
return isPlainError(err);
}
coerce(err, ctx) {
return {
type: this.getType(err),
value: this.getMessage(err, ctx),
stack: this.getStack(err),
cause: err.cause ? ctx.next(err.cause) : void 0,
synthetic: false
};
}
getType(err) {
return err.name || err.constructor.name;
}
getMessage(err, _ctx) {
const message = err.message;
if (message.error && 'string' == typeof message.error.message) return String(message.error.message);
return String(message);
}
getStack(err) {
return err.stacktrace || err.stack || void 0;
}
}
export { ErrorCoercer };

View File

@@ -0,0 +1,7 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export declare class ErrorEventCoercer implements ErrorTrackingCoercer<ErrorEvent> {
constructor();
match(err: unknown): err is ErrorEvent;
coerce(err: ErrorEvent, ctx: CoercingContext): ExceptionLike;
}
//# sourceMappingURL=error-event-coercer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"error-event-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/error-event-coercer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG/E,qBAAa,iBAAkB,YAAW,oBAAoB,CAAC,UAAU,CAAC;;IAGxE,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU;IAItC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa;CAa7D"}

View File

@@ -0,0 +1,52 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
ErrorEventCoercer: ()=>ErrorEventCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
class ErrorEventCoercer {
constructor(){}
match(err) {
return (0, index_js_namespaceObject.isErrorEvent)(err) && void 0 != err.error;
}
coerce(err, ctx) {
const exceptionLike = ctx.apply(err.error);
if (!exceptionLike) return {
type: 'ErrorEvent',
value: err.message,
stack: ctx.syntheticException?.stack,
synthetic: true
};
return exceptionLike;
}
}
exports.ErrorEventCoercer = __webpack_exports__.ErrorEventCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"ErrorEventCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,18 @@
import { isErrorEvent } from "../../utils/index.mjs";
class ErrorEventCoercer {
constructor(){}
match(err) {
return isErrorEvent(err) && void 0 != err.error;
}
coerce(err, ctx) {
const exceptionLike = ctx.apply(err.error);
if (!exceptionLike) return {
type: 'ErrorEvent',
value: err.message,
stack: ctx.syntheticException?.stack,
synthetic: true
};
return exceptionLike;
}
}
export { ErrorEventCoercer };

View File

@@ -0,0 +1,6 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export declare class EventCoercer implements ErrorTrackingCoercer<Event> {
match(err: unknown): err is Event;
coerce(evt: Event, ctx: CoercingContext): ExceptionLike;
}
//# sourceMappingURL=event-coercer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"event-coercer.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/event-coercer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG/E,qBAAa,YAAa,YAAW,oBAAoB,CAAC,KAAK,CAAC;IAC9D,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK;IAIjC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa;CASxD"}

View File

@@ -0,0 +1,51 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
EventCoercer: ()=>EventCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
const external_utils_js_namespaceObject = require("./utils.js");
class EventCoercer {
match(err) {
return (0, index_js_namespaceObject.isEvent)(err);
}
coerce(evt, ctx) {
const constructorName = evt.constructor.name;
return {
type: constructorName,
value: `${constructorName} captured as exception with keys: ${(0, external_utils_js_namespaceObject.extractExceptionKeysForMessage)(evt)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
}
exports.EventCoercer = __webpack_exports__.EventCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"EventCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,17 @@
import { isEvent } from "../../utils/index.mjs";
import { extractExceptionKeysForMessage } from "./utils.mjs";
class EventCoercer {
match(err) {
return isEvent(err);
}
coerce(evt, ctx) {
const constructorName = evt.constructor.name;
return {
type: constructorName,
value: `${constructorName} captured as exception with keys: ${extractExceptionKeysForMessage(evt)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
}
export { EventCoercer };

View File

@@ -0,0 +1,9 @@
export * from './dom-exception-coercer';
export * from './error-coercer';
export * from './error-event-coercer';
export * from './string-coercer';
export * from './object-coercer';
export * from './event-coercer';
export * from './primitive-coercer';
export * from './promise-rejection-event';
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/coercers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA"}

View File

@@ -0,0 +1,123 @@
"use strict";
var __webpack_modules__ = {
"./dom-exception-coercer": function(module) {
module.exports = require("./dom-exception-coercer.js");
},
"./error-coercer": function(module) {
module.exports = require("./error-coercer.js");
},
"./error-event-coercer": function(module) {
module.exports = require("./error-event-coercer.js");
},
"./event-coercer": function(module) {
module.exports = require("./event-coercer.js");
},
"./object-coercer": function(module) {
module.exports = require("./object-coercer.js");
},
"./primitive-coercer": function(module) {
module.exports = require("./primitive-coercer.js");
},
"./promise-rejection-event": function(module) {
module.exports = require("./promise-rejection-event.js");
},
"./string-coercer": function(module) {
module.exports = require("./string-coercer.js");
}
};
var __webpack_module_cache__ = {};
function __webpack_require__(moduleId) {
var cachedModule = __webpack_module_cache__[moduleId];
if (void 0 !== cachedModule) return cachedModule.exports;
var module = __webpack_module_cache__[moduleId] = {
exports: {}
};
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
return module.exports;
}
(()=>{
__webpack_require__.n = (module)=>{
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
__webpack_require__.d(getter, {
a: getter
});
return getter;
};
})();
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
(()=>{
__webpack_require__.r(__webpack_exports__);
var _dom_exception_coercer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./dom-exception-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _dom_exception_coercer__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _dom_exception_coercer__WEBPACK_IMPORTED_MODULE_0__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _error_coercer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./error-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _error_coercer__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _error_coercer__WEBPACK_IMPORTED_MODULE_1__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _error_event_coercer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./error-event-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _error_event_coercer__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _error_event_coercer__WEBPACK_IMPORTED_MODULE_2__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _string_coercer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./string-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _string_coercer__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _string_coercer__WEBPACK_IMPORTED_MODULE_3__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _object_coercer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./object-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _object_coercer__WEBPACK_IMPORTED_MODULE_4__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _object_coercer__WEBPACK_IMPORTED_MODULE_4__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _event_coercer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./event-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _event_coercer__WEBPACK_IMPORTED_MODULE_5__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _event_coercer__WEBPACK_IMPORTED_MODULE_5__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _primitive_coercer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./primitive-coercer");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _primitive_coercer__WEBPACK_IMPORTED_MODULE_6__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _primitive_coercer__WEBPACK_IMPORTED_MODULE_6__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _promise_rejection_event__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./promise-rejection-event");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _promise_rejection_event__WEBPACK_IMPORTED_MODULE_7__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _promise_rejection_event__WEBPACK_IMPORTED_MODULE_7__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
})();
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,8 @@
export * from "./dom-exception-coercer.mjs";
export * from "./error-coercer.mjs";
export * from "./error-event-coercer.mjs";
export * from "./string-coercer.mjs";
export * from "./object-coercer.mjs";
export * from "./event-coercer.mjs";
export * from "./primitive-coercer.mjs";
export * from "./promise-rejection-event.mjs";

View File

@@ -0,0 +1,14 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
type ObjectLike = Record<string, unknown>;
export declare class ObjectCoercer implements ErrorTrackingCoercer<ObjectLike> {
match(candidate: unknown): candidate is ObjectLike;
coerce(candidate: ObjectLike, ctx: CoercingContext): ExceptionLike | undefined;
getType(err: Record<string, unknown>): string;
getValue(err: object): string;
private isSeverityLevel;
/** If a plain object has a property that is an `Error`, return this error. */
private getErrorPropertyFromObject;
private getObjectClassName;
}
export {};
//# sourceMappingURL=object-coercer.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,85 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
ObjectCoercer: ()=>ObjectCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
const external_types_js_namespaceObject = require("../types.js");
const external_utils_js_namespaceObject = require("./utils.js");
class ObjectCoercer {
match(candidate) {
return 'object' == typeof candidate && null !== candidate;
}
coerce(candidate, ctx) {
const errorProperty = this.getErrorPropertyFromObject(candidate);
if (errorProperty) return ctx.apply(errorProperty);
return {
type: this.getType(candidate),
value: this.getValue(candidate),
stack: ctx.syntheticException?.stack,
level: this.isSeverityLevel(candidate.level) ? candidate.level : 'error',
synthetic: true
};
}
getType(err) {
return (0, index_js_namespaceObject.isEvent)(err) ? err.constructor.name : 'Error';
}
getValue(err) {
if ('name' in err && 'string' == typeof err.name) {
let message = `'${err.name}' captured as exception`;
if ('message' in err && 'string' == typeof err.message) message += ` with message: '${err.message}'`;
return message;
}
if ('message' in err && 'string' == typeof err.message) return err.message;
const className = this.getObjectClassName(err);
const keys = (0, external_utils_js_namespaceObject.extractExceptionKeysForMessage)(err);
return `${className && 'Object' !== className ? `'${className}'` : 'Object'} captured as exception with keys: ${keys}`;
}
isSeverityLevel(x) {
return (0, index_js_namespaceObject.isString)(x) && !(0, index_js_namespaceObject.isEmptyString)(x) && external_types_js_namespaceObject.severityLevels.indexOf(x) >= 0;
}
getErrorPropertyFromObject(obj) {
for(const prop in obj)if (Object.prototype.hasOwnProperty.call(obj, prop)) {
const value = obj[prop];
if ((0, index_js_namespaceObject.isError)(value)) return value;
}
}
getObjectClassName(obj) {
try {
const prototype = Object.getPrototypeOf(obj);
return prototype ? prototype.constructor.name : void 0;
} catch (e) {
return;
}
}
}
exports.ObjectCoercer = __webpack_exports__.ObjectCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"ObjectCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,51 @@
import { isEmptyString, isError, isEvent, isString } from "../../utils/index.mjs";
import { severityLevels } from "../types.mjs";
import { extractExceptionKeysForMessage } from "./utils.mjs";
class ObjectCoercer {
match(candidate) {
return 'object' == typeof candidate && null !== candidate;
}
coerce(candidate, ctx) {
const errorProperty = this.getErrorPropertyFromObject(candidate);
if (errorProperty) return ctx.apply(errorProperty);
return {
type: this.getType(candidate),
value: this.getValue(candidate),
stack: ctx.syntheticException?.stack,
level: this.isSeverityLevel(candidate.level) ? candidate.level : 'error',
synthetic: true
};
}
getType(err) {
return isEvent(err) ? err.constructor.name : 'Error';
}
getValue(err) {
if ('name' in err && 'string' == typeof err.name) {
let message = `'${err.name}' captured as exception`;
if ('message' in err && 'string' == typeof err.message) message += ` with message: '${err.message}'`;
return message;
}
if ('message' in err && 'string' == typeof err.message) return err.message;
const className = this.getObjectClassName(err);
const keys = extractExceptionKeysForMessage(err);
return `${className && 'Object' !== className ? `'${className}'` : 'Object'} captured as exception with keys: ${keys}`;
}
isSeverityLevel(x) {
return isString(x) && !isEmptyString(x) && severityLevels.indexOf(x) >= 0;
}
getErrorPropertyFromObject(obj) {
for(const prop in obj)if (Object.prototype.hasOwnProperty.call(obj, prop)) {
const value = obj[prop];
if (isError(value)) return value;
}
}
getObjectClassName(obj) {
try {
const prototype = Object.getPrototypeOf(obj);
return prototype ? prototype.constructor.name : void 0;
} catch (e) {
return;
}
}
}
export { ObjectCoercer };

View File

@@ -0,0 +1,7 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export type PrimitiveType = null | undefined | boolean | number | string | symbol | bigint;
export declare class PrimitiveCoercer implements ErrorTrackingCoercer<PrimitiveType> {
match(candidate: unknown): candidate is PrimitiveType;
coerce(value: PrimitiveType, ctx: CoercingContext): ExceptionLike | undefined;
}
//# sourceMappingURL=primitive-coercer.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,49 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
PrimitiveCoercer: ()=>PrimitiveCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
class PrimitiveCoercer {
match(candidate) {
return (0, index_js_namespaceObject.isPrimitive)(candidate);
}
coerce(value, ctx) {
return {
type: 'Error',
value: `Primitive value captured as exception: ${String(value)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
}
exports.PrimitiveCoercer = __webpack_exports__.PrimitiveCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"PrimitiveCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,15 @@
import { isPrimitive } from "../../utils/index.mjs";
class PrimitiveCoercer {
match(candidate) {
return isPrimitive(candidate);
}
coerce(value, ctx) {
return {
type: 'Error',
value: `Primitive value captured as exception: ${String(value)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
}
export { PrimitiveCoercer };

View File

@@ -0,0 +1,7 @@
import { CoercingContext, ErrorTrackingCoercer, ExceptionLike } from '../types';
export declare class PromiseRejectionEventCoercer implements ErrorTrackingCoercer<PromiseRejectionEvent> {
match(err: unknown): err is PromiseRejectionEvent;
coerce(err: PromiseRejectionEvent, ctx: CoercingContext): ExceptionLike | undefined;
private getUnhandledRejectionReason;
}
//# sourceMappingURL=promise-rejection-event.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,59 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
PromiseRejectionEventCoercer: ()=>PromiseRejectionEventCoercer
});
const index_js_namespaceObject = require("../../utils/index.js");
class PromiseRejectionEventCoercer {
match(err) {
return (0, index_js_namespaceObject.isBuiltin)(err, 'PromiseRejectionEvent');
}
coerce(err, ctx) {
const reason = this.getUnhandledRejectionReason(err);
if ((0, index_js_namespaceObject.isPrimitive)(reason)) return {
type: 'UnhandledRejection',
value: `Non-Error promise rejection captured with value: ${String(reason)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
return ctx.apply(reason);
}
getUnhandledRejectionReason(error) {
if ((0, index_js_namespaceObject.isPrimitive)(error)) return error;
try {
if ('reason' in error) return error.reason;
if ('detail' in error && 'reason' in error.detail) return error.detail.reason;
} catch {}
return error;
}
}
exports.PromiseRejectionEventCoercer = __webpack_exports__.PromiseRejectionEventCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"PromiseRejectionEventCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,25 @@
import { isBuiltin, isPrimitive } from "../../utils/index.mjs";
class PromiseRejectionEventCoercer {
match(err) {
return isBuiltin(err, 'PromiseRejectionEvent');
}
coerce(err, ctx) {
const reason = this.getUnhandledRejectionReason(err);
if (isPrimitive(reason)) return {
type: 'UnhandledRejection',
value: `Non-Error promise rejection captured with value: ${String(reason)}`,
stack: ctx.syntheticException?.stack,
synthetic: true
};
return ctx.apply(reason);
}
getUnhandledRejectionReason(error) {
if (isPrimitive(error)) return error;
try {
if ('reason' in error) return error.reason;
if ('detail' in error && 'reason' in error.detail) return error.detail.reason;
} catch {}
return error;
}
}
export { PromiseRejectionEventCoercer };

View File

@@ -0,0 +1,7 @@
import { ExceptionLike, ErrorTrackingCoercer, CoercingContext } from '../types';
export declare class StringCoercer implements ErrorTrackingCoercer<string> {
match(input: unknown): input is string;
coerce(input: string, ctx: CoercingContext): ExceptionLike;
getInfos(candidate: string): [string, string];
}
//# sourceMappingURL=string-coercer.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,63 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
StringCoercer: ()=>StringCoercer
});
const ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
class StringCoercer {
match(input) {
return 'string' == typeof input;
}
coerce(input, ctx) {
const [type, value] = this.getInfos(input);
return {
type: type ?? 'Error',
value: value ?? input,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
getInfos(candidate) {
let type = 'Error';
let value = candidate;
const groups = candidate.match(ERROR_TYPES_PATTERN);
if (groups) {
type = groups[1];
value = groups[2];
}
return [
type,
value
];
}
}
exports.StringCoercer = __webpack_exports__.StringCoercer;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"StringCoercer"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,29 @@
const ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
class StringCoercer {
match(input) {
return 'string' == typeof input;
}
coerce(input, ctx) {
const [type, value] = this.getInfos(input);
return {
type: type ?? 'Error',
value: value ?? input,
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
getInfos(candidate) {
let type = 'Error';
let value = candidate;
const groups = candidate.match(ERROR_TYPES_PATTERN);
if (groups) {
type = groups[1];
value = groups[2];
}
return [
type,
value
];
}
}
export { StringCoercer };

View File

@@ -0,0 +1,8 @@
export declare function truncate(str: string, max?: number): string;
/**
* Given any captured exception, extract its keys and create a sorted
* and truncated list that will be used inside the event message.
* eg. `Non-error exception captured with keys: foo, bar, baz`
*/
export declare function extractExceptionKeysForMessage(err: object, maxLength?: number): string;
//# sourceMappingURL=utils.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,55 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
extractExceptionKeysForMessage: ()=>extractExceptionKeysForMessage,
truncate: ()=>truncate
});
function truncate(str, max = 0) {
if ('string' != typeof str || 0 === max) return str;
return str.length <= max ? str : `${str.slice(0, max)}...`;
}
function extractExceptionKeysForMessage(err, maxLength = 40) {
const keys = Object.keys(err);
keys.sort();
if (!keys.length) return '[object has no keys]';
for(let i = keys.length; i > 0; i--){
const serialized = keys.slice(0, i).join(', ');
if (!(serialized.length > maxLength)) {
if (i === keys.length) return serialized;
return serialized.length <= maxLength ? serialized : `${serialized.slice(0, maxLength)}...`;
}
}
return '';
}
exports.extractExceptionKeysForMessage = __webpack_exports__.extractExceptionKeysForMessage;
exports.truncate = __webpack_exports__.truncate;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"extractExceptionKeysForMessage",
"truncate"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,18 @@
function truncate(str, max = 0) {
if ('string' != typeof str || 0 === max) return str;
return str.length <= max ? str : `${str.slice(0, max)}...`;
}
function extractExceptionKeysForMessage(err, maxLength = 40) {
const keys = Object.keys(err);
keys.sort();
if (!keys.length) return '[object has no keys]';
for(let i = keys.length; i > 0; i--){
const serialized = keys.slice(0, i).join(', ');
if (!(serialized.length > maxLength)) {
if (i === keys.length) return serialized;
return serialized.length <= maxLength ? serialized : `${serialized.slice(0, maxLength)}...`;
}
}
return '';
}
export { extractExceptionKeysForMessage, truncate };

View File

@@ -0,0 +1,18 @@
import { ErrorProperties, StackFrameModifierFn, StackParser, ErrorTrackingCoercer, EventHint } from './types';
export declare class ErrorPropertiesBuilder {
private coercers;
private stackParser;
private modifiers;
constructor(coercers: ErrorTrackingCoercer<any>[], stackParser: StackParser, modifiers?: StackFrameModifierFn[]);
buildFromUnknown(input: unknown, hint?: EventHint): ErrorProperties;
modifyFrames(exceptionList: ErrorProperties['$exception_list']): Promise<ErrorProperties['$exception_list']>;
private coerceFallback;
private parseStacktrace;
private applyChunkIds;
private applyCoercers;
private applyModifiers;
private convertToExceptionList;
private buildParsingContext;
private buildCoercingContext;
}
//# sourceMappingURL=error-properties-builder.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"error-properties-builder.d.ts","sourceRoot":"","sources":["../../src/error-tracking/error-properties-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,EAKf,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,SAAS,EAOV,MAAM,SAAS,CAAA;AAIhB,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;gBAFT,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,EACrC,WAAW,EAAE,WAAW,EACxB,SAAS,GAAE,oBAAoB,EAAO;IAGhD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,SAAc,GAAG,eAAe;IAiBjE,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IASlH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;YASP,cAAc;IAQ5B,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;CAuB7B"}

View File

@@ -0,0 +1,145 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
ErrorPropertiesBuilder: ()=>ErrorPropertiesBuilder
});
const index_js_namespaceObject = require("../utils/index.js");
const external_chunk_ids_js_namespaceObject = require("./chunk-ids.js");
const MAX_CAUSE_RECURSION = 4;
class ErrorPropertiesBuilder {
constructor(coercers, stackParser, modifiers = []){
this.coercers = coercers;
this.stackParser = stackParser;
this.modifiers = modifiers;
}
buildFromUnknown(input, hint = {}) {
const providedMechanism = hint && hint.mechanism;
const mechanism = providedMechanism || {
handled: true,
type: 'generic'
};
const coercingContext = this.buildCoercingContext(mechanism, hint, 0);
const exceptionWithCause = coercingContext.apply(input);
const parsingContext = this.buildParsingContext();
const exceptionWithStack = this.parseStacktrace(exceptionWithCause, parsingContext);
const exceptionList = this.convertToExceptionList(exceptionWithStack, mechanism);
return {
$exception_list: exceptionList,
$exception_level: 'error'
};
}
async modifyFrames(exceptionList) {
for (const exc of exceptionList)if (exc.stacktrace && exc.stacktrace.frames && (0, index_js_namespaceObject.isArray)(exc.stacktrace.frames)) exc.stacktrace.frames = await this.applyModifiers(exc.stacktrace.frames);
return exceptionList;
}
coerceFallback(ctx) {
return {
type: 'Error',
value: 'Unknown error',
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
parseStacktrace(err, ctx) {
let cause;
if (null != err.cause) cause = this.parseStacktrace(err.cause, ctx);
let stack;
if ('' != err.stack && null != err.stack) stack = this.applyChunkIds(this.stackParser(err.stack, err.synthetic ? 1 : 0), ctx.chunkIdMap);
return {
...err,
cause,
stack
};
}
applyChunkIds(frames, chunkIdMap) {
return frames.map((frame)=>{
if (frame.filename && chunkIdMap) frame.chunk_id = chunkIdMap[frame.filename];
return frame;
});
}
applyCoercers(input, ctx) {
for (const adapter of this.coercers)if (adapter.match(input)) return adapter.coerce(input, ctx);
return this.coerceFallback(ctx);
}
async applyModifiers(frames) {
let newFrames = frames;
for (const modifier of this.modifiers)newFrames = await modifier(newFrames);
return newFrames;
}
convertToExceptionList(exceptionWithStack, mechanism) {
const currentException = {
type: exceptionWithStack.type,
value: exceptionWithStack.value,
mechanism: {
type: mechanism.type ?? 'generic',
handled: mechanism.handled ?? true,
synthetic: exceptionWithStack.synthetic ?? false
}
};
if (exceptionWithStack.stack) currentException.stacktrace = {
type: 'raw',
frames: exceptionWithStack.stack
};
const exceptionList = [
currentException
];
if (null != exceptionWithStack.cause) exceptionList.push(...this.convertToExceptionList(exceptionWithStack.cause, {
...mechanism,
handled: true
}));
return exceptionList;
}
buildParsingContext() {
const context = {
chunkIdMap: (0, external_chunk_ids_js_namespaceObject.getFilenameToChunkIdMap)(this.stackParser)
};
return context;
}
buildCoercingContext(mechanism, hint, depth = 0) {
const coerce = (input, depth)=>{
if (!(depth <= MAX_CAUSE_RECURSION)) return;
{
const ctx = this.buildCoercingContext(mechanism, hint, depth);
return this.applyCoercers(input, ctx);
}
};
const context = {
...hint,
syntheticException: 0 == depth ? hint.syntheticException : void 0,
mechanism,
apply: (input)=>coerce(input, depth),
next: (input)=>coerce(input, depth + 1)
};
return context;
}
}
exports.ErrorPropertiesBuilder = __webpack_exports__.ErrorPropertiesBuilder;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"ErrorPropertiesBuilder"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,111 @@
import { isArray } from "../utils/index.mjs";
import { getFilenameToChunkIdMap } from "./chunk-ids.mjs";
const MAX_CAUSE_RECURSION = 4;
class ErrorPropertiesBuilder {
constructor(coercers, stackParser, modifiers = []){
this.coercers = coercers;
this.stackParser = stackParser;
this.modifiers = modifiers;
}
buildFromUnknown(input, hint = {}) {
const providedMechanism = hint && hint.mechanism;
const mechanism = providedMechanism || {
handled: true,
type: 'generic'
};
const coercingContext = this.buildCoercingContext(mechanism, hint, 0);
const exceptionWithCause = coercingContext.apply(input);
const parsingContext = this.buildParsingContext();
const exceptionWithStack = this.parseStacktrace(exceptionWithCause, parsingContext);
const exceptionList = this.convertToExceptionList(exceptionWithStack, mechanism);
return {
$exception_list: exceptionList,
$exception_level: 'error'
};
}
async modifyFrames(exceptionList) {
for (const exc of exceptionList)if (exc.stacktrace && exc.stacktrace.frames && isArray(exc.stacktrace.frames)) exc.stacktrace.frames = await this.applyModifiers(exc.stacktrace.frames);
return exceptionList;
}
coerceFallback(ctx) {
return {
type: 'Error',
value: 'Unknown error',
stack: ctx.syntheticException?.stack,
synthetic: true
};
}
parseStacktrace(err, ctx) {
let cause;
if (null != err.cause) cause = this.parseStacktrace(err.cause, ctx);
let stack;
if ('' != err.stack && null != err.stack) stack = this.applyChunkIds(this.stackParser(err.stack, err.synthetic ? 1 : 0), ctx.chunkIdMap);
return {
...err,
cause,
stack
};
}
applyChunkIds(frames, chunkIdMap) {
return frames.map((frame)=>{
if (frame.filename && chunkIdMap) frame.chunk_id = chunkIdMap[frame.filename];
return frame;
});
}
applyCoercers(input, ctx) {
for (const adapter of this.coercers)if (adapter.match(input)) return adapter.coerce(input, ctx);
return this.coerceFallback(ctx);
}
async applyModifiers(frames) {
let newFrames = frames;
for (const modifier of this.modifiers)newFrames = await modifier(newFrames);
return newFrames;
}
convertToExceptionList(exceptionWithStack, mechanism) {
const currentException = {
type: exceptionWithStack.type,
value: exceptionWithStack.value,
mechanism: {
type: mechanism.type ?? 'generic',
handled: mechanism.handled ?? true,
synthetic: exceptionWithStack.synthetic ?? false
}
};
if (exceptionWithStack.stack) currentException.stacktrace = {
type: 'raw',
frames: exceptionWithStack.stack
};
const exceptionList = [
currentException
];
if (null != exceptionWithStack.cause) exceptionList.push(...this.convertToExceptionList(exceptionWithStack.cause, {
...mechanism,
handled: true
}));
return exceptionList;
}
buildParsingContext() {
const context = {
chunkIdMap: getFilenameToChunkIdMap(this.stackParser)
};
return context;
}
buildCoercingContext(mechanism, hint, depth = 0) {
const coerce = (input, depth)=>{
if (!(depth <= MAX_CAUSE_RECURSION)) return;
{
const ctx = this.buildCoercingContext(mechanism, hint, depth);
return this.applyCoercers(input, ctx);
}
};
const context = {
...hint,
syntheticException: 0 == depth ? hint.syntheticException : void 0,
mechanism,
apply: (input)=>coerce(input, depth),
next: (input)=>coerce(input, depth + 1)
};
return context;
}
}
export { ErrorPropertiesBuilder };

View File

@@ -0,0 +1,6 @@
export * from './error-properties-builder';
export type * from './types';
export * from './parsers';
export * from './coercers';
export * from './utils';
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error-tracking/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,mBAAmB,SAAS,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}

View File

@@ -0,0 +1,87 @@
"use strict";
var __webpack_modules__ = {
"./coercers": function(module) {
module.exports = require("./coercers/index.js");
},
"./error-properties-builder": function(module) {
module.exports = require("./error-properties-builder.js");
},
"./parsers": function(module) {
module.exports = require("./parsers/index.js");
},
"./utils?198b": function(module) {
module.exports = require("./utils.js");
}
};
var __webpack_module_cache__ = {};
function __webpack_require__(moduleId) {
var cachedModule = __webpack_module_cache__[moduleId];
if (void 0 !== cachedModule) return cachedModule.exports;
var module = __webpack_module_cache__[moduleId] = {
exports: {}
};
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
return module.exports;
}
(()=>{
__webpack_require__.n = (module)=>{
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
__webpack_require__.d(getter, {
a: getter
});
return getter;
};
})();
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
(()=>{
__webpack_require__.r(__webpack_exports__);
var _error_properties_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./error-properties-builder");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _error_properties_builder__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _error_properties_builder__WEBPACK_IMPORTED_MODULE_0__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _parsers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./parsers");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _parsers__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _parsers__WEBPACK_IMPORTED_MODULE_1__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _coercers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./coercers");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _coercers__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _coercers__WEBPACK_IMPORTED_MODULE_2__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./utils?198b");
var __WEBPACK_REEXPORT_OBJECT__ = {};
for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
return _utils__WEBPACK_IMPORTED_MODULE_3__[key];
}).bind(0, __WEBPACK_IMPORT_KEY__);
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
})();
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,4 @@
export * from "./error-properties-builder.mjs";
export * from "./parsers/index.mjs";
export * from "./coercers/index.mjs";
export * from "./utils.mjs";

View File

@@ -0,0 +1,4 @@
import { StackFrame } from '../types';
export declare const UNKNOWN_FUNCTION = "?";
export declare function createFrame(platform: StackFrame['platform'], filename: string, func: string, lineno?: number, colno?: number): StackFrame;
//# sourceMappingURL=base.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC,wBAAgB,WAAW,CACzB,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAkBZ"}

View File

@@ -0,0 +1,51 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
UNKNOWN_FUNCTION: ()=>UNKNOWN_FUNCTION,
createFrame: ()=>createFrame
});
const index_js_namespaceObject = require("../../utils/index.js");
const UNKNOWN_FUNCTION = '?';
function createFrame(platform, filename, func, lineno, colno) {
const frame = {
platform,
filename,
function: '<anonymous>' === func ? UNKNOWN_FUNCTION : func,
in_app: true
};
if (!(0, index_js_namespaceObject.isUndefined)(lineno)) frame.lineno = lineno;
if (!(0, index_js_namespaceObject.isUndefined)(colno)) frame.colno = colno;
return frame;
}
exports.UNKNOWN_FUNCTION = __webpack_exports__.UNKNOWN_FUNCTION;
exports.createFrame = __webpack_exports__.createFrame;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"UNKNOWN_FUNCTION",
"createFrame"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,14 @@
import { isUndefined } from "../../utils/index.mjs";
const UNKNOWN_FUNCTION = '?';
function createFrame(platform, filename, func, lineno, colno) {
const frame = {
platform,
filename,
function: '<anonymous>' === func ? UNKNOWN_FUNCTION : func,
in_app: true
};
if (!isUndefined(lineno)) frame.lineno = lineno;
if (!isUndefined(colno)) frame.colno = colno;
return frame;
}
export { UNKNOWN_FUNCTION, createFrame };

View File

@@ -0,0 +1,3 @@
import { StackLineParser } from '../types';
export declare const chromeStackLineParser: StackLineParser;
//# sourceMappingURL=chrome.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/chrome.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAgB1C,eAAO,MAAM,qBAAqB,EAAE,eAiCnC,CAAA"}

View File

@@ -0,0 +1,61 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
chromeStackLineParser: ()=>chromeStackLineParser
});
const external_base_js_namespaceObject = require("./base.js");
const external_safari_js_namespaceObject = require("./safari.js");
const chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
const chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
const chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
const chromeStackLineParser = (line, platform)=>{
const noFnParts = chromeRegexNoFnName.exec(line);
if (noFnParts) {
const [, filename, line, col] = noFnParts;
return (0, external_base_js_namespaceObject.createFrame)(platform, filename, external_base_js_namespaceObject.UNKNOWN_FUNCTION, +line, +col);
}
const parts = chromeRegex.exec(line);
if (parts) {
const isEval = parts[2] && 0 === parts[2].indexOf('eval');
if (isEval) {
const subMatch = chromeEvalRegex.exec(parts[2]);
if (subMatch) {
parts[2] = subMatch[1];
parts[3] = subMatch[2];
parts[4] = subMatch[3];
}
}
const [func, filename] = (0, external_safari_js_namespaceObject.extractSafariExtensionDetails)(parts[1] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, parts[2]);
return (0, external_base_js_namespaceObject.createFrame)(platform, filename, func, parts[3] ? +parts[3] : void 0, parts[4] ? +parts[4] : void 0);
}
};
exports.chromeStackLineParser = __webpack_exports__.chromeStackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"chromeStackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,27 @@
import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
import { extractSafariExtensionDetails } from "./safari.mjs";
const chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
const chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
const chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
const chromeStackLineParser = (line, platform)=>{
const noFnParts = chromeRegexNoFnName.exec(line);
if (noFnParts) {
const [, filename, line, col] = noFnParts;
return createFrame(platform, filename, UNKNOWN_FUNCTION, +line, +col);
}
const parts = chromeRegex.exec(line);
if (parts) {
const isEval = parts[2] && 0 === parts[2].indexOf('eval');
if (isEval) {
const subMatch = chromeEvalRegex.exec(parts[2]);
if (subMatch) {
parts[2] = subMatch[1];
parts[3] = subMatch[2];
parts[4] = subMatch[3];
}
}
const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);
return createFrame(platform, filename, func, parts[3] ? +parts[3] : void 0, parts[4] ? +parts[4] : void 0);
}
};
export { chromeStackLineParser };

View File

@@ -0,0 +1,3 @@
import { StackLineParser } from '../types';
export declare const geckoStackLineParser: StackLineParser;
//# sourceMappingURL=gecko.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gecko.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/gecko.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,eAAe,EAAE,MAAM,UAAU,CAAA;AASpD,eAAO,MAAM,oBAAoB,EAAE,eAyBlC,CAAA"}

View File

@@ -0,0 +1,58 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
geckoStackLineParser: ()=>geckoStackLineParser
});
const external_base_js_namespaceObject = require("./base.js");
const external_safari_js_namespaceObject = require("./safari.js");
const geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
const geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
const geckoStackLineParser = (line, platform)=>{
const parts = geckoREgex.exec(line);
if (parts) {
const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
if (isEval) {
const subMatch = geckoEvalRegex.exec(parts[3]);
if (subMatch) {
parts[1] = parts[1] || 'eval';
parts[3] = subMatch[1];
parts[4] = subMatch[2];
parts[5] = '';
}
}
let filename = parts[3];
let func = parts[1] || external_base_js_namespaceObject.UNKNOWN_FUNCTION;
[func, filename] = (0, external_safari_js_namespaceObject.extractSafariExtensionDetails)(func, filename);
return (0, external_base_js_namespaceObject.createFrame)(platform, filename, func, parts[4] ? +parts[4] : void 0, parts[5] ? +parts[5] : void 0);
}
};
exports.geckoStackLineParser = __webpack_exports__.geckoStackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"geckoStackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,24 @@
import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
import { extractSafariExtensionDetails } from "./safari.mjs";
const geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
const geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
const geckoStackLineParser = (line, platform)=>{
const parts = geckoREgex.exec(line);
if (parts) {
const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
if (isEval) {
const subMatch = geckoEvalRegex.exec(parts[3]);
if (subMatch) {
parts[1] = parts[1] || 'eval';
parts[3] = subMatch[1];
parts[4] = subMatch[2];
parts[5] = '';
}
}
let filename = parts[3];
let func = parts[1] || UNKNOWN_FUNCTION;
[func, filename] = extractSafariExtensionDetails(func, filename);
return createFrame(platform, filename, func, parts[4] ? +parts[4] : void 0, parts[5] ? +parts[5] : void 0);
}
};
export { geckoStackLineParser };

View File

@@ -0,0 +1,9 @@
import { Platform, StackFrame, StackLineParser, StackParser } from '../types';
export { chromeStackLineParser } from './chrome';
export { winjsStackLineParser } from './winjs';
export { geckoStackLineParser } from './gecko';
export { opera10StackLineParser, opera11StackLineParser } from './opera';
export { nodeStackLineParser } from './node';
export declare function reverseAndStripFrames(stack: ReadonlyArray<StackFrame>): StackFrame[];
export declare function createStackParser(platform: Platform, ...parsers: StackLineParser[]): StackParser;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE7E,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,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,GAAG,WAAW,CAwChG"}

View File

@@ -0,0 +1,99 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
createStackParser: ()=>createStackParser,
winjsStackLineParser: ()=>external_winjs_js_namespaceObject.winjsStackLineParser,
nodeStackLineParser: ()=>external_node_js_namespaceObject.nodeStackLineParser,
geckoStackLineParser: ()=>external_gecko_js_namespaceObject.geckoStackLineParser,
opera10StackLineParser: ()=>external_opera_js_namespaceObject.opera10StackLineParser,
opera11StackLineParser: ()=>external_opera_js_namespaceObject.opera11StackLineParser,
chromeStackLineParser: ()=>external_chrome_js_namespaceObject.chromeStackLineParser,
reverseAndStripFrames: ()=>reverseAndStripFrames
});
const external_base_js_namespaceObject = require("./base.js");
const external_chrome_js_namespaceObject = require("./chrome.js");
const external_winjs_js_namespaceObject = require("./winjs.js");
const external_gecko_js_namespaceObject = require("./gecko.js");
const external_opera_js_namespaceObject = require("./opera.js");
const external_node_js_namespaceObject = require("./node.js");
const WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
const STACKTRACE_FRAME_LIMIT = 50;
function reverseAndStripFrames(stack) {
if (!stack.length) return [];
const localStack = Array.from(stack);
localStack.reverse();
return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame)=>({
...frame,
filename: frame.filename || getLastStackFrame(localStack).filename,
function: frame.function || external_base_js_namespaceObject.UNKNOWN_FUNCTION
}));
}
function getLastStackFrame(arr) {
return arr[arr.length - 1] || {};
}
function createStackParser(platform, ...parsers) {
return (stack, skipFirstLines = 0)=>{
const frames = [];
const lines = stack.split('\n');
for(let i = skipFirstLines; i < lines.length; i++){
const line = lines[i];
if (line.length > 1024) continue;
const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;
if (!cleanedLine.match(/\S*Error: /)) {
for (const parser of parsers){
const frame = parser(cleanedLine, platform);
if (frame) {
frames.push(frame);
break;
}
}
if (frames.length >= STACKTRACE_FRAME_LIMIT) break;
}
}
return reverseAndStripFrames(frames);
};
}
exports.chromeStackLineParser = __webpack_exports__.chromeStackLineParser;
exports.createStackParser = __webpack_exports__.createStackParser;
exports.geckoStackLineParser = __webpack_exports__.geckoStackLineParser;
exports.nodeStackLineParser = __webpack_exports__.nodeStackLineParser;
exports.opera10StackLineParser = __webpack_exports__.opera10StackLineParser;
exports.opera11StackLineParser = __webpack_exports__.opera11StackLineParser;
exports.reverseAndStripFrames = __webpack_exports__.reverseAndStripFrames;
exports.winjsStackLineParser = __webpack_exports__.winjsStackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"chromeStackLineParser",
"createStackParser",
"geckoStackLineParser",
"nodeStackLineParser",
"opera10StackLineParser",
"opera11StackLineParser",
"reverseAndStripFrames",
"winjsStackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,44 @@
import { UNKNOWN_FUNCTION } from "./base.mjs";
import { chromeStackLineParser } from "./chrome.mjs";
import { winjsStackLineParser } from "./winjs.mjs";
import { geckoStackLineParser } from "./gecko.mjs";
import { opera10StackLineParser, opera11StackLineParser } from "./opera.mjs";
import { nodeStackLineParser } from "./node.mjs";
const WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
const STACKTRACE_FRAME_LIMIT = 50;
function reverseAndStripFrames(stack) {
if (!stack.length) return [];
const localStack = Array.from(stack);
localStack.reverse();
return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame)=>({
...frame,
filename: frame.filename || getLastStackFrame(localStack).filename,
function: frame.function || UNKNOWN_FUNCTION
}));
}
function getLastStackFrame(arr) {
return arr[arr.length - 1] || {};
}
function createStackParser(platform, ...parsers) {
return (stack, skipFirstLines = 0)=>{
const frames = [];
const lines = stack.split('\n');
for(let i = skipFirstLines; i < lines.length; i++){
const line = lines[i];
if (line.length > 1024) continue;
const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;
if (!cleanedLine.match(/\S*Error: /)) {
for (const parser of parsers){
const frame = parser(cleanedLine, platform);
if (frame) {
frames.push(frame);
break;
}
}
if (frames.length >= STACKTRACE_FRAME_LIMIT) break;
}
}
return reverseAndStripFrames(frames);
};
}
export { chromeStackLineParser, createStackParser, geckoStackLineParser, nodeStackLineParser, opera10StackLineParser, opera11StackLineParser, reverseAndStripFrames, winjsStackLineParser };

View File

@@ -0,0 +1,3 @@
import { StackLineParser } from '../types';
export declare const nodeStackLineParser: StackLineParser;
//# sourceMappingURL=node.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/error-tracking/parsers/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,UAAU,CAAA;AAOpD,eAAO,MAAM,mBAAmB,EAAE,eA4EjC,CAAA"}

View File

@@ -0,0 +1,99 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
nodeStackLineParser: ()=>nodeStackLineParser
});
const external_base_js_namespaceObject = require("./base.js");
const FILENAME_MATCH = /^\s*[-]{4,}$/;
const FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
const nodeStackLineParser = (line, platform)=>{
const lineMatch = line.match(FULL_MATCH);
if (lineMatch) {
let object;
let method;
let functionName;
let typeName;
let methodName;
if (lineMatch[1]) {
functionName = lineMatch[1];
let methodStart = functionName.lastIndexOf('.');
if ('.' === functionName[methodStart - 1]) methodStart--;
if (methodStart > 0) {
object = functionName.slice(0, methodStart);
method = functionName.slice(methodStart + 1);
const objectEnd = object.indexOf('.Module');
if (objectEnd > 0) {
functionName = functionName.slice(objectEnd + 1);
object = object.slice(0, objectEnd);
}
}
typeName = void 0;
}
if (method) {
typeName = object;
methodName = method;
}
if ('<anonymous>' === method) {
methodName = void 0;
functionName = void 0;
}
if (void 0 === functionName) {
methodName = methodName || external_base_js_namespaceObject.UNKNOWN_FUNCTION;
functionName = typeName ? `${typeName}.${methodName}` : methodName;
}
let filename = lineMatch[2]?.startsWith('file://') ? lineMatch[2].slice(7) : lineMatch[2];
const isNative = 'native' === lineMatch[5];
if (filename?.match(/\/[A-Z]:/)) filename = filename.slice(1);
if (!filename && lineMatch[5] && !isNative) filename = lineMatch[5];
return {
filename: filename ? decodeURI(filename) : void 0,
module: void 0,
function: functionName,
lineno: _parseIntOrUndefined(lineMatch[3]),
colno: _parseIntOrUndefined(lineMatch[4]),
in_app: filenameIsInApp(filename || '', isNative),
platform: platform
};
}
if (line.match(FILENAME_MATCH)) return {
filename: line,
platform: platform
};
};
function filenameIsInApp(filename, isNative = false) {
const isInternal = isNative || filename && !filename.startsWith('/') && !filename.match(/^[A-Z]:/) && !filename.startsWith('.') && !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//);
return !isInternal && void 0 !== filename && !filename.includes('node_modules/');
}
function _parseIntOrUndefined(input) {
return parseInt(input || '', 10) || void 0;
}
exports.nodeStackLineParser = __webpack_exports__.nodeStackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"nodeStackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,65 @@
import { UNKNOWN_FUNCTION } from "./base.mjs";
const FILENAME_MATCH = /^\s*[-]{4,}$/;
const FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
const nodeStackLineParser = (line, platform)=>{
const lineMatch = line.match(FULL_MATCH);
if (lineMatch) {
let object;
let method;
let functionName;
let typeName;
let methodName;
if (lineMatch[1]) {
functionName = lineMatch[1];
let methodStart = functionName.lastIndexOf('.');
if ('.' === functionName[methodStart - 1]) methodStart--;
if (methodStart > 0) {
object = functionName.slice(0, methodStart);
method = functionName.slice(methodStart + 1);
const objectEnd = object.indexOf('.Module');
if (objectEnd > 0) {
functionName = functionName.slice(objectEnd + 1);
object = object.slice(0, objectEnd);
}
}
typeName = void 0;
}
if (method) {
typeName = object;
methodName = method;
}
if ('<anonymous>' === method) {
methodName = void 0;
functionName = void 0;
}
if (void 0 === functionName) {
methodName = methodName || UNKNOWN_FUNCTION;
functionName = typeName ? `${typeName}.${methodName}` : methodName;
}
let filename = lineMatch[2]?.startsWith('file://') ? lineMatch[2].slice(7) : lineMatch[2];
const isNative = 'native' === lineMatch[5];
if (filename?.match(/\/[A-Z]:/)) filename = filename.slice(1);
if (!filename && lineMatch[5] && !isNative) filename = lineMatch[5];
return {
filename: filename ? decodeURI(filename) : void 0,
module: void 0,
function: functionName,
lineno: _parseIntOrUndefined(lineMatch[3]),
colno: _parseIntOrUndefined(lineMatch[4]),
in_app: filenameIsInApp(filename || '', isNative),
platform: platform
};
}
if (line.match(FILENAME_MATCH)) return {
filename: line,
platform: platform
};
};
function filenameIsInApp(filename, isNative = false) {
const isInternal = isNative || filename && !filename.startsWith('/') && !filename.match(/^[A-Z]:/) && !filename.startsWith('.') && !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//);
return !isInternal && void 0 !== filename && !filename.includes('node_modules/');
}
function _parseIntOrUndefined(input) {
return parseInt(input || '', 10) || void 0;
}
export { nodeStackLineParser };

View File

@@ -0,0 +1,4 @@
import { StackLineParser } from '../types';
export declare const opera10StackLineParser: StackLineParser;
export declare const opera11StackLineParser: StackLineParser;
//# sourceMappingURL=opera.d.ts.map

View File

@@ -0,0 +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,eAKpC,CAAA"}

View File

@@ -0,0 +1,49 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
opera11StackLineParser: ()=>opera11StackLineParser,
opera10StackLineParser: ()=>opera10StackLineParser
});
const external_base_js_namespaceObject = require("./base.js");
const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
const opera10StackLineParser = (line, platform)=>{
const parts = opera10Regex.exec(line);
return parts ? (0, external_base_js_namespaceObject.createFrame)(platform, parts[2], parts[3] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[1]) : void 0;
};
const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
const opera11StackLineParser = (line, platform)=>{
const parts = opera11Regex.exec(line);
return parts ? (0, external_base_js_namespaceObject.createFrame)(platform, parts[5], parts[3] || parts[4] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[1], +parts[2]) : void 0;
};
exports.opera10StackLineParser = __webpack_exports__.opera10StackLineParser;
exports.opera11StackLineParser = __webpack_exports__.opera11StackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"opera10StackLineParser",
"opera11StackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,12 @@
import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
const opera10StackLineParser = (line, platform)=>{
const parts = opera10Regex.exec(line);
return parts ? createFrame(platform, parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : void 0;
};
const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
const opera11StackLineParser = (line, platform)=>{
const parts = opera11Regex.exec(line);
return parts ? createFrame(platform, parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : void 0;
};
export { opera10StackLineParser, opera11StackLineParser };

View File

@@ -0,0 +1,22 @@
/**
* Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
* What it means, is that instead of format like:
*
* Error: wat
* at function@url:row:col
* at function@url:row:col
* at function@url:row:col
*
* it produces something like:
*
* function@url:row:col
* function@url:row:col
* function@url:row:col
*
* Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.
* This function is extracted so that we can use it in both places without duplicating the logic.
* Unfortunately "just" changing RegExp is too complicated now and making it pass all tests
* and fix this case seems like an impossible, or at least way too time-consuming task.
*/
export declare const extractSafariExtensionDetails: (func: string, filename: string) => [string, string];
//# sourceMappingURL=safari.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,47 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
extractSafariExtensionDetails: ()=>extractSafariExtensionDetails
});
const external_base_js_namespaceObject = require("./base.js");
const extractSafariExtensionDetails = (func, filename)=>{
const isSafariExtension = -1 !== func.indexOf('safari-extension');
const isSafariWebExtension = -1 !== func.indexOf('safari-web-extension');
return isSafariExtension || isSafariWebExtension ? [
-1 !== func.indexOf('@') ? func.split('@')[0] : external_base_js_namespaceObject.UNKNOWN_FUNCTION,
isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`
] : [
func,
filename
];
};
exports.extractSafariExtensionDetails = __webpack_exports__.extractSafariExtensionDetails;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"extractSafariExtensionDetails"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,13 @@
import { UNKNOWN_FUNCTION } from "./base.mjs";
const extractSafariExtensionDetails = (func, filename)=>{
const isSafariExtension = -1 !== func.indexOf('safari-extension');
const isSafariWebExtension = -1 !== func.indexOf('safari-web-extension');
return isSafariExtension || isSafariWebExtension ? [
-1 !== func.indexOf('@') ? func.split('@')[0] : UNKNOWN_FUNCTION,
isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`
] : [
func,
filename
];
};
export { extractSafariExtensionDetails };

View File

@@ -0,0 +1,3 @@
import { StackLineParser } from '../types';
export declare const winjsStackLineParser: StackLineParser;
//# sourceMappingURL=winjs.d.ts.map

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,41 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
winjsStackLineParser: ()=>winjsStackLineParser
});
const external_base_js_namespaceObject = require("./base.js");
const winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
const winjsStackLineParser = (line, platform)=>{
const parts = winjsRegex.exec(line);
return parts ? (0, external_base_js_namespaceObject.createFrame)(platform, parts[2], parts[1] || external_base_js_namespaceObject.UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : void 0) : void 0;
};
exports.winjsStackLineParser = __webpack_exports__.winjsStackLineParser;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"winjsStackLineParser"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,7 @@
import { UNKNOWN_FUNCTION, createFrame } from "./base.mjs";
const winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
const winjsStackLineParser = (line, platform)=>{
const parts = winjsRegex.exec(line);
return parts ? createFrame(platform, parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : void 0) : void 0;
};
export { winjsStackLineParser };

View File

@@ -0,0 +1,88 @@
import type { JsonType } from '../types';
export declare const severityLevels: readonly ["fatal", "error", "warning", "log", "info", "debug"];
export declare type SeverityLevel = (typeof severityLevels)[number];
export interface PolymorphicEvent {
[key: string]: unknown;
readonly type: string;
readonly target?: unknown;
readonly currentTarget?: unknown;
}
export interface EventHint {
mechanism?: Partial<Mechanism>;
syntheticException?: Error | null;
}
export interface ErrorProperties {
$exception_list: Exception[];
$exception_level?: SeverityLevel;
}
export interface Exception {
type?: string;
value?: string;
mechanism?: Mechanism;
module?: string;
thread_id?: number;
stacktrace?: {
frames?: StackFrame[];
type: 'raw';
};
}
export type ExceptionList = Exception[];
export interface Mechanism {
handled?: boolean;
type?: 'generic' | 'onunhandledrejection' | 'onuncaughtexception' | 'onconsole' | 'middleware';
source?: string;
synthetic?: boolean;
}
export type GetModuleFn = (filename: string | undefined) => string | undefined;
export type StackParser = (stack: string, skipFirstLines?: number) => StackFrame[];
export type StackLineParser = (line: string, platform: Platform) => StackFrame | undefined;
export type StackFrameModifierFn = (frames: StackFrame[]) => Promise<StackFrame[]>;
export type Platform = 'node:javascript' | 'web:javascript' | 'hermes';
export interface StackFrame {
platform: Platform;
filename?: string;
function?: string;
module?: string;
lineno?: number;
colno?: number;
abs_path?: string;
context_line?: string;
pre_context?: string[];
post_context?: string[];
in_app?: boolean;
instruction_addr?: string;
addr_mode?: string;
vars?: {
[key: string]: JsonType;
};
chunk_id?: string;
}
export interface CoercingContext extends EventHint {
apply: (input: unknown) => ExceptionLike;
next: (input: unknown) => ExceptionLike | undefined;
}
export type ChunkIdMapType = Record<string, string>;
export interface ParsingContext {
chunkIdMap?: ChunkIdMapType;
}
interface Coercer<T, U, C> {
match(input: unknown): input is T;
coerce(input: T, ctx: C): U;
}
export type ErrorTrackingCoercer<T> = Coercer<T, ExceptionLike | undefined, CoercingContext>;
interface BaseException {
type: string;
value: string;
synthetic: boolean;
}
export interface ExceptionLike extends BaseException {
stack?: string;
cause?: ExceptionLike;
level?: SeverityLevel;
}
export interface ParsedException extends BaseException {
stack?: StackFrame[];
cause?: ParsedException;
}
export {};
//# sourceMappingURL=types.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/error-tracking/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAKxC,eAAO,MAAM,cAAc,gEAAiE,CAAA;AAC5F,MAAM,CAAC,OAAO,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9B,kBAAkB,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,SAAS,EAAE,CAAA;IAC5B,gBAAgB,CAAC,EAAE,aAAa,CAAA;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QAAC,IAAI,EAAE,KAAK,CAAA;KAAE,CAAA;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,EAAE,CAAA;AAEvC,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,WAAW,GAAG,YAAY,CAAA;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAA;AAE9E,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,UAAU,EAAE,CAAA;AAClF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,UAAU,GAAG,SAAS,CAAA;AAE1F,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;AAElF,MAAM,MAAM,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,QAAQ,CAAA;AAEtE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAEhD,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAA;IAExC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,GAAG,SAAS,CAAA;CACpD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEnD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,UAAU,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;CAC5B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE,eAAe,CAAC,CAAA;AAE5F,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB"}

View File

@@ -0,0 +1,43 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
severityLevels: ()=>severityLevels
});
const severityLevels = [
'fatal',
'error',
'warning',
'log',
'info',
'debug'
];
exports.severityLevels = __webpack_exports__.severityLevels;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"severityLevels"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,9 @@
const severityLevels = [
'fatal',
'error',
'warning',
'log',
'info',
'debug'
];
export { severityLevels };

View File

@@ -0,0 +1,13 @@
/** A simple Least Recently Used map */
export declare class ReduceableCache<K, V> {
private readonly _maxSize;
private readonly _cache;
constructor(_maxSize: number);
/** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */
get(key: K): V | undefined;
/** Insert an entry and evict an older entry if we've reached maxSize */
set(key: K, value: V): void;
/** Remove an entry and return the entry if it was in the cache */
reduce(): void;
}
//# sourceMappingURL=utils.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/error-tracking/utils.ts"],"names":[],"mappings":"AAGA,uCAAuC;AACvC,qBAAa,eAAe,CAAC,CAAC,EAAE,CAAC;IAGZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAF5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEE,QAAQ,EAAE,MAAM;IAIpD,yGAAyG;IAClG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAWjC,wEAAwE;IACjE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIlC,kEAAkE;IAC3D,MAAM,IAAI,IAAI;CAStB"}

View File

@@ -0,0 +1,57 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
ReduceableCache: ()=>ReduceableCache
});
class ReduceableCache {
constructor(_maxSize){
this._maxSize = _maxSize;
this._cache = new Map();
}
get(key) {
const value = this._cache.get(key);
if (void 0 === value) return;
this._cache.delete(key);
this._cache.set(key, value);
return value;
}
set(key, value) {
this._cache.set(key, value);
}
reduce() {
while(this._cache.size >= this._maxSize){
const value = this._cache.keys().next().value;
if (value) this._cache.delete(value);
}
}
}
exports.ReduceableCache = __webpack_exports__.ReduceableCache;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"ReduceableCache"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

View File

@@ -0,0 +1,23 @@
class ReduceableCache {
constructor(_maxSize){
this._maxSize = _maxSize;
this._cache = new Map();
}
get(key) {
const value = this._cache.get(key);
if (void 0 === value) return;
this._cache.delete(key);
this._cache.set(key, value);
return value;
}
set(key, value) {
this._cache.set(key, value);
}
reduce() {
while(this._cache.size >= this._maxSize){
const value = this._cache.keys().next().value;
if (value) this._cache.delete(value);
}
}
}
export { ReduceableCache };

9
node_modules/@posthog/core/dist/eventemitter.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export declare class SimpleEventEmitter {
events: {
[key: string]: ((...args: any[]) => void)[];
};
constructor();
on(event: string, listener: (...args: any[]) => void): () => void;
emit(event: string, payload: any): void;
}
//# sourceMappingURL=eventemitter.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"eventemitter.d.ts","sourceRoot":"","sources":["../src/eventemitter.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;KAAE,CAAK;;IAM5D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAWjE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;CAQxC"}

52
node_modules/@posthog/core/dist/eventemitter.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
"use strict";
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
SimpleEventEmitter: ()=>SimpleEventEmitter
});
class SimpleEventEmitter {
constructor(){
this.events = {};
this.events = {};
}
on(event, listener) {
if (!this.events[event]) this.events[event] = [];
this.events[event].push(listener);
return ()=>{
this.events[event] = this.events[event].filter((x)=>x !== listener);
};
}
emit(event, payload) {
for (const listener of this.events[event] || [])listener(payload);
for (const listener of this.events['*'] || [])listener(event, payload);
}
}
exports.SimpleEventEmitter = __webpack_exports__.SimpleEventEmitter;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"SimpleEventEmitter"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});

18
node_modules/@posthog/core/dist/eventemitter.mjs generated vendored Normal file
View File

@@ -0,0 +1,18 @@
class SimpleEventEmitter {
constructor(){
this.events = {};
this.events = {};
}
on(event, listener) {
if (!this.events[event]) this.events[event] = [];
this.events[event].push(listener);
return ()=>{
this.events[event] = this.events[event].filter((x)=>x !== listener);
};
}
emit(event, payload) {
for (const listener of this.events[event] || [])listener(payload);
for (const listener of this.events['*'] || [])listener(event, payload);
}
}
export { SimpleEventEmitter };

35
node_modules/@posthog/core/dist/featureFlagUtils.d.ts generated vendored Normal file
View File

@@ -0,0 +1,35 @@
import { FeatureFlagDetail, FeatureFlagValue, PostHogFlagsResponse, PostHogV1FlagsResponse, PostHogV2FlagsResponse, PartialWithRequired, PostHogFeatureFlagsResponse } from './types';
export declare const normalizeFlagsResponse: (flagsResponse: PartialWithRequired<PostHogV2FlagsResponse, "flags"> | PartialWithRequired<PostHogV1FlagsResponse, "featureFlags" | "featureFlagPayloads">) => PostHogFeatureFlagsResponse;
/**
* Get the flag values from the flags v4 response.
* @param flags - The flags
* @returns The flag values
*/
export declare const getFlagValuesFromFlags: (flags: PostHogFlagsResponse["flags"]) => PostHogFlagsResponse["featureFlags"];
/**
* Get the payloads from the flags v4 response.
* @param flags - The flags
* @returns The payloads
*/
export declare const getPayloadsFromFlags: (flags: PostHogFlagsResponse["flags"]) => PostHogFlagsResponse["featureFlagPayloads"];
/**
* Get the flag details from the legacy v1 flags and payloads. As such, it will lack the reason, id, version, and description.
* @param flagsResponse - The flags response
* @returns The flag details
*/
export declare const getFlagDetailsFromFlagsAndPayloads: (flagsResponse: PostHogFeatureFlagsResponse) => PostHogFlagsResponse["flags"];
export declare const getFeatureFlagValue: (detail: FeatureFlagDetail | undefined) => FeatureFlagValue | undefined;
export declare const parsePayload: (response: any) => any;
/**
* Get the normalized flag details from the flags and payloads.
* This is used to convert things like bootstrap and stored feature flags and payloads to the v4 format.
* This helps us ensure backwards compatibility.
* If a key exists in the featureFlagPayloads that is not in the featureFlags, we treat it as a true feature flag.
*
* @param featureFlags - The feature flags
* @param featureFlagPayloads - The feature flag payloads
* @returns The normalized flag details
*/
export declare const createFlagsResponseFromFlagsAndPayloads: (featureFlags: PostHogV1FlagsResponse["featureFlags"], featureFlagPayloads: PostHogV1FlagsResponse["featureFlagPayloads"]) => PostHogFeatureFlagsResponse;
export declare const updateFlagValue: (flag: FeatureFlagDetail, value: FeatureFlagValue) => FeatureFlagDetail;
//# sourceMappingURL=featureFlagUtils.d.ts.map

Some files were not shown because too many files have changed in this diff Show More