avo-inspector 1.4.2 → 2.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.
- package/CHANGELOG.md +5 -0
- package/bsconfig.json +1 -1
- package/dist/index.js +1 -1
- package/dist-native/AvoInspector.d.ts +1 -0
- package/dist-native/AvoInspector.js +2 -2
- package/dist-native/AvoStorage.d.ts +2 -2
- package/dist-native/AvoStorage.js +40 -31
- package/dist-native/__mocks__/xhr.d.ts +7 -6
- package/dist-native/__mocks__/xhrError.d.ts +7 -6
- package/dist-native/__tests__/NetworkCallsHandler.js +2 -2
- package/dist-native/__tests__/Parsing.js +59 -0
- package/dist-native/__tests__/Sessions.js +1 -1
- package/dist-native/index.d.ts +1 -1
- package/dist-native/utils.js +2 -2
- package/package.json +2 -2
- package/rescript/AvoInspector.res +19 -0
- package/rescript/AvoInspector.resi +7 -0
- package/reason/AvoInspector.re +0 -26
- package/reason/AvoInspector.rei +0 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
## 2.0.0
|
|
2
|
+
|
|
3
|
+
- Contains no changes for most users
|
|
4
|
+
- [Breaking] Upgrades Reason bindings to Rescript. This is a breaking change for users who are using bs-platform as that's no longer supported. The bindings now support Rescript 9.1, 10, 11 and later. The interface has changed slightly with lowercase `env` variants and dropping the unit at the end of the constructor.
|
|
5
|
+
|
|
1
6
|
## 1.4.2
|
|
2
7
|
|
|
3
8
|
Security update
|
package/bsconfig.json
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(()=>(()=>{"use strict";var e={669:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoBatcher=void 0;var o=n(611),r=function(){function e(t){var n=this;this.events=[],this.networkCallsHandler=t,this.batchFlushAttemptTimestamp=Date.now(),o.AvoInspector.avoStorage.getItemAsync(e.cacheKey).then((function(e){if(null!==e){var t=e.filter((function(e){return null!==e}));n.events=n.events.concat(t),n.checkIfBatchNeedsToBeSent()}}))}return e.prototype.handleSessionStarted=function(){this.events.push(this.networkCallsHandler.bodyForSessionStartedCall()),this.saveEvents(),this.checkIfBatchNeedsToBeSent()},e.prototype.handleTrackSchema=function(e,t,n,r){this.events.push(this.networkCallsHandler.bodyForEventSchemaCall(e,t,n,r)),this.saveEvents(),o.AvoInspector.shouldLog&&console.log("Avo Inspector: saved event "+e+" with schema "+JSON.stringify(t)),this.checkIfBatchNeedsToBeSent()},e.prototype.checkIfBatchNeedsToBeSent=function(){var e=this.events.length,t=Date.now(),n=t-this.batchFlushAttemptTimestamp,r=e%o.AvoInspector.batchSize==0,s=n>=1e3*o.AvoInspector.batchFlushSeconds,i=this;if(r||s){this.batchFlushAttemptTimestamp=t;var a=i.events;i.events=[],this.networkCallsHandler.callInspectorWithBatchBody(a,(function(e){null!=e?(i.events=i.events.concat(a),o.AvoInspector.shouldLog&&console.log("Avo Inspector: batch sending failed: "+e+". We will attempt to send your schemas with next batch")):o.AvoInspector.shouldLog&&console.log("Avo Inspector: batch sent successfully."),i.saveEvents()}))}},e.prototype.saveEvents=function(){if(this.events.length>1e3){var t=this.events.length-1e3;this.events.splice(0,t)}o.AvoInspector.avoStorage.setItem(e.cacheKey,this.events)},Object.defineProperty(e,"cacheKey",{get:function(){return"AvoInspectorEvents"},enumerable:!1,configurable:!0}),e}();t.AvoBatcher=r},492:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoDeduplicator=void 0;var o=n(924),r=n(185),s=function(){function e(){this.avoFunctionsEvents={},this.manualEvents={},this.avoFunctionsEventsParams={},this.manualEventsParams={}}return e.prototype.shouldRegisterEvent=function(e,t,n){this.clearOldEvents(),n?(this.avoFunctionsEvents[Date.now()]=e,this.avoFunctionsEventsParams[e]=t):(this.manualEvents[Date.now()]=e,this.manualEventsParams[e]=t);var o=!n;return!this.hasSameEventAs(e,t,o)},e.prototype.hasSameEventAs=function(e,t,n){var o=!1;return n?this.lookForEventIn(e,t,this.avoFunctionsEventsParams)&&(o=!0):this.lookForEventIn(e,t,this.manualEventsParams)&&(o=!0),o&&(delete this.avoFunctionsEventsParams[e],delete this.manualEventsParams[e]),o},e.prototype.lookForEventIn=function(e,t,n){for(var o in n)if(n.hasOwnProperty(o)&&o===e){var s=n[e];if(s&&(0,r.deepEquals)(t,s))return!0}return!1},e.prototype.hasSeenEventParams=function(e,t){var n=!1;return t?this.lookForEventParamsIn(e,this.avoFunctionsEventsParams)&&(n=!0):this.lookForEventParamsIn(e,this.manualEventsParams)&&(n=!0),n},e.prototype.lookForEventParamsIn=function(e,t){for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];if(o&&(0,r.deepEquals)(e,o))return!0}return!1},e.prototype.shouldRegisterSchemaFromManually=function(e,t){return this.clearOldEvents(),!this.hasSameShapeInAvoFunctionsAs(e,t)},e.prototype.hasSameShapeInAvoFunctionsAs=function(e,t){var n=!1;return this.lookForEventSchemaIn(e,t,this.avoFunctionsEventsParams)&&(n=!0),n&&delete this.avoFunctionsEventsParams[e],n},e.prototype.lookForEventSchemaIn=function(e,t,n){for(var s in n)if(n.hasOwnProperty(s)&&s===e){var i=o.AvoSchemaParser.extractSchema(n[e]);if(i&&(0,r.deepEquals)(t,i))return!0}return!1},e.prototype.clearOldEvents=function(){var e=Date.now();for(var t in this.avoFunctionsEvents)if(this.avoFunctionsEvents.hasOwnProperty(t)&&e-(Number(t)||0)>300){var n=this.avoFunctionsEvents[t];delete this.avoFunctionsEvents[t],delete this.avoFunctionsEventsParams[n]}for(var t in this.manualEvents)this.manualEvents.hasOwnProperty(t)&&e-(Number(t)||0)>300&&(n=this.manualEvents[t],delete this.manualEvents[t],delete this.manualEventsParams[n])},e.prototype._clearEvents=function(){this.avoFunctionsEvents={},this.manualEvents={},this.avoFunctionsEventsParams={},this.manualEventsParams={}},e}();t.AvoDeduplicator=s},249:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},e}();t.default=n},611:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInspector=void 0;var o=n(844),r=n(924),s=n(948),i=n(669),a=n(243),c=n(491),l=n(492),u=n(185),p=n(330).rE,v=function(){function e(t){var n=this;if((0,u.isValueEmpty)(t.env)?(this.environment=o.AvoInspectorEnv.Dev,console.warn("[Avo Inspector] No environment provided. Defaulting to dev.")):Object.values(o.AvoInspectorEnv).includes(t.env)?this.environment=t.env:(this.environment=o.AvoInspectorEnv.Dev,console.warn("[Avo Inspector] Unsupported environment provided. Defaulting to dev. Supported environments - Dev, Staging, Prod.")),(0,u.isValueEmpty)(t.apiKey))throw new Error("[Avo Inspector] No API key provided. Inspector can't operate without API key.");if(this.apiKey=t.apiKey,(0,u.isValueEmpty)(t.version))throw new Error("[Avo Inspector] No version provided. Many features of Inspector rely on versioning. Please provide comparable string version, i.e. integer or semantic.");this.version=t.version,this.environment===o.AvoInspectorEnv.Dev?(e._batchSize=1,e._shouldLog=!0):(e._batchSize=30,e._batchFlushSeconds=30,e._shouldLog=!1),e.avoStorage=new c.AvoStorage(e._shouldLog,null!=t.suffix?t.suffix:"");var r=new a.AvoNetworkCallsHandler(this.apiKey,this.environment.toString(),t.appName||"",this.version,p);this.avoBatcher=new i.AvoBatcher(r),this.sessionTracker=new s.AvoSessionTracker(this.avoBatcher),this.avoDeduplicator=new l.AvoDeduplicator;try{"undefined"!=typeof window&&window.addEventListener("load",(function(){n.sessionTracker.startOrProlongSession(Date.now())}),!1)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}}return Object.defineProperty(e,"batchSize",{get:function(){return this._batchSize},set:function(e){this._batchSize=e<1?1:e},enumerable:!1,configurable:!0}),Object.defineProperty(e,"batchFlushSeconds",{get:function(){return this._batchFlushSeconds},enumerable:!1,configurable:!0}),Object.defineProperty(e,"shouldLog",{get:function(){return this._shouldLog},set:function(e){this._shouldLog=e},enumerable:!1,configurable:!0}),e.prototype.trackSchemaFromEvent=function(t,n){try{if(this.avoDeduplicator.shouldRegisterEvent(t,n,!1)){e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with params "+JSON.stringify(n));var o=this.extractSchema(n,!1);return this.trackSchemaInternal(t,o,null,null),o}return e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t),[]}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype._avoFunctionTrackSchemaFromEvent=function(t,n,o,r){try{if(this.avoDeduplicator.shouldRegisterEvent(t,n,!0)){e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with params "+JSON.stringify(n));var s=this.extractSchema(n,!1);return this.trackSchemaInternal(t,s,o,r),s}return e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t),[]}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype.trackSchema=function(t,n){try{this.avoDeduplicator.shouldRegisterSchemaFromManually(t,n)?(e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with schema "+JSON.stringify(n)),this.trackSchemaInternal(t,n,null,null)):e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}},e.prototype.trackSchemaInternal=function(e,t,n,o){try{this.sessionTracker.startOrProlongSession(Date.now()),this.avoBatcher.handleTrackSchema(e,t,n,o)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}},e.prototype.enableLogging=function(t){e._shouldLog=t},e.prototype.extractSchema=function(t,n){void 0===n&&(n=!0);try{return this.sessionTracker.startOrProlongSession(Date.now()),this.avoDeduplicator.hasSeenEventParams(t,!0)&&n&&e.shouldLog&&console.warn("Avo Inspector: WARNING! You are trying to extract schema shape that was just reported by your Avo Codegen. This is an indicator of duplicate inspector reporting. Please reach out to support@avo.app for advice if you are not sure how to handle this."),e.shouldLog&&console.log("Avo Inspector: extracting schema from "+JSON.stringify(t)),r.AvoSchemaParser.extractSchema(t)}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype.setBatchSize=function(t){e._batchSize=t},e.prototype.setBatchFlushSeconds=function(t){e._batchFlushSeconds=t},e._batchSize=30,e._batchFlushSeconds=30,e._shouldLog=!1,e}();t.AvoInspector=v},844:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInspectorEnv=void 0,t.AvoInspectorEnv={Prod:"prod",Dev:"dev",Staging:"staging"}},661:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInstallationId=void 0;var o=n(249),r=n(611),s=function(){function e(){}return e.getInstallationId=function(){if(null!==e.installationId)return e.installationId;if(!r.AvoInspector.avoStorage.isInitialized())return"unknown";var t=r.AvoInspector.avoStorage.getItem(e.cacheKey);return null==t?(e.installationId=o.default.newGuid(),r.AvoInspector.avoStorage.setItem(e.cacheKey,e.installationId)):e.installationId=t,e.installationId},Object.defineProperty(e,"cacheKey",{get:function(){return"AvoInstallationId"},enumerable:!1,configurable:!0}),e.installationId=null,e}();t.AvoInstallationId=s},243:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoNetworkCallsHandler=void 0;var o=n(249),r=n(948),s=n(611),i=n(661),a=function(){function e(e,t,n,o,r){this.samplingRate=1,this.sending=!1,this.apiKey=e,this.envName=t,this.appName=n,this.appVersion=o,this.libVersion=r}return e.prototype.callInspectorWithBatchBody=function(t,n){var o=this;if(this.sending)n("Batch sending cancelled because another batch sending is in progress. Your events will be sent with next batch.");else{var r=t.filter((function(e){return null!=e}));if(this.fixSessionAndTrackingIds(r),0!==r.length)if(Math.random()>this.samplingRate)s.AvoInspector.shouldLog&&console.log("Avo Inspector: last event schema dropped due to sampling rate.");else{s.AvoInspector.shouldLog&&(console.log("Avo Inspector: events",r),r.forEach((function(e){if("sessionStarted"===e.type)console.log("Avo Inspector: sending session started event.");else if("event"===e.type){var t=e;console.log("Avo Inspector: sending event "+t.eventName+" with schema "+JSON.stringify(t.eventProperties))}}))),this.sending=!0;var i=new XMLHttpRequest;i.open("POST",e.trackingEndpoint,!0),i.setRequestHeader("Content-Type","text/plain"),i.send(JSON.stringify(r)),i.onload=function(){if(200!==i.status)n("Error ".concat(i.status,": ").concat(i.statusText));else{var e=JSON.parse(i.response).samplingRate;void 0!==e&&(o.samplingRate=e),n(null)}},i.onerror=function(){n("Request failed")},i.ontimeout=function(){n("Request timed out")},this.sending=!1}}},e.prototype.fixSessionAndTrackingIds=function(e){var t=null,n=null;e.forEach((function(e){null!==e.sessionId&&void 0!==e.sessionId&&"unknown"!==e.sessionId&&(t=e.sessionId),null!==e.trackingId&&void 0!==e.trackingId&&"unknown"!==e.trackingId&&(n=e.trackingId)})),e.forEach((function(e){"unknown"===e.sessionId&&(e.sessionId=null!=t?t:r.AvoSessionTracker.sessionId),"unknown"===e.trackingId&&(e.trackingId=null!=n?n:i.AvoInstallationId.getInstallationId())}))},e.prototype.bodyForSessionStartedCall=function(){var e=this.createBaseCallBody();return e.type="sessionStarted",e},e.prototype.bodyForEventSchemaCall=function(e,t,n,o){var r=this.createBaseCallBody();return r.type="event",r.eventName=e,r.eventProperties=t,null!=n?(r.avoFunction=!0,r.eventId=n,r.eventHash=o):(r.avoFunction=!1,r.eventId=null,r.eventHash=null),r},e.prototype.createBaseCallBody=function(){return{apiKey:this.apiKey,appName:this.appName,appVersion:this.appVersion,libVersion:this.libVersion,env:this.envName,libPlatform:"web",messageId:o.default.newGuid(),trackingId:i.AvoInstallationId.getInstallationId(),createdAt:(new Date).toISOString(),sessionId:r.AvoSessionTracker.sessionId,samplingRate:this.samplingRate}},e.trackingEndpoint="https://api.avo.app/inspector/v1/track",e}();t.AvoNetworkCallsHandler=a},924:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoSchemaParser=void 0;var n=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=function(){function e(){}return e.extractSchema=function(e){var t=this;if(null==e)return[];var o=function(e){if(n(e)){var r=e.map((function(e){return o(e)}));return t.removeDuplicates(r)}if("object"==typeof e){var s=[];for(var i in e)if(e.hasOwnProperty(i)){var a=e[i],c={propertyName:i,propertyType:t.getPropValueType(a)};"object"==typeof a&&null!=a&&(c.children=o(a)),s.push(c)}return s}return t.getPropValueType(e)};return o(e)},e.removeDuplicates=function(e){var t={boolean:{},number:{},string:{}},n=[];return e.filter((function(e){var o=typeof e;return o in t?!t[o].hasOwnProperty(e)&&(t[o][e]=!0):!n.includes(e)&&n.push(e)}))},e.getPropValueType=function(e){var t=typeof e;return null==e?"null":"string"===t?"string":"number"===t||"bigint"===t?(e+"").includes(".")?"float":"int":"boolean"===t?"boolean":"object"===t?n(e)?"list":"object":"unknown"},e}();t.AvoSchemaParser=o},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoSessionTracker=void 0;var o=n(249),r=n(611),s=function(){function e(e){this._lastSessionTimestamp=null,this._sessionLengthMillis=3e5,this.avoBatcher=e}return Object.defineProperty(e,"sessionId",{get:function(){if(null===e._sessionId){if(!r.AvoInspector.avoStorage.isInitialized())return"unknown";var t=null;try{t=r.AvoInspector.avoStorage.getItem(e.idCacheKey)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}e._sessionId=null==t?this.updateSessionId():t}return e._sessionId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSessionTimestamp",{get:function(){if(null===this._lastSessionTimestamp||0===this._lastSessionTimestamp){var t=r.AvoInspector.avoStorage.getItem(e.lastSessionTimestampKey);null!=t?(this._lastSessionTimestamp=t,isNaN(this._lastSessionTimestamp)&&(this._lastSessionTimestamp=0)):this._lastSessionTimestamp=0}return this._lastSessionTimestamp},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sessionLengthMillis",{get:function(){return this._sessionLengthMillis},enumerable:!1,configurable:!0}),e.prototype.startOrProlongSession=function(t){var n=this;r.AvoInspector.avoStorage.runAfterInit((function(){t-n.lastSessionTimestamp>n._sessionLengthMillis&&(e.updateSessionId(),n.avoBatcher.handleSessionStarted()),n._lastSessionTimestamp=t,r.AvoInspector.avoStorage.setItem(e.lastSessionTimestampKey,n._lastSessionTimestamp)}))},e.updateSessionId=function(){e._sessionId=o.default.newGuid();try{r.AvoInspector.avoStorage.setItem(e.idCacheKey,e.sessionId)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}return e._sessionId},Object.defineProperty(e,"lastSessionTimestampKey",{get:function(){return"AvoInspectorSessionTimestamp"},enumerable:!1,configurable:!0}),Object.defineProperty(e,"idCacheKey",{get:function(){return"AvoInspectorSessionId"},enumerable:!1,configurable:!0}),e._sessionId=null,e}();t.AvoSessionTracker=s},491:function(e,t){var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(r,s){function i(e){try{c(o.next(e))}catch(e){s(e)}}function a(e){try{c(o.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,a)}c((o=o.apply(e,t||[])).next())}))},s=this&&this.__generator||function(e,t){var n,o,r,s,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&a[0]?o.return:a[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,a[1])).done)return r;switch(o=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,o=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){i.label=a[1];break}if(6===a[0]&&i.label<r[1]){i.label=r[1],r=a;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(a);break}r[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],o=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.AvoStorage=void 0;var i=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.useFallbackStorage=!1,t.fallbackStorage={},t.storageInitialized=!1,t.onStorageInitFuncs=[],t.shouldLog=!1,t.suffix="",t}return o(t,e),t.prototype.init=function(e,t){this.shouldLog=e,this.suffix=t,this.initializeStorageWeb(this.isLocalStorageAvailable())},t.prototype.initializeStorageWeb=function(e){this.storageInitialized=!0,e||(this.useFallbackStorage=!0),this.onStorageInitFuncs.forEach((function(e){e()}))},t.prototype.isLocalStorageAvailable=function(){var e=(new Date).toISOString();try{return window.localStorage.setItem(e,e),window.localStorage.getItem(e)===e&&(window.localStorage.removeItem(e),!0)}catch(e){return!1}},t.prototype.isInitialized=function(){return this.storageInitialized},t.prototype.getItemAsync=function(e){return r(this,void 0,void 0,(function(){var t=this;return s(this,(function(n){switch(n.label){case 0:return[4,new Promise((function(n,o){t.runAfterInit((function(){if(t.useFallbackStorage){var o=t.fallbackStorage[e+t.suffix];n(t.parseJson(o))}else if("undefined"!=typeof window){o=void 0;try{o=window.localStorage.getItem(e+t.suffix)}catch(e){t.shouldLog&&console.error("Avo Inspector Storage getItemAsync error:",e),n(null)}n(t.parseJson(o))}else n(null)}))}))];case 1:return[2,n.sent()]}}))}))},t.prototype.getItem=function(e){var t;if(this.storageInitialized){if(this.useFallbackStorage)t=this.fallbackStorage[e+this.suffix];else if("undefined"!=typeof window)try{t=window.localStorage.getItem(e+this.suffix)}catch(e){this.shouldLog&&console.error("Avo Inspector Storage getItem error:",e)}}else t=null;return this.parseJson(t)},t.prototype.setItem=function(e,t){var n=this;this.runAfterInit((function(){if(n.useFallbackStorage)n.fallbackStorage[e+n.suffix]=JSON.stringify(t);else if("undefined"!=typeof window)try{window.localStorage.setItem(e+n.suffix,JSON.stringify(t))}catch(e){n.shouldLog&&console.error("Avo Inspector Storage setItem error:",e)}}))},t.prototype.removeItem=function(e){var t=this;this.runAfterInit((function(){if(t.useFallbackStorage)t.fallbackStorage[e+t.suffix]=null;else if("undefined"!=typeof window)try{window.localStorage.removeItem(e+t.suffix)}catch(e){t.shouldLog&&console.error("Avo Inspector Storage removeItem error:",e)}}))},t.prototype.runAfterInit=function(e){this.storageInitialized?e():this.onStorageInitFuncs.push(e)},t}(function(){function e(){}return e.prototype.parseJson=function(e){return null!=e?JSON.parse(e):null},e}()),a=function(){function e(e,t){void 0===t&&(t=""),this.Platform=null,this.Platform="browser",this.storageImpl=new i,this.storageImpl.init(e,t)}return e.prototype.isInitialized=function(){return this.storageImpl.isInitialized()},e.prototype.getItemAsync=function(e){return r(this,void 0,void 0,(function(){return s(this,(function(t){switch(t.label){case 0:return[4,this.storageImpl.getItemAsync(e)];case 1:return[2,t.sent()]}}))}))},e.prototype.getItem=function(e){return this.storageImpl.getItem(e)},e.prototype.setItem=function(e,t){this.storageImpl.setItem(e,t)},e.prototype.removeItem=function(e){this.storageImpl.removeItem(e)},e.prototype.runAfterInit=function(e){this.storageImpl.runAfterInit(e)},e}();t.AvoStorage=a},185:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deepEquals=t.isValueEmpty=void 0,t.isValueEmpty=function(e){return null==e||0==e.trim().length},t.deepEquals=function e(t,n){if(t===n)return!0;if(!(t instanceof Object&&n instanceof Object))return!1;if(t.constructor!==n.constructor)return!1;for(var o in t)if(t.hasOwnProperty(o)){if(!n.hasOwnProperty(o))return!1;if(t[o]!==n[o]){if("object"!=typeof t[o])return!1;if(!e(t[o],n[o]))return!1}}for(o in n)if(n.hasOwnProperty(o)&&!t.hasOwnProperty(o))return!1;return!0}},330:e=>{e.exports={rE:"1.4.2"}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,n),s.exports}var o={};return(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0}),e.AvoInspectorEnv=e.AvoInspector=void 0;var t=n(611);Object.defineProperty(e,"AvoInspector",{enumerable:!0,get:function(){return t.AvoInspector}});var r=n(844);Object.defineProperty(e,"AvoInspectorEnv",{enumerable:!0,get:function(){return r.AvoInspectorEnv}})})(),o})()));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(()=>(()=>{"use strict";var e={669:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoBatcher=void 0;var o=n(611),r=function(){function e(t){var n=this;this.events=[],this.networkCallsHandler=t,this.batchFlushAttemptTimestamp=Date.now(),o.AvoInspector.avoStorage.getItemAsync(e.cacheKey).then((function(e){if(null!==e){var t=e.filter((function(e){return null!==e}));n.events=n.events.concat(t),n.checkIfBatchNeedsToBeSent()}}))}return e.prototype.handleSessionStarted=function(){this.events.push(this.networkCallsHandler.bodyForSessionStartedCall()),this.saveEvents(),this.checkIfBatchNeedsToBeSent()},e.prototype.handleTrackSchema=function(e,t,n,r){this.events.push(this.networkCallsHandler.bodyForEventSchemaCall(e,t,n,r)),this.saveEvents(),o.AvoInspector.shouldLog&&console.log("Avo Inspector: saved event "+e+" with schema "+JSON.stringify(t)),this.checkIfBatchNeedsToBeSent()},e.prototype.checkIfBatchNeedsToBeSent=function(){var e=this.events.length,t=Date.now(),n=t-this.batchFlushAttemptTimestamp,r=e%o.AvoInspector.batchSize==0,s=n>=1e3*o.AvoInspector.batchFlushSeconds,i=this;if(r||s){this.batchFlushAttemptTimestamp=t;var a=i.events;i.events=[],this.networkCallsHandler.callInspectorWithBatchBody(a,(function(e){null!=e?(i.events=i.events.concat(a),o.AvoInspector.shouldLog&&console.log("Avo Inspector: batch sending failed: "+e+". We will attempt to send your schemas with next batch")):o.AvoInspector.shouldLog&&console.log("Avo Inspector: batch sent successfully."),i.saveEvents()}))}},e.prototype.saveEvents=function(){if(this.events.length>1e3){var t=this.events.length-1e3;this.events.splice(0,t)}o.AvoInspector.avoStorage.setItem(e.cacheKey,this.events)},Object.defineProperty(e,"cacheKey",{get:function(){return"AvoInspectorEvents"},enumerable:!1,configurable:!0}),e}();t.AvoBatcher=r},492:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoDeduplicator=void 0;var o=n(924),r=n(185),s=function(){function e(){this.avoFunctionsEvents={},this.manualEvents={},this.avoFunctionsEventsParams={},this.manualEventsParams={}}return e.prototype.shouldRegisterEvent=function(e,t,n){this.clearOldEvents(),n?(this.avoFunctionsEvents[Date.now()]=e,this.avoFunctionsEventsParams[e]=t):(this.manualEvents[Date.now()]=e,this.manualEventsParams[e]=t);var o=!n;return!this.hasSameEventAs(e,t,o)},e.prototype.hasSameEventAs=function(e,t,n){var o=!1;return n?this.lookForEventIn(e,t,this.avoFunctionsEventsParams)&&(o=!0):this.lookForEventIn(e,t,this.manualEventsParams)&&(o=!0),o&&(delete this.avoFunctionsEventsParams[e],delete this.manualEventsParams[e]),o},e.prototype.lookForEventIn=function(e,t,n){for(var o in n)if(n.hasOwnProperty(o)&&o===e){var s=n[e];if(s&&(0,r.deepEquals)(t,s))return!0}return!1},e.prototype.hasSeenEventParams=function(e,t){var n=!1;return t?this.lookForEventParamsIn(e,this.avoFunctionsEventsParams)&&(n=!0):this.lookForEventParamsIn(e,this.manualEventsParams)&&(n=!0),n},e.prototype.lookForEventParamsIn=function(e,t){for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];if(o&&(0,r.deepEquals)(e,o))return!0}return!1},e.prototype.shouldRegisterSchemaFromManually=function(e,t){return this.clearOldEvents(),!this.hasSameShapeInAvoFunctionsAs(e,t)},e.prototype.hasSameShapeInAvoFunctionsAs=function(e,t){var n=!1;return this.lookForEventSchemaIn(e,t,this.avoFunctionsEventsParams)&&(n=!0),n&&delete this.avoFunctionsEventsParams[e],n},e.prototype.lookForEventSchemaIn=function(e,t,n){for(var s in n)if(n.hasOwnProperty(s)&&s===e){var i=o.AvoSchemaParser.extractSchema(n[e]);if(i&&(0,r.deepEquals)(t,i))return!0}return!1},e.prototype.clearOldEvents=function(){var e=Date.now();for(var t in this.avoFunctionsEvents)if(this.avoFunctionsEvents.hasOwnProperty(t)&&e-(Number(t)||0)>300){var n=this.avoFunctionsEvents[t];delete this.avoFunctionsEvents[t],delete this.avoFunctionsEventsParams[n]}for(var t in this.manualEvents)this.manualEvents.hasOwnProperty(t)&&e-(Number(t)||0)>300&&(n=this.manualEvents[t],delete this.manualEvents[t],delete this.manualEventsParams[n])},e.prototype._clearEvents=function(){this.avoFunctionsEvents={},this.manualEvents={},this.avoFunctionsEventsParams={},this.manualEventsParams={}},e}();t.AvoDeduplicator=s},249:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},e}();t.default=n},611:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInspector=void 0;var o=n(844),r=n(924),s=n(948),i=n(669),a=n(243),c=n(491),l=n(492),u=n(185),p=n(330).rE,v=function(){function e(t){var n=this;if((0,u.isValueEmpty)(t.env)?(this.environment=o.AvoInspectorEnv.Dev,console.warn("[Avo Inspector] No environment provided. Defaulting to dev.")):Object.values(o.AvoInspectorEnv).includes(t.env)?this.environment=t.env:(this.environment=o.AvoInspectorEnv.Dev,console.warn("[Avo Inspector] Unsupported environment provided. Defaulting to dev. Supported environments - Dev, Staging, Prod.")),(0,u.isValueEmpty)(t.apiKey))throw new Error("[Avo Inspector] No API key provided. Inspector can't operate without API key.");if(this.apiKey=t.apiKey,(0,u.isValueEmpty)(t.version))throw new Error("[Avo Inspector] No version provided. Many features of Inspector rely on versioning. Please provide comparable string version, i.e. integer or semantic.");this.version=t.version,this.environment===o.AvoInspectorEnv.Dev?(e._batchSize=1,e._shouldLog=!0):(e._batchSize=30,e._batchFlushSeconds=30,e._shouldLog=!1),e.avoStorage=new c.AvoStorage(e._shouldLog,null!=t.suffix?t.suffix:"");var r=new a.AvoNetworkCallsHandler(this.apiKey,this.environment.toString(),t.appName||"",this.version,p);this.avoBatcher=new i.AvoBatcher(r),this.sessionTracker=new s.AvoSessionTracker(this.avoBatcher),this.avoDeduplicator=new l.AvoDeduplicator;try{"undefined"!=typeof window&&window.addEventListener("load",(function(){n.sessionTracker.startOrProlongSession(Date.now())}),!1)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}}return Object.defineProperty(e,"batchSize",{get:function(){return this._batchSize},set:function(e){this._batchSize=e<1?1:e},enumerable:!1,configurable:!0}),Object.defineProperty(e,"batchFlushSeconds",{get:function(){return this._batchFlushSeconds},enumerable:!1,configurable:!0}),Object.defineProperty(e,"shouldLog",{get:function(){return this._shouldLog},set:function(e){this._shouldLog=e},enumerable:!1,configurable:!0}),e.prototype.trackSchemaFromEvent=function(t,n){try{if(this.avoDeduplicator.shouldRegisterEvent(t,n,!1)){e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with params "+JSON.stringify(n));var o=this.extractSchema(n,!1);return this.trackSchemaInternal(t,o,null,null),o}return e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t),[]}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype._avoFunctionTrackSchemaFromEvent=function(t,n,o,r){try{if(this.avoDeduplicator.shouldRegisterEvent(t,n,!0)){e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with params "+JSON.stringify(n));var s=this.extractSchema(n,!1);return this.trackSchemaInternal(t,s,o,r),s}return e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t),[]}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype.trackSchema=function(t,n){try{this.avoDeduplicator.shouldRegisterSchemaFromManually(t,n)?(e.shouldLog&&console.log("Avo Inspector: supplied event "+t+" with schema "+JSON.stringify(n)),this.trackSchemaInternal(t,n,null,null)):e.shouldLog&&console.log("Avo Inspector: Deduplicated event: "+t)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}},e.prototype.trackSchemaInternal=function(e,t,n,o){try{this.sessionTracker.startOrProlongSession(Date.now()),this.avoBatcher.handleTrackSchema(e,t,n,o)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}},e.prototype.enableLogging=function(t){e._shouldLog=t},e.prototype.extractSchema=function(t,n){void 0===n&&(n=!0);try{return this.sessionTracker.startOrProlongSession(Date.now()),this.avoDeduplicator.hasSeenEventParams(t,!0)&&n&&e.shouldLog&&console.warn("Avo Inspector: WARNING! You are trying to extract schema shape that was just reported by your Avo Codegen. This is an indicator of duplicate inspector reporting. Please reach out to support@avo.app for advice if you are not sure how to handle this."),e.shouldLog&&console.log("Avo Inspector: extracting schema from "+JSON.stringify(t)),r.AvoSchemaParser.extractSchema(t)}catch(e){return console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e),[]}},e.prototype.setBatchSize=function(t){e._batchSize=t},e.prototype.setBatchFlushSeconds=function(t){e._batchFlushSeconds=t},e._batchSize=30,e._batchFlushSeconds=30,e._shouldLog=!1,e}();t.AvoInspector=v},844:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInspectorEnv=void 0,t.AvoInspectorEnv={Prod:"prod",Dev:"dev",Staging:"staging"}},661:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoInstallationId=void 0;var o=n(249),r=n(611),s=function(){function e(){}return e.getInstallationId=function(){if(null!==e.installationId)return e.installationId;if(!r.AvoInspector.avoStorage.isInitialized())return"unknown";var t=r.AvoInspector.avoStorage.getItem(e.cacheKey);return null==t?(e.installationId=o.default.newGuid(),r.AvoInspector.avoStorage.setItem(e.cacheKey,e.installationId)):e.installationId=t,e.installationId},Object.defineProperty(e,"cacheKey",{get:function(){return"AvoInstallationId"},enumerable:!1,configurable:!0}),e.installationId=null,e}();t.AvoInstallationId=s},243:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoNetworkCallsHandler=void 0;var o=n(249),r=n(948),s=n(611),i=n(661),a=function(){function e(e,t,n,o,r){this.samplingRate=1,this.sending=!1,this.apiKey=e,this.envName=t,this.appName=n,this.appVersion=o,this.libVersion=r}return e.prototype.callInspectorWithBatchBody=function(t,n){var o=this;if(this.sending)n("Batch sending cancelled because another batch sending is in progress. Your events will be sent with next batch.");else{var r=t.filter((function(e){return null!=e}));if(this.fixSessionAndTrackingIds(r),0!==r.length)if(Math.random()>this.samplingRate)s.AvoInspector.shouldLog&&console.log("Avo Inspector: last event schema dropped due to sampling rate.");else{s.AvoInspector.shouldLog&&(console.log("Avo Inspector: events",r),r.forEach((function(e){if("sessionStarted"===e.type)console.log("Avo Inspector: sending session started event.");else if("event"===e.type){var t=e;console.log("Avo Inspector: sending event "+t.eventName+" with schema "+JSON.stringify(t.eventProperties))}}))),this.sending=!0;var i=new XMLHttpRequest;i.open("POST",e.trackingEndpoint,!0),i.setRequestHeader("Content-Type","text/plain"),i.send(JSON.stringify(r)),i.onload=function(){if(200!==i.status)n("Error ".concat(i.status,": ").concat(i.statusText));else{var e=JSON.parse(i.response).samplingRate;void 0!==e&&(o.samplingRate=e),n(null)}},i.onerror=function(){n("Request failed")},i.ontimeout=function(){n("Request timed out")},this.sending=!1}}},e.prototype.fixSessionAndTrackingIds=function(e){var t=null,n=null;e.forEach((function(e){null!==e.sessionId&&void 0!==e.sessionId&&"unknown"!==e.sessionId&&(t=e.sessionId),null!==e.trackingId&&void 0!==e.trackingId&&"unknown"!==e.trackingId&&(n=e.trackingId)})),e.forEach((function(e){"unknown"===e.sessionId&&(e.sessionId=null!=t?t:r.AvoSessionTracker.sessionId),"unknown"===e.trackingId&&(e.trackingId=null!=n?n:i.AvoInstallationId.getInstallationId())}))},e.prototype.bodyForSessionStartedCall=function(){var e=this.createBaseCallBody();return e.type="sessionStarted",e},e.prototype.bodyForEventSchemaCall=function(e,t,n,o){var r=this.createBaseCallBody();return r.type="event",r.eventName=e,r.eventProperties=t,null!=n?(r.avoFunction=!0,r.eventId=n,r.eventHash=o):(r.avoFunction=!1,r.eventId=null,r.eventHash=null),r},e.prototype.createBaseCallBody=function(){return{apiKey:this.apiKey,appName:this.appName,appVersion:this.appVersion,libVersion:this.libVersion,env:this.envName,libPlatform:"web",messageId:o.default.newGuid(),trackingId:i.AvoInstallationId.getInstallationId(),createdAt:(new Date).toISOString(),sessionId:r.AvoSessionTracker.sessionId,samplingRate:this.samplingRate}},e.trackingEndpoint="https://api.avo.app/inspector/v1/track",e}();t.AvoNetworkCallsHandler=a},924:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoSchemaParser=void 0;var n=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=function(){function e(){}return e.extractSchema=function(e){var t=this;if(null==e)return[];var o=function(e){if(n(e)){var r=e.map((function(e){return o(e)}));return t.removeDuplicates(r)}if("object"==typeof e){var s=[];for(var i in e)if(e.hasOwnProperty(i)){var a=e[i],c={propertyName:i,propertyType:t.getPropValueType(a)};"object"==typeof a&&null!=a&&(c.children=o(a)),s.push(c)}return s}return t.getPropValueType(e)};return o(e)},e.removeDuplicates=function(e){var t={boolean:{},number:{},string:{}},n=[];return e.filter((function(e){var o=typeof e;return o in t?!t[o].hasOwnProperty(e)&&(t[o][e]=!0):!n.includes(e)&&n.push(e)}))},e.getPropValueType=function(e){var t=typeof e;return null==e?"null":"string"===t?"string":"number"===t||"bigint"===t?(e+"").includes(".")?"float":"int":"boolean"===t?"boolean":"object"===t?n(e)?"list":"object":"unknown"},e}();t.AvoSchemaParser=o},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AvoSessionTracker=void 0;var o=n(249),r=n(611),s=function(){function e(e){this._lastSessionTimestamp=null,this._sessionLengthMillis=3e5,this.avoBatcher=e}return Object.defineProperty(e,"sessionId",{get:function(){if(null===e._sessionId){if(!r.AvoInspector.avoStorage.isInitialized())return"unknown";var t=null;try{t=r.AvoInspector.avoStorage.getItem(e.idCacheKey)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}e._sessionId=null==t?this.updateSessionId():t}return e._sessionId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSessionTimestamp",{get:function(){if(null===this._lastSessionTimestamp||0===this._lastSessionTimestamp){var t=r.AvoInspector.avoStorage.getItem(e.lastSessionTimestampKey);null!=t?(this._lastSessionTimestamp=t,isNaN(this._lastSessionTimestamp)&&(this._lastSessionTimestamp=0)):this._lastSessionTimestamp=0}return this._lastSessionTimestamp},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sessionLengthMillis",{get:function(){return this._sessionLengthMillis},enumerable:!1,configurable:!0}),e.prototype.startOrProlongSession=function(t){var n=this;r.AvoInspector.avoStorage.runAfterInit((function(){t-n.lastSessionTimestamp>n._sessionLengthMillis&&(e.updateSessionId(),n.avoBatcher.handleSessionStarted()),n._lastSessionTimestamp=t,r.AvoInspector.avoStorage.setItem(e.lastSessionTimestampKey,n._lastSessionTimestamp)}))},e.updateSessionId=function(){e._sessionId=o.default.newGuid();try{r.AvoInspector.avoStorage.setItem(e.idCacheKey,e.sessionId)}catch(e){console.error("Avo Inspector: something went wrong. Please report to support@avo.app.",e)}return e._sessionId},Object.defineProperty(e,"lastSessionTimestampKey",{get:function(){return"AvoInspectorSessionTimestamp"},enumerable:!1,configurable:!0}),Object.defineProperty(e,"idCacheKey",{get:function(){return"AvoInspectorSessionId"},enumerable:!1,configurable:!0}),e._sessionId=null,e}();t.AvoSessionTracker=s},491:function(e,t){var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(r,s){function i(e){try{c(o.next(e))}catch(e){s(e)}}function a(e){try{c(o.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,a)}c((o=o.apply(e,t||[])).next())}))},s=this&&this.__generator||function(e,t){var n,o,r,s,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&a[0]?o.return:a[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,a[1])).done)return r;switch(o=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,o=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){i.label=a[1];break}if(6===a[0]&&i.label<r[1]){i.label=r[1],r=a;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(a);break}r[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],o=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.AvoStorage=void 0;var i=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.useFallbackStorage=!1,t.fallbackStorage={},t.storageInitialized=!1,t.onStorageInitFuncs=[],t.shouldLog=!1,t.suffix="",t}return o(t,e),t.prototype.init=function(e,t){this.shouldLog=e,this.suffix=t,this.initializeStorageWeb(this.isLocalStorageAvailable())},t.prototype.initializeStorageWeb=function(e){this.storageInitialized=!0,e||(this.useFallbackStorage=!0),this.onStorageInitFuncs.forEach((function(e){e()}))},t.prototype.isLocalStorageAvailable=function(){var e=(new Date).toISOString();try{return window.localStorage.setItem(e,e),window.localStorage.getItem(e)===e&&(window.localStorage.removeItem(e),!0)}catch(e){return!1}},t.prototype.isInitialized=function(){return this.storageInitialized},t.prototype.getItemAsync=function(e){return r(this,void 0,void 0,(function(){var t=this;return s(this,(function(n){switch(n.label){case 0:return[4,new Promise((function(n,o){t.runAfterInit((function(){if(t.useFallbackStorage){var o=t.fallbackStorage[e+t.suffix];n(t.parseJson(o))}else if("undefined"!=typeof window){o=void 0;try{o=window.localStorage.getItem(e+t.suffix)}catch(e){t.shouldLog&&console.error("Avo Inspector Storage getItemAsync error:",e),n(null)}n(t.parseJson(o))}else n(null)}))}))];case 1:return[2,n.sent()]}}))}))},t.prototype.getItem=function(e){var t;if(this.storageInitialized){if(this.useFallbackStorage)t=this.fallbackStorage[e+this.suffix];else if("undefined"!=typeof window)try{t=window.localStorage.getItem(e+this.suffix)}catch(e){this.shouldLog&&console.error("Avo Inspector Storage getItem error:",e)}}else t=null;return this.parseJson(t)},t.prototype.setItem=function(e,t){var n=this;this.runAfterInit((function(){if(n.useFallbackStorage)n.fallbackStorage[e+n.suffix]=JSON.stringify(t);else if("undefined"!=typeof window)try{window.localStorage.setItem(e+n.suffix,JSON.stringify(t))}catch(e){n.shouldLog&&console.error("Avo Inspector Storage setItem error:",e)}}))},t.prototype.removeItem=function(e){var t=this;this.runAfterInit((function(){if(t.useFallbackStorage)t.fallbackStorage[e+t.suffix]=null;else if("undefined"!=typeof window)try{window.localStorage.removeItem(e+t.suffix)}catch(e){t.shouldLog&&console.error("Avo Inspector Storage removeItem error:",e)}}))},t.prototype.runAfterInit=function(e){this.storageInitialized?e():this.onStorageInitFuncs.push(e)},t}(function(){function e(){}return e.prototype.parseJson=function(e){return null!=e?JSON.parse(e):null},e}()),a=function(){function e(e,t){void 0===t&&(t=""),this.Platform=null,this.Platform="browser",this.storageImpl=new i,this.storageImpl.init(e,t)}return e.prototype.isInitialized=function(){return this.storageImpl.isInitialized()},e.prototype.getItemAsync=function(e){return r(this,void 0,void 0,(function(){return s(this,(function(t){switch(t.label){case 0:return[4,this.storageImpl.getItemAsync(e)];case 1:return[2,t.sent()]}}))}))},e.prototype.getItem=function(e){return this.storageImpl.getItem(e)},e.prototype.setItem=function(e,t){this.storageImpl.setItem(e,t)},e.prototype.removeItem=function(e){this.storageImpl.removeItem(e)},e.prototype.runAfterInit=function(e){this.storageImpl.runAfterInit(e)},e}();t.AvoStorage=a},185:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deepEquals=t.isValueEmpty=void 0,t.isValueEmpty=function(e){return null==e||0==e.trim().length},t.deepEquals=function e(t,n){if(t===n)return!0;if(!(t instanceof Object&&n instanceof Object))return!1;if(t.constructor!==n.constructor)return!1;for(var o in t)if(t.hasOwnProperty(o)){if(!n.hasOwnProperty(o))return!1;if(t[o]!==n[o]){if("object"!=typeof t[o])return!1;if(!e(t[o],n[o]))return!1}}for(o in n)if(n.hasOwnProperty(o)&&!t.hasOwnProperty(o))return!1;return!0}},330:e=>{e.exports={rE:"2.0.0"}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,n),s.exports}var o={};return(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0}),e.AvoInspectorEnv=e.AvoInspector=void 0;var t=n(611);Object.defineProperty(e,"AvoInspector",{enumerable:!0,get:function(){return t.AvoInspector}});var r=n(844);Object.defineProperty(e,"AvoInspectorEnv",{enumerable:!0,get:function(){return r.AvoInspectorEnv}})})(),o})()));
|
|
@@ -47,7 +47,7 @@ var AvoInspector = /** @class */ (function () {
|
|
|
47
47
|
AvoInspector._batchFlushSeconds = 30;
|
|
48
48
|
AvoInspector._shouldLog = false;
|
|
49
49
|
}
|
|
50
|
-
AvoInspector.avoStorage = new AvoStorage_1.AvoStorage(AvoInspector._shouldLog);
|
|
50
|
+
AvoInspector.avoStorage = new AvoStorage_1.AvoStorage(AvoInspector._shouldLog, options.suffix != null ? options.suffix : "");
|
|
51
51
|
var avoNetworkCallsHandler = new AvoNetworkCallsHandler_1.AvoNetworkCallsHandler(this.apiKey, this.environment.toString(), options.appName || "", this.version, libVersion);
|
|
52
52
|
this.avoBatcher = new AvoBatcher_1.AvoBatcher(avoNetworkCallsHandler);
|
|
53
53
|
this.sessionTracker = new AvoSessionTracker_1.AvoSessionTracker(this.avoBatcher);
|
|
@@ -190,7 +190,7 @@ var AvoInspector = /** @class */ (function () {
|
|
|
190
190
|
this.sessionTracker.startOrProlongSession(Date.now());
|
|
191
191
|
if (this.avoDeduplicator.hasSeenEventParams(eventProperties, true)) {
|
|
192
192
|
if (shouldLogIfEnabled && AvoInspector.shouldLog) {
|
|
193
|
-
console.warn("Avo Inspector: WARNING! You are trying to extract schema shape that was just reported by your Avo
|
|
193
|
+
console.warn("Avo Inspector: WARNING! You are trying to extract schema shape that was just reported by your Avo Codegen. " +
|
|
194
194
|
"This is an indicator of duplicate inspector reporting. " +
|
|
195
195
|
"Please reach out to support@avo.app for advice if you are not sure how to handle this.");
|
|
196
196
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare abstract class PlatformAvoStorage {
|
|
2
|
-
abstract init(shouldLog: boolean): void;
|
|
2
|
+
abstract init(shouldLog: boolean, suffix: string): void;
|
|
3
3
|
abstract getItemAsync<T>(key: string): Promise<T | null>;
|
|
4
4
|
abstract getItem<T>(key: string): T | null;
|
|
5
5
|
abstract setItem<T>(key: string, value: T): void;
|
|
@@ -11,7 +11,7 @@ declare abstract class PlatformAvoStorage {
|
|
|
11
11
|
export declare class AvoStorage {
|
|
12
12
|
Platform: string | null;
|
|
13
13
|
storageImpl: PlatformAvoStorage;
|
|
14
|
-
constructor(shouldLog: boolean);
|
|
14
|
+
constructor(shouldLog: boolean, suffix?: string);
|
|
15
15
|
isInitialized(): boolean;
|
|
16
16
|
getItemAsync<T>(key: string): Promise<T | null>;
|
|
17
17
|
getItem<T>(key: string): T | null;
|
|
@@ -34,19 +34,21 @@ var AndroidAvoStorage = /** @class */ (function (_super) {
|
|
|
34
34
|
function AndroidAvoStorage() {
|
|
35
35
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
36
36
|
_this.androidMemoryDataToAvoidAsyncQueries = {};
|
|
37
|
-
_this.storageLib = null;
|
|
38
37
|
_this.AsyncStorage = null;
|
|
39
38
|
_this.memoryStorageInitialized = false;
|
|
40
39
|
_this.onStorageInitFuncs = [];
|
|
40
|
+
_this.reactNative = null;
|
|
41
41
|
_this.shouldLog = false;
|
|
42
|
+
_this.suffix = "";
|
|
42
43
|
return _this;
|
|
43
44
|
}
|
|
44
|
-
AndroidAvoStorage.prototype.init = function (shouldLog) {
|
|
45
|
+
AndroidAvoStorage.prototype.init = function (shouldLog, suffix) {
|
|
45
46
|
var _this = this;
|
|
46
47
|
if (!process.env.BROWSER) {
|
|
47
|
-
this.
|
|
48
|
+
this.suffix = suffix;
|
|
49
|
+
this.reactNative = require("react-native");
|
|
48
50
|
this.shouldLog = shouldLog;
|
|
49
|
-
this.AsyncStorage = this.
|
|
51
|
+
this.AsyncStorage = this.reactNative.AsyncStorage;
|
|
50
52
|
this.loadAndroidDataToMemoryToAvoidAsyncQueries(function () {
|
|
51
53
|
_this.initializeStorageAndroid();
|
|
52
54
|
});
|
|
@@ -60,10 +62,12 @@ var AndroidAvoStorage = /** @class */ (function (_super) {
|
|
|
60
62
|
console.log("Avo Inspector: android loaded data from memory");
|
|
61
63
|
}
|
|
62
64
|
keyVals.forEach(function (keyVal) {
|
|
63
|
-
var
|
|
64
|
-
_this.
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
var keyInStorage = keyVal[0];
|
|
66
|
+
if (keyInStorage.endsWith(_this.suffix)) {
|
|
67
|
+
_this.androidMemoryDataToAvoidAsyncQueries[keyInStorage] = keyVal[1];
|
|
68
|
+
if (_this.shouldLog) {
|
|
69
|
+
console.log(keyInStorage, keyVal[1]);
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
});
|
|
69
73
|
onLoaded();
|
|
@@ -77,25 +81,25 @@ var AndroidAvoStorage = /** @class */ (function (_super) {
|
|
|
77
81
|
});
|
|
78
82
|
};
|
|
79
83
|
AndroidAvoStorage.prototype.isInitialized = function () {
|
|
80
|
-
return this.
|
|
84
|
+
return this.reactNative && this.memoryStorageInitialized;
|
|
81
85
|
};
|
|
82
86
|
AndroidAvoStorage.prototype.getItemAsync = function (key) {
|
|
83
|
-
var maybeItem = this.AsyncStorage.getItem(key);
|
|
87
|
+
var maybeItem = this.AsyncStorage.getItem(key + this.suffix);
|
|
84
88
|
return maybeItem.then(function (storedItem) {
|
|
85
89
|
return storedItem != null ? JSON.parse(storedItem) : null;
|
|
86
90
|
});
|
|
87
91
|
};
|
|
88
92
|
AndroidAvoStorage.prototype.getItem = function (key) {
|
|
89
|
-
var maybeItem = this.androidMemoryDataToAvoidAsyncQueries[key];
|
|
93
|
+
var maybeItem = this.androidMemoryDataToAvoidAsyncQueries[key + this.suffix];
|
|
90
94
|
return this.parseJson(maybeItem);
|
|
91
95
|
};
|
|
92
96
|
AndroidAvoStorage.prototype.setItem = function (key, value) {
|
|
93
|
-
this.AsyncStorage.setItem(key, JSON.stringify(value));
|
|
94
|
-
this.androidMemoryDataToAvoidAsyncQueries[key] = JSON.stringify(value);
|
|
97
|
+
this.AsyncStorage.setItem(key + this.suffix, JSON.stringify(value));
|
|
98
|
+
this.androidMemoryDataToAvoidAsyncQueries[key + this.suffix] = JSON.stringify(value);
|
|
95
99
|
};
|
|
96
100
|
AndroidAvoStorage.prototype.removeItem = function (key) {
|
|
97
|
-
this.AsyncStorage.removeItem(key);
|
|
98
|
-
this.androidMemoryDataToAvoidAsyncQueries[key] = null;
|
|
101
|
+
this.AsyncStorage.removeItem(key + this.suffix);
|
|
102
|
+
this.androidMemoryDataToAvoidAsyncQueries[key + this.suffix] = null;
|
|
99
103
|
};
|
|
100
104
|
AndroidAvoStorage.prototype.runAfterInit = function (func) {
|
|
101
105
|
if (this.memoryStorageInitialized === true) {
|
|
@@ -112,10 +116,12 @@ var IosAvoStorage = /** @class */ (function (_super) {
|
|
|
112
116
|
function IosAvoStorage() {
|
|
113
117
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
114
118
|
_this.reactNative = null;
|
|
119
|
+
_this.suffix = "";
|
|
115
120
|
return _this;
|
|
116
121
|
}
|
|
117
|
-
IosAvoStorage.prototype.init = function (_shouldLog) {
|
|
122
|
+
IosAvoStorage.prototype.init = function (_shouldLog, suffix) {
|
|
118
123
|
if (!process.env.BROWSER) {
|
|
124
|
+
this.suffix = suffix;
|
|
119
125
|
this.reactNative = require("react-native");
|
|
120
126
|
}
|
|
121
127
|
};
|
|
@@ -124,23 +130,23 @@ var IosAvoStorage = /** @class */ (function (_super) {
|
|
|
124
130
|
};
|
|
125
131
|
IosAvoStorage.prototype.getItemAsync = function (key) {
|
|
126
132
|
var Settings = this.reactNative.Settings;
|
|
127
|
-
var maybeItem = Settings.get(key);
|
|
133
|
+
var maybeItem = Settings.get(key + this.suffix);
|
|
128
134
|
return Promise.resolve(this.parseJson(maybeItem));
|
|
129
135
|
};
|
|
130
136
|
IosAvoStorage.prototype.getItem = function (key) {
|
|
131
137
|
var Settings = this.reactNative.Settings;
|
|
132
|
-
var maybeItem = Settings.get(key);
|
|
138
|
+
var maybeItem = Settings.get(key + this.suffix);
|
|
133
139
|
return this.parseJson(maybeItem);
|
|
134
140
|
};
|
|
135
141
|
IosAvoStorage.prototype.setItem = function (key, value) {
|
|
136
142
|
var _a;
|
|
137
143
|
var Settings = this.reactNative.Settings;
|
|
138
|
-
Settings.set((_a = {}, _a[key] = JSON.stringify(value), _a));
|
|
144
|
+
Settings.set((_a = {}, _a[key + this.suffix] = JSON.stringify(value), _a));
|
|
139
145
|
};
|
|
140
146
|
IosAvoStorage.prototype.removeItem = function (key) {
|
|
141
147
|
var _a;
|
|
142
148
|
var Settings = this.reactNative.Settings;
|
|
143
|
-
Settings.set((_a = {}, _a[key] = null, _a));
|
|
149
|
+
Settings.set((_a = {}, _a[key + this.suffix] = null, _a));
|
|
144
150
|
};
|
|
145
151
|
IosAvoStorage.prototype.runAfterInit = function (func) {
|
|
146
152
|
func();
|
|
@@ -156,10 +162,12 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
156
162
|
_this.storageInitialized = false;
|
|
157
163
|
_this.onStorageInitFuncs = [];
|
|
158
164
|
_this.shouldLog = false;
|
|
165
|
+
_this.suffix = "";
|
|
159
166
|
return _this;
|
|
160
167
|
}
|
|
161
|
-
BrowserAvoStorage.prototype.init = function (shouldLog) {
|
|
168
|
+
BrowserAvoStorage.prototype.init = function (shouldLog, suffix) {
|
|
162
169
|
this.shouldLog = shouldLog;
|
|
170
|
+
this.suffix = suffix;
|
|
163
171
|
this.initializeStorageWeb(this.isLocalStorageAvailable());
|
|
164
172
|
};
|
|
165
173
|
BrowserAvoStorage.prototype.initializeStorageWeb = function (isLocalStorageAvailable) {
|
|
@@ -195,14 +203,14 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
195
203
|
return new Promise(function (resolve, _reject) {
|
|
196
204
|
thisStorage.runAfterInit(function () {
|
|
197
205
|
if (thisStorage.useFallbackStorage === true) {
|
|
198
|
-
var maybeItem = thisStorage.fallbackStorage[key];
|
|
206
|
+
var maybeItem = thisStorage.fallbackStorage[key + thisStorage.suffix];
|
|
199
207
|
resolve(thisStorage.parseJson(maybeItem));
|
|
200
208
|
}
|
|
201
209
|
else {
|
|
202
210
|
if (typeof window !== "undefined") {
|
|
203
211
|
var maybeItem = void 0;
|
|
204
212
|
try {
|
|
205
|
-
maybeItem = window.localStorage.getItem(key);
|
|
213
|
+
maybeItem = window.localStorage.getItem(key + thisStorage.suffix);
|
|
206
214
|
}
|
|
207
215
|
catch (error) {
|
|
208
216
|
if (thisStorage.shouldLog) {
|
|
@@ -225,12 +233,12 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
225
233
|
maybeItem = null;
|
|
226
234
|
}
|
|
227
235
|
else if (this.useFallbackStorage === true) {
|
|
228
|
-
maybeItem = this.fallbackStorage[key];
|
|
236
|
+
maybeItem = this.fallbackStorage[key + this.suffix];
|
|
229
237
|
}
|
|
230
238
|
else if (process.env.BROWSER) {
|
|
231
239
|
if (typeof window !== "undefined") {
|
|
232
240
|
try {
|
|
233
|
-
maybeItem = window.localStorage.getItem(key);
|
|
241
|
+
maybeItem = window.localStorage.getItem(key + this.suffix);
|
|
234
242
|
}
|
|
235
243
|
catch (error) {
|
|
236
244
|
if (this.shouldLog) {
|
|
@@ -245,12 +253,12 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
245
253
|
var _this = this;
|
|
246
254
|
this.runAfterInit(function () {
|
|
247
255
|
if (_this.useFallbackStorage === true) {
|
|
248
|
-
_this.fallbackStorage[key] = JSON.stringify(value);
|
|
256
|
+
_this.fallbackStorage[key + _this.suffix] = JSON.stringify(value);
|
|
249
257
|
}
|
|
250
258
|
else {
|
|
251
259
|
if (typeof window !== "undefined") {
|
|
252
260
|
try {
|
|
253
|
-
window.localStorage.setItem(key, JSON.stringify(value));
|
|
261
|
+
window.localStorage.setItem(key + _this.suffix, JSON.stringify(value));
|
|
254
262
|
}
|
|
255
263
|
catch (error) {
|
|
256
264
|
if (_this.shouldLog) {
|
|
@@ -265,12 +273,12 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
265
273
|
var _this = this;
|
|
266
274
|
this.runAfterInit(function () {
|
|
267
275
|
if (_this.useFallbackStorage === true) {
|
|
268
|
-
_this.fallbackStorage[key] = null;
|
|
276
|
+
_this.fallbackStorage[key + _this.suffix] = null;
|
|
269
277
|
}
|
|
270
278
|
else {
|
|
271
279
|
if (typeof window !== "undefined") {
|
|
272
280
|
try {
|
|
273
|
-
window.localStorage.removeItem(key);
|
|
281
|
+
window.localStorage.removeItem(key + _this.suffix);
|
|
274
282
|
}
|
|
275
283
|
catch (error) {
|
|
276
284
|
if (_this.shouldLog) {
|
|
@@ -292,7 +300,8 @@ var BrowserAvoStorage = /** @class */ (function (_super) {
|
|
|
292
300
|
return BrowserAvoStorage;
|
|
293
301
|
}(PlatformAvoStorage));
|
|
294
302
|
var AvoStorage = /** @class */ (function () {
|
|
295
|
-
function AvoStorage(shouldLog) {
|
|
303
|
+
function AvoStorage(shouldLog, suffix) {
|
|
304
|
+
if (suffix === void 0) { suffix = ""; }
|
|
296
305
|
this.Platform = null;
|
|
297
306
|
if (!process.env.BROWSER) {
|
|
298
307
|
var reactNative = require("react-native");
|
|
@@ -311,7 +320,7 @@ var AvoStorage = /** @class */ (function () {
|
|
|
311
320
|
this.Platform = "browser";
|
|
312
321
|
this.storageImpl = new BrowserAvoStorage();
|
|
313
322
|
}
|
|
314
|
-
this.storageImpl.init(shouldLog);
|
|
323
|
+
this.storageImpl.init(shouldLog, suffix);
|
|
315
324
|
}
|
|
316
325
|
AvoStorage.prototype.isInitialized = function () {
|
|
317
326
|
return this.storageImpl.isInitialized();
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
1
2
|
declare let xhrMock: {
|
|
2
|
-
open: jest.Mock<any, any
|
|
3
|
-
send: jest.Mock<any, any
|
|
4
|
-
setRequestHeader: jest.Mock<any, any
|
|
5
|
-
onload: jest.Mock<any, any
|
|
6
|
-
onerror: jest.Mock<any, any
|
|
7
|
-
ontimeout: jest.Mock<any, any
|
|
3
|
+
open: jest.Mock<any, any>;
|
|
4
|
+
send: jest.Mock<any, any>;
|
|
5
|
+
setRequestHeader: jest.Mock<any, any>;
|
|
6
|
+
onload: jest.Mock<any, any>;
|
|
7
|
+
onerror: jest.Mock<any, any>;
|
|
8
|
+
ontimeout: jest.Mock<any, any>;
|
|
8
9
|
status: number;
|
|
9
10
|
response: string;
|
|
10
11
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
1
2
|
declare let xhrErrorMock: {
|
|
2
|
-
open: jest.Mock<any, any
|
|
3
|
-
send: jest.Mock<any, any
|
|
4
|
-
setRequestHeader: jest.Mock<any, any
|
|
5
|
-
onload: jest.Mock<any, any
|
|
6
|
-
onerror: jest.Mock<any, any
|
|
7
|
-
ontimeout: jest.Mock<any, any
|
|
3
|
+
open: jest.Mock<any, any>;
|
|
4
|
+
send: jest.Mock<any, any>;
|
|
5
|
+
setRequestHeader: jest.Mock<any, any>;
|
|
6
|
+
onload: jest.Mock<any, any>;
|
|
7
|
+
onerror: jest.Mock<any, any>;
|
|
8
|
+
ontimeout: jest.Mock<any, any>;
|
|
8
9
|
status: number;
|
|
9
10
|
statusText: string;
|
|
10
11
|
};
|
|
@@ -59,13 +59,13 @@ describe("NetworkCallsHandler", function () {
|
|
|
59
59
|
var body = networkHandler.bodyForSessionStartedCall();
|
|
60
60
|
expect(body).toEqual(__assign(__assign({}, baseBody), { type: "sessionStarted" }));
|
|
61
61
|
});
|
|
62
|
-
test("bodyForEventSchemaCall returns base body + event schema used for event sending from non
|
|
62
|
+
test("bodyForEventSchemaCall returns base body + event schema used for event sending from non Avo Codegen", function () {
|
|
63
63
|
var eventName = "event name";
|
|
64
64
|
var eventProperties = [{ propertyName: "prop0", propertyType: "string" }];
|
|
65
65
|
var body = networkHandler.bodyForEventSchemaCall(eventName, eventProperties, null, null);
|
|
66
66
|
expect(body).toEqual(__assign(__assign({}, baseBody), { type: "event", eventName: eventName, eventProperties: eventProperties, avoFunction: false, eventId: null, eventHash: null }));
|
|
67
67
|
});
|
|
68
|
-
test("bodyForEventSchemaCall returns base body + event schema used for event sending from
|
|
68
|
+
test("bodyForEventSchemaCall returns base body + event schema used for event sending from Avo Codegen", function () {
|
|
69
69
|
var eventName = "event name";
|
|
70
70
|
var eventId = "event id";
|
|
71
71
|
var eventHash = "event hash";
|
|
@@ -12,6 +12,65 @@ describe("Schema Parsing", function () {
|
|
|
12
12
|
var schema = inspector.extractSchema();
|
|
13
13
|
expect(schema).toEqual([]);
|
|
14
14
|
});
|
|
15
|
+
test("Record is parsed correctly", function () {
|
|
16
|
+
// Given
|
|
17
|
+
var eventProperrtiesaRecord = {
|
|
18
|
+
prop0: true,
|
|
19
|
+
prop1: 1,
|
|
20
|
+
prop2: "str",
|
|
21
|
+
prop3: 0.5,
|
|
22
|
+
prop4: undefined,
|
|
23
|
+
prop5: null,
|
|
24
|
+
prop6: { an: "object" },
|
|
25
|
+
prop7: [
|
|
26
|
+
"a",
|
|
27
|
+
"list",
|
|
28
|
+
{
|
|
29
|
+
"obj in list": true,
|
|
30
|
+
"int field": 1,
|
|
31
|
+
},
|
|
32
|
+
["another", "list"],
|
|
33
|
+
[1, 2],
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
// When
|
|
37
|
+
var res = inspector.extractSchema(eventProperrtiesaRecord);
|
|
38
|
+
// Then
|
|
39
|
+
res.forEach(function (_a, index) {
|
|
40
|
+
var propertyName = _a.propertyName;
|
|
41
|
+
expect(propertyName).toBe("prop".concat(index));
|
|
42
|
+
});
|
|
43
|
+
expect(res.length).toBe(8);
|
|
44
|
+
expect(res[0].propertyType).toBe(constants_1.type.BOOL);
|
|
45
|
+
expect(res[1].propertyType).toBe(constants_1.type.INT);
|
|
46
|
+
expect(res[2].propertyType).toBe(constants_1.type.STRING);
|
|
47
|
+
expect(res[3].propertyType).toBe(constants_1.type.FLOAT);
|
|
48
|
+
expect(res[4].propertyType).toBe(constants_1.type.NULL);
|
|
49
|
+
expect(res[5].propertyType).toBe(constants_1.type.NULL);
|
|
50
|
+
expect(res[6].propertyType).toBe(constants_1.type.OBJECT);
|
|
51
|
+
expect(res[6].children).toMatchObject([
|
|
52
|
+
{
|
|
53
|
+
propertyName: "an",
|
|
54
|
+
propertyType: constants_1.type.STRING,
|
|
55
|
+
},
|
|
56
|
+
]);
|
|
57
|
+
expect(res[7].propertyType).toBe(constants_1.type.LIST);
|
|
58
|
+
expect(res[7].children).toMatchObject([
|
|
59
|
+
constants_1.type.STRING,
|
|
60
|
+
[
|
|
61
|
+
{
|
|
62
|
+
propertyName: "obj in list",
|
|
63
|
+
propertyType: constants_1.type.BOOL,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
propertyName: "int field",
|
|
67
|
+
propertyType: constants_1.type.INT,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
[constants_1.type.STRING],
|
|
71
|
+
[constants_1.type.INT],
|
|
72
|
+
]);
|
|
73
|
+
});
|
|
15
74
|
test("Property types and names are set", function () {
|
|
16
75
|
// Given
|
|
17
76
|
var eventProperties = {
|
|
@@ -172,7 +172,7 @@ describe("Sessions", function () {
|
|
|
172
172
|
// Then
|
|
173
173
|
expect(sessionTracker.lastSessionTimestamp).toBe(0);
|
|
174
174
|
// When
|
|
175
|
-
AvoInspector_1.AvoInspector.avoStorage.storageImpl.init(true);
|
|
175
|
+
AvoInspector_1.AvoInspector.avoStorage.storageImpl.init(true, "");
|
|
176
176
|
// Then
|
|
177
177
|
expect(sessionTracker.lastSessionTimestamp).toBe(callMoment);
|
|
178
178
|
});
|
package/dist-native/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { AvoInspector } from "./AvoInspector";
|
|
2
|
-
export { AvoInspectorEnv } from "./AvoInspectorEnv";
|
|
2
|
+
export { AvoInspectorEnv, AvoInspectorEnvType, AvoInspectorEnvValueType } from "./AvoInspectorEnv";
|
package/dist-native/utils.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValueEmpty = void 0;
|
|
4
|
-
exports.deepEquals = deepEquals;
|
|
3
|
+
exports.deepEquals = exports.isValueEmpty = void 0;
|
|
5
4
|
var isValueEmpty = function (value) {
|
|
6
5
|
return value === null || value === undefined || value.trim().length == 0;
|
|
7
6
|
};
|
|
@@ -40,3 +39,4 @@ function deepEquals(x, y) {
|
|
|
40
39
|
}
|
|
41
40
|
return true;
|
|
42
41
|
}
|
|
42
|
+
exports.deepEquals = deepEquals;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "avo-inspector",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"browser": "dist/index.js",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "tsc --emitDeclarationOnly && webpack --config webpack.config.js",
|
|
10
10
|
"build-for-script-tag": "tsc --outDir dist-browser --emitDeclarationOnly && webpack --config webpack.browserConfig.js",
|
|
11
|
-
"lint": "eslint
|
|
11
|
+
"lint": "eslint",
|
|
12
12
|
"test": "jest",
|
|
13
13
|
"test:browser": "BROWSER=1 jest",
|
|
14
14
|
"typecheck": "tsc --noEmit",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type t
|
|
2
|
+
|
|
3
|
+
type env = [
|
|
4
|
+
| #dev
|
|
5
|
+
| #staging
|
|
6
|
+
| #prod
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
type options = {
|
|
10
|
+
apiKey: string,
|
|
11
|
+
env: env,
|
|
12
|
+
version: string,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@new @module("avo-inspector")
|
|
16
|
+
external make: options => t = "AvoInspector"
|
|
17
|
+
|
|
18
|
+
@send
|
|
19
|
+
external trackSchemaFromEvent: (t, string, Js.Json.t) => unit = "trackSchemaFromEvent"
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type t
|
|
2
|
+
type env = [#dev | #prod | #staging]
|
|
3
|
+
type options = {apiKey: string, env: env, version: string}
|
|
4
|
+
@new @module("avo-inspector")
|
|
5
|
+
external make: options => t = "AvoInspector"
|
|
6
|
+
@send
|
|
7
|
+
external trackSchemaFromEvent: (t, string, Js.Json.t) => unit = "trackSchemaFromEvent"
|
package/reason/AvoInspector.re
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
type t;
|
|
2
|
-
|
|
3
|
-
[@bs.deriving jsConverter]
|
|
4
|
-
type env = [
|
|
5
|
-
| [@bs.as "dev"] `Dev
|
|
6
|
-
| [@bs.as "staging"] `Staging
|
|
7
|
-
| [@bs.as "prod"] `Prod
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
[@bs.deriving abstract]
|
|
11
|
-
type options = {
|
|
12
|
-
apiKey: string,
|
|
13
|
-
env: string,
|
|
14
|
-
version: string
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
[@bs.new] [@bs.module "avo-inspector"]
|
|
18
|
-
external make: options => t = "AvoInspector";
|
|
19
|
-
|
|
20
|
-
let make = (~apiKey, ~env, ~version, ()) => {
|
|
21
|
-
make(options(~apiKey, ~env=envToJs(env), ~version))
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
[@bs.send]
|
|
25
|
-
external trackSchemaFromEvent: t => string => Js.Json.t => unit = "trackSchemaFromEvent";
|
|
26
|
-
|