@arms/rum-uniapp 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +128 -9
  2. package/dist/uniapp-sdk.js +1 -1
  3. package/es/collector/action/index.d.ts +14 -0
  4. package/es/collector/action/index.js +2 -61
  5. package/es/collector/exception/index.d.ts +1 -1
  6. package/es/collector/exception/index.js +6 -4
  7. package/es/collector/resource/api.d.ts +1 -1
  8. package/es/collector/resource/api.js +4 -4
  9. package/es/collector/view/pv.js +1 -1
  10. package/es/configManager.d.ts +13 -0
  11. package/es/configManager.js +5 -0
  12. package/es/reporter/index.js +2 -2
  13. package/es/reporter/monitor-reporter.d.ts +11 -0
  14. package/es/reporter/monitor-reporter.js +5 -0
  15. package/es/shell.d.ts +4 -2
  16. package/es/shell.js +8 -10
  17. package/es/utils/mixin.d.ts +2 -2
  18. package/es/utils/mixin.js +9 -2
  19. package/es/utils/platform.js +1 -1
  20. package/es/utils/session.d.ts +3 -1
  21. package/es/utils/session.js +2 -2
  22. package/es/utils/view.js +3 -4
  23. package/lib/collector/action/index.d.ts +14 -0
  24. package/lib/collector/action/index.js +2 -62
  25. package/lib/collector/exception/index.d.ts +1 -1
  26. package/lib/collector/exception/index.js +5 -3
  27. package/lib/collector/resource/api.d.ts +1 -1
  28. package/lib/collector/resource/api.js +4 -4
  29. package/lib/collector/view/pv.js +1 -1
  30. package/lib/configManager.d.ts +13 -0
  31. package/lib/configManager.js +5 -0
  32. package/lib/reporter/index.js +1 -1
  33. package/lib/reporter/monitor-reporter.d.ts +11 -0
  34. package/lib/reporter/monitor-reporter.js +5 -0
  35. package/lib/shell.d.ts +4 -2
  36. package/lib/shell.js +5 -7
  37. package/lib/utils/mixin.d.ts +2 -2
  38. package/lib/utils/mixin.js +9 -2
  39. package/lib/utils/platform.js +1 -1
  40. package/lib/utils/session.d.ts +3 -1
  41. package/lib/utils/session.js +1 -1
  42. package/lib/utils/view.js +2 -3
  43. package/package.json +2 -2
@@ -0,0 +1,5 @@
1
+ "use strict";exports.__esModule=!0,exports.UniMonitorReporter=void 0;var _rumCore=require("@arms/rum-core"),_platform=require("../utils/platform"),_url=require("../utils/url"),UniMonitorReporter=exports.UniMonitorReporter=/*#__PURE__*/function(){function a(a){this.endpoint=void 0,this.endpoint=this.buildMonitorEndpoint(a)}var b=a.prototype;return b.send=function(a){if(a&&0!==a.length)try{var b=(0,_rumCore.convertBundlesToLogGroup)(a);_platform.sdk.request({url:this.endpoint,method:"POST",header:{"Content-Type":"application/x-protobuf","x-log-apiversion":"0.6.0","x-log-compresstype":"","x-log-date":new Date().toUTCString()},// uni.request 支持发送 ArrayBuffer 二进制数据
2
+ data:b.buffer})}catch(a){_rumCore.logger.warn("monitor-reporter","Monitor data send failed",a)}},b.buildMonitorEndpoint=function(a){try{var b=(0,_url.getURL)(a);return b.protocol+"://"+b.host+"/rum/monitor"}catch(b){return a}},a}();/**
3
+ * uni-app 自监控上报器
4
+ * 将 Telemetry 采集的自监控数据编码为 protobuf,通过 uni.request 上报
5
+ */
package/lib/shell.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Shell } from '@arms/rum-core';
2
- import { IUniConfig, Vue } from "./types/client";
2
+ import { IUniConfig, Vue } from './types/client';
3
3
  /**
4
4
  * 对外导出 shell 层, 所有 shell 层模型的 API 设计约定:
5
5
  * 1. API 命名空间按照 variables / functions / events 来组织
@@ -8,10 +8,12 @@ import { IUniConfig, Vue } from "./types/client";
8
8
  */
