kv-test-lib 3.5.2-rc.2 → 3.5.2-rc.3

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 (39) hide show
  1. package/es5_dist/adapters/browser.js +7 -11
  2. package/es5_dist/adapters/browser.js.map +1 -1
  3. package/es5_dist/browser/browser.js +0 -4
  4. package/es5_dist/browser/browser.js.map +1 -1
  5. package/es5_dist/browser/cookies.js +0 -4
  6. package/es5_dist/browser/cookies.js.map +1 -1
  7. package/es5_dist/browser/persist.js +79 -96
  8. package/es5_dist/browser/persist.js.map +1 -1
  9. package/es5_dist/generated/buildInfo.js +1 -1
  10. package/es5_dist/generated/buildInfo.js.map +1 -1
  11. package/es5_dist/http.js +5 -9
  12. package/es5_dist/http.js.map +1 -1
  13. package/es5_dist/interfaces.js +0 -7
  14. package/es5_dist/interfaces.js.map +1 -1
  15. package/es5_dist/jobqueue.js +92 -112
  16. package/es5_dist/jobqueue.js.map +1 -1
  17. package/es5_dist/kochava.js +134 -366
  18. package/es5_dist/kochava.js.map +1 -1
  19. package/es5_dist/measurementEvent.js +1 -3
  20. package/es5_dist/measurementEvent.js.map +1 -1
  21. package/es5_dist/payloads/event.js +3 -7
  22. package/es5_dist/payloads/event.js.map +1 -1
  23. package/es5_dist/payloads/identityLink.js +3 -7
  24. package/es5_dist/payloads/identityLink.js.map +1 -1
  25. package/es5_dist/payloads/install.js +28 -46
  26. package/es5_dist/payloads/install.js.map +1 -1
  27. package/es5_dist/payloads/kvinit.js +25 -38
  28. package/es5_dist/payloads/kvinit.js.map +1 -1
  29. package/es5_dist/payloads/payload.js +0 -9
  30. package/es5_dist/payloads/payload.js.map +1 -1
  31. package/es5_dist/payloads/update.js +3 -7
  32. package/es5_dist/payloads/update.js.map +1 -1
  33. package/es5_dist/product.js +1 -16
  34. package/es5_dist/product.js.map +1 -1
  35. package/es5_dist/utils/log.js +1 -5
  36. package/es5_dist/utils/log.js.map +1 -1
  37. package/es5_dist/utils/utils.js +0 -7
  38. package/es5_dist/utils/utils.js.map +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../node/jobqueue.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","Event","IdLink","Update","Log","uuidv4","PersistKey","updatePersistedValue","getItem","jobIsUpdateJob","obj","jobIsIdLinkJob","jobIsEventJob","JobQueue","fn_resolveWait","updateQueue","idLinkQueue","eventQueue","processing","stopped","paused","prototype","persistEventQueue","_a","EventQueue","JSON","stringify","persistIdLinkQueue","IdLinkQueue","persistUpdateQueue","UpdateQueue","start","instance","_b","_c","_d","_e","_f","_g","_h","_j","_k","parse","invalidatedBool","updateUpdateJobs","trace","updateIdLinkJobs","updateEventJobs","dequeueAndProcessJobs","stop","timeOut","clearTimeout","fn_resolve","pause","enqueueUpdate","deviceIds","keyName","preStartBody","postStartBody","existingPostStart","i","existingPreStart","Object","keys","constructPreStart","installDone","kvinitDone","constructPostStart","id","queuedBeforeStart","retries","undefined","enqueueIdLink","idLink","idLinkPreStartBody","newJob_1","newJob","enqueueEvent","args","eventName","eventData","eventPreStartBody","newEventJob","job","dequeueJob","processJob","persistQueueForJob","shift","warn","updateKeyName","updateKeyAllowed","_i","allowedKey","denyIdLinkKey","denyName","success","_loop_1","this_1","state_1","_this","kochavaConfig","install","updates_enabled","debug","privacy","allow_custom_ids","concat","deny_identity_links","deny_event_names","retryWaterfall","retryIndex","retrySec_1","sdkDisabled","attemptJob","networking","retry_waterfall","error","setTimeout","action","send"],"mappings":"AAAA;;;;AAIA,IAAIA,YAAa,QAAQ,KAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,aAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,eAAOA,iBAAiBH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,oBAAQD,KAAR;AAAiB,SAA5C,CAApC;AAAoF;AAC5G,WAAO,KAAKH,MAAMA,IAAIK,OAAV,CAAL,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,iBAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,gBAAI;AAAEK,qBAAKP,UAAUQ,IAAV,CAAeN,KAAf,CAAL;AAA8B,aAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC3F,iBAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,gBAAI;AAAEK,qBAAKP,UAAU,OAAV,EAAmBE,KAAnB,CAAL;AAAkC,aAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC9F,iBAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,mBAAOC,IAAP,GAAcT,QAAQQ,OAAOT,KAAf,CAAd,GAAsCD,MAAMU,OAAOT,KAAb,EAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;AAC9GH,aAAK,CAACP,YAAYA,UAAUc,KAAV,CAAgBjB,OAAhB,EAAyBC,cAAc,EAAvC,CAAb,EAAyDU,IAAzD,EAAL;AACH,KALM,CAAP;AAMH,CARD;AASA,IAAIO,cAAe,QAAQ,KAAKA,WAAd,IAA8B,UAAUlB,OAAV,EAAmBmB,IAAnB,EAAyB;AACrE,QAAIC,IAAI,EAAEC,OAAO,CAAT,EAAYC,MAAM,YAAW;AAAE,gBAAIC,EAAE,CAAF,IAAO,CAAX,EAAc,MAAMA,EAAE,CAAF,CAAN,CAAY,OAAOA,EAAE,CAAF,CAAP;AAAc,SAAvE,EAAyEC,MAAM,EAA/E,EAAmFC,KAAK,EAAxF,EAAR;AAAA,QAAsGC,CAAtG;AAAA,QAAyGC,CAAzG;AAAA,QAA4GJ,CAA5G;AAAA,QAA+GK,CAA/G;AACA,WAAOA,IAAI,EAAEjB,MAAMkB,KAAK,CAAL,CAAR,EAAiB,SAASA,KAAK,CAAL,CAA1B,EAAmC,UAAUA,KAAK,CAAL,CAA7C,EAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,EAAEE,OAAOC,QAAT,IAAqB,YAAW;AAAE,eAAO,IAAP;AAAc,KAAjF,CAA5D,EAAgJH,CAAvJ;AACA,aAASC,IAAT,CAAcG,CAAd,EAAiB;AAAE,eAAO,UAAUC,CAAV,EAAa;AAAE,mBAAOvB,KAAK,CAACsB,CAAD,EAAIC,CAAJ,CAAL,CAAP;AAAsB,SAA5C;AAA+C;AAClE,aAASvB,IAAT,CAAcwB,EAAd,EAAkB;AACd,YAAIR,CAAJ,EAAO,MAAM,IAAIS,SAAJ,CAAc,iCAAd,CAAN;AACP,eAAOf,CAAP,EAAU,IAAI;AACV,gBAAIM,IAAI,CAAJ,EAAOC,MAAMJ,IAAIW,GAAG,CAAH,IAAQ,CAAR,GAAYP,EAAE,QAAF,CAAZ,GAA0BO,GAAG,CAAH,IAAQP,EAAE,OAAF,MAAe,CAACJ,IAAII,EAAE,QAAF,CAAL,KAAqBJ,EAAEa,IAAF,CAAOT,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,EAAEhB,IAAlG,KAA2G,CAAC,CAACY,IAAIA,EAAEa,IAAF,CAAOT,CAAP,EAAUO,GAAG,CAAH,CAAV,CAAL,EAAuBnB,IAA9I,EAAoJ,OAAOQ,CAAP;AACpJ,gBAAII,IAAI,CAAJ,EAAOJ,CAAX,EAAcW,KAAK,CAACA,GAAG,CAAH,IAAQ,CAAT,EAAYX,EAAElB,KAAd,CAAL;AACd,oBAAQ6B,GAAG,CAAH,CAAR;AACI,qBAAK,CAAL,CAAQ,KAAK,CAAL;AAAQX,wBAAIW,EAAJ,CAAQ;AACxB,qBAAK,CAAL;AAAQd,sBAAEC,KAAF,GAAW,OAAO,EAAEhB,OAAO6B,GAAG,CAAH,CAAT,EAAgBnB,MAAM,KAAtB,EAAP;AACnB,qBAAK,CAAL;AAAQK,sBAAEC,KAAF,GAAWM,IAAIO,GAAG,CAAH,CAAJ,CAAWA,KAAK,CAAC,CAAD,CAAL,CAAU;AACxC,qBAAK,CAAL;AAAQA,yBAAKd,EAAEK,GAAF,CAAMY,GAAN,EAAL,CAAkBjB,EAAEI,IAAF,CAAOa,GAAP,GAAc;AACxC;AACI,wBAAI,EAAEd,IAAIH,EAAEI,IAAN,EAAYD,IAAIA,EAAEe,MAAF,GAAW,CAAX,IAAgBf,EAAEA,EAAEe,MAAF,GAAW,CAAb,CAAlC,MAAuDJ,GAAG,CAAH,MAAU,CAAV,IAAeA,GAAG,CAAH,MAAU,CAAhF,CAAJ,EAAwF;AAAEd,4BAAI,CAAJ,CAAO;AAAW;AAC5G,wBAAIc,GAAG,CAAH,MAAU,CAAV,KAAgB,CAACX,CAAD,IAAOW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAAR,IAAgBW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAA/C,CAAJ,EAA2D;AAAEH,0BAAEC,KAAF,GAAUa,GAAG,CAAH,CAAV,CAAiB;AAAQ;AACtF,wBAAIA,GAAG,CAAH,MAAU,CAAV,IAAed,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAA7B,EAAmC;AAAEH,0BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBA,IAAIW,EAAJ,CAAQ;AAAQ;AACrE,wBAAIX,KAAKH,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAAnB,EAAyB;AAAEH,0BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBH,EAAEK,GAAF,CAAMc,IAAN,CAAWL,EAAX,EAAgB;AAAQ;AACnE,wBAAIX,EAAE,CAAF,CAAJ,EAAUH,EAAEK,GAAF,CAAMY,GAAN;AACVjB,sBAAEI,IAAF,CAAOa,GAAP,GAAc;AAXtB;AAaAH,iBAAKf,KAAKiB,IAAL,CAAUpC,OAAV,EAAmBoB,CAAnB,CAAL;AACH,SAjBS,CAiBR,OAAOR,CAAP,EAAU;AAAEsB,iBAAK,CAAC,CAAD,EAAItB,CAAJ,CAAL,CAAae,IAAI,CAAJ;AAAQ,SAjBzB,SAiBkC;AAAED,gBAAIH,IAAI,CAAR;AAAY;AAC1D,YAAIW,GAAG,CAAH,IAAQ,CAAZ,EAAe,MAAMA,GAAG,CAAH,CAAN,CAAa,OAAO,EAAE7B,OAAO6B,GAAG,CAAH,IAAQA,GAAG,CAAH,CAAR,GAAgB,KAAK,CAA9B,EAAiCnB,MAAM,IAAvC,EAAP;AAC/B;AACJ,CA1BD;AA2BA,OAAO,KAAKyB,KAAZ,MAAuB,kBAAvB;AACA,OAAO,KAAKC,MAAZ,MAAwB,yBAAxB;AACA,OAAO,KAAKC,MAAZ,MAAwB,mBAAxB;AACA,SAASC,GAAT,QAAoB,aAApB;AACA,SAASC,MAAT,QAAuB,eAAvB;AACA,SAASC,UAAT,EAAqBC,oBAArB,EAA2CC,OAA3C,QAA0D,mBAA1D;AACA,SAASC,cAAT,CAAwBC,GAAxB,EAA6B;AACzB,WAAO,eAAeA,GAAtB;AACH;AACD,SAASC,cAAT,CAAwBD,GAAxB,EAA6B;AACzB,WAAO,YAAYA,GAAnB;AACH;AACD,SAASE,aAAT,CAAuBF,GAAvB,EAA4B;AACxB,WAAO,eAAeA,GAAtB;AACH;AACD,IAAIG,WAAW,aAAe,YAAY;AACtC,aAASA,QAAT,GAAoB;AAChB;AACA;AACA,aAAKC,cAAL,GAAsB,IAAtB;AACA,aAAKC,WAAL,GAAmB,EAAnB;AACA,aAAKC,WAAL,GAAmB,EAAnB;AACA,aAAKC,UAAL,GAAkB,EAAlB;AACA,aAAKC,UAAL,GAAkB,KAAlB;AACA,aAAKC,OAAL,GAAe,KAAf;AACA,aAAKC,MAAL,GAAc,KAAd;AACH;AACDP,aAASQ,SAAT,CAAmBC,iBAAnB,GAAuC,YAAY;AAC/C,eAAO9D,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcyB,qBAAqBD,WAAWkB,UAAhC,EAA4CC,KAAKC,SAAL,CAAe,KAAKT,UAApB,CAA5C,EAA6E,KAA7E,CAAd,CAAP;AACR,yBAAK,CAAL;AACIM,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA8B,aAASQ,SAAT,CAAmBM,kBAAnB,GAAwC,YAAY;AAChD,eAAOnE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcyB,qBAAqBD,WAAWsB,WAAhC,EAA6CH,KAAKC,SAAL,CAAe,KAAKV,WAApB,CAA7C,EAA+E,KAA/E,CAAd,CAAP;AACR,yBAAK,CAAL;AACIO,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA8B,aAASQ,SAAT,CAAmBQ,kBAAnB,GAAwC,YAAY;AAChD,eAAOrE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcyB,qBAAqBD,WAAWwB,WAAhC,EAA6CL,KAAKC,SAAL,CAAe,KAAKX,WAApB,CAA7C,EAA+E,KAA/E,CAAd,CAAP;AACR,yBAAK,CAAL;AACIQ,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA8B,aAASQ,SAAT,CAAmBU,KAAnB,GAA2B,UAAUC,QAAV,EAAoB;AAC3C,eAAOxE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI+D,EAAJ,EAAQU,EAAR,EAAYC,EAAZ,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC,EAAoCC,EAApC;AACA,mBAAO7D,YAAY,IAAZ,EAAkB,UAAU8D,EAAV,EAAc;AACnC,wBAAQA,GAAG3D,KAAX;AACI,yBAAK,CAAL;AACI;AACA;AACA;AACAyC,6BAAK,IAAL;AACAW,6BAAK,CAACD,KAAKR,IAAN,EAAYiB,KAAjB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAclC,QAAQF,WAAWwB,WAAnB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACI;AACA;AACA;AACAP,2BAAGR,WAAH,GAAiBmB,GAAGxD,KAAH,CAASuD,EAAT,EAAa,CAACQ,GAAG1D,IAAH,EAAD,CAAb,KAA6B,EAA9C;AACA,4BAAIiD,SAASW,eAAb,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKC,gBAAL,CAAsBZ,QAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIS,2BAAG1D,IAAH;AACAqB,4BAAIyC,KAAJ,CAAU,sBAAV,EAAkCpB,KAAKiB,KAAL,CAAWjB,KAAKC,SAAL,CAAe,KAAKX,WAApB,CAAX,CAAlC;AACAoB,6BAAK,IAAL;AACAE,6BAAK,CAACD,KAAKX,IAAN,EAAYiB,KAAjB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAclC,QAAQF,WAAWsB,WAAnB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIO,2BAAGnB,WAAH,GAAiBqB,GAAG3D,KAAH,CAAS0D,EAAT,EAAa,CAACK,GAAG1D,IAAH,EAAD,CAAb,KAA6B,EAA9C;AACA,4BAAIiD,SAASW,eAAb,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKG,gBAAL,CAAsBd,QAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIS,2BAAG1D,IAAH;AACAqB,4BAAIyC,KAAJ,CAAU,sBAAV,EAAkCpB,KAAKiB,KAAL,CAAWjB,KAAKC,SAAL,CAAe,KAAKV,WAApB,CAAX,CAAlC;AACAsB,6BAAK,IAAL;AACAE,6BAAK,CAACD,KAAKd,IAAN,EAAYiB,KAAjB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAclC,QAAQF,WAAWkB,UAAnB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIc,2BAAGrB,UAAH,GAAgBuB,GAAG9D,KAAH,CAAS6D,EAAT,EAAa,CAACE,GAAG1D,IAAH,EAAD,CAAb,KAA6B,EAA7C;AACA,4BAAIiD,SAASW,eAAb,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKI,eAAL,CAAqBf,QAArB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIS,2BAAG1D,IAAH;AACAqB,4BAAIyC,KAAJ,CAAU,qBAAV,EAAiCpB,KAAKiB,KAAL,CAAWjB,KAAKC,SAAL,CAAe,KAAKT,UAApB,CAAX,CAAjC;AACA,4BAAIe,SAASW,eAAb,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,6BAAKxB,OAAL,GAAe,KAAf;AACA,6BAAKC,MAAL,GAAc,KAAd;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK4B,qBAAL,CAA2BhB,QAA3B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIS,2BAAG1D,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAhDR;AAkDH,aAnDM,CAAP;AAoDH,SAtDM,CAAP;AAuDH,KAxDD;AAyDA8B,aAASQ,SAAT,CAAmB4B,IAAnB,GAA0B,YAAY;AAClC,aAAK9B,OAAL,GAAe,IAAf;AACA,YAAI,KAAK+B,OAAT,EACIC,aAAa,KAAKD,OAAlB;AACJ;AACA;AACA,YAAI,KAAKpC,cAAT,EAAyB;AACrB,gBAAIsC,aAAa,KAAKtC,cAAtB;AACA,iBAAKA,cAAL,GAAsB,IAAtB;AACAsC;AACH;AACD,aAAKlC,UAAL,GAAkB,KAAlB;AACH,KAZD;AAaAL,aAASQ,SAAT,CAAmBgC,KAAnB,GAA2B,YAAY;AACnC,aAAKjC,MAAL,GAAc,IAAd;AACH,KAFD;AAGAP,aAASQ,SAAT,CAAmBiC,aAAnB,GAAmC,UAAUtB,QAAV,EAAoBuB,SAApB,EAA+B;AAC9D,eAAO/F,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIgG,OAAJ,EAAaC,YAAb,EAA2BC,aAA3B,EAA0CC,iBAA1C,EAA6DC,CAA7D,EAAgEC,gBAAhE,EAAkFD,CAAlF;AACA,mBAAOjF,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACI0E,kCAAUM,OAAOC,IAAP,CAAYR,SAAZ,EAAuB,CAAvB,CAAV;AACAE,uCAAetD,OAAO6D,iBAAP,CAAyBhC,QAAzB,EAAmCuB,SAAnC,CAAf;AACA,4BAAI,EAAEvB,SAASiC,WAAT,IAAwBjC,SAASkC,UAAnC,CAAJ,EAAoD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACpDR,wCAAgBvD,OAAOgE,kBAAP,CAA0BnC,QAA1B,EAAoCyB,YAApC,CAAhB;AACAE,4CAAoB,CAAC,CAArB;AACA,6BAAKC,IAAI,CAAT,EAAYA,IAAI,KAAK7C,WAAL,CAAiBhB,MAAjC,EAAyC6D,GAAzC,EAA8C;AAC1C,gCAAIE,OAAOC,IAAP,CAAY,KAAKhD,WAAL,CAAiB6C,CAAjB,EAAoBL,SAAhC,EAA2C,CAA3C,MAAkDC,OAAtD,EAA+D;AAC3DG,oDAAoBC,CAApB;AACA;AACH;AACJ;AACD,4BAAID,qBAAqB,CAAzB,EAA4B;AACxB,iCAAK5C,WAAL,CAAiB4C,iBAAjB,EAAoCF,YAApC,GAAmDA,YAAnD;AACA,iCAAK1C,WAAL,CAAiB4C,iBAAjB,EAAoCD,aAApC,GAAoDA,aAApD;AACA,iCAAK3C,WAAL,CAAiB4C,iBAAjB,EAAoCJ,SAApC,GAAgDA,SAAhD;AACH,yBAJD,MAKK;AACD,iCAAKxC,WAAL,CAAiBf,IAAjB,CAAsB;AAClBoE,oCAAI/D,QADc;AAElBgE,mDAAmB,KAFD;AAGlBZ,8CAAcA,YAHI;AAIlBC,+CAAeA,aAJG;AAKlBY,yCAAS,CALS;AAMlBf,2CAAWA;AANO,6BAAtB;AAQH;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK1B,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIN,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKiE,qBAAL,CAA2BhB,QAA3B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIT,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACI8E,2CAAmB,CAAC,CAApB;AACA,6BAAKD,IAAI,CAAT,EAAYA,IAAI,KAAK7C,WAAL,CAAiBhB,MAAjC,EAAyC6D,GAAzC,EAA8C;AAC1C,gCAAIE,OAAOC,IAAP,CAAY,KAAKhD,WAAL,CAAiB6C,CAAjB,EAAoBL,SAAhC,EAA2C,CAA3C,MAAkDC,OAAtD,EAA+D;AAC3DK,mDAAmBD,CAAnB;AACA;AACH;AACJ;AACD,4BAAIC,oBAAoB,CAAxB,EAA2B;AACvB,iCAAK9C,WAAL,CAAiB8C,gBAAjB,EAAmCJ,YAAnC,GAAkDA,YAAlD;AACA,iCAAK1C,WAAL,CAAiB8C,gBAAjB,EAAmCN,SAAnC,GAA+CA,SAA/C;AACH,yBAHD,MAIK;AACD,iCAAKxC,WAAL,CAAiBf,IAAjB,CAAsB;AAClBoE,oCAAI/D,QADc;AAElBgE,mDAAmB,IAFD;AAGlBZ,8CAAcA,YAHI;AAIlBC,+CAAea,SAJG;AAKlBD,yCAAS,CALS;AAMlBf,2CAAWA;AANO,6BAAtB;AAQH;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK1B,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIN,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AA5DR;AA8DH,aA/DM,CAAP;AAgEH,SAlEM,CAAP;AAmEH,KApED;AAqEA8B,aAASQ,SAAT,CAAmBmD,aAAnB,GAAmC,UAAUxC,QAAV,EAAoByC,MAApB,EAA4B;AAC3D,eAAOjH,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIkH,kBAAJ,EAAwBhB,aAAxB,EAAuCiB,QAAvC,EAAiDC,MAAjD;AACA,mBAAOjG,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACI4F,6CAAqBxE,OAAO8D,iBAAP,CAAyBhC,QAAzB,EAAmCyC,MAAnC,CAArB;AACA,4BAAI,EAAEzC,SAASiC,WAAT,IAAwBjC,SAASkC,UAAnC,CAAJ,EAAoD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACpDR,wCAAgBxD,OAAOiE,kBAAP,CAA0BnC,QAA1B,EAAoC0C,kBAApC,CAAhB;AACAC,mCAAW;AACPP,gCAAI/D,QADG;AAEPgE,+CAAmB,KAFZ;AAGPZ,0CAAciB,kBAHP;AAIPhB,2CAAeA,aAJR;AAKPY,qCAAS,CALF;AAMPG,oCAAQA;AAND,yBAAX;AAQA,6BAAKzD,WAAL,CAAiBhB,IAAjB,CAAsB2E,QAAtB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKhD,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKiE,qBAAL,CAA2BhB,QAA3B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIT,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACI6F,iCAAS;AACLR,gCAAI/D,QADC;AAELgE,+CAAmB,IAFd;AAGLZ,0CAAciB,kBAHT;AAILhB,2CAAea,SAJV;AAKLD,qCAAS,CALJ;AAMLG,oCAAQA;AANH,yBAAT;AAQA,6BAAKzD,WAAL,CAAiBhB,IAAjB,CAAsB4E,MAAtB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKjD,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAlCR;AAoCH,aArCM,CAAP;AAsCH,SAxCM,CAAP;AAyCH,KA1CD;AA2CA8B,aAASQ,SAAT,CAAmBwD,YAAnB,GAAkC,UAAU7C,QAAV,EAAoB8C,IAApB,EAA0B;AACxD,eAAOtH,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIuH,SAAJ,EAAeC,SAAf,EAA0BC,iBAA1B,EAA6CvB,aAA7C,EAA4DkB,MAA5D,EAAoEM,WAApE;AACA,mBAAOvG,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACIiG,oCAAYD,KAAK,CAAL,CAAZ;AACAE,oCAAYF,KAAK,CAAL,CAAZ;AACAG,4CAAoBhF,MAAM+D,iBAAN,CAAwBhC,QAAxB,EAAkC+C,SAAlC,EAA6CC,SAA7C,CAApB;AACA,4BAAI,EAAEhD,SAASiC,WAAT,IAAwBjC,SAASkC,UAAnC,CAAJ,EAAoD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACpDR,wCAAgBzD,MAAMkE,kBAAN,CAAyBnC,QAAzB,EAAmCiD,iBAAnC,CAAhB;AACAL,iCAAS;AACLR,gCAAI/D,QADC;AAELgE,+CAAmB,KAFd;AAGLZ,0CAAcwB,iBAHT;AAILvB,2CAAeA,aAJV;AAKLY,qCAAS,CALJ;AAMLS,uCAAWA;AANN,yBAAT;AAQA,6BAAK9D,UAAL,CAAgBjB,IAAhB,CAAqB4E,MAArB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKtD,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKiE,qBAAL,CAA2BhB,QAA3B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIT,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACImG,sCAAc;AACVd,gCAAI/D,QADM;AAEVgE,+CAAmB,IAFT;AAGVZ,0CAAcwB,iBAHJ;AAIVvB,2CAAea,SAJL;AAKVD,qCAAS,CALC;AAMVS,uCAAWA;AAND,yBAAd;AAQA,6BAAK9D,UAAL,CAAgBjB,IAAhB,CAAqBkF,WAArB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK5D,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AApCR;AAsCH,aAvCM,CAAP;AAwCH,SA1CM,CAAP;AA2CH,KA5CD;AA6CA8B,aAASQ,SAAT,CAAmB2B,qBAAnB,GAA2C,UAAUhB,QAAV,EAAoB;AAC3D,eAAOxE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI2H,GAAJ,EAAS5G,MAAT;AACA,mBAAOI,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI,KAAKoC,UAAT,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ,4BAAI,KAAKE,MAAT,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ,4BAAI,KAAKD,OAAT,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ,4BAAIa,SAASW,eAAb,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJpB,2BAAGzC,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AACI,4BAAI,EAAE,CAAC,KAAKqC,OAAN,IAAiB,CAAC,KAAKC,MAAvB,IAAiC,CAACY,SAASW,eAA7C,CAAJ,EAAmE,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACnEwC,8BAAM,KAAKC,UAAL,EAAN;AACA,4BAAI,CAACD,GAAL,EAAU;AACN,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACH;AACD/E,4BAAIyC,KAAJ,CAAU,gBAAV,EAA4BsC,GAA5B;AACA,6BAAKjE,UAAL,GAAkB,IAAlB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKmE,UAAL,CAAgBrD,QAAhB,EAA0BmD,GAA1B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACI5G,iCAASgD,GAAGxC,IAAH,EAAT;AACA,4BAAI,KAAKoC,OAAT,EAAkB;AACd,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACD;AACA;AACA,4BAAIa,SAASW,eAAb,EAA8B;AAC1B,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACD,6BAAKzB,UAAL,GAAkB,KAAlB;AACA,4BAAI,CAAC3C,MAAL,EAAa,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACb,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK+G,kBAAL,CAAwBH,GAAxB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACI5D,2BAAGxC,IAAH;AACAwC,2BAAGzC,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACR,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AArCZ;AAuCH,aAxCM,CAAP;AAyCH,SA3CM,CAAP;AA4CH,KA7CD;AA8CA+B,aAASQ,SAAT,CAAmB+D,UAAnB,GAAgC,YAAY;AACxC,YAAI7D,EAAJ,EAAQU,EAAR,EAAYC,EAAZ;AACA,eAAO,CAACA,KAAK,CAACD,KAAK,CAACV,KAAK,KAAKR,WAAL,CAAiBwE,KAAjB,EAAN,MAAoC,IAApC,IAA4ChE,OAAO,KAAK,CAAxD,GAA4DA,EAA5D,GAAiE,KAAKP,WAAL,CAAiBuE,KAAjB,EAAvE,MAAqG,IAArG,IAA6GtD,OAAO,KAAK,CAAzH,GAA6HA,EAA7H,GAAkI,KAAKhB,UAAL,CAAgBsE,KAAhB,EAAxI,MAAqK,IAArK,IAA6KrD,OAAO,KAAK,CAAzL,GAA6LA,EAA7L,GAAkM,IAAzM;AACH,KAHD;AAIArB,aAASQ,SAAT,CAAmBiE,kBAAnB,GAAwC,UAAUH,GAAV,EAAe;AACnD,eAAO3H,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI,CAAC2B,eAAe0E,GAAf,CAAL,EAA0B,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC1B,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKtD,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIN,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACI,4BAAI,CAAC4B,eAAewE,GAAf,CAAL,EAA0B,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC1B,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKxD,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACI,4BAAI,CAAC6B,cAAcuE,GAAd,CAAL,EAAyB,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACzB,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK7D,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGxC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACIqB,4BAAIoF,IAAJ,CAAS,iEAAT;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AArBR;AAuBH,aAxBM,CAAP;AAyBH,SA1BM,CAAP;AA2BH,KA5BD;AA6BA3E,aAASQ,SAAT,CAAmBgE,UAAnB,GAAgC,UAAUrD,QAAV,EAAoBmD,GAApB,EAAyB;AACrD,eAAO3H,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIiI,aAAJ,EAAmBC,gBAAnB,EAAqCC,EAArC,EAAyCpE,EAAzC,EAA6CqE,UAA7C,EAAyD3D,EAAzD,EAA6DC,EAA7D,EAAiE2D,aAAjE,EAAgF1D,EAAhF,EAAoFC,EAApF,EAAwF0D,QAAxF,EAAkGC,OAAlG,EAA2GC,OAA3G,EAAoHC,MAApH,EAA4HC,OAA5H;AACA,gBAAIC,QAAQ,IAAZ;AACA,mBAAOxH,YAAY,IAAZ,EAAkB,UAAU0D,EAAV,EAAc;AACnC,wBAAQA,GAAGvD,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI2B,eAAe0E,GAAf,CAAJ,EAAyB;AACrB,gCAAI,CAACnD,SAASoE,aAAT,CAAuBC,OAAvB,CAA+BC,eAApC,EAAqD;AACjDlG,oCAAImG,KAAJ,CAAU,gDAAV;AACA,uCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACDd,4CAAgB3B,OAAOC,IAAP,CAAYoB,IAAI5B,SAAhB,EAA2B,CAA3B,CAAhB;AACAmC,+CAAmB,KAAnB;AACA,iCAAKC,KAAK,CAAL,EAAQpE,KAAKS,SAASoE,aAAT,CAAuBI,OAAvB,CAA+BC,gBAAjD,EAAmEd,KAAKpE,GAAGxB,MAA3E,EAAmF4F,IAAnF,EAAyF;AACrFC,6CAAarE,GAAGoE,EAAH,CAAb;AACA,oCAAIC,eAAeH,aAAnB,EAAkC;AAC9BC,uDAAmB,IAAnB;AACA;AACH;AACJ;AACD,gCAAI,CAACA,gBAAL,EAAuB;AACnBtF,oCAAImG,KAAJ,CAAU,GAAGG,MAAH,CAAUjB,aAAV,EAAyB,gDAAzB,CAAV;AACA,uCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACJ,yBAlBD,MAmBK,IAAI9E,eAAewE,GAAf,CAAJ,EAAyB;AAC1B,iCAAKlD,KAAK,CAAL,EAAQC,KAAKF,SAASoE,aAAT,CAAuBI,OAAvB,CAA+BG,mBAAjD,EAAsE1E,KAAKC,GAAGnC,MAA9E,EAAsFkC,IAAtF,EAA4F;AACxF4D,gDAAgB3D,GAAGD,EAAH,CAAhB;AACA,oCAAI4D,kBAAkB/B,OAAOC,IAAP,CAAYoB,IAAIV,MAAhB,EAAwB,CAAxB,CAAtB,EAAkD;AAC9CrE,wCAAImG,KAAJ,CAAU,wBAAwBG,MAAxB,CAA+Bb,aAA/B,EAA8C,qBAA9C,CAAV;AACA,2CAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACJ;AACJ,yBARI,MASA,IAAIjF,cAAcuE,GAAd,CAAJ,EAAwB;AACzB,iCAAKhD,KAAK,CAAL,EAAQC,KAAKJ,SAASoE,aAAT,CAAuBI,OAAvB,CAA+BI,gBAAjD,EAAmEzE,KAAKC,GAAGrC,MAA3E,EAAmFoC,IAAnF,EAAyF;AACrF2D,2CAAW1D,GAAGD,EAAH,CAAX;AACA,oCAAI2D,aAAaX,IAAIJ,SAArB,EAAgC;AAC5B3E,wCAAImG,KAAJ,CAAU,qBAAqBG,MAArB,CAA4BZ,QAA5B,EAAsC,qBAAtC,CAAV;AACA,2CAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACJ;AACJ;AACDC,kCAAU,KAAV;AACAC,kCAAU,YAAY;AAClB,gCAAIa,cAAJ,EAAoBC,UAApB,EAAgCC,UAAhC;AACA,mCAAOpI,YAAY,IAAZ,EAAkB,UAAU2D,EAAV,EAAc;AACnC,wCAAQA,GAAGxD,KAAX;AACI,yCAAK,CAAL;AACI;AACA,4CAAIkD,SAASW,eAAb,EAA8B;AAC1B,mDAAO,CAAC,CAAD,CAAG,UAAH,EAAe,EAAE7E,OAAO,IAAT,EAAf,CAAP;AACH;AACD,4CAAI,CAAC,CAACkE,SAASgF,WAAf,EAA4B,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC5B,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAcf,OAAOgB,UAAP,CAAkBjF,QAAlB,EAA4BmD,GAA5B,CAAd,CAAP;AACJ,yCAAK,CAAL;AACIY,kDAAUzD,GAAGvD,IAAH,EAAV;AACA,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACJ,yCAAK,CAAL;AACIgH,kDAAU,IAAV;AACAzD,2CAAGxD,KAAH,GAAW,CAAX;AACJ,yCAAK,CAAL;AACI;AACA,4CAAIiH,OAAJ,EAAa;AACT;AACA3F,gDAAIyC,KAAJ,CAAU,6BAAV,EAAyCsC,GAAzC;AACA,mDAAO,CAAC,CAAD,CAAG,UAAH,EAAe,EAAErH,OAAO,IAAT,EAAf,CAAP;AACH;AACD,4CAAI,CAAC,CAACmI,OAAO9E,OAAb,EAAsB,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACtB0F,yDAAiB7E,SAASoE,aAAT,CAAuBc,UAAvB,CAAkCC,eAAnD;AACAL,qDAAc3B,IAAIb,OAAJ,GAAcuC,eAAe9G,MAAf,GAAwB,CAAvC,GACT8G,eAAe9G,MAAf,GAAwB,CADf,GACmBoF,IAAIb,OADpC;AAEAyC,qDAAaF,eAAeC,UAAf,CAAb;AACA1G,4CAAIgH,KAAJ,CAAU,mCAAmCV,MAAnC,CAA0CK,UAA1C,EAAsD,UAAtD,CAAV;AACA,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAc,IAAI/I,OAAJ,CAAY,UAAUD,OAAV,EAAmB;AAC5CoI,kDAAMrF,cAAN,GAAuB/C,OAAvB;AACAoI,kDAAMjD,OAAN,GAAgBmE,WAAW,YAAY;AAAElB,sDAAMrF,cAAN,GAAuB,IAAvB,CAA6B/C;AAAY,6CAAlE,EAAoEgJ,aAAa,IAAjF,CAAhB;AACH,yCAHgB,CAAd,CAAP;AAIJ,yCAAK,CAAL;AACIzE,2CAAGvD,IAAH;AACAoG,4CAAIb,OAAJ;AACAhC,2CAAGxD,KAAH,GAAW,CAAX;AACJ,yCAAK,CAAL;AAAQ,+CAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAnCZ;AAqCH,6BAtCM,CAAP;AAuCH,yBAzCD;AA0CAmH,iCAAS,IAAT;AACA5D,2BAAGvD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAekH,SAAf,CAAP;AACR,yBAAK,CAAL;AACIE,kCAAU7D,GAAGtD,IAAH,EAAV;AACA,4BAAI,OAAOmH,OAAP,KAAmB,QAAvB,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAeA,QAAQpI,KAAvB,CAAP;AACJuE,2BAAGvD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AACI,4BAAI,CAACiH,OAAD,IAAY,CAAC,KAAK5E,OAAlB,IAA6B,CAACa,SAASW,eAA3C,EAA4D,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC5DN,2BAAGvD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AACA;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AA/FJ;AAiGH,aAlGM,CAAP;AAmGH,SAtGM,CAAP;AAuGH,KAxGD;AAyGA+B,aAASQ,SAAT,CAAmB4F,UAAnB,GAAgC,UAAUjF,QAAV,EAAoBmD,GAApB,EAAyB;AACrD,eAAO3H,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAU4C,EAAV,EAAc;AACnC,wBAAQA,GAAGzC,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI,EAAEqG,IAAI1B,YAAJ,CAAiB6D,MAAjB,KAA4B,QAA9B,CAAJ,EAA6C,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC7C,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcnH,OAAOoH,IAAP,CAAYvF,QAAZ,EAAsBmD,GAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe5D,GAAGxC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACI,4BAAI,EAAEoG,IAAI1B,YAAJ,CAAiB6D,MAAjB,KAA4B,cAA9B,CAAJ,EAAmD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACnD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcpH,OAAOqH,IAAP,CAAYvF,QAAZ,EAAsBmD,GAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe5D,GAAGxC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACI,4BAAI,EAAEoG,IAAI1B,YAAJ,CAAiB6D,MAAjB,KAA4B,OAA9B,CAAJ,EAA4C,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC5C,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcrH,MAAMsH,IAAN,CAAWvF,QAAX,EAAqBmD,IAAI1B,YAAzB,EAAuC0B,IAAIzB,aAA3C,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAenC,GAAGxC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACIqB,4BAAIoF,IAAJ,CAAS,kDAAT;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AAfR;AAiBH,aAlBM,CAAP;AAmBH,SApBM,CAAP;AAqBH,KAtBD;AAuBA3E,aAASQ,SAAT,CAAmBuB,gBAAnB,GAAsC,UAAUZ,QAAV,EAAoB;AACtD,eAAOxE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAImI,EAAJ,EAAQpE,EAAR,EAAY4D,GAAZ;AACA,mBAAOxG,YAAY,IAAZ,EAAkB,UAAUsD,EAAV,EAAc;AACnC,wBAAQA,GAAGnD,KAAX;AACI,yBAAK,CAAL;AACI,6BAAK6G,KAAK,CAAL,EAAQpE,KAAK,KAAKR,WAAvB,EAAoC4E,KAAKpE,GAAGxB,MAA5C,EAAoD4F,IAApD,EAA0D;AACtDR,kCAAM5D,GAAGoE,EAAH,CAAN;AACA,gCAAIR,IAAId,iBAAR,EAA2B;AACvBc,oCAAIzB,aAAJ,GAAoBvD,OAAOgE,kBAAP,CAA0BnC,QAA1B,EAAoCmD,IAAI1B,YAAxC,CAApB;AACH;AACJ;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK5B,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACII,2BAAGlD,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAjBM,CAAP;AAkBH,KAnBD;AAoBA8B,aAASQ,SAAT,CAAmByB,gBAAnB,GAAsC,UAAUd,QAAV,EAAoB;AACtD,eAAOxE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAImI,EAAJ,EAAQpE,EAAR,EAAY4D,GAAZ;AACA,mBAAOxG,YAAY,IAAZ,EAAkB,UAAUsD,EAAV,EAAc;AACnC,wBAAQA,GAAGnD,KAAX;AACI,yBAAK,CAAL;AACI,6BAAK6G,KAAK,CAAL,EAAQpE,KAAK,KAAKP,WAAvB,EAAoC2E,KAAKpE,GAAGxB,MAA5C,EAAoD4F,IAApD,EAA0D;AACtDR,kCAAM5D,GAAGoE,EAAH,CAAN;AACA,gCAAIR,IAAId,iBAAR,EAA2B;AACvBc,oCAAIzB,aAAJ,GAAoBxD,OAAOiE,kBAAP,CAA0BnC,QAA1B,EAAoCmD,IAAI1B,YAAxC,CAApB;AACH;AACJ;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK9B,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIM,2BAAGlD,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAjBM,CAAP;AAkBH,KAnBD;AAoBA8B,aAASQ,SAAT,CAAmB0B,eAAnB,GAAqC,UAAUf,QAAV,EAAoB;AACrD,eAAOxE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAImI,EAAJ,EAAQpE,EAAR,EAAY4D,GAAZ;AACA,mBAAOxG,YAAY,IAAZ,EAAkB,UAAUsD,EAAV,EAAc;AACnC,wBAAQA,GAAGnD,KAAX;AACI,yBAAK,CAAL;AACI,6BAAK6G,KAAK,CAAL,EAAQpE,KAAK,KAAKN,UAAvB,EAAmC0E,KAAKpE,GAAGxB,MAA3C,EAAmD4F,IAAnD,EAAyD;AACrDR,kCAAM5D,GAAGoE,EAAH,CAAN;AACA,gCAAIR,IAAId,iBAAR,EAA2B;AACvBc,oCAAIzB,aAAJ,GAAoBzD,MAAMkE,kBAAN,CAAyBnC,QAAzB,EAAmCmD,IAAI1B,YAAvC,CAApB;AACH;AACJ;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKnC,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIW,2BAAGlD,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAjBM,CAAP;AAkBH,KAnBD;AAoBA,WAAO8B,QAAP;AACH,CAliB6B,EAA9B;AAmiBA,eAAeA,QAAf","file":"jobqueue.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/17/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as Event from \"./payloads/event\";\nimport * as IdLink from \"./payloads/identityLink\";\nimport * as Update from \"./payloads/update\";\nimport { Log } from \"./utils/log\";\nimport { uuidv4 } from \"./utils/utils\";\nimport { PersistKey, updatePersistedValue, getItem } from \"./browser/persist\";\nfunction jobIsUpdateJob(obj) {\n return 'deviceIds' in obj;\n}\nfunction jobIsIdLinkJob(obj) {\n return 'idLink' in obj;\n}\nfunction jobIsEventJob(obj) {\n return 'eventName' in obj;\n}\nvar JobQueue = /** @class */ (function () {\n function JobQueue() {\n // Holds the pending retry-wait's resolve so stop() can wake the loop instead\n // of clearing the timer and leaving the await pending forever.\n this.fn_resolveWait = null;\n this.updateQueue = [];\n this.idLinkQueue = [];\n this.eventQueue = [];\n this.processing = false;\n this.stopped = false;\n this.paused = false;\n }\n JobQueue.prototype.persistEventQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, updatePersistedValue(PersistKey.EventQueue, JSON.stringify(this.eventQueue), false)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.persistIdLinkQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.idLinkQueue), false)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.persistUpdateQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, updatePersistedValue(PersistKey.UpdateQueue, JSON.stringify(this.updateQueue), false)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.start = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n // Re-check invalidation between each load/persist block: the updateXJobs\n // calls write the queues back, and a shutdown landing mid-sequence on\n // asynchronous storage must not have later write-backs land post-wipe.\n _a = this;\n _c = (_b = JSON).parse;\n return [4 /*yield*/, getItem(PersistKey.UpdateQueue)];\n case 1:\n // Re-check invalidation between each load/persist block: the updateXJobs\n // calls write the queues back, and a shutdown landing mid-sequence on\n // asynchronous storage must not have later write-backs land post-wipe.\n _a.updateQueue = _c.apply(_b, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2 /*return*/];\n return [4 /*yield*/, this.updateUpdateJobs(instance)];\n case 2:\n _k.sent();\n Log.trace(\"Started Update Queue\", JSON.parse(JSON.stringify(this.updateQueue)));\n _d = this;\n _f = (_e = JSON).parse;\n return [4 /*yield*/, getItem(PersistKey.IdLinkQueue)];\n case 3:\n _d.idLinkQueue = _f.apply(_e, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2 /*return*/];\n return [4 /*yield*/, this.updateIdLinkJobs(instance)];\n case 4:\n _k.sent();\n Log.trace(\"Started IdLink Queue\", JSON.parse(JSON.stringify(this.idLinkQueue)));\n _g = this;\n _j = (_h = JSON).parse;\n return [4 /*yield*/, getItem(PersistKey.EventQueue)];\n case 5:\n _g.eventQueue = _j.apply(_h, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2 /*return*/];\n return [4 /*yield*/, this.updateEventJobs(instance)];\n case 6:\n _k.sent();\n Log.trace(\"Started Event Queue\", JSON.parse(JSON.stringify(this.eventQueue)));\n if (instance.invalidatedBool)\n return [2 /*return*/];\n this.stopped = false;\n this.paused = false;\n return [4 /*yield*/, this.dequeueAndProcessJobs(instance)];\n case 7:\n _k.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.stop = function () {\n this.stopped = true;\n if (this.timeOut)\n clearTimeout(this.timeOut);\n // Wake any pending retry wait so the loop resumes and exits, rather than the\n // await hanging forever on a cleared timer.\n if (this.fn_resolveWait) {\n var fn_resolve = this.fn_resolveWait;\n this.fn_resolveWait = null;\n fn_resolve();\n }\n this.processing = false;\n };\n JobQueue.prototype.pause = function () {\n this.paused = true;\n };\n JobQueue.prototype.enqueueUpdate = function (instance, deviceIds) {\n return __awaiter(this, void 0, void 0, function () {\n var keyName, preStartBody, postStartBody, existingPostStart, i, existingPreStart, i;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n keyName = Object.keys(deviceIds)[0];\n preStartBody = Update.constructPreStart(instance, deviceIds);\n if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];\n postStartBody = Update.constructPostStart(instance, preStartBody);\n existingPostStart = -1;\n for (i = 0; i < this.updateQueue.length; i++) {\n if (Object.keys(this.updateQueue[i].deviceIds)[0] === keyName) {\n existingPostStart = i;\n break;\n }\n }\n if (existingPostStart >= 0) {\n this.updateQueue[existingPostStart].preStartBody = preStartBody;\n this.updateQueue[existingPostStart].postStartBody = postStartBody;\n this.updateQueue[existingPostStart].deviceIds = deviceIds;\n }\n else {\n this.updateQueue.push({\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: preStartBody,\n postStartBody: postStartBody,\n retries: 0,\n deviceIds: deviceIds,\n });\n }\n return [4 /*yield*/, this.persistUpdateQueue()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n existingPreStart = -1;\n for (i = 0; i < this.updateQueue.length; i++) {\n if (Object.keys(this.updateQueue[i].deviceIds)[0] === keyName) {\n existingPreStart = i;\n break;\n }\n }\n if (existingPreStart >= 0) {\n this.updateQueue[existingPreStart].preStartBody = preStartBody;\n this.updateQueue[existingPreStart].deviceIds = deviceIds;\n }\n else {\n this.updateQueue.push({\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: preStartBody,\n postStartBody: undefined,\n retries: 0,\n deviceIds: deviceIds,\n });\n }\n return [4 /*yield*/, this.persistUpdateQueue()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.enqueueIdLink = function (instance, idLink) {\n return __awaiter(this, void 0, void 0, function () {\n var idLinkPreStartBody, postStartBody, newJob_1, newJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idLinkPreStartBody = IdLink.constructPreStart(instance, idLink);\n if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];\n postStartBody = IdLink.constructPostStart(instance, idLinkPreStartBody);\n newJob_1 = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: idLinkPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob_1);\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: idLinkPreStartBody,\n postStartBody: undefined,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob);\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.enqueueEvent = function (instance, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventName, eventData, eventPreStartBody, postStartBody, newJob, newEventJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventName = args[0];\n eventData = args[1];\n eventPreStartBody = Event.constructPreStart(instance, eventName, eventData);\n if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];\n postStartBody = Event.constructPostStart(instance, eventPreStartBody);\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: eventPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newJob);\n return [4 /*yield*/, this.persistEventQueue()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n newEventJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: eventPreStartBody,\n postStartBody: undefined,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newEventJob);\n return [4 /*yield*/, this.persistEventQueue()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.dequeueAndProcessJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var job, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.processing)\n return [2 /*return*/, false];\n if (this.paused)\n return [2 /*return*/, false];\n if (this.stopped)\n return [2 /*return*/, false];\n if (instance.invalidatedBool)\n return [2 /*return*/, false];\n _a.label = 1;\n case 1:\n if (!(!this.stopped && !this.paused && !instance.invalidatedBool)) return [3 /*break*/, 5];\n job = this.dequeueJob();\n if (!job) {\n return [2 /*return*/, false];\n }\n Log.trace(\"Dequeued Job: \", job);\n this.processing = true;\n return [4 /*yield*/, this.processJob(instance, job)];\n case 2:\n result = _a.sent();\n if (this.stopped) {\n return [2 /*return*/, true];\n }\n // Don't write the queue back to storage after invalidation — it would\n // clobber a freshly-reset instance's storage.\n if (instance.invalidatedBool) {\n return [2 /*return*/, true];\n }\n this.processing = false;\n if (!result) return [3 /*break*/, 4];\n return [4 /*yield*/, this.persistQueueForJob(job)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [3 /*break*/, 1];\n case 5: return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.dequeueJob = function () {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.updateQueue.shift()) !== null && _a !== void 0 ? _a : this.idLinkQueue.shift()) !== null && _b !== void 0 ? _b : this.eventQueue.shift()) !== null && _c !== void 0 ? _c : null;\n };\n JobQueue.prototype.persistQueueForJob = function (job) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!jobIsUpdateJob(job)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.persistUpdateQueue()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n case 2:\n if (!jobIsIdLinkJob(job)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n case 4:\n if (!jobIsEventJob(job)) return [3 /*break*/, 6];\n return [4 /*yield*/, this.persistEventQueue()];\n case 5:\n _a.sent();\n return [2 /*return*/];\n case 6:\n Log.warn(\"persistQueueForJob: unrecognized job type, queue not persisted.\");\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.processJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n var updateKeyName, updateKeyAllowed, _i, _a, allowedKey, _b, _c, denyIdLinkKey, _d, _e, denyName, success, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (jobIsUpdateJob(job)) {\n if (!instance.kochavaConfig.install.updates_enabled) {\n Log.debug(\"updates_enabled is false, dropping update job.\");\n return [2 /*return*/, true];\n }\n updateKeyName = Object.keys(job.deviceIds)[0];\n updateKeyAllowed = false;\n for (_i = 0, _a = instance.kochavaConfig.privacy.allow_custom_ids; _i < _a.length; _i++) {\n allowedKey = _a[_i];\n if (allowedKey === updateKeyName) {\n updateKeyAllowed = true;\n break;\n }\n }\n if (!updateKeyAllowed) {\n Log.debug(\"\".concat(updateKeyName, \" not in allow_custom_ids, dropping update job.\"));\n return [2 /*return*/, true];\n }\n }\n else if (jobIsIdLinkJob(job)) {\n for (_b = 0, _c = instance.kochavaConfig.privacy.deny_identity_links; _b < _c.length; _b++) {\n denyIdLinkKey = _c[_b];\n if (denyIdLinkKey === Object.keys(job.idLink)[0]) {\n Log.debug(\"Denied identity_link \".concat(denyIdLinkKey, \", dropping request.\"));\n return [2 /*return*/, true];\n }\n }\n }\n else if (jobIsEventJob(job)) {\n for (_d = 0, _e = instance.kochavaConfig.privacy.deny_event_names; _d < _e.length; _d++) {\n denyName = _e[_d];\n if (denyName === job.eventName) {\n Log.debug(\"Denied event_name \".concat(denyName, \", dropping request.\"));\n return [2 /*return*/, true];\n }\n }\n }\n success = false;\n _loop_1 = function () {\n var retryWaterfall, retryIndex, retrySec_1;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n // Halt fast if the instance was invalidated (shutdown) mid-flight.\n if (instance.invalidatedBool) {\n return [2 /*return*/, { value: true }];\n }\n if (!!instance.sdkDisabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this_1.attemptJob(instance, job)];\n case 1:\n success = _g.sent();\n return [3 /*break*/, 3];\n case 2:\n success = true;\n _g.label = 3;\n case 3:\n // If our job succeeded\n if (success) {\n // Job Done\n Log.trace(\"Job processed successfully:\", job);\n return [2 /*return*/, { value: true }];\n }\n if (!!this_1.stopped) return [3 /*break*/, 5];\n retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;\n retryIndex = (job.retries > retryWaterfall.length - 1) ?\n retryWaterfall.length - 1 : job.retries;\n retrySec_1 = retryWaterfall[retryIndex];\n Log.error(\"Job failed, attempting again in \".concat(retrySec_1, \" seconds\"));\n return [4 /*yield*/, new Promise(function (resolve) {\n _this.fn_resolveWait = resolve;\n _this.timeOut = setTimeout(function () { _this.fn_resolveWait = null; resolve(); }, retrySec_1 * 1000);\n })];\n case 4:\n _g.sent();\n job.retries++;\n _g.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _f.label = 1;\n case 1: return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _f.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n _f.label = 3;\n case 3:\n if (!success && !this.stopped && !instance.invalidatedBool) return [3 /*break*/, 1];\n _f.label = 4;\n case 4: \n // Job Canceled\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.attemptJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(job.preStartBody.action === \"update\")) return [3 /*break*/, 2];\n return [4 /*yield*/, Update.send(instance, job)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n if (!(job.preStartBody.action === \"identityLink\")) return [3 /*break*/, 4];\n return [4 /*yield*/, IdLink.send(instance, job)];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n if (!(job.preStartBody.action === \"event\")) return [3 /*break*/, 6];\n return [4 /*yield*/, Event.send(instance, job.preStartBody, job.postStartBody)];\n case 5: return [2 /*return*/, _a.sent()];\n case 6:\n Log.warn(\"Invalid action in job from jobqueue, cancelling.\");\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.updateUpdateJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.updateQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = Update.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4 /*yield*/, this.persistUpdateQueue()];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.updateIdLinkJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.idLinkQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = IdLink.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.updateEventJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.eventQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = Event.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4 /*yield*/, this.persistEventQueue()];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return JobQueue;\n}());\nexport default JobQueue;\n"]}
