gio-miniprogram-sdk 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.babelrc +4 -0
  2. package/.eslintignore +11 -0
  3. package/.eslintrc.js +120 -0
  4. package/.github/workflows/greetings.yml +13 -0
  5. package/.github/workflows/publish.yml +43 -0
  6. package/.prettierignore +19 -0
  7. package/.prettierrc.js +9 -0
  8. package/LICENSE +674 -0
  9. package/README.md +103 -0
  10. package/babel.config.js +6 -0
  11. package/bin/build/all.sh +38 -0
  12. package/bin/build/full.sh +32 -0
  13. package/bin/build/jd.sh +14 -0
  14. package/bin/build/ks.sh +14 -0
  15. package/bin/build/my.sh +14 -0
  16. package/bin/build/plugins.sh +5 -0
  17. package/bin/build/qq.sh +14 -0
  18. package/bin/build/quickapp.sh +14 -0
  19. package/bin/build/swan.sh +14 -0
  20. package/bin/build/taro.sh +18 -0
  21. package/bin/build/tb.sh +18 -0
  22. package/bin/build/tt.sh +14 -0
  23. package/bin/build/uniapp.sh +18 -0
  24. package/bin/build/wx.sh +14 -0
  25. package/dist/alipay.js +1 -0
  26. package/dist/baidu.js +1 -0
  27. package/dist/bytedance.js +1 -0
  28. package/dist/jingdong.js +1 -0
  29. package/dist/kuaishou.js +1 -0
  30. package/dist/plugins/gioABTest.js +1 -0
  31. package/dist/plugins/gioCompress.js +1 -0
  32. package/dist/plugins/gioEventAutoTracking.js +1 -0
  33. package/dist/plugins/gioImpressionTracking.js +1 -0
  34. package/dist/qq.js +1 -0
  35. package/dist/quickapp.js +1 -0
  36. package/dist/taobao.js +1 -0
  37. package/dist/taro.js +1 -0
  38. package/dist/uniapp.js +1 -0
  39. package/dist/wechat.js +1 -0
  40. package/package.json +144 -0
  41. package/rollup.config.js +92 -0
  42. package/rollup.plugins.config.js +76 -0
  43. package/src/constants/config.ts +136 -0
  44. package/src/constants/regex.ts +4 -0
  45. package/src/core/dataStore/eventContextBuilder.ts +70 -0
  46. package/src/core/dataStore/eventHooks/appEffects.ts +220 -0
  47. package/src/core/dataStore/eventHooks/index.ts +403 -0
  48. package/src/core/dataStore/eventHooks/minipPage.ts +132 -0
  49. package/src/core/dataStore/eventHooks/pageEffects.ts +168 -0
  50. package/src/core/dataStore/index.ts +543 -0
  51. package/src/core/growingIO.ts +433 -0
  52. package/src/core/plugins.ts +152 -0
  53. package/src/core/uploader.ts +219 -0
  54. package/src/core/userStore.ts +203 -0
  55. package/src/index.ts +68 -0
  56. package/src/minipInstance/base.ts +287 -0
  57. package/src/minipInstance/framework.ts +22 -0
  58. package/src/minipInstance/jd.ts +11 -0
  59. package/src/minipInstance/ks.ts +12 -0
  60. package/src/minipInstance/my.ts +53 -0
  61. package/src/minipInstance/qq.ts +12 -0
  62. package/src/minipInstance/quickapp.ts +230 -0
  63. package/src/minipInstance/swan.ts +20 -0
  64. package/src/minipInstance/tb.ts +53 -0
  65. package/src/minipInstance/tt.ts +12 -0
  66. package/src/minipInstance/wx.ts +12 -0
  67. package/src/platformConfig/base.ts +86 -0
  68. package/src/platformConfig/framework.ts +29 -0
  69. package/src/platformConfig/jd.ts +11 -0
  70. package/src/platformConfig/ks.ts +11 -0
  71. package/src/platformConfig/my.ts +15 -0
  72. package/src/platformConfig/qq.ts +13 -0
  73. package/src/platformConfig/quickapp.ts +48 -0
  74. package/src/platformConfig/swan.ts +11 -0
  75. package/src/platformConfig/tb.ts +29 -0
  76. package/src/platformConfig/tt.ts +11 -0
  77. package/src/platformConfig/wx.ts +20 -0
  78. package/src/pluginsOut/README.md +50 -0
  79. package/src/pluginsOut/frameworks/gioTaobaoAdapter.ts +195 -0
  80. package/src/pluginsOut/frameworks/gioTaroAdapter.ts +358 -0
  81. package/src/pluginsOut/frameworks/gioUniAppAdapter.ts +220 -0
  82. package/src/pluginsOut/ordinary/gioABTest.ts +254 -0
  83. package/src/pluginsOut/ordinary/gioCompress.ts +251 -0
  84. package/src/pluginsOut/ordinary/gioCustomTracking.ts +71 -0
  85. package/src/pluginsOut/ordinary/gioEventAutoTracking.ts +164 -0
  86. package/src/pluginsOut/ordinary/gioImpressionTracking.ts +298 -0
  87. package/src/types/base.ts +150 -0
  88. package/src/types/dataStore.ts +43 -0
  89. package/src/types/eventHooks.ts +141 -0
  90. package/src/types/gioCustomTracking.ts +9 -0
  91. package/src/types/gioEventTracking.ts +10 -0
  92. package/src/types/gioPerformance.ts +8 -0
  93. package/src/types/growingIO.ts +102 -0
  94. package/src/types/minipInstance.ts +126 -0
  95. package/src/types/platforms.ts +65 -0
  96. package/src/types/plugins.ts +24 -0
  97. package/src/types/uploader.ts +26 -0
  98. package/src/types/userStore.ts +22 -0
  99. package/src/utils/glodash.ts +423 -0
  100. package/src/utils/tools.ts +384 -0
  101. package/src/utils/verifiers.ts +76 -0
  102. package/tsconfig.json +32 -0
  103. package/typings/global.d.ts +92 -0
