1// @amplitude/[email protected] downloaded from https://ga.jspm.io/npm:@amplitude/[email protected]/lib/esm/index.js 2 3import{__generator as e,__awaiter as t,__assign as r}from"tslib";import{EvaluationEngine as n}from"@amplitude/experiment-core";import{openDB as s}from"idb";var i=1728e5;var o=function(){function TargetingIDBStore(){var n=this;this.dbs={};this.createStore=function(r){return t(n,void 0,void 0,(function(){return e(this,(function(e){switch(e.label){case 0:return[4,s(r,1,{upgrade:function(e){e.objectStoreNames.contains("eventTypesForSession")||e.createObjectStore("eventTypesForSession",{keyPath:"sessionId"})}})];case 1:return[2,e.sent()]}}))}))};this.openOrCreateDB=function(r){return t(n,void 0,void 0,(function(){var t,n;return e(this,(function(e){switch(e.label){case 0:if(this.dbs&&this.dbs[r])return[2,this.dbs[r]];t="".concat(r.substring(0,10),"_amp_targeting");return[4,this.createStore(t)];case 1:n=e.sent();this.dbs[r]=n;return[2,n]}}))}))};this.updateEventListForSession=function(s){var i=s.sessionId,o=s.eventType,a=s.eventTime,u=s.loggerProvider,c=s.tx;return t(n,void 0,void 0,(function(){var t,n,s,v,d;var l,g;return e(this,(function(e){switch(e.label){case 0:e.trys.push([0,3,,4]);return[4,c.store.get(i)];case 1:t=e.sent();n=t?t.eventTypes:{};s=n[o]||{};v=r(r({},n),(l={},l[o]=r(r({},s),(g={},g[a]={event_type:o},g)),l));return[4,c.store.put({sessionId:i,eventTypes:v})];case 2:e.sent();return[2,v];case 3:d=e.sent();u.warn("Failed to store events for targeting ".concat(i,": ").concat(d));return[3,4];case 4:return[2,void 0]}}))}))};this.deleteOldSessionEventTypes=function(r){var s=r.currentSessionId,o=r.loggerProvider,a=r.tx;return t(n,void 0,void 0,(function(){var t,r,n,u,c;return e(this,(function(e){switch(e.label){case 0:e.trys.push([0,6,,7]);return[4,a.store.getAll()];case 1:t=e.sent();r=0;e.label=2;case 2:if(!(r<t.length))return[3,5];n=t[r];u=Date.now()-n.sessionId;return n.sessionId!==s&&u>i?[4,a.store.delete(n.sessionId)]:[3,4];case 3:e.sent();e.label=4;case 4:r++;return[3,2];case 5:return[3,7];case 6:c=e.sent();o.warn("Failed to clear old session events for targeting: ".concat(c));return[3,7];case 7:return[2]}}
3))}))};this.storeEventTypeForSession=function(r){var s=r.loggerProvider,i=r.sessionId,o=r.eventType,a=r.eventTime,u=r.apiKey;return t(n,void 0,void 0,(function(){var t,r,n,c;return e(this,(function(e){switch(e.label){case 0:e.trys.push([0,5,,6]);return[4,this.openOrCreateDB(u)];case 1:t=e.sent();r=t.transaction("eventTypesForSession","readwrite");return r?[4,this.updateEventListForSession({sessionId:i,tx:r,loggerProvider:s,eventType:o,eventTime:a})]:[2];case 2:n=e.sent();return[4,this.deleteOldSessionEventTypes({currentSessionId:i,tx:r,loggerProvider:s})];case 3:e.sent();return[4,r.done];case 4:e.sent();return[2,n];case 5:c=e.sent();s.warn("Failed to store events for targeting ".concat(i,": ").concat(c));return[3,6];case 6:return[2,void 0]}}))}))}}return TargetingIDBStore}();var a=new o;var u=function(){function Targeting(){var r=this;this.evaluateTargeting=function(n){var s=n.apiKey,i=n.loggerProvider,o=n.event,u=n.sessionId,c=n.userProperties,v=n.deviceId,d=n.flag;return t(r,void 0,void 0,(function(){var t,r,n,l,g;return e(this,(function(e){switch(e.label){case 0:return o&&o.time?[4,a.storeEventTypeForSession({loggerProvider:i,apiKey:s,sessionId:u,eventType:o.event_type,eventTime:o.time})]:[3,2];case 1:r=e.sent();return[3,3];case 2:r=void 0;e.label=3;case 3:t=r;n=t&&new Set(Object.keys(t));l={session_id:u,event:o,event_types:n&&Array.from(n),user:{device_id:v,user_properties:c}};g=this.evaluationEngine.evaluate(l,[d]);return[2,g]}}))}))};this.evaluationEngine=new n}return Targeting}();var createInstance=function(){var e=new u;return{evaluateTargeting:e.evaluateTargeting.bind(e)}};var c=createInstance();var v=c.evaluateTargeting;export{v as evaluateTargeting}; 4
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.