9
9
  export declare class ArmsRum extends Shell {
10
10
  version: string;
11
+ private configManager;
11
12
  /**
12
13
  * 初始化
13
14
  */
14
- init(config: IUniConfig): this;
15
+ init(config: IUniConfig): Promise<Shell>;
16
+ getConfig(): import("@arms/rum-core").IConfiguration;
15
17
  /**
16
18
  * set config
17
19
  */
package/lib/shell.js CHANGED
@@ -1,13 +1,11 @@
1
- "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports["default"]=exports.ArmsRum=void 0;var _extends3=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")),_rumCore=require("@arms/rum-core"),_pv=_interopRequireDefault(require("./collector/view/pv")),_exception=_interopRequireDefault(require("./collector/exception")),_api=_interopRequireDefault(require("./collector/resource/api")),_defaultProcessor=_interopRequireDefault(require("./processor/default-processor")),_sessionProcessor=_interopRequireDefault(require("./processor/session-processor")),_reporter=_interopRequireDefault(require("./reporter")),_platform=require("./utils/platform"),_session=require("./utils/session"),_mixin=require("./utils/mixin"),_view=require("./utils/view"),ArmsRum=exports.ArmsRum=/*#__PURE__*/function(a){function b(){for(var b,c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];return b=a.call.apply(a,[this].concat(d))||this,b.version=_platform.VERSION,b}(0,_inheritsLoose2["default"])(b,a);var c=b.prototype;return c.init=/**
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports["default"]=exports.ArmsRum=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")),_rumCore=require("@arms/rum-core"),_pv=_interopRequireDefault(require("./collector/view/pv")),_exception=_interopRequireDefault(require("./collector/exception")),_api=_interopRequireDefault(require("./collector/resource/api")),_action=_interopRequireDefault(require("./collector/action")),_defaultProcessor=_interopRequireDefault(require("./processor/default-processor")),_sessionProcessor=_interopRequireDefault(require("./processor/session-processor")),_reporter=_interopRequireDefault(require("./reporter")),_monitorReporter=require("./reporter/monitor-reporter"),_platform=require("./utils/platform"),_session=require("./utils/session"),_mixin=require("./utils/mixin"),_view=require("./utils/view"),_configManager=_interopRequireDefault(require("./configManager")),ArmsRum=exports.ArmsRum=/*#__PURE__*/function(a){function b(){for(var b,c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];return b=a.call.apply(a,[this].concat(d))||this,b.version=_platform.VERSION,b.configManager=void 0,b}(0,_inheritsLoose2["default"])(b,a);var c=b.prototype;return c.init=/**
2
2
  * 初始化
3
- */function(a){a.vue&&this.setVue(a.vue),this.client.useCollectors([new _pv["default"],// new PerfCollector(),
4
- new _exception["default"],new _api["default"]// new ActionCollector(),
5
- ]),this.client.useProcessors([new _defaultProcessor["default"],new _sessionProcessor["default"]]),this.client.useReporter(new _reporter["default"]),this.client.init(a,new _session.RumSession);// 监听网络类型变化
3
+ */function(a){var b=this;return this.configManager=new _configManager["default"],Promise.resolve().then(function(){return b.configManager.init(a)})["catch"](function(a){_rumCore.logger.warn("shell","configManager init error",a)}).then(function(){var a=b.configManager.getConfig();if(!1===a.enable)return b;a.vue&&b.setVue(a.vue),b.client.useCollectors([new _pv["default"],// new PerfCollector(),
4
+ new _exception["default"],new _api["default"],new _action["default"]]),b.client.useProcessors([new _defaultProcessor["default"],new _sessionProcessor["default"]]),b.client.useReporter(new _reporter["default"]),b.client.init(a,new _session.RumSession,b.configManager,new _monitorReporter.UniMonitorReporter(a.endpoint));// 监听网络类型变化
6
5
  // getNetType(this.updateNetType);
7
- var b=this.client.getContext();return b.getViews=_view.getCurViews,this}/**
6
+ var c=b.client.getContext();return c.getViews=_view.getCurViews,(0,_rumCore.isFunction)(_platform.sdk.onAppHide)&&_platform.sdk.onAppHide(function(){var a;null===(a=_rumCore.Telemetry.get())||void 0===a?void 0:a.flush()}),b})},c.getConfig=function(){var a;return null===(a=this.configManager)||void 0===a?void 0:a.getConfig()}/**
8
7
  * set config
9
- */,c.setConfig=function(){var a=this.client.getContext();if(2===arguments.length){var b,c=this.client.getContext(),d=c.getConfig();c.setConfig((0,_extends3["default"])({},d,(b={},b[0>=arguments.length?void 0:arguments[0]]=1>=arguments.length?void 0:arguments[1],b)))}else a.setConfig(0>=arguments.length?void 0:arguments[0])},c.setVue=function(a){this.setConfig("vue",a),(0,_mixin.mixin)(a)},b}(_rumCore.Shell),_default=exports["default"]=new ArmsRum;// import PerfCollector from './collector/view/perf';
10
- // import ActionCollector from './collector/action';
8
+ */,c.setConfig=function(){var a=this.configManager;if(a)if(2===arguments.length){var b,c=a.getConfig();a.setConfig(Object.assign({},c,(b={},b[0>=arguments.length?void 0:arguments[0]]=1>=arguments.length?void 0:arguments[1],b)))}else a.setConfig(0>=arguments.length?void 0:arguments[0])},c.setVue=function(a){this.setConfig("vue",a),(0,_mixin.mixin)(a)},b}(_rumCore.Shell),_default=exports["default"]=new ArmsRum;// import PerfCollector from './collector/view/perf';
11
9
  // import { getNetType } from "./utils/network";
12
10
  /**
13
11
  * 对外导出 shell 层, 所有 shell 层模型的 API 设计约定:
@@ -1,7 +1,7 @@
1
- import type { Vue } from "../types/client";
1
+ import type { Vue } from '../types/client';
2
2
  type Callback = (that: any, ev: any) => void;
3
3
  /** Vue 2 传入构造函数;Vue 3 传入 createApp() 的 app 实例 */
4
- export type VueRuntimeKind = "vue2" | "vue3";
4
+ export type VueRuntimeKind = 'vue2' | 'vue3';
5
5
  /** 根据运行时形态区分:Vue 2 为函数(构造函数),Vue 3 app 为对象 */
6
6
  export declare function getVueRuntimeKind(vue: unknown): VueRuntimeKind | null;
7
7
  export declare function mixin(vue: Vue): void;
@@ -1,2 +1,9 @@
1
- "use strict";exports.__esModule=!0,exports.addEventListener=addEventListener,exports.getVueRuntimeKind=getVueRuntimeKind,exports.mixin=mixin,exports.removeEventListener=removeEventListener;var vueCache;/** Vue 2 传入构造函数;Vue 3 传入 createApp() 的 app 实例 *//** 根据运行时形态区分:Vue 2 为函数(构造函数),Vue 3 app 为对象 */function getVueRuntimeKind(a){if(null==a)return null;return"function"==typeof a.mixin?"function"==typeof a?"vue2":"object"==typeof a?"vue3":null:null}/** 会合并进 Vue.mixin 的生命周期键(与 listeners 中需单独处理的键分开) */var MIXIN_HOOK_KEYS=["onLaunch","onLoad","onShow","beforeCreate","mounted"],listeners={onError:[]};MIXIN_HOOK_KEYS.forEach(function(a){listeners[a]=[]});function invokeListeners(a,b,c){var d=listeners[a];if(null!==d&&void 0!==d&&d.length)for(var e=0;e<d.length;e++)try{d[e](b,c)}catch(b){console.warn("[arms] vue mixin listener failed",a,b)}}function createMixinOptions(a){function d(a,b,c){invokeListeners("onError",this,{error:a,instance:b,info:c})}// Vue 2.5+ / Vue 3:后代组件错误走 onErrorCaptured,再转给 onError 监听(不用 config.errorHandler)
2
- for(var e={},f=function a(){var b=MIXIN_HOOK_KEYS[g];e[b]=function(a){invokeListeners(b,this,a)}},g=0;g<MIXIN_HOOK_KEYS.length;g++)f();return"vue2"===a?Object.defineProperty(vueCache.config,"errorHandler",{get:function a(){var e=this;return function(f,a,b){d(f,a,b),e.__errorHandler&&e.__errorHandler(f,a,b)}},set:function b(a){this.__errorHandler=a}}):Object.defineProperty(vueCache.config,"onErrorCaptured",{get:function a(){var e=this;return function(f,a,b){d(f,a,b),e.__onErrorCaptured&&e.__onErrorCaptured(f,a,b)}},set:function b(a){this.__onErrorCaptured=a}}),e}function mixin(a){if(!vueCache){vueCache=a;var b=getVueRuntimeKind(a);if(b)try{a.mixin(createMixinOptions(b))}catch(a){console.warn("[arms] vue.mixin failed",a)}}}function addEventListener(a,b){a in listeners||(listeners[a]=[]),listeners[a].push(b)}function removeEventListener(a,b){if(a in listeners&&b){var c=listeners[a],d=c.indexOf(b);return c.splice(d,1),!0}return!1}
1
+ "use strict";exports.__esModule=!0,exports.addEventListener=addEventListener,exports.getVueRuntimeKind=getVueRuntimeKind,exports.mixin=mixin,exports.removeEventListener=removeEventListener;var vueCache,_rumCore=require("@arms/rum-core");/** Vue 2 传入构造函数;Vue 3 传入 createApp() 的 app 实例 *//** 根据运行时形态区分:Vue 2 为函数(构造函数),Vue 3 app 为对象 */function getVueRuntimeKind(a){if(null==a)return null;return"function"==typeof a.mixin?"function"==typeof a?"vue2":"object"==typeof a?"vue3":null:null}/** 会合并进 Vue.mixin 的生命周期键(与 listeners 中需单独处理的键分开) */var MIXIN_HOOK_KEYS=["onLaunch","onLoad","onShow","beforeCreate","mounted"],listeners={onError:[]};MIXIN_HOOK_KEYS.forEach(function(a){listeners[a]=[]});function invokeListeners(a,b,c){var d=listeners[a];if(null!==d&&void 0!==d&&d.length)for(var e=0;e<d.length;e++)try{d[e](b,c)}catch(b){_rumCore.logger.warn("vue-mixin","vue listener failed",b,{hook:a})}}/** tap/click 事件源:识别 uni-app 事件对象(有 type 且带 currentTarget/target) */var ACTION_EVENT_TYPES=["tap","click"];function isActionEvent(a){return!!a&&"object"==typeof a&&-1!==ACTION_EVENT_TYPES.indexOf(a.type)&&(null!=a.currentTarget||null!=a.target)}/**
2
+ * 拦截组件 methods,为 tap/click 建立事件源。
3
+ * $options.methods 为组件定义共享对象,包装一次即可(__armsActionWrapped 去重);
4
+ * 包装函数在被事件触发时派发 'action',再执行原方法,保持原行为与返回值。
5
+ */function wrapInstanceMethods(a){// 无 'action' 监听(采集器未启用)时不包装,零开销
6
+ if(listeners.action&&listeners.action.length){var b=a&&a.$options&&a.$options.methods;if(b)for(var c=Object.keys(b),d=function a(){var d=c[e],f=b[d];if("function"!=typeof f||f.__armsActionWrapped)return 1;// continue
7
+ var g=function a(){var b=arguments[0];return isActionEvent(b)&&invokeListeners("action",this,b),f.apply(this,arguments)};g.__armsActionWrapped=!0,b[d]=g},e=0;e<c.length;e++)d()}}function createMixinOptions(a){function d(a,b,c){invokeListeners("onError",this,{error:a,instance:b,info:c})}// Vue 2.5+ / Vue 3:后代组件错误走 onErrorCaptured,再转给 onError 监听(不用 config.errorHandler)
8
+ for(var e={},f=function a(){var b=MIXIN_HOOK_KEYS[g];e[b]=function(a){invokeListeners(b,this,a)}},g=0;g<MIXIN_HOOK_KEYS.length;g++)f();// beforeCreate 早于 Vue initMethods,此时拦截 methods 可让绑定到实例的即为包装版本
9
+ var b=e.beforeCreate;return e.beforeCreate=function(a){b.call(this,a),wrapInstanceMethods(this)},"vue2"===a?Object.defineProperty(vueCache.config,"errorHandler",{get:function a(){var e=this;return function(f,a,b){d(f,a,b),e.__errorHandler&&e.__errorHandler(f,a,b)}},set:function b(a){this.__errorHandler=a}}):Object.defineProperty(vueCache.config,"onErrorCaptured",{get:function a(){var e=this;return function(f,a,b){d(f,a,b),e.__onErrorCaptured&&e.__onErrorCaptured(f,a,b)}},set:function b(a){this.__onErrorCaptured=a}}),e}function mixin(a){if(!vueCache){vueCache=a;var b=getVueRuntimeKind(a);if(b)try{a.mixin(createMixinOptions(b))}catch(a){_rumCore.logger.error("vue-mixin","vue.mixin failed",a)}}}function addEventListener(a,b){a in listeners||(listeners[a]=[]),listeners[a].push(b)}function removeEventListener(a,b){if(a in listeners&&b){var c=listeners[a],d=c.indexOf(b);return c.splice(d,1),!0}return!1}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports.fixAttrs=exports.appName=exports.VERSION=void 0,exports.getNetType=getNetType,exports.getPerformance=getPerformance,exports.getStorageSync=getStorageSync,exports.sdk=exports.global2=void 0,exports.setStorageSync=setStorageSync;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_rumCore=require("@arms/rum-core"),global2=exports.global2=global||window,VERSION=exports.VERSION='npm-0.1.3',sdk=exports.sdk=uni,appName=exports.appName="uniapp";// export {
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports.fixAttrs=exports.appName=exports.VERSION=void 0,exports.getNetType=getNetType,exports.getPerformance=getPerformance,exports.getStorageSync=getStorageSync,exports.sdk=exports.global2=void 0,exports.setStorageSync=setStorageSync;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_rumCore=require("@arms/rum-core"),global2=exports.global2=global||window,VERSION=exports.VERSION='npm-0.1.4',sdk=exports.sdk=uni,appName=exports.appName="uniapp";// export {
2
2
  // // sdk: global.uni,
3
3
  // appName: 'uniapp',
4
4
  // }
@@ -1,4 +1,4 @@
1
- import { IContext, IRumSession, RumEvent, SessionConfig } from "@arms/rum-core";
1
+ import { IContext, IRumSession, RumEvent, SessionConfig } from '@arms/rum-core';
2
2
  interface SessionInfo {
3
3
  sessionId: string;
4
4
  sampled: boolean;
@@ -8,6 +8,8 @@ interface SessionInfo {
8
8
  }
9
9
  export declare class RumSession implements IRumSession {
10
10
  ctx: IContext;
11
+ appType: string;
12
+ sdkVersion: string;
11
13
  sessionConfig: SessionConfig;
12
14
  init(ctx: IContext): void;
13
15
  getSessionId(): string;
@@ -1,3 +1,3 @@
1
- "use strict";exports.__esModule=!0,exports.RumSession=void 0;var _rumCore=require("@arms/rum-core"),_base=require("./base"),_view=require("./view"),_platform=require("./platform"),USER_ID="_arms_uid",RUM_SESSION="_arms_session",RumSession=exports.RumSession=/*#__PURE__*/function(){function a(){this.ctx=void 0,this.sessionConfig=void 0}var b=a.prototype;return b.init=function(a){var b;this.ctx=a,this.sessionConfig=this.fixSessionConfig(null===(b=a.config)||void 0===b?void 0:b.sessionConfig)},b.getSessionId=function(){return this.getSessionInfo().sessionId},b.getSampled=function(){return this.getSessionInfo().sampled},b.checkSession=function(a){var b=this.sessionConfig,c=b.overtime,d=b.maxDuration,e=(0,_base.getCurrentTime)();return!(a.startTime+d<e||a.lastTime+c<e)},b.updateSession=function(){var a=this.getSessionInfo();if(!a.isNew){var b=a.startTime,c=(0,_base.getCurrentTime)(),d=a.sampled?1:0;(0,_platform.setStorageSync)(RUM_SESSION,a.sessionId+"-"+d+"-"+b+"-"+c)}},b.getSessionInfo=function(){var a=((0,_platform.getStorageSync)(RUM_SESSION)||"").split("-"),b=a[0],c=a[1],d=a[2],e=a[3],f={sessionId:b,sampled:"0"!==c,startTime:parseInt(d||"")||0,lastTime:parseInt(e||"")||0};return this.checkSession(f)||(f=this.resetSession()),f},b.getEventId=function(){return(0,_rumCore.generateEventId)(this.getSessionId())},b.getViewId=function(){return this.getUUID()},b.getUserId=function(){var a=(0,_platform.getStorageSync)(USER_ID);return a&&0===a.indexOf("user_")&&(a=""),a||(a="uid_"+(0,_rumCore.generateSpanId)(16,36),(0,_platform.setStorageSync)(USER_ID,a)),a},b.resetSession=function(){var a=this.sessionConfig.sampling,b=this.getUUID(),c=(0,_base.getCurrentTime)(),d=(0,_rumCore.performDraw)(a),e=b+"-"+(d?1:0)+"-"+c+"-"+c;return(0,_platform.setStorageSync)(RUM_SESSION,e),{sessionId:b,sampled:d,startTime:c,lastTime:c,isNew:!0}},b.getUUID=function(){return(0,_rumCore.generateGUID)().replace(/-/g,"")},b.fixSessionConfig=function(a){void 0===a&&(a={});var b=a,c=b.sampleRate,d=b.sampling,e=b.maxDuration,f=b.overtime;// 优先使用 sampling(0-100),若未配置则从旧字段 sampleRate(0-1)迁移
1
+ "use strict";exports.__esModule=!0,exports.RumSession=void 0;var _rumCore=require("@arms/rum-core"),_base=require("./base"),_view=require("./view"),_platform=require("./platform"),USER_ID="_arms_uid",RUM_SESSION="_arms_session",RumSession=exports.RumSession=/*#__PURE__*/function(){function a(){this.ctx=void 0,this.appType="uniapp",this.sdkVersion=_platform.VERSION,this.sessionConfig=void 0}var b=a.prototype;return b.init=function(a){var b;this.ctx=a,this.sessionConfig=this.fixSessionConfig(null===(b=a.getConfig())||void 0===b?void 0:b.sessionConfig)},b.getSessionId=function(){return this.getSessionInfo().sessionId},b.getSampled=function(){return this.getSessionInfo().sampled},b.checkSession=function(a){var b=this.sessionConfig,c=b.overtime,d=b.maxDuration,e=(0,_base.getCurrentTime)();return!(a.startTime+d<e||a.lastTime+c<e)},b.updateSession=function(){var a=this.getSessionInfo();if(!a.isNew){var b=a.startTime,c=(0,_base.getCurrentTime)(),d=a.sampled?1:0;(0,_platform.setStorageSync)(RUM_SESSION,a.sessionId+"-"+d+"-"+b+"-"+c)}},b.getSessionInfo=function(){var a=((0,_platform.getStorageSync)(RUM_SESSION)||"").split("-"),b=a[0],c=a[1],d=a[2],e=a[3],f={sessionId:b,sampled:"0"!==c,startTime:parseInt(d||"")||0,lastTime:parseInt(e||"")||0};return this.checkSession(f)||(f=this.resetSession()),f},b.getEventId=function(){return(0,_rumCore.generateEventId)(this.getSessionId())},b.getViewId=function(){return this.getUUID()},b.getUserId=function(){var a=(0,_platform.getStorageSync)(USER_ID);return a&&0===a.indexOf("user_")&&(a=""),a||(a="uid_"+(0,_rumCore.generateSpanId)(16,36),(0,_platform.setStorageSync)(USER_ID,a)),a},b.resetSession=function(){var a=this.sessionConfig.sampling,b=this.getUUID(),c=(0,_base.getCurrentTime)(),d=(0,_rumCore.performDraw)(a),e=b+"-"+(d?1:0)+"-"+c+"-"+c;return(0,_platform.setStorageSync)(RUM_SESSION,e),{sessionId:b,sampled:d,startTime:c,lastTime:c,isNew:!0}},b.getUUID=function(){return(0,_rumCore.generateGUID)().replace(/-/g,"")},b.fixSessionConfig=function(a){void 0===a&&(a={});var b=a,c=b.sampleRate,d=b.sampling,e=b.maxDuration,f=b.overtime;// 优先使用 sampling(0-100),若未配置则从旧字段 sampleRate(0-1)迁移
2
2
  return(!(0,_rumCore.isNumber)(d)||0>d||100<d)&&((0,_rumCore.isNumber)(c)&&0<=c&&1>=c?d=100*c:d=100),(!(0,_rumCore.isNumber)(e)||e<4*_rumCore.ONE_HOUR||e>_rumCore.ONE_DAY)&&(e=_rumCore.ONE_DAY),(!(0,_rumCore.isNumber)(f)||f>_rumCore.ONE_HOUR||f<10*_rumCore.ONE_MINUTE)&&(f=30*_rumCore.ONE_MINUTE),{sampling:d,maxDuration:e,overtime:f}},b.getBaseEvent=function(){return{timestamp:(0,_base.getCurrentTime)(),session_id:this.getSessionId(),event_id:this.getEventId(),view:this.ctx?(0,_view.getCurView)(this.ctx):void 0,times:1}},a}();// 存储userID的键名
3
3
  // 存储session
package/lib/utils/view.js CHANGED
@@ -1,8 +1,7 @@
1
1
  "use strict";exports.__esModule=!0,exports.getCurView=getCurView,exports.getCurViews=getCurViews,exports.getCurrentPage=getCurrentPage;var _rumCore=require("@arms/rum-core"),PAGE_KEY="__rum_view";/**
2
2
  * 获取当前 page
3
3
  * @returns
4
- */function getCurrentPage(){if("function"==typeof getCurrentPages)try{var a=getCurrentPages()||[];return a[a.length-1]}catch(a){// console.warn('[arms] error in getCurView', error);
5
- }}/**
4
+ */function getCurrentPage(){if("function"==typeof getCurrentPages)try{var a=getCurrentPages()||[];return a[a.length-1]}catch(a){_rumCore.logger.warn("view","getCurrentPage failed",a)}}/**
6
5
  * 获取当前 view
7
6
  * @param ctx
8
7
  * @returns
@@ -10,4 +9,4 @@
10
9
  * 获取当前 view
11
10
  * @param ctx
12
11
  * @returns
13
- */function getCurViews(){var a=[];if("function"==typeof getCurrentPages)try{(getCurrentPages()||[]).forEach(function(b){PAGE_KEY in b&&a.push(b[PAGE_KEY])})}catch(a){}return a}
12
+ */function getCurViews(){var a=[];if("function"==typeof getCurrentPages)try{(getCurrentPages()||[]).forEach(function(b){PAGE_KEY in b&&a.push(b[PAGE_KEY])})}catch(a){_rumCore.logger.warn("view","getCurViews failed",a)}return a}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arms/rum-uniapp",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "arms rum javascript sdk for uniapp native",
5
5
  "author": "guangli.fj <guangli.fj@alibaba-inc.com>",
6
6
  "license": "ISC",
@@ -25,7 +25,7 @@
25
25
  "prepublishOnly": "npm run build"
26
26
  },
27
27
  "dependencies": {
28
- "@arms/rum-core": "0.1.5"
28
+ "@arms/rum-core": "0.1.7"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "^4.9.4"