1
+ {"version":3,"sources":["../node/jobqueue.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","Event","IdLink","Update","Log","uuidv4","PersistKey","updatePersistedValue","getItem","jobIsUpdateJob","obj","jobIsIdLinkJob","jobIsEventJob","JobQueue","fn_resolveWait","updateQueue","idLinkQueue","eventQueue","processing","stopped","paused","prototype","persistEventQueue","_a","EventQueue","JSON","stringify","persistIdLinkQueue","IdLinkQueue","persistUpdateQueue","UpdateQueue","start","instance","_b","_c","_d","_e","_f","_g","_h","_j","_k","parse","invalidatedBool","updateUpdateJobs","trace","updateIdLinkJobs","updateEventJobs","dequeueAndProcessJobs","stop","timeOut","clearTimeout","fn_resolve","pause","enqueueUpdate","deviceIds","keyName","preStartBody","postStartBody","existingPostStart","i","existingPreStart","Object","keys","constructPreStart","installDone","kvinitDone","constructPostStart","id","queuedBeforeStart","retries","undefined","enqueueIdLink","idLink","idLinkPreStartBody","newJob_1","newJob","enqueueEvent","args","eventName","eventData","eventPreStartBody","newEventJob","job","dequeueJob","processJob","persistQueueForJob","shift","warn","updateKeyName","updateKeyAllowed","_i","allowedKey","denyIdLinkKey","denyName","success","_loop_1","this_1","state_1","_this","kochavaConfig","install","updates_enabled","debug","privacy","allow_custom_ids","concat","deny_identity_links","deny_event_names","retryWaterfall","retryIndex","retrySec_1","sdkDisabled","attemptJob","networking","retry_waterfall","error","setTimeout","action","send"],"mappings":"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","file":"jobqueue.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as Event from \"./payloads/event\";\nimport * as IdLink from \"./payloads/identityLink\";\nimport * as Update from \"./payloads/update\";\nimport { Log } from \"./utils/log\";\nimport { uuidv4 } from \"./utils/utils\";\nimport { PersistKey, updatePersistedValue, getItem } from \"./browser/persist\";\nfunction jobIsUpdateJob(obj) {\n return 'deviceIds' in obj;\n}\nfunction jobIsIdLinkJob(obj) {\n return 'idLink' in obj;\n}\nfunction jobIsEventJob(obj) {\n return 'eventName' in obj;\n}\nvar JobQueue = (function () {\n function JobQueue() {\n this.fn_resolveWait = null;\n this.updateQueue = [];\n this.idLinkQueue = [];\n this.eventQueue = [];\n this.processing = false;\n this.stopped = false;\n this.paused = false;\n }\n JobQueue.prototype.persistEventQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, updatePersistedValue(PersistKey.EventQueue, JSON.stringify(this.eventQueue), false)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.persistIdLinkQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.idLinkQueue), false)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.persistUpdateQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, updatePersistedValue(PersistKey.UpdateQueue, JSON.stringify(this.updateQueue), false)];\n case 1:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.start = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = this;\n _c = (_b = JSON).parse;\n return [4, getItem(PersistKey.UpdateQueue)];\n case 1:\n _a.updateQueue = _c.apply(_b, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2];\n return [4, this.updateUpdateJobs(instance)];\n case 2:\n _k.sent();\n Log.trace(\"Started Update Queue\", JSON.parse(JSON.stringify(this.updateQueue)));\n _d = this;\n _f = (_e = JSON).parse;\n return [4, getItem(PersistKey.IdLinkQueue)];\n case 3:\n _d.idLinkQueue = _f.apply(_e, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2];\n return [4, this.updateIdLinkJobs(instance)];\n case 4:\n _k.sent();\n Log.trace(\"Started IdLink Queue\", JSON.parse(JSON.stringify(this.idLinkQueue)));\n _g = this;\n _j = (_h = JSON).parse;\n return [4, getItem(PersistKey.EventQueue)];\n case 5:\n _g.eventQueue = _j.apply(_h, [_k.sent()]) || [];\n if (instance.invalidatedBool)\n return [2];\n return [4, this.updateEventJobs(instance)];\n case 6:\n _k.sent();\n Log.trace(\"Started Event Queue\", JSON.parse(JSON.stringify(this.eventQueue)));\n if (instance.invalidatedBool)\n return [2];\n this.stopped = false;\n this.paused = false;\n return [4, this.dequeueAndProcessJobs(instance)];\n case 7:\n _k.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.stop = function () {\n this.stopped = true;\n if (this.timeOut)\n clearTimeout(this.timeOut);\n if (this.fn_resolveWait) {\n var fn_resolve = this.fn_resolveWait;\n this.fn_resolveWait = null;\n fn_resolve();\n }\n this.processing = false;\n };\n JobQueue.prototype.pause = function () {\n this.paused = true;\n };\n JobQueue.prototype.enqueueUpdate = function (instance, deviceIds) {\n return __awaiter(this, void 0, void 0, function () {\n var keyName, preStartBody, postStartBody, existingPostStart, i, existingPreStart, i;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n keyName = Object.keys(deviceIds)[0];\n preStartBody = Update.constructPreStart(instance, deviceIds);\n if (!(instance.installDone && instance.kvinitDone)) return [3, 3];\n postStartBody = Update.constructPostStart(instance, preStartBody);\n existingPostStart = -1;\n for (i = 0; i < this.updateQueue.length; i++) {\n if (Object.keys(this.updateQueue[i].deviceIds)[0] === keyName) {\n existingPostStart = i;\n break;\n }\n }\n if (existingPostStart >= 0) {\n this.updateQueue[existingPostStart].preStartBody = preStartBody;\n this.updateQueue[existingPostStart].postStartBody = postStartBody;\n this.updateQueue[existingPostStart].deviceIds = deviceIds;\n }\n else {\n this.updateQueue.push({\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: preStartBody,\n postStartBody: postStartBody,\n retries: 0,\n deviceIds: deviceIds,\n });\n }\n return [4, this.persistUpdateQueue()];\n case 1:\n _a.sent();\n return [4, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2];\n case 3:\n existingPreStart = -1;\n for (i = 0; i < this.updateQueue.length; i++) {\n if (Object.keys(this.updateQueue[i].deviceIds)[0] === keyName) {\n existingPreStart = i;\n break;\n }\n }\n if (existingPreStart >= 0) {\n this.updateQueue[existingPreStart].preStartBody = preStartBody;\n this.updateQueue[existingPreStart].deviceIds = deviceIds;\n }\n else {\n this.updateQueue.push({\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: preStartBody,\n postStartBody: undefined,\n retries: 0,\n deviceIds: deviceIds,\n });\n }\n return [4, this.persistUpdateQueue()];\n case 4:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.enqueueIdLink = function (instance, idLink) {\n return __awaiter(this, void 0, void 0, function () {\n var idLinkPreStartBody, postStartBody, newJob_1, newJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idLinkPreStartBody = IdLink.constructPreStart(instance, idLink);\n if (!(instance.installDone && instance.kvinitDone)) return [3, 3];\n postStartBody = IdLink.constructPostStart(instance, idLinkPreStartBody);\n newJob_1 = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: idLinkPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob_1);\n return [4, this.persistIdLinkQueue()];\n case 1:\n _a.sent();\n return [4, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2];\n case 3:\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: idLinkPreStartBody,\n postStartBody: undefined,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob);\n return [4, this.persistIdLinkQueue()];\n case 4:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.enqueueEvent = function (instance, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventName, eventData, eventPreStartBody, postStartBody, newJob, newEventJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventName = args[0];\n eventData = args[1];\n eventPreStartBody = Event.constructPreStart(instance, eventName, eventData);\n if (!(instance.installDone && instance.kvinitDone)) return [3, 3];\n postStartBody = Event.constructPostStart(instance, eventPreStartBody);\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: eventPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newJob);\n return [4, this.persistEventQueue()];\n case 1:\n _a.sent();\n return [4, this.dequeueAndProcessJobs(instance)];\n case 2:\n _a.sent();\n return [2];\n case 3:\n newEventJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: eventPreStartBody,\n postStartBody: undefined,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newEventJob);\n return [4, this.persistEventQueue()];\n case 4:\n _a.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.dequeueAndProcessJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var job, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.processing)\n return [2, false];\n if (this.paused)\n return [2, false];\n if (this.stopped)\n return [2, false];\n if (instance.invalidatedBool)\n return [2, false];\n _a.label = 1;\n case 1:\n if (!(!this.stopped && !this.paused && !instance.invalidatedBool)) return [3, 5];\n job = this.dequeueJob();\n if (!job) {\n return [2, false];\n }\n Log.trace(\"Dequeued Job: \", job);\n this.processing = true;\n return [4, this.processJob(instance, job)];\n case 2:\n result = _a.sent();\n if (this.stopped) {\n return [2, true];\n }\n if (instance.invalidatedBool) {\n return [2, true];\n }\n this.processing = false;\n if (!result) return [3, 4];\n return [4, this.persistQueueForJob(job)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [3, 1];\n case 5: return [2, true];\n }\n });\n });\n };\n JobQueue.prototype.dequeueJob = function () {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.updateQueue.shift()) !== null && _a !== void 0 ? _a : this.idLinkQueue.shift()) !== null && _b !== void 0 ? _b : this.eventQueue.shift()) !== null && _c !== void 0 ? _c : null;\n };\n JobQueue.prototype.persistQueueForJob = function (job) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!jobIsUpdateJob(job)) return [3, 2];\n return [4, this.persistUpdateQueue()];\n case 1:\n _a.sent();\n return [2];\n case 2:\n if (!jobIsIdLinkJob(job)) return [3, 4];\n return [4, this.persistIdLinkQueue()];\n case 3:\n _a.sent();\n return [2];\n case 4:\n if (!jobIsEventJob(job)) return [3, 6];\n return [4, this.persistEventQueue()];\n case 5:\n _a.sent();\n return [2];\n case 6:\n Log.warn(\"persistQueueForJob: unrecognized job type, queue not persisted.\");\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.processJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n var updateKeyName, updateKeyAllowed, _i, _a, allowedKey, _b, _c, denyIdLinkKey, _d, _e, denyName, success, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (jobIsUpdateJob(job)) {\n if (!instance.kochavaConfig.install.updates_enabled) {\n Log.debug(\"updates_enabled is false, dropping update job.\");\n return [2, true];\n }\n updateKeyName = Object.keys(job.deviceIds)[0];\n updateKeyAllowed = false;\n for (_i = 0, _a = instance.kochavaConfig.privacy.allow_custom_ids; _i < _a.length; _i++) {\n allowedKey = _a[_i];\n if (allowedKey === updateKeyName) {\n updateKeyAllowed = true;\n break;\n }\n }\n if (!updateKeyAllowed) {\n Log.debug(\"\".concat(updateKeyName, \" not in allow_custom_ids, dropping update job.\"));\n return [2, true];\n }\n }\n else if (jobIsIdLinkJob(job)) {\n for (_b = 0, _c = instance.kochavaConfig.privacy.deny_identity_links; _b < _c.length; _b++) {\n denyIdLinkKey = _c[_b];\n if (denyIdLinkKey === Object.keys(job.idLink)[0]) {\n Log.debug(\"Denied identity_link \".concat(denyIdLinkKey, \", dropping request.\"));\n return [2, true];\n }\n }\n }\n else if (jobIsEventJob(job)) {\n for (_d = 0, _e = instance.kochavaConfig.privacy.deny_event_names; _d < _e.length; _d++) {\n denyName = _e[_d];\n if (denyName === job.eventName) {\n Log.debug(\"Denied event_name \".concat(denyName, \", dropping request.\"));\n return [2, true];\n }\n }\n }\n success = false;\n _loop_1 = function () {\n var retryWaterfall, retryIndex, retrySec_1;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (instance.invalidatedBool) {\n return [2, { value: true }];\n }\n if (!!instance.sdkDisabled) return [3, 2];\n return [4, this_1.attemptJob(instance, job)];\n case 1:\n success = _g.sent();\n return [3, 3];\n case 2:\n success = true;\n _g.label = 3;\n case 3:\n if (success) {\n Log.trace(\"Job processed successfully:\", job);\n return [2, { value: true }];\n }\n if (!!this_1.stopped) return [3, 5];\n retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;\n retryIndex = (job.retries > retryWaterfall.length - 1) ?\n retryWaterfall.length - 1 : job.retries;\n retrySec_1 = retryWaterfall[retryIndex];\n Log.error(\"Job failed, attempting again in \".concat(retrySec_1, \" seconds\"));\n return [4, new Promise(function (resolve) {\n _this.fn_resolveWait = resolve;\n _this.timeOut = setTimeout(function () { _this.fn_resolveWait = null; resolve(); }, retrySec_1 * 1000);\n })];\n case 4:\n _g.sent();\n job.retries++;\n _g.label = 5;\n case 5: return [2];\n }\n });\n };\n this_1 = this;\n _f.label = 1;\n case 1: return [5, _loop_1()];\n case 2:\n state_1 = _f.sent();\n if (typeof state_1 === \"object\")\n return [2, state_1.value];\n _f.label = 3;\n case 3:\n if (!success && !this.stopped && !instance.invalidatedBool) return [3, 1];\n _f.label = 4;\n case 4: return [2, true];\n }\n });\n });\n };\n JobQueue.prototype.attemptJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(job.preStartBody.action === \"update\")) return [3, 2];\n return [4, Update.send(instance, job)];\n case 1: return [2, _a.sent()];\n case 2:\n if (!(job.preStartBody.action === \"identityLink\")) return [3, 4];\n return [4, IdLink.send(instance, job)];\n case 3: return [2, _a.sent()];\n case 4:\n if (!(job.preStartBody.action === \"event\")) return [3, 6];\n return [4, Event.send(instance, job.preStartBody, job.postStartBody)];\n case 5: return [2, _a.sent()];\n case 6:\n Log.warn(\"Invalid action in job from jobqueue, cancelling.\");\n return [2, true];\n }\n });\n });\n };\n JobQueue.prototype.updateUpdateJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.updateQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = Update.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4, this.persistUpdateQueue()];\n case 1:\n _b.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.updateIdLinkJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.idLinkQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = IdLink.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4, this.persistIdLinkQueue()];\n case 1:\n _b.sent();\n return [2];\n }\n });\n });\n };\n JobQueue.prototype.updateEventJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.eventQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = Event.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4, this.persistEventQueue()];\n case 1:\n _b.sent();\n return [2];\n }\n });\n });\n };\n return JobQueue;\n}());\nexport default JobQueue;\n"]}