package/dist/taro.js ADDED
@@ -0,0 +1 @@
1
+ const e=e=>["undefined","null"].includes(T(e)),t=e=>"string"===T(e),i=e=>"number"===T(e),s=e=>"boolean"===T(e),n=t=>"[object Object]"==={}.toString.call(t)&&!e(t),o=e=>["function","asyncfunction"].includes(T(e)),r=e=>Array.isArray(e)&&"array"===T(e),a=e=>{try{return Array.from(e)[0]}catch(e){return}},l=e=>{try{const t=Array.from(e);return t[t.length-1]}catch(e){return}},g=(e,t=1)=>r(e)&&i(t)?e.slice(t>0?t:1,e.length):e,u=e=>{if(r(e)){let t=0;const i=[];for(const s of e)s&&!P(s)&&(i[t++]=s);return i}return e},c=(e,t)=>{if(r(e)){const i=e.findIndex(t);return 0>i?void 0:e[i]}},h=t=>e(t)?"":""+t,d=(e,t)=>"string"===T(e)?e.split(t):e,p=e=>{if(t(e)){const t=d(e,"");return`${a(t).toLowerCase()}${g(t).join("")}`}return e},v=(e,t)=>e.slice(0,t.length)===t,m={}.hasOwnProperty,f=(t,i)=>!e(t)&&m.call(t,i),I=e=>n(e)?Object.keys(e):[],y=(e,t)=>{I(e).forEach((i=>t(e[i],i)))},S=(e,t)=>{const i=I(e);return!(!n(e)||!n(t)||i.length!==I(t).length||i.map(((i,s)=>n(e[i])?S(e[i],t[i]):e[i]===t[i])).includes(!1))},O=(e,t,i)=>{let s=e;return n(e)?(t.split(".").forEach((e=>{s=s?s[e]:i})),s):i},w=(e,t)=>{if(!n(e))return!1;try{if("string"===T(t))return delete e[t];if("array"===T(t))return t.map((t=>delete e[t]));"object"===T(t)&&t.constructor===RegExp&&I(e).forEach((i=>{t.test(i)&&w(e,i)}))}catch(e){return!1}},b=(e,t=250,i,s)=>{let n,o=0;return"boolean"!==T(i)&&(s=e,e=i,i=void 0),function(...r){let a=this,l=Date.now()-o;function g(){o=Date.now(),e.apply(a,r)}s&&!n&&g(),n&&clearTimeout(n),void 0===s&&l>t?g():!0!==i&&(n=setTimeout(s?function(){n=void 0}:g,void 0===s?t-l:t))}},P=e=>r(e)?0===e.length:n(e)?0===I(e).length:!e,T=e=>({}.toString.call(e).slice(8,-1).toLowerCase());var _=Object.freeze({__proto__:null,isNil:e,isString:t,isNaN:e=>"NaN"===h(Number(e)),isNumber:i,isBoolean:s,isObject:n,isRegExp:e=>"[object RegExp]"==={}.toString.call(e),isFunction:o,isArray:r,isDate:e=>"date"===T(e),fixed:(e,s)=>i(e)?Number(e.toFixed(i(s)?s:2)):t(e)&&"NaN"!==h(Number(e))?Number(Number(e).toFixed(i(s)?s:2)):e,head:a,last:l,drop:g,dropWhile:(e,t)=>r(e)?e.filter((e=>!t(e))):e,compact:u,find:c,isEqualArray:(e,t)=>!(!r(e)||!r(t)||e.length!==t.length)&&e.every(((e,i)=>e===t[i])),toString:h,split:d,lowerFirst:p,upperFirst:e=>{if(t(e)){const t=d(e,"");return`${a(t).toUpperCase()}${g(t).join("")}`}return e},startsWith:v,endsWith:(e,t)=>{const{length:i}=e;let s=i;s>i&&(s=i);const n=s;return s-=t.length,s>=0&&e.slice(s,n)===t},hasOwnProperty:m,has:f,keys:I,forEach:y,isEqual:S,get:O,unset:w,throttle:b,isEmpty:P,typeOf:T,formatDate:e=>{function t(e){return 10>e?"0"+e:e}return e.getFullYear()+"-"+t(e.getMonth()+1)+"-"+t(e.getDate())+" "+t(e.getHours())+":"+t(e.getMinutes())+":"+t(e.getSeconds())+"."+t(e.getMilliseconds())}});const k=(e,t)=>{console.log("%c[GrowingIO]:"+e,{info:"color: #3B82F6;",error:"color: #EF4444",warn:"color: #F59E0B",success:"color: #10B981"}[t]||"")},C=(e,t=!0,i="参数不合法")=>k(`${t?"调用":"设置"} ${e} 失败,${i}!`,"warn"),E=e=>{try{return e()}catch(e){return}},A=e=>t(e)?e.trim().substring(0,100):e,x=(e,i)=>t(e)&&!P(e)&&e.match(/^[a-zA-Z_][0-9a-zA-Z_]{0,100}$/)?i():(k("事件名格式不正确,只能包含数字、字母和下划线,且不能以数字开头,字符总长度不能超过100!","error"),!1),j=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),N=e=>e.pixelRatio?Math.round(e.screenHeight*e.pixelRatio):e.screenHeight,q=e=>e.pixelRatio?Math.round(e.screenWidth*e.pixelRatio):e.screenWidth,H=(e,t)=>{if(e){const i=e.toLowerCase();return-1!==i.indexOf("android")?t+"-Android":-1!==i.indexOf("ios")?t+"-iOS":e}},D=e=>{if(t(e)){const t=e.indexOf("?");return-1!==t?[e.substring(0,t),e.substring(t+1)]:[e,""]}return["",""]},$=e=>t(e)?e.startsWith("/")?e:"/"+e:"",L=e=>E((()=>{switch(e){case"wx":return wx;case"my":case"tb":return my;case"swan":return swan;case"tt":return tt;case"qq":return qq;case"ks":return ks;case"jd":return jd;default:{let e;return e||(e=E((()=>swan))),e||(e=E((()=>my))),e||(e=E((()=>tt))),e||(e=E((()=>qq))),e||(e=E((()=>ks))),e||(e=E((()=>jd))),e||(e=E((()=>wx))),e}}})),F=e=>E((()=>{switch(e){case"wx":return __wxConfig;case"swan":return appConfig;case"tt":return __ttConfig;case"qq":return __qqConfig;case"ks":return __ksConfig;case"jd":return __jdConfig;default:return}})),U=()=>{let e;return!e&&E((()=>swan))&&(e="swan"),!e&&E((()=>tt))&&(e="tt"),!e&&E((()=>qq))&&(e="qq"),!e&&E((()=>my.tb))&&(e="tb"),!e&&E((()=>my))&&(e="my"),!e&&E((()=>ks))&&(e="ks"),!e&&E((()=>jd))&&(e="jd"),!e&&E((()=>wx))&&(e="wx"),e||c(I(global),(e=>h(e).toLowerCase().includes("quickapp")))&&(e="quickapp"),e},B=e=>I(e).filter((e=>e.indexOf("__sub")>-1&&e.indexOf("gio__")>-1)).sort(),R=()=>{let e=E((()=>getApp({allowDefault:!0})));return e||(e=M()),e},M=()=>{var e;return null!==(e=E((()=>$global)))&&void 0!==e?e:global},V=t=>{const i={};return n(t)&&y(t,((t,s)=>{const o=h(s).slice(0,100);n(t)?i[o]=V(t):r(t)?(i[o]=t.slice(0,100),i[o]=i[o].join("||").slice(0,1e3)):i[o]=e(t)?"":h(t).slice(0,1e3)})),i},K=(e,t)=>{const i=()=>t.map((t=>e.getStorageSync(t)));try{return e.minip.canIUse("batchGetStorageSync")?e.minip.batchGetStorageSync(t):i()}catch(e){return i()}},G=(e,t)=>{const i=()=>t.map((({key:t,value:i})=>e.setStorageSync(t,i)));try{return e.minip.canIUse("batchSetStorageSync")?e.minip.batchSetStorageSync(t):i()}catch(e){return i()}},Q=t=>I(t||{}).map((i=>i?`${i}=${e(t[i])?"":t[i]}`:"")).join("&"),W=e=>{(v(e,"?")||v(e,"&"))&&(e=e.slice(1,e.length));const t={};return e.split("&").forEach((e=>{const i=e.split("=");i[0]&&(t[i[0]]=i[1])})),t};var z=Object.freeze({__proto__:null,consoleText:k,callError:C,niceTry:E,niceCallback:(e,t)=>{if(o(e))try{e(t)}catch(e){k("回调执行失败!"+e,"error")}},limitString:A,eventNameValidate:x,guid:j,getScreenHeight:N,getScreenWidth:q,getOS:H,compareVersion:(e="",t="")=>{const i=e=>e.replace(/\s+/g,""),s=e=>e.replace(/[vV]/g,""),n=i(s(e)),o=i(s(t)),r=n.split("."),a=o.split(".");for(let e=0;3>e;e++){let t=Number(r[e]),i=Number(a[e]);if(t>i)return 1;if(i>t)return-1;if(!isNaN(t)&&isNaN(i))return 1;if(isNaN(t)&&!isNaN(i))return-1}return 0},getVueVersion:e=>{if(e){const t=Number.parseInt(a(d(e.version,".")),10);return Number.isNaN(t)?0:t}return 0},splitPath:D,normalPath:$,isTaro3:e=>{const{Current:t,createComponent:i}=e;return!(!e||!t||i)},getPlainMinip:L,getPlainConfig:F,getPlainPlatform:U,getSubKeys:B,getAppInst:R,getGlobal:M,limitObject:V,batchGetStorageSync:K,batchSetStorageSync:G,qsStringify:Q,qsParse:W,hashCode:e=>{let t=0;if(P(e)||"boolean"==typeof e)return t;let i=0;for(;i<e.length;)t=(t<<5)-t+e.charCodeAt(i),t&=t,i++;return t}});const J=e=>t(e)&&e.length>0||i(e)&&e>0,Y={autotrack:{type:"boolean",default:!0},compress:{type:"boolean",default:!0},dataCollect:{type:"boolean",default:!0},debug:{type:"boolean",default:!1},idMapping:{type:"boolean",default:!1},enableIdMapping:{type:"boolean",default:!1},extraParams:{type:"array",default:[]},followShare:{type:"boolean",default:!0},forceLogin:{type:"boolean",default:!1},ignoreFields:{type:"array",default:[]},pluginMode:{type:"boolean",default:!1},originalSource:{type:"boolean",default:!0},keepAlive:{type:"number",default:3e5},performance:{type:"object",default:{monitor:!0,exception:!0}},serverUrl:{type:"string",default:"https://napi.growingio.com"},subpackage:{type:"boolean",default:!1},taro:{type:["object","module"],default:!1},taroVue:{type:["object","function"],default:!1},tbConfig:{type:"object",default:{cloud:void 0,cloudFuncSend:!1,cloudFuncName:"httpTunnel",cloudFuncHandler:"main",cloudAppId:void 0,path:void 0}},uniVue:{type:["object","function"],default:!1},uploadInterval:{type:"number",default:1e3},version:{type:"string",default:"1.0.0"}},Z=["clearGeneralProps","clearTrackTimer","clearUserId","getDeviceId","getGioInfo","getOption","identify","init","registerPlugins","removeTimer","setGeneralProps","setLocation","setOption","setPageAttributes","setUserAttributes","setUserId","track","trackTimerEnd","trackTimerPause","trackTimerResume","trackTimerStart","updateImpression","getABTest"],X={autotrack:"无埋点",dataCollect:"数据采集",debug:"调试模式",serverUrl:"数据上报服务地址"},ee=["enableDebug","setAutotrack","setDataCollect","setTrackerHost","setTrackerScheme","setConfig","collectImp","setPlatformProfile","getLocation"],te=["deviceBrand","deviceModel","deviceType","networkState","screenHeight","screenWidth","operatingSystem"],ie=[...te,"appChannel","language","platformVersion"];class se{constructor(e){this.growingIO=e,this.main=e=>{var t,i,s,n,o;const{sdkVersion:r,vdsConfig:a,platformConfig:l,minipInstance:g,userStore:u,dataStore:{scene:c,eventHooks:h,locationData:d,lastVisitEvent:p}}=this.growingIO,{systemInfo:v={},network:m={}}=g,{brand:f,model:I,platform:y,language:S,version:O}=v,b={appChannel:"scn:"+(c||"NA"),appVersion:a.version,dataSourceId:a.dataSourceId,deviceBrand:f,deviceId:u.uid,deviceModel:I,deviceType:H(y,l.name),domain:a.appId,language:S,latitude:null==d?void 0:d.latitude,longitude:null==d?void 0:d.longitude,networkState:(null==m?void 0:m.networkType)||(null==m?void 0:m.type)||(null==m?void 0:m.subtype),operatingSystem:H(y,l.name),path:(null===(t=h.currentPage)||void 0===t?void 0:t.path)?null===(i=h.currentPage)||void 0===i?void 0:i.path:p.path,platform:l.platform,platformVersion:l.name+(O?" "+O:""),query:(null===(s=h.currentPage)||void 0===s?void 0:s.path)?null===(n=h.currentPage)||void 0===n?void 0:n.query:p.query,screenHeight:N(v),screenWidth:q(v),sdkVersion:r,sessionId:u.sessionId,title:(null===(o=h.currentPage)||void 0===o?void 0:o.title)||g.getPageTitle(g.getCurrentPage()),timestamp:Date.now(),timezoneOffset:(new Date).getTimezoneOffset(),userId:u.userId};return a.idMapping&&(b.userKey=u.userKey),P(a.ignoreFields)||a.ignoreFields.forEach((e=>{w(b,e)})),P(e)?b:Object.assign(Object.assign({},b),e)}}}function ne(e,t,i,s){return new(i||(i=Promise))((function(n,o){function r(e){try{l(s.next(e))}catch(e){o(e)}}function a(e){try{l(s.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((s=s.apply(e,t||[])).next())}))}class oe{constructor(t){this.growingIO=t,this.main=(e,t)=>{var i,s;const n=Date.now(),{emitter:o,userStore:r,vdsConfig:a,platformConfig:l,uploader:g,dataStore:u,dataStore:{shareOut:c,keepAlive:h,lastCloseTime:d,eventHooks:p,saveStorageInfo:v}}=this.growingIO;o.emit("minipLifecycle",{event:"App "+e,timestamp:n,params:null!==(i=t[0])&&void 0!==i?i:{}}),a.debug&&console.log("App:",e,n);const m=l.listeners.app;switch(o.emit("onComposeBefore",{event:"App "+e,params:null!==(s=t[0])&&void 0!==s?s:{}}),e){case m.appCreate:case m.appShow:{const{path:e,query:i}=this.enterParamsParse(t[0]);!c&&a.originalSource&&u.setOriginalSource({path:e,query:i}),d?(Date.now()-d>h||u.lastScene&&u.scene!==u.lastScene)&&(r.sessionId="",p.currentPage.time=void 0,this.buildVisitEvent({path:e,query:i})):(this.growingIO.dataStore.lastVisitEvent={path:e,query:i},this.buildVisitEvent({path:e,query:i}));break}case m.appClose:u.lastScene=u.scene,u.lastCloseTime=Date.now(),v(),r.saveUserInfo(),this.buildCloseEvent(),a.forceLogin||g.initiateRequest(!0)}},this.enterParamsParse=e=>{const{gioPlatform:t,minipInstance:i,dataStore:s}=this.growingIO;let o="",r="";const a=(e,t={})=>{o=e,r=I(t).map((e=>`${e}=${t[e]}`)).join("&")};if("quickapp"!==t&&i.minip.canIUse("getEnterOptionsSync")){const{path:t,query:o,scene:l,referrerInfo:g}=i.minip.getEnterOptionsSync()||{},u=e.query||o;if(a(e.path||t,u),s.scene=e.scene||l,!P(g)&&n(null==g?void 0:g.extraData)){let e=[];y(g.extraData,((t,i)=>{!f(u,i)&&["string","number","boolean"].includes(T(t))&&e.push(`${i}=${t}`)}));const t=e.join("&");r=r&&t?`${r}&${t}`:r||t}}else{const{path:t,query:i}=e;a(t,i),this.parseScene(e)}return{path:o,query:r}},this.parseScene=e=>{var t;const{minipInstance:i,gioPlatform:s,dataStore:n}=this.growingIO;let o;if("quickapp"===s){const{extra:e,type:t}=i.getAppSource();o=(null==e?void 0:e.scene)||t}else P(e)||((null===(t=null==e?void 0:e.query)||void 0===t?void 0:t.wxShoppingListScene)?o=e.query.wxShoppingListScene:(null==e?void 0:e.scene)?o=e.scene:n.scene="NA");n.scene=o},this.buildVisitEvent=t=>{const{dataStore:i,vdsConfig:s,minipInstance:n}=this.growingIO,{originalSourceName:o,getOriginalSource:r,eventContextBuilder:a,eventInterceptor:l}=i,g=r(),u=(null==t?void 0:t.query)||"";let c=Object.assign({eventType:"VISIT"},a({path:(null==t?void 0:t.path)||"",query:"string"===T(u)?u:Q(u)}));s.originalSource&&!e(g)&&(c=Object.assign(Object.assign({},c),g),s.dataCollect&&n.removeStorageSync(o)),l(c)},this.buildCloseEvent=()=>{const{dataStore:{eventContextBuilder:e,eventInterceptor:t}}=this.growingIO;t(Object.assign({eventType:"APP_CLOSED"},e()))}}}class re{constructor(e){this.growingIO=e,this.parsePage=(e,t)=>{var i;const s=e.route||e.uri||e.__route__||(null===(i=null==e?void 0:e.$page)||void 0===i?void 0:i.fullPath)||"";P(t)?this.query=void 0:this.query=this.getQuery(t),this.path!==s&&(this.time=Date.now()),this.path=s,this.title=this.settedTitle[this.path]||this.growingIO.minipInstance.getPageTitle(e||this.growingIO.minipInstance.getCurrentPage())},this.getQuery=e=>{const t=Object.assign({},e);return w(t,"wxShoppingListScene"),Q(t)},this.getReferralPage=()=>{const{minipInstance:e,dataStore:{lastPageEvent:t,scene:i}}=this.growingIO;return(null==t?void 0:t.path)||(i?`scn:${e.scnPrefix}${i}`:null)},this.saveShareId=e=>{(null==e?void 0:e.gioShareId)&&(this.queryShareId=e.gioShareId)},this.updateShareResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=$(t+(i?"?"+i:"")),e.query=i,e},this.updateAppMessageResult=this.updateShareResult,this.updateTimelineResult=this.updateShareResult,this.updateAddFavoritesResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=$(t+(i?"?"+i:"")),e.query=i,e},this.query=void 0,this.settedTitle={},this.pageProps={}}buildShareQuery(e){var t,i,s;const n=D(null!==(t=e.path)&&void 0!==t?t:"");let o=this.path,r={},g=f(e,"path");return g&&(o=a(n),r=W(l(n))||{}),P(r)&&(r=W(null!==(i=e.query)&&void 0!==i?i:"")||{}),!g&&P(r)&&(r=W(null!==(s=this.query)&&void 0!==s?s:"")||{}),[o,Q(r)]}}class ae{constructor(e){this.growingIO=e,this.main=(e,t,i)=>{var s,n;const r=Date.now(),{emitter:a,minipInstance:l,plugins:g,vdsConfig:u,platformConfig:c,dataStore:{shareOut:h,eventHooks:d,toggleShareOut:p,buildAppMessageEvent:v,buildTimelineEvent:m,buildAddFavorites:f},inPlugin:I}=this.growingIO,{currentPage:y}=d;if(this.prevEvent[t]&&50>Date.now()-Number(this.prevEvent[t]))return;e||(e=l.getCurrentPage()),e.route||(e.route=l.getCurrentPath(e));const S=e.route||e.uri||e.__route__||(null===(s=null==e?void 0:e.$page)||void 0===s?void 0:s.fullPath)||"";a.emit("minipLifecycle",{event:"Page "+t,timestamp:r,params:{page:e,args:i[0]}}),u.debug&&console.log("Page:",S,"#",t,r),this.prevEvent[t]=Date.now();const b=c.listeners.page;switch(a.emit("onComposeBefore",{page:e,event:"Page "+t,params:{page:e,args:i[0]}}),y.lastLifecycle=y.currentLifecycle,y.currentLifecycle=t,t){case b.pageLoad:this.argQuery[S]=O(e,"options")||O(e,"__displayReporter.query")||O(e,"$page.query")||O(e,"$wx.__displayReporter.query")||i[0]||{},w(this.argQuery[S],"$taroTimestamp"),y.parsePage(e,this.argQuery[S]);break;case b.pageShow:I?(y.parsePage(e,this.argQuery[S]),y.path||(y.path=`/插件${u.appId}}`,y.title=`/插件${u.appId}}`),this.buildPageEvent()):h&&d.currentPage.time||(y.parsePage(e,this.argQuery[S]),d.currentPage.time=Date.now(),this.buildPageEvent()),p(!1),y.saveShareId(this.argQuery[S]);break;case b.pageHide:case b.pageUnload:break;case b.shareApp:p(!0),u.followShare&&v(i);break;case b.shareTime:u.followShare&&m(i);break;case b.addFavorites:f(i);break;case b.tabTap:{const e=null===(n=null==g?void 0:g.gioEventAutoTracking)||void 0===n?void 0:n.buildTabClickEvent;u.autotrack&&e&&o(e)&&e(i[0]);break}}t===b.pageUnload&&(y.pageProps[S]=void 0)},this.buildPageEvent=e=>{var t;const{dataStore:{eventContextBuilder:i,eventInterceptor:s,eventHooks:n}}=this.growingIO,{currentPage:o}=n,r=Object.assign(Object.assign({eventType:"PAGE",referralPage:o.getReferralPage()},i()),{timestamp:o.time});P(o.pageProps[r.path])||(r.attributes=o.pageProps[r.path]),!P(e)&&e.path&&(r.path=e.path,r.query=e.query,r.title=null!==(t=e.title)&&void 0!==t?t:r.title),s(r)},this.prevEvent={},this.argQuery={}}}class le{constructor(e){var t,i;this.growingIO=e,this.isNormalFc=(e,t)=>o(t)&&"constructor"!==e,this.objectTraverse=(e,t)=>{Object.getOwnPropertyNames(e).forEach((i=>t(i,e))),f(e,"methods")&&Object.getOwnPropertyNames(e.methods).forEach((i=>{e[i]||t(i,e.methods)})),f(e,"lifetimes")&&Object.getOwnPropertyNames(e.lifetimes).forEach((i=>{e[i]||t(i,e.lifetimes)})),f(e,"pageLifetimes")&&Object.getOwnPropertyNames(e.pageLifetimes).forEach((i=>{e[i]||t(i,e.pageLifetimes)}))},this.supLifeFcs=(e,t)=>{r(this[t+"Handlers"])&&this[t+"Handlers"].forEach((t=>{o(e[t])||["onShareAppMessage","onShareTimeline"].includes(t)||(e[t]=()=>{})}))},this.lifeFcEffects=(e,t,i)=>{const s=this;return["onShareTimeline","onAddToFavorites"].includes(e)?function(...n){let o=t.apply(this,n);"onShareTimeline"===e&&s.growingIO.vdsConfig.followShare&&(o=s.currentPage.updateTimelineResult(null!=o?o:{})),"onAddToFavorites"===e&&(o=s.currentPage.updateAddFavoritesResult(null!=o?o:{}));const r=[].slice.call(n);return o&&r.push(o),s[`def${i}Cbs`][e].apply(this,r),o}:function(...n){var o;return ne(this,void 0,void 0,(function*(){let r;try{if("onShareAppMessage"===e){if(r=null!==(o=yield t.apply(this,n))&&void 0!==o?o:{},"promise"===T(r.promise)){const e=function(){return ne(this,void 0,void 0,(function*(){let e=r;return new Promise((t=>{let i=setTimeout((()=>{t(Object.assign({},e)),clearTimeout(i),i=void 0}),3e3);r.promise.then((s=>{e=s,t(Object.assign({},e)),clearTimeout(i),i=void 0}))}))}))};r=Object.assign(Object.assign({},r),yield e()),w(r,"promise")}s.growingIO.vdsConfig.followShare&&(r=s.currentPage.updateAppMessageResult(null!=r?r:{}))}const a=[].slice.call(n);r&&a.push(r),s[`def${i}Cbs`][e].apply(this,a)}catch(e){k(e,"error")}return"onShareAppMessage"!==e&&(r=t.apply(this,n)),s.growingIO.emitter.emit("minipLifecycle",{event:`${i} ${e}End`,timestamp:Date.now(),params:{instance:this,arguments:Array.from(n)}}),r}))}},this.customFcEffects=(e,t)=>{const i=this;return function(...s){var n,r;let a;if(i.growingIO.vdsConfig.autotrack&&i.growingIO.plugins.gioEventAutoTracking)try{let t=s[0]||{};f(t,"type")&&((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))||(t=s[s.length-1]),((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))&&i.actionEventTypes.includes(t.type)&&(o(i.actionEffects)||(i.actionEffects=(null===(r=null===(n=i.growingIO.plugins)||void 0===n?void 0:n.gioEventAutoTracking)||void 0===r?void 0:r.main)||function(){}),null==i||i.actionEffects(t,e))}catch(e){k(e,"error")}return a=t.apply(this,s),a}},this.appApplyProxy=(e,t)=>this.appHandlers.includes(e)?this.lifeFcEffects(e,t,"App"):this.customFcEffects(e,t),this.pageApplyProxy=(e,t)=>this.pageHandlers.includes(e)?this.lifeFcEffects(e,t,"Page"):this.customFcEffects(e,t),this.appOverriding=e=>(this.setAppEffectCbs(),this.supLifeFcs(e,"app"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.appApplyProxy(e,t[e]))})),e),this.pageOverriding=e=>(this.setPageEffectCbs(),this.supLifeFcs(e,"page"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.componentOverriding=e=>(this.setPageEffectCbs(),e.methods||(e.methods={}),this.supLifeFcs(this.growingIO.inPlugin?e:e.methods,"page"),this.objectTraverse(this.growingIO.inPlugin?e:e.methods,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.setAppEffectCbs=()=>{const e=this;this.appHandlers.forEach((t=>{this.defAppCbs[t]=function(...i){e.appEffects.main(t,i)}}))},this.setPageEffectCbs=()=>{const e=this;this.pageHandlers.forEach((t=>{this.defPageCbs[t]=function(...i){e.pageEffects.main(this,t,i)}}))},this.growingApp=e=>this.originalApp(this.appOverriding(e)),this.growingPage=e=>this.originalPage(this.pageOverriding(e)),this.growingComponent=e=>this.originalComponent(this.componentOverriding(e)),this.growingBehavior=e=>this.originalBehavior(this.componentOverriding(e)),this.nativeGrowing=(e=["App","Page","Component","Behavior"])=>{const t=this,{platformConfig:i}=this.growingIO,s=i.hooks;if(this.setAppEffectCbs(),this.setPageEffectCbs(),e.includes("App"))try{s.App&&!this.appHooked&&(App=function(...e){return t.growingApp(e[0])},this.appHooked=!0)}catch(e){}if(e.includes("Page"))try{s.Page&&!this.pageHooked&&(Page=function(...e){return t.growingPage(e[0])},this.pageHooked=!0)}catch(e){}if(e.includes("Component"))try{s.Component&&!this.componentHooked&&(Component=function(...e){return t.growingComponent(e[0])},this.componentHooked=!0)}catch(e){}if(e.includes("Behavior"))try{s.Behavior&&!this.behaviorHooked&&(Behavior=function(...e){return t.growingBehavior(e[0])},this.behaviorHooked=!0)}catch(e){}},this.initEventHooks=()=>{const e=this,{platformConfig:t,gioPlatform:i}=this.growingIO;t.canHook?(this.nativeGrowing(),M().GioApp=E((()=>null!==App&&void 0!==App?App:window.GioApp)),M().GioPage=E((()=>null!==Page&&void 0!==Page?Page:window.GioPage)),M().GioComponent=E((()=>null!==Component&&void 0!==Component?Component:window.GioComponent)),M().GioBehavior=E((()=>Behavior))):"quickapp"===i&&(window.GioApp=function(...t){return e.appOverriding(t[0])},window.GioPage=function(...t){return e.pageOverriding(t[0])},window.GioComponent=function(...t){return e.pageOverriding(t[0])})};const s=null===(t=this.growingIO)||void 0===t?void 0:t.platformConfig;this.defAppCbs={},this.defPageCbs={},this.appHandlers=s.appHandlers,this.pageHandlers=s.pageHandlers,this.actionEventTypes=s.actionEventTypes,this.originalApp=s.originalApp,this.originalPage=s.originalPage,this.originalComponent=s.originalComponent,this.originalBehavior=null!==(i=s.originalBehavior)&&void 0!==i?i:function(){},this.appEffects=new oe(this.growingIO),this.pageEffects=new ae(this.growingIO),this.currentPage=new re(this.growingIO)}}class ge{constructor(i){var n,l;this.growingIO=i,this.ALLOW_SETTING_KEYS=I(Y),this.gsidStorageName="_growing_gsid_",this.originalSourceName="gdp_original_source",this.initStorageInfo=()=>{const{minipInstance:e}=this.growingIO,t=R(),i=t.gio_gsid?t.gio_gsid:Number.parseInt(e.getStorageSync(this.gsidStorageName),10);this._gsid=Number.isNaN(i)||i>=1e9||1>i?1:i,this._stid=this._gsid,i!==this._gsid&&e.setStorageSync(this.gsidStorageName,this._gsid)},this.saveStorageInfo=()=>{const{minipInstance:e}=this.growingIO;this._stid=this._gsid,G(e,[{key:this.gsidStorageName,value:this._gsid}])},this.setOriginalSource=({path:t,query:i})=>{const{minipInstance:s}=this.growingIO;if(e(this.getOriginalSource())){const e={path:t,query:i,title:""};s.setStorageSync(this.originalSourceName,JSON.stringify(e))}},this.getOriginalSource=()=>{const{minipInstance:e}=this.growingIO;return E((()=>JSON.parse(e.getStorageSync(this.originalSourceName))))},this.initOptions=e=>{var t,i,s,n,o,a,l,g;const{projectId:u,dataSourceId:c,appId:h}=e,d={};this.ALLOW_SETTING_KEYS.forEach((t=>{const i=Y[t].type;(r(i)?i.includes(T(e[t])):T(e[t])===Y[t].type)?"ignoreFields"===t?d.ignoreFields=e.ignoreFields.filter((e=>te.includes(e))):"extraParams"===t?d.extraParams=e.extraParams.filter((e=>ie.includes(e))):d[t]=e[t]:d[t]=Y[t].default})),d.uploadInterval=Math.round(d.uploadInterval),(Number.isNaN(d.uploadInterval)||0>d.uploadInterval||d.uploadInterval>2e3)&&(d.uploadInterval=1e3),d.enableIdMapping&&!d.idMapping&&(d.idMapping=!0),d.pluginMode&&(this.growingIO.inPlugin=!0),this.growingIO.vdsConfig=Object.assign(Object.assign({},d),{projectId:u,dataSourceId:c,appId:h,performance:{monitor:null===(i=null===(t=d.performance)||void 0===t?void 0:t.monitor)||void 0===i||i,exception:null===(n=null===(s=d.performance)||void 0===s?void 0:s.exception)||void 0===n||n,network:null!==(a=null===(o=d.performance)||void 0===o?void 0:o.network)&&void 0!==a&&a}}),this.keepAlive=d.keepAlive,d.dataCollect||k("已关闭数据采集","info"),d.autotrack||k("已关闭无埋点","info");const{plugins:p,inPlugin:v,minipInstance:m}=this.growingIO,{uniVue:f,taro:I}=d;f||I||(this.growingIO.platformConfig.canHook=!0),v&&!["tbp","jdp"].includes(m.platform)||this.eventHooks.initEventHooks(),f&&(null===(l=null==p?void 0:p.gioUniAppAdapter)||void 0===l||l.main()),I&&(null===(g=null==p?void 0:p.gioTaroAdapter)||void 0===g||g.main())},this.setOption=(e,i)=>{var s;const{vdsConfig:n,userStore:o,uploader:r,emitter:a}=this.growingIO,l=t(e)&&this.ALLOW_SETTING_KEYS.includes(e),g=l&&typeof i===(null===(s=Y[e])||void 0===s?void 0:s.type);if(l&&g){if("dataCollect"===e&&!1===n.dataCollect&&!0===i){let e=setTimeout((()=>{o.sessionId="";const{path:t,query:i,settedTitle:s}=this.eventHooks.currentPage;this.eventHooks.currentPage.title=s[t]||this.growingIO.minipInstance.getPageTitle(this.growingIO.minipInstance.getCurrentPage()),this.sendVisit({path:t,query:i}),this.eventHooks.currentPage.time=Date.now(),this.sendPage({path:t,query:i}),clearTimeout(e),e=null}),0)}return n[e]=i,"serverUrl"===e&&(null==r||r.generateURL()),a.emit("OPTION_CHANGE",{optionName:e,optionValue:i}),!0}return C("setOption > "+e),!1},this.getOption=t=>{const{vdsConfig:i}=this.growingIO;return t&&f(i,h(t))?i[h(t)]:e(t)?Object.assign({},i):void C("getOption > "+t)},this.toggleShareOut=e=>{s(e)?this.shareOut=e:this.shareOut=!this.shareOut},this.sendVisit=e=>{this.eventHooks.appEffects.buildVisitEvent(null!=e?e:this.lastVisitEvent),this.eventHooks.currentPage.time=Date.now()},this.sendPage=e=>{this.eventHooks.pageEffects.buildPageEvent(e)},this.eventConverter=e=>{const{vdsConfig:t,dataStore:i,uploader:s}=this.growingIO;if(t.dataCollect){["LOGIN_USER_ATTRIBUTES","APP_CLOSED"].includes(e.eventType)||(e.eventSequenceId=i.gsid,this.growingIO.dataStore.gsid+=1);const t={};y(e,((e,i)=>{var s;if("element"===i){const i=null!==(s=a(e))&&void 0!==s?s:{};y(i,((e,i)=>{P(e)&&0!==e||(t[i]=e)}))}else P(e)&&0!==e||(t[i]=e)})),this.growingIO.emitter.emit("onComposeAfter",{composedEvent:t}),s.commitRequest(Object.assign(Object.assign({},t),{requestId:j()}))}},this.eventInterceptor=e=>{const{systemInfo:t,network:i}=this.growingIO.minipInstance;P(t)||P(i)?this.interceptEvents.push(e):P(this.interceptEvents)?this.eventConverter(e):([...this.interceptEvents,e].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.eventReleaseInspector=()=>{const{minipInstance:{systemInfo:e,network:t}}=this.growingIO;e&&t&&!P(this.interceptEvents)&&([...this.interceptEvents].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.buildAppMessageEvent=e=>{var t;const i=e[0];let s;2>e.length?1===e.length&&(s=i):s=e[1];const{dataStore:{eventContextBuilder:n,eventInterceptor:o}}=this.growingIO,r=((null==s?void 0:s.path)||"").split("?");o(Object.assign({eventType:"CUSTOM",eventName:"$mp_on_share",attributes:Object.assign({$from:i.from,$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==s?void 0:s.title,$share_path:a(r),$share_query:r[1]},null==s?void 0:s.attributes)},n()))},this.buildTimelineEvent=e=>{var t;const i=e[0];let s;2>e.length?1===e.length&&(s=i):s=e[1];const{dataStore:{eventContextBuilder:n,eventInterceptor:o}}=this.growingIO,r=((null==s?void 0:s.path)||"").split("?");o(Object.assign({eventType:"CUSTOM",eventName:"$mp_share_timeline",attributes:Object.assign({$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==s?void 0:s.title,$share_path:a(r),$share_query:r[1]},null==s?void 0:s.attributes)},n()))},this.buildAddFavorites=e=>{const t=e[0];let i;2>e.length?1===e.length&&(i=t):i=e[1];const{dataStore:{eventContextBuilder:s,eventInterceptor:n}}=this.growingIO,o=((null==i?void 0:i.path)||"").split("?");n(Object.assign({eventType:"CUSTOM",eventName:"$mp_add_favorites",attributes:{$share_title:null==i?void 0:i.title,$share_path:a(o),$share_query:o[1]}},s()))},this.initStorageInfo(),this.eventContextBuilder=new se(this.growingIO).main,this.shareOut=!1,this.lastVisitEvent={},this.lastPageEvent={},this.locationData={},this.generalProps={},this.trackTimers={},this.interceptEvents=[],this.eventHooks=new le(this.growingIO),this.growingIO.emitter.on("onComposeAfter",(({composedEvent:e})=>{"VISIT"!==e.eventType&&"vst"!==e.t||(this.lastVisitEvent=e),"PAGE"!==e.eventType&&"page"!==e.t||(this.lastPageEvent=e)})),o(null===(n=this.growingIO.minipInstance.minip)||void 0===n?void 0:n.onAppHide)&&this.growingIO.minipInstance.minip.onAppHide((()=>{y(this.trackTimers,(e=>{e.start&&(e.leng=e.leng+(+Date.now()-e.start))}))})),o(null===(l=this.growingIO.minipInstance.minip)||void 0===l?void 0:l.onAppShow)&&this.growingIO.minipInstance.minip.onAppShow((()=>{y(this.trackTimers,(e=>{e.start&&(e.start=+Date.now())}))})),this.growingIO.emitter.on("OPTION_CHANGE",(({optionName:e,optionValue:t})=>{"dataCollect"===e&&!1===t&&this.growingIO.clearTrackTimer()}))}get gsid(){const e=R(),t=B(e);return!P(t)&&e.gio_gsid?e.gio_gsid:this._gsid}set gsid(e){const t=Number.parseInt(e,10);this._gsid=Number.isNaN(t)||e>=1e9||1>e?1:e,R().gio_gsid=this._gsid,10>this._gsid-this._stid||this.saveStorageInfo()}get scene(){return this._scene}set scene(e){const t=this._scene;this._scene=e,t!==this._scene&&this.growingIO.emitter.emit("SCENE_UPDATE",{newScene:e,oldScene:t})}}const ue={scnPrefix:"",appHandlers:["onLaunch","onShow","onHide","onError","onPageNotFound","onUnhandledRejection","onThemeChange"],pageHandlers:["onLoad","onShow","onReady","onHide","onShareAppMessage","onTabItemTap","onUnload","onPullDownRefresh","onReachBottom","onResize"],actionEventTypes:["onclick","tap","onTap","longpress","longTap","blur","change","onChange","submit","confirm","getuserinfo","getphonenumber","contact","mouseup"],originalApp:E((()=>App)),originalPage:E((()=>Page)),originalComponent:E((()=>Component)),originalBehavior:E((()=>Behavior)),canHook:!0,hooks:{App:!0,Page:!0,Component:!0,Behavior:!0},listeners:{app:{appLaunch:"onLaunch",appShow:"onShow",appClose:"onHide"},page:{pageLoad:"onLoad",pageShow:"onShow",pageReady:"onReady",pageHide:"onHide",pageUnload:"onUnload",tabTap:"onTabItemTap",shareApp:"onShareAppMessage"},actions:{click:["onclick","tap","longpress","longTap","getuserinfo","getphonenumber","contact","mouseup"],change:["blur","change","confirm"],submit:["submit"]}}},ce=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"JingDong",platform:"jdp",scnPrefix:"jd_"}),he=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"KuaiShou",platform:"kuaishoup",scnPrefix:"ks_"}),de=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"Alipay",platform:"alip",scnPrefix:"alip_",hooks:Object.assign(Object.assign({},null==ue?void 0:ue.hooks),{Behavior:!1})}),pe=Object.assign(Object.assign({},ue),{pageHandlers:[...ue.pageHandlers,"onInit","didMount","didUnmount"],listeners:Object.assign(Object.assign({},ue.listeners),{page:Object.assign(Object.assign({},ue.listeners.page),{onInit:"onInit",didMount:"didMount",didUnmount:"didUnmount"})}),name:"Taobao",platform:"tbp",scnPrefix:"tbp_",hooks:Object.assign(Object.assign({},null==ue?void 0:ue.hooks),{Behavior:!1})}),ve=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"QQ",platform:"qq",scnPrefix:"qq_"});ve.pageHandlers=[...ue.pageHandlers,"onAddToFavorites"],ve.listeners.page.addFavorites="onAddToFavorites";const me=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"Baidu",platform:"baidup",scnPrefix:"baidup_"}),fe=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"Bytedance",platform:"bytedance",scnPrefix:"bytedance_"}),Ie=Object.assign(Object.assign({},ue),{listeners:Object.assign({},ue.listeners),name:"Weixin",platform:"MinP"});Ie.pageHandlers=[...ue.pageHandlers,"onShareTimeline","onAddToFavorites"],Ie.listeners.page=Object.assign(Object.assign({},ue.listeners.page),{shareTime:"onShareTimeline",addFavorites:"onAddToFavorites"});const ye=U(),Se=E((()=>{const e={jd:ce,ks:he,my:de,tb:pe,qq:ve,swan:me,tt:fe,wx:Ie}[ye];return e.canHook=!1,e}));class Oe{constructor(e){this.growingIO=e,this.minip=L("framework"),this.hookSetTitle=()=>{var e;const t=null===(e=this.minip)||void 0===e?void 0:e.setNavigationBarTitle,i=this;t&&Object.defineProperty(this.minip,"setNavigationBarTitle",{writable:!0,enumerable:!0,configurable:!0,value:function(){if(i.growingIO.gioSDKInitialized){const e=i.getCurrentPath(),{title:t}=arguments[0]||{};i.growingIO.dataStore.eventHooks.currentPage.settedTitle[e]=t}return t.apply(this,arguments)}})},this.navigateTo=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateTo(e)},this.switchTab=e=>{var t;null===(t=this.minip)||void 0===t||t.switchTab(e)},this.navigateToMiniProgram=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateToMiniProgram(e)},this.getImageInfo=({src:e,success:t,fail:i,complete:s})=>{var n;return null===(n=this.minip)||void 0===n?void 0:n.getImageInfo({src:e,success:t,fail:i,complete:s})},this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"observeAll")},this.getCurrentPage=()=>E((()=>l(getCurrentPages())))||{},this.getCurrentPath=()=>{const e=this.getCurrentPage();return(null==e?void 0:e.route)||(null==e?void 0:e.uri)||(null==e?void 0:e.__route__)||""},this.getPageTitle=e=>{var i,s;let n="";const o=F(U());try{const r=(null==e?void 0:e.data)||e.$data||{};if(n=t(null==r?void 0:r.gioPageTitle)?null==r?void 0:r.gioPageTitle:"",0===n.length){const t=o.page[e.route]||o.page[e.route+".html"];n=t?t.window.navigationBarTitleText:o.global.window.navigationBarTitleText}if(0===n.length){const t=null===(s=null===(i=null==o?void 0:o.tabBar)||void 0===i?void 0:i.list)||void 0===s?void 0:s.find((t=>t.pagePath===e.route||t.pagePath===e.route+".html"));n=(null==t?void 0:t.text)||""}}catch(e){return""}return A(n)},this.getStorageSync=e=>{var t;let i=null===(t=this.minip)||void 0===t?void 0:t.getStorageSync(e);return n(i)&&i.expiredAt?i.expiredAt<Date.now()?"":i.value:i},this.getStorage=e=>new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getStorage({key:e,success:({data:e})=>t(e),fail:()=>t("")})})),this.setStorageSync=(e,t,i)=>{var s;i&&(t={value:t,expiredAt:i}),null===(s=this.minip)||void 0===s||s.setStorageSync(e,t)},this.setStorage=(e,t)=>{var i;null===(i=this.minip)||void 0===i||i.setStorage({key:e,data:t})},this.removeStorageSync=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorageSync(e)},this.removeStorage=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorage(e)},this.getNetworkType=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getNetworkType({success:i=>{e.network=i,t(i)},fail:()=>t(null)})}))},this.request=({url:e,data:t,header:i,timeout:s,method:n,success:r,fail:a,complete:l})=>{var g;const u=null===(g=this.minip)||void 0===g?void 0:g.request({url:e,data:t,header:i,headers:i,timeout:s,method:n,success:r,fail:a,complete:l});let c=setTimeout((()=>{(null==u?void 0:u.abort)&&o(null==u?void 0:u.abort)&&(null==u||u.abort()),clearTimeout(c),c=null}),(s||1e4)+10);return u},this.getSystemInfo=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getSystemInfo({success:i=>{e.systemInfo=i,t(i)},fail:()=>t(null)})}))},this.getSetting=()=>new Promise((e=>{var t;null===(t=this.minip)||void 0===t||t.getSetting({success:e,fail:e})}));const{platformConfig:{platform:i,scnPrefix:s}}=this.growingIO;this.platform=i,this.scnPrefix=s,this.growingIO.emitter.on("OPTION_INITIALIZED",(()=>{this.getNetworkType().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()})),this.getSystemInfo().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()}))}))}}const we=U();var be={wx:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},swan:class extends Oe{constructor(e){super(e),this.growingIO=e,this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"selectAll")},this.hookSetTitle()}},my:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle=()=>{var e;const t=null===(e=this.minip)||void 0===e?void 0:e.setNavigationBar,i=this;t&&Object.defineProperty(this.minip,"setNavigationBar",{writable:!0,enumerable:!0,configurable:!0,value:function(){if(i.growingIO.gioSDKInitialized){const e=i.getCurrentPath(),{title:t}=arguments[0]||{};i.growingIO.dataStore.eventHooks.currentPage.settedTitle[e]=t}return t.apply(this,arguments)}})},this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"selectAll")},this.getStorageSync=e=>{const{data:t}=my.getStorageSync({key:e});return t},this.setStorageSync=(e,t)=>{var i;null===(i=this.minip)||void 0===i||i.setStorageSync({key:e,data:t})},this.hookSetTitle()}},qq:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},tt:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},ks:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},jd:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}}}[we];let Pe;var Te={name:"gioTaroAdapter",method:class{constructor(e){this.growingIO=e,this.main=()=>{var e,t,i,s;this.taro||(this.taro=null===(t=null===(e=this.growingIO)||void 0===e?void 0:e.vdsConfig)||void 0===t?void 0:t.taro),this.vue||(this.vue=null===(s=null===(i=this.growingIO)||void 0===i?void 0:i.vdsConfig)||void 0===s?void 0:s.taroVue);const{Current:n,createComponent:o}=this.taro;!n&&o?this.proxyTaro2(this.taro):n&&!o?this.proxyTaro3(this.taro,this.vue):Pe.consoleText("未获取到Taro实例或不支持的Taro版本,请检查!","error")},this.proxyTaro2=e=>{const t=this,i=e.createApp,s=e.createComponent;i&&(e.createApp=function(e){const s=i(e);return t.growingIO.dataStore.eventHooks.appOverriding(s),s}),s&&(e.createComponent=function(e,i){const n=s(e,i),o=i?"page":"component";switch(t.growingIO.gioPlatform){case"wx":case"qq":t.growingIO.dataStore.eventHooks[o+"Overriding"](n.methods);break;case"my":case"tt":case"jd":t.growingIO.dataStore.eventHooks[o+"Overriding"](n);break;case"swan":t.growingIO.dataStore.eventHooks[o+"Overriding"](n),t.growingIO.dataStore.eventHooks[o+"Overriding"](n.methods)}return n})},this.proxyTaro3=(e,t)=>{const{eventHooks:i}=this.growingIO.dataStore;if(t){console.log("Vue version: ",t.version);const e=Number.parseInt(Pe.head(Pe.split(t.version,".")),10);i.nativeGrowing(),2===e?this.taro3Vue2Proxy(t):3===e?this.taro3Vue3Proxy(t):Pe.consoleText("不支持的Vue版本,请使用 Vue2 或 Vue3!","error")}else i.nativeGrowing(["App"]),this.taro3ReactProxy(e)},this.taro3ReactProxy=e=>{var t;const i=document.__proto__.__proto__,s=this,{eventHooks:n}=this.growingIO.dataStore,o=null===(t=null==e?void 0:e.hooks)||void 0===t?void 0:t.call;var r,a;o?s.defineProperty(e.hooks,"call",(function(...e){const t=Array.from(e);let i=o.apply(this,t);if("modifyPageObject"===t[0]){const e=t[1];Pe.keys(e).forEach((t=>{n.pageHandlers.includes(t)&&(e[t]=n.lifeFcEffects(t,Pe.isFunction(e[t])?e[t]:()=>{},"Page"))}))}return i})):(Pe.consoleText("Taro3实例获取失败,请检查初始化逻辑!","warn"),n.nativeGrowing(["Page"])),s.defineProperty(i,"addEventListener",(r=i.addEventListener,function(...e){const t=e[1],i=s.growingIO.dataStore.eventHooks.customFcEffects(t.name,t);return s.taro3Listeners[t.name]=i,r.call(this,e[0],i,e[2])})),s.defineProperty(i,"removeEventListener",(a=i.removeEventListener,function(...e){return a.call(this,e[0],s.taro3Listeners[e[1].name])}))},this.taro3Vue2Proxy=e=>{const t=this;e.mixin({beforeMount:function(){const e=this.$options.methods;Pe.keys(e).forEach((e=>{t.defineProperty(this,e,t.proxyMethods(e,this[e]))}));const i=this._setupState;Pe.isEmpty(i)||Pe.keys(i).forEach((e=>{t.defineProperty(i,e,t.proxyMethods(e,i[e]))}))}})},this.taro3Vue3Proxy=e=>{const{eventHooks:t}=this.growingIO.dataStore,i=this;e.mixin({beforeMount:function(){var e;const s=e=>Pe.keys(e).forEach((e=>{i.defineProperty(this,e,i.proxyMethods(e,this[e]))})),n=this.$options.methods;n&&s(n);const o=null===(e=null==this?void 0:this._)||void 0===e?void 0:e.setupState;o&&s(o);const r=this._.emit;this._.emit=function(...e){return(()=>{t.customFcEffects(e[0],(()=>{})).apply(this,e)})(),r.apply(this,e)}},mounted(){var e,t;const s=null!==(t=null===(e=null==this?void 0:this._)||void 0===e?void 0:e.exposed)&&void 0!==t?t:{};if(i.exposedNames={},!Pe.isEmpty(s)){const e={};Pe.keys(s).forEach((t=>{Pe.isFunction(s[t])&&(i.exposedNames[s[t].name]=t,e[s[t].name]=s[t])})),i.traverseHook(this._.vnode.el,0)}}})},this.proxyMethods=(e,t)=>{const{eventHooks:i}=this.growingIO.dataStore;return Pe.isFunction(t)&&!i.pageHandlers.includes(e)?function(...s){return i.customFcEffects(e,t).apply(this,s)}:t},this.defineProperty=(e,t,i)=>{Object.defineProperty(e,t,{writable:!0,enumerable:!0,configurable:!0,value:i})},this.traverseHook=(e,t)=>{this.veiAutoEventHook(e,t),e.childNodes&&Pe.isArray(e.childNodes)&&e.childNodes.forEach(((e,t)=>{this.traverseHook(e,t)}))},this.veiAutoEventHook=(e,t)=>{const{eventHooks:i}=this.growingIO.dataStore;e._vei&&Pe.keys(e._vei).forEach((s=>{if(i.actionEventTypes.includes(s)){const i=e._vei[s].value;let n;if((Pe.startsWith(""+i,"function ($event)")||Pe.startsWith(""+i,"function($event)"))&&/return \$setup.[\w]+\(/.test(""+i)){const e=(""+i).match(/return \$setup.[\w]+\(/)[0];e&&(n=e.replace("return $setup.","").replace("(",""))}n||(n=`${Pe.keys(this.exposedNames)[t]}#${Object.values(this.exposedNames)[t]}`),this.defineProperty(e._vei[s],"value",this.proxyMethods(this.exposedNames[i.name]||i.name||n,i))}}))},this.saveFullPage=e=>{const t=e=>{e.forEach((e=>{var i;(null===(i=null==e?void 0:e.ctx)||void 0===i?void 0:i.route)?(this.growingIO.taro3VMs||(this.growingIO.taro3VMs={}),this.growingIO.taro3VMs[e.ctx.route]=e):Pe.isArray(e.childNodes)&&t(e.childNodes)}))};t(e.childNodes)};const{utils:t,vdsConfig:i,emitter:s,minipInstance:n,gioPlatform:o}=this.growingIO;Pe=t,this.taro=null==i?void 0:i.taro,this.vue=null==i?void 0:i.taroVue,this.exposedNames={},this.taro3Listeners={},s.on("minipLifecycle",(({event:e})=>{var t,i;"Page onReadyEnd"===e&&this.taro&&Pe.isTaro3(this.taro)&&(null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioTaroAdapter)||void 0===i||i.saveFullPage(document.body),["swan","tt"].includes(o)||setTimeout((()=>n.initImpression(n.getCurrentPage())),0))}))}}};let _e;const ke={};function Ce(e,t,i){var s=e;t.map((function(e,n){s[e]=n==t.length-1?i:s[e]||{},s=s[e]}))}Ce(ke,["pluginsIn","gioCustomTracking"],{name:"gioCustomTracking",method:class{constructor(e){this.growingIO=e,this.getDynamicAttributes=e=>(_e.isNil(e)||_e.keys(e).forEach((t=>{_e.isFunction(e[t])?e[t]=e[t]():_e.isArray(e[t])||(e[t]=_e.toString(e[t]))})),e),this.buildCustomEvent=(e,t)=>{_e.eventNameValidate(e,(()=>{const{dataStore:{eventContextBuilder:i,eventInterceptor:s}}=this.growingIO;s(Object.assign({eventType:"CUSTOM",eventName:e,attributes:_e.limitObject(this.getDynamicAttributes(_e.isObject(t)&&!_e.isEmpty(t)?t:void 0))},i()))}))},this.buildUserAttributesEvent=e=>{const{dataStore:{eventContextBuilder:t,eventInterceptor:i,lastVisitEvent:s}}=this.growingIO,n=Object.assign({eventType:"LOGIN_USER_ATTRIBUTES",attributes:_e.limitObject(e)},t());n.path||(n.path=s.path,n.query=s.query,n.title=s.title),i(n)},_e=this.growingIO.utils}}}),Ce(ke,["pluginsIn","gioTaroAdapter"],Te);class Ee{constructor(e){this.growingIO=e,this.innerPluginInit=()=>{I(ke.pluginsIn).forEach((e=>{const{name:t,method:i}=ke.pluginsIn[e];this.pluginItems.find((e=>e.name===t))||this.pluginItems.push({name:p(t||e),method:i||(e=>{})})})),P(this.pluginItems)||this.installAll()},this.install=(e,t,i)=>{var s;const n=t||this.pluginItems.find((t=>t.name===e));if(null===(s=this.growingIO)||void 0===s?void 0:s.plugins[e])return k(`重复加载插件 ${e} 或插件重名,已跳过加载!`,"warn"),!1;if(!n)return k(`插件加载失败!不存在名为 ${e} 的插件!`,"error"),!1;try{return this.growingIO.plugins[e]=new n.method(this.growingIO,i),t&&k("加载插件:"+e,"info"),!0}catch(t){return k(`插件【${e}】加载异常 ${t}`,"error"),!1}},this.installAll=e=>{(e||this.pluginItems).forEach((t=>this.install(t.name,e?t:void 0,t.options)))},this.uninstall=e=>{var t;w(this.pluginItems,e);const i=w(null===(t=this.growingIO)||void 0===t?void 0:t.plugins,e);return i||k(`卸载插件 ${e} 失败!`,"error"),i},this.uninstallAll=()=>{this.pluginItems.forEach((e=>this.uninstall(e.name)))},this.lifeError=(e,t)=>k(`插件执行错误 ${e.name} ${t}`,"error"),this.onComposeBefore=e=>{this.pluginItems.forEach((t=>{var i;const s=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeBefore;if(s&&o(s))try{s(e)}catch(e){this.lifeError(t,e)}}))},this.onComposeAfter=e=>{this.pluginItems.forEach((t=>{var i;const s=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeAfter;if(s&&o(s))try{s(e)}catch(e){this.lifeError(t,e)}}))},this.onSendBefore=e=>{this.pluginItems.forEach((t=>{var i;const s=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendBefore;if(s&&o(s))try{s(e)}catch(e){this.lifeError(t,e)}}))},this.onSendAfter=e=>{this.pluginItems.forEach((t=>{var i;const s=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendAfter;if(s&&o(s))try{s(e)}catch(e){this.lifeError(t,e)}}))},this.pluginItems=[],this.growingIO.emitter.on("onComposeBefore",this.onComposeBefore),this.growingIO.emitter.on("onComposeAfter",this.onComposeAfter),this.growingIO.emitter.on("onSendBefore",this.onSendBefore),this.growingIO.emitter.on("onSendAfter",this.onSendAfter)}}var Ae={},xe={}.hasOwnProperty;function je(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function Ne(e){try{return encodeURIComponent(e)}catch(e){return null}}Ae.stringify=function(e,t){t=t||"";var i,s,n=[];for(s in"string"!=typeof t&&(t="?"),e)if(xe.call(e,s)){if((i=e[s])||null!=i&&!isNaN(i)||(i=""),s=Ne(s),i=Ne(i),null===s||null===i)continue;n.push(s+"="+i)}return n.length?t+n.join("&"):""},Ae.parse=function(e){for(var t,i=/([^=?#&]+)=?([^&]*)/g,s={};t=i.exec(e);){var n=je(t[1]),o=je(t[2]);null===n||null===o||n in s||(s[n]=o)}return s};class qe{constructor(e){this.growingIO=e,this.generateURL=()=>{const{serverUrl:e,projectId:t}=this.growingIO.vdsConfig;return v(e,"http")?`${e}/v3/projects/${t}/collect`:`https://${e}/v3/projects/${t}/collect`},this.commitRequest=e=>{const t=Object.assign({},e),{vdsConfig:i}=this.growingIO;i.forceLogin?this.hoardingQueue.push(t):(this.requestQueue.push(t),this.initiateRequest())},this.initiateRequest=e=>{var t,i;const{plugins:s,vdsConfig:n}=this.growingIO;[...this.hoardingQueue,...this.requestQueue].length>0&&this.requestingNum<this.requestLimit&&((null===(t=null==n?void 0:n.tbConfig)||void 0===t?void 0:t.cloudFuncSend)?null===(i=null==s?void 0:s.gioTaobaoAdapter)||void 0===i||i.singleInvoke():e?this.batchInvoke():this.batchInvokeThrottle())},this.batchInvoke=()=>{var e,t;const{vdsConfig:i,plugins:s,emitter:n}=this.growingIO;let o=[...this.hoardingQueue,...this.requestQueue];o.length>50?(o=o.slice(0,50),this.hoardingQueue.length>50?this.hoardingQueue=this.hoardingQueue.slice(50):(this.hoardingQueue=[],this.requestQueue=this.requestQueue.slice(50-this.hoardingQueue.length))):(this.hoardingQueue=[],this.requestQueue=[]);let r=o.filter((e=>(this.retryIds[e.requestId]||0)<=this.retryLimit));if(P(r))return;const a=r.map((e=>{const t=Object.assign({},e);return w(t,"requestId"),t}));i.debug&&console.log("[GrowingIO Debug]:",JSON.stringify(a,null,2)),n.emit("onSendBefore",{requestData:a}),(null===(e=null==i?void 0:i.tbConfig)||void 0===e?void 0:e.cloudAppId)?null===(t=null==s?void 0:s.gioTaobaoAdapter)||void 0===t||t.tbCloudAppInvoke(a):this.normalBatchInvoke(r,a)},this.batchInvokeThrottle=b(this.batchInvoke,this.growingIO.vdsConfig.uploadInterval,!1,!1),this.normalBatchInvoke=(e,t)=>{var i;const{minipInstance:s,vdsConfig:n,emitter:o,plugins:a}=this.growingIO;this.requestingNum+=1;const l={"content-type":"jdp"===s.platform?"application/json":"application/json;charset=UTF-8"};let g=[...t];const u=n.compress&&(null===(i=null==a?void 0:a.gioCompress)||void 0===i?void 0:i.compressToUTF16);u&&(g=a.gioCompress.compressToUTF16(JSON.stringify(t)),l["X-Compress-Codec"]="1"),s.request({url:`${this.requestURL}?stm=${Date.now()}&compress=${u?"1":"0"}`,header:l,method:"POST",data:g,timeout:this.requestTimeout,fail:t=>{[200,204].includes(t.code)||(r(e)?e.forEach((e=>{this.requestFailFn(e)})):this.requestFailFn(e),k("请求失败!"+JSON.stringify(t),"error"))},complete:e=>{this.requestingNum-=1,o.emit("onSendAfter",{result:e}),this.initiateRequest()}})},this.requestFailFn=e=>{if(this.retryIds[e.requestId]||(this.retryIds[e.requestId]=0),this.retryIds[e.requestId]+=1,!this.requestQueue.some((t=>t.requestId===e.requestId))){let t=setTimeout((()=>{P(this.requestQueue)?(this.requestQueue.push(e),this.initiateRequest()):this.requestQueue.push(e),clearTimeout(t),t=null}),800)}},this.hoardingQueue=[],this.requestQueue=[],this.requestLimit=3,this.requestTimeout=5e3,this.retryLimit=2,this.retryIds={},this.requestingNum=0,this.requestURL=this.generateURL()}}class He{constructor(e){var t;this.growingIO=e,this.initUserInfo=()=>{var e;const{minipInstance:t}=this.growingIO,i=[this.uidStorageName,this.userIdStorageName,this.userKeyStorageName,this.gioIdStorageName],s=null!==(e=K(t,i))&&void 0!==e?e:[];["_uid","_userId","_userKey","_gioId"].forEach(((e,t)=>{this[e]=s[t],"_uid"!==e||this[e]||(this.uid=j())}))},this.saveUserInfo=()=>{const{minipInstance:e}=this.growingIO;G(e,[{key:this.uidStorageName,value:this.uid},{key:this.userIdStorageName,value:this.userId},{key:this.userKeyStorageName,value:this.userKey},{key:this.gioIdStorageName,value:this.gioId}])};const{inPlugin:i}=this.growingIO;this.uidStorageName=i?"_growing_plugin_uid_":"_growing_uid_",this.userIdStorageName=i?"_growing_plugin_userId_":"_growing_userId_",this.userKeyStorageName=i?"_growing_plugin_userKey_":"_growing_userKey_",this.gioIdStorageName=i?"_growing_plugin_gioId_":"_growing_gioId_",this._sessionId=j(),this._uid=void 0,this._userId=void 0,this._userKey=void 0,this._gioId=void 0,"quickapp"!==(null===(t=this.growingIO)||void 0===t?void 0:t.gioPlatform)&&this.initUserInfo()}get sessionId(){return this._sessionId||(this._sessionId=j()),this._sessionId}set sessionId(e){const t=this._sessionId;this._sessionId=e||j(),t!==this._sessionId&&this.growingIO.emitter.emit("SESSIONID_UPDATE",{newSessionId:this._sessionId,oldSessionId:t})}get uid(){return this._uid}set uid(e){const t=this._uid;this._uid=e,t!==this._uid&&(this.growingIO.minipInstance.setStorage(this.uidStorageName,this._uid),this.growingIO.emitter.emit("UID_UPDATE",{newUId:e,oldUId:t}))}get userId(){return this._userId}set userId(e){const t=this._userId;this._userId=e,t!==this._userId&&(this.growingIO.minipInstance.setStorage(this.userIdStorageName,this._userId),this.growingIO.emitter.emit("USERID_UPDATE",{newUserId:e,oldUserId:t})),e&&(this.gioId=e)}get userKey(){return this._userKey}set userKey(e){const t=this._userKey;this._userKey=e,t!==this._userKey&&(this.growingIO.minipInstance.setStorage(this.userKeyStorageName,this._userKey),this.growingIO.emitter.emit("USERKEY_UPDATE",{newUserKey:e,oldUserKey:t}))}get gioId(){return this._gioId}set gioId(e){const t=this._gioId;this._gioId=e,t!==this._gioId&&(this.growingIO.minipInstance.setStorage(this.gioIdStorageName,this._gioId),this.growingIO.emitter.emit("GIOID_UPDATE",{newGioId:e,oldGioId:t}))}}const De=new class{constructor(){var t;this.registerPlugins=e=>{this.plugins.pluginItems=[...this.plugins.pluginItems,...e],this.plugins.installAll(e)},this.init=e=>{var t;return k("Gio小程序SDK 初始化中...","info"),this.dataStore.initOptions(e),null===(t=this.emitter)||void 0===t||t.emit("OPTION_INITIALIZED",this),this.gioSDKInitialized=!0,this.vdsConfig.subpackage||(R().__gio__=()=>this),this.uploader=new qe(this),this.vdsConfig.idMapping||(this.userStore.userKey=""),this.emitter.emit("SDK_INITIALIZED",this),k("Gio小程序SDK 初始化完成!","success"),this.vdsConfig.forceLogin&&k("forceLogin已开启,请调用 identify 方法设置 openId 以继续上报!","info"),this.inPlugin&&"tbp"!==this.minipInstance.platform&&this.dataStore.sendVisit(),!0},this.getOption=e=>this.dataStore.getOption(e),this.setOption=(e,t)=>{if(I(X).includes(e)){const i=this.dataStore.setOption(e,t);return i&&X[e]&&k(`已${t?"开启":"关闭"}${X[e]}`,"info"),i}return k(`不存在可修改的配置项:${e},请检查后重试!`,"warn"),!1},this.getDeviceId=()=>this.userStore.uid,this.identify=e=>{if(this.vdsConfig.forceLogin){if(!J(e))return void C("identify");const t=h(e).slice(0,1e3);this.userStore.uid=t,this.uploader.hoardingQueue.forEach(((e,i)=>this.uploader.hoardingQueue[i].deviceId=t)),this.dataStore.setOption("forceLogin",!1),this.uploader.initiateRequest(!0)}else C("identify",!1,"forceLogin未开启")},this.setUserId=(t,i)=>{if(J(t)){const s=this.userStore.gioId;if(t=h(t).slice(0,1e3),i=h(i).slice(0,1e3),this.userStore.userId=t,this.vdsConfig.idMapping&&(this.userStore.userKey=e(i)?"":i),s&&s!==t){this.userStore.sessionId="";const{path:e,query:t,settedTitle:i}=this.dataStore.eventHooks.currentPage;this.dataStore.eventHooks.currentPage.title=i[e]||this.minipInstance.getPageTitle(this.minipInstance.getCurrentPage()),this.dataStore.sendVisit({path:e,query:t})}}else C("setUserId")},this.clearUserId=()=>{this.userStore.userId=void 0,this.userStore.userKey=void 0},this.setUserAttributes=e=>{var t,i;!P(e)&&n(e)?null===(i=null===(t=this.plugins)||void 0===t?void 0:t.gioCustomTracking)||void 0===i||i.buildUserAttributesEvent(e):C("setUserAttributes")},this.track=(e,t)=>{var i,s;((null===(s=null===(i=this.plugins)||void 0===i?void 0:i.gioCustomTracking)||void 0===s?void 0:s.buildCustomEvent)||function(){})(e,Object.assign(Object.assign({},this.dataStore.generalProps),n(t)&&!P(t)?t:{}))},this.trackTimerStart=e=>!!this.vdsConfig.dataCollect&&x(e,(()=>{const t=j();return this.dataStore.trackTimers[t]={eventName:e,leng:0,start:+Date.now()},t})),this.trackTimerPause=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return t.start&&(t.leng=t.leng+(+Date.now()-t.start)),t.start=0,!0}return!1},this.trackTimerResume=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return 0===t.start&&(t.start=+Date.now()),!0}return!1},this.trackTimerEnd=(e,t)=>{if(this.vdsConfig.dataCollect){const i=864e5;if(e&&this.dataStore.trackTimers[e]){const s=this.dataStore.trackTimers[e];if(0!==s.start){const e=+Date.now()-s.start;s.leng=e>0?s.leng+e:0}const{eventContextBuilder:n,eventInterceptor:o}=this.dataStore;return o(Object.assign(Object.assign({eventType:"CUSTOM",eventName:s.eventName,attributes:V(Object.assign(Object.assign({},t),{event_duration:s.leng>i?0:s.leng/1e3}))},n()),{customEventType:0})),this.removeTimer(e),!0}return k("未查找到对应的计时器,请检查!","error"),!1}return!1},this.removeTimer=e=>!(!e||!this.dataStore.trackTimers[e]||(delete this.dataStore.trackTimers[e],0)),this.clearTrackTimer=()=>{this.dataStore.trackTimers={}},this.setGeneralProps=e=>{n(e)&&!P(e)?(this.dataStore.generalProps=Object.assign(Object.assign({},this.dataStore.generalProps),e),I(this.dataStore.generalProps).forEach((e=>{[void 0,null].includes(this.dataStore.generalProps[e])&&(this.dataStore.generalProps[e]="")}))):C("setGeneralProps")},this.clearGeneralProps=e=>{r(e)&&!P(e)?e.forEach((e=>{w(this.dataStore.generalProps,e)})):this.dataStore.generalProps={}},this.setPageAttributes=e=>{const{currentPage:t}=this.dataStore.eventHooks,i=this.minipInstance.getCurrentPath();["onLoad","attached"].includes(t.currentLifecycle)&&(t.pageProps[i]=V(e))},this.updateImpression=()=>{k("当前未集成半自动浏览插件,请集成插件后再调用 updateImpression!","warn")},this.setLocation=(e,t)=>{const i={latitude:e,longitude:t},s=this.dataStore.locationData,n=e=>e>=-180&&180>=e;n(e)&&n(t)&&(s.latitude!==e||s.longitude!==t)&&(this.dataStore.locationData=i)},this.getGioInfo=()=>{const{uid:e,userId:t,userKey:i,sessionId:s}=this.userStore,{projectId:n,appId:o,dataSourceId:r,dataCollect:a,idMapping:l,extraParams:g,ignoreFields:u}=this.vdsConfig,c={gioappid:o,giocs1:t||"",gioplatform:this.platformConfig.platform,gioprojectid:n,gios:s,giou:e};return c.giodatacollect=a,c.giodatasourceid=r,l&&(c.giouserkey=i),P(g)||g.forEach((e=>{u.includes(e)||(c["gio"+e]=this.dataStore.lastVisitEvent[e])})),Ae.stringify(c)},this.utils=Object.assign(Object.assign(Object.assign({},_),z),{qs:Ae}),this.emitter={all:t=t||new Map,on:function(e,i){var s=t.get(e);s?s.push(i):t.set(e,[i])},off:function(e,i){var s=t.get(e);s&&(i?s.splice(s.indexOf(i)>>>0,1):t.set(e,[]))},emit:function(e,i){var s=t.get(e);s&&s.slice().map((function(e){e(i)})),(s=t.get("*"))&&s.slice().map((function(t){t(e,i)}))}},this.gioPlatform=U(),this.gioFramework="taro",this.sdkVersion="4.0.0";try{"quickapp"===this.gioPlatform||o(getApp)&&o(App)?this.inPlugin=!1:this.inPlugin=!0}catch(e){this.inPlugin=!0}this.inPlugin&&k("未检测到小程序实例,自动切换为插件模式!","info"),this.platformConfig=Se,this.minipInstance=new be(this),this.dataStore=new ge(this),this.userStore=new He(this),this.plugins=new Ee(this),this.plugins.innerPluginInit()}},$e=function(){const e=arguments[0];if(t(e)&&Z.includes(e)&&De[e]){const s=g(Array.from(arguments));if("init"===e){const e=!(i=De).vdsConfig&&!i.gioSDKInitialized||(k("SDK重复初始化,请检查是否重复加载SDK或接入其他平台SDK导致冲突!","warn"),!1),o=(e=>!!u(e)||(k('SDK初始化失败,请使用 gdp("init", "您的GrowingIO项目 accountId", "您项目的 dataSourceId", "你的应用 AppId", options); 进行初始化!',"error"),!1))(s),r=(e=>{const t=e[0];let i=l(e);return J(t)?(n(i)&&i||(i={}),{projectId:t,userOptions:i}):(k("SDK初始化失败,accountId 参数不合法!","error"),!1)})(s),a=(e=>{const i=e[1];let s=e[2];const n=l(e);return i&&t(i)?J(s)?{dataSourceId:i,appId:s,options:n}:(k("SDK初始化失败,appId 参数不合法!","error"),!1):(k("SDK初始化失败,dataSourceId 参数不合法!","error"),!1)})(s);if(e&&o&&r&&a){const{projectId:e}=r,{dataSourceId:t,appId:i,options:s}=a;return De.init(Object.assign(Object.assign({},s),{projectId:e,dataSourceId:t,appId:i}))}}else if("registerPlugins"===e)De.registerPlugins(s[0]);else{if(De.gioSDKInitialized&&De.vdsConfig)return De[e](...s);k("SDK未初始化!","error")}}else ee.includes(e)?k(`方法 ${h(e)} 已被弃用!`,"warn"):k(`不存在名为 ${h(e)} 的方法调用!`,"error");var i};M().gdp=$e,M().gioSDKVersion=De.sdkVersion;const Le=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingApp)&&void 0!==e?e:App})),Fe=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingPage)&&void 0!==e?e:Page})),Ue=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingComponent)&&void 0!==e?e:Component})),Be=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingBehavior)&&void 0!==e?e:Behavior}));export default $e;export{Le as GioApp,Be as GioBehavior,Ue as GioComponent,Fe as GioPage};
package/dist/uniapp.js ADDED
@@ -0,0 +1 @@
1
+ const e=e=>["undefined","null"].includes(T(e)),t=e=>"string"===T(e),i=e=>"number"===T(e),n=e=>"boolean"===T(e),s=t=>"[object Object]"==={}.toString.call(t)&&!e(t),o=e=>["function","asyncfunction"].includes(T(e)),r=e=>Array.isArray(e)&&"array"===T(e),a=e=>{try{return Array.from(e)[0]}catch(e){return}},l=e=>{try{const t=Array.from(e);return t[t.length-1]}catch(e){return}},u=(e,t=1)=>r(e)&&i(t)?e.slice(t>0?t:1,e.length):e,g=e=>{if(r(e)){let t=0;const i=[];for(const n of e)n&&!P(n)&&(i[t++]=n);return i}return e},c=(e,t)=>{if(r(e)){const i=e.findIndex(t);return 0>i?void 0:e[i]}},h=t=>e(t)?"":""+t,d=(e,t)=>"string"===T(e)?e.split(t):e,p=e=>{if(t(e)){const t=d(e,"");return`${a(t).toLowerCase()}${u(t).join("")}`}return e},v=(e,t)=>e.slice(0,t.length)===t,m={}.hasOwnProperty,f=(t,i)=>!e(t)&&m.call(t,i),I=e=>s(e)?Object.keys(e):[],S=(e,t)=>{I(e).forEach((i=>t(e[i],i)))},y=(e,t)=>{const i=I(e);return!(!s(e)||!s(t)||i.length!==I(t).length||i.map(((i,n)=>s(e[i])?y(e[i],t[i]):e[i]===t[i])).includes(!1))},O=(e,t,i)=>{let n=e;return s(e)?(t.split(".").forEach((e=>{n=n?n[e]:i})),n):i},w=(e,t)=>{if(!s(e))return!1;try{if("string"===T(t))return delete e[t];if("array"===T(t))return t.map((t=>delete e[t]));"object"===T(t)&&t.constructor===RegExp&&I(e).forEach((i=>{t.test(i)&&w(e,i)}))}catch(e){return!1}},b=(e,t=250,i,n)=>{let s,o=0;return"boolean"!==T(i)&&(n=e,e=i,i=void 0),function(...r){let a=this,l=Date.now()-o;function u(){o=Date.now(),e.apply(a,r)}n&&!s&&u(),s&&clearTimeout(s),void 0===n&&l>t?u():!0!==i&&(s=setTimeout(n?function(){s=void 0}:u,void 0===n?t-l:t))}},P=e=>r(e)?0===e.length:s(e)?0===I(e).length:!e,T=e=>({}.toString.call(e).slice(8,-1).toLowerCase());var _=Object.freeze({__proto__:null,isNil:e,isString:t,isNaN:e=>"NaN"===h(Number(e)),isNumber:i,isBoolean:n,isObject:s,isRegExp:e=>"[object RegExp]"==={}.toString.call(e),isFunction:o,isArray:r,isDate:e=>"date"===T(e),fixed:(e,n)=>i(e)?Number(e.toFixed(i(n)?n:2)):t(e)&&"NaN"!==h(Number(e))?Number(Number(e).toFixed(i(n)?n:2)):e,head:a,last:l,drop:u,dropWhile:(e,t)=>r(e)?e.filter((e=>!t(e))):e,compact:g,find:c,isEqualArray:(e,t)=>!(!r(e)||!r(t)||e.length!==t.length)&&e.every(((e,i)=>e===t[i])),toString:h,split:d,lowerFirst:p,upperFirst:e=>{if(t(e)){const t=d(e,"");return`${a(t).toUpperCase()}${u(t).join("")}`}return e},startsWith:v,endsWith:(e,t)=>{const{length:i}=e;let n=i;n>i&&(n=i);const s=n;return n-=t.length,n>=0&&e.slice(n,s)===t},hasOwnProperty:m,has:f,keys:I,forEach:S,isEqual:y,get:O,unset:w,throttle:b,isEmpty:P,typeOf:T,formatDate:e=>{function t(e){return 10>e?"0"+e:e}return e.getFullYear()+"-"+t(e.getMonth()+1)+"-"+t(e.getDate())+" "+t(e.getHours())+":"+t(e.getMinutes())+":"+t(e.getSeconds())+"."+t(e.getMilliseconds())}});const C=(e,t)=>{console.log("%c[GrowingIO]:"+e,{info:"color: #3B82F6;",error:"color: #EF4444",warn:"color: #F59E0B",success:"color: #10B981"}[t]||"")},k=(e,t=!0,i="参数不合法")=>C(`${t?"调用":"设置"} ${e} 失败,${i}!`,"warn"),E=e=>{try{return e()}catch(e){return}},A=e=>t(e)?e.trim().substring(0,100):e,j=(e,i)=>t(e)&&!P(e)&&e.match(/^[a-zA-Z_][0-9a-zA-Z_]{0,100}$/)?i():(C("事件名格式不正确,只能包含数字、字母和下划线,且不能以数字开头,字符总长度不能超过100!","error"),!1),x=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),N=e=>e.pixelRatio?Math.round(e.screenHeight*e.pixelRatio):e.screenHeight,q=e=>e.pixelRatio?Math.round(e.screenWidth*e.pixelRatio):e.screenWidth,$=(e,t)=>{if(e){const i=e.toLowerCase();return-1!==i.indexOf("android")?t+"-Android":-1!==i.indexOf("ios")?t+"-iOS":e}},D=e=>{if(t(e)){const t=e.indexOf("?");return-1!==t?[e.substring(0,t),e.substring(t+1)]:[e,""]}return["",""]},H=e=>t(e)?e.startsWith("/")?e:"/"+e:"",U=e=>E((()=>{switch(e){case"wx":return wx;case"my":case"tb":return my;case"swan":return swan;case"tt":return tt;case"qq":return qq;case"ks":return ks;case"jd":return jd;default:{let e;return e||(e=E((()=>swan))),e||(e=E((()=>my))),e||(e=E((()=>tt))),e||(e=E((()=>qq))),e||(e=E((()=>ks))),e||(e=E((()=>jd))),e||(e=E((()=>wx))),e}}})),F=e=>E((()=>{switch(e){case"wx":return __wxConfig;case"swan":return appConfig;case"tt":return __ttConfig;case"qq":return __qqConfig;case"ks":return __ksConfig;case"jd":return __jdConfig;default:return}})),B=()=>{let e;return!e&&E((()=>swan))&&(e="swan"),!e&&E((()=>tt))&&(e="tt"),!e&&E((()=>qq))&&(e="qq"),!e&&E((()=>my.tb))&&(e="tb"),!e&&E((()=>my))&&(e="my"),!e&&E((()=>ks))&&(e="ks"),!e&&E((()=>jd))&&(e="jd"),!e&&E((()=>wx))&&(e="wx"),e||c(I(global),(e=>h(e).toLowerCase().includes("quickapp")))&&(e="quickapp"),e},L=e=>I(e).filter((e=>e.indexOf("__sub")>-1&&e.indexOf("gio__")>-1)).sort(),R=()=>{let e=E((()=>getApp({allowDefault:!0})));return e||(e=V()),e},V=()=>{var e;return null!==(e=E((()=>$global)))&&void 0!==e?e:global},K=t=>{const i={};return s(t)&&S(t,((t,n)=>{const o=h(n).slice(0,100);s(t)?i[o]=K(t):r(t)?(i[o]=t.slice(0,100),i[o]=i[o].join("||").slice(0,1e3)):i[o]=e(t)?"":h(t).slice(0,1e3)})),i},M=(e,t)=>{const i=()=>t.map((t=>e.getStorageSync(t)));try{return e.minip.canIUse("batchGetStorageSync")?e.minip.batchGetStorageSync(t):i()}catch(e){return i()}},G=(e,t)=>{const i=()=>t.map((({key:t,value:i})=>e.setStorageSync(t,i)));try{return e.minip.canIUse("batchSetStorageSync")?e.minip.batchSetStorageSync(t):i()}catch(e){return i()}},Q=t=>I(t||{}).map((i=>i?`${i}=${e(t[i])?"":t[i]}`:"")).join("&"),W=e=>{(v(e,"?")||v(e,"&"))&&(e=e.slice(1,e.length));const t={};return e.split("&").forEach((e=>{const i=e.split("=");i[0]&&(t[i[0]]=i[1])})),t};var z=Object.freeze({__proto__:null,consoleText:C,callError:k,niceTry:E,niceCallback:(e,t)=>{if(o(e))try{e(t)}catch(e){C("回调执行失败!"+e,"error")}},limitString:A,eventNameValidate:j,guid:x,getScreenHeight:N,getScreenWidth:q,getOS:$,compareVersion:(e="",t="")=>{const i=e=>e.replace(/\s+/g,""),n=e=>e.replace(/[vV]/g,""),s=i(n(e)),o=i(n(t)),r=s.split("."),a=o.split(".");for(let e=0;3>e;e++){let t=Number(r[e]),i=Number(a[e]);if(t>i)return 1;if(i>t)return-1;if(!isNaN(t)&&isNaN(i))return 1;if(isNaN(t)&&!isNaN(i))return-1}return 0},getVueVersion:e=>{if(e){const t=Number.parseInt(a(d(e.version,".")),10);return Number.isNaN(t)?0:t}return 0},splitPath:D,normalPath:H,isTaro3:e=>{const{Current:t,createComponent:i}=e;return!(!e||!t||i)},getPlainMinip:U,getPlainConfig:F,getPlainPlatform:B,getSubKeys:L,getAppInst:R,getGlobal:V,limitObject:K,batchGetStorageSync:M,batchSetStorageSync:G,qsStringify:Q,qsParse:W,hashCode:e=>{let t=0;if(P(e)||"boolean"==typeof e)return t;let i=0;for(;i<e.length;)t=(t<<5)-t+e.charCodeAt(i),t&=t,i++;return t}});const J=e=>t(e)&&e.length>0||i(e)&&e>0,Y={autotrack:{type:"boolean",default:!0},compress:{type:"boolean",default:!0},dataCollect:{type:"boolean",default:!0},debug:{type:"boolean",default:!1},idMapping:{type:"boolean",default:!1},enableIdMapping:{type:"boolean",default:!1},extraParams:{type:"array",default:[]},followShare:{type:"boolean",default:!0},forceLogin:{type:"boolean",default:!1},ignoreFields:{type:"array",default:[]},pluginMode:{type:"boolean",default:!1},originalSource:{type:"boolean",default:!0},keepAlive:{type:"number",default:3e5},performance:{type:"object",default:{monitor:!0,exception:!0}},serverUrl:{type:"string",default:"https://napi.growingio.com"},subpackage:{type:"boolean",default:!1},taro:{type:["object","module"],default:!1},taroVue:{type:["object","function"],default:!1},tbConfig:{type:"object",default:{cloud:void 0,cloudFuncSend:!1,cloudFuncName:"httpTunnel",cloudFuncHandler:"main",cloudAppId:void 0,path:void 0}},uniVue:{type:["object","function"],default:!1},uploadInterval:{type:"number",default:1e3},version:{type:"string",default:"1.0.0"}},Z=["clearGeneralProps","clearTrackTimer","clearUserId","getDeviceId","getGioInfo","getOption","identify","init","registerPlugins","removeTimer","setGeneralProps","setLocation","setOption","setPageAttributes","setUserAttributes","setUserId","track","trackTimerEnd","trackTimerPause","trackTimerResume","trackTimerStart","updateImpression","getABTest"],X={autotrack:"无埋点",dataCollect:"数据采集",debug:"调试模式",serverUrl:"数据上报服务地址"},ee=["enableDebug","setAutotrack","setDataCollect","setTrackerHost","setTrackerScheme","setConfig","collectImp","setPlatformProfile","getLocation"],te=["deviceBrand","deviceModel","deviceType","networkState","screenHeight","screenWidth","operatingSystem"],ie=[...te,"appChannel","language","platformVersion"];class ne{constructor(e){this.growingIO=e,this.main=e=>{var t,i,n,s,o;const{sdkVersion:r,vdsConfig:a,platformConfig:l,minipInstance:u,userStore:g,dataStore:{scene:c,eventHooks:h,locationData:d,lastVisitEvent:p}}=this.growingIO,{systemInfo:v={},network:m={}}=u,{brand:f,model:I,platform:S,language:y,version:O}=v,b={appChannel:"scn:"+(c||"NA"),appVersion:a.version,dataSourceId:a.dataSourceId,deviceBrand:f,deviceId:g.uid,deviceModel:I,deviceType:$(S,l.name),domain:a.appId,language:y,latitude:null==d?void 0:d.latitude,longitude:null==d?void 0:d.longitude,networkState:(null==m?void 0:m.networkType)||(null==m?void 0:m.type)||(null==m?void 0:m.subtype),operatingSystem:$(S,l.name),path:(null===(t=h.currentPage)||void 0===t?void 0:t.path)?null===(i=h.currentPage)||void 0===i?void 0:i.path:p.path,platform:l.platform,platformVersion:l.name+(O?" "+O:""),query:(null===(n=h.currentPage)||void 0===n?void 0:n.path)?null===(s=h.currentPage)||void 0===s?void 0:s.query:p.query,screenHeight:N(v),screenWidth:q(v),sdkVersion:r,sessionId:g.sessionId,title:(null===(o=h.currentPage)||void 0===o?void 0:o.title)||u.getPageTitle(u.getCurrentPage()),timestamp:Date.now(),timezoneOffset:(new Date).getTimezoneOffset(),userId:g.userId};return a.idMapping&&(b.userKey=g.userKey),P(a.ignoreFields)||a.ignoreFields.forEach((e=>{w(b,e)})),P(e)?b:Object.assign(Object.assign({},b),e)}}}function se(e,t,i,n){return new(i||(i=Promise))((function(s,o){function r(e){try{l(n.next(e))}catch(e){o(e)}}function a(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))}class oe{constructor(t){this.growingIO=t,this.main=(e,t)=>{var i,n;const s=Date.now(),{emitter:o,userStore:r,vdsConfig:a,platformConfig:l,uploader:u,dataStore:g,dataStore:{shareOut:c,keepAlive:h,lastCloseTime:d,eventHooks:p,saveStorageInfo:v}}=this.growingIO;o.emit("minipLifecycle",{event:"App "+e,timestamp:s,params:null!==(i=t[0])&&void 0!==i?i:{}}),a.debug&&console.log("App:",e,s);const m=l.listeners.app;switch(o.emit("onComposeBefore",{event:"App "+e,params:null!==(n=t[0])&&void 0!==n?n:{}}),e){case m.appCreate:case m.appShow:{const{path:e,query:i}=this.enterParamsParse(t[0]);!c&&a.originalSource&&g.setOriginalSource({path:e,query:i}),d?(Date.now()-d>h||g.lastScene&&g.scene!==g.lastScene)&&(r.sessionId="",p.currentPage.time=void 0,this.buildVisitEvent({path:e,query:i})):(this.growingIO.dataStore.lastVisitEvent={path:e,query:i},this.buildVisitEvent({path:e,query:i}));break}case m.appClose:g.lastScene=g.scene,g.lastCloseTime=Date.now(),v(),r.saveUserInfo(),this.buildCloseEvent(),a.forceLogin||u.initiateRequest(!0)}},this.enterParamsParse=e=>{const{gioPlatform:t,minipInstance:i,dataStore:n}=this.growingIO;let o="",r="";const a=(e,t={})=>{o=e,r=I(t).map((e=>`${e}=${t[e]}`)).join("&")};if("quickapp"!==t&&i.minip.canIUse("getEnterOptionsSync")){const{path:t,query:o,scene:l,referrerInfo:u}=i.minip.getEnterOptionsSync()||{},g=e.query||o;if(a(e.path||t,g),n.scene=e.scene||l,!P(u)&&s(null==u?void 0:u.extraData)){let e=[];S(u.extraData,((t,i)=>{!f(g,i)&&["string","number","boolean"].includes(T(t))&&e.push(`${i}=${t}`)}));const t=e.join("&");r=r&&t?`${r}&${t}`:r||t}}else{const{path:t,query:i}=e;a(t,i),this.parseScene(e)}return{path:o,query:r}},this.parseScene=e=>{var t;const{minipInstance:i,gioPlatform:n,dataStore:s}=this.growingIO;let o;if("quickapp"===n){const{extra:e,type:t}=i.getAppSource();o=(null==e?void 0:e.scene)||t}else P(e)||((null===(t=null==e?void 0:e.query)||void 0===t?void 0:t.wxShoppingListScene)?o=e.query.wxShoppingListScene:(null==e?void 0:e.scene)?o=e.scene:s.scene="NA");s.scene=o},this.buildVisitEvent=t=>{const{dataStore:i,vdsConfig:n,minipInstance:s}=this.growingIO,{originalSourceName:o,getOriginalSource:r,eventContextBuilder:a,eventInterceptor:l}=i,u=r(),g=(null==t?void 0:t.query)||"";let c=Object.assign({eventType:"VISIT"},a({path:(null==t?void 0:t.path)||"",query:"string"===T(g)?g:Q(g)}));n.originalSource&&!e(u)&&(c=Object.assign(Object.assign({},c),u),n.dataCollect&&s.removeStorageSync(o)),l(c)},this.buildCloseEvent=()=>{const{dataStore:{eventContextBuilder:e,eventInterceptor:t}}=this.growingIO;t(Object.assign({eventType:"APP_CLOSED"},e()))}}}class re{constructor(e){this.growingIO=e,this.parsePage=(e,t)=>{var i;const n=e.route||e.uri||e.__route__||(null===(i=null==e?void 0:e.$page)||void 0===i?void 0:i.fullPath)||"";P(t)?this.query=void 0:this.query=this.getQuery(t),this.path!==n&&(this.time=Date.now()),this.path=n,this.title=this.settedTitle[this.path]||this.growingIO.minipInstance.getPageTitle(e||this.growingIO.minipInstance.getCurrentPage())},this.getQuery=e=>{const t=Object.assign({},e);return w(t,"wxShoppingListScene"),Q(t)},this.getReferralPage=()=>{const{minipInstance:e,dataStore:{lastPageEvent:t,scene:i}}=this.growingIO;return(null==t?void 0:t.path)||(i?`scn:${e.scnPrefix}${i}`:null)},this.saveShareId=e=>{(null==e?void 0:e.gioShareId)&&(this.queryShareId=e.gioShareId)},this.updateShareResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=H(t+(i?"?"+i:"")),e.query=i,e},this.updateAppMessageResult=this.updateShareResult,this.updateTimelineResult=this.updateShareResult,this.updateAddFavoritesResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=H(t+(i?"?"+i:"")),e.query=i,e},this.query=void 0,this.settedTitle={},this.pageProps={}}buildShareQuery(e){var t,i,n;const s=D(null!==(t=e.path)&&void 0!==t?t:"");let o=this.path,r={},u=f(e,"path");return u&&(o=a(s),r=W(l(s))||{}),P(r)&&(r=W(null!==(i=e.query)&&void 0!==i?i:"")||{}),!u&&P(r)&&(r=W(null!==(n=this.query)&&void 0!==n?n:"")||{}),[o,Q(r)]}}class ae{constructor(e){this.growingIO=e,this.main=(e,t,i)=>{var n,s;const r=Date.now(),{emitter:a,minipInstance:l,plugins:u,vdsConfig:g,platformConfig:c,dataStore:{shareOut:h,eventHooks:d,toggleShareOut:p,buildAppMessageEvent:v,buildTimelineEvent:m,buildAddFavorites:f},inPlugin:I}=this.growingIO,{currentPage:S}=d;if(this.prevEvent[t]&&50>Date.now()-Number(this.prevEvent[t]))return;e||(e=l.getCurrentPage()),e.route||(e.route=l.getCurrentPath(e));const y=e.route||e.uri||e.__route__||(null===(n=null==e?void 0:e.$page)||void 0===n?void 0:n.fullPath)||"";a.emit("minipLifecycle",{event:"Page "+t,timestamp:r,params:{page:e,args:i[0]}}),g.debug&&console.log("Page:",y,"#",t,r),this.prevEvent[t]=Date.now();const b=c.listeners.page;switch(a.emit("onComposeBefore",{page:e,event:"Page "+t,params:{page:e,args:i[0]}}),S.lastLifecycle=S.currentLifecycle,S.currentLifecycle=t,t){case b.pageLoad:this.argQuery[y]=O(e,"options")||O(e,"__displayReporter.query")||O(e,"$page.query")||O(e,"$wx.__displayReporter.query")||i[0]||{},w(this.argQuery[y],"$taroTimestamp"),S.parsePage(e,this.argQuery[y]);break;case b.pageShow:I?(S.parsePage(e,this.argQuery[y]),S.path||(S.path=`/插件${g.appId}}`,S.title=`/插件${g.appId}}`),this.buildPageEvent()):h&&d.currentPage.time||(S.parsePage(e,this.argQuery[y]),d.currentPage.time=Date.now(),this.buildPageEvent()),p(!1),S.saveShareId(this.argQuery[y]);break;case b.pageHide:case b.pageUnload:break;case b.shareApp:p(!0),g.followShare&&v(i);break;case b.shareTime:g.followShare&&m(i);break;case b.addFavorites:f(i);break;case b.tabTap:{const e=null===(s=null==u?void 0:u.gioEventAutoTracking)||void 0===s?void 0:s.buildTabClickEvent;g.autotrack&&e&&o(e)&&e(i[0]);break}}t===b.pageUnload&&(S.pageProps[y]=void 0)},this.buildPageEvent=e=>{var t;const{dataStore:{eventContextBuilder:i,eventInterceptor:n,eventHooks:s}}=this.growingIO,{currentPage:o}=s,r=Object.assign(Object.assign({eventType:"PAGE",referralPage:o.getReferralPage()},i()),{timestamp:o.time});P(o.pageProps[r.path])||(r.attributes=o.pageProps[r.path]),!P(e)&&e.path&&(r.path=e.path,r.query=e.query,r.title=null!==(t=e.title)&&void 0!==t?t:r.title),n(r)},this.prevEvent={},this.argQuery={}}}class le{constructor(e){var t,i;this.growingIO=e,this.isNormalFc=(e,t)=>o(t)&&"constructor"!==e,this.objectTraverse=(e,t)=>{Object.getOwnPropertyNames(e).forEach((i=>t(i,e))),f(e,"methods")&&Object.getOwnPropertyNames(e.methods).forEach((i=>{e[i]||t(i,e.methods)})),f(e,"lifetimes")&&Object.getOwnPropertyNames(e.lifetimes).forEach((i=>{e[i]||t(i,e.lifetimes)})),f(e,"pageLifetimes")&&Object.getOwnPropertyNames(e.pageLifetimes).forEach((i=>{e[i]||t(i,e.pageLifetimes)}))},this.supLifeFcs=(e,t)=>{r(this[t+"Handlers"])&&this[t+"Handlers"].forEach((t=>{o(e[t])||["onShareAppMessage","onShareTimeline"].includes(t)||(e[t]=()=>{})}))},this.lifeFcEffects=(e,t,i)=>{const n=this;return["onShareTimeline","onAddToFavorites"].includes(e)?function(...s){let o=t.apply(this,s);"onShareTimeline"===e&&n.growingIO.vdsConfig.followShare&&(o=n.currentPage.updateTimelineResult(null!=o?o:{})),"onAddToFavorites"===e&&(o=n.currentPage.updateAddFavoritesResult(null!=o?o:{}));const r=[].slice.call(s);return o&&r.push(o),n[`def${i}Cbs`][e].apply(this,r),o}:function(...s){var o;return se(this,void 0,void 0,(function*(){let r;try{if("onShareAppMessage"===e){if(r=null!==(o=yield t.apply(this,s))&&void 0!==o?o:{},"promise"===T(r.promise)){const e=function(){return se(this,void 0,void 0,(function*(){let e=r;return new Promise((t=>{let i=setTimeout((()=>{t(Object.assign({},e)),clearTimeout(i),i=void 0}),3e3);r.promise.then((n=>{e=n,t(Object.assign({},e)),clearTimeout(i),i=void 0}))}))}))};r=Object.assign(Object.assign({},r),yield e()),w(r,"promise")}n.growingIO.vdsConfig.followShare&&(r=n.currentPage.updateAppMessageResult(null!=r?r:{}))}const a=[].slice.call(s);r&&a.push(r),n[`def${i}Cbs`][e].apply(this,a)}catch(e){C(e,"error")}return"onShareAppMessage"!==e&&(r=t.apply(this,s)),n.growingIO.emitter.emit("minipLifecycle",{event:`${i} ${e}End`,timestamp:Date.now(),params:{instance:this,arguments:Array.from(s)}}),r}))}},this.customFcEffects=(e,t)=>{const i=this;return function(...n){var s,r;let a;if(i.growingIO.vdsConfig.autotrack&&i.growingIO.plugins.gioEventAutoTracking)try{let t=n[0]||{};f(t,"type")&&((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))||(t=n[n.length-1]),((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))&&i.actionEventTypes.includes(t.type)&&(o(i.actionEffects)||(i.actionEffects=(null===(r=null===(s=i.growingIO.plugins)||void 0===s?void 0:s.gioEventAutoTracking)||void 0===r?void 0:r.main)||function(){}),null==i||i.actionEffects(t,e))}catch(e){C(e,"error")}return a=t.apply(this,n),a}},this.appApplyProxy=(e,t)=>this.appHandlers.includes(e)?this.lifeFcEffects(e,t,"App"):this.customFcEffects(e,t),this.pageApplyProxy=(e,t)=>this.pageHandlers.includes(e)?this.lifeFcEffects(e,t,"Page"):this.customFcEffects(e,t),this.appOverriding=e=>(this.setAppEffectCbs(),this.supLifeFcs(e,"app"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.appApplyProxy(e,t[e]))})),e),this.pageOverriding=e=>(this.setPageEffectCbs(),this.supLifeFcs(e,"page"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.componentOverriding=e=>(this.setPageEffectCbs(),e.methods||(e.methods={}),this.supLifeFcs(this.growingIO.inPlugin?e:e.methods,"page"),this.objectTraverse(this.growingIO.inPlugin?e:e.methods,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.setAppEffectCbs=()=>{const e=this;this.appHandlers.forEach((t=>{this.defAppCbs[t]=function(...i){e.appEffects.main(t,i)}}))},this.setPageEffectCbs=()=>{const e=this;this.pageHandlers.forEach((t=>{this.defPageCbs[t]=function(...i){e.pageEffects.main(this,t,i)}}))},this.growingApp=e=>this.originalApp(this.appOverriding(e)),this.growingPage=e=>this.originalPage(this.pageOverriding(e)),this.growingComponent=e=>this.originalComponent(this.componentOverriding(e)),this.growingBehavior=e=>this.originalBehavior(this.componentOverriding(e)),this.nativeGrowing=(e=["App","Page","Component","Behavior"])=>{const t=this,{platformConfig:i}=this.growingIO,n=i.hooks;if(this.setAppEffectCbs(),this.setPageEffectCbs(),e.includes("App"))try{n.App&&!this.appHooked&&(App=function(...e){return t.growingApp(e[0])},this.appHooked=!0)}catch(e){}if(e.includes("Page"))try{n.Page&&!this.pageHooked&&(Page=function(...e){return t.growingPage(e[0])},this.pageHooked=!0)}catch(e){}if(e.includes("Component"))try{n.Component&&!this.componentHooked&&(Component=function(...e){return t.growingComponent(e[0])},this.componentHooked=!0)}catch(e){}if(e.includes("Behavior"))try{n.Behavior&&!this.behaviorHooked&&(Behavior=function(...e){return t.growingBehavior(e[0])},this.behaviorHooked=!0)}catch(e){}},this.initEventHooks=()=>{const e=this,{platformConfig:t,gioPlatform:i}=this.growingIO;t.canHook?(this.nativeGrowing(),V().GioApp=E((()=>null!==App&&void 0!==App?App:window.GioApp)),V().GioPage=E((()=>null!==Page&&void 0!==Page?Page:window.GioPage)),V().GioComponent=E((()=>null!==Component&&void 0!==Component?Component:window.GioComponent)),V().GioBehavior=E((()=>Behavior))):"quickapp"===i&&(window.GioApp=function(...t){return e.appOverriding(t[0])},window.GioPage=function(...t){return e.pageOverriding(t[0])},window.GioComponent=function(...t){return e.pageOverriding(t[0])})};const n=null===(t=this.growingIO)||void 0===t?void 0:t.platformConfig;this.defAppCbs={},this.defPageCbs={},this.appHandlers=n.appHandlers,this.pageHandlers=n.pageHandlers,this.actionEventTypes=n.actionEventTypes,this.originalApp=n.originalApp,this.originalPage=n.originalPage,this.originalComponent=n.originalComponent,this.originalBehavior=null!==(i=n.originalBehavior)&&void 0!==i?i:function(){},this.appEffects=new oe(this.growingIO),this.pageEffects=new ae(this.growingIO),this.currentPage=new re(this.growingIO)}}class ue{constructor(i){var s,l;this.growingIO=i,this.ALLOW_SETTING_KEYS=I(Y),this.gsidStorageName="_growing_gsid_",this.originalSourceName="gdp_original_source",this.initStorageInfo=()=>{const{minipInstance:e}=this.growingIO,t=R(),i=t.gio_gsid?t.gio_gsid:Number.parseInt(e.getStorageSync(this.gsidStorageName),10);this._gsid=Number.isNaN(i)||i>=1e9||1>i?1:i,this._stid=this._gsid,i!==this._gsid&&e.setStorageSync(this.gsidStorageName,this._gsid)},this.saveStorageInfo=()=>{const{minipInstance:e}=this.growingIO;this._stid=this._gsid,G(e,[{key:this.gsidStorageName,value:this._gsid}])},this.setOriginalSource=({path:t,query:i})=>{const{minipInstance:n}=this.growingIO;if(e(this.getOriginalSource())){const e={path:t,query:i,title:""};n.setStorageSync(this.originalSourceName,JSON.stringify(e))}},this.getOriginalSource=()=>{const{minipInstance:e}=this.growingIO;return E((()=>JSON.parse(e.getStorageSync(this.originalSourceName))))},this.initOptions=e=>{var t,i,n,s,o,a,l,u;const{projectId:g,dataSourceId:c,appId:h}=e,d={};this.ALLOW_SETTING_KEYS.forEach((t=>{const i=Y[t].type;(r(i)?i.includes(T(e[t])):T(e[t])===Y[t].type)?"ignoreFields"===t?d.ignoreFields=e.ignoreFields.filter((e=>te.includes(e))):"extraParams"===t?d.extraParams=e.extraParams.filter((e=>ie.includes(e))):d[t]=e[t]:d[t]=Y[t].default})),d.uploadInterval=Math.round(d.uploadInterval),(Number.isNaN(d.uploadInterval)||0>d.uploadInterval||d.uploadInterval>2e3)&&(d.uploadInterval=1e3),d.enableIdMapping&&!d.idMapping&&(d.idMapping=!0),d.pluginMode&&(this.growingIO.inPlugin=!0),this.growingIO.vdsConfig=Object.assign(Object.assign({},d),{projectId:g,dataSourceId:c,appId:h,performance:{monitor:null===(i=null===(t=d.performance)||void 0===t?void 0:t.monitor)||void 0===i||i,exception:null===(s=null===(n=d.performance)||void 0===n?void 0:n.exception)||void 0===s||s,network:null!==(a=null===(o=d.performance)||void 0===o?void 0:o.network)&&void 0!==a&&a}}),this.keepAlive=d.keepAlive,d.dataCollect||C("已关闭数据采集","info"),d.autotrack||C("已关闭无埋点","info");const{plugins:p,inPlugin:v,minipInstance:m}=this.growingIO,{uniVue:f,taro:I}=d;f||I||(this.growingIO.platformConfig.canHook=!0),v&&!["tbp","jdp"].includes(m.platform)||this.eventHooks.initEventHooks(),f&&(null===(l=null==p?void 0:p.gioUniAppAdapter)||void 0===l||l.main()),I&&(null===(u=null==p?void 0:p.gioTaroAdapter)||void 0===u||u.main())},this.setOption=(e,i)=>{var n;const{vdsConfig:s,userStore:o,uploader:r,emitter:a}=this.growingIO,l=t(e)&&this.ALLOW_SETTING_KEYS.includes(e),u=l&&typeof i===(null===(n=Y[e])||void 0===n?void 0:n.type);if(l&&u){if("dataCollect"===e&&!1===s.dataCollect&&!0===i){let e=setTimeout((()=>{o.sessionId="";const{path:t,query:i,settedTitle:n}=this.eventHooks.currentPage;this.eventHooks.currentPage.title=n[t]||this.growingIO.minipInstance.getPageTitle(this.growingIO.minipInstance.getCurrentPage()),this.sendVisit({path:t,query:i}),this.eventHooks.currentPage.time=Date.now(),this.sendPage({path:t,query:i}),clearTimeout(e),e=null}),0)}return s[e]=i,"serverUrl"===e&&(null==r||r.generateURL()),a.emit("OPTION_CHANGE",{optionName:e,optionValue:i}),!0}return k("setOption > "+e),!1},this.getOption=t=>{const{vdsConfig:i}=this.growingIO;return t&&f(i,h(t))?i[h(t)]:e(t)?Object.assign({},i):void k("getOption > "+t)},this.toggleShareOut=e=>{n(e)?this.shareOut=e:this.shareOut=!this.shareOut},this.sendVisit=e=>{this.eventHooks.appEffects.buildVisitEvent(null!=e?e:this.lastVisitEvent),this.eventHooks.currentPage.time=Date.now()},this.sendPage=e=>{this.eventHooks.pageEffects.buildPageEvent(e)},this.eventConverter=e=>{const{vdsConfig:t,dataStore:i,uploader:n}=this.growingIO;if(t.dataCollect){["LOGIN_USER_ATTRIBUTES","APP_CLOSED"].includes(e.eventType)||(e.eventSequenceId=i.gsid,this.growingIO.dataStore.gsid+=1);const t={};S(e,((e,i)=>{var n;if("element"===i){const i=null!==(n=a(e))&&void 0!==n?n:{};S(i,((e,i)=>{P(e)&&0!==e||(t[i]=e)}))}else P(e)&&0!==e||(t[i]=e)})),this.growingIO.emitter.emit("onComposeAfter",{composedEvent:t}),n.commitRequest(Object.assign(Object.assign({},t),{requestId:x()}))}},this.eventInterceptor=e=>{const{systemInfo:t,network:i}=this.growingIO.minipInstance;P(t)||P(i)?this.interceptEvents.push(e):P(this.interceptEvents)?this.eventConverter(e):([...this.interceptEvents,e].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.eventReleaseInspector=()=>{const{minipInstance:{systemInfo:e,network:t}}=this.growingIO;e&&t&&!P(this.interceptEvents)&&([...this.interceptEvents].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.buildAppMessageEvent=e=>{var t;const i=e[0];let n;2>e.length?1===e.length&&(n=i):n=e[1];const{dataStore:{eventContextBuilder:s,eventInterceptor:o}}=this.growingIO,r=((null==n?void 0:n.path)||"").split("?");o(Object.assign({eventType:"CUSTOM",eventName:"$mp_on_share",attributes:Object.assign({$from:i.from,$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==n?void 0:n.title,$share_path:a(r),$share_query:r[1]},null==n?void 0:n.attributes)},s()))},this.buildTimelineEvent=e=>{var t;const i=e[0];let n;2>e.length?1===e.length&&(n=i):n=e[1];const{dataStore:{eventContextBuilder:s,eventInterceptor:o}}=this.growingIO,r=((null==n?void 0:n.path)||"").split("?");o(Object.assign({eventType:"CUSTOM",eventName:"$mp_share_timeline",attributes:Object.assign({$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==n?void 0:n.title,$share_path:a(r),$share_query:r[1]},null==n?void 0:n.attributes)},s()))},this.buildAddFavorites=e=>{const t=e[0];let i;2>e.length?1===e.length&&(i=t):i=e[1];const{dataStore:{eventContextBuilder:n,eventInterceptor:s}}=this.growingIO,o=((null==i?void 0:i.path)||"").split("?");s(Object.assign({eventType:"CUSTOM",eventName:"$mp_add_favorites",attributes:{$share_title:null==i?void 0:i.title,$share_path:a(o),$share_query:o[1]}},n()))},this.initStorageInfo(),this.eventContextBuilder=new ne(this.growingIO).main,this.shareOut=!1,this.lastVisitEvent={},this.lastPageEvent={},this.locationData={},this.generalProps={},this.trackTimers={},this.interceptEvents=[],this.eventHooks=new le(this.growingIO),this.growingIO.emitter.on("onComposeAfter",(({composedEvent:e})=>{"VISIT"!==e.eventType&&"vst"!==e.t||(this.lastVisitEvent=e),"PAGE"!==e.eventType&&"page"!==e.t||(this.lastPageEvent=e)})),o(null===(s=this.growingIO.minipInstance.minip)||void 0===s?void 0:s.onAppHide)&&this.growingIO.minipInstance.minip.onAppHide((()=>{S(this.trackTimers,(e=>{e.start&&(e.leng=e.leng+(+Date.now()-e.start))}))})),o(null===(l=this.growingIO.minipInstance.minip)||void 0===l?void 0:l.onAppShow)&&this.growingIO.minipInstance.minip.onAppShow((()=>{S(this.trackTimers,(e=>{e.start&&(e.start=+Date.now())}))})),this.growingIO.emitter.on("OPTION_CHANGE",(({optionName:e,optionValue:t})=>{"dataCollect"===e&&!1===t&&this.growingIO.clearTrackTimer()}))}get gsid(){const e=R(),t=L(e);return!P(t)&&e.gio_gsid?e.gio_gsid:this._gsid}set gsid(e){const t=Number.parseInt(e,10);this._gsid=Number.isNaN(t)||e>=1e9||1>e?1:e,R().gio_gsid=this._gsid,10>this._gsid-this._stid||this.saveStorageInfo()}get scene(){return this._scene}set scene(e){const t=this._scene;this._scene=e,t!==this._scene&&this.growingIO.emitter.emit("SCENE_UPDATE",{newScene:e,oldScene:t})}}const ge={scnPrefix:"",appHandlers:["onLaunch","onShow","onHide","onError","onPageNotFound","onUnhandledRejection","onThemeChange"],pageHandlers:["onLoad","onShow","onReady","onHide","onShareAppMessage","onTabItemTap","onUnload","onPullDownRefresh","onReachBottom","onResize"],actionEventTypes:["onclick","tap","onTap","longpress","longTap","blur","change","onChange","submit","confirm","getuserinfo","getphonenumber","contact","mouseup"],originalApp:E((()=>App)),originalPage:E((()=>Page)),originalComponent:E((()=>Component)),originalBehavior:E((()=>Behavior)),canHook:!0,hooks:{App:!0,Page:!0,Component:!0,Behavior:!0},listeners:{app:{appLaunch:"onLaunch",appShow:"onShow",appClose:"onHide"},page:{pageLoad:"onLoad",pageShow:"onShow",pageReady:"onReady",pageHide:"onHide",pageUnload:"onUnload",tabTap:"onTabItemTap",shareApp:"onShareAppMessage"},actions:{click:["onclick","tap","longpress","longTap","getuserinfo","getphonenumber","contact","mouseup"],change:["blur","change","confirm"],submit:["submit"]}}},ce=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"JingDong",platform:"jdp",scnPrefix:"jd_"}),he=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"KuaiShou",platform:"kuaishoup",scnPrefix:"ks_"}),de=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"Alipay",platform:"alip",scnPrefix:"alip_",hooks:Object.assign(Object.assign({},null==ge?void 0:ge.hooks),{Behavior:!1})}),pe=Object.assign(Object.assign({},ge),{pageHandlers:[...ge.pageHandlers,"onInit","didMount","didUnmount"],listeners:Object.assign(Object.assign({},ge.listeners),{page:Object.assign(Object.assign({},ge.listeners.page),{onInit:"onInit",didMount:"didMount",didUnmount:"didUnmount"})}),name:"Taobao",platform:"tbp",scnPrefix:"tbp_",hooks:Object.assign(Object.assign({},null==ge?void 0:ge.hooks),{Behavior:!1})}),ve=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"QQ",platform:"qq",scnPrefix:"qq_"});ve.pageHandlers=[...ge.pageHandlers,"onAddToFavorites"],ve.listeners.page.addFavorites="onAddToFavorites";const me=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"Baidu",platform:"baidup",scnPrefix:"baidup_"}),fe=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"Bytedance",platform:"bytedance",scnPrefix:"bytedance_"}),Ie=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"Weixin",platform:"MinP"});Ie.pageHandlers=[...ge.pageHandlers,"onShareTimeline","onAddToFavorites"],Ie.listeners.page=Object.assign(Object.assign({},ge.listeners.page),{shareTime:"onShareTimeline",addFavorites:"onAddToFavorites"});const Se=B(),ye=E((()=>{const e={jd:ce,ks:he,my:de,tb:pe,qq:ve,swan:me,tt:fe,wx:Ie}[Se];return e.canHook=!1,e}));class Oe{constructor(e){this.growingIO=e,this.minip=U("framework"),this.hookSetTitle=()=>{var e;const t=null===(e=this.minip)||void 0===e?void 0:e.setNavigationBarTitle,i=this;t&&Object.defineProperty(this.minip,"setNavigationBarTitle",{writable:!0,enumerable:!0,configurable:!0,value:function(){if(i.growingIO.gioSDKInitialized){const e=i.getCurrentPath(),{title:t}=arguments[0]||{};i.growingIO.dataStore.eventHooks.currentPage.settedTitle[e]=t}return t.apply(this,arguments)}})},this.navigateTo=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateTo(e)},this.switchTab=e=>{var t;null===(t=this.minip)||void 0===t||t.switchTab(e)},this.navigateToMiniProgram=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateToMiniProgram(e)},this.getImageInfo=({src:e,success:t,fail:i,complete:n})=>{var s;return null===(s=this.minip)||void 0===s?void 0:s.getImageInfo({src:e,success:t,fail:i,complete:n})},this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"observeAll")},this.getCurrentPage=()=>E((()=>l(getCurrentPages())))||{},this.getCurrentPath=()=>{const e=this.getCurrentPage();return(null==e?void 0:e.route)||(null==e?void 0:e.uri)||(null==e?void 0:e.__route__)||""},this.getPageTitle=e=>{var i,n;let s="";const o=F(B());try{const r=(null==e?void 0:e.data)||e.$data||{};if(s=t(null==r?void 0:r.gioPageTitle)?null==r?void 0:r.gioPageTitle:"",0===s.length){const t=o.page[e.route]||o.page[e.route+".html"];s=t?t.window.navigationBarTitleText:o.global.window.navigationBarTitleText}if(0===s.length){const t=null===(n=null===(i=null==o?void 0:o.tabBar)||void 0===i?void 0:i.list)||void 0===n?void 0:n.find((t=>t.pagePath===e.route||t.pagePath===e.route+".html"));s=(null==t?void 0:t.text)||""}}catch(e){return""}return A(s)},this.getStorageSync=e=>{var t;let i=null===(t=this.minip)||void 0===t?void 0:t.getStorageSync(e);return s(i)&&i.expiredAt?i.expiredAt<Date.now()?"":i.value:i},this.getStorage=e=>new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getStorage({key:e,success:({data:e})=>t(e),fail:()=>t("")})})),this.setStorageSync=(e,t,i)=>{var n;i&&(t={value:t,expiredAt:i}),null===(n=this.minip)||void 0===n||n.setStorageSync(e,t)},this.setStorage=(e,t)=>{var i;null===(i=this.minip)||void 0===i||i.setStorage({key:e,data:t})},this.removeStorageSync=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorageSync(e)},this.removeStorage=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorage(e)},this.getNetworkType=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getNetworkType({success:i=>{e.network=i,t(i)},fail:()=>t(null)})}))},this.request=({url:e,data:t,header:i,timeout:n,method:s,success:r,fail:a,complete:l})=>{var u;const g=null===(u=this.minip)||void 0===u?void 0:u.request({url:e,data:t,header:i,headers:i,timeout:n,method:s,success:r,fail:a,complete:l});let c=setTimeout((()=>{(null==g?void 0:g.abort)&&o(null==g?void 0:g.abort)&&(null==g||g.abort()),clearTimeout(c),c=null}),(n||1e4)+10);return g},this.getSystemInfo=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getSystemInfo({success:i=>{e.systemInfo=i,t(i)},fail:()=>t(null)})}))},this.getSetting=()=>new Promise((e=>{var t;null===(t=this.minip)||void 0===t||t.getSetting({success:e,fail:e})}));const{platformConfig:{platform:i,scnPrefix:n}}=this.growingIO;this.platform=i,this.scnPrefix=n,this.growingIO.emitter.on("OPTION_INITIALIZED",(()=>{this.getNetworkType().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()})),this.getSystemInfo().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()}))}))}}const we=B();var be={wx:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},swan:class extends Oe{constructor(e){super(e),this.growingIO=e,this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"selectAll")},this.hookSetTitle()}},my:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle=()=>{var e;const t=null===(e=this.minip)||void 0===e?void 0:e.setNavigationBar,i=this;t&&Object.defineProperty(this.minip,"setNavigationBar",{writable:!0,enumerable:!0,configurable:!0,value:function(){if(i.growingIO.gioSDKInitialized){const e=i.getCurrentPath(),{title:t}=arguments[0]||{};i.growingIO.dataStore.eventHooks.currentPage.settedTitle[e]=t}return t.apply(this,arguments)}})},this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"selectAll")},this.getStorageSync=e=>{const{data:t}=my.getStorageSync({key:e});return t},this.setStorageSync=(e,t)=>{var i;null===(i=this.minip)||void 0===i||i.setStorageSync({key:e,data:t})},this.hookSetTitle()}},qq:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},tt:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},ks:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}},jd:class extends Oe{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}}}[we];let Pe;var Te={name:"gioUniAppAdapter",method:class{constructor(e){var t,i;this.growingIO=e,this.main=()=>{var e,t,i,n;if(this.uniVue||(this.uniVue=null===(t=null===(e=this.growingIO)||void 0===e?void 0:e.vdsConfig)||void 0===t?void 0:t.uniVue),console.log("Vue version: ",this.uniVue.version),null===(n=null===(i=this.growingIO)||void 0===i?void 0:i.vdsConfig)||void 0===n?void 0:n.subpackage)return!1;switch(Number.parseInt(Pe.head(Pe.split(this.uniVue.version,".")),10)){case 2:this.uniVue2Proxy(this.uniVue);break;case 3:this.uniVue3Proxy(this.uniVue);break;default:Pe.consoleText("不支持的Vue版本,请使用 Vue2 或 Vue3!","error")}},this.getHandlerName=(e,t)=>{var i;if("__e"===e){let e="__e";const{type:i,currentTarget:n,target:s}=t,o=(null==n?void 0:n.dataset)||(null==s?void 0:s.dataset);if(o){const t=o.eventOpts||o["event-opts"],n=(e,t)=>e===t||"regionchange"===t&&("begin"===e||"end"===e);t&&t.forEach((t=>{let s=Pe.head(t);const o="^"===s.charAt(0);s=o?s.slice(1):i;const r="~"===s.charAt(0);s=r?s.slice(1):i;const a=Pe.last(t);n(i,s)&&(e=Pe.head(Pe.head(a)))}))}return e}return Pe.isEmpty(this.exposedNames)?e:null!==(i=this.exposedNames[e])&&void 0!==i?i:e},this.uniVue2Proxy=e=>{const{dataStore:{eventHooks:t},minipInstance:i}=this.growingIO;t.nativeGrowing(["App","Component","Behavior"]),e.mixin({beforeMount(){if("page"===this.mpType){t.pageOverriding(this.$scope);const e=this,n=i.getPageTitle;i.getPageTitle=function(...i){var s,o,r;return(e.$scope.route===t.currentPage.path?null===(r=null===(o=null===(s=e.$scope)||void 0===s?void 0:s.$vm)||void 0===o?void 0:o._data)||void 0===r?void 0:r.gioPageTitle:void 0)||n.apply(this,i)}}}})},this.uniVue3Proxy=e=>{const{dataStore:{eventHooks:t},minipInstance:i}=this.growingIO;t.nativeGrowing();const n=i.getPageTitle;i.getPageTitle=function(...e){var t,s,o;let r=Pe.isEmpty(e[0])?i.getCurrentPage():e[0];if("page"===(null===(t=null==r?void 0:r.$vm)||void 0===t?void 0:t.mpType)&&(null===(s=null==r?void 0:r.$vm)||void 0===s?void 0:s.__route__)){return(null===(o=null==r?void 0:r.$vm)||void 0===o?void 0:o.gioPageTitle)||n.apply(this,e)}return n.apply(this,e)};const s=this;e.mixin({beforeMount(){var e,i;const n=(e,i)=>Pe.isFunction(i)&&!t.pageHandlers.includes(e)?function(...n){return t.customFcEffects(e,i).apply(this,n)}:i,o=(e,t)=>Pe.keys(e).forEach((e=>{Pe.isFunction(t[e])&&Object.defineProperty(t,e,{value:n(e,t[e]),configurable:!0,writable:!0})})),r=this.$options.methods;r&&o(r,this);const a=null===(e=null==this?void 0:this._)||void 0===e?void 0:e.setupState;a&&o(a,a);const l=null===(i=null==this?void 0:this._)||void 0===i?void 0:i.exposed;if(s.exposedNames={},l){const e=Pe.keys(l);e.forEach((e=>{Pe.isFunction(l[e])&&(s.exposedNames[l[e].name]=e)})),Pe.keys(this.$scope).filter((e=>/^e[0-9]+$/.test(e)&&Pe.isFunction(this.$scope[e]))).forEach(((i,n)=>{const o=this.$scope[i].value,r=s.splicingMethodName(o.name,i,e[n]);this.$scope[i].value=t.customFcEffects(r,o)}))}const u=this._.emit;this._.emit=function(...e){return(()=>{t.customFcEffects(e[0],(()=>{})).apply(this,e)})(),u.apply(this,e)}}})},this.splicingMethodName=(e,t,i)=>e||(i?`${t}#${i}`:t),Pe=this.growingIO.utils,this.uniVue=null===(i=null===(t=this.growingIO)||void 0===t?void 0:t.vdsConfig)||void 0===i?void 0:i.uniVue,this.exposedNames={}}}};let _e;const Ce={};function ke(e,t,i){var n=e;t.map((function(e,s){n[e]=s==t.length-1?i:n[e]||{},n=n[e]}))}ke(Ce,["pluginsIn","gioCustomTracking"],{name:"gioCustomTracking",method:class{constructor(e){this.growingIO=e,this.getDynamicAttributes=e=>(_e.isNil(e)||_e.keys(e).forEach((t=>{_e.isFunction(e[t])?e[t]=e[t]():_e.isArray(e[t])||(e[t]=_e.toString(e[t]))})),e),this.buildCustomEvent=(e,t)=>{_e.eventNameValidate(e,(()=>{const{dataStore:{eventContextBuilder:i,eventInterceptor:n}}=this.growingIO;n(Object.assign({eventType:"CUSTOM",eventName:e,attributes:_e.limitObject(this.getDynamicAttributes(_e.isObject(t)&&!_e.isEmpty(t)?t:void 0))},i()))}))},this.buildUserAttributesEvent=e=>{const{dataStore:{eventContextBuilder:t,eventInterceptor:i,lastVisitEvent:n}}=this.growingIO,s=Object.assign({eventType:"LOGIN_USER_ATTRIBUTES",attributes:_e.limitObject(e)},t());s.path||(s.path=n.path,s.query=n.query,s.title=n.title),i(s)},_e=this.growingIO.utils}}}),ke(Ce,["pluginsIn","gioUniAppAdapter"],Te);class Ee{constructor(e){this.growingIO=e,this.innerPluginInit=()=>{I(Ce.pluginsIn).forEach((e=>{const{name:t,method:i}=Ce.pluginsIn[e];this.pluginItems.find((e=>e.name===t))||this.pluginItems.push({name:p(t||e),method:i||(e=>{})})})),P(this.pluginItems)||this.installAll()},this.install=(e,t,i)=>{var n;const s=t||this.pluginItems.find((t=>t.name===e));if(null===(n=this.growingIO)||void 0===n?void 0:n.plugins[e])return C(`重复加载插件 ${e} 或插件重名,已跳过加载!`,"warn"),!1;if(!s)return C(`插件加载失败!不存在名为 ${e} 的插件!`,"error"),!1;try{return this.growingIO.plugins[e]=new s.method(this.growingIO,i),t&&C("加载插件:"+e,"info"),!0}catch(t){return C(`插件【${e}】加载异常 ${t}`,"error"),!1}},this.installAll=e=>{(e||this.pluginItems).forEach((t=>this.install(t.name,e?t:void 0,t.options)))},this.uninstall=e=>{var t;w(this.pluginItems,e);const i=w(null===(t=this.growingIO)||void 0===t?void 0:t.plugins,e);return i||C(`卸载插件 ${e} 失败!`,"error"),i},this.uninstallAll=()=>{this.pluginItems.forEach((e=>this.uninstall(e.name)))},this.lifeError=(e,t)=>C(`插件执行错误 ${e.name} ${t}`,"error"),this.onComposeBefore=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeBefore;if(n&&o(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onComposeAfter=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeAfter;if(n&&o(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onSendBefore=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendBefore;if(n&&o(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onSendAfter=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendAfter;if(n&&o(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.pluginItems=[],this.growingIO.emitter.on("onComposeBefore",this.onComposeBefore),this.growingIO.emitter.on("onComposeAfter",this.onComposeAfter),this.growingIO.emitter.on("onSendBefore",this.onSendBefore),this.growingIO.emitter.on("onSendAfter",this.onSendAfter)}}var Ae={},je={}.hasOwnProperty;function xe(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function Ne(e){try{return encodeURIComponent(e)}catch(e){return null}}Ae.stringify=function(e,t){t=t||"";var i,n,s=[];for(n in"string"!=typeof t&&(t="?"),e)if(je.call(e,n)){if((i=e[n])||null!=i&&!isNaN(i)||(i=""),n=Ne(n),i=Ne(i),null===n||null===i)continue;s.push(n+"="+i)}return s.length?t+s.join("&"):""},Ae.parse=function(e){for(var t,i=/([^=?#&]+)=?([^&]*)/g,n={};t=i.exec(e);){var s=xe(t[1]),o=xe(t[2]);null===s||null===o||s in n||(n[s]=o)}return n};class qe{constructor(e){this.growingIO=e,this.generateURL=()=>{const{serverUrl:e,projectId:t}=this.growingIO.vdsConfig;return v(e,"http")?`${e}/v3/projects/${t}/collect`:`https://${e}/v3/projects/${t}/collect`},this.commitRequest=e=>{const t=Object.assign({},e),{vdsConfig:i}=this.growingIO;i.forceLogin?this.hoardingQueue.push(t):(this.requestQueue.push(t),this.initiateRequest())},this.initiateRequest=e=>{var t,i;const{plugins:n,vdsConfig:s}=this.growingIO;[...this.hoardingQueue,...this.requestQueue].length>0&&this.requestingNum<this.requestLimit&&((null===(t=null==s?void 0:s.tbConfig)||void 0===t?void 0:t.cloudFuncSend)?null===(i=null==n?void 0:n.gioTaobaoAdapter)||void 0===i||i.singleInvoke():e?this.batchInvoke():this.batchInvokeThrottle())},this.batchInvoke=()=>{var e,t;const{vdsConfig:i,plugins:n,emitter:s}=this.growingIO;let o=[...this.hoardingQueue,...this.requestQueue];o.length>50?(o=o.slice(0,50),this.hoardingQueue.length>50?this.hoardingQueue=this.hoardingQueue.slice(50):(this.hoardingQueue=[],this.requestQueue=this.requestQueue.slice(50-this.hoardingQueue.length))):(this.hoardingQueue=[],this.requestQueue=[]);let r=o.filter((e=>(this.retryIds[e.requestId]||0)<=this.retryLimit));if(P(r))return;const a=r.map((e=>{const t=Object.assign({},e);return w(t,"requestId"),t}));i.debug&&console.log("[GrowingIO Debug]:",JSON.stringify(a,null,2)),s.emit("onSendBefore",{requestData:a}),(null===(e=null==i?void 0:i.tbConfig)||void 0===e?void 0:e.cloudAppId)?null===(t=null==n?void 0:n.gioTaobaoAdapter)||void 0===t||t.tbCloudAppInvoke(a):this.normalBatchInvoke(r,a)},this.batchInvokeThrottle=b(this.batchInvoke,this.growingIO.vdsConfig.uploadInterval,!1,!1),this.normalBatchInvoke=(e,t)=>{var i;const{minipInstance:n,vdsConfig:s,emitter:o,plugins:a}=this.growingIO;this.requestingNum+=1;const l={"content-type":"jdp"===n.platform?"application/json":"application/json;charset=UTF-8"};let u=[...t];const g=s.compress&&(null===(i=null==a?void 0:a.gioCompress)||void 0===i?void 0:i.compressToUTF16);g&&(u=a.gioCompress.compressToUTF16(JSON.stringify(t)),l["X-Compress-Codec"]="1"),n.request({url:`${this.requestURL}?stm=${Date.now()}&compress=${g?"1":"0"}`,header:l,method:"POST",data:u,timeout:this.requestTimeout,fail:t=>{[200,204].includes(t.code)||(r(e)?e.forEach((e=>{this.requestFailFn(e)})):this.requestFailFn(e),C("请求失败!"+JSON.stringify(t),"error"))},complete:e=>{this.requestingNum-=1,o.emit("onSendAfter",{result:e}),this.initiateRequest()}})},this.requestFailFn=e=>{if(this.retryIds[e.requestId]||(this.retryIds[e.requestId]=0),this.retryIds[e.requestId]+=1,!this.requestQueue.some((t=>t.requestId===e.requestId))){let t=setTimeout((()=>{P(this.requestQueue)?(this.requestQueue.push(e),this.initiateRequest()):this.requestQueue.push(e),clearTimeout(t),t=null}),800)}},this.hoardingQueue=[],this.requestQueue=[],this.requestLimit=3,this.requestTimeout=5e3,this.retryLimit=2,this.retryIds={},this.requestingNum=0,this.requestURL=this.generateURL()}}class $e{constructor(e){var t;this.growingIO=e,this.initUserInfo=()=>{var e;const{minipInstance:t}=this.growingIO,i=[this.uidStorageName,this.userIdStorageName,this.userKeyStorageName,this.gioIdStorageName],n=null!==(e=M(t,i))&&void 0!==e?e:[];["_uid","_userId","_userKey","_gioId"].forEach(((e,t)=>{this[e]=n[t],"_uid"!==e||this[e]||(this.uid=x())}))},this.saveUserInfo=()=>{const{minipInstance:e}=this.growingIO;G(e,[{key:this.uidStorageName,value:this.uid},{key:this.userIdStorageName,value:this.userId},{key:this.userKeyStorageName,value:this.userKey},{key:this.gioIdStorageName,value:this.gioId}])};const{inPlugin:i}=this.growingIO;this.uidStorageName=i?"_growing_plugin_uid_":"_growing_uid_",this.userIdStorageName=i?"_growing_plugin_userId_":"_growing_userId_",this.userKeyStorageName=i?"_growing_plugin_userKey_":"_growing_userKey_",this.gioIdStorageName=i?"_growing_plugin_gioId_":"_growing_gioId_",this._sessionId=x(),this._uid=void 0,this._userId=void 0,this._userKey=void 0,this._gioId=void 0,"quickapp"!==(null===(t=this.growingIO)||void 0===t?void 0:t.gioPlatform)&&this.initUserInfo()}get sessionId(){return this._sessionId||(this._sessionId=x()),this._sessionId}set sessionId(e){const t=this._sessionId;this._sessionId=e||x(),t!==this._sessionId&&this.growingIO.emitter.emit("SESSIONID_UPDATE",{newSessionId:this._sessionId,oldSessionId:t})}get uid(){return this._uid}set uid(e){const t=this._uid;this._uid=e,t!==this._uid&&(this.growingIO.minipInstance.setStorage(this.uidStorageName,this._uid),this.growingIO.emitter.emit("UID_UPDATE",{newUId:e,oldUId:t}))}get userId(){return this._userId}set userId(e){const t=this._userId;this._userId=e,t!==this._userId&&(this.growingIO.minipInstance.setStorage(this.userIdStorageName,this._userId),this.growingIO.emitter.emit("USERID_UPDATE",{newUserId:e,oldUserId:t})),e&&(this.gioId=e)}get userKey(){return this._userKey}set userKey(e){const t=this._userKey;this._userKey=e,t!==this._userKey&&(this.growingIO.minipInstance.setStorage(this.userKeyStorageName,this._userKey),this.growingIO.emitter.emit("USERKEY_UPDATE",{newUserKey:e,oldUserKey:t}))}get gioId(){return this._gioId}set gioId(e){const t=this._gioId;this._gioId=e,t!==this._gioId&&(this.growingIO.minipInstance.setStorage(this.gioIdStorageName,this._gioId),this.growingIO.emitter.emit("GIOID_UPDATE",{newGioId:e,oldGioId:t}))}}const De=new class{constructor(){var t;this.registerPlugins=e=>{this.plugins.pluginItems=[...this.plugins.pluginItems,...e],this.plugins.installAll(e)},this.init=e=>{var t;return C("Gio小程序SDK 初始化中...","info"),this.dataStore.initOptions(e),null===(t=this.emitter)||void 0===t||t.emit("OPTION_INITIALIZED",this),this.gioSDKInitialized=!0,this.vdsConfig.subpackage||(R().__gio__=()=>this),this.uploader=new qe(this),this.vdsConfig.idMapping||(this.userStore.userKey=""),this.emitter.emit("SDK_INITIALIZED",this),C("Gio小程序SDK 初始化完成!","success"),this.vdsConfig.forceLogin&&C("forceLogin已开启,请调用 identify 方法设置 openId 以继续上报!","info"),this.inPlugin&&"tbp"!==this.minipInstance.platform&&this.dataStore.sendVisit(),!0},this.getOption=e=>this.dataStore.getOption(e),this.setOption=(e,t)=>{if(I(X).includes(e)){const i=this.dataStore.setOption(e,t);return i&&X[e]&&C(`已${t?"开启":"关闭"}${X[e]}`,"info"),i}return C(`不存在可修改的配置项:${e},请检查后重试!`,"warn"),!1},this.getDeviceId=()=>this.userStore.uid,this.identify=e=>{if(this.vdsConfig.forceLogin){if(!J(e))return void k("identify");const t=h(e).slice(0,1e3);this.userStore.uid=t,this.uploader.hoardingQueue.forEach(((e,i)=>this.uploader.hoardingQueue[i].deviceId=t)),this.dataStore.setOption("forceLogin",!1),this.uploader.initiateRequest(!0)}else k("identify",!1,"forceLogin未开启")},this.setUserId=(t,i)=>{if(J(t)){const n=this.userStore.gioId;if(t=h(t).slice(0,1e3),i=h(i).slice(0,1e3),this.userStore.userId=t,this.vdsConfig.idMapping&&(this.userStore.userKey=e(i)?"":i),n&&n!==t){this.userStore.sessionId="";const{path:e,query:t,settedTitle:i}=this.dataStore.eventHooks.currentPage;this.dataStore.eventHooks.currentPage.title=i[e]||this.minipInstance.getPageTitle(this.minipInstance.getCurrentPage()),this.dataStore.sendVisit({path:e,query:t})}}else k("setUserId")},this.clearUserId=()=>{this.userStore.userId=void 0,this.userStore.userKey=void 0},this.setUserAttributes=e=>{var t,i;!P(e)&&s(e)?null===(i=null===(t=this.plugins)||void 0===t?void 0:t.gioCustomTracking)||void 0===i||i.buildUserAttributesEvent(e):k("setUserAttributes")},this.track=(e,t)=>{var i,n;((null===(n=null===(i=this.plugins)||void 0===i?void 0:i.gioCustomTracking)||void 0===n?void 0:n.buildCustomEvent)||function(){})(e,Object.assign(Object.assign({},this.dataStore.generalProps),s(t)&&!P(t)?t:{}))},this.trackTimerStart=e=>!!this.vdsConfig.dataCollect&&j(e,(()=>{const t=x();return this.dataStore.trackTimers[t]={eventName:e,leng:0,start:+Date.now()},t})),this.trackTimerPause=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return t.start&&(t.leng=t.leng+(+Date.now()-t.start)),t.start=0,!0}return!1},this.trackTimerResume=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return 0===t.start&&(t.start=+Date.now()),!0}return!1},this.trackTimerEnd=(e,t)=>{if(this.vdsConfig.dataCollect){const i=864e5;if(e&&this.dataStore.trackTimers[e]){const n=this.dataStore.trackTimers[e];if(0!==n.start){const e=+Date.now()-n.start;n.leng=e>0?n.leng+e:0}const{eventContextBuilder:s,eventInterceptor:o}=this.dataStore;return o(Object.assign(Object.assign({eventType:"CUSTOM",eventName:n.eventName,attributes:K(Object.assign(Object.assign({},t),{event_duration:n.leng>i?0:n.leng/1e3}))},s()),{customEventType:0})),this.removeTimer(e),!0}return C("未查找到对应的计时器,请检查!","error"),!1}return!1},this.removeTimer=e=>!(!e||!this.dataStore.trackTimers[e]||(delete this.dataStore.trackTimers[e],0)),this.clearTrackTimer=()=>{this.dataStore.trackTimers={}},this.setGeneralProps=e=>{s(e)&&!P(e)?(this.dataStore.generalProps=Object.assign(Object.assign({},this.dataStore.generalProps),e),I(this.dataStore.generalProps).forEach((e=>{[void 0,null].includes(this.dataStore.generalProps[e])&&(this.dataStore.generalProps[e]="")}))):k("setGeneralProps")},this.clearGeneralProps=e=>{r(e)&&!P(e)?e.forEach((e=>{w(this.dataStore.generalProps,e)})):this.dataStore.generalProps={}},this.setPageAttributes=e=>{const{currentPage:t}=this.dataStore.eventHooks,i=this.minipInstance.getCurrentPath();["onLoad","attached"].includes(t.currentLifecycle)&&(t.pageProps[i]=K(e))},this.updateImpression=()=>{C("当前未集成半自动浏览插件,请集成插件后再调用 updateImpression!","warn")},this.setLocation=(e,t)=>{const i={latitude:e,longitude:t},n=this.dataStore.locationData,s=e=>e>=-180&&180>=e;s(e)&&s(t)&&(n.latitude!==e||n.longitude!==t)&&(this.dataStore.locationData=i)},this.getGioInfo=()=>{const{uid:e,userId:t,userKey:i,sessionId:n}=this.userStore,{projectId:s,appId:o,dataSourceId:r,dataCollect:a,idMapping:l,extraParams:u,ignoreFields:g}=this.vdsConfig,c={gioappid:o,giocs1:t||"",gioplatform:this.platformConfig.platform,gioprojectid:s,gios:n,giou:e};return c.giodatacollect=a,c.giodatasourceid=r,l&&(c.giouserkey=i),P(u)||u.forEach((e=>{g.includes(e)||(c["gio"+e]=this.dataStore.lastVisitEvent[e])})),Ae.stringify(c)},this.utils=Object.assign(Object.assign(Object.assign({},_),z),{qs:Ae}),this.emitter={all:t=t||new Map,on:function(e,i){var n=t.get(e);n?n.push(i):t.set(e,[i])},off:function(e,i){var n=t.get(e);n&&(i?n.splice(n.indexOf(i)>>>0,1):t.set(e,[]))},emit:function(e,i){var n=t.get(e);n&&n.slice().map((function(e){e(i)})),(n=t.get("*"))&&n.slice().map((function(t){t(e,i)}))}},this.gioPlatform=B(),this.gioFramework="uniapp",this.sdkVersion="4.0.0";try{"quickapp"===this.gioPlatform||o(getApp)&&o(App)?this.inPlugin=!1:this.inPlugin=!0}catch(e){this.inPlugin=!0}this.inPlugin&&C("未检测到小程序实例,自动切换为插件模式!","info"),this.platformConfig=ye,this.minipInstance=new be(this),this.dataStore=new ue(this),this.userStore=new $e(this),this.plugins=new Ee(this),this.plugins.innerPluginInit()}},He=function(){const e=arguments[0];if(t(e)&&Z.includes(e)&&De[e]){const n=u(Array.from(arguments));if("init"===e){const e=!(i=De).vdsConfig&&!i.gioSDKInitialized||(C("SDK重复初始化,请检查是否重复加载SDK或接入其他平台SDK导致冲突!","warn"),!1),o=(e=>!!g(e)||(C('SDK初始化失败,请使用 gdp("init", "您的GrowingIO项目 accountId", "您项目的 dataSourceId", "你的应用 AppId", options); 进行初始化!',"error"),!1))(n),r=(e=>{const t=e[0];let i=l(e);return J(t)?(s(i)&&i||(i={}),{projectId:t,userOptions:i}):(C("SDK初始化失败,accountId 参数不合法!","error"),!1)})(n),a=(e=>{const i=e[1];let n=e[2];const s=l(e);return i&&t(i)?J(n)?{dataSourceId:i,appId:n,options:s}:(C("SDK初始化失败,appId 参数不合法!","error"),!1):(C("SDK初始化失败,dataSourceId 参数不合法!","error"),!1)})(n);if(e&&o&&r&&a){const{projectId:e}=r,{dataSourceId:t,appId:i,options:n}=a;return De.init(Object.assign(Object.assign({},n),{projectId:e,dataSourceId:t,appId:i}))}}else if("registerPlugins"===e)De.registerPlugins(n[0]);else{if(De.gioSDKInitialized&&De.vdsConfig)return De[e](...n);C("SDK未初始化!","error")}}else ee.includes(e)?C(`方法 ${h(e)} 已被弃用!`,"warn"):C(`不存在名为 ${h(e)} 的方法调用!`,"error");var i};V().gdp=He,V().gioSDKVersion=De.sdkVersion;const Ue=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingApp)&&void 0!==e?e:App})),Fe=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingPage)&&void 0!==e?e:Page})),Be=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingComponent)&&void 0!==e?e:Component})),Le=E((()=>{var e;return null!==(e=De.dataStore.eventHooks.growingBehavior)&&void 0!==e?e:Behavior}));export default He;export{Ue as GioApp,Le as GioBehavior,Be as GioComponent,Fe as GioPage};
package/dist/wechat.js ADDED
@@ -0,0 +1 @@
1
+ const e=e=>["undefined","null"].includes(T(e)),t=e=>"string"===T(e),i=e=>"number"===T(e),n=e=>"boolean"===T(e),s=t=>"[object Object]"==={}.toString.call(t)&&!e(t),r=e=>["function","asyncfunction"].includes(T(e)),o=e=>Array.isArray(e)&&"array"===T(e),a=e=>{try{return Array.from(e)[0]}catch(e){return}},l=e=>{try{const t=Array.from(e);return t[t.length-1]}catch(e){return}},u=(e,t=1)=>o(e)&&i(t)?e.slice(t>0?t:1,e.length):e,g=e=>{if(o(e)){let t=0;const i=[];for(const n of e)n&&!P(n)&&(i[t++]=n);return i}return e},h=(e,t)=>{if(o(e)){const i=e.findIndex(t);return 0>i?void 0:e[i]}},c=t=>e(t)?"":""+t,d=(e,t)=>"string"===T(e)?e.split(t):e,p=e=>{if(t(e)){const t=d(e,"");return`${a(t).toLowerCase()}${u(t).join("")}`}return e},v=(e,t)=>e.slice(0,t.length)===t,m={}.hasOwnProperty,f=(t,i)=>!e(t)&&m.call(t,i),I=e=>s(e)?Object.keys(e):[],S=(e,t)=>{I(e).forEach((i=>t(e[i],i)))},y=(e,t)=>{const i=I(e);return!(!s(e)||!s(t)||i.length!==I(t).length||i.map(((i,n)=>s(e[i])?y(e[i],t[i]):e[i]===t[i])).includes(!1))},w=(e,t,i)=>{let n=e;return s(e)?(t.split(".").forEach((e=>{n=n?n[e]:i})),n):i},O=(e,t)=>{if(!s(e))return!1;try{if("string"===T(t))return delete e[t];if("array"===T(t))return t.map((t=>delete e[t]));"object"===T(t)&&t.constructor===RegExp&&I(e).forEach((i=>{t.test(i)&&O(e,i)}))}catch(e){return!1}},b=(e,t=250,i,n)=>{let s,r=0;return"boolean"!==T(i)&&(n=e,e=i,i=void 0),function(...o){let a=this,l=Date.now()-r;function u(){r=Date.now(),e.apply(a,o)}n&&!s&&u(),s&&clearTimeout(s),void 0===n&&l>t?u():!0!==i&&(s=setTimeout(n?function(){s=void 0}:u,void 0===n?t-l:t))}},P=e=>o(e)?0===e.length:s(e)?0===I(e).length:!e,T=e=>({}.toString.call(e).slice(8,-1).toLowerCase());var C=Object.freeze({__proto__:null,isNil:e,isString:t,isNaN:e=>"NaN"===c(Number(e)),isNumber:i,isBoolean:n,isObject:s,isRegExp:e=>"[object RegExp]"==={}.toString.call(e),isFunction:r,isArray:o,isDate:e=>"date"===T(e),fixed:(e,n)=>i(e)?Number(e.toFixed(i(n)?n:2)):t(e)&&"NaN"!==c(Number(e))?Number(Number(e).toFixed(i(n)?n:2)):e,head:a,last:l,drop:u,dropWhile:(e,t)=>o(e)?e.filter((e=>!t(e))):e,compact:g,find:h,isEqualArray:(e,t)=>!(!o(e)||!o(t)||e.length!==t.length)&&e.every(((e,i)=>e===t[i])),toString:c,split:d,lowerFirst:p,upperFirst:e=>{if(t(e)){const t=d(e,"");return`${a(t).toUpperCase()}${u(t).join("")}`}return e},startsWith:v,endsWith:(e,t)=>{const{length:i}=e;let n=i;n>i&&(n=i);const s=n;return n-=t.length,n>=0&&e.slice(n,s)===t},hasOwnProperty:m,has:f,keys:I,forEach:S,isEqual:y,get:w,unset:O,throttle:b,isEmpty:P,typeOf:T,formatDate:e=>{function t(e){return 10>e?"0"+e:e}return e.getFullYear()+"-"+t(e.getMonth()+1)+"-"+t(e.getDate())+" "+t(e.getHours())+":"+t(e.getMinutes())+":"+t(e.getSeconds())+"."+t(e.getMilliseconds())}});const _=(e,t)=>{console.log("%c[GrowingIO]:"+e,{info:"color: #3B82F6;",error:"color: #EF4444",warn:"color: #F59E0B",success:"color: #10B981"}[t]||"")},E=(e,t=!0,i="参数不合法")=>_(`${t?"调用":"设置"} ${e} 失败,${i}!`,"warn"),k=e=>{try{return e()}catch(e){return}},A=e=>t(e)?e.trim().substring(0,100):e,N=(e,i)=>t(e)&&!P(e)&&e.match(/^[a-zA-Z_][0-9a-zA-Z_]{0,100}$/)?i():(_("事件名格式不正确,只能包含数字、字母和下划线,且不能以数字开头,字符总长度不能超过100!","error"),!1),q=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),x=e=>e.pixelRatio?Math.round(e.screenHeight*e.pixelRatio):e.screenHeight,j=e=>e.pixelRatio?Math.round(e.screenWidth*e.pixelRatio):e.screenWidth,D=(e,t)=>{if(e){const i=e.toLowerCase();return-1!==i.indexOf("android")?t+"-Android":-1!==i.indexOf("ios")?t+"-iOS":e}},H=e=>{if(t(e)){const t=e.indexOf("?");return-1!==t?[e.substring(0,t),e.substring(t+1)]:[e,""]}return["",""]},$=e=>t(e)?e.startsWith("/")?e:"/"+e:"",U=e=>k((()=>{switch(e){case"wx":return wx;case"my":case"tb":return my;case"swan":return swan;case"tt":return tt;case"qq":return qq;case"ks":return ks;case"jd":return jd;default:{let e;return e||(e=k((()=>swan))),e||(e=k((()=>my))),e||(e=k((()=>tt))),e||(e=k((()=>qq))),e||(e=k((()=>ks))),e||(e=k((()=>jd))),e||(e=k((()=>wx))),e}}})),L=e=>k((()=>{switch(e){case"wx":return __wxConfig;case"swan":return appConfig;case"tt":return __ttConfig;case"qq":return __qqConfig;case"ks":return __ksConfig;case"jd":return __jdConfig;default:return}})),B=()=>{let e;return!e&&k((()=>swan))&&(e="swan"),!e&&k((()=>tt))&&(e="tt"),!e&&k((()=>qq))&&(e="qq"),!e&&k((()=>my.tb))&&(e="tb"),!e&&k((()=>my))&&(e="my"),!e&&k((()=>ks))&&(e="ks"),!e&&k((()=>jd))&&(e="jd"),!e&&k((()=>wx))&&(e="wx"),e||h(I(global),(e=>c(e).toLowerCase().includes("quickapp")))&&(e="quickapp"),e},F=e=>I(e).filter((e=>e.indexOf("__sub")>-1&&e.indexOf("gio__")>-1)).sort(),R=()=>{let e=k((()=>getApp({allowDefault:!0})));return e||(e=K()),e},K=()=>{var e;return null!==(e=k((()=>$global)))&&void 0!==e?e:global},G=t=>{const i={};return s(t)&&S(t,((t,n)=>{const r=c(n).slice(0,100);s(t)?i[r]=G(t):o(t)?(i[r]=t.slice(0,100),i[r]=i[r].join("||").slice(0,1e3)):i[r]=e(t)?"":c(t).slice(0,1e3)})),i},M=(e,t)=>{const i=()=>t.map((t=>e.getStorageSync(t)));try{return e.minip.canIUse("batchGetStorageSync")?e.minip.batchGetStorageSync(t):i()}catch(e){return i()}},V=(e,t)=>{const i=()=>t.map((({key:t,value:i})=>e.setStorageSync(t,i)));try{return e.minip.canIUse("batchSetStorageSync")?e.minip.batchSetStorageSync(t):i()}catch(e){return i()}},Q=t=>I(t||{}).map((i=>i?`${i}=${e(t[i])?"":t[i]}`:"")).join("&"),W=e=>{(v(e,"?")||v(e,"&"))&&(e=e.slice(1,e.length));const t={};return e.split("&").forEach((e=>{const i=e.split("=");i[0]&&(t[i[0]]=i[1])})),t};var z=Object.freeze({__proto__:null,consoleText:_,callError:E,niceTry:k,niceCallback:(e,t)=>{if(r(e))try{e(t)}catch(e){_("回调执行失败!"+e,"error")}},limitString:A,eventNameValidate:N,guid:q,getScreenHeight:x,getScreenWidth:j,getOS:D,compareVersion:(e="",t="")=>{const i=e=>e.replace(/\s+/g,""),n=e=>e.replace(/[vV]/g,""),s=i(n(e)),r=i(n(t)),o=s.split("."),a=r.split(".");for(let e=0;3>e;e++){let t=Number(o[e]),i=Number(a[e]);if(t>i)return 1;if(i>t)return-1;if(!isNaN(t)&&isNaN(i))return 1;if(isNaN(t)&&!isNaN(i))return-1}return 0},getVueVersion:e=>{if(e){const t=Number.parseInt(a(d(e.version,".")),10);return Number.isNaN(t)?0:t}return 0},splitPath:H,normalPath:$,isTaro3:e=>{const{Current:t,createComponent:i}=e;return!(!e||!t||i)},getPlainMinip:U,getPlainConfig:L,getPlainPlatform:B,getSubKeys:F,getAppInst:R,getGlobal:K,limitObject:G,batchGetStorageSync:M,batchSetStorageSync:V,qsStringify:Q,qsParse:W,hashCode:e=>{let t=0;if(P(e)||"boolean"==typeof e)return t;let i=0;for(;i<e.length;)t=(t<<5)-t+e.charCodeAt(i),t&=t,i++;return t}});const J=e=>t(e)&&e.length>0||i(e)&&e>0,Y={autotrack:{type:"boolean",default:!0},compress:{type:"boolean",default:!0},dataCollect:{type:"boolean",default:!0},debug:{type:"boolean",default:!1},idMapping:{type:"boolean",default:!1},enableIdMapping:{type:"boolean",default:!1},extraParams:{type:"array",default:[]},followShare:{type:"boolean",default:!0},forceLogin:{type:"boolean",default:!1},ignoreFields:{type:"array",default:[]},pluginMode:{type:"boolean",default:!1},originalSource:{type:"boolean",default:!0},keepAlive:{type:"number",default:3e5},performance:{type:"object",default:{monitor:!0,exception:!0}},serverUrl:{type:"string",default:"https://napi.growingio.com"},subpackage:{type:"boolean",default:!1},taro:{type:["object","module"],default:!1},taroVue:{type:["object","function"],default:!1},tbConfig:{type:"object",default:{cloud:void 0,cloudFuncSend:!1,cloudFuncName:"httpTunnel",cloudFuncHandler:"main",cloudAppId:void 0,path:void 0}},uniVue:{type:["object","function"],default:!1},uploadInterval:{type:"number",default:1e3},version:{type:"string",default:"1.0.0"}},Z=["clearGeneralProps","clearTrackTimer","clearUserId","getDeviceId","getGioInfo","getOption","identify","init","registerPlugins","removeTimer","setGeneralProps","setLocation","setOption","setPageAttributes","setUserAttributes","setUserId","track","trackTimerEnd","trackTimerPause","trackTimerResume","trackTimerStart","updateImpression","getABTest"],X={autotrack:"无埋点",dataCollect:"数据采集",debug:"调试模式",serverUrl:"数据上报服务地址"},ee=["enableDebug","setAutotrack","setDataCollect","setTrackerHost","setTrackerScheme","setConfig","collectImp","setPlatformProfile","getLocation"],te=["deviceBrand","deviceModel","deviceType","networkState","screenHeight","screenWidth","operatingSystem"],ie=[...te,"appChannel","language","platformVersion"];class ne{constructor(e){this.growingIO=e,this.main=e=>{var t,i,n,s,r;const{sdkVersion:o,vdsConfig:a,platformConfig:l,minipInstance:u,userStore:g,dataStore:{scene:h,eventHooks:c,locationData:d,lastVisitEvent:p}}=this.growingIO,{systemInfo:v={},network:m={}}=u,{brand:f,model:I,platform:S,language:y,version:w}=v,b={appChannel:"scn:"+(h||"NA"),appVersion:a.version,dataSourceId:a.dataSourceId,deviceBrand:f,deviceId:g.uid,deviceModel:I,deviceType:D(S,l.name),domain:a.appId,language:y,latitude:null==d?void 0:d.latitude,longitude:null==d?void 0:d.longitude,networkState:(null==m?void 0:m.networkType)||(null==m?void 0:m.type)||(null==m?void 0:m.subtype),operatingSystem:D(S,l.name),path:(null===(t=c.currentPage)||void 0===t?void 0:t.path)?null===(i=c.currentPage)||void 0===i?void 0:i.path:p.path,platform:l.platform,platformVersion:l.name+(w?" "+w:""),query:(null===(n=c.currentPage)||void 0===n?void 0:n.path)?null===(s=c.currentPage)||void 0===s?void 0:s.query:p.query,screenHeight:x(v),screenWidth:j(v),sdkVersion:o,sessionId:g.sessionId,title:(null===(r=c.currentPage)||void 0===r?void 0:r.title)||u.getPageTitle(u.getCurrentPage()),timestamp:Date.now(),timezoneOffset:(new Date).getTimezoneOffset(),userId:g.userId};return a.idMapping&&(b.userKey=g.userKey),P(a.ignoreFields)||a.ignoreFields.forEach((e=>{O(b,e)})),P(e)?b:Object.assign(Object.assign({},b),e)}}}function se(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))}class re{constructor(t){this.growingIO=t,this.main=(e,t)=>{var i,n;const s=Date.now(),{emitter:r,userStore:o,vdsConfig:a,platformConfig:l,uploader:u,dataStore:g,dataStore:{shareOut:h,keepAlive:c,lastCloseTime:d,eventHooks:p,saveStorageInfo:v}}=this.growingIO;r.emit("minipLifecycle",{event:"App "+e,timestamp:s,params:null!==(i=t[0])&&void 0!==i?i:{}}),a.debug&&console.log("App:",e,s);const m=l.listeners.app;switch(r.emit("onComposeBefore",{event:"App "+e,params:null!==(n=t[0])&&void 0!==n?n:{}}),e){case m.appCreate:case m.appShow:{const{path:e,query:i}=this.enterParamsParse(t[0]);!h&&a.originalSource&&g.setOriginalSource({path:e,query:i}),d?(Date.now()-d>c||g.lastScene&&g.scene!==g.lastScene)&&(o.sessionId="",p.currentPage.time=void 0,this.buildVisitEvent({path:e,query:i})):(this.growingIO.dataStore.lastVisitEvent={path:e,query:i},this.buildVisitEvent({path:e,query:i}));break}case m.appClose:g.lastScene=g.scene,g.lastCloseTime=Date.now(),v(),o.saveUserInfo(),this.buildCloseEvent(),a.forceLogin||u.initiateRequest(!0)}},this.enterParamsParse=e=>{const{gioPlatform:t,minipInstance:i,dataStore:n}=this.growingIO;let r="",o="";const a=(e,t={})=>{r=e,o=I(t).map((e=>`${e}=${t[e]}`)).join("&")};if("quickapp"!==t&&i.minip.canIUse("getEnterOptionsSync")){const{path:t,query:r,scene:l,referrerInfo:u}=i.minip.getEnterOptionsSync()||{},g=e.query||r;if(a(e.path||t,g),n.scene=e.scene||l,!P(u)&&s(null==u?void 0:u.extraData)){let e=[];S(u.extraData,((t,i)=>{!f(g,i)&&["string","number","boolean"].includes(T(t))&&e.push(`${i}=${t}`)}));const t=e.join("&");o=o&&t?`${o}&${t}`:o||t}}else{const{path:t,query:i}=e;a(t,i),this.parseScene(e)}return{path:r,query:o}},this.parseScene=e=>{var t;const{minipInstance:i,gioPlatform:n,dataStore:s}=this.growingIO;let r;if("quickapp"===n){const{extra:e,type:t}=i.getAppSource();r=(null==e?void 0:e.scene)||t}else P(e)||((null===(t=null==e?void 0:e.query)||void 0===t?void 0:t.wxShoppingListScene)?r=e.query.wxShoppingListScene:(null==e?void 0:e.scene)?r=e.scene:s.scene="NA");s.scene=r},this.buildVisitEvent=t=>{const{dataStore:i,vdsConfig:n,minipInstance:s}=this.growingIO,{originalSourceName:r,getOriginalSource:o,eventContextBuilder:a,eventInterceptor:l}=i,u=o(),g=(null==t?void 0:t.query)||"";let h=Object.assign({eventType:"VISIT"},a({path:(null==t?void 0:t.path)||"",query:"string"===T(g)?g:Q(g)}));n.originalSource&&!e(u)&&(h=Object.assign(Object.assign({},h),u),n.dataCollect&&s.removeStorageSync(r)),l(h)},this.buildCloseEvent=()=>{const{dataStore:{eventContextBuilder:e,eventInterceptor:t}}=this.growingIO;t(Object.assign({eventType:"APP_CLOSED"},e()))}}}class oe{constructor(e){this.growingIO=e,this.parsePage=(e,t)=>{var i;const n=e.route||e.uri||e.__route__||(null===(i=null==e?void 0:e.$page)||void 0===i?void 0:i.fullPath)||"";P(t)?this.query=void 0:this.query=this.getQuery(t),this.path!==n&&(this.time=Date.now()),this.path=n,this.title=this.settedTitle[this.path]||this.growingIO.minipInstance.getPageTitle(e||this.growingIO.minipInstance.getCurrentPage())},this.getQuery=e=>{const t=Object.assign({},e);return O(t,"wxShoppingListScene"),Q(t)},this.getReferralPage=()=>{const{minipInstance:e,dataStore:{lastPageEvent:t,scene:i}}=this.growingIO;return(null==t?void 0:t.path)||(i?`scn:${e.scnPrefix}${i}`:null)},this.saveShareId=e=>{(null==e?void 0:e.gioShareId)&&(this.queryShareId=e.gioShareId)},this.updateShareResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=$(t+(i?"?"+i:"")),e.query=i,e},this.updateAppMessageResult=this.updateShareResult,this.updateTimelineResult=this.updateShareResult,this.updateAddFavoritesResult=e=>{const[t,i]=this.buildShareQuery(e);return e.path=$(t+(i?"?"+i:"")),e.query=i,e},this.query=void 0,this.settedTitle={},this.pageProps={}}buildShareQuery(e){var t,i,n;const s=H(null!==(t=e.path)&&void 0!==t?t:"");let r=this.path,o={},u=f(e,"path");return u&&(r=a(s),o=W(l(s))||{}),P(o)&&(o=W(null!==(i=e.query)&&void 0!==i?i:"")||{}),!u&&P(o)&&(o=W(null!==(n=this.query)&&void 0!==n?n:"")||{}),[r,Q(o)]}}class ae{constructor(e){this.growingIO=e,this.main=(e,t,i)=>{var n,s;const o=Date.now(),{emitter:a,minipInstance:l,plugins:u,vdsConfig:g,platformConfig:h,dataStore:{shareOut:c,eventHooks:d,toggleShareOut:p,buildAppMessageEvent:v,buildTimelineEvent:m,buildAddFavorites:f},inPlugin:I}=this.growingIO,{currentPage:S}=d;if(this.prevEvent[t]&&50>Date.now()-Number(this.prevEvent[t]))return;e||(e=l.getCurrentPage()),e.route||(e.route=l.getCurrentPath(e));const y=e.route||e.uri||e.__route__||(null===(n=null==e?void 0:e.$page)||void 0===n?void 0:n.fullPath)||"";a.emit("minipLifecycle",{event:"Page "+t,timestamp:o,params:{page:e,args:i[0]}}),g.debug&&console.log("Page:",y,"#",t,o),this.prevEvent[t]=Date.now();const b=h.listeners.page;switch(a.emit("onComposeBefore",{page:e,event:"Page "+t,params:{page:e,args:i[0]}}),S.lastLifecycle=S.currentLifecycle,S.currentLifecycle=t,t){case b.pageLoad:this.argQuery[y]=w(e,"options")||w(e,"__displayReporter.query")||w(e,"$page.query")||w(e,"$wx.__displayReporter.query")||i[0]||{},O(this.argQuery[y],"$taroTimestamp"),S.parsePage(e,this.argQuery[y]);break;case b.pageShow:I?(S.parsePage(e,this.argQuery[y]),S.path||(S.path=`/插件${g.appId}}`,S.title=`/插件${g.appId}}`),this.buildPageEvent()):c&&d.currentPage.time||(S.parsePage(e,this.argQuery[y]),d.currentPage.time=Date.now(),this.buildPageEvent()),p(!1),S.saveShareId(this.argQuery[y]);break;case b.pageHide:case b.pageUnload:break;case b.shareApp:p(!0),g.followShare&&v(i);break;case b.shareTime:g.followShare&&m(i);break;case b.addFavorites:f(i);break;case b.tabTap:{const e=null===(s=null==u?void 0:u.gioEventAutoTracking)||void 0===s?void 0:s.buildTabClickEvent;g.autotrack&&e&&r(e)&&e(i[0]);break}}t===b.pageUnload&&(S.pageProps[y]=void 0)},this.buildPageEvent=e=>{var t;const{dataStore:{eventContextBuilder:i,eventInterceptor:n,eventHooks:s}}=this.growingIO,{currentPage:r}=s,o=Object.assign(Object.assign({eventType:"PAGE",referralPage:r.getReferralPage()},i()),{timestamp:r.time});P(r.pageProps[o.path])||(o.attributes=r.pageProps[o.path]),!P(e)&&e.path&&(o.path=e.path,o.query=e.query,o.title=null!==(t=e.title)&&void 0!==t?t:o.title),n(o)},this.prevEvent={},this.argQuery={}}}class le{constructor(e){var t,i;this.growingIO=e,this.isNormalFc=(e,t)=>r(t)&&"constructor"!==e,this.objectTraverse=(e,t)=>{Object.getOwnPropertyNames(e).forEach((i=>t(i,e))),f(e,"methods")&&Object.getOwnPropertyNames(e.methods).forEach((i=>{e[i]||t(i,e.methods)})),f(e,"lifetimes")&&Object.getOwnPropertyNames(e.lifetimes).forEach((i=>{e[i]||t(i,e.lifetimes)})),f(e,"pageLifetimes")&&Object.getOwnPropertyNames(e.pageLifetimes).forEach((i=>{e[i]||t(i,e.pageLifetimes)}))},this.supLifeFcs=(e,t)=>{o(this[t+"Handlers"])&&this[t+"Handlers"].forEach((t=>{r(e[t])||["onShareAppMessage","onShareTimeline"].includes(t)||(e[t]=()=>{})}))},this.lifeFcEffects=(e,t,i)=>{const n=this;return["onShareTimeline","onAddToFavorites"].includes(e)?function(...s){let r=t.apply(this,s);"onShareTimeline"===e&&n.growingIO.vdsConfig.followShare&&(r=n.currentPage.updateTimelineResult(null!=r?r:{})),"onAddToFavorites"===e&&(r=n.currentPage.updateAddFavoritesResult(null!=r?r:{}));const o=[].slice.call(s);return r&&o.push(r),n[`def${i}Cbs`][e].apply(this,o),r}:function(...s){var r;return se(this,void 0,void 0,(function*(){let o;try{if("onShareAppMessage"===e){if(o=null!==(r=yield t.apply(this,s))&&void 0!==r?r:{},"promise"===T(o.promise)){const e=function(){return se(this,void 0,void 0,(function*(){let e=o;return new Promise((t=>{let i=setTimeout((()=>{t(Object.assign({},e)),clearTimeout(i),i=void 0}),3e3);o.promise.then((n=>{e=n,t(Object.assign({},e)),clearTimeout(i),i=void 0}))}))}))};o=Object.assign(Object.assign({},o),yield e()),O(o,"promise")}n.growingIO.vdsConfig.followShare&&(o=n.currentPage.updateAppMessageResult(null!=o?o:{}))}const a=[].slice.call(s);o&&a.push(o),n[`def${i}Cbs`][e].apply(this,a)}catch(e){_(e,"error")}return"onShareAppMessage"!==e&&(o=t.apply(this,s)),n.growingIO.emitter.emit("minipLifecycle",{event:`${i} ${e}End`,timestamp:Date.now(),params:{instance:this,arguments:Array.from(s)}}),o}))}},this.customFcEffects=(e,t)=>{const i=this;return function(...n){var s,o;let a;if(i.growingIO.vdsConfig.autotrack&&i.growingIO.plugins.gioEventAutoTracking)try{let t=n[0]||{};f(t,"type")&&((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))||(t=n[n.length-1]),((null==t?void 0:t.currentTarget)||(null==t?void 0:t.target))&&i.actionEventTypes.includes(t.type)&&(r(i.actionEffects)||(i.actionEffects=(null===(o=null===(s=i.growingIO.plugins)||void 0===s?void 0:s.gioEventAutoTracking)||void 0===o?void 0:o.main)||function(){}),null==i||i.actionEffects(t,e))}catch(e){_(e,"error")}return a=t.apply(this,n),a}},this.appApplyProxy=(e,t)=>this.appHandlers.includes(e)?this.lifeFcEffects(e,t,"App"):this.customFcEffects(e,t),this.pageApplyProxy=(e,t)=>this.pageHandlers.includes(e)?this.lifeFcEffects(e,t,"Page"):this.customFcEffects(e,t),this.appOverriding=e=>(this.setAppEffectCbs(),this.supLifeFcs(e,"app"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.appApplyProxy(e,t[e]))})),e),this.pageOverriding=e=>(this.setPageEffectCbs(),this.supLifeFcs(e,"page"),this.objectTraverse(e,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.componentOverriding=e=>(this.setPageEffectCbs(),e.methods||(e.methods={}),this.supLifeFcs(this.growingIO.inPlugin?e:e.methods,"page"),this.objectTraverse(this.growingIO.inPlugin?e:e.methods,((e,t)=>{this.isNormalFc(e,t[e])&&(t[e]=this.pageApplyProxy(e,t[e]))})),e),this.setAppEffectCbs=()=>{const e=this;this.appHandlers.forEach((t=>{this.defAppCbs[t]=function(...i){e.appEffects.main(t,i)}}))},this.setPageEffectCbs=()=>{const e=this;this.pageHandlers.forEach((t=>{this.defPageCbs[t]=function(...i){e.pageEffects.main(this,t,i)}}))},this.growingApp=e=>this.originalApp(this.appOverriding(e)),this.growingPage=e=>this.originalPage(this.pageOverriding(e)),this.growingComponent=e=>this.originalComponent(this.componentOverriding(e)),this.growingBehavior=e=>this.originalBehavior(this.componentOverriding(e)),this.nativeGrowing=(e=["App","Page","Component","Behavior"])=>{const t=this,{platformConfig:i}=this.growingIO,n=i.hooks;if(this.setAppEffectCbs(),this.setPageEffectCbs(),e.includes("App"))try{n.App&&!this.appHooked&&(App=function(...e){return t.growingApp(e[0])},this.appHooked=!0)}catch(e){}if(e.includes("Page"))try{n.Page&&!this.pageHooked&&(Page=function(...e){return t.growingPage(e[0])},this.pageHooked=!0)}catch(e){}if(e.includes("Component"))try{n.Component&&!this.componentHooked&&(Component=function(...e){return t.growingComponent(e[0])},this.componentHooked=!0)}catch(e){}if(e.includes("Behavior"))try{n.Behavior&&!this.behaviorHooked&&(Behavior=function(...e){return t.growingBehavior(e[0])},this.behaviorHooked=!0)}catch(e){}},this.initEventHooks=()=>{const e=this,{platformConfig:t,gioPlatform:i}=this.growingIO;t.canHook?(this.nativeGrowing(),K().GioApp=k((()=>null!==App&&void 0!==App?App:window.GioApp)),K().GioPage=k((()=>null!==Page&&void 0!==Page?Page:window.GioPage)),K().GioComponent=k((()=>null!==Component&&void 0!==Component?Component:window.GioComponent)),K().GioBehavior=k((()=>Behavior))):"quickapp"===i&&(window.GioApp=function(...t){return e.appOverriding(t[0])},window.GioPage=function(...t){return e.pageOverriding(t[0])},window.GioComponent=function(...t){return e.pageOverriding(t[0])})};const n=null===(t=this.growingIO)||void 0===t?void 0:t.platformConfig;this.defAppCbs={},this.defPageCbs={},this.appHandlers=n.appHandlers,this.pageHandlers=n.pageHandlers,this.actionEventTypes=n.actionEventTypes,this.originalApp=n.originalApp,this.originalPage=n.originalPage,this.originalComponent=n.originalComponent,this.originalBehavior=null!==(i=n.originalBehavior)&&void 0!==i?i:function(){},this.appEffects=new re(this.growingIO),this.pageEffects=new ae(this.growingIO),this.currentPage=new oe(this.growingIO)}}class ue{constructor(i){var s,l;this.growingIO=i,this.ALLOW_SETTING_KEYS=I(Y),this.gsidStorageName="_growing_gsid_",this.originalSourceName="gdp_original_source",this.initStorageInfo=()=>{const{minipInstance:e}=this.growingIO,t=R(),i=t.gio_gsid?t.gio_gsid:Number.parseInt(e.getStorageSync(this.gsidStorageName),10);this._gsid=Number.isNaN(i)||i>=1e9||1>i?1:i,this._stid=this._gsid,i!==this._gsid&&e.setStorageSync(this.gsidStorageName,this._gsid)},this.saveStorageInfo=()=>{const{minipInstance:e}=this.growingIO;this._stid=this._gsid,V(e,[{key:this.gsidStorageName,value:this._gsid}])},this.setOriginalSource=({path:t,query:i})=>{const{minipInstance:n}=this.growingIO;if(e(this.getOriginalSource())){const e={path:t,query:i,title:""};n.setStorageSync(this.originalSourceName,JSON.stringify(e))}},this.getOriginalSource=()=>{const{minipInstance:e}=this.growingIO;return k((()=>JSON.parse(e.getStorageSync(this.originalSourceName))))},this.initOptions=e=>{var t,i,n,s,r,a,l,u;const{projectId:g,dataSourceId:h,appId:c}=e,d={};this.ALLOW_SETTING_KEYS.forEach((t=>{const i=Y[t].type;(o(i)?i.includes(T(e[t])):T(e[t])===Y[t].type)?"ignoreFields"===t?d.ignoreFields=e.ignoreFields.filter((e=>te.includes(e))):"extraParams"===t?d.extraParams=e.extraParams.filter((e=>ie.includes(e))):d[t]=e[t]:d[t]=Y[t].default})),d.uploadInterval=Math.round(d.uploadInterval),(Number.isNaN(d.uploadInterval)||0>d.uploadInterval||d.uploadInterval>2e3)&&(d.uploadInterval=1e3),d.enableIdMapping&&!d.idMapping&&(d.idMapping=!0),d.pluginMode&&(this.growingIO.inPlugin=!0),this.growingIO.vdsConfig=Object.assign(Object.assign({},d),{projectId:g,dataSourceId:h,appId:c,performance:{monitor:null===(i=null===(t=d.performance)||void 0===t?void 0:t.monitor)||void 0===i||i,exception:null===(s=null===(n=d.performance)||void 0===n?void 0:n.exception)||void 0===s||s,network:null!==(a=null===(r=d.performance)||void 0===r?void 0:r.network)&&void 0!==a&&a}}),this.keepAlive=d.keepAlive,d.dataCollect||_("已关闭数据采集","info"),d.autotrack||_("已关闭无埋点","info");const{plugins:p,inPlugin:v,minipInstance:m}=this.growingIO,{uniVue:f,taro:I}=d;f||I||(this.growingIO.platformConfig.canHook=!0),v&&!["tbp","jdp"].includes(m.platform)||this.eventHooks.initEventHooks(),f&&(null===(l=null==p?void 0:p.gioUniAppAdapter)||void 0===l||l.main()),I&&(null===(u=null==p?void 0:p.gioTaroAdapter)||void 0===u||u.main())},this.setOption=(e,i)=>{var n;const{vdsConfig:s,userStore:r,uploader:o,emitter:a}=this.growingIO,l=t(e)&&this.ALLOW_SETTING_KEYS.includes(e),u=l&&typeof i===(null===(n=Y[e])||void 0===n?void 0:n.type);if(l&&u){if("dataCollect"===e&&!1===s.dataCollect&&!0===i){let e=setTimeout((()=>{r.sessionId="";const{path:t,query:i,settedTitle:n}=this.eventHooks.currentPage;this.eventHooks.currentPage.title=n[t]||this.growingIO.minipInstance.getPageTitle(this.growingIO.minipInstance.getCurrentPage()),this.sendVisit({path:t,query:i}),this.eventHooks.currentPage.time=Date.now(),this.sendPage({path:t,query:i}),clearTimeout(e),e=null}),0)}return s[e]=i,"serverUrl"===e&&(null==o||o.generateURL()),a.emit("OPTION_CHANGE",{optionName:e,optionValue:i}),!0}return E("setOption > "+e),!1},this.getOption=t=>{const{vdsConfig:i}=this.growingIO;return t&&f(i,c(t))?i[c(t)]:e(t)?Object.assign({},i):void E("getOption > "+t)},this.toggleShareOut=e=>{n(e)?this.shareOut=e:this.shareOut=!this.shareOut},this.sendVisit=e=>{this.eventHooks.appEffects.buildVisitEvent(null!=e?e:this.lastVisitEvent),this.eventHooks.currentPage.time=Date.now()},this.sendPage=e=>{this.eventHooks.pageEffects.buildPageEvent(e)},this.eventConverter=e=>{const{vdsConfig:t,dataStore:i,uploader:n}=this.growingIO;if(t.dataCollect){["LOGIN_USER_ATTRIBUTES","APP_CLOSED"].includes(e.eventType)||(e.eventSequenceId=i.gsid,this.growingIO.dataStore.gsid+=1);const t={};S(e,((e,i)=>{var n;if("element"===i){const i=null!==(n=a(e))&&void 0!==n?n:{};S(i,((e,i)=>{P(e)&&0!==e||(t[i]=e)}))}else P(e)&&0!==e||(t[i]=e)})),this.growingIO.emitter.emit("onComposeAfter",{composedEvent:t}),n.commitRequest(Object.assign(Object.assign({},t),{requestId:q()}))}},this.eventInterceptor=e=>{const{systemInfo:t,network:i}=this.growingIO.minipInstance;P(t)||P(i)?this.interceptEvents.push(e):P(this.interceptEvents)?this.eventConverter(e):([...this.interceptEvents,e].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.eventReleaseInspector=()=>{const{minipInstance:{systemInfo:e,network:t}}=this.growingIO;e&&t&&!P(this.interceptEvents)&&([...this.interceptEvents].forEach((e=>{const t=Object.assign(Object.assign({},e),this.eventContextBuilder({path:e.path,query:e.query,timestamp:e.timestamp}));this.eventConverter(t)})),this.interceptEvents=[])},this.buildAppMessageEvent=e=>{var t;const i=e[0];let n;2>e.length?1===e.length&&(n=i):n=e[1];const{dataStore:{eventContextBuilder:s,eventInterceptor:r}}=this.growingIO,o=((null==n?void 0:n.path)||"").split("?");r(Object.assign({eventType:"CUSTOM",eventName:"$mp_on_share",attributes:Object.assign({$from:i.from,$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==n?void 0:n.title,$share_path:a(o),$share_query:o[1]},null==n?void 0:n.attributes)},s()))},this.buildTimelineEvent=e=>{var t;const i=e[0];let n;2>e.length?1===e.length&&(n=i):n=e[1];const{dataStore:{eventContextBuilder:s,eventInterceptor:r}}=this.growingIO,o=((null==n?void 0:n.path)||"").split("?");r(Object.assign({eventType:"CUSTOM",eventName:"$mp_share_timeline",attributes:Object.assign({$target:null===(t=null==i?void 0:i.target)||void 0===t?void 0:t.id,$share_title:null==n?void 0:n.title,$share_path:a(o),$share_query:o[1]},null==n?void 0:n.attributes)},s()))},this.buildAddFavorites=e=>{const t=e[0];let i;2>e.length?1===e.length&&(i=t):i=e[1];const{dataStore:{eventContextBuilder:n,eventInterceptor:s}}=this.growingIO,r=((null==i?void 0:i.path)||"").split("?");s(Object.assign({eventType:"CUSTOM",eventName:"$mp_add_favorites",attributes:{$share_title:null==i?void 0:i.title,$share_path:a(r),$share_query:r[1]}},n()))},this.initStorageInfo(),this.eventContextBuilder=new ne(this.growingIO).main,this.shareOut=!1,this.lastVisitEvent={},this.lastPageEvent={},this.locationData={},this.generalProps={},this.trackTimers={},this.interceptEvents=[],this.eventHooks=new le(this.growingIO),this.growingIO.emitter.on("onComposeAfter",(({composedEvent:e})=>{"VISIT"!==e.eventType&&"vst"!==e.t||(this.lastVisitEvent=e),"PAGE"!==e.eventType&&"page"!==e.t||(this.lastPageEvent=e)})),r(null===(s=this.growingIO.minipInstance.minip)||void 0===s?void 0:s.onAppHide)&&this.growingIO.minipInstance.minip.onAppHide((()=>{S(this.trackTimers,(e=>{e.start&&(e.leng=e.leng+(+Date.now()-e.start))}))})),r(null===(l=this.growingIO.minipInstance.minip)||void 0===l?void 0:l.onAppShow)&&this.growingIO.minipInstance.minip.onAppShow((()=>{S(this.trackTimers,(e=>{e.start&&(e.start=+Date.now())}))})),this.growingIO.emitter.on("OPTION_CHANGE",(({optionName:e,optionValue:t})=>{"dataCollect"===e&&!1===t&&this.growingIO.clearTrackTimer()}))}get gsid(){const e=R(),t=F(e);return!P(t)&&e.gio_gsid?e.gio_gsid:this._gsid}set gsid(e){const t=Number.parseInt(e,10);this._gsid=Number.isNaN(t)||e>=1e9||1>e?1:e,R().gio_gsid=this._gsid,10>this._gsid-this._stid||this.saveStorageInfo()}get scene(){return this._scene}set scene(e){const t=this._scene;this._scene=e,t!==this._scene&&this.growingIO.emitter.emit("SCENE_UPDATE",{newScene:e,oldScene:t})}}const ge={scnPrefix:"",appHandlers:["onLaunch","onShow","onHide","onError","onPageNotFound","onUnhandledRejection","onThemeChange"],pageHandlers:["onLoad","onShow","onReady","onHide","onShareAppMessage","onTabItemTap","onUnload","onPullDownRefresh","onReachBottom","onResize"],actionEventTypes:["onclick","tap","onTap","longpress","longTap","blur","change","onChange","submit","confirm","getuserinfo","getphonenumber","contact","mouseup"],originalApp:k((()=>App)),originalPage:k((()=>Page)),originalComponent:k((()=>Component)),originalBehavior:k((()=>Behavior)),canHook:!0,hooks:{App:!0,Page:!0,Component:!0,Behavior:!0},listeners:{app:{appLaunch:"onLaunch",appShow:"onShow",appClose:"onHide"},page:{pageLoad:"onLoad",pageShow:"onShow",pageReady:"onReady",pageHide:"onHide",pageUnload:"onUnload",tabTap:"onTabItemTap",shareApp:"onShareAppMessage"},actions:{click:["onclick","tap","longpress","longTap","getuserinfo","getphonenumber","contact","mouseup"],change:["blur","change","confirm"],submit:["submit"]}}},he=Object.assign(Object.assign({},ge),{listeners:Object.assign({},ge.listeners),name:"Weixin",platform:"MinP"});he.pageHandlers=[...ge.pageHandlers,"onShareTimeline","onAddToFavorites"],he.listeners.page=Object.assign(Object.assign({},ge.listeners.page),{shareTime:"onShareTimeline",addFavorites:"onAddToFavorites"});class ce{constructor(e){this.growingIO=e,this.minip=U("wx"),this.hookSetTitle=()=>{var e;const t=null===(e=this.minip)||void 0===e?void 0:e.setNavigationBarTitle,i=this;t&&Object.defineProperty(this.minip,"setNavigationBarTitle",{writable:!0,enumerable:!0,configurable:!0,value:function(){if(i.growingIO.gioSDKInitialized){const e=i.getCurrentPath(),{title:t}=arguments[0]||{};i.growingIO.dataStore.eventHooks.currentPage.settedTitle[e]=t}return t.apply(this,arguments)}})},this.navigateTo=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateTo(e)},this.switchTab=e=>{var t;null===(t=this.minip)||void 0===t||t.switchTab(e)},this.navigateToMiniProgram=e=>{var t;return null===(t=this.minip)||void 0===t?void 0:t.navigateToMiniProgram(e)},this.getImageInfo=({src:e,success:t,fail:i,complete:n})=>{var s;return null===(s=this.minip)||void 0===s?void 0:s.getImageInfo({src:e,success:t,fail:i,complete:n})},this.initImpression=e=>{var t,i;null===(i=null===(t=this.growingIO.plugins)||void 0===t?void 0:t.gioImpressionTracking)||void 0===i||i.main(e,"observeAll")},this.getCurrentPage=()=>k((()=>l(getCurrentPages())))||{},this.getCurrentPath=()=>{const e=this.getCurrentPage();return(null==e?void 0:e.route)||(null==e?void 0:e.uri)||(null==e?void 0:e.__route__)||""},this.getPageTitle=e=>{var i,n;let s="";const r=L(B());try{const o=(null==e?void 0:e.data)||e.$data||{};if(s=t(null==o?void 0:o.gioPageTitle)?null==o?void 0:o.gioPageTitle:"",0===s.length){const t=r.page[e.route]||r.page[e.route+".html"];s=t?t.window.navigationBarTitleText:r.global.window.navigationBarTitleText}if(0===s.length){const t=null===(n=null===(i=null==r?void 0:r.tabBar)||void 0===i?void 0:i.list)||void 0===n?void 0:n.find((t=>t.pagePath===e.route||t.pagePath===e.route+".html"));s=(null==t?void 0:t.text)||""}}catch(e){return""}return A(s)},this.getStorageSync=e=>{var t;let i=null===(t=this.minip)||void 0===t?void 0:t.getStorageSync(e);return s(i)&&i.expiredAt?i.expiredAt<Date.now()?"":i.value:i},this.getStorage=e=>new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getStorage({key:e,success:({data:e})=>t(e),fail:()=>t("")})})),this.setStorageSync=(e,t,i)=>{var n;i&&(t={value:t,expiredAt:i}),null===(n=this.minip)||void 0===n||n.setStorageSync(e,t)},this.setStorage=(e,t)=>{var i;null===(i=this.minip)||void 0===i||i.setStorage({key:e,data:t})},this.removeStorageSync=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorageSync(e)},this.removeStorage=e=>{var t;null===(t=this.minip)||void 0===t||t.removeStorage(e)},this.getNetworkType=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getNetworkType({success:i=>{e.network=i,t(i)},fail:()=>t(null)})}))},this.request=({url:e,data:t,header:i,timeout:n,method:s,success:o,fail:a,complete:l})=>{var u;const g=null===(u=this.minip)||void 0===u?void 0:u.request({url:e,data:t,header:i,headers:i,timeout:n,method:s,success:o,fail:a,complete:l});let h=setTimeout((()=>{(null==g?void 0:g.abort)&&r(null==g?void 0:g.abort)&&(null==g||g.abort()),clearTimeout(h),h=null}),(n||1e4)+10);return g},this.getSystemInfo=()=>{const e=this;return new Promise((t=>{var i;null===(i=this.minip)||void 0===i||i.getSystemInfo({success:i=>{e.systemInfo=i,t(i)},fail:()=>t(null)})}))},this.getSetting=()=>new Promise((e=>{var t;null===(t=this.minip)||void 0===t||t.getSetting({success:e,fail:e})}));const{platformConfig:{platform:i,scnPrefix:n}}=this.growingIO;this.platform=i,this.scnPrefix=n,this.growingIO.emitter.on("OPTION_INITIALIZED",(()=>{this.getNetworkType().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()})),this.getSystemInfo().then((()=>{var e;return null===(e=this.growingIO.dataStore)||void 0===e?void 0:e.eventReleaseInspector()}))}))}}class de extends ce{constructor(e){super(e),this.growingIO=e,this.hookSetTitle()}}let pe;const ve={};var me,fe,Ie;fe={name:"gioCustomTracking",method:class{constructor(e){this.growingIO=e,this.getDynamicAttributes=e=>(pe.isNil(e)||pe.keys(e).forEach((t=>{pe.isFunction(e[t])?e[t]=e[t]():pe.isArray(e[t])||(e[t]=pe.toString(e[t]))})),e),this.buildCustomEvent=(e,t)=>{pe.eventNameValidate(e,(()=>{const{dataStore:{eventContextBuilder:i,eventInterceptor:n}}=this.growingIO;n(Object.assign({eventType:"CUSTOM",eventName:e,attributes:pe.limitObject(this.getDynamicAttributes(pe.isObject(t)&&!pe.isEmpty(t)?t:void 0))},i()))}))},this.buildUserAttributesEvent=e=>{const{dataStore:{eventContextBuilder:t,eventInterceptor:i,lastVisitEvent:n}}=this.growingIO,s=Object.assign({eventType:"LOGIN_USER_ATTRIBUTES",attributes:pe.limitObject(e)},t());s.path||(s.path=n.path,s.query=n.query,s.title=n.title),i(s)},pe=this.growingIO.utils}}},Ie=ve,(me=["pluginsIn","gioCustomTracking"]).map((function(e,t){Ie[e]=t==me.length-1?fe:Ie[e]||{},Ie=Ie[e]}));class Se{constructor(e){this.growingIO=e,this.innerPluginInit=()=>{I(ve.pluginsIn).forEach((e=>{const{name:t,method:i}=ve.pluginsIn[e],n=this.pluginItems.find((e=>e.name===t));n||this.pluginItems.push({name:p(t||e),method:i||(e=>{})})})),P(this.pluginItems)||this.installAll()},this.install=(e,t,i)=>{var n;const s=t||this.pluginItems.find((t=>t.name===e));if(null===(n=this.growingIO)||void 0===n?void 0:n.plugins[e])return _(`重复加载插件 ${e} 或插件重名,已跳过加载!`,"warn"),!1;if(!s)return _(`插件加载失败!不存在名为 ${e} 的插件!`,"error"),!1;try{return this.growingIO.plugins[e]=new s.method(this.growingIO,i),t&&_("加载插件:"+e,"info"),!0}catch(t){return _(`插件【${e}】加载异常 ${t}`,"error"),!1}},this.installAll=e=>{(e||this.pluginItems).forEach((t=>this.install(t.name,e?t:void 0,t.options)))},this.uninstall=e=>{var t;O(this.pluginItems,e);const i=O(null===(t=this.growingIO)||void 0===t?void 0:t.plugins,e);return i||_(`卸载插件 ${e} 失败!`,"error"),i},this.uninstallAll=()=>{this.pluginItems.forEach((e=>this.uninstall(e.name)))},this.lifeError=(e,t)=>_(`插件执行错误 ${e.name} ${t}`,"error"),this.onComposeBefore=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeBefore;if(n&&r(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onComposeAfter=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onComposeAfter;if(n&&r(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onSendBefore=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendBefore;if(n&&r(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.onSendAfter=e=>{this.pluginItems.forEach((t=>{var i;const n=null===(i=this.growingIO.plugins[t.name])||void 0===i?void 0:i.onSendAfter;if(n&&r(n))try{n(e)}catch(e){this.lifeError(t,e)}}))},this.pluginItems=[],this.growingIO.emitter.on("onComposeBefore",this.onComposeBefore),this.growingIO.emitter.on("onComposeAfter",this.onComposeAfter),this.growingIO.emitter.on("onSendBefore",this.onSendBefore),this.growingIO.emitter.on("onSendAfter",this.onSendAfter)}}var ye={},we={}.hasOwnProperty;function Oe(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function be(e){try{return encodeURIComponent(e)}catch(e){return null}}ye.stringify=function(e,t){t=t||"";var i,n,s=[];for(n in"string"!=typeof t&&(t="?"),e)if(we.call(e,n)){if((i=e[n])||null!=i&&!isNaN(i)||(i=""),n=be(n),i=be(i),null===n||null===i)continue;s.push(n+"="+i)}return s.length?t+s.join("&"):""},ye.parse=function(e){for(var t,i=/([^=?#&]+)=?([^&]*)/g,n={};t=i.exec(e);){var s=Oe(t[1]),r=Oe(t[2]);null===s||null===r||s in n||(n[s]=r)}return n};class Pe{constructor(e){this.growingIO=e,this.generateURL=()=>{const{serverUrl:e,projectId:t}=this.growingIO.vdsConfig;return v(e,"http")?`${e}/v3/projects/${t}/collect`:`https://${e}/v3/projects/${t}/collect`},this.commitRequest=e=>{const t=Object.assign({},e),{vdsConfig:i}=this.growingIO;i.forceLogin?this.hoardingQueue.push(t):(this.requestQueue.push(t),this.initiateRequest())},this.initiateRequest=e=>{var t,i;const{plugins:n,vdsConfig:s}=this.growingIO;[...this.hoardingQueue,...this.requestQueue].length>0&&this.requestingNum<this.requestLimit&&((null===(t=null==s?void 0:s.tbConfig)||void 0===t?void 0:t.cloudFuncSend)?null===(i=null==n?void 0:n.gioTaobaoAdapter)||void 0===i||i.singleInvoke():e?this.batchInvoke():this.batchInvokeThrottle())},this.batchInvoke=()=>{var e,t;const{vdsConfig:i,plugins:n,emitter:s}=this.growingIO;let r=[...this.hoardingQueue,...this.requestQueue];r.length>50?(r=r.slice(0,50),this.hoardingQueue.length>50?this.hoardingQueue=this.hoardingQueue.slice(50):(this.hoardingQueue=[],this.requestQueue=this.requestQueue.slice(50-this.hoardingQueue.length))):(this.hoardingQueue=[],this.requestQueue=[]);let o=r.filter((e=>(this.retryIds[e.requestId]||0)<=this.retryLimit));if(P(o))return;const a=o.map((e=>{const t=Object.assign({},e);return O(t,"requestId"),t}));i.debug&&console.log("[GrowingIO Debug]:",JSON.stringify(a,null,2)),s.emit("onSendBefore",{requestData:a}),(null===(e=null==i?void 0:i.tbConfig)||void 0===e?void 0:e.cloudAppId)?null===(t=null==n?void 0:n.gioTaobaoAdapter)||void 0===t||t.tbCloudAppInvoke(a):this.normalBatchInvoke(o,a)},this.batchInvokeThrottle=b(this.batchInvoke,this.growingIO.vdsConfig.uploadInterval,!1,!1),this.normalBatchInvoke=(e,t)=>{var i;const{minipInstance:n,vdsConfig:s,emitter:r,plugins:a}=this.growingIO;this.requestingNum+=1;const l={"content-type":"jdp"===n.platform?"application/json":"application/json;charset=UTF-8"};let u=[...t];const g=s.compress&&(null===(i=null==a?void 0:a.gioCompress)||void 0===i?void 0:i.compressToUTF16);g&&(u=a.gioCompress.compressToUTF16(JSON.stringify(t)),l["X-Compress-Codec"]="1"),n.request({url:`${this.requestURL}?stm=${Date.now()}&compress=${g?"1":"0"}`,header:l,method:"POST",data:u,timeout:this.requestTimeout,fail:t=>{[200,204].includes(t.code)||(o(e)?e.forEach((e=>{this.requestFailFn(e)})):this.requestFailFn(e),_("请求失败!"+JSON.stringify(t),"error"))},complete:e=>{this.requestingNum-=1,r.emit("onSendAfter",{result:e}),this.initiateRequest()}})},this.requestFailFn=e=>{this.retryIds[e.requestId]||(this.retryIds[e.requestId]=0),this.retryIds[e.requestId]+=1;const t=this.requestQueue.some((t=>t.requestId===e.requestId));if(!t){let t=setTimeout((()=>{P(this.requestQueue)?(this.requestQueue.push(e),this.initiateRequest()):this.requestQueue.push(e),clearTimeout(t),t=null}),800)}},this.hoardingQueue=[],this.requestQueue=[],this.requestLimit=3,this.requestTimeout=5e3,this.retryLimit=2,this.retryIds={},this.requestingNum=0,this.requestURL=this.generateURL()}}class Te{constructor(e){var t;this.growingIO=e,this.initUserInfo=()=>{var e;const{minipInstance:t}=this.growingIO,i=[this.uidStorageName,this.userIdStorageName,this.userKeyStorageName,this.gioIdStorageName],n=null!==(e=M(t,i))&&void 0!==e?e:[];["_uid","_userId","_userKey","_gioId"].forEach(((e,t)=>{this[e]=n[t],"_uid"!==e||this[e]||(this.uid=q())}))},this.saveUserInfo=()=>{const{minipInstance:e}=this.growingIO;V(e,[{key:this.uidStorageName,value:this.uid},{key:this.userIdStorageName,value:this.userId},{key:this.userKeyStorageName,value:this.userKey},{key:this.gioIdStorageName,value:this.gioId}])};const{inPlugin:i}=this.growingIO;this.uidStorageName=i?"_growing_plugin_uid_":"_growing_uid_",this.userIdStorageName=i?"_growing_plugin_userId_":"_growing_userId_",this.userKeyStorageName=i?"_growing_plugin_userKey_":"_growing_userKey_",this.gioIdStorageName=i?"_growing_plugin_gioId_":"_growing_gioId_",this._sessionId=q(),this._uid=void 0,this._userId=void 0,this._userKey=void 0,this._gioId=void 0,"quickapp"!==(null===(t=this.growingIO)||void 0===t?void 0:t.gioPlatform)&&this.initUserInfo()}get sessionId(){return this._sessionId||(this._sessionId=q()),this._sessionId}set sessionId(e){const t=this._sessionId;this._sessionId=e||q(),t!==this._sessionId&&this.growingIO.emitter.emit("SESSIONID_UPDATE",{newSessionId:this._sessionId,oldSessionId:t})}get uid(){return this._uid}set uid(e){const t=this._uid;this._uid=e,t!==this._uid&&(this.growingIO.minipInstance.setStorage(this.uidStorageName,this._uid),this.growingIO.emitter.emit("UID_UPDATE",{newUId:e,oldUId:t}))}get userId(){return this._userId}set userId(e){const t=this._userId;this._userId=e,t!==this._userId&&(this.growingIO.minipInstance.setStorage(this.userIdStorageName,this._userId),this.growingIO.emitter.emit("USERID_UPDATE",{newUserId:e,oldUserId:t})),e&&(this.gioId=e)}get userKey(){return this._userKey}set userKey(e){const t=this._userKey;this._userKey=e,t!==this._userKey&&(this.growingIO.minipInstance.setStorage(this.userKeyStorageName,this._userKey),this.growingIO.emitter.emit("USERKEY_UPDATE",{newUserKey:e,oldUserKey:t}))}get gioId(){return this._gioId}set gioId(e){const t=this._gioId;this._gioId=e,t!==this._gioId&&(this.growingIO.minipInstance.setStorage(this.gioIdStorageName,this._gioId),this.growingIO.emitter.emit("GIOID_UPDATE",{newGioId:e,oldGioId:t}))}}const Ce=new class{constructor(){var t;this.registerPlugins=e=>{this.plugins.pluginItems=[...this.plugins.pluginItems,...e],this.plugins.installAll(e)},this.init=e=>{var t;return _("Gio小程序SDK 初始化中...","info"),this.dataStore.initOptions(e),null===(t=this.emitter)||void 0===t||t.emit("OPTION_INITIALIZED",this),this.gioSDKInitialized=!0,this.vdsConfig.subpackage||(R().__gio__=()=>this),this.uploader=new Pe(this),this.vdsConfig.idMapping||(this.userStore.userKey=""),this.emitter.emit("SDK_INITIALIZED",this),_("Gio小程序SDK 初始化完成!","success"),this.vdsConfig.forceLogin&&_("forceLogin已开启,请调用 identify 方法设置 openId 以继续上报!","info"),this.inPlugin&&"tbp"!==this.minipInstance.platform&&this.dataStore.sendVisit(),!0},this.getOption=e=>this.dataStore.getOption(e),this.setOption=(e,t)=>{if(I(X).includes(e)){const i=this.dataStore.setOption(e,t);return i&&X[e]&&_(`已${t?"开启":"关闭"}${X[e]}`,"info"),i}return _(`不存在可修改的配置项:${e},请检查后重试!`,"warn"),!1},this.getDeviceId=()=>this.userStore.uid,this.identify=e=>{if(this.vdsConfig.forceLogin){if(!J(e))return void E("identify");const t=c(e).slice(0,1e3);this.userStore.uid=t,this.uploader.hoardingQueue.forEach(((e,i)=>this.uploader.hoardingQueue[i].deviceId=t)),this.dataStore.setOption("forceLogin",!1),this.uploader.initiateRequest(!0)}else E("identify",!1,"forceLogin未开启")},this.setUserId=(t,i)=>{if(J(t)){const n=this.userStore.gioId;if(t=c(t).slice(0,1e3),i=c(i).slice(0,1e3),this.userStore.userId=t,this.vdsConfig.idMapping&&(this.userStore.userKey=e(i)?"":i),n&&n!==t){this.userStore.sessionId="";const{path:e,query:t,settedTitle:i}=this.dataStore.eventHooks.currentPage;this.dataStore.eventHooks.currentPage.title=i[e]||this.minipInstance.getPageTitle(this.minipInstance.getCurrentPage()),this.dataStore.sendVisit({path:e,query:t})}}else E("setUserId")},this.clearUserId=()=>{this.userStore.userId=void 0,this.userStore.userKey=void 0},this.setUserAttributes=e=>{var t,i;!P(e)&&s(e)?null===(i=null===(t=this.plugins)||void 0===t?void 0:t.gioCustomTracking)||void 0===i||i.buildUserAttributesEvent(e):E("setUserAttributes")},this.track=(e,t)=>{var i,n;((null===(n=null===(i=this.plugins)||void 0===i?void 0:i.gioCustomTracking)||void 0===n?void 0:n.buildCustomEvent)||function(){})(e,Object.assign(Object.assign({},this.dataStore.generalProps),s(t)&&!P(t)?t:{}))},this.trackTimerStart=e=>!!this.vdsConfig.dataCollect&&N(e,(()=>{const t=q();return this.dataStore.trackTimers[t]={eventName:e,leng:0,start:+Date.now()},t})),this.trackTimerPause=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return t.start&&(t.leng=t.leng+(+Date.now()-t.start)),t.start=0,!0}return!1},this.trackTimerResume=e=>{if(e&&this.dataStore.trackTimers[e]){const t=this.dataStore.trackTimers[e];return 0===t.start&&(t.start=+Date.now()),!0}return!1},this.trackTimerEnd=(e,t)=>{if(this.vdsConfig.dataCollect){const i=864e5;if(e&&this.dataStore.trackTimers[e]){const n=this.dataStore.trackTimers[e];if(0!==n.start){const e=+Date.now()-n.start;n.leng=e>0?n.leng+e:0}const{eventContextBuilder:s,eventInterceptor:r}=this.dataStore;return r(Object.assign(Object.assign({eventType:"CUSTOM",eventName:n.eventName,attributes:G(Object.assign(Object.assign({},t),{event_duration:n.leng>i?0:n.leng/1e3}))},s()),{customEventType:0})),this.removeTimer(e),!0}return _("未查找到对应的计时器,请检查!","error"),!1}return!1},this.removeTimer=e=>!(!e||!this.dataStore.trackTimers[e]||(delete this.dataStore.trackTimers[e],0)),this.clearTrackTimer=()=>{this.dataStore.trackTimers={}},this.setGeneralProps=e=>{s(e)&&!P(e)?(this.dataStore.generalProps=Object.assign(Object.assign({},this.dataStore.generalProps),e),I(this.dataStore.generalProps).forEach((e=>{[void 0,null].includes(this.dataStore.generalProps[e])&&(this.dataStore.generalProps[e]="")}))):E("setGeneralProps")},this.clearGeneralProps=e=>{o(e)&&!P(e)?e.forEach((e=>{O(this.dataStore.generalProps,e)})):this.dataStore.generalProps={}},this.setPageAttributes=e=>{const{currentPage:t}=this.dataStore.eventHooks,i=this.minipInstance.getCurrentPath();["onLoad","attached"].includes(t.currentLifecycle)&&(t.pageProps[i]=G(e))},this.updateImpression=()=>{_("当前未集成半自动浏览插件,请集成插件后再调用 updateImpression!","warn")},this.setLocation=(e,t)=>{const i={latitude:e,longitude:t},n=this.dataStore.locationData,s=e=>e>=-180&&180>=e;s(e)&&s(t)&&(n.latitude!==e||n.longitude!==t)&&(this.dataStore.locationData=i)},this.getGioInfo=()=>{const{uid:e,userId:t,userKey:i,sessionId:n}=this.userStore,{projectId:s,appId:r,dataSourceId:o,dataCollect:a,idMapping:l,extraParams:u,ignoreFields:g}=this.vdsConfig,h={gioappid:r,giocs1:t||"",gioplatform:this.platformConfig.platform,gioprojectid:s,gios:n,giou:e};return h.giodatacollect=a,h.giodatasourceid=o,l&&(h.giouserkey=i),P(u)||u.forEach((e=>{g.includes(e)||(h["gio"+e]=this.dataStore.lastVisitEvent[e])})),ye.stringify(h)},this.utils=Object.assign(Object.assign(Object.assign({},C),z),{qs:ye}),this.emitter={all:t=t||new Map,on:function(e,i){var n=t.get(e);n?n.push(i):t.set(e,[i])},off:function(e,i){var n=t.get(e);n&&(i?n.splice(n.indexOf(i)>>>0,1):t.set(e,[]))},emit:function(e,i){var n=t.get(e);n&&n.slice().map((function(e){e(i)})),(n=t.get("*"))&&n.slice().map((function(t){t(e,i)}))}},this.gioPlatform="wx",this.gioFramework="native",this.sdkVersion="4.0.0";try{"quickapp"===this.gioPlatform||r(getApp)&&r(App)?this.inPlugin=!1:this.inPlugin=!0}catch(e){this.inPlugin=!0}this.inPlugin&&_("未检测到小程序实例,自动切换为插件模式!","info"),this.platformConfig=he,this.minipInstance=new de(this),this.dataStore=new ue(this),this.userStore=new Te(this),this.plugins=new Se(this),this.plugins.innerPluginInit()}},_e=function(){const e=arguments[0];if(t(e)&&Z.includes(e)&&Ce[e]){const n=u(Array.from(arguments));if("init"===e){const e=!(i=Ce).vdsConfig&&!i.gioSDKInitialized||(_("SDK重复初始化,请检查是否重复加载SDK或接入其他平台SDK导致冲突!","warn"),!1),r=(e=>!!g(e)||(_('SDK初始化失败,请使用 gdp("init", "您的GrowingIO项目 accountId", "您项目的 dataSourceId", "你的应用 AppId", options); 进行初始化!',"error"),!1))(n),o=(e=>{const t=e[0];let i=l(e);return J(t)?(s(i)&&i||(i={}),{projectId:t,userOptions:i}):(_("SDK初始化失败,accountId 参数不合法!","error"),!1)})(n),a=(e=>{const i=e[1];let n=e[2];const s=l(e);return i&&t(i)?J(n)?{dataSourceId:i,appId:n,options:s}:(_("SDK初始化失败,appId 参数不合法!","error"),!1):(_("SDK初始化失败,dataSourceId 参数不合法!","error"),!1)})(n);if(e&&r&&o&&a){const{projectId:e}=o,{dataSourceId:t,appId:i,options:n}=a;return Ce.init(Object.assign(Object.assign({},n),{projectId:e,dataSourceId:t,appId:i}))}}else if("registerPlugins"===e)Ce.registerPlugins(n[0]);else{if(Ce.gioSDKInitialized&&Ce.vdsConfig)return Ce[e](...n);_("SDK未初始化!","error")}}else ee.includes(e)?_(`方法 ${c(e)} 已被弃用!`,"warn"):_(`不存在名为 ${c(e)} 的方法调用!`,"error");var i};K().gdp=_e,K().gioSDKVersion=Ce.sdkVersion;const Ee=k((()=>{var e;return null!==(e=Ce.dataStore.eventHooks.growingApp)&&void 0!==e?e:App})),ke=k((()=>{var e;return null!==(e=Ce.dataStore.eventHooks.growingPage)&&void 0!==e?e:Page})),Ae=k((()=>{var e;return null!==(e=Ce.dataStore.eventHooks.growingComponent)&&void 0!==e?e:Component})),Ne=k((()=>{var e;return null!==(e=Ce.dataStore.eventHooks.growingBehavior)&&void 0!==e?e:Behavior}));export default _e;export{Ee as GioApp,Ne as GioBehavior,Ae as GioComponent,ke as GioPage};
package/package.json ADDED
@@ -0,0 +1,144 @@
1
+ {
2
+ "name": "gio-miniprogram-sdk",
3
+ "version": "4.0.0",
4
+ "description": "GrowngIO官方小程序 SDK,具备自动采集基本的用户行为事件,比如访问和行为数据等。目前支持微信小程序、支付宝小程序、百度小程序、字节(抖音头条)小程序、QQ小程序、淘宝小程序、京东小程序、快手小程序、快应用。",
5
+ "main": "./dist/wechat.js",
6
+ "author": "anyi@startdt.com",
7
+ "license": "GNU General Public License v3.0",
8
+ "scripts": {
9
+ "build:full": "./bin/build/full.sh",
10
+ "build:jd": "./bin/build/jd.sh",
11
+ "build:ks": "./bin/build/ks.sh",
12
+ "build:my": "./bin/build/my.sh",
13
+ "build:plugins": "bin/build/plugins.sh",
14
+ "build:qq": "./bin/build/qq.sh",
15
+ "build:quickapp": "./bin/build/quickapp.sh",
16
+ "build:swan": "./bin/build/swan.sh",
17
+ "build:taro": "./bin/build/taro.sh",
18
+ "build:tb": "./bin/build/tb.sh",
19
+ "build:tt": "./bin/build/tt.sh",
20
+ "build:uniapp": "./bin/build/uniapp.sh",
21
+ "build:wx": "./bin/build/wx.sh",
22
+ "build": "./bin/build/all.sh",
23
+ "dev:full": "./bin/dev/full.sh",
24
+ "dev:jd": "./bin/dev/jd.sh",
25
+ "dev:ks": "./bin/dev/ks.sh",
26
+ "dev:my": "./bin/dev/my.sh",
27
+ "dev:plugins": "./bin/dev/plugins.sh",
28
+ "dev:qq": "./bin/dev/qq.sh",
29
+ "dev:quickapp": "./bin/dev/quickapp.sh",
30
+ "dev:swan": "./bin/dev/swan.sh",
31
+ "dev:taro": "./bin/dev/taro.sh",
32
+ "dev:tb": "./bin/dev/tb.sh",
33
+ "dev:tt": "./bin/dev/tt.sh",
34
+ "dev:uniapp": "./bin/dev/uniapp.sh",
35
+ "dev:wx": "./bin/dev/wx.sh",
36
+ "lint": "eslint --fix 'src/**/*.{js,ts}'"
37
+ },
38
+ "engines": {
39
+ "node": "16.x"
40
+ },
41
+ "dependencies": {
42
+ "mitt": "^3.0.0",
43
+ "querystringify": "^2.2.0"
44
+ },
45
+ "devDependencies": {
46
+ "@babel/core": "^7.16.0",
47
+ "@babel/preset-env": "^7.16.5",
48
+ "@babel/preset-typescript": "^7.16.5",
49
+ "@rollup/plugin-alias": "^3.1.4",
50
+ "@rollup/plugin-babel": "^5.3.0",
51
+ "@rollup/plugin-commonjs": "^21.0.1",
52
+ "@rollup/plugin-node-resolve": "^13.0.2",
53
+ "@rollup/plugin-replace": "^3.0.0",
54
+ "@rollup/plugin-terser": "^0.4.3",
55
+ "@rollup/plugin-typescript": "^8.2.3",
56
+ "@types/webpack-env": "^1.16.2",
57
+ "@typescript-eslint/eslint-plugin": "^5.7.0",
58
+ "@typescript-eslint/parser": "^5.7.0",
59
+ "babel-core": "^6.26.3",
60
+ "babel-plugin-bulk-import": "^2.0.0",
61
+ "eslint": "^8.4.1",
62
+ "eslint-config-prettier": "^8.3.0",
63
+ "eslint-plugin-prettier": "^4.0.0",
64
+ "generate-source-map": "^0.0.5",
65
+ "prettier": "^2.3.2",
66
+ "rollup": "^2.53.2",
67
+ "rollup-plugin-copy": "^3.4.0",
68
+ "rollup-plugin-filesize": "^9.1.1",
69
+ "rollup-plugin-minip-components-transfer": "^1.0.0",
70
+ "shelljs": "^0.8.5",
71
+ "tslib": "^2.3.1",
72
+ "typescript": "^4.3.5"
73
+ },
74
+ "repository": {
75
+ "type": "git",
76
+ "url": "https://github.com/growingio/growingio-sdk-miniprogram-autotracker.git"
77
+ },
78
+ "bugs": {
79
+ "url": "https://github.com/growingio/growingio-sdk-miniprogram-autotracker/issues"
80
+ },
81
+ "homepage": "https://github.com/growingio/growingio-sdk-miniprogram-autotracker#readme",
82
+ "exports": {
83
+ "./wechat": {
84
+ "import": "./dist/wechat.js",
85
+ "require": "./dist/wechat.js"
86
+ },
87
+ "./alipay": {
88
+ "import": "./dist/alipay.js",
89
+ "require": "./dist/alipay.js"
90
+ },
91
+ "./baidu": {
92
+ "import": "./dist/baidu.js",
93
+ "require": "./dist/baidu.js"
94
+ },
95
+ "./bytedance": {
96
+ "import": "./dist/bytedance.js",
97
+ "require": "./dist/bytedance.js"
98
+ },
99
+ "./jingdong": {
100
+ "import": "./dist/jingdong.js",
101
+ "require": "./dist/jingdong.js"
102
+ },
103
+ "./kuaishou": {
104
+ "import": "./dist/kuaishou.js",
105
+ "require": "./dist/kuaishou.js"
106
+ },
107
+ "./taobao": {
108
+ "import": "./dist/taobao.js",
109
+ "require": "./dist/taobao.js"
110
+ },
111
+ "./qq": {
112
+ "import": "./dist/qq.js",
113
+ "require": "./dist/qq.js"
114
+ },
115
+ "./quickapp": {
116
+ "import": "./dist/quickapp.js",
117
+ "require": "./dist/quickapp.js"
118
+ },
119
+ "./uniapp": {
120
+ "import": "./dist/uniapp.js",
121
+ "require": "./dist/uniapp.js"
122
+ },
123
+ "./taro": {
124
+ "import": "./dist/taro.js",
125
+ "require": "./dist/taro.js"
126
+ },
127
+ "./plugins/gioABTest": {
128
+ "import": "./dist/plugins/gioABTest.js",
129
+ "require": "./dist/plugins/gioABTest.js"
130
+ },
131
+ "./plugins/gioCompress": {
132
+ "import": "./dist/plugins/gioCompress.js",
133
+ "require": "./dist/plugins/gioCompress.js"
134
+ },
135
+ "./plugins/gioEventAutoTracking": {
136
+ "import": "./dist/plugins/gioEventAutoTracking.js",
137
+ "require": "./dist/plugins/gioEventAutoTracking.js"
138
+ },
139
+ "./plugins/gioImpressionTracking": {
140
+ "import": "./dist/plugins/gioImpressionTracking.js",
141
+ "require": "./dist/plugins/gioImpressionTracking.js"
142
+ }
143
+ }
144
+ }