sentry-uniapp 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -140
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/crossPlatform.d.ts +1 -1
- package/dist/integrations/globalhandlers.d.ts.map +1 -1
- package/dist/integrations/globalhandlers.js +13 -5
- package/dist/integrations/globalhandlers.js.map +1 -1
- package/dist/package.json +52 -0
- package/dist/sdk.d.ts +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +0 -1
- package/dist/sdk.js.map +1 -1
- package/dist/sentry-uniapp.min.js +2 -16
- package/dist/sentry-uniapp.min.js.LICENSE.txt +14 -0
- package/dist/sentry-uniapp.min.js.map +1 -1
- package/dist/src/backend.d.ts +41 -0
- package/dist/src/backend.d.ts.map +1 -0
- package/dist/src/backend.js +68 -0
- package/dist/src/backend.js.map +1 -0
- package/dist/src/client.d.ts +55 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +51 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/crossPlatform.d.ts +18 -0
- package/dist/src/crossPlatform.d.ts.map +1 -0
- package/dist/src/crossPlatform.js +80 -0
- package/dist/src/crossPlatform.js.map +1 -0
- package/dist/src/eventbuilder.d.ts +11 -0
- package/dist/src/eventbuilder.d.ts.map +1 -0
- package/dist/src/eventbuilder.js +79 -0
- package/dist/src/eventbuilder.js.map +1 -0
- package/dist/src/flags.d.ts +3 -0
- package/dist/src/flags.d.ts.map +1 -0
- package/dist/src/flags.js +18 -0
- package/dist/src/flags.js.map +1 -0
- package/dist/src/helpers.d.ts +35 -0
- package/dist/src/helpers.d.ts.map +1 -0
- package/dist/src/helpers.js +236 -0
- package/dist/src/helpers.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +40 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/globalhandlers.d.ts +47 -0
- package/dist/src/integrations/globalhandlers.d.ts.map +1 -0
- package/dist/src/integrations/globalhandlers.js +153 -0
- package/dist/src/integrations/globalhandlers.js.map +1 -0
- package/dist/src/integrations/ignoreMpcrawlerErrors.d.ts +21 -0
- package/dist/src/integrations/ignoreMpcrawlerErrors.d.ts.map +1 -0
- package/dist/src/integrations/ignoreMpcrawlerErrors.js +40 -0
- package/dist/src/integrations/ignoreMpcrawlerErrors.js.map +1 -0
- package/dist/src/integrations/index.d.ts +7 -0
- package/dist/src/integrations/index.d.ts.map +1 -0
- package/dist/src/integrations/index.js +14 -0
- package/dist/src/integrations/index.js.map +1 -0
- package/dist/src/integrations/linkederrors.d.ts +40 -0
- package/dist/src/integrations/linkederrors.d.ts.map +1 -0
- package/dist/src/integrations/linkederrors.js +65 -0
- package/dist/src/integrations/linkederrors.js.map +1 -0
- package/dist/src/integrations/router.d.ts +28 -0
- package/dist/src/integrations/router.d.ts.map +1 -0
- package/dist/src/integrations/router.js +47 -0
- package/dist/src/integrations/router.js.map +1 -0
- package/dist/src/integrations/system.d.ts +17 -0
- package/dist/src/integrations/system.d.ts.map +1 -0
- package/dist/src/integrations/system.js +65 -0
- package/dist/src/integrations/system.js.map +1 -0
- package/dist/src/integrations/trycatch.d.ts +26 -0
- package/dist/src/integrations/trycatch.d.ts.map +1 -0
- package/dist/src/integrations/trycatch.js +166 -0
- package/dist/src/integrations/trycatch.js.map +1 -0
- package/dist/src/parsers.d.ts +21 -0
- package/dist/src/parsers.d.ts.map +1 -0
- package/dist/src/parsers.js +97 -0
- package/dist/src/parsers.js.map +1 -0
- package/dist/src/sdk.d.ts +99 -0
- package/dist/src/sdk.d.ts.map +1 -0
- package/dist/src/sdk.js +155 -0
- package/dist/src/sdk.js.map +1 -0
- package/dist/src/tracekit.d.ts +38 -0
- package/dist/src/tracekit.d.ts.map +1 -0
- package/dist/src/tracekit.js +222 -0
- package/dist/src/tracekit.js.map +1 -0
- package/dist/src/transports/base.d.ts +22 -0
- package/dist/src/transports/base.d.ts.map +1 -0
- package/dist/src/transports/base.js +28 -0
- package/dist/src/transports/base.js.map +1 -0
- package/dist/src/transports/index.d.ts +3 -0
- package/dist/src/transports/index.d.ts.map +1 -0
- package/dist/src/transports/index.js +6 -0
- package/dist/src/transports/index.js.map +1 -0
- package/dist/src/transports/xhr.d.ts +10 -0
- package/dist/src/transports/xhr.d.ts.map +1 -0
- package/dist/src/transports/xhr.js +42 -0
- package/dist/src/transports/xhr.js.map +1 -0
- package/dist/src/version.d.ts +3 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +6 -0
- package/dist/src/version.js.map +1 -0
- package/dist/utils/debug-build.d.ts +7 -0
- package/dist/utils/debug-build.d.ts.map +1 -0
- package/dist/utils/debug-build.js +9 -0
- package/dist/utils/debug-build.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/esm/backend.d.ts.map +1 -1
- package/esm/backend.js.map +1 -1
- package/esm/client.d.ts.map +1 -1
- package/esm/client.js +3 -0
- package/esm/client.js.map +1 -1
- package/esm/integrations/globalhandlers.d.ts.map +1 -1
- package/esm/integrations/globalhandlers.js +13 -5
- package/esm/integrations/globalhandlers.js.map +1 -1
- package/esm/package.json +52 -0
- package/esm/sdk.d.ts.map +1 -1
- package/esm/sdk.js +0 -1
- package/esm/sdk.js.map +1 -1
- package/esm/src/backend.d.ts +41 -0
- package/esm/src/backend.d.ts.map +1 -0
- package/esm/src/backend.js +66 -0
- package/esm/src/backend.js.map +1 -0
- package/esm/src/client.d.ts +55 -0
- package/esm/src/client.d.ts.map +1 -0
- package/esm/src/client.js +49 -0
- package/esm/src/client.js.map +1 -0
- package/esm/src/crossPlatform.d.ts +18 -0
- package/esm/src/crossPlatform.d.ts.map +1 -0
- package/esm/src/crossPlatform.js +77 -0
- package/esm/src/crossPlatform.js.map +1 -0
- package/esm/src/eventbuilder.d.ts +11 -0
- package/esm/src/eventbuilder.d.ts.map +1 -0
- package/esm/src/eventbuilder.js +75 -0
- package/esm/src/eventbuilder.js.map +1 -0
- package/esm/src/flags.d.ts +3 -0
- package/esm/src/flags.d.ts.map +1 -0
- package/esm/src/flags.js +16 -0
- package/esm/src/flags.js.map +1 -0
- package/esm/src/helpers.d.ts +35 -0
- package/esm/src/helpers.d.ts.map +1 -0
- package/esm/src/helpers.js +229 -0
- package/esm/src/helpers.js.map +1 -0
- package/esm/src/index.d.ts +10 -0
- package/esm/src/index.d.ts.map +1 -0
- package/esm/src/index.js +9 -0
- package/esm/src/index.js.map +1 -0
- package/esm/src/integrations/globalhandlers.d.ts +47 -0
- package/esm/src/integrations/globalhandlers.d.ts.map +1 -0
- package/esm/src/integrations/globalhandlers.js +151 -0
- package/esm/src/integrations/globalhandlers.js.map +1 -0
- package/esm/src/integrations/ignoreMpcrawlerErrors.d.ts +21 -0
- package/esm/src/integrations/ignoreMpcrawlerErrors.d.ts.map +1 -0
- package/esm/src/integrations/ignoreMpcrawlerErrors.js +38 -0
- package/esm/src/integrations/ignoreMpcrawlerErrors.js.map +1 -0
- package/esm/src/integrations/index.d.ts +7 -0
- package/esm/src/integrations/index.d.ts.map +1 -0
- package/esm/src/integrations/index.js +7 -0
- package/esm/src/integrations/index.js.map +1 -0
- package/esm/src/integrations/linkederrors.d.ts +40 -0
- package/esm/src/integrations/linkederrors.d.ts.map +1 -0
- package/esm/src/integrations/linkederrors.js +63 -0
- package/esm/src/integrations/linkederrors.js.map +1 -0
- package/esm/src/integrations/router.d.ts +28 -0
- package/esm/src/integrations/router.d.ts.map +1 -0
- package/esm/src/integrations/router.js +45 -0
- package/esm/src/integrations/router.js.map +1 -0
- package/esm/src/integrations/system.d.ts +17 -0
- package/esm/src/integrations/system.d.ts.map +1 -0
- package/esm/src/integrations/system.js +63 -0
- package/esm/src/integrations/system.js.map +1 -0
- package/esm/src/integrations/trycatch.d.ts +26 -0
- package/esm/src/integrations/trycatch.d.ts.map +1 -0
- package/esm/src/integrations/trycatch.js +164 -0
- package/esm/src/integrations/trycatch.js.map +1 -0
- package/esm/src/parsers.d.ts +21 -0
- package/esm/src/parsers.d.ts.map +1 -0
- package/esm/src/parsers.js +91 -0
- package/esm/src/parsers.js.map +1 -0
- package/esm/src/sdk.d.ts +99 -0
- package/esm/src/sdk.d.ts.map +1 -0
- package/esm/src/sdk.js +147 -0
- package/esm/src/sdk.js.map +1 -0
- package/esm/src/tracekit.d.ts +38 -0
- package/esm/src/tracekit.d.ts.map +1 -0
- package/esm/src/tracekit.js +219 -0
- package/esm/src/tracekit.js.map +1 -0
- package/esm/src/transports/base.d.ts +22 -0
- package/esm/src/transports/base.d.ts.map +1 -0
- package/esm/src/transports/base.js +26 -0
- package/esm/src/transports/base.js.map +1 -0
- package/esm/src/transports/index.d.ts +3 -0
- package/esm/src/transports/index.d.ts.map +1 -0
- package/esm/src/transports/index.js +3 -0
- package/esm/src/transports/index.js.map +1 -0
- package/esm/src/transports/xhr.d.ts +10 -0
- package/esm/src/transports/xhr.d.ts.map +1 -0
- package/esm/src/transports/xhr.js +40 -0
- package/esm/src/transports/xhr.js.map +1 -0
- package/esm/src/version.d.ts +3 -0
- package/esm/src/version.d.ts.map +1 -0
- package/esm/src/version.js +4 -0
- package/esm/src/version.js.map +1 -0
- package/esm/utils/debug-build.d.ts +7 -0
- package/esm/utils/debug-build.d.ts.map +1 -0
- package/esm/utils/debug-build.js +7 -0
- package/esm/utils/debug-build.js.map +1 -0
- package/esm/utils/logger.d.ts +25 -0
- package/esm/utils/logger.d.ts.map +1 -0
- package/esm/utils/logger.js +42 -0
- package/esm/utils/logger.js.map +1 -0
- package/esm/version.d.ts +2 -2
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +3 -2
- package/esm/version.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,86 +1,68 @@
|
|
|
1
|
-
#
|
|
1
|
+
# sentry Uniapp SDK
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`sentry Uniapp SDK` 的封装,可用于 Uniapp 全端,包含app, h5,微信小程序,抖音小程序,百度小程序等各家平台。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
同时支持 Uniapp vue2 / vue3 工程。
|
|
6
|
+
|
|
7
|
+
> 提示:由于快应用 require 方式特殊性,webpack是在编译期处理的,动态代码检测无效,所以单独维护,包名为 sentry-quickapp。
|
|
6
8
|
|
|
7
9
|
快应用项目可参考:
|
|
8
10
|
|
|
9
11
|
<https://github.com/uappkit/sentry-quickapp>
|
|
10
12
|
|
|
11
|
-
## 功能特点
|
|
12
|
-
|
|
13
|
-
- [x] 基于 [sentry-javascript 最新的基础模块](https://www.yuque.com/lizhiyao/dxy/zevhf1#0GMCN) 封装
|
|
14
|
-
- [x] 遵守[官方统一的 API 设计文档](https://www.yuque.com/lizhiyao/dxy/gc3b9r#vQdTs),使用方式和官方保持一致
|
|
15
|
-
- [x] 使用 [TypeScript](https://www.typescriptlang.org/) 进行编写
|
|
16
|
-
- [x] 包含 Sentry SDK(如:[@sentry/browser](https://github.com/getsentry/sentry-javascript/tree/master/packages/browser))的所有基础功能
|
|
17
|
-
- [x] 支持 `ES6`、`CommonJS` 两种模块系统(支持小程序原生开发方式、使用小程序框架开发方式两种开发模式下使用)
|
|
18
|
-
- [x] 默认监听并上报小程序的 onError、onUnhandledRejection、onPageNotFound、onMemoryWarning 事件返回的信息(各事件支持程度与对应各小程序官方保持一致)
|
|
19
|
-
- [x] 默认上报运行小程序的设备、操作系统、应用版本信息
|
|
20
|
-
- [x] 支持微信小程序
|
|
21
|
-
- [x] 支持微信小游戏
|
|
22
|
-
- [x] 支持字节跳动小程序
|
|
23
|
-
- [x] 支持支付宝小程序
|
|
24
|
-
- [x] 支持钉钉小程序
|
|
25
|
-
- [x] 支持百度小程序
|
|
26
|
-
- [x] 支持快应用
|
|
27
|
-
- [x] 支持在 [Taro](https://taro.aotu.io/) 等第三方小程序框架中使用
|
|
28
|
-
- [x] 默认上报异常发生时的路由栈
|
|
29
|
-
- [ ] 完善的代码测试
|
|
30
|
-
|
|
31
13
|
## 用法
|
|
32
14
|
|
|
33
|
-
支持两种使用方式:
|
|
34
|
-
|
|
35
|
-
- 直接引用
|
|
36
|
-
- 通过 npm 方式使用(推荐)
|
|
37
|
-
|
|
38
|
-
### 注意
|
|
39
|
-
|
|
40
|
-
1. 无论选择哪种使用方式,都需要开启「微信开发者工具 - 设置 - 项目设置 - 增强编译」功能
|
|
41
|
-
2. 使用前需要确保有可用的 `Sentry Service`,比如:使用 [官方 Sentry Service](https://sentry.io/welcome/) 服务 或[自己搭建 Sentry Service](https://docs.sentry.io/server/)。如果想直接将异常信息上报到 <https://sentry.io/>,由于其没有备案,可以先将异常信息上报给自己已备案域名下的服务端接口,由服务端进行请求转发。
|
|
42
|
-
3. 在小程序管理后台配置 `Sentry Service` 对应的 `request` 合法域名
|
|
43
|
-
|
|
44
|
-
### 直接引用
|
|
45
|
-
|
|
46
|
-
1. 微信小程序和微信小游戏下载 [sentry-uniapp.wx.min.js](https://github.com/uappkit/sentry-uniapp/blob/master/examples/weapp/vendor/sentry-uniapp.wx.min.js);字节跳动小程序下载 [sentry-uniapp.tt.min.js](https://github.com/uappkit/sentry-uniapp/blob/master/examples/ttapp/vendor/sentry-uniapp.tt.min.js);支付宝小程序下载 [sentry-uniapp.my.min.js](https://github.com/uappkit/sentry-uniapp/blob/master/examples/myapp/vendor/sentry-uniapp.my.min.js),钉钉小程序下载 [sentry-uniapp.dd.min.js](https://github.com/uappkit/sentry-uniapp/blob/master/examples/ddapp/vendor/sentry-uniapp.dd.min.js)
|
|
47
|
-
2. 参照 `/examples` 中各项目使用方式,将 `sentry-uniapp.xx.min.js` 放入项目的合适目录中,比如放入 `vendor` 文件夹
|
|
48
|
-
3. 参照 `/examples/app.js` 代码,进行 `Sentry` 的初始化
|
|
49
|
-
4. 对于提供了微信、字节跳动小程序 `sentry-uniapp` 会自动上报 `xx.onError()` 捕获的异常,对于支付宝小程序需要应用开发者在 `App.onError()` 中主动进行异常上报。详情可见 `/docs/cross-platform.md`。
|
|
50
|
-
|
|
51
|
-
### npm 方式
|
|
52
|
-
|
|
53
|
-
注意:目前字节跳动小程序不支持 npm 方式。
|
|
54
|
-
|
|
55
15
|
1. 安装依赖
|
|
56
16
|
|
|
57
17
|
```bash
|
|
58
|
-
npm install sentry-uniapp
|
|
59
|
-
# 或者
|
|
60
|
-
yarn add sentry-uniapp
|
|
18
|
+
npm install sentry-uniapp
|
|
61
19
|
```
|
|
62
20
|
|
|
63
|
-
2.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
21
|
+
2. 在 `App.vue => onLaunch` 中初始化
|
|
22
|
+
|
|
23
|
+
注意替换下方代码里的 `__DSN__`,并仔细阅读注释说明和常见问题
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
export default {
|
|
27
|
+
onLaunch: function () {
|
|
28
|
+
console.log('App Launch');
|
|
29
|
+
sentry.init({
|
|
30
|
+
// __DSN__ 参考格式: https://8137b89b2d1c4e349da3a38dca80c5fe@sentry.io/1
|
|
31
|
+
dsn: '__DSN__',
|
|
32
|
+
|
|
33
|
+
// extraOptions 主要是解决平台差异问题的,见下方说明
|
|
34
|
+
// 非 APP 平台,可以不实用
|
|
35
|
+
extraOptions: { onmemorywarning: false, onerror: false }
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// 代码上报,extra 为可选的自定义对象内容
|
|
39
|
+
sentry.captureMessage('custom message from ' + uni.getSystemInfoSync().platform, {
|
|
40
|
+
UserId: 123,
|
|
41
|
+
Command: 'npm i -g uapp'
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// 触发一个未定义函数的错误
|
|
45
|
+
balabala();
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// sentry-uniapp 内部是通过 uni.onError 钩子函数捕获错误的
|
|
49
|
+
// 但目前 uni.onError 暂不支持 App (android / ios),各平台支持情况参考:
|
|
50
|
+
// https://uniapp.dcloud.net.cn/api/application.html#onerror
|
|
51
|
+
//
|
|
52
|
+
// 通用方案:
|
|
53
|
+
// 可用 App.onError 自己处理,但需要先禁用 sentry 里的捕获
|
|
54
|
+
// 方法在 sentry.init 参数里加上 extraOptions: { onerror: false }
|
|
55
|
+
onError: function (e) {
|
|
56
|
+
sentry.captureException(e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
69
60
|
|
|
70
|
-
|
|
71
|
-
// init options: https://github.com/getsentry/sentry-javascript/blob/master/packages/types/src/options.ts
|
|
72
|
-
// extraOptions 可以禁用哪些监听事件,定义见: GlobalHandlersIntegrations
|
|
73
|
-
// 例如出现 LOG: API `onMemoryWarning` is not yet implemented,可通过 `onmemorywarning: false` 关闭
|
|
74
|
-
Sentry.init({
|
|
75
|
-
dsn: "__DSN__",
|
|
76
|
-
extraOptions: {
|
|
77
|
-
onmemorywarning: false,
|
|
78
|
-
},
|
|
79
|
-
// ...
|
|
80
|
-
});
|
|
61
|
+
***其他可选配置***
|
|
81
62
|
|
|
63
|
+
```js
|
|
82
64
|
// Set user information, as well as tags and further extras
|
|
83
|
-
|
|
65
|
+
sentry.configureScope((scope) => {
|
|
84
66
|
scope.setExtra("battery", 0.7);
|
|
85
67
|
scope.setTag("user_mode", "admin");
|
|
86
68
|
scope.setUser({ id: "4711" });
|
|
@@ -88,124 +70,109 @@ Sentry SDK 的封装,可用于Uniapp全端,及微信小程序,抖音小程
|
|
|
88
70
|
});
|
|
89
71
|
|
|
90
72
|
// Add a breadcrumb for future events
|
|
91
|
-
|
|
73
|
+
sentry.addBreadcrumb({
|
|
92
74
|
message: "My Breadcrumb",
|
|
93
75
|
// ...
|
|
94
76
|
});
|
|
95
77
|
|
|
96
78
|
// Capture exceptions, messages or manual events
|
|
97
79
|
// Error 无法定义标题,可以用下面的 captureMessage
|
|
98
|
-
|
|
80
|
+
sentry.captureException(new Error("Good bye"));
|
|
99
81
|
|
|
100
|
-
// captureMessage
|
|
101
|
-
|
|
102
|
-
Sentry.captureMessage("message title", {
|
|
82
|
+
// captureMessage 可以定制消息标题,extra 为附加的对象内容
|
|
83
|
+
sentry.captureMessage("message title", {
|
|
103
84
|
extra
|
|
104
85
|
});
|
|
105
86
|
|
|
106
|
-
|
|
87
|
+
sentry.captureEvent({
|
|
107
88
|
message: "Manual",
|
|
108
89
|
stacktrace: [
|
|
109
90
|
// ...
|
|
110
91
|
],
|
|
111
92
|
});
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
## 开发
|
|
115
|
-
|
|
116
|
-
### 知识储备
|
|
117
|
-
|
|
118
|
-
开发前请仔细阅读下面内容:
|
|
119
|
-
|
|
120
|
-
- [sentry-javascript README 中文版](https://www.yuque.com/lizhiyao/dxydance/sentry-javascript-readme-cn)
|
|
121
|
-
- [Sentry 开发指南](https://www.yuque.com/lizhiyao/dxydance/sentry-develop-guide)
|
|
122
|
-
- [sentry-javascript 源码阅读](https://www.yuque.com/lizhiyao/dxydance/sentry-javascript-src)
|
|
93
|
+
```
|
|
123
94
|
|
|
124
|
-
|
|
95
|
+
## 参考示例
|
|
125
96
|
|
|
126
|
-
|
|
97
|
+
项目代码里的 `uapp-demo`,通过 HBuilderX 打开即可
|
|
127
98
|
|
|
128
|
-
|
|
99
|
+

|
|
129
100
|
|
|
130
|
-
|
|
101
|
+
## 常见问题
|
|
131
102
|
|
|
132
|
-
|
|
103
|
+
1、大多数本地环境问题,成功安装后,目录结构如下图:
|
|
133
104
|
|
|
134
|
-

|
|
135
106
|
|
|
136
|
-
|
|
107
|
+
先通过 sentry.captureMessage 确认能上报成功,如果收不到,
|
|
137
108
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
npm run version
|
|
109
|
+
* 可检测 `__DSN__` 是否正确
|
|
110
|
+
* 检测网络,最好通过配置代理拦截下网络请求是否存在
|
|
141
111
|
|
|
142
|
-
|
|
143
|
-
npm run build:dist
|
|
112
|
+
2、提示 onmemorywarning 未实现错误
|
|
144
113
|
|
|
145
|
-
|
|
146
|
-
npm run build
|
|
114
|
+
> API `onMemoryWarning` is not yet implemented __ERROR
|
|
147
115
|
|
|
148
|
-
|
|
149
|
-
npm run build:esm
|
|
116
|
+
有的平台不支持 `memorywarning` 的监听,可以 sentry.init 里禁用:
|
|
150
117
|
|
|
151
|
-
|
|
152
|
-
|
|
118
|
+
```.js
|
|
119
|
+
sentry.init({
|
|
120
|
+
dsn: '__DSN__',
|
|
121
|
+
extraOptions: { onmemorywarning: false }
|
|
122
|
+
});
|
|
153
123
|
```
|
|
154
124
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-

|
|
158
|
-

|
|
159
|
-

|
|
160
|
-

|
|
161
|
-
|
|
162
|
-
## 谁在使用 sentry-uniapp
|
|
125
|
+
3、暂不支持 sentry.init 开启 debug,移除 或设置 false
|
|
163
126
|
|
|
164
|
-
|
|
127
|
+
> [Vue warn]: Error in onLaunch hook: "TypeError: undefined is not an object (evaluating '(_a = global.console)[name]')"[ERROR] : [Vue warn]: Error in onLaunch hook: "TypeError: undefined is not an object (evaluating '(_a = global.console)[name]')"(found at App.vue:1) __ERROR
|
|
165
128
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
- 丁香医生
|
|
174
|
-
|
|
175
|
-
### 字节跳动小程序
|
|
129
|
+
```.js
|
|
130
|
+
sentry.init({
|
|
131
|
+
dsn: '__DSN__',
|
|
132
|
+
debug: false,
|
|
133
|
+
});
|
|
134
|
+
```
|
|
176
135
|
|
|
177
|
-
|
|
136
|
+
4、代码异常没有自动上报的,可查看 HBuilderX 的 log 窗口,区分以下两种错误情况
|
|
178
137
|
|
|
179
|
-
|
|
138
|
+
[JS Framework] 开头,由 framewrok 底层拦截 `不会触发 sentry 上报`,错误信息如下:
|
|
180
139
|
|
|
181
|
-
|
|
182
|
-
- [Sentry Getting Started](https://docs.sentry.io/error-reporting/quickstart/?platform=browsernpm)
|
|
183
|
-
- [Sentry JavaScript SDKs](http://getsentry.github.io/sentry-javascript/)
|
|
184
|
-
- [Sentry TypeScript Configuration](https://github.com/getsentry/sentry-javascript/tree/master/packages/typescript)
|
|
185
|
-
- [wx.request](https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html)
|
|
186
|
-
- [小程序 App](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html)
|
|
187
|
-
- [wx.onError、App.onError 疑惑及如何捕获 Promise 异常?](https://developers.weixin.qq.com/community/develop/doc/000c8cf5794770272709f38a756000)
|
|
188
|
-
- [shields.io](https://shields.io/)
|
|
189
|
-
- [字节跳动小程序文档](https://developer.toutiao.com/docs/framework/)
|
|
190
|
-
- [支付宝小程序文档](https://docs.alipay.com/mini/developer)
|
|
191
|
-
- [tt.onError 的疑问](http://forum.microapp.bytedance.com/topic/2806/tt-onerror-%E7%96%91%E9%97%AE)
|
|
140
|
+
> [JS Framework] Failed to execute the callback function:[ERROR] : [JS Framework] Failed to execute the callback function:ReferenceError: Can't find variable: balabala __ERROR
|
|
192
141
|
|
|
193
|
-
|
|
142
|
+
Vue 层报的错误,可以触发 sentry 上报,错误信息如下:
|
|
194
143
|
|
|
195
|
-
|
|
196
|
-
- [FrontJS](https://www.frontjs.com/home/tour)
|
|
197
|
-
- [Bugout](https://bugout.testin.cn/)
|
|
144
|
+
> [Vue warn]: Error in onLaunch hook: "ReferenceError: Can't find variable: balabala"[ERROR] : [Vue warn]: Error in onLaunch hook: "ReferenceError: Can't find variable: balabala"(found at App.vue:1) __ERROR
|
|
198
145
|
|
|
199
|
-
##
|
|
146
|
+
## 功能特点
|
|
200
147
|
|
|
201
|
-
|
|
148
|
+
- [x] 基于 [sentry-javascript 最新的基础模块](https://www.yuque.com/lizhiyao/dxy/zevhf1#0GMCN) 封装
|
|
149
|
+
- [x] 遵守[官方统一的 API 设计文档](https://www.yuque.com/lizhiyao/dxy/gc3b9r#vQdTs),使用方式和官方保持一致
|
|
150
|
+
- [x] 使用 [TypeScript](https://www.typescriptlang.org/) 进行编写
|
|
151
|
+
- [x] 包含 Sentry SDK(如:[@sentry/browser](https://github.com/getsentry/sentry-javascript/tree/master/packages/browser))的所有基础功能
|
|
152
|
+
- [x] 支持 `ES6`、`CommonJS` 两种模块系统(支持小程序原生开发方式、使用小程序框架开发方式两种开发模式下使用)
|
|
153
|
+
- [x] 默认监听并上报小程序的 onError、onUnhandledRejection、onPageNotFound、onMemoryWarning 事件返回的信息(各事件支持程度与对应各小程序官方保持一致)
|
|
154
|
+
- [x] 默认上报运行小程序的设备、操作系统、应用版本信息
|
|
155
|
+
- [x] 支持微信小程序
|
|
156
|
+
- [x] 支持微信小游戏
|
|
157
|
+
- [x] 支持字节跳动小程序
|
|
158
|
+
- [x] 支持支付宝小程序
|
|
159
|
+
- [x] 支持钉钉小程序
|
|
160
|
+
- [x] 支持百度小程序
|
|
161
|
+
- [x] 支持快应用
|
|
162
|
+
- [x] 支持在 [Taro](https://taro.aotu.io/) 等第三方小程序框架中使用
|
|
163
|
+
- [x] 默认上报异常发生时的路由栈
|
|
164
|
+
- [ ] 完善的代码测试
|
|
202
165
|
|
|
203
166
|
## 感谢
|
|
204
167
|
|
|
205
|
-
|
|
168
|
+
本项目基于下面开源基础上修改,感谢原作者:
|
|
206
169
|
|
|
207
170
|
<https://github.com/lizhiyao/sentry-miniapp>
|
|
208
171
|
|
|
209
172
|
## 联系作者
|
|
210
173
|
|
|
211
174
|
微信: yinqisen
|
|
175
|
+
|
|
176
|
+
推荐另一个开源作品 `uapp`, 方便 Uniapp 离线打包的 cli。
|
|
177
|
+
|
|
178
|
+

|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/E;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,cAAc,CAAC;IAC7D;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,SAAS;IAkBtC;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/E;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,cAAc,CAAC;IAC7D;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,SAAS;IAkBtC;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IAgB/E;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,QAAwB,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;CAWhH"}
|
package/dist/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,uCAA+E;AAC/E,uCAA2E;AAE3E,+CAAwE;AACxE,4CAAkD;AAyBlD;;;GAGG;AACH;IAAoC,0CAA2B;IAA/D;;
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,uCAA+E;AAC/E,uCAA2E;AAE3E,+CAAwE;AACxE,4CAAkD;AAyBlD;;;GAGG;AACH;IAAoC,0CAA2B;IAA/D;;IAuDA,CAAC;IAtDC;;OAEG;IACO,wCAAe,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,6DAA6D;YAC7D,OAAO,iBAAM,eAAe,WAAE,CAAC;SAChC;QAED,IAAM,gBAAgB,yCACjB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,GACvB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;SACtD;QAED,OAAO,IAAI,oBAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,2CAAkB,GAAzB,UAA0B,SAAc,EAAE,IAAgB;QACxD,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QAC1E,IAAM,KAAK,GAAG,oCAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE;YACjE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SACjD,CAAC,CAAC;QAEH,6BAAqB,CAAC,KAAK,EAAE;YAC3B,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,gBAAQ,CAAC,KAAK,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;QACD,OAAO,2BAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD;;OAEG;IACI,yCAAgB,GAAvB,UAAwB,OAAe,EAAE,KAA+B,EAAE,IAAgB;QAAjD,sBAAA,EAAA,QAAkB,gBAAQ,CAAC,IAAI;QACtE,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QAC1E,IAAM,KAAK,GAAG,8BAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE;YACzD,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SACjD,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;QACD,OAAO,2BAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,qBAAC;AAAD,CAAC,AAvDD,CAAoC,kBAAW,GAuD9C;AAvDY,wCAAc","sourcesContent":["import { BaseBackend } from \"@sentry/core\";\nimport { Event, EventHint, Options, Severity, Transport } from \"@sentry/types\";\nimport { addExceptionMechanism, resolvedSyncPromise } from '@sentry/utils';\n\nimport { eventFromString, eventFromUnknownInput } from './eventbuilder';\nimport { XHRTransport } from \"./transports/index\";\n\n/**\n * Configuration options for the Sentry Miniapp SDK.\n * Sentry Miniapp SDK 的配置选项。\n * @see MiniappClient for more information.\n */\nexport interface MiniappOptions extends Options {\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To whitelist certain errors instead, use {@link Options.whitelistUrls}.\n * By default, all errors will be sent.\n */\n blacklistUrls?: Array<string | RegExp>;\n\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.blacklistUrls}.\n * By default, all errors will be sent.\n */\n whitelistUrls?: Array<string | RegExp>;\n\n extraOptions?: Object;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class MiniappBackend extends BaseBackend<MiniappOptions> {\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn\n };\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n\n return new XHRTransport(transportOptions);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: any, hint?: EventHint): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n }\n}\n"]}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3E;;;;OAIG;gBACgB,OAAO,GAAE,cAAmB;IAI/C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3E;;;;OAIG;gBACgB,OAAO,GAAE,cAAmB;IAI/C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAsBjG;;;;;OAKG;IACI,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI;CAIjE"}
|
package/dist/client.js
CHANGED
|
@@ -34,6 +34,9 @@ var MiniappClient = /** @class */ (function (_super) {
|
|
|
34
34
|
]), version: version_1.SDK_VERSION });
|
|
35
35
|
return _super.prototype._prepareEvent.call(this, event, scope, hint);
|
|
36
36
|
};
|
|
37
|
+
// protected setupIntegrations() {
|
|
38
|
+
//
|
|
39
|
+
// }
|
|
37
40
|
/**
|
|
38
41
|
* Show a report dialog to the user to send feedback to a specific event.
|
|
39
42
|
* 向用户显示报告对话框以将反馈发送到特定事件。---> 小程序上暂时用不到&不考虑。
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAGjD,qCAA2D;AAC3D,qCAAkD;AA6BlD;;;;;GAKG;AACH;IAAmC,yCAA0C;IAC3E;;;;OAIG;IACH,uBAAmB,OAA4B;QAA5B,wBAAA,EAAA,YAA4B;eAC7C,kBAAM,wBAAc,EAAE,OAAO,CAAC;IAChC,CAAC;IAED;;OAEG;IACO,qCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QACnE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAChD,KAAK,CAAC,GAAG,yCACJ,KAAK,CAAC,GAAG,KACZ,IAAI,EAAE,kBAAQ,EACd,QAAQ,mBACH,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5C;oBACE,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,qBAAW;iBACrB;gBAEH,OAAO,EAAE,qBAAW,GACrB,CAAC;QAEF,OAAO,iBAAM,aAAa,YAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACI,wCAAgB,GAAvB,UAAwB,OAAiC;QAAjC,wBAAA,EAAA,YAAiC;QACvD,iDAAiD;QACjD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACH,oBAAC;AAAD,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAGjD,qCAA2D;AAC3D,qCAAkD;AA6BlD;;;;;GAKG;AACH;IAAmC,yCAA0C;IAC3E;;;;OAIG;IACH,uBAAmB,OAA4B;QAA5B,wBAAA,EAAA,YAA4B;eAC7C,kBAAM,wBAAc,EAAE,OAAO,CAAC;IAChC,CAAC;IAED;;OAEG;IACO,qCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QACnE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAChD,KAAK,CAAC,GAAG,yCACJ,KAAK,CAAC,GAAG,KACZ,IAAI,EAAE,kBAAQ,EACd,QAAQ,mBACH,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5C;oBACE,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,qBAAW;iBACrB;gBAEH,OAAO,EAAE,qBAAW,GACrB,CAAC;QAEF,OAAO,iBAAM,aAAa,YAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,EAAE;IACF,IAAI;IAEJ;;;;;OAKG;IACI,wCAAgB,GAAvB,UAAwB,OAAiC;QAAjC,wBAAA,EAAA,YAAiC;QACvD,iDAAiD;QACjD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACH,oBAAC;AAAD,CAAC,AA7CD,CAAmC,iBAAU,GA6C5C;AA7CY,sCAAa","sourcesContent":["import { BaseClient, Scope } from \"@sentry/core\";\nimport { DsnLike, Event, EventHint } from \"@sentry/types\";\n\nimport { MiniappBackend, MiniappOptions } from \"./backend\";\nimport { SDK_NAME, SDK_VERSION } from \"./version\";\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * The Sentry Miniapp SDK Client.\n *\n * @see MiniappOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class MiniappClient extends BaseClient<MiniappBackend, MiniappOptions> {\n /**\n * Creates a new Miniapp SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: MiniappOptions = {}) {\n super(MiniappBackend, options);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n event.platform = event.platform || \"javascript\";\n event.sdk = {\n ...event.sdk,\n name: SDK_NAME,\n packages: [\n ...((event.sdk && event.sdk.packages) || []),\n {\n name: \"npm:sentry-uniapp\",\n version: SDK_VERSION\n }\n ],\n version: SDK_VERSION\n };\n\n return super._prepareEvent(event, scope, hint);\n }\n\n // protected setupIntegrations() {\n //\n // }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n * 向用户显示报告对话框以将反馈发送到特定事件。---> 小程序上暂时用不到&不考虑。\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n console.log('sentry-uniapp 暂未实现该方法', options);\n }\n}\n"]}
|
package/dist/crossPlatform.d.ts
CHANGED
|
@@ -13,6 +13,6 @@ interface SDK {
|
|
|
13
13
|
getLaunchOptionsSync?: Function;
|
|
14
14
|
}
|
|
15
15
|
declare const sdk: SDK;
|
|
16
|
-
declare const appName: "uniapp" | "wechat" | "alipay" | "bytedance" | "dingtalk" | "qq" | "swan"
|
|
16
|
+
declare const appName: "unknown" | "uniapp" | "wechat" | "alipay" | "bytedance" | "dingtalk" | "qq" | "swan";
|
|
17
17
|
export { sdk, appName };
|
|
18
18
|
//# sourceMappingURL=crossPlatform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalhandlers.d.ts","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,YAAY;AACZ,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,sBAAsB;AACtB,qBAAa,cAAe,YAAW,WAAW;IAChD;;OAEG;IACI,IAAI,EAAE,MAAM,CAAqB;IAExC;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAoB;IAE5C,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YAAY;IACZ,OAAO,CAAC,wBAAwB,CAAkB;IAElD,YAAY;IACZ,OAAO,CAAC,qCAAqC,CAAkB;IAE/D,YAAY;IACZ,OAAO,CAAC,+BAA+B,CAAkB;IAEzD,YAAY;IACZ,OAAO,CAAC,gCAAgC,CAAkB;IAE1D,YAAY;gBACO,OAAO,CAAC,EAAE,0BAA0B;IAUvD,YAAY;IACL,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"globalhandlers.d.ts","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,YAAY;AACZ,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,sBAAsB;AACtB,qBAAa,cAAe,YAAW,WAAW;IAChD;;OAEG;IACI,IAAI,EAAE,MAAM,CAAqB;IAExC;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAoB;IAE5C,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YAAY;IACZ,OAAO,CAAC,wBAAwB,CAAkB;IAElD,YAAY;IACZ,OAAO,CAAC,qCAAqC,CAAkB;IAE/D,YAAY;IACZ,OAAO,CAAC,+BAA+B,CAAkB;IAEzD,YAAY;IACZ,OAAO,CAAC,gCAAgC,CAAkB;IAE1D,YAAY;gBACO,OAAO,CAAC,EAAE,0BAA0B;IAUvD,YAAY;IACL,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI;IAoBhD;;OAEG;IACI,SAAS,IAAI,IAAI;IAwBxB,YAAY;IACZ,OAAO,CAAC,4BAA4B;IAmBpC,YAAY;IACZ,OAAO,CAAC,yCAAyC;IA6BjD,YAAY;IACZ,OAAO,CAAC,mCAAmC;IAoB3C,YAAY;IACZ,OAAO,CAAC,oCAAoC;CAiC7C"}
|
|
@@ -25,10 +25,18 @@ var GlobalHandlers = /** @class */ (function () {
|
|
|
25
25
|
/** JSDoc */
|
|
26
26
|
GlobalHandlers.prototype.setExtraOptions = function (extraOptions) {
|
|
27
27
|
if (extraOptions) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
if (extraOptions.onerror !== undefined) {
|
|
29
|
+
this._options.onerror = !!extraOptions.onerror;
|
|
30
|
+
}
|
|
31
|
+
if (extraOptions.onunhandledrejection !== undefined) {
|
|
32
|
+
this._options.onunhandledrejection = !!extraOptions.onunhandledrejection;
|
|
33
|
+
}
|
|
34
|
+
if (extraOptions.onpagenotfound !== undefined) {
|
|
35
|
+
this._options.onpagenotfound = !!extraOptions.onpagenotfound;
|
|
36
|
+
}
|
|
37
|
+
if (extraOptions.onmemorywarning !== undefined) {
|
|
38
|
+
this._options.onmemorywarning = !!extraOptions.onmemorywarning;
|
|
39
|
+
}
|
|
32
40
|
}
|
|
33
41
|
};
|
|
34
42
|
/**
|
|
@@ -62,7 +70,7 @@ var GlobalHandlers = /** @class */ (function () {
|
|
|
62
70
|
var currentHub_1 = core_1.getCurrentHub();
|
|
63
71
|
// https://developers.weixin.qq.com/miniprogram/dev/api/base/app/app-event/wx.onError.html
|
|
64
72
|
crossPlatform_1.sdk.onError(function (err) {
|
|
65
|
-
// console.info("sentry-uniapp",
|
|
73
|
+
// console.info("sentry-uniapp", err);
|
|
66
74
|
var error = typeof err === 'string' ? new Error(err) : err;
|
|
67
75
|
currentHub_1.captureException(error);
|
|
68
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalhandlers.js","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAE7C,uCAAuC;AAEvC,kDAAuC;AAUvC,sBAAsB;AACtB;IA0BE,YAAY;IACZ,wBAAmB,OAAoC;QA1BvD;;WAEG;QACI,SAAI,GAAW,cAAc,CAAC,EAAE,CAAC;QAUxC,YAAY;QACJ,6BAAwB,GAAY,KAAK,CAAC;QAElD,YAAY;QACJ,0CAAqC,GAAY,KAAK,CAAC;QAE/D,YAAY;QACJ,oCAA+B,GAAY,KAAK,CAAC;QAEzD,YAAY;QACJ,qCAAgC,GAAY,KAAK,CAAC;QAIxD,IAAI,CAAC,QAAQ,sBACX,OAAO,EAAE,IAAI,EACb,oBAAoB,EAAE,IAAI,EAC1B,cAAc,EAAE,IAAI,EACpB,eAAe,EAAE,IAAI,IAClB,OAAO,CACX,CAAC;IACJ,CAAC;IAED,YAAY;IACL,wCAAe,GAAtB,UAAuB,YAAkB;QACvC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"globalhandlers.js","sourceRoot":"","sources":["../../src/integrations/globalhandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { getCurrentHub } from \"@sentry/core\";\nimport { Integration } from \"@sentry/types\";\nimport { logger } from \"@sentry/utils\";\n\nimport { sdk } from \"../crossPlatform\";\n\n/** JSDoc */\ninterface GlobalHandlersIntegrations {\n onerror: boolean;\n onunhandledrejection: boolean;\n onpagenotfound: boolean;\n onmemorywarning: boolean;\n}\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /**\n * @inheritDoc\n */\n public static id: string = \"GlobalHandlers\";\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /** JSDoc */\n private _onErrorHandlerInstalled: boolean = false;\n\n /** JSDoc */\n private _onUnhandledRejectionHandlerInstalled: boolean = false;\n\n /** JSDoc */\n private _onPageNotFoundHandlerInstalled: boolean = false;\n\n /** JSDoc */\n private _onMemoryWarningHandlerInstalled: boolean = false;\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n onpagenotfound: true,\n onmemorywarning: true,\n ...options,\n };\n }\n\n /** JSDoc */\n public setExtraOptions(extraOptions?: any): void {\n if (extraOptions) {\n if (extraOptions.onerror !== undefined) {\n this._options.onerror = !!extraOptions.onerror;\n }\n\n if (extraOptions.onunhandledrejection !== undefined) {\n this._options.onunhandledrejection = !!extraOptions.onunhandledrejection;\n }\n\n if (extraOptions.onpagenotfound !== undefined) {\n this._options.onpagenotfound = !!extraOptions.onpagenotfound;\n }\n\n if (extraOptions.onmemorywarning !== undefined) {\n this._options.onmemorywarning = !!extraOptions.onmemorywarning;\n }\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n\n if (this._options.onerror) {\n logger.log(\"Global Handler attached: onError\");\n this._installGlobalOnErrorHandler();\n }\n\n if (this._options.onunhandledrejection) {\n logger.log(\"Global Handler attached: onunhandledrejection\");\n this._installGlobalOnUnhandledRejectionHandler();\n }\n\n if (this._options.onpagenotfound) {\n logger.log(\"Global Handler attached: onPageNotFound\");\n this._installGlobalOnPageNotFoundHandler();\n }\n\n if (this._options.onmemorywarning) {\n logger.log(\"Global Handler attached: onMemoryWarning\");\n this._installGlobalOnMemoryWarningHandler();\n }\n }\n\n /** JSDoc */\n private _installGlobalOnErrorHandler(): void {\n if (this._onErrorHandlerInstalled) {\n return;\n }\n\n if (!!sdk.onError) {\n const currentHub = getCurrentHub();\n\n // https://developers.weixin.qq.com/miniprogram/dev/api/base/app/app-event/wx.onError.html\n sdk.onError((err: string | object) => {\n // console.info(\"sentry-uniapp\", err);\n const error = typeof err === 'string' ? new Error(err) : err\n currentHub.captureException(error);\n });\n }\n\n this._onErrorHandlerInstalled = true;\n }\n\n /** JSDoc */\n private _installGlobalOnUnhandledRejectionHandler(): void {\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n\n if (!!sdk.onUnhandledRejection) {\n const currentHub = getCurrentHub();\n /** JSDoc */\n interface OnUnhandledRejectionRes {\n reason: string | object;\n promise: Promise<any>;\n }\n\n // https://developers.weixin.qq.com/miniprogram/dev/api/base/app/app-event/wx.onUnhandledRejection.html\n sdk.onUnhandledRejection(\n ({ reason, promise }: OnUnhandledRejectionRes) => {\n // console.log(reason, typeof reason, promise)\n // 为什么官方文档上说 reason 是 string 类型,但是实际返回的确实 object 类型\n const error = typeof reason === 'string' ? new Error(reason) : reason\n currentHub.captureException(error, {\n data: promise,\n });\n }\n );\n }\n\n this._onUnhandledRejectionHandlerInstalled = true;\n }\n\n /** JSDoc */\n private _installGlobalOnPageNotFoundHandler(): void {\n if (this._onPageNotFoundHandlerInstalled) {\n return;\n }\n\n if (!!sdk.onPageNotFound) {\n const currentHub = getCurrentHub();\n\n sdk.onPageNotFound((res: { path: string }) => {\n const url = res.path.split(\"?\")[0];\n\n currentHub.setTag(\"pagenotfound\", url);\n currentHub.setExtra(\"message\", JSON.stringify(res));\n currentHub.captureMessage(`页面无法找到: ${url}`);\n });\n }\n\n this._onPageNotFoundHandlerInstalled = true;\n }\n\n /** JSDoc */\n private _installGlobalOnMemoryWarningHandler(): void {\n if (this._onMemoryWarningHandlerInstalled) {\n return;\n }\n\n if (!!sdk.onMemoryWarning) {\n const currentHub = getCurrentHub();\n\n sdk.onMemoryWarning(({ level = -1 }: { level: number }) => {\n let levelMessage = \"没有获取到告警级别信息\";\n\n switch (level) {\n case 5:\n levelMessage = \"TRIM_MEMORY_RUNNING_MODERATE\";\n break;\n case 10:\n levelMessage = \"TRIM_MEMORY_RUNNING_LOW\";\n break;\n case 15:\n levelMessage = \"TRIM_MEMORY_RUNNING_CRITICAL\";\n break;\n default:\n return;\n }\n\n currentHub.setTag(\"memory-warning\", String(level));\n currentHub.setExtra(\"message\", levelMessage);\n currentHub.captureMessage(`内存不足告警`);\n });\n }\n\n this._onMemoryWarningHandlerInstalled = true;\n }\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sentry-uniapp",
|
|
3
|
+
"version": "1.0.12",
|
|
4
|
+
"description": "用于Uniapp/小程序/快应用等平台的 Sentry SDK",
|
|
5
|
+
"repository": "git://github.com/uappkit/sentry-uniapp.git",
|
|
6
|
+
"homepage": "https://github.com/uappkit/sentry-uniapp",
|
|
7
|
+
"miniprogram": "dist",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"module": "esm/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
13
|
+
"build": "npm-run-all --parallel build:min build:esm build:ts version",
|
|
14
|
+
"build:dist": "npm-run-all --parallel build:min",
|
|
15
|
+
"build:min": "webpack --config ./webpack.config.min.js",
|
|
16
|
+
"build:watch": "webpack --watch --config ./webpack.config.min.js",
|
|
17
|
+
"build:ts": "tsc -p tsconfig.json",
|
|
18
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
19
|
+
"version": "node ./scripts/versionbump.js src/version.ts"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"sentry",
|
|
23
|
+
"uniapp",
|
|
24
|
+
"uniapp sentry"
|
|
25
|
+
],
|
|
26
|
+
"author": "yinqisen@gmail.com",
|
|
27
|
+
"license": "BSD-3-Clause",
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=14"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@sentry/typescript": "^5.20.0",
|
|
33
|
+
"@types/node": "^12.7.1",
|
|
34
|
+
"install": "^0.13.0",
|
|
35
|
+
"miniprogram-api-typings": "^2.7.7-2",
|
|
36
|
+
"npm": "^6.11.1",
|
|
37
|
+
"npm-run-all": "^4.1.5",
|
|
38
|
+
"replace-in-file": "^4.1.3",
|
|
39
|
+
"ts-loader": "^6.0.4",
|
|
40
|
+
"tslint": "^5.16.0",
|
|
41
|
+
"typescript": "^3.5.3",
|
|
42
|
+
"webpack": "^5.90.3",
|
|
43
|
+
"webpack-cli": "^5.1.4",
|
|
44
|
+
"webpack-merge": "^4.2.1"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@sentry/core": "6.19.7",
|
|
48
|
+
"@sentry/types": "6.19.7",
|
|
49
|
+
"@sentry/utils": "6.19.7",
|
|
50
|
+
"tslib": "^1.10.0"
|
|
51
|
+
}
|
|
52
|
+
}
|
package/dist/sdk.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Integrations as CoreIntegrations } from "@sentry/core";
|
|
|
2
2
|
import { MiniappOptions } from "./backend";
|
|
3
3
|
import { ReportDialogOptions } from "./client";
|
|
4
4
|
import { GlobalHandlers, IgnoreMpcrawlerErrors, LinkedErrors, Router, System, TryCatch } from "./integrations/index";
|
|
5
|
-
export declare const defaultIntegrations: (CoreIntegrations.
|
|
5
|
+
export declare const defaultIntegrations: (CoreIntegrations.FunctionToString | CoreIntegrations.InboundFilters | GlobalHandlers | TryCatch | LinkedErrors | System | Router | IgnoreMpcrawlerErrors)[];
|
|
6
6
|
/**
|
|
7
7
|
* The Sentry Uniapp SDK Client.
|
|
8
8
|
*
|
package/dist/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,IAAI,gBAAgB,EACjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAiB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,mBAAmB,8JAU/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,IAAI,gBAAgB,EACjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAiB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,mBAAmB,8JAU/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CAavD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,SAAS,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAM5D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAM5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,CAGtC"}
|
package/dist/sdk.js
CHANGED
|
@@ -76,7 +76,6 @@ function init(options) {
|
|
|
76
76
|
if (options.defaultIntegrations === undefined) {
|
|
77
77
|
options.defaultIntegrations = exports.defaultIntegrations;
|
|
78
78
|
}
|
|
79
|
-
// https://github.com/uappkit/sentry-uniapp/issues/23
|
|
80
79
|
options.normalizeDepth = options.normalizeDepth || 5;
|
|
81
80
|
if (options.defaultIntegrations) {
|
|
82
81
|
options.defaultIntegrations[3].setExtraOptions(options.extraOptions);
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":";;AAAA,qCAIsB;AACtB,uCAAoD;AAGpD,mCAA8D;AAC9D,qCAAiD;AACjD,8CAO8B;AAEjB,QAAA,mBAAmB,GAAG;IACjC,IAAI,mBAAgB,CAAC,cAAc,EAAE;IACrC,IAAI,mBAAgB,CAAC,gBAAgB,EAAE;IACvC,IAAI,gBAAQ,EAAE;IACd,IAAI,sBAAc,EAAE;IACpB,IAAI,oBAAY,EAAE;IAElB,IAAI,cAAM,EAAE;IACZ,IAAI,cAAM,EAAE;IACZ,IAAI,6BAAqB,EAAE;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,SAAgB,IAAI,CAAC,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;IAC/C,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE;QAC7C,OAAO,CAAC,mBAAmB,GAAG,2BAAmB,CAAC;KACnD;IAED,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":";;AAAA,qCAIsB;AACtB,uCAAoD;AAGpD,mCAA8D;AAC9D,qCAAiD;AACjD,8CAO8B;AAEjB,QAAA,mBAAmB,GAAG;IACjC,IAAI,mBAAgB,CAAC,cAAc,EAAE;IACrC,IAAI,mBAAgB,CAAC,gBAAgB,EAAE;IACvC,IAAI,gBAAQ,EAAE;IACd,IAAI,sBAAc,EAAE;IACpB,IAAI,oBAAY,EAAE;IAElB,IAAI,cAAM,EAAE;IACZ,IAAI,cAAM,EAAE;IACZ,IAAI,6BAAqB,EAAE;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,SAAgB,IAAI,CAAC,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;IAC/C,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE;QAC7C,OAAO,CAAC,mBAAmB,GAAG,2BAAmB,CAAC;KACnD;IAED,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC9B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC1F;IAED,kBAAW,CAAC,sBAAa,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAbD,oBAaC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAiC;IAAjC,wBAAA,EAAA,YAAiC;IAChE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,oBAAa,EAAE,CAAC,WAAW,EAAE,CAAC;KACjD;IACD,IAAM,MAAM,GAAG,oBAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;AACH,CAAC;AARD,4CAQC;AAED;;;;GAIG;AACH,SAAgB,WAAW;IACzB,OAAO,oBAAa,EAAE,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAFD,kCAEC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CAAC,OAAgB;IACpC,IAAM,MAAM,GAAG,oBAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9B;IACD,OAAO,2BAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAND,sBAMC;AAED;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,OAAgB;IACpC,IAAM,MAAM,GAAG,oBAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9B;IACD,OAAO,2BAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAND,sBAMC;AAED;;;;;;;;GAQG;AACH,SAAgB,IAAI,CAAC,EAAY;IAC/B,0CAA0C;IAC1C,OAAO,cAAY,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5B,CAAC;AAHD,oBAGC","sourcesContent":["import {\n getCurrentHub,\n initAndBind,\n Integrations as CoreIntegrations,\n} from \"@sentry/core\";\nimport { resolvedSyncPromise } from \"@sentry/utils\";\n\nimport { MiniappOptions } from \"./backend\";\nimport { MiniappClient, ReportDialogOptions } from \"./client\";\nimport { wrap as internalWrap } from \"./helpers\";\nimport {\n GlobalHandlers,\n IgnoreMpcrawlerErrors,\n LinkedErrors,\n Router,\n System,\n TryCatch,\n} from \"./integrations/index\";\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new GlobalHandlers(),\n new LinkedErrors(),\n\n new System(),\n new Router(),\n new IgnoreMpcrawlerErrors(),\n];\n\n/**\n * The Sentry Uniapp SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * launching the app. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n * ```\n * import { init } from 'sentry-uniapp';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n * import { configureScope } from 'sentry-uniapp';\n *\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n * import { addBreadcrumb } from 'sentry-uniapp';\n *\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n * import * as Sentry from 'sentry-uniapp';\n *\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link MiniappOptions} for documentation on configuration options.\n */\nexport function init(options: MiniappOptions = {}): void {\n // 如果将 options.defaultIntegrations 设置为 false,则不会添加默认集成,否则将在内部将其设置为建议的默认集成。\n // tslint:disable-next-line: strict-comparisons\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n\n options.normalizeDepth = options.normalizeDepth || 5;\n if (options.defaultIntegrations) {\n (options.defaultIntegrations[3] as GlobalHandlers).setExtraOptions(options.extraOptions);\n }\n\n initAndBind(MiniappClient, options);\n}\n\n/**\n * Present the user with a report dialog.\n * 向用户显示报告对话框。小程序上暂时不考虑实现该功能。\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n const client = getCurrentHub().getClient<MiniappClient>();\n if (client) {\n client.showReportDialog(options);\n }\n}\n\n/**\n * This is the getter for lastEventId. 获取 lastEventId。\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n * 在发送所有当前事件时会变为 resolved 状态的 promise。如果提供了一个超时时间并且队列需要更长时间来消耗,则 promise 将返回 false。\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout?: number): PromiseLike<boolean> {\n const client = getCurrentHub().getClient<MiniappClient>();\n if (client) {\n return client.flush(timeout);\n }\n return resolvedSyncPromise(false);\n}\n\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout?: number): PromiseLike<boolean> {\n const client = getCurrentHub().getClient<MiniappClient>();\n if (client) {\n return client.close(timeout);\n }\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n * 在 try / catch 块中包装代码,以便 SDK 能够捕获错误。\n * 实际上是 ./helpers 文件中 warp 方法的进一步封装。\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nexport function wrap(fn: Function): any {\n // tslint:disable-next-line: no-unsafe-any\n return internalWrap(fn)();\n}\n"]}
|