@walkeros/web-destination-optimizely 4.1.0-next-1778668930820 → 4.1.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 +105 -0
- package/README.md +30 -94
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/examples/index.js +7 -45
- package/dist/examples/index.mjs +7 -45
- package/dist/index.browser.js +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/walkerOS.json +9 -9
- package/package.json +6 -4
package/dist/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep(e,t,r,n,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(e){asyncGeneratorStep(o,n,i,a,s,"next",e)}function s(e){asyncGeneratorStep(o,n,i,a,s,"throw",e)}a(void 0)})}}function _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&_set_prototype_of(i,r.prototype),i},_construct.apply(null,arguments)}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _create_class(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _get(e,t,r){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=_super_prop_base(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r||e):i.value}},_get(e,t,r||e)}function _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _super_prop_base(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_get_prototype_of(e)););return e}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}function _ts_generator(e,t){var r,n,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(a,"next",{value:u(0)}),s(a,"throw",{value:u(1)}),s(a,"return",{value:u(2)}),"function"==typeof Symbol&&s(a,Symbol.iterator,{value:function(){return this}}),a;function u(s){return function(u){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}}var Destination=function(){var e,t=function(e){return Array.isArray(e)},r=function(e){return void 0!==e},n=function(e){return"number"==typeof e&&!Number.isNaN(e)},i=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!t(e)&&"[object Object]"===Object.prototype.toString.call(e)},o=function(e){return"string"==typeof e},a=function(e){return re(e)?e:void 0},s=function(e,t,r){return function(){for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return _async_to_generator(function(){var n;return _ts_generator(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(i))];case 1:case 3:return[2,o.sent()];case 2:return n=o.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return o.sent(),[7];case 6:return[2]}})})()}},u=function(e){return _async_to_generator(function(e){var n,o,a,u,l,c,d,f,v,h,p,g,y,m,_,b,k=arguments;return _ts_generator(this,function(E){switch(E.label){case 0:if(n=k.length>1&&void 0!==k[1]?k[1]:{},o=k.length>2&&void 0!==k[2]?k[2]:{},!r(e))return[2];if(l=i(e)&&e.consent||o.consent||(null===(u=o.collector)||void 0===u?void 0:u.consent),c=null!==(a=o.event)&&void 0!==a?a:i(e)?e:{},!o.collector)throw new Error("getMappingValue: context.collector is required");d={event:c,mapping:n,collector:o.collector,logger:o.collector.logger,consent:l},f=t(n)?n:[n],v=!0,h=!1,p=void 0,E.label=1;case 1:E.trys.push([1,6,7,8]),g=f[Symbol.iterator](),E.label=2;case 2:return(v=(y=g.next()).done)?[3,5]:(m=y.value,[4,s(ne)(e,m,_object_spread_props(_object_spread({},d),{mapping:m}))]);case 3:if(_=E.sent(),r(_))return[2,_];E.label=4;case 4:return v=!0,[3,2];case 5:return[3,8];case 6:return b=E.sent(),h=!0,p=b,[3,8];case 7:try{v||null==g.return||g.return()}finally{if(h)throw p}return[7];case 8:return[2]}})}).apply(this,arguments)},l=function(){return de>ce.length-16&&(le.default.randomFillSync(ce),de=0),ce.slice(de,de+=16)},c=function(e){return"number"==typeof e&&Math.abs(e)<=je},d=function(e,t){if(!e)return{};var r={};return f(e,t,r),r},f=function(e,t,r){e&&e.forEach(function(e){r[e[t]]=e})},v=function(e){return Object.keys(e).map(function(t){return e[t]})},h=function(e){return Object.keys(e).map(function(t){return[t,e[t]]})},p=function(e,t){var r,n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done);n=!0){var u=a.value;if(t(u)){r=u;break}}}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r},g=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,function(){var e=r[i++],t=void 0===e?"undefined":_type_of(e);return"function"===t?e():"string"===t?e:String(e)})},y=function(e,t){return e.length===t.length&&e.every(function(e,r){return e===t[r]})},m=function(){var e=Rt,t=Rt,r=new Promise(function(r,n){e=r,t=n});return{promise:r,resolve:e,reject:t,then:r.then.bind(r)}},_=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,_instanceof(t,r)?t:new r(function(e){e(t)})).then(a,s)}u((n=n.apply(e,t||[])).next())})},b=function(e){var t=[],r=e[0];return e.forEach(function(e){if("conversion"===e.type||"impression"===e.type){var r=(i={snapshots:[],visitor_id:(n=e).user.id,attributes:[]},n.user.attributes.forEach(function(e){i.attributes.push({entity_id:e.entityId,key:e.key,type:"custom",value:e.value})}),"boolean"==typeof n.context.botFiltering&&i.attributes.push({entity_id:be,key:be,type:er,value:n.context.botFiltering}),i);"impression"===e.type?r.snapshots.push(function(e){var t,r,n=e.layer,i=e.experiment,o=e.variation,a=e.ruleKey,s=e.flagKey,u=e.ruleType,l=e.enabled,c=e.cmabUuid,d=n?n.id:null;return{decisions:[{campaign_id:d,experiment_id:null!==(t=null==i?void 0:i.id)&&void 0!==t?t:"",variation_id:null!==(r=null==o?void 0:o.id)&&void 0!==r?r:"",metadata:{flag_key:s,rule_key:a,rule_type:u,variation_key:o?o.key:"",enabled:l,cmab_uuid:c}}],events:[{entity_id:d,timestamp:e.timestamp,key:Zt,uuid:e.uuid}]}}(e)):"conversion"===e.type&&r.snapshots.push(function(e){var t=Object.assign({},e.tags);delete t.revenue,delete t.value;var r={entity_id:e.event.id,key:e.event.key,timestamp:e.timestamp,uuid:e.uuid};return e.tags&&(r.tags=e.tags),null!=e.value&&(r.value=e.value),null!=e.revenue&&(r.revenue=e.revenue),{events:[r]}}(e)),t.push(r)}var n,i}),{client_name:r.context.clientName,client_version:r.context.clientVersion,account_id:r.context.accountId,project_id:r.context.projectId,revision:r.context.revision,anonymize_ip:r.context.anonymizeIP,enrich_decisions:!0,visitors:t}},k=function(e){var t,r=(null===(t=e[0])||void 0===t?void 0:t.context.region)||"US";return{url:tr[r]||tr.US,httpVerb:"POST",params:b(e)}},E=function(e){var t,r;return null!==(r=null===(t=e.experiment)||void 0===t?void 0:t.key)&&void 0!==r?r:""},I=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.key)&&void 0!==r?r:""},S=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.featureEnabled)&&void 0!==r&&r},w=function(e,t,r){return{variationKey:null,enabled:!1,variables:{},ruleKey:null,flagKey:e,userContext:t,reasons:r}},O=function(e){return/^\d+$/.test(e)},x=function(e){var t=e.indexOf("-"),r=e.indexOf("+");return!(t<0)&&(r<0||t<r)},P=function(e){var t=e.indexOf("-"),r=e.indexOf("+");return!(r<0)&&(t<0||r<t)},M=function(e,t){var r=e,n="";if(/\s/.test(e))return null==t||t.warn(Qe,e),null;if(x(e)?(r=e.substring(0,e.indexOf("-")),n=e.substring(e.indexOf("-")+1)):P(e)&&(r=e.substring(0,e.indexOf("+")),n=e.substring(e.indexOf("+")+1)),"string"!=typeof r||"string"!=typeof n)return null;var i=r.split(".").length-1;if(i>2)return null==t||t.warn(Qe,e),null;var o=r.split(".");if(o.length!=i+1)return null==t||t.warn(Qe,e),null;var a=!0,s=!1,u=void 0;try{for(var l,c=o[Symbol.iterator]();!(a=(l=c.next()).done);a=!0){var d=l.value;if(!O(d))return null==t||t.warn(Qe,e),null}}catch(e){s=!0,u=e}finally{try{a||null==c.return||c.return()}finally{if(s)throw u}}return n&&o.push(n),o},R=function(e){return"string"==typeof e||"boolean"==typeof e||De.isNumber(e)},A=function(e,t,r){var n=t.getAttributes(),i=e.value,o=void 0===i?"undefined":_type_of(i),a=e.name,s=n[a],u=void 0===s?"undefined":_type_of(s);return!R(i)||De.isNumber(i)&&!De.isSafeInteger(i)?(null==r||r.warn(Ge,JSON.stringify(e)),null):null===s?(null==r||r.debug(Le,JSON.stringify(e),a),null):R(s)&&o===u?De.isNumber(s)&&!De.isSafeInteger(s)?(null==r||r.warn("45",JSON.stringify(e),a),null):i===s:(null==r||r.warn(We,JSON.stringify(e),u,a),null)},C=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[i],a=void 0===o?"undefined":_type_of(o),s=e.value;return null!==s&&De.isSafeInteger(s)?null===o?(null==r||r.debug(Le,JSON.stringify(e),i),!1):De.isNumber(o)?!!De.isSafeInteger(o)||(null==r||r.warn("45",JSON.stringify(e),i),!1):(null==r||r.warn(We,JSON.stringify(e),a,i),!1):(null==r||r.warn(Ge,JSON.stringify(e)),!1)},j=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[i],a=void 0===o?"undefined":_type_of(o),s=e.value;return"string"!=typeof s?(null==r||r.warn(Ge,JSON.stringify(e)),null):null===o?(null==r||r.debug(Le,JSON.stringify(e),i),null):"string"!=typeof o?(null==r||r.warn(We,JSON.stringify(e),a,i),null):function(e,t,r){var n=M(t,r),i=M(e,r);if(!n||!i)return null;for(var o=n.length,a=0;a<i.length;a++){if(o<=a)return x(e)||P(e)?1:-1;if(O(n[a])){var s=parseInt(n[a]),u=parseInt(i[a]);if(s>u)return 1;if(s<u)return-1}else{if(n[a]<i[a])return x(e)&&!x(t)?1:-1;if(n[a]>i[a])return!x(e)&&x(t)?-1:1}}return x(t)&&!x(e)?-1:0}(s,o,r)},D=function(e,t){return t.isQualifiedFor(e.value)},T=function(e){return"string"==typeof e&&""!==e},F=Object.create,N=Object.defineProperty,U=Object.getOwnPropertyDescriptor,V=Object.getOwnPropertyNames,K=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty,q=(e=function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')},"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:function(e,t){return("undefined"!=typeof require?require:e)[t]}}):e),B=function(e,t){return function(){return t||(0,e[V(e)[0]])((t={exports:{}}).exports,t),t.exports}},z=function(e,t){for(var r in t)N(e,r,{get:t[r],enumerable:!0})},H=function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var i=!0,o=!1,a=void 0;try{for(var s,u=function(){var i=s.value;L.call(e,i)||i===r||N(e,i,{get:function(){return t[i]},enumerable:!(n=U(t,i))||n.enumerable})},l=V(t)[Symbol.iterator]();!(i=(s=l.next()).done);i=!0)u()}catch(e){o=!0,a=e}finally{try{i||null==l.return||l.return()}finally{if(o)throw a}}}return e},J=function(e,t,r){return r=null!=e?F(K(e)):{},H(!t&&e&&e.__esModule?r:N(r,"default",{value:e,enumerable:!0}),e)},G=B({"../../../../node_modules/json-schema/lib/validate.js":function(e,t){var r,n;r=e,n=function(){var e=r;e.Integer={type:"integer"};var t={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date};function r(e,t){return r(e,t,{changing:!1})}e.validate=r,e.checkPropertyChange=function(e,t,n){return r(e,t,{changing:n||"property"})};var r=e._validate=function(e,r,n){n||(n={});var i=n.changing;function o(e){return e.type||t[e.name]==e&&e.name.toLowerCase()}var a=[];function s(e,t,r,u){var l;function c(e){a.push({property:r,message:e})}if(r+=r?"number"==typeof u?"["+u+"]":void 0===u?"":"."+u:u,("object"!=(void 0===t?"undefined":_type_of(t))||_instanceof(t,Array))&&(r||"function"!=typeof t)&&(!t||!o(t)))return"function"==typeof t?_instanceof(e,t)||c("is not an instance of the class/constructor "+t.name):t&&c("Invalid schema/property definition "+t),null;function d(e,t){if(e){if(!("string"!=typeof e||"any"==e||("null"==e?null===t:(void 0===t?"undefined":_type_of(t))==e)||_instanceof(t,Array)&&"array"==e||_instanceof(t,Date)&&"date"==e||"integer"==e&&t%1==0))return[{property:r,message:t+" - "+(void 0===t?"undefined":_type_of(t))+" value found, but a "+e+" is required"}];if(_instanceof(e,Array)){for(var n=[],i=0;i<e.length&&(n=d(e[i],t)).length;i++);if(n.length)return n}else if("object"==(void 0===e?"undefined":_type_of(e))){var o=a;a=[],s(t,e,r);var u=a;return a=o,u}}return[]}if(i&&t.readonly&&c("is a readonly field, it can not be changed"),t.extends&&s(e,t.extends,r,u),void 0===e)t.required&&c("is missing and it is required");else if(a=a.concat(d(o(t),e)),t.disallow&&!d(t.disallow,e).length&&c(" disallowed value was matched"),null!==e){if(_instanceof(e,Array)){if(t.items){var f=_instanceof(t.items,Array),v=t.items;for(u=0,l=e.length;u<l;u+=1)f&&(v=t.items[u]),n.coerce&&(e[u]=n.coerce(e[u],v)),a.concat(s(e[u],v,r,u))}t.minItems&&e.length<t.minItems&&c("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&c("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&a.concat(function(e,t,r,o){if("object"==(void 0===t?"undefined":_type_of(t)))for(var u in("object"!=(void 0===e?"undefined":_type_of(e))||_instanceof(e,Array))&&a.push({property:r,message:"an object is required"}),t)if(t.hasOwnProperty(u)&&"__proto__"!=u&&"constructor"!=u){var l=e.hasOwnProperty(u)?e[u]:void 0;if(void 0===l&&n.existingOnly)continue;var c=t[u];void 0===l&&c.default&&(l=e[u]=c.default),n.coerce&&u in e&&(l=e[u]=n.coerce(l,c)),s(l,c,r,u)}for(u in e){if(e.hasOwnProperty(u)&&("_"!=u.charAt(0)||"_"!=u.charAt(1))&&t&&!t[u]&&!1===o){if(n.filter){delete e[u];continue}a.push({property:r,message:"The property "+u+" is not defined in the schema and the schema does not allow additional properties"})}var d=t&&t[u]&&t[u].requires;d&&!(d in e)&&a.push({property:r,message:"the presence of the property "+u+" requires that "+d+" also be present"}),l=e[u],!o||t&&"object"==(void 0===t?"undefined":_type_of(t))&&u in t||(n.coerce&&(l=e[u]=n.coerce(l,o)),s(l,o,r,u)),!i&&l&&l.$schema&&(a=a.concat(s(l,l.$schema,r,u)))}return a}(e,t.properties,r,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&c("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&c("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&c("must be at least "+t.minLength+" characters long"),void 0!==t.minimum&&(void 0===e?"undefined":_type_of(e))==_type_of(t.minimum)&&t.minimum>e&&c("must have a minimum value of "+t.minimum),void 0!==t.maximum&&(void 0===e?"undefined":_type_of(e))==_type_of(t.maximum)&&t.maximum<e&&c("must have a maximum value of "+t.maximum),t.enum){var h,p=t.enum;l=p.length;for(var g=0;g<l;g++)if(p[g]===e){h=1;break}h||c("does not have a value in the enumeration "+p.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&c("may only have "+t.maxDecimal+" digits of decimal places")}return null}return r&&s(e,r,"",i||""),!i&&e&&e.$schema&&s(e,e.$schema,"",""),{valid:!a.length,errors:a}};return e.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map(function(e){return"for property "+e.property+": "+e.message}).join(", \n"))},e},"function"==typeof define&&define.amd?define([],function(){return n()}):"object"===(void 0===t?"undefined":_type_of(t))&&t.exports?t.exports=n():r.jsonSchema=n()}}),W=B({"../../../../node_modules/murmurhash/murmurhash.js":function(e,t){!function(){var e=this,r=function(e){return(new TextEncoder).encode(e)};function n(e,t){var n,i,o,a,s,u,l,c;for("string"==typeof e&&(e=r(e)),n=3&e.length,i=e.length-n,o=t,s=3432918353,u=461845907,c=0;c<i;)l=255&e[c]|(255&e[++c])<<8|(255&e[++c])<<16|(255&e[++c])<<24,++c,o=27492+(65535&(a=5*(65535&(o=(o^=l=(65535&(l=(l=(65535&l)*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*u+(((l>>>16)*u&65535)<<16)&4294967295)<<13|o>>>19))+((5*(o>>>16)&65535)<<16)&4294967295))+(((a>>>16)+58964&65535)<<16);switch(l=0,n){case 3:l^=(255&e[c+2])<<16;case 2:l^=(255&e[c+1])<<8;case 1:o^=l=(65535&(l=(l=(65535&(l^=255&e[c]))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*u+(((l>>>16)*u&65535)<<16)&4294967295}return o^=e.length,o=2246822507*(65535&(o^=o>>>16))+((2246822507*(o>>>16)&65535)<<16)&4294967295,o=3266489909*(65535&(o^=o>>>13))+((3266489909*(o>>>16)&65535)<<16)&4294967295,(o^=o>>>16)>>>0}var i=n;if(i.v2=function(e,t){"string"==typeof e&&(e=r(e));for(var n,i=e.length,o=t^i,a=0;i>=4;)n=1540483477*(65535&(n=255&e[a]|(255&e[++a])<<8|(255&e[++a])<<16|(255&e[++a])<<24))+((1540483477*(n>>>16)&65535)<<16),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),i-=4,++a;switch(i){case 3:o^=(255&e[a+2])<<16;case 2:o^=(255&e[a+1])<<8;case 1:o=1540483477*(65535&(o^=255&e[a]))+((1540483477*(o>>>16)&65535)<<16)}return o=1540483477*(65535&(o^=o>>>13))+((1540483477*(o>>>16)&65535)<<16),(o^=o>>>15)>>>0},i.v3=n,void 0!==t)t.exports=i;else{var o=e.murmur;i.noConflict=function(){return e.murmur=o,i},e.murmur=i}}()}}),Q=B({"../../../../node_modules/@optimizely/optimizely-sdk/node_modules/mimic-response/index.js":function(e,t){var r=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];t.exports=function(e,t){if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");var n=new Set(Object.keys(e).concat(r)),i={},o=!0,a=!1,s=void 0;try{for(var u,l=function(){var r=u.value;if(r in t)return"continue";i[r]={get:function(){var t=e[r];return"function"==typeof t?t.bind(e):t},set:function(t){e[r]=t},enumerable:!0,configurable:!1}},c=n[Symbol.iterator]();!(o=(u=c.next()).done);o=!0)l()}catch(e){a=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(a)throw s}}return Object.defineProperties(t,i),e.once("aborted",function(){t.destroy(),t.emit("aborted")}),e.once("close",function(){e.complete&&t.readable?t.once("end",function(){t.emit("close")}):t.emit("close")}),t}}}),$=B({"../../../../node_modules/@optimizely/optimizely-sdk/node_modules/decompress-response/index.js":function(e,t){var r=q("stream"),n=r.Transform,i=r.PassThrough,o=q("zlib"),a=Q();t.exports=function(e){var t=(e.headers["content-encoding"]||"").toLowerCase();if(delete e.headers["content-encoding"],!["gzip","deflate","br"].includes(t))return e;var r="br"===t;if(r&&"function"!=typeof o.createBrotliDecompress)return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;var s=!0,u=new n({transform:function(e,t,r){s=!1,r(null,e)},flush:function(e){e()}}),l=new i({autoDestroy:!1,destroy:function(t,r){e.destroy(),r(t)}}),c=r?o.createBrotliDecompress():o.createUnzip();return c.once("error",function(t){!s||e.readable?l.destroy(t):l.end()}),a(e,l),e.pipe(u).pipe(c).pipe(l),l}}}),Y={};z(Y,{DestinationOptimizely:function(){return li},default:function(){return di},destinationOptimizely:function(){return ci}});var X=Object.defineProperty;!function(e,t){for(var r in t)X(e,r,{get:t[r],enumerable:!0})}({},{Level:function(){return ee}});var Z,ee=((Z=ee||{})[Z.ERROR=0]="ERROR",Z[Z.WARN=1]="WARN",Z[Z.INFO=2]="INFO",Z[Z.DEBUG=3]="DEBUG",Z);function te(e){for(var n=arguments.length>2?arguments[2]:void 0,i=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),o=e,a=0;a<i.length;a++){var s=i[a];if("*"===s&&t(o)){var u=i.slice(a+1).join("."),l=[],c=!0,d=!1,f=void 0;try{for(var v,h=o[Symbol.iterator]();!(c=(v=h.next()).done);c=!0){var p=te(v.value,u,n);l.push(p)}}catch(e){d=!0,f=e}finally{try{c||null==h.return||h.return()}finally{if(d)throw f}}return l}if(void 0===(o=_instanceof(o,Object)?o[s]:void 0))break}return r(o)?o:n}function re(e){return function(e){return"boolean"==typeof e}(e)||o(e)||n(e)||!r(e)||t(e)&&e.every(re)||i(e)&&Object.values(e).every(re)}function ne(e,n,i){return _async_to_generator(function(){return _ts_generator(this,function(l){return[2,(t(n)?n:[n]).reduce(function(n,l){return _async_to_generator(function(){var c,d,f,v,h,p,g,y,m,_,b,k,E,I,S,w,O,x,P,M,R,A;return _ts_generator(this,function(C){switch(C.label){case 0:return[4,n];case 1:return(c=C.sent())?[2,c]:(d=o(l)?{key:l}:l,Object.keys(d).length?(f=d.condition,v=d.consent,h=d.fn,p=d.key,g=d.loop,y=d.map,m=d.set,_=d.validate,b=d.value,k=_object_spread_props(_object_spread({},i),{mapping:l}),(E=f)?[4,s(f)(e,k)]:[3,3]):[2]);case 2:E=!C.sent(),C.label=3;case 3:return E?[2]:v&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(i){t[i]&&(r[i]=!0,e&&e[i]&&(n=!0))}),!!n&&r}(v,k.consent)?[2,b]:(I=r(b)?b:e,h?[4,s(h)(e,k)]:[3,5]);case 4:I=C.sent(),C.label=5;case 5:return p&&(I=te(e,p,b)),g?(S=_sliced_to_array(g,2),w=S[0],O=S[1],"this"!==w?[3,6]:(P=[e],[3,8])):[3,11];case 6:return[4,u(e,w,k)];case 7:P=C.sent(),C.label=8;case 8:return t(x=P)?[4,Promise.all(x.map(function(e){return u(e,O,k)}))]:[3,10];case 9:I=C.sent().filter(r),C.label=10;case 10:return[3,17];case 11:return y?[4,Object.entries(y).reduce(function(t,n){var i=_sliced_to_array(n,2),o=i[0],a=i[1];return _async_to_generator(function(){var n,i;return _ts_generator(this,function(s){switch(s.label){case 0:return[4,t];case 1:return n=s.sent(),[4,u(e,a,k)];case 2:return i=s.sent(),[2,(r(i)&&(n[o]=i),n)]}})})()},Promise.resolve({}))]:[3,13];case 12:return I=C.sent(),[3,16];case 13:return(M=m)?[4,Promise.all(m.map(function(t){return ne(e,t,k)}))]:[3,15];case 14:M=I=C.sent(),C.label=15;case 15:C.label=16;case 16:C.label=17;case 17:return(R=_)?[4,s(_)(I,k)]:[3,19];case 18:R=!C.sent(),C.label=19;case 19:return R&&(I=void 0),A=a(I),[2,r(A)?A:a(b)]}})})()},Promise.resolve(void 0))]})})()}new Set(_to_consumable_array(["code","package","before","next","cache","mapping"]).concat(["config","env","validate","variables","examples","disabled","id","logger","mock","chainMocks"]));var ie={};z(ie,{DEBUG:function(){return it},DECISION_NOTIFICATION_TYPES:function(){return or},DECISION_SOURCES:function(){return we},ERROR:function(){return st},INFO:function(){return ot},LogLevel:function(){return se},NOTIFICATION_TYPES:function(){return ar},OptimizelyDecideOption:function(){return Dt},WARN:function(){return at},__platforms:function(){return ui},clientEngine:function(){return si},createBatchEventProcessor:function(){return ri},createErrorNotifier:function(){return ft},createForwardingEventProcessor:function(){return ti},createInstance:function(){return oi},createLogger:function(){return lt},createOdpManager:function(){return ni},createPollingProjectConfigManager:function(){return ei},createStaticProjectConfigManager:function(){return Jt},createVuidManager:function(){return ii},eventDispatcher:function(){return Zn},getSendBeaconEventDispatcher:function(){return ai}});for(var oe=[],ae=0;ae<256;++ae)oe.push((ae+256).toString(16).slice(1));var se,ue,le=J(q("crypto")),ce=new Uint8Array(256),de=ce.length,fe={randomUUID:J(q("crypto")).default.randomUUID},ve=function(e,t,r){if(fe.randomUUID&&!t&&!e)return fe.randomUUID();var n=(e=e||{}).random||(e.rng||l)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var i=0;i<16;++i)t[r+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(oe[e[t+0]]+oe[e[t+1]]+oe[e[t+2]]+oe[e[t+3]]+"-"+oe[e[t+4]]+oe[e[t+5]]+"-"+oe[e[t+6]]+oe[e[t+7]]+"-"+oe[e[t+8]]+oe[e[t+9]]+"-"+oe[e[t+10]]+oe[e[t+11]]+oe[e[t+12]]+oe[e[t+13]]+oe[e[t+14]]+oe[e[t+15]]).toLowerCase()}(n)},he=J(G(),1),pe=J(W(),1),ge=J(q("http"),1),ye=J(q("https"),1),me=J(q("url"),1),_e=J($(),1),be="$opt_bot_filtering",ke="$opt_bucketing_id",Ee="javascript-sdk",Ie="node-sdk",Se="6.3.1",we={FEATURE_TEST:"feature-test",ROLLOUT:"rollout",EXPERIMENT:"experiment",HOLDOUT:"holdout"},Oe="experiment",xe="boolean",Pe="double",Me="integer",Re="string",Ae="json",Ce="Optimizely SDK not configured properly yet.",je=Math.pow(2,53),De={checkArrayEquality:y,currentTimestamp:function(){return Math.round((new Date).getTime())},isSafeInteger:c,keyBy:d,uuid:function(){return ve()},isNumber:function(e){return"number"==typeof e},getTimestamp:function(){return(new Date).getTime()},groupBy:function(e,t){var r={};return e.forEach(function(e){var n=t(e);r[n]=r[n]||[],r[n].push(e)}),v(r)},objectValues:v,objectEntries:h,find:p,sprintf:g},Te=function(){function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var o;return _class_call_check(this,e),(o=_call_super(this,e)).resolved=!1,o.name="OptimizelyError",o.baseMessage=t,o.params=n,Object.setPrototypeOf(o,e.prototype),o}return _inherits(e,_wrap_native_super(Error)),_create_class(e,[{key:"setMessage",value:function(e){this.resolved||(this.message=g.apply(void 0,[e.resolve(this.baseMessage)].concat(_to_consumable_array(this.params))),this.resolved=!0)}}]),e}();!function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warn=2]="Warn",e[e.Error=3]="Error"}(se||(se={}));var Fe,Ne=(_define_property(ue={},se.Debug,"DEBUG"),_define_property(ue,se.Info,"INFO"),_define_property(ue,se.Warn,"WARN"),_define_property(ue,se.Error,"ERROR"),ue),Ue=(_define_property(Fe={},se.Debug,"debug"),_define_property(Fe,se.Info,"info"),_define_property(Fe,se.Warn,"warn"),_define_property(Fe,se.Error,"error"),Fe),Ve=function(){function e(t){_class_call_check(this,e),this.prefix=t||"[OPTIMIZELY]"}return _create_class(e,[{key:"log",value:function(e,t){var r="".concat(this.prefix," - ").concat(Ne[e]," ").concat(this.getTime()," ").concat(t);this.consoleLog(e,r)}},{key:"getTime",value:function(){return(new Date).toISOString()}},{key:"consoleLog",value:function(e,t){(console[Ue[e]]||console.log).call(console,t)}}]),e}(),Ke=function(){function e(t){_class_call_check(this,e),this.prefix="",this.logHandler=t.logHandler,this.infoResolver=t.infoMsgResolver,this.errorResolver=t.errorMsgResolver,this.level=t.level,t.name&&this.setName(t.name)}return _create_class(e,[{key:"child",value:function(t){return new e({logHandler:this.logHandler,infoMsgResolver:this.infoResolver,errorMsgResolver:this.errorResolver,level:this.level,name:t})}},{key:"setName",value:function(e){this.name=e,this.prefix="".concat(e,": ")}},{key:"info",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(se.Info,e,r)}},{key:"debug",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(se.Debug,e,r)}},{key:"warn",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(se.Warn,e,r)}},{key:"error",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(se.Error,e,r)}},{key:"handleLog",value:function(e,t,r){var n=r.length>0?"".concat(this.prefix).concat(g.apply(void 0,[t].concat(_to_consumable_array(r)))):"".concat(this.prefix).concat(t);this.logHandler.log(e,n)}},{key:"log",value:function(e,t,r){if(!(e<this.level)){if(_instanceof(t,Error))return _instanceof(t,Te)&&t.setMessage(this.errorResolver),void this.handleLog(e,t.message,[]);var n=this.errorResolver;if(e<se.Warn){if(!this.infoResolver)return;n=this.infoResolver}var i=n.resolve(t);this.handleLog(e,i,r)}}}]),e}(),Le="30",qe=["Adding Authorization header with Bearer Token",'Audience "%s" evaluated to %s.',"CMAB cache attributes mismatch for user %s and rule %s, fetching new decision.","Cache hit for user %s and rule %s.","Cache miss for user %s and rule %s.",'Starting to evaluate audience "%s" with conditions: %s.','Failed to parse revenue value "%s" from event tags.','Failed to parse event value "%s" from event tags.',"Feature %s is enabled for user %s.","Feature %s is not enabled for user %s.",'Feature "%s" is not enabled for user %s. Returning the default variable value "%s".',"Ignoring CMAB cache for user %s and rule %s.","Invalidating CMAB cache for user %s and rule %s.","Invalid client engine passed: %s. Defaulting to node-sdk.","Provided decide options is not an array. Using default decide options.","Provided default decide options is not an array.","Experiment key %s is not in datafile. It is either invalid, paused, or archived.","Making datafile request to url %s with headers: %s",'Audience condition %s evaluated to UNKNOWN because no value was passed for user attribute "%s".',"Not activating user %s for experiment %s.",'Parsed event value "%s" from event tags.','Parsed revenue value "%s" from event tags.',"Resetting CMAB cache for user %s and rule %s.","Response status code: %s","Saved last modified header value from response: %s",'Saved user profile for user "%s".',"User %s was previously bucketed into variation with ID %s for experiment %s, but no matching variation was found.",'Experiment %s is not in "Running" state. Not activating user.',"Skipping JSON schema validation.","Tracking event %s for user %s.",'Audience condition %s evaluated to UNKNOWN because a null value was passed for user attribute "%s".',"Updated Optimizely config to revision %s (project id %s)","User %s is not in the forced variation map.","No experiment %s mapped to user %s in the forced variation map.","Set variation %s for experiment %s and user %s in the forced variation map.",'User "%s" is not in any variation or rollout rule. Returning default value for variable "%s" of feature flag "%s".','Got variable value "%s" for variable "%s" of feature flag "%s"','BucketingId is valid: "%s"',"Datafile is valid.","Valid user profile service provided.",'Variable "%s" is not used in variation "%s". Returning default value.',"Variation mapped to experiment %s has been removed for user %s."],Be="12",ze="27",He="35",Je="53",Ge="57",We="59",Qe="61",$e=["BucketingID attribute is not a string. Defaulted to userId","CMAB decision fetch failed with status: %s","Error evaluating audience condition of type %s: %s","Datafile fetch request failed with status: %s","Error fetching datafile: %s","Event action invalid.","Event data invalid.","Event key %s is not in datafile.","Event store is full. Not saving event with id %d.","Experiment key %s is not in datafile.","Failed to dispatch events, status: %s","failed to send odp events","Feature key %s is not in datafile.","Provided attributes are in an invalid format.","Unable to generate hash for bucketing ID %s: %s","Invalid CMAB fetch response","Provided Optimizely config is in an invalid format.","Datafile is invalid - property %s: %s","Datafile is invalid because it is malformed.","This version of the JavaScript SDK does not support the given datafile version: %s","Provided event tags are in an invalid format.","Experiment ID %s is not in datafile.","Experiment key %s is not in datafile. It is either invalid, paused, or archived.","Group ID %s is not in datafile.","Provided %s is in an invalid format.","JSON object is not valid.","Provided user ID is in an invalid format.","Provided user profile service instance is in an invalid format: %s.","Provided variation key is in an invalid format.","Integration key missing from datafile. All integrations should include a key.","Notification listener for (%s) threw exception: %s","Not tracking user %s.","No datafile specified. Cannot start optimizely.","No event processor is provided","No JSON object to validate against schema.","No project config available. Failing %s.","No status code in response","No variation key %s defined in datafile for experiment %s.","ODP config is not available.","ODP events should have at least one key-value pair in identifiers.","ODP event send failed.","ODP event manager stopped before it could start","ODP Manager is missing. %s failed.","ODP is not integrated","Only POST requests are supported",'Audience condition %s evaluated to UNKNOWN because the number value for user attribute "%s" is not in the range [-2^53, +2^53].',"Promise value is not allowed in sync operation","Request error","Request timeout","Retry cancelled","sendBeacon failed","%s not running",'unable to bind optimizely.close() to page unload event: "%s"',"Unable to cast value %s to type %s, returning null.","Unable to get VUID - VuidManager is not available","Unable to parse & skipped header item","Provided attribute: %s has an undefined value.","Audience condition %s evaluated to UNKNOWN because the condition value is not supported.","Attribute %s unexpectedly has reserved prefix %s; using attribute ID instead of reserved attribute name.",'Audience condition %s evaluated to UNKNOWN because a value of type "%s" was passed for user attribute "%s".',"Audience condition %s has an unknown condition type. You may need to upgrade to a newer release of the Optimizely SDK.","Audience condition %s uses an unknown match type. You may need to upgrade to a newer release of the Optimizely SDK.","Unrecognized attribute %s provided. Pruning before sending event to Optimizely.","Unrecognized decide option %s provided.","Unsupported protocol: %s","User %s is not in the forced variation map. Cannot remove their forced variation.",'Error while looking up user profile for user ID "%s": %s.','Error while saving user profile for user ID "%s": %s.','Variable with key "%s" associated with feature with key "%s" is not in datafile.','Requested variable type "%s", but variable is of type "%s". Use correct API to retrieve value. Returning None.',"Variation ID %s is not in the datafile."],Ye={resolve:function(e){var t=parseInt(e);return qe[t]||e}},Xe={resolve:function(e){var t=parseInt(e);return $e[t]||e}},Ze={level:se.Debug,infoResolver:Ye,errorResolver:Xe},et={level:se.Info,infoResolver:Ye,errorResolver:Xe},tt={level:se.Warn,errorResolver:Xe},rt={level:se.Error,errorResolver:Xe},nt=Symbol(),it=_define_property({},nt,Ze),ot=_define_property({},nt,et),at=_define_property({},nt,tt),st=_define_property({},nt,rt),ut=Symbol(),lt=function(e){var t=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||!e[nt])throw new Error("Invalid level preset");return e[nt]}(e.level),r=t.level,n=t.infoResolver,i=t.errorResolver;return e.logHandler&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.log)throw new Error("Invalid log handler")}(e.logHandler),_define_property({},ut,new Ke({name:"Optimizely",level:r,infoMsgResolver:n,errorMsgResolver:i,logHandler:e.logHandler||new Ve}))},ct=function(){function e(t,r,n){_class_call_check(this,e),this.errorHandler=t,this.messageResolver=r,this.name=n||""}return _create_class(e,[{key:"notify",value:function(e){_instanceof(e,Te)&&e.setMessage(this.messageResolver),this.errorHandler.handleError(e)}},{key:"child",value:function(t){return new e(this.errorHandler,this.messageResolver,t)}}]),e}(),dt=Symbol(),ft=function(e){return function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.handleError)throw new Error("Invalid error handler")}(e),_define_property({},dt,new ct(e,Xe))},vt=["and","or","not"];function ht(e,t){if(Array.isArray(e)){var r=e[0],n=e.slice(1);switch("string"==typeof r&&-1===vt.indexOf(r)&&(r="or",n=e),r){case"and":return function(e,t){var r=!1;if(Array.isArray(e)){for(var n=0;n<e.length;n++){var i=ht(e[n],t);if(!1===i)return!1;null===i&&(r=!0)}return!r||null}return null}(n,t);case"not":return function(e,t){if(Array.isArray(e)&&e.length>0){var r=ht(e[0],t);return null===r?null:!r}return null}(n,t);default:return function(e,t){var r=!1;if(Array.isArray(e)){for(var n=0;n<e.length;n++){var i=ht(e[n],t);if(!0===i)return!0;null===i&&(r=!0)}return!!r&&null}return null}(n,t)}}return t(e)}var pt,gt=function(){function e(t,r,n){var i,o;_class_call_check(this,e),this.sdkKey=null!==(i=t.sdkKey)&&void 0!==i?i:"",this.environmentKey=null!==(o=t.environmentKey)&&void 0!==o?o:"",this.attributes=t.attributes,this.audiences=e.getAudiences(t),this.events=t.events,this.revision=t.revision;var a=(t.featureFlags||[]).reduce(function(e,t){return e[t.id]=t.variables,e},{}),s=e.getVariableIdMap(t),u=e.getExperimentsMap(t,a,s,n),l=u.experimentsMapById,c=u.experimentsMapByKey;this.experimentsMap=c,this.featuresMap=e.getFeaturesMap(t,a,l,s),this.datafile=r}return _create_class(e,[{key:"getDatafile",value:function(){return this.datafile}}],[{key:"getAudiences",value:function(e){var t=[],r=[];return(e.typedAudiences||[]).forEach(function(e){t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name}),r.push(e.id)}),(e.audiences||[]).forEach(function(e){-1===r.indexOf(e.id)&&"$opt_dummy_audience"!=e.id&&t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name})}),t}},{key:"getSerializedAudiences",value:function(t,r){var n="";if(t){var i="";t.forEach(function(t){var o="";if(_instanceof(t,Array))o=e.getSerializedAudiences(t,r),o="(".concat(o,")");else if(vt.indexOf(t)>-1)i=t.toUpperCase();else{var a=r[t]?r[t].name:t;n||"NOT"===i?(i=""===i?"OR":i,n=""===n?"".concat(i,' "').concat(r[t].name,'"'):n.concat(" ".concat(i,' "').concat(a,'"'))):n='"'.concat(a,'"')}""!==o&&(""!==n||"NOT"===i?(i=""===i?"OR":i,n=""===n?"".concat(i," ").concat(o):n.concat(" ".concat(i," ").concat(o))):n=n.concat(o))})}return n}},{key:"getExperimentAudiences",value:function(t,r){return t.audienceConditions?e.getSerializedAudiences(t.audienceConditions,r.audiencesById):""}},{key:"mergeFeatureVariables",value:function(e,t,r,n,i){var o=(e[r]||[]).reduce(function(e,t){return e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e},{});return(n||[]).forEach(function(e){var r=t[e.id],n={id:e.id,key:r.key,type:r.type,value:i?e.value:r.defaultValue};o[r.key]=n}),o}},{key:"getVariationsMap",value:function(t,r,n,i){return t.reduce(function(t,o){var a=e.mergeFeatureVariables(r,n,i,o.variables,o.featureEnabled);return t[o.key]={id:o.id,key:o.key,featureEnabled:o.featureEnabled,variablesMap:a},t},{})}},{key:"getVariableIdMap",value:function(e){return(e.featureFlags||[]).reduce(function(e,t){return t.variables.forEach(function(t){e[t.id]=t}),e},{})}},{key:"getDeliveryRules",value:function(t,r,n,i,o){return i.map(function(i){return{id:i.id,key:i.key,audiences:e.getExperimentAudiences(i,t),variationsMap:e.getVariationsMap(i.variations,r,o,n)}})}},{key:"getRolloutExperimentIds",value:function(e){var t=[];return(e||[]).forEach(function(e){e.experiments.forEach(function(e){t.push(e.id)})}),t}},{key:"getExperimentsMap",value:function(t,r,n,i){var o=this.getRolloutExperimentIds(t.rollouts),a={},s={};return(t.experiments||[]).forEach(function(u){if(-1===o.indexOf(u.id)){var l=t.experimentFeatureMap[u.id],c="";l&&l.length>0&&(c=l[0]);var d=e.getVariationsMap(u.variations,r,n,c.toString()),f={id:u.id,key:u.key,audiences:e.getExperimentAudiences(u,t),variationsMap:d};a[u.id]=f,s[u.key]&&i&&i.warn("Duplicate experiment keys found in datafile: ".concat(u.key)),s[u.key]=f}}),{experimentsMapById:a,experimentsMapByKey:s}}},{key:"getExperimentsKeyMap",value:function(e){var t={};for(var r in e){var n=e[r];t[n.key]=n}return t}},{key:"getFeaturesMap",value:function(t,r,n,i){var o={};return t.featureFlags.forEach(function(a){var s={},u=[];a.experimentIds.forEach(function(e){var t=n[e];t&&(s[t.key]=t),u.push(n[e])});var l=(a.variables||[]).reduce(function(e,t){return e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e},{}),c=[],d=t.rolloutIdMap[a.rolloutId];d&&(c=e.getDeliveryRules(t,r,a.id,d.experiments,i)),o[a.key]={id:a.id,key:a.key,experimentRules:u,deliveryRules:c,experimentsMap:s,variablesMap:l}}),o}}]),e}(),yt=["2","3","4"],mt=function(){function e(t,r,n,i){_class_call_check(this,e),this.apiKey=t,this.apiHost=r,this.pixelUrl=n,this.segmentsToCheck=i}return _create_class(e,[{key:"equals",value:function(e){return this.apiHost===e.apiHost&&this.apiKey===e.apiKey&&this.pixelUrl===e.pixelUrl&&y(this.segmentsToCheck,e.segmentsToCheck)}}]),e}(),_t="Running",bt="$opt_",kt=function(e){var t,r,n,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=(t=e,(i=Object.assign({},t)).audiences=(t.audiences||[]).map(function(e){return Object.assign({},e)}),i.experiments=(t.experiments||[]).map(function(e){return Object.assign({},e)}),i.featureFlags=(t.featureFlags||[]).map(function(e){return Object.assign({},e)}),i.groups=(t.groups||[]).map(function(e){var t=Object.assign({},e);return t.experiments=(e.experiments||[]).map(function(e){return Object.assign({},e)}),t}),i.rollouts=(t.rollouts||[]).map(function(e){var t=Object.assign({},e);return t.experiments=(e.experiments||[]).map(function(e){return Object.assign({},e)}),t}),i.environmentKey=null!==(r=t.environmentKey)&&void 0!==r?r:"",i.sdkKey=null!==(n=t.sdkKey)&&void 0!==n?n:"",i);a.region||(a.region="US"),a.__datafileStr=null===o?JSON.stringify(e):o,(a.audiences||[]).forEach(function(e){e.conditions=JSON.parse(e.conditions)}),a.audiencesById={},f(a.audiences,"id",a.audiencesById),f(a.typedAudiences,"id",a.audiencesById),a.attributes=a.attributes||[],a.attributeKeyMap={},a.attributeIdMap={},a.attributes.forEach(function(e){a.attributeKeyMap[e.key]=e,a.attributeIdMap[e.id]=e}),a.eventKeyMap=d(a.events,"key"),a.groupIdMap=d(a.groups,"id"),Object.keys(a.groupIdMap||{}).forEach(function(e){(a.groupIdMap[e].experiments||[]).forEach(function(t){t.groupId=e,a.experiments.push(t)})}),a.rolloutIdMap=d(a.rollouts||[],"id"),v(a.rolloutIdMap||{}).forEach(function(e){(e.experiments||[]).forEach(function(e){e.isRollout=!0,a.experiments.push(e),e.variationKeyMap=d(e.variations,"key")})});var s=new Set;Object.keys(a.audiencesById).map(function(e){return It(a.audiencesById[e])}).forEach(function(e){e.forEach(function(e){s.add(e)})});var u=Array.from(s),l=!1,c="",g="",y="";return a.integrations&&(a.integrationKeyMap=d(a.integrations,"key"),a.integrations.forEach(function(e){if(!("key"in e))throw new Te("29");"odp"===e.key&&(l=!0,g=g||e.publicKey||"",c=c||e.host||"",y=y||e.pixelUrl||"")})),a.odpIntegrationConfig=l?{integrated:!0,odpConfig:new mt(g,c,y,u)}:{integrated:!1},a.experimentKeyMap=d(a.experiments,"key"),a.experimentIdMap=d(a.experiments,"id"),a.variationIdMap={},a.variationVariableUsageMap={},(a.experiments||[]).forEach(function(e){e.variationKeyMap=d(e.variations,"key"),f(e.variations,"id",a.variationIdMap),v(e.variationKeyMap||{}).forEach(function(e){e.variables&&(a.variationVariableUsageMap[e.id]=d(e.variables,"id"))})}),a.experimentFeatureMap={},a.featureKeyMap=d(a.featureFlags||[],"key"),v(a.featureKeyMap||{}).forEach(function(e){e.variables.forEach(function(e){e.type===Re&&e.subType===Ae&&(e.type=Ae,delete e.subType)}),e.variableKeyMap=d(e.variables,"key"),(e.experimentIds||[]).forEach(function(t){a.experimentFeatureMap[t]?a.experimentFeatureMap[t].push(e.id):a.experimentFeatureMap[t]=[e.id]})}),a.flagRulesMap={},(a.featureFlags||[]).forEach(function(e){var t,r=[];e.experimentIds.forEach(function(e){var t=a.experimentIdMap[e];t&&r.push(t)});var n=a.rolloutIdMap[e.rolloutId];n&&(t=r).push.apply(t,_to_consumable_array(n.experiments)),a.flagRulesMap[e.key]=r}),a.flagVariationsMap={},h(a.flagRulesMap||{}).forEach(function(e){var t=_sliced_to_array(e,2),r=t[0],n=t[1],i=[];n.forEach(function(e){e.variations.forEach(function(e){p(i,function(t){return t.id===e.id})||i.push(e)})}),a.flagVariationsMap[r]=i}),Et(a),a},Et=function(e){e.holdouts=e.holdouts||[],e.holdoutIdMap=d(e.holdouts,"id"),e.globalHoldouts=[],e.includedHoldouts={},e.excludedHoldouts={},e.flagHoldoutsMap={};var t=d(e.featureFlags,"id");e.holdouts.forEach(function(r){r.includedFlags||(r.includedFlags=[]),r.excludedFlags||(r.excludedFlags=[]),r.variationKeyMap=d(r.variations,"key"),f(r.variations,"id",e.variationIdMap),0===r.includedFlags.length?(e.globalHoldouts.push(r),r.excludedFlags.forEach(function(n){var i=t[n];if(i){var o=i.key;e.excludedHoldouts[o]||(e.excludedHoldouts[o]=[]),e.excludedHoldouts[o].push(r)}})):r.includedFlags.forEach(function(n){var i=t[n];if(i){var o=i.key;e.includedHoldouts[o]||(e.includedHoldouts[o]=[]),e.includedHoldouts[o].push(r)}})})},It=function(e){return e.conditions?St(e.conditions):[]},St=function(e){var t,r=[];return["and","or","not"].includes(e)?[]:(Array.isArray(e)?e.forEach(function(e){return(t=r).push.apply(t,_to_consumable_array(St(e)))}):"qualified"===e.match&&r.push(e.value),r)},wt=function(e,t){var r=e.experimentKeyMap[t];if(!r)throw new Te("22",t);return r.status},Ot=function(e,t){if(e.experimentKeyMap.hasOwnProperty(t)){var r=e.experimentKeyMap[t];if(r)return r}throw new Te("9",t)},xt=function(e,t,r){return e&&p(e.flagVariationsMap[t],function(e){return e.key===r})||null},Pt=function(e,t,r){if(e.featureKeyMap.hasOwnProperty(t)){var n=e.featureKeyMap[t];if(n)return n}return null==r||r.error(Be,t),null},Mt=function(e){return!!e.sendFlagDecisions},Rt=function(){},At="%s failed to start, reason: %s",Ct="%s stopped before running";!function(e){e[e.New=0]="New",e[e.Starting=1]="Starting",e[e.Running=2]="Running",e[e.Stopping=3]="Stopping",e[e.Terminated=4]="Terminated",e[e.Failed=5]="Failed"}(pt||(pt={}));var jt,Dt,Tt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_class_call_check(this,e),this.disposable=!1,this.state=pt.New,this.startPromise=m(),this.stopPromise=m(),this.startupLogs=t,this.startPromise.promise.catch(function(){}),this.stopPromise.promise.catch(function(){})}return _create_class(e,[{key:"makeDisposable",value:function(){this.disposable=!0}},{key:"setLogger",value:function(e){this.logger=e}},{key:"printStartupLogs",value:function(){var e=!0,t=!1,r=void 0;if(this.logger)try{for(var n,i=this.startupLogs[Symbol.iterator]();!(e=(n=i.next()).done);e=!0){var o,a=n.value,s=a.level,u=a.message,l=a.params,c=Ue[s];(o=this.logger[c]).call.apply(o,[this.logger,u].concat(_to_consumable_array(l)))}}catch(e){t=!0,r=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw r}}}},{key:"onRunning",value:function(){return this.startPromise.promise}},{key:"onTerminated",value:function(){return this.stopPromise.promise}},{key:"getState",value:function(){return this.state}},{key:"isStarting",value:function(){return this.state===pt.Starting}},{key:"isRunning",value:function(){return this.state===pt.Running}},{key:"isNew",value:function(){return this.state===pt.New}},{key:"isDone",value:function(){return[pt.Stopping,pt.Terminated,pt.Failed].includes(this.state)}},{key:"start",value:function(){this.printStartupLogs()}}]),e}(),Ft=function(){function e(){_class_call_check(this,e),this.id=0,this.listeners={}}return _create_class(e,[{key:"on",value:function(e,t){var r,n=this;this.listeners[e]||(this.listeners[e]=new Map);var i=this.id++;return null===(r=this.listeners[e])||void 0===r||r.set(i,t),function(){var t;null===(t=n.listeners[e])||void 0===t||t.delete(i)}}},{key:"emit",value:function(e,t){var r=this.listeners[e];r&&r.forEach(function(e){e(t)})}},{key:"removeListeners",value:function(e){var t;null===(t=this.listeners[e])||void 0===t||t.clear()}},{key:"removeAllListeners",value:function(){this.listeners={}}}]),e}(),Nt=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t)).eventEmitter=new Ft,r.jsonSchemaValidator=e.jsonSchemaValidator,r.datafile=e.datafile,r.datafileManager=e.datafileManager,e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){var t;this.logger=e,this.logger.setName("ProjectConfigManager"),null===(t=this.datafileManager)||void 0===t||t.setLogger(e.child())}},{key:"start",value:function(){var e,t,r,n=this;this.isNew()&&(this.state=pt.Starting,this.datafile||this.datafileManager?(this.datafile&&this.handleNewDatafile(this.datafile,!0),null===(e=this.datafileManager)||void 0===e||e.start(),null===(t=this.datafileManager)||void 0===t||t.onUpdate(this.handleNewDatafile.bind(this)),null===(r=this.datafileManager)||void 0===r||r.onRunning().catch(function(e){n.handleDatafileManagerError(e)})):this.handleInitError(new Error("sdkKey or datafile must be provided")))}},{key:"makeDisposable",value:function(){var e;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),null===(e=this.datafileManager)||void 0===e||e.makeDisposable()}},{key:"handleInitError",value:function(e){var t,r;null===(t=this.logger)||void 0===t||t.error(e),this.state=pt.Failed,null===(r=this.datafileManager)||void 0===r||r.stop(),this.startPromise.reject(e),this.stopPromise.reject(e)}},{key:"handleDatafileManagerError",value:function(e){var t;null===(t=this.logger)||void 0===t||t.error(At,"DatafileManager",e.message),this.isStarting()&&this.handleInitError(new Error(g(At,"DatafileManager",e.message)))}},{key:"handleNewDatafile",value:function(e){var t,r,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.isDone())try{var i=function(e){var t,r,n=function(e){if(!e)throw new Te("32");if("string"==typeof e)try{e=JSON.parse(e)}catch(e){throw new Te("18")}if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new Te("18");if(-1===yt.indexOf(e.version))throw new Te("19",e.version);return e}(e.datafile);e.jsonSchemaValidator?(e.jsonSchemaValidator(n),null===(t=e.logger)||void 0===t||t.info("38")):null===(r=e.logger)||void 0===r||r.info("28");var i=[n];return"string"==typeof e.datafile&&i.push(e.datafile),kt.apply(void 0,_to_consumable_array(i))}({datafile:e,jsonSchemaValidator:this.jsonSchemaValidator,logger:this.logger});this.isStarting()&&(this.state=pt.Running,this.startPromise.resolve()),(null===(t=this.projectConfig)||void 0===t?void 0:t.revision)!==i.revision&&(this.projectConfig=i,this.optimizelyConfig=void 0,this.eventEmitter.emit("update",i))}catch(e){null===(r=this.logger)||void 0===r||r.error(e),(this.isStarting()&&!this.datafileManager||this.isStarting()&&!n)&&this.handleInitError(new Error("got invalid datafile"))}}},{key:"getConfig",value:function(){return this.projectConfig}},{key:"getOptimizelyConfig",value:function(){var e,t,r;return!this.optimizelyConfig&&this.projectConfig&&(this.optimizelyConfig=(e=this.projectConfig,t=this.projectConfig.__datafileStr,r=this.logger,new gt(e,t,r))),this.optimizelyConfig}},{key:"onUpdate",value:function(e){return this.eventEmitter.on("update",e)}},{key:"stop",value:function(){var e=this;if(!this.isDone()){if((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(g(Ct,"ProjectConfigManager"))),this.state=pt.Stopping,this.eventEmitter.removeAllListeners(),!this.datafileManager)return this.state=pt.Terminated,void this.stopPromise.resolve();this.datafileManager.stop(),this.datafileManager.onTerminated().then(function(){e.state=pt.Terminated,e.stopPromise.resolve()}).catch(function(t){e.state=pt.Failed,e.stopPromise.reject(t)})}}}]),t}(Tt),Ut=function(e){return e>=200&&e<400},Vt=function(e){function t(e){var r;_class_call_check(this,t),r=_call_super(this,t,[e.startupLogs]);var n=e.autoUpdate,i=void 0!==n&&n,o=e.sdkKey,a=e.datafileAccessToken,s=e.customHeaders,u=e.urlTemplate,l=e.cache,c=e.initRetry,d=e.repeater,f=e.requestHandler,v=e.logger;r.cache=l,r.cacheKey="opt-datafile-"+o,r.sdkKey=o,r.datafileAccessToken=a,r.customHeaders=s,r.requestHandler=f,r.emitter=new Ft,r.autoUpdate=i,r.initRetryRemaining=c,r.repeater=d,v&&r.setLogger(v);var h=u||(a?"https://config.optimizely.com/datafiles/auth/%s.json":"https://cdn.optimizely.com/datafiles/%s.json");return r.datafileUrl=g(h,r.sdkKey),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("PollingDatafileManager")}},{key:"onUpdate",value:function(e){return this.emitter.on("update",e)}},{key:"get",value:function(){return this.currentDatafile}},{key:"start",value:function(){this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=pt.Starting,this.setDatafileFromCacheIfAvailable(),this.repeater.setTask(this.syncDatafile.bind(this)),this.repeater.start(!0))}},{key:"makeDisposable",value:function(){var e;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.initRetryRemaining=Math.min(null!==(e=this.initRetryRemaining)&&void 0!==e?e:5,5)}},{key:"stop",value:function(){var e;this.isDone()||((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(g(Ct,"PollingDatafileManager"))),this.state=pt.Terminated,this.repeater.stop(),null===(e=this.currentRequest)||void 0===e||e.abort(),this.emitter.removeAllListeners(),this.stopPromise.resolve())}},{key:"handleInitFailure",value:function(){this.state=pt.Failed,this.repeater.stop();var e=new Error("Failed to fetch datafile");this.startPromise.reject(e),this.stopPromise.reject(e)}},{key:"handleError",value:function(e){var t,r;this.isDone()||(_instanceof(e,Error)?null===(t=this.logger)||void 0===t||t.error("4",e.message,e):null===(r=this.logger)||void 0===r||r.error("3",e),this.isStarting()&&void 0!==this.initRetryRemaining&&(0===this.initRetryRemaining?this.handleInitFailure():this.initRetryRemaining--))}},{key:"onRequestRejected",value:function(e){return _(this,void 0,void 0,function(){return _ts_generator(this,function(t){return[2,(this.handleError(e),Promise.reject(e))]})})}},{key:"onRequestResolved",value:function(e){return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return this.isDone()?[2]:(this.saveLastModified(e.headers),Ut(e.statusCode)?((t=this.getDatafileFromResponse(e))&&(this.handleDatafile(t),this.autoUpdate&&!this.disposable||this.repeater.stop()),[2]):[2,(this.handleError(e.statusCode),Promise.reject(new Error))])})})}},{key:"makeDatafileRequest",value:function(){var e,t,r=Object.assign({},this.customHeaders);return this.lastResponseLastModified&&(r["if-modified-since"]=this.lastResponseLastModified),this.datafileAccessToken&&(null===(e=this.logger)||void 0===e||e.debug("0"),r.Authorization="Bearer ".concat(this.datafileAccessToken)),null===(t=this.logger)||void 0===t||t.debug("17",this.datafileUrl,function(){return JSON.stringify(r)}),this.requestHandler.makeRequest(this.datafileUrl,r,"GET")}},{key:"syncDatafile",value:function(){return _(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,(this.currentRequest=this.makeDatafileRequest(),this.currentRequest.responsePromise.then(this.onRequestResolved.bind(this),this.onRequestRejected.bind(this)).finally(function(){return e.currentRequest=void 0}))]})})}},{key:"handleDatafile",value:function(e){var t;this.isDone()||(this.currentDatafile=e,null===(t=this.cache)||void 0===t||t.set(this.cacheKey,e),this.isStarting()&&(this.startPromise.resolve(),this.state=pt.Running),this.emitter.emit("update",e))}},{key:"getDatafileFromResponse",value:function(e){var t;if(null===(t=this.logger)||void 0===t||t.debug("23",e.statusCode),304!==e.statusCode)return e.body}},{key:"saveLastModified",value:function(e){var t,r=e["last-modified"]||e["Last-Modified"];void 0!==r&&(this.lastResponseLastModified=r,null===(t=this.logger)||void 0===t||t.debug("24",this.lastResponseLastModified))}},{key:"setDatafileFromCacheIfAvailable",value:function(){return _(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){switch(t.label){case 0:if(!this.cache)return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.cache.get(this.cacheKey)];case 2:return(e=t.sent())&&this.isStarting()&&this.handleDatafile(e),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})}}]),t}(Tt),Kt=function(){function e(t,r,n){_class_call_check(this,e),this.base=t,this.max=r,this.maxJitter=n,this.maxJitter>this.base/2&&(this.maxJitter=this.base/2),this.maxJitter=n,this.current=t}return _create_class(e,[{key:"backoff",value:function(){var e=this.current+this.maxJitter*Math.random();return this.current=Math.min(2*this.current,this.max),e}},{key:"reset",value:function(){this.current=this.base}}]),e}(),Lt=function(){function e(t){_class_call_check(this,e),this.value=t}return _create_class(e,[{key:"backoff",value:function(){return this.value}},{key:"reset",value:function(){}}]),e}(),qt=function(){function e(t,r){_class_call_check(this,e),this.failureCount=0,this.running=!1,this.interval=t,this.backoffController=r}return _create_class(e,[{key:"isRunning",value:function(){return this.running}},{key:"handleSuccess",value:function(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.setTimer(this.interval)}},{key:"handleFailure",value:function(){var e,t;this.failureCount++;var r=null!==(t=null===(e=this.backoffController)||void 0===e?void 0:e.backoff())&&void 0!==t?t:this.interval;this.setTimer(r)}},{key:"setTimer",value:function(e){this.running&&(this.timeoutId=setTimeout(this.executeTask.bind(this),e))}},{key:"executeTask",value:function(){this.task&&this.task(this.failureCount).then(this.handleSuccess.bind(this),this.handleFailure.bind(this))}},{key:"start",value:function(e){var t;this.running=!0,e?(t=this.executeTask.bind(this),"function"==typeof queueMicrotask?queueMicrotask(t):Promise.resolve().then(t)):this.setTimer(this.interval)}},{key:"stop",value:function(){this.running=!1,clearInterval(this.timeoutId)}},{key:"reset",value:function(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.stop()}},{key:"setTask",value:function(e){this.task=e}}]),e}(),Bt=function(e){var t=[];if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error("Invalid store");for(var r=0,n=["set","get","remove","getKeys"];r<n.length;r++){var i=n[r];"function"!=typeof e[i]&&t.push("Invalid store method %s".replace("%s",i))}if(t.length>0)throw new Error(t.join(", "))},zt="Invalid config manager",Ht=Symbol(),Jt=function(e){return _define_property({},Ht,new Nt(e))},Gt=function e(){_class_call_check(this,e),this.operation="sync"},Wt=function e(){_class_call_check(this,e),this.operation="async"},Qt=function(e,t){return _instanceof(e,Gt)?e.getBatched(t):t.map(function(t){return e.get(t)})},$t=function(e,t){return _instanceof(e,Wt)?e.getBatched(t):Promise.all(t.map(function(t){return e.get(t)}))},Yt=function(e){function t(e,r,n,i){var o;return _class_call_check(this,t),(o=_call_super(this,t)).operation="sync",o.store=e,o.prefix=r,o.transformGet=n,o.transformSet=i,o}return _inherits(t,e),_create_class(t,[{key:"addPrefix",value:function(e){return"".concat(this.prefix).concat(e)}},{key:"removePrefix",value:function(e){return e.substring(this.prefix.length)}},{key:"set",value:function(e,t){return this.store.set(this.addPrefix(e),this.transformSet(t))}},{key:"get",value:function(e){var t=this.store.get(this.addPrefix(e));return t?this.transformGet(t):void 0}},{key:"remove",value:function(e){return this.store.remove(this.addPrefix(e))}},{key:"getInternalKeys",value:function(){var e=this;return this.store.getKeys().filter(function(t){return t.startsWith(e.prefix)})}},{key:"getKeys",value:function(){var e=this;return this.getInternalKeys().map(function(t){return e.removePrefix(t)})}},{key:"getBatched",value:function(e){var t=this;return Qt(this.store,e.map(function(e){return t.addPrefix(e)})).map(function(e){return e?t.transformGet(e):void 0})}}]),t}(Gt),Xt=function(){function e(t,r,n,i){_class_call_check(this,e),this.operation="async",this.cache=t,this.prefix=r,this.transformGet=n,this.transformSet=i}return _create_class(e,[{key:"addPrefix",value:function(e){return"".concat(this.prefix).concat(e)}},{key:"removePrefix",value:function(e){return e.substring(this.prefix.length)}},{key:"set",value:function(e,t){return this.cache.set(this.addPrefix(e),this.transformSet(t))}},{key:"get",value:function(e){return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return[4,this.cache.get(this.addPrefix(e))];case 1:return[2,(t=r.sent())?this.transformGet(t):void 0]}})})}},{key:"remove",value:function(e){return this.cache.remove(this.addPrefix(e))}},{key:"getInternalKeys",value:function(){return _(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,this.cache.getKeys().then(function(t){return t.filter(function(t){return t.startsWith(e.prefix)})})]})})}},{key:"getKeys",value:function(){return _(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,this.getInternalKeys().then(function(t){return t.map(function(t){return e.removePrefix(t)})})]})})}},{key:"getBatched",value:function(e){return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return t=this,[4,$t(this.cache,e.map(function(e){return t.addPrefix(e)}))];case 1:return[2,r.sent().map(function(e){return e?t.transformGet(e):void 0})]}})})}}]),e}(),Zt="campaign_activated",er="custom",tr={US:"https://logx.optimizely.com/v1/events",EU:"https://eu.logx.optimizely.com/v1/events"},rr=function(e,t,r,n,i){e().then(function(e){t.resolve(e)}).catch(function(o){var a;if(0!==i)if(r.cancelled)t.reject(new Te("49"));else{var s=null!==(a=null==n?void 0:n.backoff())&&void 0!==a?a:0;setTimeout(function(){rr(e,t,r,n,i=void 0===i?void 0:i-1)},s)}else t.reject(o)})},nr=function(e,t,r){var n=m(),i={cancelled:!1};return rr(e,n,i,t,r),{cancelRetry:function(){i.cancelled=!0},result:n.promise}},ir=function(){function e(){_class_call_check(this,e),this.idSuffixOffset=0}return _create_class(e,[{key:"getId",value:function(){var e=1e4+this.idSuffixOffset;return this.idSuffixOffset=(this.idSuffixOffset+1)%1e4,"".concat(Date.now()).concat(e)}}]),e}(),or={AB_TEST:"ab-test",FEATURE:"feature",FEATURE_TEST:"feature-test",FEATURE_VARIABLE:"feature-variable",ALL_FEATURE_VARIABLES:"all-feature-variables",FLAG:"flag"},ar={ACTIVATE:"ACTIVATE",DECISION:"DECISION",LOG_EVENT:"LOG_EVENT",OPTIMIZELY_CONFIG_UPDATE:"OPTIMIZELY_CONFIG_UPDATE",TRACK:"TRACK"};!function(e){e.BOOLEAN="boolean",e.DOUBLE="double",e.INTEGER="integer",e.STRING="string",e.JSON="json"}(jt||(jt={})),function(e){e.DISABLE_DECISION_EVENT="DISABLE_DECISION_EVENT",e.ENABLED_FLAGS_ONLY="ENABLED_FLAGS_ONLY",e.IGNORE_USER_PROFILE_SERVICE="IGNORE_USER_PROFILE_SERVICE",e.INCLUDE_REASONS="INCLUDE_REASONS",e.EXCLUDE_VARIABLES="EXCLUDE_VARIABLES",e.IGNORE_CMAB_CACHE="IGNORE_CMAB_CACHE",e.RESET_CMAB_CACHE="RESET_CMAB_CACHE",e.INVALIDATE_USER_CMAB_CACHE="INVALIDATE_USER_CMAB_CACHE"}(Dt||(Dt={}));var sr,ur,lr=function(e,t){var r=e.context,n=t.context;return(r.region||"US")===(n.region||"US")&&r.accountId===n.accountId&&r.projectId===n.projectId&&r.clientName===n.clientName&&r.clientVersion===n.clientVersion&&r.revision===n.revision&&r.anonymizeIP===n.anonymizeIP&&r.botFiltering===n.botFiltering},cr=function(e){var t=e.configObj,r=e.userId,n=e.userAttributes,i=e.clientEngine,o=e.clientVersion;return{type:e.type,timestamp:De.currentTimestamp(),uuid:De.uuid(),context:{region:t.region,accountId:t.accountId,projectId:t.projectId,revision:t.revision,clientName:i,clientVersion:o,anonymizeIP:t.anonymizeIP||!1,botFiltering:t.botFiltering},user:{id:r,attributes:dr(t,n)}}},dr=function(e,t,r){if(!t)return[];var n=[];return Object.keys(t).forEach(function(i){var o,a,s,u,l=t[i];if("object"!=(void 0===l?"undefined":_type_of(l))&&void 0!==l&&function(e,t){return"string"==typeof e&&("string"==typeof t||"boolean"==typeof t||De.isNumber(t)&&De.isSafeInteger(t))}(i,l)){var c=(o=i,a=r,s=e.attributeKeyMap[o],u=0===o.indexOf(bt),s?(u&&(null==a||a.warn("58",o,bt)),s.id):u?o:(null==a||a.warn("62",o),null));c&&n.push({entityId:c,key:i,value:l})}}),n},fr=function(e){function t(e){var r,n;return _class_call_check(this,t),(r=_call_super(this,t,[e.startupLogs])).eventQueue=[],r.idGenerator=new ir,r.runningTask=new Map,r.dispatchingEvents=new Map,r.eventEmitter=new Ft,r.eventDispatcher=e.eventDispatcher,r.closingEventDispatcher=e.closingEventDispatcher,r.batchSize=e.batchSize,r.eventStore=e.eventStore,r.retryConfig=e.retryConfig,r.dispatchRepeater=e.dispatchRepeater,r.dispatchRepeater.setTask(function(){return r.flush()}),r.failedEventRepeater=e.failedEventRepeater,null===(n=r.failedEventRepeater)||void 0===n||n.setTask(function(){return r.retryFailedEvents()}),e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("BatchEventProcessor")}},{key:"onDispatch",value:function(e){return this.eventEmitter.on("dispatch",e)}},{key:"retryFailedEvents",value:function(){return _(this,void 0,void 0,function(){var e,t,r,n,i,o;return _ts_generator(this,function(a){switch(a.label){case 0:return e=this,this.eventStore?[4,this.eventStore.getKeys()]:[2];case 1:return t=a.sent().filter(function(t){return!e.dispatchingEvents.has(t)&&!e.eventQueue.find(function(e){return e.id===t})}),[4,"sync"===this.eventStore.operation?Qt(this.eventStore,t):$t(this.eventStore,t)];case 2:return r=a.sent(),n=[],r.forEach(function(e){e&&n.push(e)}),0==n.length?[2]:(n.sort(function(e,t){return e.id<t.id?-1:1}),i=[],o=[],n.forEach(function(t){(o.length===e.batchSize||o.length>0&&!lr(o[0].event,t.event))&&(i.push({request:k(o.map(function(e){return e.event})),events:o}),o=[]),o.push(t)}),o.length>0&&i.push({request:k(o.map(function(e){return e.event})),events:o}),i.forEach(function(t){e.dispatchBatch(t,!1)}),[2])}})})}},{key:"createNewBatch",value:function(){if(0!=this.eventQueue.length){var e=[],t=[];return this.eventQueue.forEach(function(r){e.push(r.event),t.push(r)}),this.eventQueue=[],{request:k(e),events:t}}}},{key:"executeDispatch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return _(this,void 0,void 0,function(){return _ts_generator(this,function(r){return[2,(t&&this.closingEventDispatcher?this.closingEventDispatcher:this.eventDispatcher).dispatchEvent(e).then(function(e){return e.statusCode&&!Ut(e.statusCode)?Promise.reject(new Te("10",e.statusCode)):Promise.resolve(e)})]})})}},{key:"dispatchBatch",value:function(e,t){var r=this,n=e.request,i=e.events;i.forEach(function(e){r.dispatchingEvents.set(e.id,e)});var o=this.retryConfig?nr(function(){return r.executeDispatch(n,t)},this.retryConfig.backoffProvider(),this.retryConfig.maxRetries):{result:this.executeDispatch(n,t),cancelRetry:function(){}};this.eventEmitter.emit("dispatch",n);var a=this.idGenerator.getId();this.runningTask.set(a,o),o.result.then(function(e){return i.forEach(function(e){var t;null===(t=r.eventStore)||void 0===t||t.remove(e.id)}),Promise.resolve()}).catch(function(e){var t;null===(t=r.logger)||void 0===t||t.error(e)}).finally(function(){r.runningTask.delete(a),i.forEach(function(e){return r.dispatchingEvents.delete(e.id)})})}},{key:"flush",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return(t=this.createNewBatch())&&(this.dispatchRepeater.reset(),this.dispatchBatch(t,e)),[2]})})}},{key:"process",value:function(e){var t;return _(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return r=this,this.isRunning()?(n={id:this.idGenerator.getId(),event:e},[4,Promise.resolve(null===(t=this.eventStore)||void 0===t?void 0:t.set(n.id,n)).catch(function(e){var t;null===(t=r.logger)||void 0===t||t.error(e)})]):[2,Promise.reject(new Te("51","BatchEventProcessor"))];case 1:return i.sent(),this.eventQueue.length>0&&!lr(this.eventQueue[0].event,e)&&this.flush(),this.eventQueue.push(n),this.eventQueue.length==this.batchSize?this.flush():this.dispatchRepeater.isRunning()||this.dispatchRepeater.start(),[2]}})})}},{key:"start",value:function(){var e;this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=pt.Running,this.disposable||null===(e=this.failedEventRepeater)||void 0===e||e.start(),this.retryFailedEvents(),this.startPromise.resolve())}},{key:"makeDisposable",value:function(){var e,r,n;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.batchSize=1,this.retryConfig={maxRetries:Math.min(null!==(r=null===(e=this.retryConfig)||void 0===e?void 0:e.maxRetries)&&void 0!==r?r:5,5),backoffProvider:(null===(n=this.retryConfig)||void 0===n?void 0:n.backoffProvider)||function(){return new Kt(200,1e3,500)}}}},{key:"flushImmediately",value:function(){return this.isRunning()?this.flush(!0):Promise.resolve()}},{key:"stop",value:function(){var e,t=this;this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(g(Ct,"BatchEventProcessor"))),this.state=pt.Stopping,this.dispatchRepeater.stop(),null===(e=this.failedEventRepeater)||void 0===e||e.stop(),this.flush(!0),this.runningTask.forEach(function(e){return e.cancelRetry()}),Promise.allSettled(Array.from(this.runningTask.values()).map(function(e){return e.result})).then(function(){t.state=pt.Terminated,t.stopPromise.resolve()}))}}]),t}(Tt),vr=function(){function e(){_class_call_check(this,e),this.waitPromise=Promise.resolve()}return _create_class(e,[{key:"run",value:function(e){var t=this.waitPromise.then(e);return this.waitPromise=t.catch(function(){}),t}}]),e}(),hr="optly_event:",pr=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t)).dispatcher=e,r.eventEmitter=new Ft,r}return _inherits(t,e),_create_class(t,[{key:"process",value:function(e){var t=k([e]),r=this.dispatcher.dispatchEvent(t);return this.eventEmitter.emit("dispatch",t),r}},{key:"start",value:function(){this.isNew()&&(this.state=pt.Running,this.startPromise.resolve())}},{key:"stop",value:function(){this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(g(Ct,"ForwardingEventProcessor"))),this.state=pt.Terminated,this.stopPromise.resolve())}},{key:"onDispatch",value:function(e){return this.eventEmitter.on("dispatch",e)}},{key:"flushImmediately",value:function(){return Promise.resolve()}}]),t}(Tt),gr=Symbol(),yr=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.dispatchEvent)throw new Error("Invalid event dispatcher")},mr=function(e){return _define_property({},gr,e)},_r=function(){function e(t,r){_class_call_check(this,e),this.operation="sync",this.data=new Map,this.maxSize=t,this.ttl=r}return _create_class(e,[{key:"lookup",value:function(e){var t=this.data.get(e);if(t&&(this.data.delete(e),!(t.expiresAt&&t.expiresAt<=Date.now())))return this.data.set(e,t),t.value}},{key:"save",value:function(e,t){if(this.data.delete(e),this.data.size===this.maxSize){var r=this.data.keys().next().value;this.data.delete(r)}this.data.set(e,{value:t,expiresAt:this.ttl?Date.now()+this.ttl:void 0})}},{key:"remove",value:function(e){this.data.delete(e)}},{key:"reset",value:function(){this.data.clear()}},{key:"getKeys",value:function(){return Array.from(this.data.keys())}}]),e}(),br=function(){function e(t,r,n){_class_call_check(this,e),this.requestHandler=t,this.requestGenerator=r,n&&this.setLogger(n)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpEventApiManager")}},{key:"sendEvents",value:function(e,t){return _(this,void 0,void 0,function(){var r,n,i,o,a;return _ts_generator(this,function(s){return 0===t.length?[2,{}]:(r=this.requestGenerator(e,t),n=r.method,i=r.endpoint,o=r.headers,a=r.data,[2,this.requestHandler.makeRequest(i,o,n,a).responsePromise])})})}}]),e}(),kr=function(e,t){var r=e.apiHost,n=e.apiKey;return{method:"POST",endpoint:"".concat(r,"/v3/events"),headers:{"Content-Type":"application/json","x-api-key":n},data:JSON.stringify(t,function(e,t){return _instanceof(t,Map)?Object.fromEntries(t):t})}};!function(e){e.VUID="vuid",e.FS_USER_ID="fs_user_id",e.FS_USER_ID_ALIAS="fs-user-id"}(sr||(sr={})),function(e){e.IDENTIFIED="identified",e.INITIALIZED="client_initialized"}(ur||(ur={}));var Er,Ir="fullstack",Sr=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t,[e.startUpLogs])).queue=[],r.apiManager=e.apiManager,r.batchSize=e.batchSize,r.retryConfig=e.retryConfig,r.repeater=e.repeater,r.repeater.setTask(function(){return r.flush()}),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpEventManager"),this.apiManager.setLogger(e.child())}},{key:"executeDispatch",value:function(e,t){return _(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,this.apiManager.sendEvents(e,t)];case 1:return!(r=i.sent()).statusCode||Ut(r.statusCode)?[3,2]:(n=Promise.reject(new Te("10",r.statusCode)),[3,4]);case 2:return[4,Promise.resolve(r)];case 3:n=i.sent(),i.label=4;case 4:return[2,n]}})})}},{key:"flush",value:function(){return _(this,void 0,void 0,function(){var e,t,r;return _ts_generator(this,function(n){return e=this,this.odpIntegrationConfig&&this.odpIntegrationConfig.integrated?(t=this.odpIntegrationConfig.odpConfig,r=this.queue,[2,(this.queue=[],this.repeater.reset(),nr(function(){return e.executeDispatch(t,r)},this.retryConfig.backoffProvider(),this.retryConfig.maxRetries).result.catch(function(t){var r;null===(r=e.logger)||void 0===r||r.error("11",t)}))]):[2]})})}},{key:"start",value:function(){this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.odpIntegrationConfig?this.goToRunningState():this.state=pt.Starting)}},{key:"makeDisposable",value:function(){_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.retryConfig.maxRetries=Math.min(this.retryConfig.maxRetries,5),this.batchSize=1}},{key:"updateConfig",value:function(e){if(!this.isDone())if(this.isNew())this.odpIntegrationConfig=e;else{if(this.isStarting())return this.odpIntegrationConfig=e,void this.goToRunningState();this.flush(),this.odpIntegrationConfig=e}}},{key:"goToRunningState",value:function(){this.state=pt.Running,this.startPromise.resolve()}},{key:"flushImmediately",value:function(){return this.isRunning()?this.flush():Promise.resolve()}},{key:"stop",value:function(){this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(g(Ct,"OdpEventManager"))),this.flush(),this.state=pt.Terminated,this.stopPromise.resolve())}},{key:"sendEvent",value:function(e){var t,r,n,i,o,a;this.isRunning()?(null===(r=this.odpIntegrationConfig)||void 0===r?void 0:r.integrated)?0!==e.identifiers.size?this.isDataValid(e.data)?e.action?(""===e.type&&(e.type=Ir),Array.from(e.identifiers.entries()).forEach(function(t){var r=_sliced_to_array(t,2),n=r[0],i=r[1];sr.FS_USER_ID_ALIAS!==n.toLowerCase()&&sr.FS_USER_ID!==n.toLowerCase()||(e.identifiers.delete(n),e.identifiers.set(sr.FS_USER_ID,i))}),this.processEvent(e)):null===(a=this.logger)||void 0===a||a.error("5"):null===(o=this.logger)||void 0===o||o.error("6"):null===(i=this.logger)||void 0===i||i.error("39"):null===(n=this.logger)||void 0===n||n.error("43"):null===(t=this.logger)||void 0===t||t.error("51","OdpEventManager")}},{key:"isDataValid",value:function(e){var t=["string","number","boolean"];return Array.from(e.values()).reduce(function(e,r){return e&&(null===r||t.includes(void 0===r?"undefined":_type_of(r)))},!0)}},{key:"processEvent",value:function(e){this.queue.push(e),this.queue.length===this.batchSize?this.flush():this.repeater.isRunning()||this.repeater.start()}}]),t}(Tt),wr=function e(t,r,n,i){_class_call_check(this,e),this.type=t,this.action=r,this.identifiers=null!=n?n:new Map,this.data=null!=i?i:new Map},Or=function(e){return e.startsWith("vuid_")&&e.length>5},xr=function(e){function t(e){var r;if(_class_call_check(this,t),(r=_call_super(this,t)).clientEngine=Ee,r.clientVersion=Se,r.segmentManager=e.segmentManager,r.eventManager=e.eventManager,r.configPromise=m(),e.userAgentParser){var n=e.userAgentParser.parseUserAgentInfo(),i=n.os,o=n.device,a={os:i.name,os_version:i.version,device_type:o.type,model:o.model};r.userAgentData=new Map(Object.entries(a).filter(function(e){var t=_sliced_to_array(e,2),r=(t[0],t[1]);return null!=r&&null!=r}))}return e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpManager"),this.eventManager.setLogger(e.child()),this.segmentManager.setLogger(e.child())}},{key:"setClientInfo",value:function(e,t){this.clientEngine=e,this.clientVersion=t}},{key:"start",value:function(){var e=this;if(this.isNew()){this.state=pt.Starting,this.eventManager.start();var t=[this.configPromise,this.eventManager.onRunning()];Promise.all(t).then(function(){e.handleStartSuccess()}).catch(function(t){e.handleStartFailure(t)})}}},{key:"makeDisposable",value:function(){_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.eventManager.makeDisposable()}},{key:"handleStartSuccess",value:function(){this.isDone()||(this.state=pt.Running,this.startPromise.resolve())}},{key:"handleStartFailure",value:function(e){this.isDone()||(this.state=pt.Failed,this.startPromise.reject(e),this.stopPromise.reject(e))}},{key:"flushImmediately",value:function(){return this.isRunning()?this.eventManager.flushImmediately():Promise.resolve()}},{key:"stop",value:function(){var e=this;this.isDone()||(this.isRunning()||this.startPromise.reject(new Error(g(Ct,"OdpManager"))),this.state=pt.Stopping,this.eventManager.stop(),this.eventManager.onTerminated().then(function(){e.state=pt.Terminated,e.stopPromise.resolve()}).catch(function(t){e.state=pt.Failed,e.stopPromise.reject(t)}))}},{key:"updateConfig",value:function(e){return!(this.odpIntegrationConfig&&(t=this.odpIntegrationConfig,r=e,!(t.integrated!==r.integrated||t.integrated&&r.integrated&&!t.odpConfig.equals(r.odpConfig)))||this.isDone()||(this.odpIntegrationConfig=e,this.configPromise.resolve(),this.segmentManager.updateConfig(e),this.eventManager.updateConfig(e),0));var t,r}},{key:"fetchQualifiedSegments",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _(this,void 0,void 0,function(){return _ts_generator(this,function(r){return[2,Or(e)?this.segmentManager.fetchQualifiedSegments(sr.VUID,e,t):this.segmentManager.fetchQualifiedSegments(sr.FS_USER_ID,e,t)]})})}},{key:"identifyUser",value:function(e,t){var r=new Map,n=e,i=t;!t&&Or(e)&&(i=e,n=void 0),i&&r.set(sr.VUID,i),n&&r.set(sr.FS_USER_ID,n);var o=new wr(Ir,ur.IDENTIFIED,r);this.sendEvent(o)}},{key:"sendEvent",value:function(e){!e.identifiers.has(sr.VUID)&&this.vuid&&e.identifiers.set(sr.VUID,this.vuid),e.data=this.augmentCommonData(e.data),this.eventManager.sendEvent(e)}},{key:"augmentCommonData",value:function(e){var t=new Map(this.userAgentData);return t.set("idempotence_id",ve()),t.set("data_source_type","sdk"),t.set("data_source",this.clientEngine),t.set("data_source_version",this.clientVersion),e.forEach(function(e,r){return t.set(r,e)}),t}},{key:"setVuid",value:function(e){var t=this;this.vuid=e,this.onRunning().then(function(){var e;if(null===(e=t.odpIntegrationConfig)||void 0===e?void 0:e.integrated){var r=new wr(Ir,ur.INITIALIZED);t.sendEvent(r)}})}}]),t}(Tt),Pr={$schema:"http://json-schema.org/draft-04/schema#",title:"Project Config JSON Schema",type:"object",properties:{projectId:{type:"string",required:!0},accountId:{type:"string",required:!0},groups:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},policy:{type:"string",required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0}}},required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0},cmab:{type:"object",required:!1,properties:{attributes:{type:"array",items:{type:"string"},required:!0}}}}},required:!0},events:{type:"array",items:{type:"object",properties:{key:{type:"string",required:!0},experimentIds:{type:"array",items:{type:"string",required:!0}},id:{type:"string",required:!0}}},required:!0},audiences:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},name:{type:"string",required:!0},conditions:{type:"string",required:!0}}},required:!0},attributes:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},version:{type:"string",required:!0},revision:{type:"string",required:!0},integrations:{type:"array",items:{type:"object",properties:{key:{type:"string",required:!0},host:{type:"string"},publicKey:{type:"string"},pixelUrl:{type:"string"}}}}}},Mr={$schema:"https://json-schema.org/draft/2019-09/schema",$id:"https://example.com/example.json",title:"ODP Response Schema",type:"object",required:["data"],properties:{data:{title:"The data Schema",type:"object",required:["customer"],properties:{customer:{title:"The customer Schema",type:"object",required:[],properties:{audiences:{title:"The audiences Schema",type:"object",required:["edges"],properties:{edges:{title:"The edges Schema",type:"array",items:{title:"A Schema",type:"object",required:["node"],properties:{node:{title:"The node Schema",type:"object",required:["name","state"],properties:{name:{title:"The name Schema",type:"string",examples:["has_email","has_email_opted_in"]},state:{title:"The state Schema",type:"string",examples:["qualified"]}},examples:[]}},examples:[]},examples:[]}},examples:[]}},examples:[]}},examples:[]},errors:{title:"The errors Schema",type:"array",default:[],items:{title:"A Schema",type:"object",required:["message","locations","extensions"],properties:{message:{title:"The message Schema",type:"string",examples:["Exception while fetching data (/customer) : java.lang.RuntimeException: could not resolve _fs_user_id = asdsdaddddd"]},locations:{title:"The locations Schema",type:"array",items:{title:"A Schema",type:"object",required:["line","column"],properties:{line:{title:"The line Schema",type:"integer",examples:[2]},column:{title:"The column Schema",type:"integer",examples:[3]}},examples:[]},examples:[]},path:{title:"The path Schema",type:"array",items:{title:"A Schema",type:"string",examples:["customer"]},examples:[]},extensions:{title:"The extensions Schema",type:"object",required:["classification"],properties:{classification:{title:"The classification Schema",type:"string",examples:["InvalidIdentifierException"]}},examples:[]}},examples:[]},examples:[]}},examples:[]},Rr=[],Ar="Audience segments fetch failed",Cr=function(){function e(t,r){_class_call_check(this,e),this.toGraphQLJson=function(e,t,r){return['{"query" : "query {customer',"(".concat(e,' : \\"').concat(t,'\\") '),"{audiences","(subset: ["].concat(_to_consumable_array((null==r?void 0:r.map(function(e,t){return'\\"'.concat(e,'\\"').concat(t<r.length-1?",":"")}))||""),[']) {edges {node {name state}}}}}"}']).join("")},this.requestHandler=t,r&&this.setLogger(r)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpSegmentApiManager")}},{key:"fetchSegments",value:function(e,t,r,n,i){var o,a,s,u,l,c,d,f,v;return _(this,void 0,void 0,function(){var h,p,g,y,m,_,b,k;return _ts_generator(this,function(E){switch(E.label){case 0:return 0===(null==i?void 0:i.length)?[2,Rr]:(h="".concat(t,"/v3/graphql"),p=this.toGraphQLJson(r,n,i),[4,this.querySegments(e,h,p)]);case 1:return(g=E.sent())?(y=this.parseSegmentsResponseJson(g))?(null===(s=y.errors)||void 0===s?void 0:s.length)>0?(m=y.errors[0].extensions,_=m.code,b=m.classification,[2,("INVALID_IDENTIFIER_EXCEPTION"==_?null===(u=this.logger)||void 0===u||u.error("".concat(Ar," (invalid identifier)")):null===(l=this.logger)||void 0===l||l.error("".concat(Ar," (").concat(b,")")),null)]):[2,(k=null===(f=null===(d=null===(c=null==y?void 0:y.data)||void 0===c?void 0:c.customer)||void 0===d?void 0:d.audiences)||void 0===f?void 0:f.edges)?k.filter(function(e){return"qualified"==e.node.state}).map(function(e){return e.node.name}):(null===(v=this.logger)||void 0===v||v.error("".concat(Ar," (decode error)")),null)]:[2,(null===(a=this.logger)||void 0===a||a.error("".concat(Ar," (decode error)")),null)]:[2,(null===(o=this.logger)||void 0===o||o.error("".concat(Ar," (network error)")),null)]}})})}},{key:"querySegments",value:function(e,t,r){return _(this,void 0,void 0,function(){var n,i,o,a,s;return _ts_generator(this,function(u){switch(u.label){case 0:n=t,i={"Content-Type":"application/json","x-api-key":e},u.label=1;case 1:return u.trys.push([1,3,,4]),[4,this.requestHandler.makeRequest(n,i,"POST",r).responsePromise];case 2:return o=u.sent(),a=o.statusCode,s=o.body,[2,a>=200&&a<300?s:null];case 3:return u.sent(),[2,null];case 4:return[2]}})})}},{key:"parseSegmentsResponseJson",value:function(e){var t={};try{t=JSON.parse(e)}catch(e){return null}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Pr,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)throw new Te("34");var n=(0,he.validate)(e,t);if(n.valid)return!0;if(!r)return!1;if(Array.isArray(n.errors))throw new Te("17",n.errors[0].property,n.errors[0].message);throw new Te("25")}(t,Mr,!1)?t:null}}]),e}();!function(e){e.IGNORE_CACHE="IGNORE_CACHE",e.RESET_CACHE="RESET_CACHE"}(Er||(Er={}));var jr=function(){function e(t,r,n){_class_call_check(this,e),this.segmentsCache=t,this.odpSegmentApiManager=r,n&&this.setLogger(n)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpSegmentManager"),this.odpSegmentApiManager.setLogger(e.child())}},{key:"fetchQualifiedSegments",value:function(e,t,r){var n,i;return _(this,void 0,void 0,function(){var o,a,s,u,l,c;return _ts_generator(this,function(d){switch(d.label){case 0:return this.odpIntegrationConfig?this.odpIntegrationConfig.integrated?(o=this.odpIntegrationConfig.odpConfig,!(a=o.segmentsToCheck)||a.length<=0?[2,[]]:(s=this.makeCacheKey(e,t),u=null==r?void 0:r.includes(Er.IGNORE_CACHE),(null==r?void 0:r.includes(Er.RESET_CACHE))&&this.segmentsCache.reset(),u?[3,2]:[4,this.segmentsCache.lookup(s)])):[2,(null===(i=this.logger)||void 0===i||i.warn("43"),null)]:[2,(null===(n=this.logger)||void 0===n||n.warn("38"),null)];case 1:if(l=d.sent())return[2,l];d.label=2;case 2:return[4,this.odpSegmentApiManager.fetchSegments(o.apiKey,o.apiHost,e,t,a)];case 3:return[2,((c=d.sent())&&!u&&this.segmentsCache.save(s,c),c)]}})})}},{key:"makeCacheKey",value:function(e,t){return"".concat(e,"-$-").concat(t)}},{key:"updateConfig",value:function(e){this.odpIntegrationConfig=e,this.segmentsCache.reset()}}]),e}(),Dr=Symbol(),Tr=function(e){var t,r=function(e){return e.segmentsCache&&function(e){var t=[];if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error("Invalid cache");for(var r=0,n=["save","lookup","reset"];r<n.length;r++){var i=n[r];"function"!=typeof e[i]&&t.push("Invalid cache method %s".replace("%s",i))}if(t.length>0)throw new Error(t.join(", "))}(e.segmentsCache),new jr(e.segmentsCache||(t=e.segmentsCacheSize,r=e.segmentsCacheTimeout,new _r(t||1e4,r||6e5)),new Cr(e.segmentRequestHandler));var t,r}(e),n=new Sr({apiManager:new br((t=e).eventRequestHandler,t.eventRequestGenerator),batchSize:t.eventBatchSize||100,repeater:new qt(t.eventFlushInterval||1e4),retryConfig:{maxRetries:t.eventMaxRetries||2,backoffProvider:function(){return new Kt(t.eventMinBackoff||200,t.eventMaxBackoff||1e3,50)}}});return new xr({segmentManager:r,eventManager:n,userAgentParser:e.userAgentParser})},Fr=Symbol(),Nr=function(){function e(t,r){_class_call_check(this,e),this.logger=t,this.errorNotifier=r}return _create_class(e,[{key:"report",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if("string"==typeof e)return e=_construct(Te,[e].concat(_to_consumable_array(r))),void this.report(e);this.errorNotifier&&this.errorNotifier.notify(e),this.logger&&this.logger.error(e)}},{key:"setLogger",value:function(e){this.logger=e}},{key:"setErrorNotifier",value:function(e){this.errorNotifier=e}}]),e}(),Ur=function(){function e(t){_class_call_check(this,e),this.removerId=1,this.eventEmitter=new Ft,this.removers=new Map,this.errorReporter=new Nr(t.logger,t.errorNotifier)}return _create_class(e,[{key:"addNotificationListener",value:function(e,t){if(!(v(ar).indexOf(e)>-1))return-1;var r=this.removerId++,n=this.eventEmitter.on(e,this.wrapWithErrorReporting(e,t));return this.removers.set(r,n),r}},{key:"wrapWithErrorReporting",value:function(e,t){var r=this;return function(n){try{t(n)}catch(t){var i=_instanceof(t,Error)?t.message:String(t);r.errorReporter.report("30",e,i)}}}},{key:"removeNotificationListener",value:function(e){var t=this.removers.get(e);return!!t&&(t(),!0)}},{key:"clearAllNotificationListeners",value:function(){this.eventEmitter.removeAllListeners()}},{key:"clearNotificationListeners",value:function(e){this.eventEmitter.removeListeners(e)}},{key:"sendNotifications",value:function(e,t){this.eventEmitter.emit(e,t)}}]),e}(),Vr="$opt_null_rule_key",Kr=function(){function e(t){var r=t.optimizely,n=t.userId,i=t.attributes;_class_call_check(this,e),this._qualifiedSegments=null,this.optimizely=r,this.userId=n,this.attributes=Object.assign({},i),this.forcedDecisionsMap={}}return _create_class(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"getUserId",value:function(){return this.userId}},{key:"getAttributes",value:function(){return Object.assign({},this.attributes)}},{key:"getOptimizely",value:function(){return this.optimizely}},{key:"qualifiedSegments",get:function(){return this._qualifiedSegments},set:function(e){this._qualifiedSegments=e}},{key:"decide",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.optimizely.decide(this.cloneUserContext(),e,t)}},{key:"decideAsync",value:function(e,t){return this.optimizely.decideAsync(this.cloneUserContext(),e,t)}},{key:"decideForKeys",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.optimizely.decideForKeys(this.cloneUserContext(),e,t)}},{key:"decideForKeysAsync",value:function(e,t){return this.optimizely.decideForKeysAsync(this.cloneUserContext(),e,t)}},{key:"decideAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.optimizely.decideAll(this.cloneUserContext(),e)}},{key:"decideAllAsync",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.optimizely.decideAllAsync(this.cloneUserContext(),e)}},{key:"trackEvent",value:function(e,t){this.optimizely.track(e,this.userId,this.attributes,t)}},{key:"setForcedDecision",value:function(e,t){var r,n=e.flagKey,i=null!==(r=e.ruleKey)&&void 0!==r?r:Vr,o={variationKey:t.variationKey};return this.forcedDecisionsMap[n]||(this.forcedDecisionsMap[n]={}),this.forcedDecisionsMap[n][i]=o,!0}},{key:"getForcedDecision",value:function(e){return this.findForcedDecision(e)}},{key:"removeForcedDecision",value:function(e){var t,r=null!==(t=e.ruleKey)&&void 0!==t?t:Vr,n=e.flagKey,i=!1;return this.forcedDecisionsMap.hasOwnProperty(n)&&(this.forcedDecisionsMap[n].hasOwnProperty(r)&&(delete this.forcedDecisionsMap[n][r],i=!0),0===Object.keys(this.forcedDecisionsMap[n]).length&&delete this.forcedDecisionsMap[n]),i}},{key:"removeAllForcedDecisions",value:function(){return this.forcedDecisionsMap={},!0}},{key:"findForcedDecision",value:function(e){var t,r=null!==(t=e.ruleKey)&&void 0!==t?t:Vr,n=e.flagKey;if(this.forcedDecisionsMap.hasOwnProperty(e.flagKey)){var i=this.forcedDecisionsMap[n];if(i.hasOwnProperty(r))return{variationKey:i[r].variationKey}}return null}},{key:"cloneUserContext",value:function(){var t=new e({optimizely:this.getOptimizely(),userId:this.getUserId(),attributes:this.getAttributes()});return Object.keys(this.forcedDecisionsMap).length>0&&(t.forcedDecisionsMap=Object.assign({},this.forcedDecisionsMap)),t._qualifiedSegments=this._qualifiedSegments,t}},{key:"fetchQualifiedSegments",value:function(e){return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return[4,this.optimizely.fetchQualifiedSegments(this.userId,e)];case 1:return t=r.sent(),[2,(this.qualifiedSegments=t,null!==t)]}})})}},{key:"isQualifiedFor",value:function(e){return!!this._qualifiedSegments&&this._qualifiedSegments.indexOf(e)>-1}}]),e}(),Lr=Math.pow(2,32),qr=function(e){try{var t=pe.default.v3(e,1)/Lr;return Math.floor(1e4*t)}catch(t){throw new Te("14",e,t.message)}},Br="User %s is not in any experiment of group %s.",zr="User %s is not in experiment %s of group %s.",Hr="User %s is in experiment %s of group %s.",Jr="Assigned bucket %s to user with bucketing ID %s.",Gr="Bucketed into an invalid variation ID. Returning null.",Wr=function(e){var t,r,n,i,o,a=[],s=e.experimentIdMap[e.experimentId],u=null==s?void 0:s.groupId;if(u){var l=e.groupIdMap[u];if(!l)throw new Te("23",u);if("random"===l.policy){var c=Qr(l,e.bucketingId,e.userId,e.logger);if(null===c)return null===(t=e.logger)||void 0===t||t.info(Br,e.userId,u),a.push([Br,e.userId,u]),{result:null,reasons:a};if(c!==e.experimentId)return null===(r=e.logger)||void 0===r||r.info(zr,e.userId,e.experimentKey,u),a.push([zr,e.userId,e.experimentKey,u]),{result:null,reasons:a};null===(n=e.logger)||void 0===n||n.info(Hr,e.userId,e.experimentKey,u),a.push([Hr,e.userId,e.experimentKey,u])}}var d="".concat(e.bucketingId).concat(e.experimentId),f=qr(d);null===(i=e.logger)||void 0===i||i.debug(Jr,f,e.userId),a.push([Jr,f,e.userId]);var v=$r(f,e.trafficAllocationConfig);return e.validateEntity&&null!==v&&!e.variationIdMap[v]?(v&&(null===(o=e.logger)||void 0===o||o.warn(Gr),a.push([Gr])),{result:null,reasons:a}):{result:v,reasons:a}},Qr=function(e,t,r,n){var i="".concat(t).concat(e.id),o=qr(i);null==n||n.debug(Jr,o,r);var a=e.trafficAllocation;return $r(o,a)},$r=function(e,t){for(var r=0;r<t.length;r++)if(e<t[r].endOfRange)return t[r].entityId;return null},Yr="exact",Xr="exists",Zr="semver_eq",en="semver_ge",tn="semver_gt",rn="semver_le",nn="semver_lt",on="substring",an=[Yr,Xr,"gt","ge","lt","le",on,Zr,nn,rn,tn,en],sn={};sn[Yr]=A,sn[Xr]=function(e,t,r){return null!=t.getAttributes()[e.name]},sn.gt=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return C(e,t,r)&&null!==i?n>i:null},sn.ge=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return C(e,t,r)&&null!==i?n>=i:null},sn.lt=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return C(e,t,r)&&null!==i?n<i:null},sn.le=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return C(e,t,r)&&null!==i?n<=i:null},sn[on]=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[e.name],a=void 0===o?"undefined":_type_of(o),s=e.value;return"string"!=typeof s?(null==r||r.warn(Ge,JSON.stringify(e)),null):null===o?(null==r||r.debug(Le,JSON.stringify(e),i),null):"string"!=typeof o?(null==r||r.warn(We,JSON.stringify(e),a,i),null):-1!==o.indexOf(s)},sn[Zr]=function(e,t,r){var n=j(e,t,r);return null===n?null:0===n},sn[tn]=function(e,t,r){var n=j(e,t,r);return null===n?null:n>0},sn[en]=function(e,t,r){var n=j(e,t,r);return null===n?null:n>=0},sn[nn]=function(e,t,r){var n=j(e,t,r);return null===n?null:n<0},sn[rn]=function(e,t,r){var n=j(e,t,r);return null===n?null:n<=0};var un=function(e){return{evaluate:function(t,r){return function(e,t,r){var n=t.getAttributes(),i=e.match;if(void 0!==i&&-1===an.indexOf(i))return null==r||r.warn(Qe,JSON.stringify(e)),null;var o=e.name;return n.hasOwnProperty(o)||i==Xr?(i&&sn[i]||A)(e,t,r):(null==r||r.debug("18",JSON.stringify(e),o),null)}(t,r,e)}}},ln="qualified",cn=[ln],dn={};dn[ln]=D;var fn=function(e){return{evaluate:function(t,r){return function(e,t,r){var n=e.match;return void 0!==n&&-1===cn.indexOf(n)?(null==r||r.warn(Qe,JSON.stringify(e)),null):(n&&dn[n]||D)(e,t)}(t,r,e)}}},vn=function(){function e(t,r){_class_call_check(this,e),this.logger=r,this.typeToEvaluatorMap=Object.assign(Object.assign({},t),{custom_attribute:un(this.logger),third_party_dimension:fn(this.logger)})}return _create_class(e,[{key:"evaluate",value:function(e,t,r){var n=this;return!e||0===e.length||!!ht(e,function(e){var i,o,a=t[e];if(a){null===(i=n.logger)||void 0===i||i.debug("5",e,JSON.stringify(a.conditions));var s=ht(a.conditions,n.evaluateConditionWithUserAttributes.bind(n,r)),u=null===s?"UNKNOWN":s.toString().toUpperCase();return null===(o=n.logger)||void 0===o||o.debug("1",e,u),s}return null})}},{key:"evaluateConditionWithUserAttributes",value:function(e,t){var r,n,i=this.typeToEvaluatorMap[t.type];if(!i)return null===(r=this.logger)||void 0===r||r.warn("60",JSON.stringify(t)),null;try{return i.evaluate(t,e)}catch(e){null===(n=this.logger)||void 0===n||n.error("2",t.type,e.message)}return null}}]),e}(),hn=function(){function e(t,r){_class_call_check(this,e),this.op=t,this.val=r}return _create_class(e,[{key:"get",value:function(){return this.val}},{key:"then",value:function(t){if("sync"===this.op){var r=t(this.val);return e.of(this.op,r.get())}return e.of(this.op,this.val.then(t))}}],[{key:"of",value:function(t,r){if("sync"===t){if((n=r)&&"function"==typeof n.then)throw new Te("Promise value is not allowed in sync operation");return new e(t,r)}var n;return new e(t,Promise.resolve(r))}}]),e}();hn.all=function(e,t){if("sync"===e){var r=t.map(function(e){return e.get()});return hn.of(e,r)}var n=t.map(function(e){return e.get()});return hn.of(e,Promise.all(n))};var pn,gn="Experiment %s is not running.",yn='Returning previously activated variation "%s" of experiment "%s" for user "%s" from user profile.',mn="User %s does not meet conditions to be in experiment %s.",_n="User %s is in no variation of experiment %s.",bn="User %s is in variation %s of experiment %s.",kn="User %s is forced in variation %s.",En="Variation key %s is not in datafile. Not activating user %s.",In='Evaluating audiences for %s "%s": %s.',Sn="Audiences for %s %s collectively evaluated to %s.",wn="User %s is in rollout of feature %s.",On="User %s is not in rollout of feature %s.",xn="Feature %s is not attached to any experiments.",Pn="User %s does not meet conditions for targeting rule %s.",Mn="User %s not bucketed into targeting rule %s due to traffic allocation. Trying everyone rule.",Rn="User %s bucketed into targeting rule %s.",An="There is no rollout of feature %s.",Cn="Invalid rollout ID %s attached to feature %s",jn="Rollout of feature %s has no experiments",Dn="Experiment key %s is improperly formatted.",Tn="Variation %s is mapped to experiment %s and user %s in the forced variation map.",Fn="User %s meets conditions for targeting rule %s.",Nn="Variation (%s) is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",Un="Variation (%s) is mapped to flag (%s) and user (%s) in the forced decision map.",Vn="Invalid variation is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",Kn="Invalid variation is mapped to flag (%s) and user (%s) in the forced decision map.",Ln="Failed to fetch CMAB data for experiment %s.",qn="Holdout %s is not running.",Bn="User %s meets conditions for holdout %s.",zn="User %s does not meet conditions for holdout %s.",Hn="User %s is in variation %s of holdout %s.",Jn="User %s is in no holdout variation.",Gn=function(){function e(t){var r,n,i;_class_call_check(this,e),this.logger=t.logger,null===(r=this.logger)||void 0===r||r.setName("DecisionService"),this.audienceEvaluator=(n=t.UNSTABLE_conditionEvaluators,i=this.logger,new vn(n,i)),this.forcedVariationMap={},this.userProfileService=t.userProfileService,this.userProfileServiceAsync=t.userProfileServiceAsync,this.cmabService=t.cmabService}return _create_class(e,[{key:"isCmab",value:function(e){return!!e.cmab}},{key:"resolveVariation",value:function(e,t,r,n,i,o){var a,s,u,l,c,d,f=this,v=n.getUserId(),h=r.key;if(wt(t,h)!==_t)return null===(l=this.logger)||void 0===l||l.info(gn,h),hn.of(e,{result:{},reasons:[[gn,h]]});var p=[],g=this.getForcedVariation(t,h,v);(a=p).push.apply(a,_to_consumable_array(g.reasons));var y=g.result;if(y)return hn.of(e,{result:{variationKey:y},reasons:p});var m=this.getWhitelistedVariation(r,v);(s=p).push.apply(s,_to_consumable_array(m.reasons));var _=m.result;if(_)return hn.of(e,{result:{variationKey:_.key},reasons:p});if(o&&(_=this.getStoredVariation(t,r,v,o.userProfile)))return null===(c=this.logger)||void 0===c||c.info(yn,_.key,h,v),p.push([yn,_.key,h,v]),hn.of(e,{result:{variationKey:_.key},reasons:p});var b=this.checkIfUserIsInAudience(t,r,Oe,n,"");return(u=p).push.apply(u,_to_consumable_array(b.reasons)),b.result?(this.isCmab(r)?this.getDecisionForCmabExperiment(e,t,r,n,i):this.getDecisionFromBucketer(e,t,r,n)).then(function(n){var i,a,s;if((i=p).push.apply(i,_to_consumable_array(n.reasons)),n.error)return hn.of(e,{error:!0,result:{},reasons:p});var u=n.result.variationId;return(_=u?t.variationIdMap[u]:null)?(null===(s=f.logger)||void 0===s||s.info(bn,v,_.key,h),p.push([bn,v,_.key,h]),o&&!f.isCmab(r)&&f.updateUserProfile(r,_,o),hn.of(e,{result:{variationKey:_.key,cmabUuid:n.result.cmabUuid},reasons:p})):(null===(a=f.logger)||void 0===a||a.debug(_n,v,h),p.push([_n,v,h]),hn.of(e,{result:{},reasons:p}))}):(null===(d=this.logger)||void 0===d||d.info(mn,v,h),p.push([mn,v,h]),hn.of(e,{result:{},reasons:p}))}},{key:"getDecisionForCmabExperiment",value:function(e,t,r,n,i){var o=this;if("sync"===e)return hn.of(e,{error:!1,result:{},reasons:[["CMAB is not supported in sync mode."]]});var a=n.getUserId(),s=n.getAttributes(),u=this.getBucketingId(a,s),l=this.buildBucketerParams(t,r,u,a),c=Wr(l);if("$"!==c.result)return hn.of(e,{error:!1,result:{},reasons:c.reasons});var d=this.cmabService.getDecision(t,n,r.id,i).then(function(e){return{error:!1,result:e,reasons:[]}}).catch(function(e){var t;return null===(t=o.logger)||void 0===t||t.error(Ln,r.key),{error:!0,result:{},reasons:[[Ln,r.key]]}});return hn.of(e,d)}},{key:"getDecisionFromBucketer",value:function(e,t,r,n){var i=n.getUserId(),o=n.getAttributes(),a=this.getBucketingId(i,o),s=this.buildBucketerParams(t,r,a,i),u=Wr(s);return hn.of(e,{result:{variationId:u.result||void 0},reasons:u.reasons})}},{key:"getVariation",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=n[Dt.IGNORE_USER_PROFILE_SERVICE]?void 0:{isProfileUpdated:!1,userProfile:this.resolveExperimentBucketMap("sync",r.getUserId(),r.getAttributes()).get()},o=this.resolveVariation("sync",e,t,r,n,i).get();return i&&this.saveUserProfile("sync",r.getUserId(),i),{result:o.result.variationKey||null,reasons:o.reasons}}},{key:"resolveExperimentBucketMap",value:function(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).$opt_experiment_bucket_map||{};return this.getUserProfile(e,t).then(function(t){var n=(null==t?void 0:t.experiment_bucket_map)||{};return hn.of(e,Object.assign(Object.assign({},n),r))})}},{key:"getWhitelistedVariation",value:function(e,t){var r,n,i=[];if(e.forcedVariations&&e.forcedVariations.hasOwnProperty(t)){var o=e.forcedVariations[t];return e.variationKeyMap.hasOwnProperty(o)?(null===(r=this.logger)||void 0===r||r.info(kn,t,o),i.push([kn,t,o]),{result:e.variationKeyMap[o],reasons:i}):(null===(n=this.logger)||void 0===n||n.error(En,o,t),i.push([En,o,t]),{result:null,reasons:i})}return{result:null,reasons:i}}},{key:"checkIfUserIsInAudience",value:function(e,t,r,n,i){var o,a,s=[],u=t.audienceConditions||t.audienceIds,l=e.audiencesById;null===(o=this.logger)||void 0===o||o.debug(In,r,i||t.key,JSON.stringify(u)),s.push([In,r,i||t.key,JSON.stringify(u)]);var c=this.audienceEvaluator.evaluate(u,l,n);return null===(a=this.logger)||void 0===a||a.info(Sn,r,i||t.key,c.toString().toUpperCase()),s.push([Sn,r,i||t.key,c.toString().toUpperCase()]),{result:c,reasons:s}}},{key:"buildBucketerParams",value:function(e,t,r,n){var i=!0,o=t.trafficAllocation;return"cmab"in t&&t.cmab&&(o=[{entityId:"$",endOfRange:t.cmab.trafficAllocation}],i=!1),{bucketingId:r,experimentId:t.id,experimentKey:t.key,experimentIdMap:e.experimentIdMap,experimentKeyMap:e.experimentKeyMap,groupIdMap:e.groupIdMap,logger:this.logger,trafficAllocationConfig:o,userId:n,variationIdMap:e.variationIdMap,validateEntity:i}}},{key:"getVariationForHoldout",value:function(e,t,r){var n,i,o,a,s,u,l,c=r.getUserId(),d=[];if("Running"!==t.status){var f=[qn,t.key];return d.push(f),null===(o=this.logger)||void 0===o||o.info(qn,t.key),{result:{experiment:null,variation:null,decisionSource:we.HOLDOUT},reasons:d}}var v=this.checkIfUserIsInAudience(e,t,Oe,r);if((n=d).push.apply(n,_to_consumable_array(v.reasons)),!v.result){var h=[zn,c,t.key];return d.push(h),null===(a=this.logger)||void 0===a||a.info(zn,c,t.key),{result:{experiment:null,variation:null,decisionSource:we.HOLDOUT},reasons:d}}var p=[Bn,c,t.key];d.push(p),null===(s=this.logger)||void 0===s||s.info(Bn,c,t.key);var g=r.getAttributes(),y=this.getBucketingId(c,g),m=this.buildBucketerParams(e,t,y,c),_=Wr(m);if((i=d).push.apply(i,_to_consumable_array(_.reasons)),_.result){var b=e.variationIdMap[_.result];if(b){var k=[Hn,c,t.key,b.key];return d.push(k),null===(u=this.logger)||void 0===u||u.info(Hn,c,t.key,b.key),{result:{experiment:t,variation:b,decisionSource:we.HOLDOUT},reasons:d}}}var E=[Jn,c];return d.push(E),null===(l=this.logger)||void 0===l||l.info(Jn,c),{result:{experiment:null,variation:null,decisionSource:we.HOLDOUT},reasons:d}}},{key:"getStoredVariation",value:function(e,t,r,n){var i;if(null==n?void 0:n.hasOwnProperty(t.id)){var o=n[t.id],a=o.variation_id;if(e.variationIdMap.hasOwnProperty(a))return e.variationIdMap[o.variation_id];null===(i=this.logger)||void 0===i||i.info("26",r,a,t.key)}return null}},{key:"getUserProfile",value:function(e,t){var r,n=this,i={user_id:t,experiment_bucket_map:{}};if(this.userProfileService){try{return hn.of(e,this.userProfileService.lookup(t))}catch(e){null===(r=this.logger)||void 0===r||r.error("66",t,e.message)}return hn.of(e,i)}return this.userProfileServiceAsync&&"async"===e?hn.of(e,this.userProfileServiceAsync.lookup(t).catch(function(e){var r;return null===(r=n.logger)||void 0===r||r.error("66",t,e.message),i})):hn.of(e,i)}},{key:"updateUserProfile",value:function(e,t,r){r.userProfile&&(r.userProfile[e.id]={variation_id:t.id},r.isProfileUpdated=!0)}},{key:"saveUserProfile",value:function(e,t,r){var n,i,o=this,a=r.userProfile,s=r.isProfileUpdated;if(!a||!s)return hn.of(e,void 0);if("sync"===e&&!this.userProfileService)return hn.of(e,void 0);if(this.userProfileService){try{this.userProfileService.save({user_id:t,experiment_bucket_map:a}),null===(n=this.logger)||void 0===n||n.info("25",t)}catch(e){null===(i=this.logger)||void 0===i||i.error("67",t,e.message)}return hn.of(e,void 0)}return this.userProfileServiceAsync?hn.of(e,this.userProfileServiceAsync.save({user_id:t,experiment_bucket_map:a}).catch(function(e){var r;null===(r=o.logger)||void 0===r||r.error("67",t,e.message)})):hn.of(e,void 0)}},{key:"getVariationsForFeatureList",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resolveVariationsForFeatureList("sync",e,t,r,n).get()}},{key:"resolveVariationsForFeatureList",value:function(e,t,r,n,i){var o=this,a=n.getUserId(),s=n.getAttributes();return(i[Dt.IGNORE_USER_PROFILE_SERVICE]?hn.of(e,void 0):this.resolveExperimentBucketMap(e,a,s).then(function(t){return hn.of(e,{isProfileUpdated:!1,userProfile:t})})).then(function(s){var u=r.map(function(r){return o.resolveVariationForFlag(e,t,r,n,i,s)}),l=hn.all(e,u);return l.then(function(){return s&&o.saveUserProfile(e,a,s),l})})}},{key:"resolveVariationForFlag",value:function(e,t,r,n,i,o){var a,s=this,u=[],l=this.findValidatedForcedDecision(t,n,r.key);if((a=u).push.apply(a,_to_consumable_array(l.reasons)),l.result)return hn.of(e,{result:{variation:l.result,experiment:null,decisionSource:we.FEATURE_TEST},reasons:u});var c=function(e,t){if(e.flagHoldoutsMap[t])return e.flagHoldoutsMap[t];var r=_to_consumable_array(e.globalHoldouts.filter(function(r){return!(e.excludedHoldouts[t]||[]).includes(r)})).concat(_to_consumable_array(e.includedHoldouts[t]||[]));return e.flagHoldoutsMap[t]=r,r}(t,r.key),d=!0,f=!1,v=void 0;try{for(var h,p=c[Symbol.iterator]();!(d=(h=p.next()).done);d=!0){var g,y=h.value,m=this.getVariationForHoldout(t,y,n);if((g=u).push.apply(g,_to_consumable_array(m.reasons)),m.result.variation)return hn.of(e,{result:m.result,reasons:u})}}catch(e){f=!0,v=e}finally{try{d||null==p.return||p.return()}finally{if(f)throw v}}return this.getVariationForFeatureExperiment(e,t,r,n,i,o).then(function(i){var o,a,l,c;if(i.error||null!==i.result.variation)return hn.of(e,Object.assign(Object.assign({},i),{reasons:_to_consumable_array(u).concat(_to_consumable_array(i.reasons))}));(o=u).push.apply(o,_to_consumable_array(i.reasons));var d=s.getVariationForRollout(t,r,n);(a=u).push.apply(a,_to_consumable_array(d.reasons));var f=d.result,v=n.getUserId();return f.variation?(null===(l=s.logger)||void 0===l||l.debug(wn,v,r.key),u.push([wn,v,r.key])):(null===(c=s.logger)||void 0===c||c.debug(On,v,r.key),u.push([On,v,r.key])),hn.of(e,{result:f,reasons:u})})}},{key:"getVariationForFeature",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resolveVariationsForFeatureList("sync",e,[t],r,n).get()[0]}},{key:"getVariationForFeatureExperiment",value:function(e,t,r,n,i,o){var a;return 0===r.experimentIds.length?(null===(a=this.logger)||void 0===a||a.debug(xn,r.key),hn.of(e,{result:{experiment:null,variation:null,decisionSource:we.FEATURE_TEST},reasons:[[xn,r.key]]})):this.traverseFeatureExperimentList(e,t,r,0,n,[],i,o)}},{key:"traverseFeatureExperimentList",value:function(e,t,r,n,i,o,a,s){var u=this,l=r.experimentIds;if(n>=l.length)return hn.of(e,{result:{experiment:null,variation:null,decisionSource:we.FEATURE_TEST},reasons:o});var c=function(e,t,r){if(e.experimentIdMap.hasOwnProperty(t)){var n=e.experimentIdMap[t];if(n)return n}return null==r||r.error("21",t),null}(t,l[n],this.logger);return c?this.getVariationFromExperimentRule(e,t,r.key,c,i,a,s).then(function(l){var d;if((d=o).push.apply(d,_to_consumable_array(l.reasons)),l.error)return hn.of(e,{error:!0,result:{experiment:c,variation:null,decisionSource:we.FEATURE_TEST},reasons:o});if(!l.result.variationKey)return u.traverseFeatureExperimentList(e,t,r,n+1,i,o,a,s);var f=l.result.variationKey,v=c.variationKeyMap[f];return v||(v=xt(t,r.key,f)),hn.of(e,{result:{cmabUuid:l.result.cmabUuid,experiment:c,variation:v,decisionSource:we.FEATURE_TEST},reasons:o})}):this.traverseFeatureExperimentList(e,t,r,n+1,i,o,a,s)}},{key:"getVariationForRollout",value:function(e,t,r){var n,i,o,a=[];if(!t.rolloutId)return null===(n=this.logger)||void 0===n||n.debug(An,t.key),a.push([An,t.key]),{result:{experiment:null,variation:null,decisionSource:we.ROLLOUT},reasons:a};var s=e.rolloutIdMap[t.rolloutId];if(!s)return null===(i=this.logger)||void 0===i||i.error(Cn,t.rolloutId,t.key),a.push([Cn,t.rolloutId,t.key]),{result:{experiment:null,variation:null,decisionSource:we.ROLLOUT},reasons:a};var u=s.experiments;if(0===u.length)return null===(o=this.logger)||void 0===o||o.error(jn,t.rolloutId),a.push([jn,t.rolloutId]),{result:{experiment:null,variation:null,decisionSource:we.ROLLOUT},reasons:a};for(var l,c,d,f=0;f<u.length;){var v;if(l=this.getVariationFromDeliveryRule(e,t.key,u,f,r),(v=a).push.apply(v,_to_consumable_array(l.reasons)),d=l.result,c=l.skipToEveryoneElse,d)return{result:{experiment:e.experimentIdMap[u[f].id],variation:d,decisionSource:we.ROLLOUT},reasons:a};f=c?u.length-1:f+1}return{result:{experiment:null,variation:null,decisionSource:we.ROLLOUT},reasons:a}}},{key:"getBucketingId",value:function(e,t){var r,n,i=e;return null!=t&&"object"==(void 0===t?"undefined":_type_of(t))&&t.hasOwnProperty(ke)&&("string"==typeof t[ke]?(i=String(t[ke]),null===(r=this.logger)||void 0===r||r.debug("37",i)):null===(n=this.logger)||void 0===n||n.warn("0")),i}},{key:"findValidatedForcedDecision",value:function(e,t,r,n){var i,o,a,s,u,l=[],c=t.getForcedDecision({flagKey:r,ruleKey:n}),d=null,f=t.getUserId();return e&&c&&(u=c.variationKey,(d=xt(e,r,u))?n?(null===(i=this.logger)||void 0===i||i.info(Nn,u,r,n,f),l.push([Nn,u,r,n,f])):(null===(o=this.logger)||void 0===o||o.info(Un,u,r,f),l.push([Un,u,r,f])):n?(null===(a=this.logger)||void 0===a||a.info(Vn,r,n,f),l.push([Vn,r,n,f])):(null===(s=this.logger)||void 0===s||s.info(Kn,r,f),l.push([Kn,r,f]))),{result:d,reasons:l}}},{key:"removeForcedVariation",value:function(e,t,r){var n;if(!e)throw new Te("26");if(!this.forcedVariationMap.hasOwnProperty(e))throw new Te("65",e);delete this.forcedVariationMap[e][t],null===(n=this.logger)||void 0===n||n.debug("41",r,e)}},{key:"setInForcedVariationMap",value:function(e,t,r){var n;this.forcedVariationMap.hasOwnProperty(e)||(this.forcedVariationMap[e]={}),this.forcedVariationMap[e][t]=r,null===(n=this.logger)||void 0===n||n.debug("34",r,t,e)}},{key:"getForcedVariation",value:function(e,t,r){var n,i,o,a,s,u,l,c=[],d=this.forcedVariationMap[r];if(!d)return null===(n=this.logger)||void 0===n||n.debug("32",r),{result:null,reasons:c};try{var f=Ot(e,t);if(!f.hasOwnProperty("id"))return null===(i=this.logger)||void 0===i||i.error(Dn,t),c.push([Dn,t]),{result:null,reasons:c};l=f.id}catch(h){return null===(o=this.logger)||void 0===o||o.error(h),c.push(h.message),{result:null,reasons:c}}var v=d[l];if(!v)return null===(a=this.logger)||void 0===a||a.debug("33",t,r),{result:null,reasons:c};var h,p,g=(p=v,(h=e).variationIdMap.hasOwnProperty(p)?h.variationIdMap[p].key:null);return g?(null===(s=this.logger)||void 0===s||s.debug(Tn,g,t,r),c.push([Tn,g,t,r])):null===(u=this.logger)||void 0===u||u.debug("33",t,r),{result:g,reasons:c}}},{key:"setForcedVariation",value:function(e,t,r,n){var i,o,a,s,u,l,c;if(null!=n&&!T(n))return null===(i=this.logger)||void 0===i||i.error("28"),!1;try{var d=Ot(e,t);if(!d.hasOwnProperty("id"))return null===(o=this.logger)||void 0===o||o.error(Dn,t),!1;c=d.id}catch(e){return null===(a=this.logger)||void 0===a||a.error(e),!1}if(null==n)try{return this.removeForcedVariation(r,c,t),!0}catch(e){return null===(s=this.logger)||void 0===s||s.error(e),!1}var f=function(e,t,r){var n=e.experimentKeyMap[t];return n.variationKeyMap.hasOwnProperty(r)?n.variationKeyMap[r].id:null}(e,t,n);if(!f)return null===(u=this.logger)||void 0===u||u.error("37",n,t),!1;try{return this.setInForcedVariationMap(r,c,f),!0}catch(e){return null===(l=this.logger)||void 0===l||l.error(e),!1}}},{key:"getVariationFromExperimentRule",value:function(e,t,r,n,i,o,a){var s,u,l=[],c=this.findValidatedForcedDecision(t,i,r,n.key);(s=l).push.apply(s,_to_consumable_array(c.reasons));var d=c.result;return d?hn.of(e,{result:{variationKey:d.key},reasons:l}):this.resolveVariation(e,t,n,i,o,a).then(function(t){return(u=l).push.apply(u,_to_consumable_array(t.reasons)),hn.of(e,{error:t.error,result:t.result,reasons:l})})}},{key:"getVariationFromDeliveryRule",value:function(e,t,r,n,i){var o,a,s,u,l,c,d,f=[],v=!1,h=r[n],p=this.findValidatedForcedDecision(e,i,t,h.key);(o=f).push.apply(o,_to_consumable_array(p.reasons));var g=p.result;if(g)return{result:g,reasons:f,skipToEveryoneElse:v};var y,m,_,b,k,E=i.getUserId(),I=i.getAttributes(),S=this.getBucketingId(E,I),w=n===r.length-1,O=w?"Everyone Else":n+1,x=null,P=this.checkIfUserIsInAudience(e,h,"rule",i,O);return(a=f).push.apply(a,_to_consumable_array(P.reasons)),P.result?(null===(u=this.logger)||void 0===u||u.debug(Fn,E,O),f.push([Fn,E,O]),m=this.buildBucketerParams(e,h,S,E),_=Wr(m),(s=f).push.apply(s,_to_consumable_array(_.reasons)),(y=_.result)&&(k=y,x=(b=e).variationIdMap.hasOwnProperty(k)?b.variationIdMap[k]:null),x?(null===(l=this.logger)||void 0===l||l.debug(Rn,E,O),f.push([Rn,E,O])):w||(null===(c=this.logger)||void 0===c||c.debug(Mn,E,O),f.push([Mn,E,O]),v=!0)):(null===(d=this.logger)||void 0===d||d.debug(Pn,E,O),f.push([Pn,E,O])),{result:x,reasons:f,skipToEveryoneElse:v}}}]),e}(),Wn=function(e){function t(e){var r,n,i,o,a,s,u,l,c,d,f,v;_class_call_check(this,t),(r=_call_super(this,t)).cleanupTasks=new Map,r.nextCleanupTaskId=0;var h=e.clientEngine;h||(null===(n=e.logger)||void 0===n||n.info("13",h),h=Ie),r.clientEngine=h,r.clientVersion=e.clientVersion||Se,r.errorNotifier=e.errorNotifier,r.logger=e.logger,r.projectConfigManager=e.projectConfigManager,r.errorReporter=new Nr(r.logger,r.errorNotifier),r.odpManager=e.odpManager,r.vuidManager=e.vuidManager,r.eventProcessor=e.eventProcessor,e.disposable&&(r.projectConfigManager.makeDisposable(),null===(i=r.eventProcessor)||void 0===i||i.makeDisposable(),null===(o=r.odpManager)||void 0===o||o.makeDisposable()),r.logger&&(r.projectConfigManager.setLogger(r.logger.child()),null===(a=r.eventProcessor)||void 0===a||a.setLogger(r.logger.child()),null===(s=r.odpManager)||void 0===s||s.setLogger(r.logger.child()));var p=null!==(u=e.defaultDecideOptions)&&void 0!==u?u:[];Array.isArray(p)||(null===(l=r.logger)||void 0===l||l.debug("15"),p=[]);var g,y,m,_={};if(p.forEach(function(e){var t;Dt[e]?_[e]=!0:null===(t=r.logger)||void 0===t||t.warn("63",e)}),r.defaultDecideOptions=_,r.projectConfigManager=e.projectConfigManager,r.projectConfigManager.onUpdate(function(e){var t;null===(t=r.logger)||void 0===t||t.info("31",e.revision,e.projectId),r.notificationCenter.sendNotifications(ar.OPTIMIZELY_CONFIG_UPDATE,void 0),r.updateOdpSettings()}),r.eventProcessor=e.eventProcessor,null===(c=r.eventProcessor)||void 0===c||c.onDispatch(function(e){r.notificationCenter.sendNotifications(ar.LOG_EVENT,e)}),r.odpManager=e.odpManager,e.userProfileService)try{(function(e){if("object"==(void 0===e?"undefined":_type_of(e))&&null!==e){if("function"!=typeof e.lookup)throw new Te(ze,"Missing function 'lookup'");if("function"!=typeof e.save)throw new Te(ze,"Missing function 'save'");return!0}throw new Te(ze,"Not an object")})(e.userProfileService)&&(g=e.userProfileService,null===(d=r.logger)||void 0===d||d.info("39"))}catch(m){null===(f=r.logger)||void 0===f||f.warn(m)}return r.decisionService=(y={userProfileService:g,userProfileServiceAsync:e.userProfileServiceAsync||void 0,cmabService:e.cmabService,logger:null===(v=r.logger)||void 0===v?void 0:v.child(),UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators},new Gn(y)),r.notificationCenter=(m={logger:r.logger,errorNotifier:r.errorNotifier},new Ur(m)),r.start(),r}return _inherits(t,e),_create_class(t,[{key:"start",value:function(){var e,r,n=this;this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=pt.Starting,this.projectConfigManager.start(),null===(e=this.eventProcessor)||void 0===e||e.start(),null===(r=this.odpManager)||void 0===r||r.start(),Promise.all([this.projectConfigManager.onRunning(),this.eventProcessor?this.eventProcessor.onRunning():Promise.resolve(),this.odpManager?this.odpManager.onRunning():Promise.resolve(),this.vuidManager?this.vuidManager.initialize():Promise.resolve()]).then(function(){var e,t;n.state=pt.Running,n.startPromise.resolve();var r=null===(e=n.vuidManager)||void 0===e?void 0:e.getVuid();r&&(null===(t=n.odpManager)||void 0===t||t.setVuid(r))}).catch(function(e){n.state=pt.Failed,n.errorReporter.report(e),n.startPromise.reject(e)}))}},{key:"getProjectConfig",value:function(){return this.projectConfigManager.getConfig()||null}},{key:"activate",value:function(e,t,r){var n,i,o;try{var a=this.getProjectConfig();if(!a)return this.errorReporter.report(He,"activate"),null;if(!this.validateInputs({experiment_key:e,user_id:t},r))return this.notActivatingExperiment(e,t);try{var s=this.getVariation(e,t,r);if(null===s)return this.notActivatingExperiment(e,t);if(wt(o=a,e)!==_t)return null===(n=this.logger)||void 0===n||n.debug("27",e),s;var u=Ot(a,e),l={experiment:u,variation:u.variationKeyMap[s],decisionSource:we.EXPERIMENT};return this.sendImpressionEvent(l,"",t,!0,r),s}catch(r){return null===(i=this.logger)||void 0===i||i.info("19",t,e),this.errorReporter.report(r),null}}catch(o){return this.errorReporter.report(o),null}}},{key:"sendImpressionEvent",value:function(e,t,r,n,i){var o;if(this.eventProcessor){var a=this.getProjectConfig();if(a){var s=function(e){var t,r,n=e.configObj,i=e.decisionObj,o=e.userId,a=e.flagKey,s=e.enabled,u=e.userAttributes,l=e.clientEngine,c=e.clientVersion,d=i.decisionSource,f=E(i),v=null!==(r=null===(t=i.experiment)||void 0===t?void 0:t.id)&&void 0!==r?r:null,h=I(i),p=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.id)&&void 0!==r?r:null}(i),g=i.cmabUuid,y=null!==v?d===we.HOLDOUT?"":function(e,t){var r=e.experimentIdMap[t];if(!r)throw new Te("21",t);return r.layerId}(n,v):null;return Object.assign(Object.assign({},cr({configObj:n,userId:o,userAttributes:u,clientEngine:l,clientVersion:c,type:"impression"})),{layer:{id:y},experiment:{id:v,key:f},variation:{id:p,key:h},ruleKey:f,flagKey:a,ruleType:d,enabled:s,cmabUuid:g})}({decisionObj:e,flagKey:t,enabled:n,userId:r,userAttributes:i,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:a});this.eventProcessor.process(s);var u,l=k([s]),c={experiment:null,holdout:null,userId:r,attributes:i,variation:e.variation,logEvent:l};e.experiment&&(void 0!==(u=e.experiment).status&&Array.isArray(u.includedFlags)&&Array.isArray(u.excludedFlags)?c.holdout=e.experiment:c.experiment=e.experiment),this.notificationCenter.sendNotifications(ar.ACTIVATE,c)}}else null===(o=this.logger)||void 0===o||o.error("33")}},{key:"track",value:function(e,t,r,n){var i,o,a,s,u,l,c;try{if(!this.eventProcessor)return void(null===(i=this.logger)||void 0===i||i.error("33"));var d=this.getProjectConfig();if(!d)return void this.errorReporter.report(He,"track");if(!this.validateInputs({user_id:t,event_key:e},r,n))return;if(c=e,!(l=d).eventKeyMap.hasOwnProperty(c))return null===(o=this.logger)||void 0===o||o.warn("7",e),void(null===(a=this.logger)||void 0===a||a.warn("31",t));var f=function(e,t){var r,n,i=e.configObj,o=e.userId,a=e.userAttributes,s=e.clientEngine,u=e.clientVersion,l=e.eventKey,c=e.eventTags,d=(r=l,(n=i.eventKeyMap[r])?n.id:null),f=c?function(e,t){var r=e.revenue;if(null==r)return null;var n="string"==typeof r?parseInt(r):Math.trunc(r);return isFinite(n)?(null==t||t.info("21",n),n):(null==t||t.info("6",r),null)}(c,t):null,v=c?function(e,t){var r=e.value;if(null==r)return null;var n="string"==typeof r?parseFloat(r):r;return isFinite(n)?(null==t||t.info("20",n),n):(null==t||t.info("7",r),null)}(c,t):null;return Object.assign(Object.assign({},cr({configObj:i,userId:o,userAttributes:a,clientEngine:s,clientVersion:u,type:"conversion"})),{event:{id:d,key:l},revenue:f,value:v,tags:c})}({eventKey:e,eventTags:n=this.filterEmptyValues(n),userId:t,userAttributes:r,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:d},this.logger);null===(s=this.logger)||void 0===s||s.info("29",e,t),this.eventProcessor.process(f);var v=k([f]);this.notificationCenter.sendNotifications(ar.TRACK,{eventKey:e,userId:t,attributes:r,eventTags:n,logEvent:v})}catch(l){this.errorReporter.report(l),null===(u=this.logger)||void 0===u||u.error("31",t)}}},{key:"getVariation",value:function(e,t,r){var n,i,o;try{var a=this.getProjectConfig();if(!a)return this.errorReporter.report(He,"getVariation"),null;try{if(!this.validateInputs({experiment_key:e,user_id:t},r))return null;var s=a.experimentKeyMap[e];if(!s||s.isRollout)return null===(n=this.logger)||void 0===n||n.debug("16",e),null;var u=this.decisionService.getVariation(a,s,this.createInternalUserContext(t,r)).result,l=(i=a,o=s.id,i.experimentFeatureMap.hasOwnProperty(o)?or.FEATURE_TEST:or.AB_TEST);return this.notificationCenter.sendNotifications(ar.DECISION,{type:l,userId:t,attributes:r||{},decisionInfo:{experimentKey:e,variationKey:u}}),u}catch(e){return this.errorReporter.report(e),null}}catch(e){return this.errorReporter.report(e),null}}},{key:"setForcedVariation",value:function(e,t,r){if(!this.validateInputs({experiment_key:e,user_id:t}))return!1;var n=this.getProjectConfig();if(!n)return!1;try{return this.decisionService.setForcedVariation(n,e,t,r)}catch(e){return this.errorReporter.report(e),!1}}},{key:"getForcedVariation",value:function(e,t){if(!this.validateInputs({experiment_key:e,user_id:t}))return null;var r=this.getProjectConfig();if(!r)return null;try{return this.decisionService.getForcedVariation(r,e,t).result}catch(e){return this.errorReporter.report(e),null}}},{key:"validateInputs",value:function(e,t,r){try{if(e.hasOwnProperty("user_id")){var n=e.user_id;if("string"!=typeof n||null===n||"undefined"===n)throw new Te("24","user_id");delete e.user_id}return Object.keys(e).forEach(function(t){if(!T(e[t]))throw new Te("24",t)}),t&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new Te("13");Object.keys(e).forEach(function(t){if(void 0===e[t])throw new Te("56",t)})}(t),r&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new Te("20")}(r),!0}catch(e){return this.errorReporter.report(e),!1}}},{key:"notActivatingExperiment",value:function(e,t){var r;return null===(r=this.logger)||void 0===r||r.info("19",t,e),null}},{key:"filterEmptyValues",value:function(e){for(var t in e){var r=t;!e.hasOwnProperty(r)||null!==e[r]&&void 0!==e[r]||delete e[r]}return e}},{key:"isFeatureEnabled",value:function(e,t,r){var n,i;try{var o=this.getProjectConfig();if(!o)return this.errorReporter.report(He,"isFeatureEnabled"),!1;if(!this.validateInputs({feature_key:e,user_id:t},r))return!1;var a=Pt(o,e,this.logger);if(!a)return!1;var s={},u=this.createInternalUserContext(t,r),l=this.decisionService.getVariationForFeature(o,a,u).result,c=l.decisionSource,d=E(l),f=I(l),v=S(l);c!==we.FEATURE_TEST&&c!==we.HOLDOUT||(s={experimentKey:d,variationKey:f}),(c===we.FEATURE_TEST||c===we.HOLDOUT||c===we.ROLLOUT&&Mt(o))&&this.sendImpressionEvent(l,a.key,t,v,r),!0===v?null===(n=this.logger)||void 0===n||n.info("8",e,t):(null===(i=this.logger)||void 0===i||i.info("9",e,t),v=!1);var h={featureKey:e,featureEnabled:v,source:l.decisionSource,sourceInfo:s};return this.notificationCenter.sendNotifications(ar.DECISION,{type:or.FEATURE,userId:t,attributes:r||{},decisionInfo:h}),v}catch(e){return this.errorReporter.report(e),!1}}},{key:"getEnabledFeatures",value:function(e,t){var r=this;try{var n=[],i=this.getProjectConfig();return i?this.validateInputs({user_id:e})?(v(i.featureKeyMap).forEach(function(i){r.isFeatureEnabled(i.key,e,t)&&n.push(i.key)}),n):n:(this.errorReporter.report(He,"getEnabledFeatures"),n)}catch(e){return this.errorReporter.report(e),[]}}},{key:"getFeatureVariable",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,null,r,n):(this.errorReporter.report(He,"getFeatureVariable"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableForType",value:function(e,t,r,n,i){var o;if(!this.validateInputs({feature_key:e,variable_key:t,user_id:n},i))return null;var a=this.getProjectConfig();if(!a)return null;var s=Pt(a,e,this.logger);if(!s)return null;var u,l,c,d,f,v=(u=a,l=e,c=t,d=this.logger,(f=u.featureKeyMap[l])?f.variableKeyMap[c]||(null==d||d.error("68",c,l),null):(null==d||d.error(Be,l),null));if(!v)return null;if(r&&v.type!==r)return null===(o=this.logger)||void 0===o||o.warn("69",r,v.type),null;var h=this.createInternalUserContext(n,i),p=this.decisionService.getVariationForFeature(a,s,h).result,g=S(p),y=this.getFeatureVariableValueFromVariation(e,g,p.variation,v,n),m={};return p.decisionSource===we.FEATURE_TEST&&null!==p.experiment&&null!==p.variation&&(m={experimentKey:p.experiment.key,variationKey:p.variation.key}),this.notificationCenter.sendNotifications(ar.DECISION,{type:or.FEATURE_VARIABLE,userId:n,attributes:i||{},decisionInfo:{featureKey:e,featureEnabled:g,source:p.decisionSource,variableKey:t,variableValue:y,variableType:v.type,sourceInfo:m}}),y}},{key:"getFeatureVariableValueFromVariation",value:function(e,t,r,n,i){var o,a,s,u,l=this.getProjectConfig();if(!l)return null;var c=n.defaultValue;if(null!==r){var d=function(e,t,r,n){if(!t||!r)return null;if(!e.variationVariableUsageMap.hasOwnProperty(r.id))return null==n||n.error("70",r.id),null;var i=e.variationVariableUsageMap[r.id][t.id];return i?i.value:null}(l,n,r,this.logger);null!==d?t?(c=d,null===(o=this.logger)||void 0===o||o.info("36",c,n.key,e)):null===(a=this.logger)||void 0===a||a.info("10",e,i,c):null===(s=this.logger)||void 0===s||s.info("40",n.key,r.key)}else null===(u=this.logger)||void 0===u||u.info("35",i,n.key,e);return function(e,t,r){var n;switch(t){case xe:"true"!==e&&"false"!==e?(null==r||r.error(Je,e,t),n=null):n="true"===e;break;case Me:n=parseInt(e,10),isNaN(n)&&(null==r||r.error(Je,e,t),n=null);break;case Pe:n=parseFloat(e),isNaN(n)&&(null==r||r.error(Je,e,t),n=null);break;case Ae:try{n=JSON.parse(e)}catch(i){null==r||r.error(Je,e,t),n=null}break;default:n=e}return n}(c,n.type,this.logger)}},{key:"getFeatureVariableBoolean",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,xe,r,n):(this.errorReporter.report(He,"getFeatureVariableBoolean"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableDouble",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Pe,r,n):(this.errorReporter.report(He,"getFeatureVariableDouble"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableInteger",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Me,r,n):(this.errorReporter.report(He,"getFeatureVariableInteger"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableString",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Re,r,n):(this.errorReporter.report(He,"getFeatureVariableString"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableJSON",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Ae,r,n):(this.errorReporter.report(He,"getFeatureVariableJSON"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getAllFeatureVariables",value:function(e,t,r){var n=this;try{var i=this.getProjectConfig();if(!i)return this.errorReporter.report(He,"getAllFeatureVariables"),null;if(!this.validateInputs({feature_key:e,user_id:t},r))return null;var o=Pt(i,e,this.logger);if(!o)return null;var a=this.createInternalUserContext(t,r),s=this.decisionService.getVariationForFeature(i,o,a).result,u=S(s),l={};o.variables.forEach(function(r){l[r.key]=n.getFeatureVariableValueFromVariation(e,u,s.variation,r,t)});var c={};return s.decisionSource===we.FEATURE_TEST&&null!==s.experiment&&null!==s.variation&&(c={experimentKey:s.experiment.key,variationKey:s.variation.key}),this.notificationCenter.sendNotifications(ar.DECISION,{type:or.ALL_FEATURE_VARIABLES,userId:t,attributes:r||{},decisionInfo:{featureKey:e,featureEnabled:u,source:s.decisionSource,variableValues:l,sourceInfo:c}}),l}catch(e){return this.errorReporter.report(e),null}}},{key:"getOptimizelyConfig",value:function(){try{return this.getProjectConfig()&&this.projectConfigManager.getOptimizelyConfig()||null}catch(e){return this.errorReporter.report(e),null}}},{key:"flushImmediately",value:function(){var e=[];return this.isRunning()?(this.eventProcessor&&e.push(this.eventProcessor.flushImmediately()),this.odpManager&&e.push(this.odpManager.flushImmediately()),Promise.all(e)):Promise.resolve()}},{key:"close",value:function(){return this.stop(),this.onTerminated()}},{key:"stop",value:function(){var e,t,r=this;this.isDone()||(this.isRunning()||this.startPromise.reject(new Error(g(Ct,"Client"))),this.state=pt.Stopping,this.projectConfigManager.stop(),null===(e=this.eventProcessor)||void 0===e||e.stop(),null===(t=this.odpManager)||void 0===t||t.stop(),this.notificationCenter.clearAllNotificationListeners(),this.cleanupTasks.forEach(function(e){return e()}),Promise.all([this.projectConfigManager.onTerminated(),this.eventProcessor?this.eventProcessor.onTerminated():Promise.resolve(),this.odpManager?this.odpManager.onTerminated():Promise.resolve()]).then(function(){r.state=pt.Terminated,r.stopPromise.resolve()}).catch(function(e){r.errorReporter.report(e),r.state=pt.Failed,r.stopPromise.reject(e)}))}},{key:"onReady",value:function(e){var t,r=this;"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&void 0!==e.timeout&&(t=e.timeout),c(t)||(t=3e4);var n=m(),i=this.nextCleanupTaskId++,o=setTimeout(function(){r.cleanupTasks.delete(i),n.reject(new Error(g("onReady timeout expired after %s ms",t)))},t);return this.cleanupTasks.set(i,function(){clearTimeout(o),n.reject(new Error("Instance closed"))}),Promise.race([this.onRunning().then(function(){clearTimeout(o),r.cleanupTasks.delete(i)}),n])}},{key:"createUserContext",value:function(e,t){var r,n=this,i=null!=e?e:null===(r=this.vuidManager)||void 0===r?void 0:r.getVuid();if(void 0===i||!this.validateInputs({user_id:i}))throw new Error("Invalid identifier");if(!this.validateInputs({},t))throw new Error("Invalid attributes");var o=new Kr({optimizely:this,userId:i,attributes:t});return this.onRunning().then(function(){n.odpManager&&n.isOdpIntegrated()&&n.odpManager.identifyUser(i)}).catch(function(){}),o}},{key:"createInternalUserContext",value:function(e,t){return new Kr({optimizely:this,userId:e,attributes:t})}},{key:"decide",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return this.getProjectConfig()?this.decideForKeys(e,[t],r,!0)[t]:(this.errorReporter.report(He,"decide"),w(t,e,[Ce]))}},{key:"decideAsync",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return _(this,void 0,void 0,function(){return _ts_generator(this,function(n){switch(n.label){case 0:return this.getProjectConfig()?[4,this.decideForKeysAsync(e,[t],r,!0)]:[2,(this.errorReporter.report(He,"decide"),w(t,e,[Ce]))];case 1:return[2,n.sent()[t]]}})})}},{key:"getAllDecideOptions",value:function(e){var t,r=this,n=Object.assign({},this.defaultDecideOptions);return Array.isArray(e)?e.forEach(function(e){var t;Dt[e]?n[e]=!0:null===(t=r.logger)||void 0===t||t.warn("63",e)}):null===(t=this.logger)||void 0===t||t.debug("14"),n}},{key:"generateDecision",value:function(e,t,r,n,i,o){var a,s,u,l,c,d,f,v,h,p,y=this,m=e.getUserId(),_=e.getAttributes(),b=o.featureKeyMap[t],k=r.decisionSource,E=null!==(s=null===(a=r.experiment)||void 0===a?void 0:a.key)&&void 0!==s?s:null,I=null!==(l=null===(u=r.experiment)||void 0===u?void 0:u.id)&&void 0!==l?l:null,w=null!==(d=null===(c=r.variation)||void 0===c?void 0:c.key)&&void 0!==d?d:null,O=null!==(v=null===(f=r.variation)||void 0===f?void 0:f.id)&&void 0!==v?v:null,x=S(r),P={},M=!1;x?null===(h=this.logger)||void 0===h||h.info("8",t,m):null===(p=this.logger)||void 0===p||p.info("9",t,m),i[Dt.EXCLUDE_VARIABLES]||b.variables.forEach(function(e){P[e.key]=y.getFeatureVariableValueFromVariation(t,x,r.variation,e,m)}),!i[Dt.DISABLE_DECISION_EVENT]&&(k===we.FEATURE_TEST||k===we.HOLDOUT||k===we.ROLLOUT&&Mt(o))&&(this.sendImpressionEvent(r,t,m,x,_),M=!0);var R=[];i[Dt.INCLUDE_REASONS]&&(R=n.map(function(e){return g.apply(void 0,[e[0]].concat(_to_consumable_array(e.slice(1))))}));var A={flagKey:t,enabled:x,variationKey:w,ruleKey:E,variables:P,reasons:R,decisionEventDispatched:M,experimentId:I,variationId:O};return this.notificationCenter.sendNotifications(ar.DECISION,{type:or.FLAG,userId:m,attributes:_,decisionInfo:A}),{variationKey:w,enabled:x,variables:P,ruleKey:E,flagKey:t,userContext:e,reasons:R}}},{key:"decideForKeys",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return this.getDecisionForKeys("sync",e,t,r,n).get()}},{key:"decideForKeysAsync",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return this.getDecisionForKeys("async",e,t,r,n).get()}},{key:"getDecisionForKeys",value:function(e,t,r){var n,i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0,s={},u={},l={},c=this.getProjectConfig();if(!c)return this.errorReporter.report(He,"decideForKeys"),hn.of(e,s);if(0===r.length)return hn.of(e,s);var d=this.getAllDecideOptions(o);a&&delete d[Dt.ENABLED_FLAGS_ONLY];var f=[],v=!0,h=!1,p=void 0;try{for(var y,m=r[Symbol.iterator]();!(v=(y=m.next()).done);v=!0){var _=y.value,b=c.featureKeyMap[_];b?f.push(b):(null===(n=this.logger)||void 0===n||n.error(Be,_),s[_]=w(_,t,[g('No flag was found for key "%s".',_)]))}}catch(e){h=!0,p=e}finally{try{v||null==m.return||m.return()}finally{if(h)throw p}}return this.decisionService.resolveVariationsForFeatureList(e,c,f,t,d).then(function(r){for(var n=0;n<f.length;n++){var o=f[n].key,a=r[n];a.error?s[o]=w(o,t,a.reasons.map(function(e){return g.apply(void 0,[e[0]].concat(_to_consumable_array(e.slice(1))))})):(u[o]=a.result,l[o]=a.reasons)}var v=!0,h=!1,p=void 0;try{for(var y,m=f[Symbol.iterator]();!(v=(y=m.next()).done);v=!0){var _=y.value.key;if(!s[_]){var b=i.generateDecision(t,_,u[_],l[_],d,c);d[Dt.ENABLED_FLAGS_ONLY]&&!b.enabled||(s[_]=b)}}}catch(e){h=!0,p=e}finally{try{v||null==m.return||m.return()}finally{if(h)throw p}}return hn.of(e,s)})}},{key:"decideAll",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.getProjectConfig();if(!r)return this.errorReporter.report(He,"decideAll"),{};var n=Object.keys(r.featureKeyMap);return this.decideForKeys(e,n,t)}},{key:"decideAllAsync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _(this,void 0,void 0,function(){var r,n,i;return _ts_generator(this,function(o){return r={},(n=this.getProjectConfig())?(i=Object.keys(n.featureKeyMap),[2,this.decideForKeysAsync(e,i,t)]):[2,(this.errorReporter.report(He,"decideAll"),r)]})})}},{key:"updateOdpSettings",value:function(){var e=this.getProjectConfig();e&&this.odpManager&&this.odpManager.updateConfig(e.odpIntegrationConfig)}},{key:"sendOdpEvent",value:function(e,t,r,n){var i,o;if(this.odpManager)try{var a=new wr(t||"",e,r,n);this.odpManager.sendEvent(a)}catch(e){null===(o=this.logger)||void 0===o||o.error("40",e)}else null===(i=this.logger)||void 0===i||i.error("42","sendOdpEvent")}},{key:"isOdpIntegrated",value:function(){var e,t,r;return null!==(r=null===(t=null===(e=this.getProjectConfig())||void 0===e?void 0:e.odpIntegrationConfig)||void 0===t?void 0:t.integrated)&&void 0!==r&&r}},{key:"fetchQualifiedSegments",value:function(e,t){var r;return _(this,void 0,void 0,function(){var n;return _ts_generator(this,function(i){switch(i.label){case 0:return this.odpManager?[4,this.odpManager.fetchQualifiedSegments(e,t)]:[3,2];case 1:return n=i.sent(),[3,3];case 2:null===(r=this.logger)||void 0===r||r.error("42","fetchQualifiedSegments"),n=null,i.label=3;case 3:return[2,n]}})})}},{key:"getVuid",value:function(){var e;if(this.vuidManager)return this.vuidManager.getVuid();null===(e=this.logger)||void 0===e||e.error("54")}}]),t}(Tt),Qn=function(){function e(t){_class_call_check(this,e),this.predictionEndpointTemplate="https://prediction.cmab.optimizely.com/predict/%s",this.requestHandler=t.requestHandler,this.retryConfig=t.retryConfig,t.predictionEndpointTemplate&&(this.predictionEndpointTemplate=t.predictionEndpointTemplate)}return _create_class(e,[{key:"fetchDecision",value:function(e,t,r,n){var i,o;return _(this,void 0,void 0,function(){var a,s,u,l;return _ts_generator(this,function(c){switch(c.label){case 0:return a=this,s=g(this.predictionEndpointTemplate,e),u=Object.keys(r).map(function(e){return{id:e,value:r[e],type:"custom_attribute"}}),l={instances:[{visitorId:t,experimentId:e,attributes:u,cmabUUID:n}]},[4,this.retryConfig?nr(function(){return a.doFetch(s,JSON.stringify(l))},null===(o=(i=this.retryConfig).backoffProvider)||void 0===o?void 0:o.call(i),this.retryConfig.maxRetries).result:this.doFetch(s,JSON.stringify(l))];case 1:return[2,c.sent()]}})})}},{key:"doFetch",value:function(e,t){return _(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,this.requestHandler.makeRequest(e,{"Content-Type":"application/json"},"POST",t).responsePromise];case 1:return r=i.sent(),Ut(r.statusCode)?(n=JSON.parse(r.body),[2,this.validateResponse(n)?String(n.predictions[0].variation_id):Promise.reject(new Te("Invalid CMAB fetch response"))]):[2,Promise.reject(new Te("CMAB decision fetch failed with status: %s",r.statusCode))]}})})}},{key:"validateResponse",value:function(e){return e.predictions&&e.predictions.length>0&&e.predictions[0].variation_id}}]),e}(),$n=function(){function e(t){var r;_class_call_check(this,e),this.serializers=Array.from({length:1e3},function(){return new vr}),this.cmabCache=t.cmabCache,this.cmabClient=t.cmabClient,this.logger=t.logger,null===(r=this.logger)||void 0===r||r.setName("CmabService")}return _create_class(e,[{key:"getSerializerIndex",value:function(e,t){var r=this.getCacheKey(e,t),n=pe.default.v3(r);return Math.abs(n)%1e3}},{key:"getDecision",value:function(e,t,r,n){return _(this,void 0,void 0,function(){var i,o;return _ts_generator(this,function(a){return i=this,o=this.getSerializerIndex(t.getUserId(),r),[2,this.serializers[o].run(function(){return i.getDecisionInternal(e,t,r,n)})]})})}},{key:"getDecisionInternal",value:function(e,t,r,n){var i,o,a,s,u,l;return _(this,void 0,void 0,function(){var c,d,f,v,h,p,g;return _ts_generator(this,function(y){switch(y.label){case 0:return c=t.getUserId(),d=this.filterAttributes(e,t,r),n[Dt.IGNORE_CMAB_CACHE]?[2,(null===(i=this.logger)||void 0===i||i.debug("11",c,r),this.fetchDecision(r,c,d))]:(n[Dt.RESET_CMAB_CACHE]&&(null===(o=this.logger)||void 0===o||o.debug("22",c,r),this.cmabCache.reset()),f=this.getCacheKey(c,r),n[Dt.INVALIDATE_USER_CMAB_CACHE]&&(null===(a=this.logger)||void 0===a||a.debug("12",c,r),this.cmabCache.remove(f)),[4,this.cmabCache.lookup(f)]);case 1:if(v=y.sent(),h=JSON.stringify(d,Object.keys(d).sort()),p=String(pe.default.v3(h)),v){if(v.attributesHash===p)return[2,(null===(s=this.logger)||void 0===s||s.debug("3",c,r),{variationId:v.variationId,cmabUuid:v.cmabUuid})];null===(u=this.logger)||void 0===u||u.debug("2",c,r),this.cmabCache.remove(f)}else null===(l=this.logger)||void 0===l||l.debug("4",c,r);return[4,this.fetchDecision(r,c,d)];case 2:return g=y.sent(),[2,(this.cmabCache.save(f,{attributesHash:p,variationId:g.variationId,cmabUuid:g.cmabUuid}),g)]}})})}},{key:"fetchDecision",value:function(e,t,r){return _(this,void 0,void 0,function(){var n,i;return _ts_generator(this,function(o){switch(o.label){case 0:return n=ve(),i={},[4,this.cmabClient.fetchDecision(e,t,r,n)];case 1:return[2,(i.variationId=o.sent(),i.cmabUuid=n,i)]}})})}},{key:"filterAttributes",value:function(e,t,r){var n={},i=t.getAttributes(),o=e.experimentIdMap[r];return o&&o.cmab?(o.cmab.attributeIds.forEach(function(t){var r=e.attributeIdMap[t];i.hasOwnProperty(r.key)&&(n[r.key]=i[r.key])}),n):n}},{key:"getCacheKey",value:function(e,t){return"".concat(e.length,"-").concat(e,"-").concat(t)}}]),e}(),Yn=function(e){var t,r,n,i,o,a,s=e.clientEngine,u=e.clientVersion,l=e.jsonSchemaValidator,c=e.userProfileService,d=e.userProfileServiceAsync,f=e.defaultDecideOptions,v=e.disposable,h=e.requestHandler,p=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error(zt);if(!e[Ht])throw new Error(zt);return e[Ht]}(e.projectConfigManager),g=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[gr]}(e.eventProcessor),y=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[Dr]}(e.odpManager),m=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[Fr]}(e.vuidManager),_=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[dt]}(e.errorNotifier),b=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[ut]}(e.logger),k=new Qn({requestHandler:h,retryConfig:{maxRetries:1,backoffProvider:function(){return new Lt(100)}},predictionEndpointTemplate:null===(t=e.cmab)||void 0===t?void 0:t.predictionEndpointTemplate}),E=(null===(r=e.cmab)||void 0===r?void 0:r.cache)?(n=e.cmab.cache,i=function(e){return JSON.parse(e)},o=function(e,t){if(void 0!==e)return t(e)},a={lookup:function(e){return"sync"===n.operation?o(n.lookup(e),i):n.lookup(e).then(function(e){return o(e,i)})},save:function(e,t){return n.save(e,function(e){return JSON.stringify(e)}(t))}},Object.setPrototypeOf(a,n),a):function(){var t,r,n=(null===(t=e.cmab)||void 0===t?void 0:t.cacheSize)||1e4,i=(null===(r=e.cmab)||void 0===r?void 0:r.cacheTtl)||18e5;return new _r(n,i)}(),I={cmabService:new $n({cmabClient:k,cmabCache:E,logger:null==b?void 0:b.child()}),clientEngine:s||Ee,clientVersion:u||Se,jsonSchemaValidator:l,userProfileService:c,userProfileServiceAsync:d,defaultDecideOptions:f,disposable:v,logger:b,errorNotifier:_,projectConfigManager:p,eventProcessor:g,odpManager:y,vuidManager:m,UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators};return new Wn(I)},Xn=function(){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_class_call_check(this,e),this.logger=r.logger,this.timeout=null!==(t=r.timeout)&&void 0!==t?t:6e4}return _create_class(e,[{key:"makeRequest",value:function(e,t,r,n){var i=me.default.parse(e);if("https:"!==i.protocol&&"http:"!==i.protocol)return{responsePromise:Promise.reject(new Te("64",i.protocol)),abort:function(){}};var o=("https:"===i.protocol?ye.default:ge.default).request(Object.assign(Object.assign({},this.getRequestOptionsFromUrl(i)),{method:r,headers:Object.assign(Object.assign({},t),{"accept-encoding":"gzip,deflate","content-length":String((null==n?void 0:n.length)||0)}),timeout:this.timeout})),a=this.getAbortableRequestFromRequest(o);return n&&o.write(n),o.end(),a}},{key:"getRequestOptionsFromUrl",value:function(e){return{hostname:e.hostname,path:e.path,port:e.port,protocol:e.protocol}}},{key:"createHeadersFromNodeIncomingMessage",value:function(e){var t={};return Object.keys(e.headers).forEach(function(r){var n=e.headers[r];"string"==typeof n?t[r]=n:void 0===n||n.length>0&&(t[r]=n[0])}),t}},{key:"getAbortableRequestFromRequest",value:function(e){var t=this,r=!1;return{abort:function(){r=!0,e.destroy()},responsePromise:new Promise(function(n,i){e.on("timeout",function(){r=!0,e.destroy(),i(new Te("48"))}),e.on("error",function(e){_instanceof(e,Error)?i(e):i("string"==typeof e?new Error(e):new Te("47"))}),e.once("response",function(e){if(!r){var o=(0,_e.default)(e);o.setEncoding("utf8");var a="";o.on("data",function(e){r||(a+=e)}),o.on("end",function(){r||(e.statusCode?n({statusCode:e.statusCode,body:a,headers:t.createHeadersFromNodeIncomingMessage(e)}):i(new Te("36")))})}})})}}}]),e}(),Zn=new(function(){function e(t){_class_call_check(this,e),this.requestHandler=t}return _create_class(e,[{key:"dispatchEvent",value:function(e){return _(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return"POST"!==e.httpVerb?[2,Promise.reject(new Te("44"))]:(t=JSON.stringify(e.params),[2,this.requestHandler.makeRequest(e.url,{"content-type":"application/json"},"POST",t).responsePromise])})})}}]),e}())(new Xn),ei=function(e){var t,r={autoUpdate:!0,requestHandler:new Xn};return t=Object.assign(Object.assign({},r),e),_define_property({},Ht,function(e){var t;e.cache&&Bt(e.cache);var r=null!==(t=e.updateInterval)&&void 0!==t?t:3e5,n=new Kt(1e3,r,500),i=new qt(r,n),o=[];r<3e4&&o.push({level:se.Warn,message:"Polling intervals below 30 seconds are not recommended.",params:[]});var a={sdkKey:e.sdkKey,autoUpdate:e.autoUpdate,urlTemplate:e.urlTemplate,datafileAccessToken:e.datafileAccessToken,customHeaders:e.customHeaders,requestHandler:e.requestHandler,cache:e.cache,repeater:i,startupLogs:o},s=new Vt(a);return new Nt({datafile:e.datafile,datafileManager:s,jsonSchemaValidator:e.jsonSchemaValidator})}(t))},ti=function(){var e;return mr((yr(e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zn),new pr(e)))},ri=function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.eventStore?"async"===(t=r.eventStore).operation?new Xt(t,hr,JSON.parse,JSON.stringify):new Yt(t,hr,JSON.parse,JSON.stringify):void 0;return function(e){return mr(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fr,r=e.eventDispatcher,n=e.closingEventDispatcher,i=e.retryOptions,o=e.eventStore;yr(r),n&&yr(n),o&&Bt(o);var a=i?{maxRetries:i.maxRetries,backoffProvider:function(){var e,t,r=null!==(e=null==i?void 0:i.minBackoff)&&void 0!==e?e:200,n=null!==(t=null==i?void 0:i.maxBackoff)&&void 0!==t?t:1e3;return new Kt(r,n,50)}}:void 0,s=[],u=e.defaultFlushInterval,l=e.defaultBatchSize,c=u;void 0===e.flushInterval||e.flushInterval<=0?s.push({level:se.Warn,message:"Invalid flushInterval %s, defaulting to %s",params:[e.flushInterval,u]}):c=e.flushInterval;var d=l;return void 0===e.batchSize||e.batchSize<=0?s.push({level:se.Warn,message:"Invalid batchSize %s, defaulting to %s",params:[e.batchSize,l]}):d=e.batchSize,new t({eventDispatcher:r,closingEventDispatcher:n,dispatchRepeater:new qt(c),failedEventRepeater:e.failedEventRetryInterval?new qt(e.failedEventRetryInterval):void 0,retryConfig:a,batchSize:d,eventStore:o,startupLogs:s})}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:fr))}({eventDispatcher:r.eventDispatcher||Zn,closingEventDispatcher:r.closingEventDispatcher,flushInterval:r.flushInterval,batchSize:r.batchSize,defaultFlushInterval:3e4,defaultBatchSize:10,retryOptions:{maxRetries:null!==(e=r.maxRetries)&&void 0!==e?e:2},failedEventRetryInterval:n?2e4:void 0,eventStore:n})},ni=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=new Xn({timeout:t.segmentsApiTimeout||1e4}),n=new Xn({timeout:t.eventApiTimeout||1e4});return e=Object.assign(Object.assign({},t),{segmentRequestHandler:r,eventRequestHandler:n,eventBatchSize:t.eventBatchSize||10,eventFlushInterval:t.eventFlushInterval||1e3,eventRequestGenerator:kr}),_define_property({},Dr,Tr(e))},ii=function(){return _define_property({},Fr,void 0)},oi=function(e){var t=Object.assign(Object.assign({},e),{clientEngine:e.clientEngine||Ie,requestHandler:new Xn});return Yn(t)},ai=function(){},si=Ie,ui=["node"],li={},ci={type:"optimizely",config:{},init:function(e){return _async_to_generator(function(e){var t,r,n,i,o,a,s,u,l,c,d,f,v;return _ts_generator(this,function(h){switch(h.label){case 0:return t=e.config,r=e.env,(null==(s=t.settings)?void 0:s.sdkKey)?(u=function(e){return(null==e?void 0:e.optimizely)?e.optimizely:ie}(r),l=u.createPollingProjectConfigManager({sdkKey:s.sdkKey,autoUpdate:null===(n=s.autoUpdate)||void 0===n||n,updateInterval:null!==(i=s.updateInterval)&&void 0!==i?i:6e4}),c=u.createBatchEventProcessor({batchSize:null!==(o=s.batchSize)&&void 0!==o?o:10,flushInterval:null!==(a=s.flushInterval)&&void 0!==a?a:1e3}),d={projectConfigManager:l,eventProcessor:c},[4,(f=u.createInstance(d)).onReady()]):[2,!1];case 1:return h.sent(),v={client:f},[2,_object_spread_props(_object_spread({},t),{settings:_object_spread_props(_object_spread({},s),{_state:v})})]}})}).apply(this,arguments)},push:function(e,t){return _async_to_generator(function(e,t){var r,a,s,l,c,d,f,v,h,p,g,y,m,_,b,k,E,I,S,w,O,x,P,M,R,A,C;return _ts_generator(this,function(j){switch(j.label){case 0:return r=t.config,a=t.rule,t.env,s=t.collector,l=r.settings||{},c=l._state||{},d=(null==a?void 0:a.settings)||{},c.client?void 0===(f=l.userId)?[3,2]:[4,u(e,f,{collector:s})]:[2];case 1:h=j.sent(),o(h)&&(v=h),j.label=2;case 2:return v?void 0===l.attributes?[3,4]:[4,u(e,l.attributes,{collector:s})]:[2];case 3:g=j.sent(),i(g)&&(p=g),j.label=4;case 4:if(v!==c.lastUserId||!c.userContext){if(!(y=c.client.createUserContext(v,p)))return[2];c.userContext=y,c.lastUserId=v}return(m=c.userContext)?void 0===d.attributes?[3,6]:[4,u(e,d.attributes,{collector:s})]:[2];case 5:if(_=j.sent(),i(_)){b=!0,k=!1,E=void 0;try{for(I=Object.entries(_)[Symbol.iterator]();!(b=(S=I.next()).done);b=!0)w=_sliced_to_array(S.value,2),O=w[0],x=w[1],m.setAttribute(O,x)}catch(e){k=!0,E=e}finally{try{b||null==I.return||I.return()}finally{if(k)throw E}}}j.label=6;case 6:return!0===(null==a?void 0:a.silent)?[3,13]:(P=o(null==a?void 0:a.name)?a.name:e.name,M={},void 0===d.eventTags?[3,8]:[4,u(e,d.eventTags,{collector:s})]);case 7:R=j.sent(),i(R)&&Object.assign(M,R),j.label=8;case 8:return void 0===d.revenue?[3,10]:[4,u(e,d.revenue,{collector:s})];case 9:A=j.sent(),n(A)&&(M.revenue=A),j.label=10;case 10:return void 0===d.value?[3,12]:[4,u(e,d.value,{collector:s})];case 11:C=j.sent(),n(C)&&(M.value=C),j.label=12;case 12:m.trackEvent(P,M),j.label=13;case 13:return l._state=c,[2]}})}).apply(this,arguments)},on:function(e,t){var r,n,i;if("consent"===e&&t.data){var o=null===(r=t.config)||void 0===r?void 0:r.consent;if(o&&0!==Object.keys(o).length){var a=t.data,s=Object.keys(o).every(function(e){return!0===a[e]}),u=null===(i=t.config)||void 0===i||null===(n=i.settings)||void 0===n?void 0:n._state;!s&&(null==u?void 0:u.client)&&(u.client.close(),u.client=void 0,u.userContext=void 0)}}},destroy:function(e){var t=e.config,r=((null==t?void 0:t.settings)||{})._state;(null==r?void 0:r.client)&&(r.client.close(),r.client=void 0,r.userContext=void 0)}},di=ci;return pn=Y,H(N({},"__esModule",{value:!0}),pn)}();
|
|
1
|
+
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep(e,t,r,n,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(e){asyncGeneratorStep(o,n,i,a,s,"next",e)}function s(e){asyncGeneratorStep(o,n,i,a,s,"throw",e)}a(void 0)})}}function _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&_set_prototype_of(i,r.prototype),i},_construct.apply(null,arguments)}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _create_class(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _get(e,t,r){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=_super_prop_base(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r||e):i.value}},_get(e,t,r||e)}function _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _super_prop_base(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_get_prototype_of(e)););return e}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}function _ts_generator(e,t){var r,n,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(a,"next",{value:u(0)}),s(a,"throw",{value:u(1)}),s(a,"return",{value:u(2)}),"function"==typeof Symbol&&s(a,Symbol.iterator,{value:function(){return this}}),a;function u(s){return function(u){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}}var Destination=function(){var e,t=function(e,t){if("collector"===e)return"collector";if(!t)throw new Error("stepId(".concat(e,") requires an id"));return"".concat(e,".").concat(t)},r=function(e,t){var r=e.destinations[t];if(!r)throw new Error("Destination not found: ".concat(t));return r},n=function(e,t){var r=e.transformers[t];if(!r)throw new Error("Transformer not found: ".concat(t));return r},i=function(e,t){var r=e.sources[t];if(!r)throw new Error("Source not found: ".concat(t));return r},o=function(e,t){var r=e.stores[t];if(!r)throw new Error("Store not found: ".concat(t));return r},a=function(e){return Array.isArray(e)},s=function(e){return void 0!==e},u=function(e){return"number"==typeof e&&!Number.isNaN(e)},l=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!a(e)&&"[object Object]"===Object.prototype.toString.call(e)},c=function(e){return"string"==typeof e},f=function(e){return ue(e)?e:void 0},d=function(e,t,r){return function(){for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return _async_to_generator(function(){var n;return _ts_generator(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(i))];case 1:case 3:return[2,o.sent()];case 2:return n=o.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return o.sent(),[7];case 6:return[2]}})})()}},v=function(e){return _async_to_generator(function(e){var t,r,n,i,o,u,c,f,v,h,p,g,y,m,_,b,k=arguments;return _ts_generator(this,function(E){switch(E.label){case 0:if(t=k.length>1&&void 0!==k[1]?k[1]:{},r=k.length>2&&void 0!==k[2]?k[2]:{},!s(e))return[2];if(o=l(e)&&e.consent||r.consent||(null===(i=r.collector)||void 0===i?void 0:i.consent),u=null!==(n=r.event)&&void 0!==n?n:l(e)?e:{},!r.collector)throw new Error("getMappingValue: context.collector is required");c={event:u,mapping:t,collector:r.collector,logger:r.collector.logger,consent:o},f=a(t)?t:[t],v=!0,h=!1,p=void 0,E.label=1;case 1:E.trys.push([1,6,7,8]),g=f[Symbol.iterator](),E.label=2;case 2:return(v=(y=g.next()).done)?[3,5]:(m=y.value,[4,d(ce,function(e){if(_instanceof(e,le))throw e;r.collector&&r.collector.status.failed++,c.logger.error("mapping processing failed",{event:u,error:e})})(e,m,_object_spread_props(_object_spread({},c),{mapping:m}))]);case 3:if(_=E.sent(),s(_))return[2,_];E.label=4;case 4:return v=!0,[3,2];case 5:return[3,8];case 6:return b=E.sent(),h=!0,p=b,[3,8];case 7:try{v||null==g.return||g.return()}finally{if(h)throw p}return[7];case 8:return[2]}})}).apply(this,arguments)},h=function(){return me>ye.length-16&&(ge.default.randomFillSync(ye),me=0),ye.slice(me,me+=16)},p=function(e){return"number"==typeof e&&Math.abs(e)<=Ke},g=function(e,t){if(!e)return{};var r={};return y(e,t,r),r},y=function(e,t,r){e&&e.forEach(function(e){r[e[t]]=e})},m=function(e){return Object.keys(e).map(function(t){return e[t]})},_=function(e){return Object.keys(e).map(function(t){return[t,e[t]]})},b=function(e,t){var r,n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done);n=!0){var u=a.value;if(t(u)){r=u;break}}}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r},k=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,function(){var e=r[i++],t=void 0===e?"undefined":_type_of(e);return"function"===t?e():"string"===t?e:String(e)})},E=function(e,t){return e.length===t.length&&e.every(function(e,r){return e===t[r]})},I=function(){var e=Nt,t=Nt,r=new Promise(function(r,n){e=r,t=n});return{promise:r,resolve:e,reject:t,then:r.then.bind(r)}},S=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,_instanceof(t,r)?t:new r(function(e){e(t)})).then(a,s)}u((n=n.apply(e,t||[])).next())})},w=function(e){var t=[],r=e[0];return e.forEach(function(e){if("conversion"===e.type||"impression"===e.type){var r=(i={snapshots:[],visitor_id:(n=e).user.id,attributes:[]},n.user.attributes.forEach(function(e){i.attributes.push({entity_id:e.entityId,key:e.key,type:"custom",value:e.value})}),"boolean"==typeof n.context.botFiltering&&i.attributes.push({entity_id:xe,key:xe,type:sr,value:n.context.botFiltering}),i);"impression"===e.type?r.snapshots.push(function(e){var t,r,n=e.layer,i=e.experiment,o=e.variation,a=e.ruleKey,s=e.flagKey,u=e.ruleType,l=e.enabled,c=e.cmabUuid,f=n?n.id:null;return{decisions:[{campaign_id:f,experiment_id:null!==(t=null==i?void 0:i.id)&&void 0!==t?t:"",variation_id:null!==(r=null==o?void 0:o.id)&&void 0!==r?r:"",metadata:{flag_key:s,rule_key:a,rule_type:u,variation_key:o?o.key:"",enabled:l,cmab_uuid:c}}],events:[{entity_id:f,timestamp:e.timestamp,key:ar,uuid:e.uuid}]}}(e)):"conversion"===e.type&&r.snapshots.push(function(e){var t=Object.assign({},e.tags);delete t.revenue,delete t.value;var r={entity_id:e.event.id,key:e.event.key,timestamp:e.timestamp,uuid:e.uuid};return e.tags&&(r.tags=e.tags),null!=e.value&&(r.value=e.value),null!=e.revenue&&(r.revenue=e.revenue),{events:[r]}}(e)),t.push(r)}var n,i}),{client_name:r.context.clientName,client_version:r.context.clientVersion,account_id:r.context.accountId,project_id:r.context.projectId,revision:r.context.revision,anonymize_ip:r.context.anonymizeIP,enrich_decisions:!0,visitors:t}},O=function(e){var t,r=(null===(t=e[0])||void 0===t?void 0:t.context.region)||"US";return{url:ur[r]||ur.US,httpVerb:"POST",params:w(e)}},x=function(e){var t,r;return null!==(r=null===(t=e.experiment)||void 0===t?void 0:t.key)&&void 0!==r?r:""},P=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.key)&&void 0!==r?r:""},M=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.featureEnabled)&&void 0!==r&&r},R=function(e,t,r){return{variationKey:null,enabled:!1,variables:{},ruleKey:null,flagKey:e,userContext:t,reasons:r}},A=function(e){return/^\d+$/.test(e)},C=function(e){var t=e.indexOf("-"),r=e.indexOf("+");return!(t<0)&&(r<0||t<r)},j=function(e){var t=e.indexOf("-"),r=e.indexOf("+");return!(r<0)&&(t<0||r<t)},D=function(e,t){var r=e,n="";if(/\s/.test(e))return null==t||t.warn(rt,e),null;if(C(e)?(r=e.substring(0,e.indexOf("-")),n=e.substring(e.indexOf("-")+1)):j(e)&&(r=e.substring(0,e.indexOf("+")),n=e.substring(e.indexOf("+")+1)),"string"!=typeof r||"string"!=typeof n)return null;var i=r.split(".").length-1;if(i>2)return null==t||t.warn(rt,e),null;var o=r.split(".");if(o.length!=i+1)return null==t||t.warn(rt,e),null;var a=!0,s=!1,u=void 0;try{for(var l,c=o[Symbol.iterator]();!(a=(l=c.next()).done);a=!0){var f=l.value;if(!A(f))return null==t||t.warn(rt,e),null}}catch(e){s=!0,u=e}finally{try{a||null==c.return||c.return()}finally{if(s)throw u}}return n&&o.push(n),o},T=function(e){return"string"==typeof e||"boolean"==typeof e||Le.isNumber(e)},F=function(e,t,r){var n=t.getAttributes(),i=e.value,o=void 0===i?"undefined":_type_of(i),a=e.name,s=n[a],u=void 0===s?"undefined":_type_of(s);return!T(i)||Le.isNumber(i)&&!Le.isSafeInteger(i)?(null==r||r.warn(et,JSON.stringify(e)),null):null===s?(null==r||r.debug(We,JSON.stringify(e),a),null):T(s)&&o===u?Le.isNumber(s)&&!Le.isSafeInteger(s)?(null==r||r.warn("45",JSON.stringify(e),a),null):i===s:(null==r||r.warn(tt,JSON.stringify(e),u,a),null)},N=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[i],a=void 0===o?"undefined":_type_of(o),s=e.value;return null!==s&&Le.isSafeInteger(s)?null===o?(null==r||r.debug(We,JSON.stringify(e),i),!1):Le.isNumber(o)?!!Le.isSafeInteger(o)||(null==r||r.warn("45",JSON.stringify(e),i),!1):(null==r||r.warn(tt,JSON.stringify(e),a,i),!1):(null==r||r.warn(et,JSON.stringify(e)),!1)},U=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[i],a=void 0===o?"undefined":_type_of(o),s=e.value;return"string"!=typeof s?(null==r||r.warn(et,JSON.stringify(e)),null):null===o?(null==r||r.debug(We,JSON.stringify(e),i),null):"string"!=typeof o?(null==r||r.warn(tt,JSON.stringify(e),a,i),null):function(e,t,r){var n=D(t,r),i=D(e,r);if(!n||!i)return null;for(var o=n.length,a=0;a<i.length;a++){if(o<=a)return C(e)||j(e)?1:-1;if(A(n[a])){var s=parseInt(n[a]),u=parseInt(i[a]);if(s>u)return 1;if(s<u)return-1}else{if(n[a]<i[a])return C(e)&&!C(t)?1:-1;if(n[a]>i[a])return!C(e)&&C(t)?-1:1}}return C(t)&&!C(e)?-1:0}(s,o,r)},V=function(e,t){return t.isQualifiedFor(e.value)},K=function(e){return"string"==typeof e&&""!==e},L=Object.create,q=Object.defineProperty,B=Object.getOwnPropertyDescriptor,z=Object.getOwnPropertyNames,H=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty,G=(e=function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')},"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:function(e,t){return("undefined"!=typeof require?require:e)[t]}}):e),W=function(e,t){return function(){return t||(0,e[z(e)[0]])((t={exports:{}}).exports,t),t.exports}},Q=function(e,t){for(var r in t)q(e,r,{get:t[r],enumerable:!0})},$=function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var i=!0,o=!1,a=void 0;try{for(var s,u=function(){var i=s.value;J.call(e,i)||i===r||q(e,i,{get:function(){return t[i]},enumerable:!(n=B(t,i))||n.enumerable})},l=z(t)[Symbol.iterator]();!(i=(s=l.next()).done);i=!0)u()}catch(e){o=!0,a=e}finally{try{i||null==l.return||l.return()}finally{if(o)throw a}}}return e},Y=function(e,t,r){return r=null!=e?L(H(e)):{},$(!t&&e&&e.__esModule?r:q(r,"default",{value:e,enumerable:!0}),e)},X=W({"../../../../node_modules/json-schema/lib/validate.js":function(e,t){var r,n;r=e,n=function(){var e=r;e.Integer={type:"integer"};var t={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date};function r(e,t){return r(e,t,{changing:!1})}e.validate=r,e.checkPropertyChange=function(e,t,n){return r(e,t,{changing:n||"property"})};var r=e._validate=function(e,r,n){n||(n={});var i=n.changing;function o(e){return e.type||t[e.name]==e&&e.name.toLowerCase()}var a=[];function s(e,t,r,u){var l;function c(e){a.push({property:r,message:e})}if(r+=r?"number"==typeof u?"["+u+"]":void 0===u?"":"."+u:u,("object"!=(void 0===t?"undefined":_type_of(t))||_instanceof(t,Array))&&(r||"function"!=typeof t)&&(!t||!o(t)))return"function"==typeof t?_instanceof(e,t)||c("is not an instance of the class/constructor "+t.name):t&&c("Invalid schema/property definition "+t),null;function f(e,t){if(e){if(!("string"!=typeof e||"any"==e||("null"==e?null===t:(void 0===t?"undefined":_type_of(t))==e)||_instanceof(t,Array)&&"array"==e||_instanceof(t,Date)&&"date"==e||"integer"==e&&t%1==0))return[{property:r,message:t+" - "+(void 0===t?"undefined":_type_of(t))+" value found, but a "+e+" is required"}];if(_instanceof(e,Array)){for(var n=[],i=0;i<e.length&&(n=f(e[i],t)).length;i++);if(n.length)return n}else if("object"==(void 0===e?"undefined":_type_of(e))){var o=a;a=[],s(t,e,r);var u=a;return a=o,u}}return[]}if(i&&t.readonly&&c("is a readonly field, it can not be changed"),t.extends&&s(e,t.extends,r,u),void 0===e)t.required&&c("is missing and it is required");else if(a=a.concat(f(o(t),e)),t.disallow&&!f(t.disallow,e).length&&c(" disallowed value was matched"),null!==e){if(_instanceof(e,Array)){if(t.items){var d=_instanceof(t.items,Array),v=t.items;for(u=0,l=e.length;u<l;u+=1)d&&(v=t.items[u]),n.coerce&&(e[u]=n.coerce(e[u],v)),a.concat(s(e[u],v,r,u))}t.minItems&&e.length<t.minItems&&c("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&c("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&a.concat(function(e,t,r,o){if("object"==(void 0===t?"undefined":_type_of(t)))for(var u in("object"!=(void 0===e?"undefined":_type_of(e))||_instanceof(e,Array))&&a.push({property:r,message:"an object is required"}),t)if(t.hasOwnProperty(u)&&"__proto__"!=u&&"constructor"!=u){var l=e.hasOwnProperty(u)?e[u]:void 0;if(void 0===l&&n.existingOnly)continue;var c=t[u];void 0===l&&c.default&&(l=e[u]=c.default),n.coerce&&u in e&&(l=e[u]=n.coerce(l,c)),s(l,c,r,u)}for(u in e){if(e.hasOwnProperty(u)&&("_"!=u.charAt(0)||"_"!=u.charAt(1))&&t&&!t[u]&&!1===o){if(n.filter){delete e[u];continue}a.push({property:r,message:"The property "+u+" is not defined in the schema and the schema does not allow additional properties"})}var f=t&&t[u]&&t[u].requires;f&&!(f in e)&&a.push({property:r,message:"the presence of the property "+u+" requires that "+f+" also be present"}),l=e[u],!o||t&&"object"==(void 0===t?"undefined":_type_of(t))&&u in t||(n.coerce&&(l=e[u]=n.coerce(l,o)),s(l,o,r,u)),!i&&l&&l.$schema&&(a=a.concat(s(l,l.$schema,r,u)))}return a}(e,t.properties,r,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&c("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&c("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&c("must be at least "+t.minLength+" characters long"),void 0!==t.minimum&&(void 0===e?"undefined":_type_of(e))==_type_of(t.minimum)&&t.minimum>e&&c("must have a minimum value of "+t.minimum),void 0!==t.maximum&&(void 0===e?"undefined":_type_of(e))==_type_of(t.maximum)&&t.maximum<e&&c("must have a maximum value of "+t.maximum),t.enum){var h,p=t.enum;l=p.length;for(var g=0;g<l;g++)if(p[g]===e){h=1;break}h||c("does not have a value in the enumeration "+p.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&c("may only have "+t.maxDecimal+" digits of decimal places")}return null}return r&&s(e,r,"",i||""),!i&&e&&e.$schema&&s(e,e.$schema,"",""),{valid:!a.length,errors:a}};return e.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map(function(e){return"for property "+e.property+": "+e.message}).join(", \n"))},e},"function"==typeof define&&define.amd?define([],function(){return n()}):"object"===(void 0===t?"undefined":_type_of(t))&&t.exports?t.exports=n():r.jsonSchema=n()}}),Z=W({"../../../../node_modules/murmurhash/murmurhash.js":function(e,t){!function(){var e=this,r=function(e){return(new TextEncoder).encode(e)};function n(e,t){var n,i,o,a,s,u,l,c;for("string"==typeof e&&(e=r(e)),n=3&e.length,i=e.length-n,o=t,s=3432918353,u=461845907,c=0;c<i;)l=255&e[c]|(255&e[++c])<<8|(255&e[++c])<<16|(255&e[++c])<<24,++c,o=27492+(65535&(a=5*(65535&(o=(o^=l=(65535&(l=(l=(65535&l)*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*u+(((l>>>16)*u&65535)<<16)&4294967295)<<13|o>>>19))+((5*(o>>>16)&65535)<<16)&4294967295))+(((a>>>16)+58964&65535)<<16);switch(l=0,n){case 3:l^=(255&e[c+2])<<16;case 2:l^=(255&e[c+1])<<8;case 1:o^=l=(65535&(l=(l=(65535&(l^=255&e[c]))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*u+(((l>>>16)*u&65535)<<16)&4294967295}return o^=e.length,o=2246822507*(65535&(o^=o>>>16))+((2246822507*(o>>>16)&65535)<<16)&4294967295,o=3266489909*(65535&(o^=o>>>13))+((3266489909*(o>>>16)&65535)<<16)&4294967295,(o^=o>>>16)>>>0}var i=n;if(i.v2=function(e,t){"string"==typeof e&&(e=r(e));for(var n,i=e.length,o=t^i,a=0;i>=4;)n=1540483477*(65535&(n=255&e[a]|(255&e[++a])<<8|(255&e[++a])<<16|(255&e[++a])<<24))+((1540483477*(n>>>16)&65535)<<16),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),i-=4,++a;switch(i){case 3:o^=(255&e[a+2])<<16;case 2:o^=(255&e[a+1])<<8;case 1:o=1540483477*(65535&(o^=255&e[a]))+((1540483477*(o>>>16)&65535)<<16)}return o=1540483477*(65535&(o^=o>>>13))+((1540483477*(o>>>16)&65535)<<16),(o^=o>>>15)>>>0},i.v3=n,void 0!==t)t.exports=i;else{var o=e.murmur;i.noConflict=function(){return e.murmur=o,i},e.murmur=i}}()}}),ee=W({"../../../../node_modules/@optimizely/optimizely-sdk/node_modules/mimic-response/index.js":function(e,t){var r=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];t.exports=function(e,t){if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");var n=new Set(Object.keys(e).concat(r)),i={},o=!0,a=!1,s=void 0;try{for(var u,l=function(){var r=u.value;if(r in t)return"continue";i[r]={get:function(){var t=e[r];return"function"==typeof t?t.bind(e):t},set:function(t){e[r]=t},enumerable:!0,configurable:!1}},c=n[Symbol.iterator]();!(o=(u=c.next()).done);o=!0)l()}catch(e){a=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(a)throw s}}return Object.defineProperties(t,i),e.once("aborted",function(){t.destroy(),t.emit("aborted")}),e.once("close",function(){e.complete&&t.readable?t.once("end",function(){t.emit("close")}):t.emit("close")}),t}}}),te=W({"../../../../node_modules/@optimizely/optimizely-sdk/node_modules/decompress-response/index.js":function(e,t){var r=G("stream"),n=r.Transform,i=r.PassThrough,o=G("zlib"),a=ee();t.exports=function(e){var t=(e.headers["content-encoding"]||"").toLowerCase();if(delete e.headers["content-encoding"],!["gzip","deflate","br"].includes(t))return e;var r="br"===t;if(r&&"function"!=typeof o.createBrotliDecompress)return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;var s=!0,u=new n({transform:function(e,t,r){s=!1,r(null,e)},flush:function(e){e()}}),l=new i({autoDestroy:!1,destroy:function(t,r){e.destroy(),r(t)}}),c=r?o.createBrotliDecompress():o.createUnzip();return c.once("error",function(t){!s||e.readable?l.destroy(t):l.end()}),a(e,l),e.pipe(u).pipe(c).pipe(l),l}}}),re={};Q(re,{DestinationOptimizely:function(){return gi},default:function(){return mi},destinationOptimizely:function(){return yi}});var ne=Object.defineProperty,ie=function(e,t){for(var r in t)ne(e,r,{get:t[r],enumerable:!0})};ie({},{stepId:function(){return t}});ie({},{getDestination:function(){return r}});ie({},{Level:function(){return ae}});var oe,ae=((oe=ae||{})[oe.ERROR=0]="ERROR",oe[oe.WARN=1]="WARN",oe[oe.INFO=2]="INFO",oe[oe.DEBUG=3]="DEBUG",oe);ie({},{getTransformer:function(){return n}});ie({},{getSource:function(){return i}});function se(e){for(var t=arguments.length>2?arguments[2]:void 0,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),n=e,i=0;i<r.length;i++){var o=r[i];if("*"===o&&a(n)){var u=r.slice(i+1).join("."),c=[],f=!0,d=!1,v=void 0;try{for(var h,p=n[Symbol.iterator]();!(f=(h=p.next()).done);f=!0){var g=se(h.value,u,t);c.push(g)}}catch(e){d=!0,v=e}finally{try{f||null==p.return||p.return()}finally{if(d)throw v}}return c}if(void 0===(n=l(n)||a(n)?n[o]:void 0))break}return s(n)?n:t}function ue(e){return function(e){return"boolean"==typeof e}(e)||c(e)||u(e)||!s(e)||a(e)&&e.every(ue)||l(e)&&Object.values(e).every(ue)}ie({},{getStore:function(){return o}});var le=function(){function e(t,r){var n;return _class_call_check(this,e),(n=_call_super(this,e,[t,r])).name="FatalError",Object.setPrototypeOf(n,e.prototype),n}return _inherits(e,_wrap_native_super(Error)),e}();function ce(e,t,r){return _async_to_generator(function(){return _ts_generator(this,function(n){return[2,(a(t)?t:[t]).reduce(function(t,n){return _async_to_generator(function(){var i,o,u,l,h,p,g,y,m,_,b,k,E,I,S,w,O,x,P,M,R,A;return _ts_generator(this,function(C){switch(C.label){case 0:return[4,t];case 1:return(i=C.sent())?[2,i]:(o=c(n)?{key:n}:n,Object.keys(o).length?(u=o.condition,l=o.consent,h=o.fn,p=o.key,g=o.loop,y=o.map,m=o.set,_=o.validate,b=o.value,k=_object_spread_props(_object_spread({},r),{mapping:n}),(E=u)?[4,d(u,function(e){if(_instanceof(e,le))throw e;return k.logger.error("mapping condition failed",{event:k.event,error:e}),!1})(e,k)]:[3,3]):[2]);case 2:E=!C.sent(),C.label=3;case 3:return E?[2]:l&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(i){t[i]&&(r[i]=!0,e&&e[i]&&(n=!0))}),!!n&&r}(l,k.consent)?[2,b]:(I=s(b)?b:e,h?[4,d(h,function(e){if(_instanceof(e,le))throw e;k.logger.error("mapping fn failed",{event:k.event,error:e})})(e,k)]:[3,5]);case 4:I=C.sent(),C.label=5;case 5:return p&&(I=se(e,p,b)),g?(S=_sliced_to_array(g,2),w=S[0],O=S[1],"this"!==w?[3,6]:(P=[e],[3,8])):[3,11];case 6:return[4,v(e,w,k)];case 7:P=C.sent(),C.label=8;case 8:return a(x=P)?[4,Promise.all(x.map(function(e){return v(e,O,k)}))]:[3,10];case 9:I=C.sent().filter(s),C.label=10;case 10:return[3,17];case 11:return y?[4,Object.entries(y).reduce(function(t,r){var n=_sliced_to_array(r,2),i=n[0],o=n[1];return _async_to_generator(function(){var r,n;return _ts_generator(this,function(a){switch(a.label){case 0:return[4,t];case 1:return r=a.sent(),[4,v(e,o,k)];case 2:return n=a.sent(),[2,(s(n)&&(r[i]=n),r)]}})})()},Promise.resolve({}))]:[3,13];case 12:return I=C.sent(),[3,16];case 13:return(M=m)?[4,Promise.all(m.map(function(t){return ce(e,t,k)}))]:[3,15];case 14:M=I=C.sent(),C.label=15;case 15:C.label=16;case 16:C.label=17;case 17:return(R=_)?[4,d(_,function(e){if(_instanceof(e,le))throw e;return k.logger.error("mapping validate failed",{event:k.event,error:e}),!1})(I,k)]:[3,19];case 18:R=!C.sent(),C.label=19;case 19:return R&&(I=void 0),A=f(I),[2,s(A)?A:f(b)]}})})()},Promise.resolve(void 0))]})})()}var fe={};Q(fe,{DEBUG:function(){return ft},DECISION_NOTIFICATION_TYPES:function(){return dr},DECISION_SOURCES:function(){return Ce},ERROR:function(){return ht},INFO:function(){return dt},LogLevel:function(){return he},NOTIFICATION_TYPES:function(){return vr},OptimizelyDecideOption:function(){return Lt},WARN:function(){return vt},__platforms:function(){return pi},clientEngine:function(){return hi},createBatchEventProcessor:function(){return li},createErrorNotifier:function(){return _t},createForwardingEventProcessor:function(){return ui},createInstance:function(){return di},createLogger:function(){return gt},createOdpManager:function(){return ci},createPollingProjectConfigManager:function(){return si},createStaticProjectConfigManager:function(){return Zt},createVuidManager:function(){return fi},eventDispatcher:function(){return ai},getSendBeaconEventDispatcher:function(){return vi}});for(var de=[],ve=0;ve<256;++ve)de.push((ve+256).toString(16).slice(1));var he,pe,ge=Y(G("crypto")),ye=new Uint8Array(256),me=ye.length,_e={randomUUID:Y(G("crypto")).default.randomUUID},be=function(e,t,r){if(_e.randomUUID&&!t&&!e)return _e.randomUUID();var n=(e=e||{}).random||(e.rng||h)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var i=0;i<16;++i)t[r+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(de[e[t+0]]+de[e[t+1]]+de[e[t+2]]+de[e[t+3]]+"-"+de[e[t+4]]+de[e[t+5]]+"-"+de[e[t+6]]+de[e[t+7]]+"-"+de[e[t+8]]+de[e[t+9]]+"-"+de[e[t+10]]+de[e[t+11]]+de[e[t+12]]+de[e[t+13]]+de[e[t+14]]+de[e[t+15]]).toLowerCase()}(n)},ke=Y(X(),1),Ee=Y(Z(),1),Ie=Y(G("http"),1),Se=Y(G("https"),1),we=Y(G("url"),1),Oe=Y(te(),1),xe="$opt_bot_filtering",Pe="$opt_bucketing_id",Me="javascript-sdk",Re="node-sdk",Ae="6.3.1",Ce={FEATURE_TEST:"feature-test",ROLLOUT:"rollout",EXPERIMENT:"experiment",HOLDOUT:"holdout"},je="experiment",De="boolean",Te="double",Fe="integer",Ne="string",Ue="json",Ve="Optimizely SDK not configured properly yet.",Ke=Math.pow(2,53),Le={checkArrayEquality:E,currentTimestamp:function(){return Math.round((new Date).getTime())},isSafeInteger:p,keyBy:g,uuid:function(){return be()},isNumber:function(e){return"number"==typeof e},getTimestamp:function(){return(new Date).getTime()},groupBy:function(e,t){var r={};return e.forEach(function(e){var n=t(e);r[n]=r[n]||[],r[n].push(e)}),m(r)},objectValues:m,objectEntries:_,find:b,sprintf:k},qe=function(){function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];var o;return _class_call_check(this,e),(o=_call_super(this,e)).resolved=!1,o.name="OptimizelyError",o.baseMessage=t,o.params=n,Object.setPrototypeOf(o,e.prototype),o}return _inherits(e,_wrap_native_super(Error)),_create_class(e,[{key:"setMessage",value:function(e){this.resolved||(this.message=k.apply(void 0,[e.resolve(this.baseMessage)].concat(_to_consumable_array(this.params))),this.resolved=!0)}}]),e}();!function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warn=2]="Warn",e[e.Error=3]="Error"}(he||(he={}));var Be,ze=(_define_property(pe={},he.Debug,"DEBUG"),_define_property(pe,he.Info,"INFO"),_define_property(pe,he.Warn,"WARN"),_define_property(pe,he.Error,"ERROR"),pe),He=(_define_property(Be={},he.Debug,"debug"),_define_property(Be,he.Info,"info"),_define_property(Be,he.Warn,"warn"),_define_property(Be,he.Error,"error"),Be),Je=function(){function e(t){_class_call_check(this,e),this.prefix=t||"[OPTIMIZELY]"}return _create_class(e,[{key:"log",value:function(e,t){var r="".concat(this.prefix," - ").concat(ze[e]," ").concat(this.getTime()," ").concat(t);this.consoleLog(e,r)}},{key:"getTime",value:function(){return(new Date).toISOString()}},{key:"consoleLog",value:function(e,t){(console[He[e]]||console.log).call(console,t)}}]),e}(),Ge=function(){function e(t){_class_call_check(this,e),this.prefix="",this.logHandler=t.logHandler,this.infoResolver=t.infoMsgResolver,this.errorResolver=t.errorMsgResolver,this.level=t.level,t.name&&this.setName(t.name)}return _create_class(e,[{key:"child",value:function(t){return new e({logHandler:this.logHandler,infoMsgResolver:this.infoResolver,errorMsgResolver:this.errorResolver,level:this.level,name:t})}},{key:"setName",value:function(e){this.name=e,this.prefix="".concat(e,": ")}},{key:"info",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(he.Info,e,r)}},{key:"debug",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(he.Debug,e,r)}},{key:"warn",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(he.Warn,e,r)}},{key:"error",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log(he.Error,e,r)}},{key:"handleLog",value:function(e,t,r){var n=r.length>0?"".concat(this.prefix).concat(k.apply(void 0,[t].concat(_to_consumable_array(r)))):"".concat(this.prefix).concat(t);this.logHandler.log(e,n)}},{key:"log",value:function(e,t,r){if(!(e<this.level)){if(_instanceof(t,Error))return _instanceof(t,qe)&&t.setMessage(this.errorResolver),void this.handleLog(e,t.message,[]);var n=this.errorResolver;if(e<he.Warn){if(!this.infoResolver)return;n=this.infoResolver}var i=n.resolve(t);this.handleLog(e,i,r)}}}]),e}(),We="30",Qe=["Adding Authorization header with Bearer Token",'Audience "%s" evaluated to %s.',"CMAB cache attributes mismatch for user %s and rule %s, fetching new decision.","Cache hit for user %s and rule %s.","Cache miss for user %s and rule %s.",'Starting to evaluate audience "%s" with conditions: %s.','Failed to parse revenue value "%s" from event tags.','Failed to parse event value "%s" from event tags.',"Feature %s is enabled for user %s.","Feature %s is not enabled for user %s.",'Feature "%s" is not enabled for user %s. Returning the default variable value "%s".',"Ignoring CMAB cache for user %s and rule %s.","Invalidating CMAB cache for user %s and rule %s.","Invalid client engine passed: %s. Defaulting to node-sdk.","Provided decide options is not an array. Using default decide options.","Provided default decide options is not an array.","Experiment key %s is not in datafile. It is either invalid, paused, or archived.","Making datafile request to url %s with headers: %s",'Audience condition %s evaluated to UNKNOWN because no value was passed for user attribute "%s".',"Not activating user %s for experiment %s.",'Parsed event value "%s" from event tags.','Parsed revenue value "%s" from event tags.',"Resetting CMAB cache for user %s and rule %s.","Response status code: %s","Saved last modified header value from response: %s",'Saved user profile for user "%s".',"User %s was previously bucketed into variation with ID %s for experiment %s, but no matching variation was found.",'Experiment %s is not in "Running" state. Not activating user.',"Skipping JSON schema validation.","Tracking event %s for user %s.",'Audience condition %s evaluated to UNKNOWN because a null value was passed for user attribute "%s".',"Updated Optimizely config to revision %s (project id %s)","User %s is not in the forced variation map.","No experiment %s mapped to user %s in the forced variation map.","Set variation %s for experiment %s and user %s in the forced variation map.",'User "%s" is not in any variation or rollout rule. Returning default value for variable "%s" of feature flag "%s".','Got variable value "%s" for variable "%s" of feature flag "%s"','BucketingId is valid: "%s"',"Datafile is valid.","Valid user profile service provided.",'Variable "%s" is not used in variation "%s". Returning default value.',"Variation mapped to experiment %s has been removed for user %s."],$e="12",Ye="27",Xe="35",Ze="53",et="57",tt="59",rt="61",nt=["BucketingID attribute is not a string. Defaulted to userId","CMAB decision fetch failed with status: %s","Error evaluating audience condition of type %s: %s","Datafile fetch request failed with status: %s","Error fetching datafile: %s","Event action invalid.","Event data invalid.","Event key %s is not in datafile.","Event store is full. Not saving event with id %d.","Experiment key %s is not in datafile.","Failed to dispatch events, status: %s","failed to send odp events","Feature key %s is not in datafile.","Provided attributes are in an invalid format.","Unable to generate hash for bucketing ID %s: %s","Invalid CMAB fetch response","Provided Optimizely config is in an invalid format.","Datafile is invalid - property %s: %s","Datafile is invalid because it is malformed.","This version of the JavaScript SDK does not support the given datafile version: %s","Provided event tags are in an invalid format.","Experiment ID %s is not in datafile.","Experiment key %s is not in datafile. It is either invalid, paused, or archived.","Group ID %s is not in datafile.","Provided %s is in an invalid format.","JSON object is not valid.","Provided user ID is in an invalid format.","Provided user profile service instance is in an invalid format: %s.","Provided variation key is in an invalid format.","Integration key missing from datafile. All integrations should include a key.","Notification listener for (%s) threw exception: %s","Not tracking user %s.","No datafile specified. Cannot start optimizely.","No event processor is provided","No JSON object to validate against schema.","No project config available. Failing %s.","No status code in response","No variation key %s defined in datafile for experiment %s.","ODP config is not available.","ODP events should have at least one key-value pair in identifiers.","ODP event send failed.","ODP event manager stopped before it could start","ODP Manager is missing. %s failed.","ODP is not integrated","Only POST requests are supported",'Audience condition %s evaluated to UNKNOWN because the number value for user attribute "%s" is not in the range [-2^53, +2^53].',"Promise value is not allowed in sync operation","Request error","Request timeout","Retry cancelled","sendBeacon failed","%s not running",'unable to bind optimizely.close() to page unload event: "%s"',"Unable to cast value %s to type %s, returning null.","Unable to get VUID - VuidManager is not available","Unable to parse & skipped header item","Provided attribute: %s has an undefined value.","Audience condition %s evaluated to UNKNOWN because the condition value is not supported.","Attribute %s unexpectedly has reserved prefix %s; using attribute ID instead of reserved attribute name.",'Audience condition %s evaluated to UNKNOWN because a value of type "%s" was passed for user attribute "%s".',"Audience condition %s has an unknown condition type. You may need to upgrade to a newer release of the Optimizely SDK.","Audience condition %s uses an unknown match type. You may need to upgrade to a newer release of the Optimizely SDK.","Unrecognized attribute %s provided. Pruning before sending event to Optimizely.","Unrecognized decide option %s provided.","Unsupported protocol: %s","User %s is not in the forced variation map. Cannot remove their forced variation.",'Error while looking up user profile for user ID "%s": %s.','Error while saving user profile for user ID "%s": %s.','Variable with key "%s" associated with feature with key "%s" is not in datafile.','Requested variable type "%s", but variable is of type "%s". Use correct API to retrieve value. Returning None.',"Variation ID %s is not in the datafile."],it={resolve:function(e){var t=parseInt(e);return Qe[t]||e}},ot={resolve:function(e){var t=parseInt(e);return nt[t]||e}},at={level:he.Debug,infoResolver:it,errorResolver:ot},st={level:he.Info,infoResolver:it,errorResolver:ot},ut={level:he.Warn,errorResolver:ot},lt={level:he.Error,errorResolver:ot},ct=Symbol(),ft=_define_property({},ct,at),dt=_define_property({},ct,st),vt=_define_property({},ct,ut),ht=_define_property({},ct,lt),pt=Symbol(),gt=function(e){var t=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||!e[ct])throw new Error("Invalid level preset");return e[ct]}(e.level),r=t.level,n=t.infoResolver,i=t.errorResolver;return e.logHandler&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.log)throw new Error("Invalid log handler")}(e.logHandler),_define_property({},pt,new Ge({name:"Optimizely",level:r,infoMsgResolver:n,errorMsgResolver:i,logHandler:e.logHandler||new Je}))},yt=function(){function e(t,r,n){_class_call_check(this,e),this.errorHandler=t,this.messageResolver=r,this.name=n||""}return _create_class(e,[{key:"notify",value:function(e){_instanceof(e,qe)&&e.setMessage(this.messageResolver),this.errorHandler.handleError(e)}},{key:"child",value:function(t){return new e(this.errorHandler,this.messageResolver,t)}}]),e}(),mt=Symbol(),_t=function(e){return function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.handleError)throw new Error("Invalid error handler")}(e),_define_property({},mt,new yt(e,ot))},bt=["and","or","not"];function kt(e,t){if(Array.isArray(e)){var r=e[0],n=e.slice(1);switch("string"==typeof r&&-1===bt.indexOf(r)&&(r="or",n=e),r){case"and":return function(e,t){var r=!1;if(Array.isArray(e)){for(var n=0;n<e.length;n++){var i=kt(e[n],t);if(!1===i)return!1;null===i&&(r=!0)}return!r||null}return null}(n,t);case"not":return function(e,t){if(Array.isArray(e)&&e.length>0){var r=kt(e[0],t);return null===r?null:!r}return null}(n,t);default:return function(e,t){var r=!1;if(Array.isArray(e)){for(var n=0;n<e.length;n++){var i=kt(e[n],t);if(!0===i)return!0;null===i&&(r=!0)}return!!r&&null}return null}(n,t)}}return t(e)}var Et,It=function(){function e(t,r,n){var i,o;_class_call_check(this,e),this.sdkKey=null!==(i=t.sdkKey)&&void 0!==i?i:"",this.environmentKey=null!==(o=t.environmentKey)&&void 0!==o?o:"",this.attributes=t.attributes,this.audiences=e.getAudiences(t),this.events=t.events,this.revision=t.revision;var a=(t.featureFlags||[]).reduce(function(e,t){return e[t.id]=t.variables,e},{}),s=e.getVariableIdMap(t),u=e.getExperimentsMap(t,a,s,n),l=u.experimentsMapById,c=u.experimentsMapByKey;this.experimentsMap=c,this.featuresMap=e.getFeaturesMap(t,a,l,s),this.datafile=r}return _create_class(e,[{key:"getDatafile",value:function(){return this.datafile}}],[{key:"getAudiences",value:function(e){var t=[],r=[];return(e.typedAudiences||[]).forEach(function(e){t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name}),r.push(e.id)}),(e.audiences||[]).forEach(function(e){-1===r.indexOf(e.id)&&"$opt_dummy_audience"!=e.id&&t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name})}),t}},{key:"getSerializedAudiences",value:function(t,r){var n="";if(t){var i="";t.forEach(function(t){var o="";if(_instanceof(t,Array))o=e.getSerializedAudiences(t,r),o="(".concat(o,")");else if(bt.indexOf(t)>-1)i=t.toUpperCase();else{var a=r[t]?r[t].name:t;n||"NOT"===i?(i=""===i?"OR":i,n=""===n?"".concat(i,' "').concat(r[t].name,'"'):n.concat(" ".concat(i,' "').concat(a,'"'))):n='"'.concat(a,'"')}""!==o&&(""!==n||"NOT"===i?(i=""===i?"OR":i,n=""===n?"".concat(i," ").concat(o):n.concat(" ".concat(i," ").concat(o))):n=n.concat(o))})}return n}},{key:"getExperimentAudiences",value:function(t,r){return t.audienceConditions?e.getSerializedAudiences(t.audienceConditions,r.audiencesById):""}},{key:"mergeFeatureVariables",value:function(e,t,r,n,i){var o=(e[r]||[]).reduce(function(e,t){return e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e},{});return(n||[]).forEach(function(e){var r=t[e.id],n={id:e.id,key:r.key,type:r.type,value:i?e.value:r.defaultValue};o[r.key]=n}),o}},{key:"getVariationsMap",value:function(t,r,n,i){return t.reduce(function(t,o){var a=e.mergeFeatureVariables(r,n,i,o.variables,o.featureEnabled);return t[o.key]={id:o.id,key:o.key,featureEnabled:o.featureEnabled,variablesMap:a},t},{})}},{key:"getVariableIdMap",value:function(e){return(e.featureFlags||[]).reduce(function(e,t){return t.variables.forEach(function(t){e[t.id]=t}),e},{})}},{key:"getDeliveryRules",value:function(t,r,n,i,o){return i.map(function(i){return{id:i.id,key:i.key,audiences:e.getExperimentAudiences(i,t),variationsMap:e.getVariationsMap(i.variations,r,o,n)}})}},{key:"getRolloutExperimentIds",value:function(e){var t=[];return(e||[]).forEach(function(e){e.experiments.forEach(function(e){t.push(e.id)})}),t}},{key:"getExperimentsMap",value:function(t,r,n,i){var o=this.getRolloutExperimentIds(t.rollouts),a={},s={};return(t.experiments||[]).forEach(function(u){if(-1===o.indexOf(u.id)){var l=t.experimentFeatureMap[u.id],c="";l&&l.length>0&&(c=l[0]);var f=e.getVariationsMap(u.variations,r,n,c.toString()),d={id:u.id,key:u.key,audiences:e.getExperimentAudiences(u,t),variationsMap:f};a[u.id]=d,s[u.key]&&i&&i.warn("Duplicate experiment keys found in datafile: ".concat(u.key)),s[u.key]=d}}),{experimentsMapById:a,experimentsMapByKey:s}}},{key:"getExperimentsKeyMap",value:function(e){var t={};for(var r in e){var n=e[r];t[n.key]=n}return t}},{key:"getFeaturesMap",value:function(t,r,n,i){var o={};return t.featureFlags.forEach(function(a){var s={},u=[];a.experimentIds.forEach(function(e){var t=n[e];t&&(s[t.key]=t),u.push(n[e])});var l=(a.variables||[]).reduce(function(e,t){return e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e},{}),c=[],f=t.rolloutIdMap[a.rolloutId];f&&(c=e.getDeliveryRules(t,r,a.id,f.experiments,i)),o[a.key]={id:a.id,key:a.key,experimentRules:u,deliveryRules:c,experimentsMap:s,variablesMap:l}}),o}}]),e}(),St=["2","3","4"],wt=function(){function e(t,r,n,i){_class_call_check(this,e),this.apiKey=t,this.apiHost=r,this.pixelUrl=n,this.segmentsToCheck=i}return _create_class(e,[{key:"equals",value:function(e){return this.apiHost===e.apiHost&&this.apiKey===e.apiKey&&this.pixelUrl===e.pixelUrl&&E(this.segmentsToCheck,e.segmentsToCheck)}}]),e}(),Ot="Running",xt="$opt_",Pt=function(e){var t,r,n,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=(t=e,(i=Object.assign({},t)).audiences=(t.audiences||[]).map(function(e){return Object.assign({},e)}),i.experiments=(t.experiments||[]).map(function(e){return Object.assign({},e)}),i.featureFlags=(t.featureFlags||[]).map(function(e){return Object.assign({},e)}),i.groups=(t.groups||[]).map(function(e){var t=Object.assign({},e);return t.experiments=(e.experiments||[]).map(function(e){return Object.assign({},e)}),t}),i.rollouts=(t.rollouts||[]).map(function(e){var t=Object.assign({},e);return t.experiments=(e.experiments||[]).map(function(e){return Object.assign({},e)}),t}),i.environmentKey=null!==(r=t.environmentKey)&&void 0!==r?r:"",i.sdkKey=null!==(n=t.sdkKey)&&void 0!==n?n:"",i);a.region||(a.region="US"),a.__datafileStr=null===o?JSON.stringify(e):o,(a.audiences||[]).forEach(function(e){e.conditions=JSON.parse(e.conditions)}),a.audiencesById={},y(a.audiences,"id",a.audiencesById),y(a.typedAudiences,"id",a.audiencesById),a.attributes=a.attributes||[],a.attributeKeyMap={},a.attributeIdMap={},a.attributes.forEach(function(e){a.attributeKeyMap[e.key]=e,a.attributeIdMap[e.id]=e}),a.eventKeyMap=g(a.events,"key"),a.groupIdMap=g(a.groups,"id"),Object.keys(a.groupIdMap||{}).forEach(function(e){(a.groupIdMap[e].experiments||[]).forEach(function(t){t.groupId=e,a.experiments.push(t)})}),a.rolloutIdMap=g(a.rollouts||[],"id"),m(a.rolloutIdMap||{}).forEach(function(e){(e.experiments||[]).forEach(function(e){e.isRollout=!0,a.experiments.push(e),e.variationKeyMap=g(e.variations,"key")})});var s=new Set;Object.keys(a.audiencesById).map(function(e){return Rt(a.audiencesById[e])}).forEach(function(e){e.forEach(function(e){s.add(e)})});var u=Array.from(s),l=!1,c="",f="",d="";return a.integrations&&(a.integrationKeyMap=g(a.integrations,"key"),a.integrations.forEach(function(e){if(!("key"in e))throw new qe("29");"odp"===e.key&&(l=!0,f=f||e.publicKey||"",c=c||e.host||"",d=d||e.pixelUrl||"")})),a.odpIntegrationConfig=l?{integrated:!0,odpConfig:new wt(f,c,d,u)}:{integrated:!1},a.experimentKeyMap=g(a.experiments,"key"),a.experimentIdMap=g(a.experiments,"id"),a.variationIdMap={},a.variationVariableUsageMap={},(a.experiments||[]).forEach(function(e){e.variationKeyMap=g(e.variations,"key"),y(e.variations,"id",a.variationIdMap),m(e.variationKeyMap||{}).forEach(function(e){e.variables&&(a.variationVariableUsageMap[e.id]=g(e.variables,"id"))})}),a.experimentFeatureMap={},a.featureKeyMap=g(a.featureFlags||[],"key"),m(a.featureKeyMap||{}).forEach(function(e){e.variables.forEach(function(e){e.type===Ne&&e.subType===Ue&&(e.type=Ue,delete e.subType)}),e.variableKeyMap=g(e.variables,"key"),(e.experimentIds||[]).forEach(function(t){a.experimentFeatureMap[t]?a.experimentFeatureMap[t].push(e.id):a.experimentFeatureMap[t]=[e.id]})}),a.flagRulesMap={},(a.featureFlags||[]).forEach(function(e){var t,r=[];e.experimentIds.forEach(function(e){var t=a.experimentIdMap[e];t&&r.push(t)});var n=a.rolloutIdMap[e.rolloutId];n&&(t=r).push.apply(t,_to_consumable_array(n.experiments)),a.flagRulesMap[e.key]=r}),a.flagVariationsMap={},_(a.flagRulesMap||{}).forEach(function(e){var t=_sliced_to_array(e,2),r=t[0],n=t[1],i=[];n.forEach(function(e){e.variations.forEach(function(e){b(i,function(t){return t.id===e.id})||i.push(e)})}),a.flagVariationsMap[r]=i}),Mt(a),a},Mt=function(e){e.holdouts=e.holdouts||[],e.holdoutIdMap=g(e.holdouts,"id"),e.globalHoldouts=[],e.includedHoldouts={},e.excludedHoldouts={},e.flagHoldoutsMap={};var t=g(e.featureFlags,"id");e.holdouts.forEach(function(r){r.includedFlags||(r.includedFlags=[]),r.excludedFlags||(r.excludedFlags=[]),r.variationKeyMap=g(r.variations,"key"),y(r.variations,"id",e.variationIdMap),0===r.includedFlags.length?(e.globalHoldouts.push(r),r.excludedFlags.forEach(function(n){var i=t[n];if(i){var o=i.key;e.excludedHoldouts[o]||(e.excludedHoldouts[o]=[]),e.excludedHoldouts[o].push(r)}})):r.includedFlags.forEach(function(n){var i=t[n];if(i){var o=i.key;e.includedHoldouts[o]||(e.includedHoldouts[o]=[]),e.includedHoldouts[o].push(r)}})})},Rt=function(e){return e.conditions?At(e.conditions):[]},At=function(e){var t,r=[];return["and","or","not"].includes(e)?[]:(Array.isArray(e)?e.forEach(function(e){return(t=r).push.apply(t,_to_consumable_array(At(e)))}):"qualified"===e.match&&r.push(e.value),r)},Ct=function(e,t){var r=e.experimentKeyMap[t];if(!r)throw new qe("22",t);return r.status},jt=function(e,t){if(e.experimentKeyMap.hasOwnProperty(t)){var r=e.experimentKeyMap[t];if(r)return r}throw new qe("9",t)},Dt=function(e,t,r){return e&&b(e.flagVariationsMap[t],function(e){return e.key===r})||null},Tt=function(e,t,r){if(e.featureKeyMap.hasOwnProperty(t)){var n=e.featureKeyMap[t];if(n)return n}return null==r||r.error($e,t),null},Ft=function(e){return!!e.sendFlagDecisions},Nt=function(){},Ut="%s failed to start, reason: %s",Vt="%s stopped before running";!function(e){e[e.New=0]="New",e[e.Starting=1]="Starting",e[e.Running=2]="Running",e[e.Stopping=3]="Stopping",e[e.Terminated=4]="Terminated",e[e.Failed=5]="Failed"}(Et||(Et={}));var Kt,Lt,qt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_class_call_check(this,e),this.disposable=!1,this.state=Et.New,this.startPromise=I(),this.stopPromise=I(),this.startupLogs=t,this.startPromise.promise.catch(function(){}),this.stopPromise.promise.catch(function(){})}return _create_class(e,[{key:"makeDisposable",value:function(){this.disposable=!0}},{key:"setLogger",value:function(e){this.logger=e}},{key:"printStartupLogs",value:function(){var e=!0,t=!1,r=void 0;if(this.logger)try{for(var n,i=this.startupLogs[Symbol.iterator]();!(e=(n=i.next()).done);e=!0){var o,a=n.value,s=a.level,u=a.message,l=a.params,c=He[s];(o=this.logger[c]).call.apply(o,[this.logger,u].concat(_to_consumable_array(l)))}}catch(e){t=!0,r=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw r}}}},{key:"onRunning",value:function(){return this.startPromise.promise}},{key:"onTerminated",value:function(){return this.stopPromise.promise}},{key:"getState",value:function(){return this.state}},{key:"isStarting",value:function(){return this.state===Et.Starting}},{key:"isRunning",value:function(){return this.state===Et.Running}},{key:"isNew",value:function(){return this.state===Et.New}},{key:"isDone",value:function(){return[Et.Stopping,Et.Terminated,Et.Failed].includes(this.state)}},{key:"start",value:function(){this.printStartupLogs()}}]),e}(),Bt=function(){function e(){_class_call_check(this,e),this.id=0,this.listeners={}}return _create_class(e,[{key:"on",value:function(e,t){var r,n=this;this.listeners[e]||(this.listeners[e]=new Map);var i=this.id++;return null===(r=this.listeners[e])||void 0===r||r.set(i,t),function(){var t;null===(t=n.listeners[e])||void 0===t||t.delete(i)}}},{key:"emit",value:function(e,t){var r=this.listeners[e];r&&r.forEach(function(e){e(t)})}},{key:"removeListeners",value:function(e){var t;null===(t=this.listeners[e])||void 0===t||t.clear()}},{key:"removeAllListeners",value:function(){this.listeners={}}}]),e}(),zt=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t)).eventEmitter=new Bt,r.jsonSchemaValidator=e.jsonSchemaValidator,r.datafile=e.datafile,r.datafileManager=e.datafileManager,e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){var t;this.logger=e,this.logger.setName("ProjectConfigManager"),null===(t=this.datafileManager)||void 0===t||t.setLogger(e.child())}},{key:"start",value:function(){var e,t,r,n=this;this.isNew()&&(this.state=Et.Starting,this.datafile||this.datafileManager?(this.datafile&&this.handleNewDatafile(this.datafile,!0),null===(e=this.datafileManager)||void 0===e||e.start(),null===(t=this.datafileManager)||void 0===t||t.onUpdate(this.handleNewDatafile.bind(this)),null===(r=this.datafileManager)||void 0===r||r.onRunning().catch(function(e){n.handleDatafileManagerError(e)})):this.handleInitError(new Error("sdkKey or datafile must be provided")))}},{key:"makeDisposable",value:function(){var e;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),null===(e=this.datafileManager)||void 0===e||e.makeDisposable()}},{key:"handleInitError",value:function(e){var t,r;null===(t=this.logger)||void 0===t||t.error(e),this.state=Et.Failed,null===(r=this.datafileManager)||void 0===r||r.stop(),this.startPromise.reject(e),this.stopPromise.reject(e)}},{key:"handleDatafileManagerError",value:function(e){var t;null===(t=this.logger)||void 0===t||t.error(Ut,"DatafileManager",e.message),this.isStarting()&&this.handleInitError(new Error(k(Ut,"DatafileManager",e.message)))}},{key:"handleNewDatafile",value:function(e){var t,r,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.isDone())try{var i=function(e){var t,r,n=function(e){if(!e)throw new qe("32");if("string"==typeof e)try{e=JSON.parse(e)}catch(e){throw new qe("18")}if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new qe("18");if(-1===St.indexOf(e.version))throw new qe("19",e.version);return e}(e.datafile);e.jsonSchemaValidator?(e.jsonSchemaValidator(n),null===(t=e.logger)||void 0===t||t.info("38")):null===(r=e.logger)||void 0===r||r.info("28");var i=[n];return"string"==typeof e.datafile&&i.push(e.datafile),Pt.apply(void 0,_to_consumable_array(i))}({datafile:e,jsonSchemaValidator:this.jsonSchemaValidator,logger:this.logger});this.isStarting()&&(this.state=Et.Running,this.startPromise.resolve()),(null===(t=this.projectConfig)||void 0===t?void 0:t.revision)!==i.revision&&(this.projectConfig=i,this.optimizelyConfig=void 0,this.eventEmitter.emit("update",i))}catch(e){null===(r=this.logger)||void 0===r||r.error(e),(this.isStarting()&&!this.datafileManager||this.isStarting()&&!n)&&this.handleInitError(new Error("got invalid datafile"))}}},{key:"getConfig",value:function(){return this.projectConfig}},{key:"getOptimizelyConfig",value:function(){var e,t,r;return!this.optimizelyConfig&&this.projectConfig&&(this.optimizelyConfig=(e=this.projectConfig,t=this.projectConfig.__datafileStr,r=this.logger,new It(e,t,r))),this.optimizelyConfig}},{key:"onUpdate",value:function(e){return this.eventEmitter.on("update",e)}},{key:"stop",value:function(){var e=this;if(!this.isDone()){if((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(k(Vt,"ProjectConfigManager"))),this.state=Et.Stopping,this.eventEmitter.removeAllListeners(),!this.datafileManager)return this.state=Et.Terminated,void this.stopPromise.resolve();this.datafileManager.stop(),this.datafileManager.onTerminated().then(function(){e.state=Et.Terminated,e.stopPromise.resolve()}).catch(function(t){e.state=Et.Failed,e.stopPromise.reject(t)})}}}]),t}(qt),Ht=function(e){return e>=200&&e<400},Jt=function(e){function t(e){var r;_class_call_check(this,t),r=_call_super(this,t,[e.startupLogs]);var n=e.autoUpdate,i=void 0!==n&&n,o=e.sdkKey,a=e.datafileAccessToken,s=e.customHeaders,u=e.urlTemplate,l=e.cache,c=e.initRetry,f=e.repeater,d=e.requestHandler,v=e.logger;r.cache=l,r.cacheKey="opt-datafile-"+o,r.sdkKey=o,r.datafileAccessToken=a,r.customHeaders=s,r.requestHandler=d,r.emitter=new Bt,r.autoUpdate=i,r.initRetryRemaining=c,r.repeater=f,v&&r.setLogger(v);var h=u||(a?"https://config.optimizely.com/datafiles/auth/%s.json":"https://cdn.optimizely.com/datafiles/%s.json");return r.datafileUrl=k(h,r.sdkKey),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("PollingDatafileManager")}},{key:"onUpdate",value:function(e){return this.emitter.on("update",e)}},{key:"get",value:function(){return this.currentDatafile}},{key:"start",value:function(){this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=Et.Starting,this.setDatafileFromCacheIfAvailable(),this.repeater.setTask(this.syncDatafile.bind(this)),this.repeater.start(!0))}},{key:"makeDisposable",value:function(){var e;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.initRetryRemaining=Math.min(null!==(e=this.initRetryRemaining)&&void 0!==e?e:5,5)}},{key:"stop",value:function(){var e;this.isDone()||((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(k(Vt,"PollingDatafileManager"))),this.state=Et.Terminated,this.repeater.stop(),null===(e=this.currentRequest)||void 0===e||e.abort(),this.emitter.removeAllListeners(),this.stopPromise.resolve())}},{key:"handleInitFailure",value:function(){this.state=Et.Failed,this.repeater.stop();var e=new Error("Failed to fetch datafile");this.startPromise.reject(e),this.stopPromise.reject(e)}},{key:"handleError",value:function(e){var t,r;this.isDone()||(_instanceof(e,Error)?null===(t=this.logger)||void 0===t||t.error("4",e.message,e):null===(r=this.logger)||void 0===r||r.error("3",e),this.isStarting()&&void 0!==this.initRetryRemaining&&(0===this.initRetryRemaining?this.handleInitFailure():this.initRetryRemaining--))}},{key:"onRequestRejected",value:function(e){return S(this,void 0,void 0,function(){return _ts_generator(this,function(t){return[2,(this.handleError(e),Promise.reject(e))]})})}},{key:"onRequestResolved",value:function(e){return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return this.isDone()?[2]:(this.saveLastModified(e.headers),Ht(e.statusCode)?((t=this.getDatafileFromResponse(e))&&(this.handleDatafile(t),this.autoUpdate&&!this.disposable||this.repeater.stop()),[2]):[2,(this.handleError(e.statusCode),Promise.reject(new Error))])})})}},{key:"makeDatafileRequest",value:function(){var e,t,r=Object.assign({},this.customHeaders);return this.lastResponseLastModified&&(r["if-modified-since"]=this.lastResponseLastModified),this.datafileAccessToken&&(null===(e=this.logger)||void 0===e||e.debug("0"),r.Authorization="Bearer ".concat(this.datafileAccessToken)),null===(t=this.logger)||void 0===t||t.debug("17",this.datafileUrl,function(){return JSON.stringify(r)}),this.requestHandler.makeRequest(this.datafileUrl,r,"GET")}},{key:"syncDatafile",value:function(){return S(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,(this.currentRequest=this.makeDatafileRequest(),this.currentRequest.responsePromise.then(this.onRequestResolved.bind(this),this.onRequestRejected.bind(this)).finally(function(){return e.currentRequest=void 0}))]})})}},{key:"handleDatafile",value:function(e){var t;this.isDone()||(this.currentDatafile=e,null===(t=this.cache)||void 0===t||t.set(this.cacheKey,e),this.isStarting()&&(this.startPromise.resolve(),this.state=Et.Running),this.emitter.emit("update",e))}},{key:"getDatafileFromResponse",value:function(e){var t;if(null===(t=this.logger)||void 0===t||t.debug("23",e.statusCode),304!==e.statusCode)return e.body}},{key:"saveLastModified",value:function(e){var t,r=e["last-modified"]||e["Last-Modified"];void 0!==r&&(this.lastResponseLastModified=r,null===(t=this.logger)||void 0===t||t.debug("24",this.lastResponseLastModified))}},{key:"setDatafileFromCacheIfAvailable",value:function(){return S(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){switch(t.label){case 0:if(!this.cache)return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.cache.get(this.cacheKey)];case 2:return(e=t.sent())&&this.isStarting()&&this.handleDatafile(e),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})}}]),t}(qt),Gt=function(){function e(t,r,n){_class_call_check(this,e),this.base=t,this.max=r,this.maxJitter=n,this.maxJitter>this.base/2&&(this.maxJitter=this.base/2),this.maxJitter=n,this.current=t}return _create_class(e,[{key:"backoff",value:function(){var e=this.current+this.maxJitter*Math.random();return this.current=Math.min(2*this.current,this.max),e}},{key:"reset",value:function(){this.current=this.base}}]),e}(),Wt=function(){function e(t){_class_call_check(this,e),this.value=t}return _create_class(e,[{key:"backoff",value:function(){return this.value}},{key:"reset",value:function(){}}]),e}(),Qt=function(){function e(t,r){_class_call_check(this,e),this.failureCount=0,this.running=!1,this.interval=t,this.backoffController=r}return _create_class(e,[{key:"isRunning",value:function(){return this.running}},{key:"handleSuccess",value:function(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.setTimer(this.interval)}},{key:"handleFailure",value:function(){var e,t;this.failureCount++;var r=null!==(t=null===(e=this.backoffController)||void 0===e?void 0:e.backoff())&&void 0!==t?t:this.interval;this.setTimer(r)}},{key:"setTimer",value:function(e){this.running&&(this.timeoutId=setTimeout(this.executeTask.bind(this),e))}},{key:"executeTask",value:function(){this.task&&this.task(this.failureCount).then(this.handleSuccess.bind(this),this.handleFailure.bind(this))}},{key:"start",value:function(e){var t;this.running=!0,e?(t=this.executeTask.bind(this),"function"==typeof queueMicrotask?queueMicrotask(t):Promise.resolve().then(t)):this.setTimer(this.interval)}},{key:"stop",value:function(){this.running=!1,clearInterval(this.timeoutId)}},{key:"reset",value:function(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.stop()}},{key:"setTask",value:function(e){this.task=e}}]),e}(),$t=function(e){var t=[];if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error("Invalid store");for(var r=0,n=["set","get","remove","getKeys"];r<n.length;r++){var i=n[r];"function"!=typeof e[i]&&t.push("Invalid store method %s".replace("%s",i))}if(t.length>0)throw new Error(t.join(", "))},Yt="Invalid config manager",Xt=Symbol(),Zt=function(e){return _define_property({},Xt,new zt(e))},er=function e(){_class_call_check(this,e),this.operation="sync"},tr=function e(){_class_call_check(this,e),this.operation="async"},rr=function(e,t){return _instanceof(e,er)?e.getBatched(t):t.map(function(t){return e.get(t)})},nr=function(e,t){return _instanceof(e,tr)?e.getBatched(t):Promise.all(t.map(function(t){return e.get(t)}))},ir=function(e){function t(e,r,n,i){var o;return _class_call_check(this,t),(o=_call_super(this,t)).operation="sync",o.store=e,o.prefix=r,o.transformGet=n,o.transformSet=i,o}return _inherits(t,e),_create_class(t,[{key:"addPrefix",value:function(e){return"".concat(this.prefix).concat(e)}},{key:"removePrefix",value:function(e){return e.substring(this.prefix.length)}},{key:"set",value:function(e,t){return this.store.set(this.addPrefix(e),this.transformSet(t))}},{key:"get",value:function(e){var t=this.store.get(this.addPrefix(e));return t?this.transformGet(t):void 0}},{key:"remove",value:function(e){return this.store.remove(this.addPrefix(e))}},{key:"getInternalKeys",value:function(){var e=this;return this.store.getKeys().filter(function(t){return t.startsWith(e.prefix)})}},{key:"getKeys",value:function(){var e=this;return this.getInternalKeys().map(function(t){return e.removePrefix(t)})}},{key:"getBatched",value:function(e){var t=this;return rr(this.store,e.map(function(e){return t.addPrefix(e)})).map(function(e){return e?t.transformGet(e):void 0})}}]),t}(er),or=function(){function e(t,r,n,i){_class_call_check(this,e),this.operation="async",this.cache=t,this.prefix=r,this.transformGet=n,this.transformSet=i}return _create_class(e,[{key:"addPrefix",value:function(e){return"".concat(this.prefix).concat(e)}},{key:"removePrefix",value:function(e){return e.substring(this.prefix.length)}},{key:"set",value:function(e,t){return this.cache.set(this.addPrefix(e),this.transformSet(t))}},{key:"get",value:function(e){return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return[4,this.cache.get(this.addPrefix(e))];case 1:return[2,(t=r.sent())?this.transformGet(t):void 0]}})})}},{key:"remove",value:function(e){return this.cache.remove(this.addPrefix(e))}},{key:"getInternalKeys",value:function(){return S(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,this.cache.getKeys().then(function(t){return t.filter(function(t){return t.startsWith(e.prefix)})})]})})}},{key:"getKeys",value:function(){return S(this,void 0,void 0,function(){var e;return _ts_generator(this,function(t){return e=this,[2,this.getInternalKeys().then(function(t){return t.map(function(t){return e.removePrefix(t)})})]})})}},{key:"getBatched",value:function(e){return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return t=this,[4,nr(this.cache,e.map(function(e){return t.addPrefix(e)}))];case 1:return[2,r.sent().map(function(e){return e?t.transformGet(e):void 0})]}})})}}]),e}(),ar="campaign_activated",sr="custom",ur={US:"https://logx.optimizely.com/v1/events",EU:"https://eu.logx.optimizely.com/v1/events"},lr=function(e,t,r,n,i){e().then(function(e){t.resolve(e)}).catch(function(o){var a;if(0!==i)if(r.cancelled)t.reject(new qe("49"));else{var s=null!==(a=null==n?void 0:n.backoff())&&void 0!==a?a:0;setTimeout(function(){lr(e,t,r,n,i=void 0===i?void 0:i-1)},s)}else t.reject(o)})},cr=function(e,t,r){var n=I(),i={cancelled:!1};return lr(e,n,i,t,r),{cancelRetry:function(){i.cancelled=!0},result:n.promise}},fr=function(){function e(){_class_call_check(this,e),this.idSuffixOffset=0}return _create_class(e,[{key:"getId",value:function(){var e=1e4+this.idSuffixOffset;return this.idSuffixOffset=(this.idSuffixOffset+1)%1e4,"".concat(Date.now()).concat(e)}}]),e}(),dr={AB_TEST:"ab-test",FEATURE:"feature",FEATURE_TEST:"feature-test",FEATURE_VARIABLE:"feature-variable",ALL_FEATURE_VARIABLES:"all-feature-variables",FLAG:"flag"},vr={ACTIVATE:"ACTIVATE",DECISION:"DECISION",LOG_EVENT:"LOG_EVENT",OPTIMIZELY_CONFIG_UPDATE:"OPTIMIZELY_CONFIG_UPDATE",TRACK:"TRACK"};!function(e){e.BOOLEAN="boolean",e.DOUBLE="double",e.INTEGER="integer",e.STRING="string",e.JSON="json"}(Kt||(Kt={})),function(e){e.DISABLE_DECISION_EVENT="DISABLE_DECISION_EVENT",e.ENABLED_FLAGS_ONLY="ENABLED_FLAGS_ONLY",e.IGNORE_USER_PROFILE_SERVICE="IGNORE_USER_PROFILE_SERVICE",e.INCLUDE_REASONS="INCLUDE_REASONS",e.EXCLUDE_VARIABLES="EXCLUDE_VARIABLES",e.IGNORE_CMAB_CACHE="IGNORE_CMAB_CACHE",e.RESET_CMAB_CACHE="RESET_CMAB_CACHE",e.INVALIDATE_USER_CMAB_CACHE="INVALIDATE_USER_CMAB_CACHE"}(Lt||(Lt={}));var hr,pr,gr=function(e,t){var r=e.context,n=t.context;return(r.region||"US")===(n.region||"US")&&r.accountId===n.accountId&&r.projectId===n.projectId&&r.clientName===n.clientName&&r.clientVersion===n.clientVersion&&r.revision===n.revision&&r.anonymizeIP===n.anonymizeIP&&r.botFiltering===n.botFiltering},yr=function(e){var t=e.configObj,r=e.userId,n=e.userAttributes,i=e.clientEngine,o=e.clientVersion;return{type:e.type,timestamp:Le.currentTimestamp(),uuid:Le.uuid(),context:{region:t.region,accountId:t.accountId,projectId:t.projectId,revision:t.revision,clientName:i,clientVersion:o,anonymizeIP:t.anonymizeIP||!1,botFiltering:t.botFiltering},user:{id:r,attributes:mr(t,n)}}},mr=function(e,t,r){if(!t)return[];var n=[];return Object.keys(t).forEach(function(i){var o,a,s,u,l=t[i];if("object"!=(void 0===l?"undefined":_type_of(l))&&void 0!==l&&function(e,t){return"string"==typeof e&&("string"==typeof t||"boolean"==typeof t||Le.isNumber(t)&&Le.isSafeInteger(t))}(i,l)){var c=(o=i,a=r,s=e.attributeKeyMap[o],u=0===o.indexOf(xt),s?(u&&(null==a||a.warn("58",o,xt)),s.id):u?o:(null==a||a.warn("62",o),null));c&&n.push({entityId:c,key:i,value:l})}}),n},_r=function(e){function t(e){var r,n;return _class_call_check(this,t),(r=_call_super(this,t,[e.startupLogs])).eventQueue=[],r.idGenerator=new fr,r.runningTask=new Map,r.dispatchingEvents=new Map,r.eventEmitter=new Bt,r.eventDispatcher=e.eventDispatcher,r.closingEventDispatcher=e.closingEventDispatcher,r.batchSize=e.batchSize,r.eventStore=e.eventStore,r.retryConfig=e.retryConfig,r.dispatchRepeater=e.dispatchRepeater,r.dispatchRepeater.setTask(function(){return r.flush()}),r.failedEventRepeater=e.failedEventRepeater,null===(n=r.failedEventRepeater)||void 0===n||n.setTask(function(){return r.retryFailedEvents()}),e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("BatchEventProcessor")}},{key:"onDispatch",value:function(e){return this.eventEmitter.on("dispatch",e)}},{key:"retryFailedEvents",value:function(){return S(this,void 0,void 0,function(){var e,t,r,n,i,o;return _ts_generator(this,function(a){switch(a.label){case 0:return e=this,this.eventStore?[4,this.eventStore.getKeys()]:[2];case 1:return t=a.sent().filter(function(t){return!e.dispatchingEvents.has(t)&&!e.eventQueue.find(function(e){return e.id===t})}),[4,"sync"===this.eventStore.operation?rr(this.eventStore,t):nr(this.eventStore,t)];case 2:return r=a.sent(),n=[],r.forEach(function(e){e&&n.push(e)}),0==n.length?[2]:(n.sort(function(e,t){return e.id<t.id?-1:1}),i=[],o=[],n.forEach(function(t){(o.length===e.batchSize||o.length>0&&!gr(o[0].event,t.event))&&(i.push({request:O(o.map(function(e){return e.event})),events:o}),o=[]),o.push(t)}),o.length>0&&i.push({request:O(o.map(function(e){return e.event})),events:o}),i.forEach(function(t){e.dispatchBatch(t,!1)}),[2])}})})}},{key:"createNewBatch",value:function(){if(0!=this.eventQueue.length){var e=[],t=[];return this.eventQueue.forEach(function(r){e.push(r.event),t.push(r)}),this.eventQueue=[],{request:O(e),events:t}}}},{key:"executeDispatch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return S(this,void 0,void 0,function(){return _ts_generator(this,function(r){return[2,(t&&this.closingEventDispatcher?this.closingEventDispatcher:this.eventDispatcher).dispatchEvent(e).then(function(e){return e.statusCode&&!Ht(e.statusCode)?Promise.reject(new qe("10",e.statusCode)):Promise.resolve(e)})]})})}},{key:"dispatchBatch",value:function(e,t){var r=this,n=e.request,i=e.events;i.forEach(function(e){r.dispatchingEvents.set(e.id,e)});var o=this.retryConfig?cr(function(){return r.executeDispatch(n,t)},this.retryConfig.backoffProvider(),this.retryConfig.maxRetries):{result:this.executeDispatch(n,t),cancelRetry:function(){}};this.eventEmitter.emit("dispatch",n);var a=this.idGenerator.getId();this.runningTask.set(a,o),o.result.then(function(e){return i.forEach(function(e){var t;null===(t=r.eventStore)||void 0===t||t.remove(e.id)}),Promise.resolve()}).catch(function(e){var t;null===(t=r.logger)||void 0===t||t.error(e)}).finally(function(){r.runningTask.delete(a),i.forEach(function(e){return r.dispatchingEvents.delete(e.id)})})}},{key:"flush",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return(t=this.createNewBatch())&&(this.dispatchRepeater.reset(),this.dispatchBatch(t,e)),[2]})})}},{key:"process",value:function(e){var t;return S(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return r=this,this.isRunning()?(n={id:this.idGenerator.getId(),event:e},[4,Promise.resolve(null===(t=this.eventStore)||void 0===t?void 0:t.set(n.id,n)).catch(function(e){var t;null===(t=r.logger)||void 0===t||t.error(e)})]):[2,Promise.reject(new qe("51","BatchEventProcessor"))];case 1:return i.sent(),this.eventQueue.length>0&&!gr(this.eventQueue[0].event,e)&&this.flush(),this.eventQueue.push(n),this.eventQueue.length==this.batchSize?this.flush():this.dispatchRepeater.isRunning()||this.dispatchRepeater.start(),[2]}})})}},{key:"start",value:function(){var e;this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=Et.Running,this.disposable||null===(e=this.failedEventRepeater)||void 0===e||e.start(),this.retryFailedEvents(),this.startPromise.resolve())}},{key:"makeDisposable",value:function(){var e,r,n;_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.batchSize=1,this.retryConfig={maxRetries:Math.min(null!==(r=null===(e=this.retryConfig)||void 0===e?void 0:e.maxRetries)&&void 0!==r?r:5,5),backoffProvider:(null===(n=this.retryConfig)||void 0===n?void 0:n.backoffProvider)||function(){return new Gt(200,1e3,500)}}}},{key:"flushImmediately",value:function(){return this.isRunning()?this.flush(!0):Promise.resolve()}},{key:"stop",value:function(){var e,t=this;this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(k(Vt,"BatchEventProcessor"))),this.state=Et.Stopping,this.dispatchRepeater.stop(),null===(e=this.failedEventRepeater)||void 0===e||e.stop(),this.flush(!0),this.runningTask.forEach(function(e){return e.cancelRetry()}),Promise.allSettled(Array.from(this.runningTask.values()).map(function(e){return e.result})).then(function(){t.state=Et.Terminated,t.stopPromise.resolve()}))}}]),t}(qt),br=function(){function e(){_class_call_check(this,e),this.waitPromise=Promise.resolve()}return _create_class(e,[{key:"run",value:function(e){var t=this.waitPromise.then(e);return this.waitPromise=t.catch(function(){}),t}}]),e}(),kr="optly_event:",Er=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t)).dispatcher=e,r.eventEmitter=new Bt,r}return _inherits(t,e),_create_class(t,[{key:"process",value:function(e){var t=O([e]),r=this.dispatcher.dispatchEvent(t);return this.eventEmitter.emit("dispatch",t),r}},{key:"start",value:function(){this.isNew()&&(this.state=Et.Running,this.startPromise.resolve())}},{key:"stop",value:function(){this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(k(Vt,"ForwardingEventProcessor"))),this.state=Et.Terminated,this.stopPromise.resolve())}},{key:"onDispatch",value:function(e){return this.eventEmitter.on("dispatch",e)}},{key:"flushImmediately",value:function(){return Promise.resolve()}}]),t}(qt),Ir=Symbol(),Sr=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e))||"function"!=typeof e.dispatchEvent)throw new Error("Invalid event dispatcher")},wr=function(e){return _define_property({},Ir,e)},Or=function(){function e(t,r){_class_call_check(this,e),this.operation="sync",this.data=new Map,this.maxSize=t,this.ttl=r}return _create_class(e,[{key:"lookup",value:function(e){var t=this.data.get(e);if(t&&(this.data.delete(e),!(t.expiresAt&&t.expiresAt<=Date.now())))return this.data.set(e,t),t.value}},{key:"save",value:function(e,t){if(this.data.delete(e),this.data.size===this.maxSize){var r=this.data.keys().next().value;this.data.delete(r)}this.data.set(e,{value:t,expiresAt:this.ttl?Date.now()+this.ttl:void 0})}},{key:"remove",value:function(e){this.data.delete(e)}},{key:"reset",value:function(){this.data.clear()}},{key:"getKeys",value:function(){return Array.from(this.data.keys())}}]),e}(),xr=function(){function e(t,r,n){_class_call_check(this,e),this.requestHandler=t,this.requestGenerator=r,n&&this.setLogger(n)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpEventApiManager")}},{key:"sendEvents",value:function(e,t){return S(this,void 0,void 0,function(){var r,n,i,o,a;return _ts_generator(this,function(s){return 0===t.length?[2,{}]:(r=this.requestGenerator(e,t),n=r.method,i=r.endpoint,o=r.headers,a=r.data,[2,this.requestHandler.makeRequest(i,o,n,a).responsePromise])})})}}]),e}(),Pr=function(e,t){var r=e.apiHost,n=e.apiKey;return{method:"POST",endpoint:"".concat(r,"/v3/events"),headers:{"Content-Type":"application/json","x-api-key":n},data:JSON.stringify(t,function(e,t){return _instanceof(t,Map)?Object.fromEntries(t):t})}};!function(e){e.VUID="vuid",e.FS_USER_ID="fs_user_id",e.FS_USER_ID_ALIAS="fs-user-id"}(hr||(hr={})),function(e){e.IDENTIFIED="identified",e.INITIALIZED="client_initialized"}(pr||(pr={}));var Mr,Rr="fullstack",Ar=function(e){function t(e){var r;return _class_call_check(this,t),(r=_call_super(this,t,[e.startUpLogs])).queue=[],r.apiManager=e.apiManager,r.batchSize=e.batchSize,r.retryConfig=e.retryConfig,r.repeater=e.repeater,r.repeater.setTask(function(){return r.flush()}),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpEventManager"),this.apiManager.setLogger(e.child())}},{key:"executeDispatch",value:function(e,t){return S(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,this.apiManager.sendEvents(e,t)];case 1:return!(r=i.sent()).statusCode||Ht(r.statusCode)?[3,2]:(n=Promise.reject(new qe("10",r.statusCode)),[3,4]);case 2:return[4,Promise.resolve(r)];case 3:n=i.sent(),i.label=4;case 4:return[2,n]}})})}},{key:"flush",value:function(){return S(this,void 0,void 0,function(){var e,t,r;return _ts_generator(this,function(n){return e=this,this.odpIntegrationConfig&&this.odpIntegrationConfig.integrated?(t=this.odpIntegrationConfig.odpConfig,r=this.queue,[2,(this.queue=[],this.repeater.reset(),cr(function(){return e.executeDispatch(t,r)},this.retryConfig.backoffProvider(),this.retryConfig.maxRetries).result.catch(function(t){var r;null===(r=e.logger)||void 0===r||r.error("11",t)}))]):[2]})})}},{key:"start",value:function(){this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.odpIntegrationConfig?this.goToRunningState():this.state=Et.Starting)}},{key:"makeDisposable",value:function(){_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.retryConfig.maxRetries=Math.min(this.retryConfig.maxRetries,5),this.batchSize=1}},{key:"updateConfig",value:function(e){if(!this.isDone())if(this.isNew())this.odpIntegrationConfig=e;else{if(this.isStarting())return this.odpIntegrationConfig=e,void this.goToRunningState();this.flush(),this.odpIntegrationConfig=e}}},{key:"goToRunningState",value:function(){this.state=Et.Running,this.startPromise.resolve()}},{key:"flushImmediately",value:function(){return this.isRunning()?this.flush():Promise.resolve()}},{key:"stop",value:function(){this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(k(Vt,"OdpEventManager"))),this.flush(),this.state=Et.Terminated,this.stopPromise.resolve())}},{key:"sendEvent",value:function(e){var t,r,n,i,o,a;this.isRunning()?(null===(r=this.odpIntegrationConfig)||void 0===r?void 0:r.integrated)?0!==e.identifiers.size?this.isDataValid(e.data)?e.action?(""===e.type&&(e.type=Rr),Array.from(e.identifiers.entries()).forEach(function(t){var r=_sliced_to_array(t,2),n=r[0],i=r[1];hr.FS_USER_ID_ALIAS!==n.toLowerCase()&&hr.FS_USER_ID!==n.toLowerCase()||(e.identifiers.delete(n),e.identifiers.set(hr.FS_USER_ID,i))}),this.processEvent(e)):null===(a=this.logger)||void 0===a||a.error("5"):null===(o=this.logger)||void 0===o||o.error("6"):null===(i=this.logger)||void 0===i||i.error("39"):null===(n=this.logger)||void 0===n||n.error("43"):null===(t=this.logger)||void 0===t||t.error("51","OdpEventManager")}},{key:"isDataValid",value:function(e){var t=["string","number","boolean"];return Array.from(e.values()).reduce(function(e,r){return e&&(null===r||t.includes(void 0===r?"undefined":_type_of(r)))},!0)}},{key:"processEvent",value:function(e){this.queue.push(e),this.queue.length===this.batchSize?this.flush():this.repeater.isRunning()||this.repeater.start()}}]),t}(qt),Cr=function e(t,r,n,i){_class_call_check(this,e),this.type=t,this.action=r,this.identifiers=null!=n?n:new Map,this.data=null!=i?i:new Map},jr=function(e){return e.startsWith("vuid_")&&e.length>5},Dr=function(e){function t(e){var r;if(_class_call_check(this,t),(r=_call_super(this,t)).clientEngine=Me,r.clientVersion=Ae,r.segmentManager=e.segmentManager,r.eventManager=e.eventManager,r.configPromise=I(),e.userAgentParser){var n=e.userAgentParser.parseUserAgentInfo(),i=n.os,o=n.device,a={os:i.name,os_version:i.version,device_type:o.type,model:o.model};r.userAgentData=new Map(Object.entries(a).filter(function(e){var t=_sliced_to_array(e,2),r=(t[0],t[1]);return null!=r&&null!=r}))}return e.logger&&r.setLogger(e.logger),r}return _inherits(t,e),_create_class(t,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpManager"),this.eventManager.setLogger(e.child()),this.segmentManager.setLogger(e.child())}},{key:"setClientInfo",value:function(e,t){this.clientEngine=e,this.clientVersion=t}},{key:"start",value:function(){var e=this;if(this.isNew()){this.state=Et.Starting,this.eventManager.start();var t=[this.configPromise,this.eventManager.onRunning()];Promise.all(t).then(function(){e.handleStartSuccess()}).catch(function(t){e.handleStartFailure(t)})}}},{key:"makeDisposable",value:function(){_get(_get_prototype_of(t.prototype),"makeDisposable",this).call(this),this.eventManager.makeDisposable()}},{key:"handleStartSuccess",value:function(){this.isDone()||(this.state=Et.Running,this.startPromise.resolve())}},{key:"handleStartFailure",value:function(e){this.isDone()||(this.state=Et.Failed,this.startPromise.reject(e),this.stopPromise.reject(e))}},{key:"flushImmediately",value:function(){return this.isRunning()?this.eventManager.flushImmediately():Promise.resolve()}},{key:"stop",value:function(){var e=this;this.isDone()||(this.isRunning()||this.startPromise.reject(new Error(k(Vt,"OdpManager"))),this.state=Et.Stopping,this.eventManager.stop(),this.eventManager.onTerminated().then(function(){e.state=Et.Terminated,e.stopPromise.resolve()}).catch(function(t){e.state=Et.Failed,e.stopPromise.reject(t)}))}},{key:"updateConfig",value:function(e){return!(this.odpIntegrationConfig&&(t=this.odpIntegrationConfig,r=e,!(t.integrated!==r.integrated||t.integrated&&r.integrated&&!t.odpConfig.equals(r.odpConfig)))||this.isDone()||(this.odpIntegrationConfig=e,this.configPromise.resolve(),this.segmentManager.updateConfig(e),this.eventManager.updateConfig(e),0));var t,r}},{key:"fetchQualifiedSegments",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return S(this,void 0,void 0,function(){return _ts_generator(this,function(r){return[2,jr(e)?this.segmentManager.fetchQualifiedSegments(hr.VUID,e,t):this.segmentManager.fetchQualifiedSegments(hr.FS_USER_ID,e,t)]})})}},{key:"identifyUser",value:function(e,t){var r=new Map,n=e,i=t;!t&&jr(e)&&(i=e,n=void 0),i&&r.set(hr.VUID,i),n&&r.set(hr.FS_USER_ID,n);var o=new Cr(Rr,pr.IDENTIFIED,r);this.sendEvent(o)}},{key:"sendEvent",value:function(e){!e.identifiers.has(hr.VUID)&&this.vuid&&e.identifiers.set(hr.VUID,this.vuid),e.data=this.augmentCommonData(e.data),this.eventManager.sendEvent(e)}},{key:"augmentCommonData",value:function(e){var t=new Map(this.userAgentData);return t.set("idempotence_id",be()),t.set("data_source_type","sdk"),t.set("data_source",this.clientEngine),t.set("data_source_version",this.clientVersion),e.forEach(function(e,r){return t.set(r,e)}),t}},{key:"setVuid",value:function(e){var t=this;this.vuid=e,this.onRunning().then(function(){var e;if(null===(e=t.odpIntegrationConfig)||void 0===e?void 0:e.integrated){var r=new Cr(Rr,pr.INITIALIZED);t.sendEvent(r)}})}}]),t}(qt),Tr={$schema:"http://json-schema.org/draft-04/schema#",title:"Project Config JSON Schema",type:"object",properties:{projectId:{type:"string",required:!0},accountId:{type:"string",required:!0},groups:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},policy:{type:"string",required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0}}},required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0},cmab:{type:"object",required:!1,properties:{attributes:{type:"array",items:{type:"string"},required:!0}}}}},required:!0},events:{type:"array",items:{type:"object",properties:{key:{type:"string",required:!0},experimentIds:{type:"array",items:{type:"string",required:!0}},id:{type:"string",required:!0}}},required:!0},audiences:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},name:{type:"string",required:!0},conditions:{type:"string",required:!0}}},required:!0},attributes:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},version:{type:"string",required:!0},revision:{type:"string",required:!0},integrations:{type:"array",items:{type:"object",properties:{key:{type:"string",required:!0},host:{type:"string"},publicKey:{type:"string"},pixelUrl:{type:"string"}}}}}},Fr={$schema:"https://json-schema.org/draft/2019-09/schema",$id:"https://example.com/example.json",title:"ODP Response Schema",type:"object",required:["data"],properties:{data:{title:"The data Schema",type:"object",required:["customer"],properties:{customer:{title:"The customer Schema",type:"object",required:[],properties:{audiences:{title:"The audiences Schema",type:"object",required:["edges"],properties:{edges:{title:"The edges Schema",type:"array",items:{title:"A Schema",type:"object",required:["node"],properties:{node:{title:"The node Schema",type:"object",required:["name","state"],properties:{name:{title:"The name Schema",type:"string",examples:["has_email","has_email_opted_in"]},state:{title:"The state Schema",type:"string",examples:["qualified"]}},examples:[]}},examples:[]},examples:[]}},examples:[]}},examples:[]}},examples:[]},errors:{title:"The errors Schema",type:"array",default:[],items:{title:"A Schema",type:"object",required:["message","locations","extensions"],properties:{message:{title:"The message Schema",type:"string",examples:["Exception while fetching data (/customer) : java.lang.RuntimeException: could not resolve _fs_user_id = asdsdaddddd"]},locations:{title:"The locations Schema",type:"array",items:{title:"A Schema",type:"object",required:["line","column"],properties:{line:{title:"The line Schema",type:"integer",examples:[2]},column:{title:"The column Schema",type:"integer",examples:[3]}},examples:[]},examples:[]},path:{title:"The path Schema",type:"array",items:{title:"A Schema",type:"string",examples:["customer"]},examples:[]},extensions:{title:"The extensions Schema",type:"object",required:["classification"],properties:{classification:{title:"The classification Schema",type:"string",examples:["InvalidIdentifierException"]}},examples:[]}},examples:[]},examples:[]}},examples:[]},Nr=[],Ur="Audience segments fetch failed",Vr=function(){function e(t,r){_class_call_check(this,e),this.toGraphQLJson=function(e,t,r){return['{"query" : "query {customer',"(".concat(e,' : \\"').concat(t,'\\") '),"{audiences","(subset: ["].concat(_to_consumable_array((null==r?void 0:r.map(function(e,t){return'\\"'.concat(e,'\\"').concat(t<r.length-1?",":"")}))||""),[']) {edges {node {name state}}}}}"}']).join("")},this.requestHandler=t,r&&this.setLogger(r)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpSegmentApiManager")}},{key:"fetchSegments",value:function(e,t,r,n,i){var o,a,s,u,l,c,f,d,v;return S(this,void 0,void 0,function(){var h,p,g,y,m,_,b,k;return _ts_generator(this,function(E){switch(E.label){case 0:return 0===(null==i?void 0:i.length)?[2,Nr]:(h="".concat(t,"/v3/graphql"),p=this.toGraphQLJson(r,n,i),[4,this.querySegments(e,h,p)]);case 1:return(g=E.sent())?(y=this.parseSegmentsResponseJson(g))?(null===(s=y.errors)||void 0===s?void 0:s.length)>0?(m=y.errors[0].extensions,_=m.code,b=m.classification,[2,("INVALID_IDENTIFIER_EXCEPTION"==_?null===(u=this.logger)||void 0===u||u.error("".concat(Ur," (invalid identifier)")):null===(l=this.logger)||void 0===l||l.error("".concat(Ur," (").concat(b,")")),null)]):[2,(k=null===(d=null===(f=null===(c=null==y?void 0:y.data)||void 0===c?void 0:c.customer)||void 0===f?void 0:f.audiences)||void 0===d?void 0:d.edges)?k.filter(function(e){return"qualified"==e.node.state}).map(function(e){return e.node.name}):(null===(v=this.logger)||void 0===v||v.error("".concat(Ur," (decode error)")),null)]:[2,(null===(a=this.logger)||void 0===a||a.error("".concat(Ur," (decode error)")),null)]:[2,(null===(o=this.logger)||void 0===o||o.error("".concat(Ur," (network error)")),null)]}})})}},{key:"querySegments",value:function(e,t,r){return S(this,void 0,void 0,function(){var n,i,o,a,s;return _ts_generator(this,function(u){switch(u.label){case 0:n=t,i={"Content-Type":"application/json","x-api-key":e},u.label=1;case 1:return u.trys.push([1,3,,4]),[4,this.requestHandler.makeRequest(n,i,"POST",r).responsePromise];case 2:return o=u.sent(),a=o.statusCode,s=o.body,[2,a>=200&&a<300?s:null];case 3:return u.sent(),[2,null];case 4:return[2]}})})}},{key:"parseSegmentsResponseJson",value:function(e){var t={};try{t=JSON.parse(e)}catch(e){return null}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Tr,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)throw new qe("34");var n=(0,ke.validate)(e,t);if(n.valid)return!0;if(!r)return!1;if(Array.isArray(n.errors))throw new qe("17",n.errors[0].property,n.errors[0].message);throw new qe("25")}(t,Fr,!1)?t:null}}]),e}();!function(e){e.IGNORE_CACHE="IGNORE_CACHE",e.RESET_CACHE="RESET_CACHE"}(Mr||(Mr={}));var Kr=function(){function e(t,r,n){_class_call_check(this,e),this.segmentsCache=t,this.odpSegmentApiManager=r,n&&this.setLogger(n)}return _create_class(e,[{key:"setLogger",value:function(e){this.logger=e,this.logger.setName("OdpSegmentManager"),this.odpSegmentApiManager.setLogger(e.child())}},{key:"fetchQualifiedSegments",value:function(e,t,r){var n,i;return S(this,void 0,void 0,function(){var o,a,s,u,l,c;return _ts_generator(this,function(f){switch(f.label){case 0:return this.odpIntegrationConfig?this.odpIntegrationConfig.integrated?(o=this.odpIntegrationConfig.odpConfig,!(a=o.segmentsToCheck)||a.length<=0?[2,[]]:(s=this.makeCacheKey(e,t),u=null==r?void 0:r.includes(Mr.IGNORE_CACHE),(null==r?void 0:r.includes(Mr.RESET_CACHE))&&this.segmentsCache.reset(),u?[3,2]:[4,this.segmentsCache.lookup(s)])):[2,(null===(i=this.logger)||void 0===i||i.warn("43"),null)]:[2,(null===(n=this.logger)||void 0===n||n.warn("38"),null)];case 1:if(l=f.sent())return[2,l];f.label=2;case 2:return[4,this.odpSegmentApiManager.fetchSegments(o.apiKey,o.apiHost,e,t,a)];case 3:return[2,((c=f.sent())&&!u&&this.segmentsCache.save(s,c),c)]}})})}},{key:"makeCacheKey",value:function(e,t){return"".concat(e,"-$-").concat(t)}},{key:"updateConfig",value:function(e){this.odpIntegrationConfig=e,this.segmentsCache.reset()}}]),e}(),Lr=Symbol(),qr=function(e){var t,r=function(e){return e.segmentsCache&&function(e){var t=[];if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error("Invalid cache");for(var r=0,n=["save","lookup","reset"];r<n.length;r++){var i=n[r];"function"!=typeof e[i]&&t.push("Invalid cache method %s".replace("%s",i))}if(t.length>0)throw new Error(t.join(", "))}(e.segmentsCache),new Kr(e.segmentsCache||(t=e.segmentsCacheSize,r=e.segmentsCacheTimeout,new Or(t||1e4,r||6e5)),new Vr(e.segmentRequestHandler));var t,r}(e),n=new Ar({apiManager:new xr((t=e).eventRequestHandler,t.eventRequestGenerator),batchSize:t.eventBatchSize||100,repeater:new Qt(t.eventFlushInterval||1e4),retryConfig:{maxRetries:t.eventMaxRetries||2,backoffProvider:function(){return new Gt(t.eventMinBackoff||200,t.eventMaxBackoff||1e3,50)}}});return new Dr({segmentManager:r,eventManager:n,userAgentParser:e.userAgentParser})},Br=Symbol(),zr=function(){function e(t,r){_class_call_check(this,e),this.logger=t,this.errorNotifier=r}return _create_class(e,[{key:"report",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];if("string"==typeof e)return e=_construct(qe,[e].concat(_to_consumable_array(r))),void this.report(e);this.errorNotifier&&this.errorNotifier.notify(e),this.logger&&this.logger.error(e)}},{key:"setLogger",value:function(e){this.logger=e}},{key:"setErrorNotifier",value:function(e){this.errorNotifier=e}}]),e}(),Hr=function(){function e(t){_class_call_check(this,e),this.removerId=1,this.eventEmitter=new Bt,this.removers=new Map,this.errorReporter=new zr(t.logger,t.errorNotifier)}return _create_class(e,[{key:"addNotificationListener",value:function(e,t){if(!(m(vr).indexOf(e)>-1))return-1;var r=this.removerId++,n=this.eventEmitter.on(e,this.wrapWithErrorReporting(e,t));return this.removers.set(r,n),r}},{key:"wrapWithErrorReporting",value:function(e,t){var r=this;return function(n){try{t(n)}catch(t){var i=_instanceof(t,Error)?t.message:String(t);r.errorReporter.report("30",e,i)}}}},{key:"removeNotificationListener",value:function(e){var t=this.removers.get(e);return!!t&&(t(),!0)}},{key:"clearAllNotificationListeners",value:function(){this.eventEmitter.removeAllListeners()}},{key:"clearNotificationListeners",value:function(e){this.eventEmitter.removeListeners(e)}},{key:"sendNotifications",value:function(e,t){this.eventEmitter.emit(e,t)}}]),e}(),Jr="$opt_null_rule_key",Gr=function(){function e(t){var r=t.optimizely,n=t.userId,i=t.attributes;_class_call_check(this,e),this._qualifiedSegments=null,this.optimizely=r,this.userId=n,this.attributes=Object.assign({},i),this.forcedDecisionsMap={}}return _create_class(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"getUserId",value:function(){return this.userId}},{key:"getAttributes",value:function(){return Object.assign({},this.attributes)}},{key:"getOptimizely",value:function(){return this.optimizely}},{key:"qualifiedSegments",get:function(){return this._qualifiedSegments},set:function(e){this._qualifiedSegments=e}},{key:"decide",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.optimizely.decide(this.cloneUserContext(),e,t)}},{key:"decideAsync",value:function(e,t){return this.optimizely.decideAsync(this.cloneUserContext(),e,t)}},{key:"decideForKeys",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.optimizely.decideForKeys(this.cloneUserContext(),e,t)}},{key:"decideForKeysAsync",value:function(e,t){return this.optimizely.decideForKeysAsync(this.cloneUserContext(),e,t)}},{key:"decideAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.optimizely.decideAll(this.cloneUserContext(),e)}},{key:"decideAllAsync",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.optimizely.decideAllAsync(this.cloneUserContext(),e)}},{key:"trackEvent",value:function(e,t){this.optimizely.track(e,this.userId,this.attributes,t)}},{key:"setForcedDecision",value:function(e,t){var r,n=e.flagKey,i=null!==(r=e.ruleKey)&&void 0!==r?r:Jr,o={variationKey:t.variationKey};return this.forcedDecisionsMap[n]||(this.forcedDecisionsMap[n]={}),this.forcedDecisionsMap[n][i]=o,!0}},{key:"getForcedDecision",value:function(e){return this.findForcedDecision(e)}},{key:"removeForcedDecision",value:function(e){var t,r=null!==(t=e.ruleKey)&&void 0!==t?t:Jr,n=e.flagKey,i=!1;return this.forcedDecisionsMap.hasOwnProperty(n)&&(this.forcedDecisionsMap[n].hasOwnProperty(r)&&(delete this.forcedDecisionsMap[n][r],i=!0),0===Object.keys(this.forcedDecisionsMap[n]).length&&delete this.forcedDecisionsMap[n]),i}},{key:"removeAllForcedDecisions",value:function(){return this.forcedDecisionsMap={},!0}},{key:"findForcedDecision",value:function(e){var t,r=null!==(t=e.ruleKey)&&void 0!==t?t:Jr,n=e.flagKey;if(this.forcedDecisionsMap.hasOwnProperty(e.flagKey)){var i=this.forcedDecisionsMap[n];if(i.hasOwnProperty(r))return{variationKey:i[r].variationKey}}return null}},{key:"cloneUserContext",value:function(){var t=new e({optimizely:this.getOptimizely(),userId:this.getUserId(),attributes:this.getAttributes()});return Object.keys(this.forcedDecisionsMap).length>0&&(t.forcedDecisionsMap=Object.assign({},this.forcedDecisionsMap)),t._qualifiedSegments=this._qualifiedSegments,t}},{key:"fetchQualifiedSegments",value:function(e){return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){switch(r.label){case 0:return[4,this.optimizely.fetchQualifiedSegments(this.userId,e)];case 1:return t=r.sent(),[2,(this.qualifiedSegments=t,null!==t)]}})})}},{key:"isQualifiedFor",value:function(e){return!!this._qualifiedSegments&&this._qualifiedSegments.indexOf(e)>-1}}]),e}(),Wr=Math.pow(2,32),Qr=function(e){try{var t=Ee.default.v3(e,1)/Wr;return Math.floor(1e4*t)}catch(t){throw new qe("14",e,t.message)}},$r="User %s is not in any experiment of group %s.",Yr="User %s is not in experiment %s of group %s.",Xr="User %s is in experiment %s of group %s.",Zr="Assigned bucket %s to user with bucketing ID %s.",en="Bucketed into an invalid variation ID. Returning null.",tn=function(e){var t,r,n,i,o,a=[],s=e.experimentIdMap[e.experimentId],u=null==s?void 0:s.groupId;if(u){var l=e.groupIdMap[u];if(!l)throw new qe("23",u);if("random"===l.policy){var c=rn(l,e.bucketingId,e.userId,e.logger);if(null===c)return null===(t=e.logger)||void 0===t||t.info($r,e.userId,u),a.push([$r,e.userId,u]),{result:null,reasons:a};if(c!==e.experimentId)return null===(r=e.logger)||void 0===r||r.info(Yr,e.userId,e.experimentKey,u),a.push([Yr,e.userId,e.experimentKey,u]),{result:null,reasons:a};null===(n=e.logger)||void 0===n||n.info(Xr,e.userId,e.experimentKey,u),a.push([Xr,e.userId,e.experimentKey,u])}}var f="".concat(e.bucketingId).concat(e.experimentId),d=Qr(f);null===(i=e.logger)||void 0===i||i.debug(Zr,d,e.userId),a.push([Zr,d,e.userId]);var v=nn(d,e.trafficAllocationConfig);return e.validateEntity&&null!==v&&!e.variationIdMap[v]?(v&&(null===(o=e.logger)||void 0===o||o.warn(en),a.push([en])),{result:null,reasons:a}):{result:v,reasons:a}},rn=function(e,t,r,n){var i="".concat(t).concat(e.id),o=Qr(i);null==n||n.debug(Zr,o,r);var a=e.trafficAllocation;return nn(o,a)},nn=function(e,t){for(var r=0;r<t.length;r++)if(e<t[r].endOfRange)return t[r].entityId;return null},on="exact",an="exists",sn="semver_eq",un="semver_ge",ln="semver_gt",cn="semver_le",fn="semver_lt",dn="substring",vn=[on,an,"gt","ge","lt","le",dn,sn,fn,cn,ln,un],hn={};hn[on]=F,hn[an]=function(e,t,r){return null!=t.getAttributes()[e.name]},hn.gt=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return N(e,t,r)&&null!==i?n>i:null},hn.ge=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return N(e,t,r)&&null!==i?n>=i:null},hn.lt=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return N(e,t,r)&&null!==i?n<i:null},hn.le=function(e,t,r){var n=t.getAttributes()[e.name],i=e.value;return N(e,t,r)&&null!==i?n<=i:null},hn[dn]=function(e,t,r){var n=t.getAttributes(),i=e.name,o=n[e.name],a=void 0===o?"undefined":_type_of(o),s=e.value;return"string"!=typeof s?(null==r||r.warn(et,JSON.stringify(e)),null):null===o?(null==r||r.debug(We,JSON.stringify(e),i),null):"string"!=typeof o?(null==r||r.warn(tt,JSON.stringify(e),a,i),null):-1!==o.indexOf(s)},hn[sn]=function(e,t,r){var n=U(e,t,r);return null===n?null:0===n},hn[ln]=function(e,t,r){var n=U(e,t,r);return null===n?null:n>0},hn[un]=function(e,t,r){var n=U(e,t,r);return null===n?null:n>=0},hn[fn]=function(e,t,r){var n=U(e,t,r);return null===n?null:n<0},hn[cn]=function(e,t,r){var n=U(e,t,r);return null===n?null:n<=0};var pn=function(e){return{evaluate:function(t,r){return function(e,t,r){var n=t.getAttributes(),i=e.match;if(void 0!==i&&-1===vn.indexOf(i))return null==r||r.warn(rt,JSON.stringify(e)),null;var o=e.name;return n.hasOwnProperty(o)||i==an?(i&&hn[i]||F)(e,t,r):(null==r||r.debug("18",JSON.stringify(e),o),null)}(t,r,e)}}},gn="qualified",yn=[gn],mn={};mn[gn]=V;var _n=function(e){return{evaluate:function(t,r){return function(e,t,r){var n=e.match;return void 0!==n&&-1===yn.indexOf(n)?(null==r||r.warn(rt,JSON.stringify(e)),null):(n&&mn[n]||V)(e,t)}(t,r,e)}}},bn=function(){function e(t,r){_class_call_check(this,e),this.logger=r,this.typeToEvaluatorMap=Object.assign(Object.assign({},t),{custom_attribute:pn(this.logger),third_party_dimension:_n(this.logger)})}return _create_class(e,[{key:"evaluate",value:function(e,t,r){var n=this;return!e||0===e.length||!!kt(e,function(e){var i,o,a=t[e];if(a){null===(i=n.logger)||void 0===i||i.debug("5",e,JSON.stringify(a.conditions));var s=kt(a.conditions,n.evaluateConditionWithUserAttributes.bind(n,r)),u=null===s?"UNKNOWN":s.toString().toUpperCase();return null===(o=n.logger)||void 0===o||o.debug("1",e,u),s}return null})}},{key:"evaluateConditionWithUserAttributes",value:function(e,t){var r,n,i=this.typeToEvaluatorMap[t.type];if(!i)return null===(r=this.logger)||void 0===r||r.warn("60",JSON.stringify(t)),null;try{return i.evaluate(t,e)}catch(e){null===(n=this.logger)||void 0===n||n.error("2",t.type,e.message)}return null}}]),e}(),kn=function(){function e(t,r){_class_call_check(this,e),this.op=t,this.val=r}return _create_class(e,[{key:"get",value:function(){return this.val}},{key:"then",value:function(t){if("sync"===this.op){var r=t(this.val);return e.of(this.op,r.get())}return e.of(this.op,this.val.then(t))}}],[{key:"of",value:function(t,r){if("sync"===t){if((n=r)&&"function"==typeof n.then)throw new qe("Promise value is not allowed in sync operation");return new e(t,r)}var n;return new e(t,Promise.resolve(r))}}]),e}();kn.all=function(e,t){if("sync"===e){var r=t.map(function(e){return e.get()});return kn.of(e,r)}var n=t.map(function(e){return e.get()});return kn.of(e,Promise.all(n))};var En,In="Experiment %s is not running.",Sn='Returning previously activated variation "%s" of experiment "%s" for user "%s" from user profile.',wn="User %s does not meet conditions to be in experiment %s.",On="User %s is in no variation of experiment %s.",xn="User %s is in variation %s of experiment %s.",Pn="User %s is forced in variation %s.",Mn="Variation key %s is not in datafile. Not activating user %s.",Rn='Evaluating audiences for %s "%s": %s.',An="Audiences for %s %s collectively evaluated to %s.",Cn="User %s is in rollout of feature %s.",jn="User %s is not in rollout of feature %s.",Dn="Feature %s is not attached to any experiments.",Tn="User %s does not meet conditions for targeting rule %s.",Fn="User %s not bucketed into targeting rule %s due to traffic allocation. Trying everyone rule.",Nn="User %s bucketed into targeting rule %s.",Un="There is no rollout of feature %s.",Vn="Invalid rollout ID %s attached to feature %s",Kn="Rollout of feature %s has no experiments",Ln="Experiment key %s is improperly formatted.",qn="Variation %s is mapped to experiment %s and user %s in the forced variation map.",Bn="User %s meets conditions for targeting rule %s.",zn="Variation (%s) is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",Hn="Variation (%s) is mapped to flag (%s) and user (%s) in the forced decision map.",Jn="Invalid variation is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",Gn="Invalid variation is mapped to flag (%s) and user (%s) in the forced decision map.",Wn="Failed to fetch CMAB data for experiment %s.",Qn="Holdout %s is not running.",$n="User %s meets conditions for holdout %s.",Yn="User %s does not meet conditions for holdout %s.",Xn="User %s is in variation %s of holdout %s.",Zn="User %s is in no holdout variation.",ei=function(){function e(t){var r,n,i;_class_call_check(this,e),this.logger=t.logger,null===(r=this.logger)||void 0===r||r.setName("DecisionService"),this.audienceEvaluator=(n=t.UNSTABLE_conditionEvaluators,i=this.logger,new bn(n,i)),this.forcedVariationMap={},this.userProfileService=t.userProfileService,this.userProfileServiceAsync=t.userProfileServiceAsync,this.cmabService=t.cmabService}return _create_class(e,[{key:"isCmab",value:function(e){return!!e.cmab}},{key:"resolveVariation",value:function(e,t,r,n,i,o){var a,s,u,l,c,f,d=this,v=n.getUserId(),h=r.key;if(Ct(t,h)!==Ot)return null===(l=this.logger)||void 0===l||l.info(In,h),kn.of(e,{result:{},reasons:[[In,h]]});var p=[],g=this.getForcedVariation(t,h,v);(a=p).push.apply(a,_to_consumable_array(g.reasons));var y=g.result;if(y)return kn.of(e,{result:{variationKey:y},reasons:p});var m=this.getWhitelistedVariation(r,v);(s=p).push.apply(s,_to_consumable_array(m.reasons));var _=m.result;if(_)return kn.of(e,{result:{variationKey:_.key},reasons:p});if(o&&(_=this.getStoredVariation(t,r,v,o.userProfile)))return null===(c=this.logger)||void 0===c||c.info(Sn,_.key,h,v),p.push([Sn,_.key,h,v]),kn.of(e,{result:{variationKey:_.key},reasons:p});var b=this.checkIfUserIsInAudience(t,r,je,n,"");return(u=p).push.apply(u,_to_consumable_array(b.reasons)),b.result?(this.isCmab(r)?this.getDecisionForCmabExperiment(e,t,r,n,i):this.getDecisionFromBucketer(e,t,r,n)).then(function(n){var i,a,s;if((i=p).push.apply(i,_to_consumable_array(n.reasons)),n.error)return kn.of(e,{error:!0,result:{},reasons:p});var u=n.result.variationId;return(_=u?t.variationIdMap[u]:null)?(null===(s=d.logger)||void 0===s||s.info(xn,v,_.key,h),p.push([xn,v,_.key,h]),o&&!d.isCmab(r)&&d.updateUserProfile(r,_,o),kn.of(e,{result:{variationKey:_.key,cmabUuid:n.result.cmabUuid},reasons:p})):(null===(a=d.logger)||void 0===a||a.debug(On,v,h),p.push([On,v,h]),kn.of(e,{result:{},reasons:p}))}):(null===(f=this.logger)||void 0===f||f.info(wn,v,h),p.push([wn,v,h]),kn.of(e,{result:{},reasons:p}))}},{key:"getDecisionForCmabExperiment",value:function(e,t,r,n,i){var o=this;if("sync"===e)return kn.of(e,{error:!1,result:{},reasons:[["CMAB is not supported in sync mode."]]});var a=n.getUserId(),s=n.getAttributes(),u=this.getBucketingId(a,s),l=this.buildBucketerParams(t,r,u,a),c=tn(l);if("$"!==c.result)return kn.of(e,{error:!1,result:{},reasons:c.reasons});var f=this.cmabService.getDecision(t,n,r.id,i).then(function(e){return{error:!1,result:e,reasons:[]}}).catch(function(e){var t;return null===(t=o.logger)||void 0===t||t.error(Wn,r.key),{error:!0,result:{},reasons:[[Wn,r.key]]}});return kn.of(e,f)}},{key:"getDecisionFromBucketer",value:function(e,t,r,n){var i=n.getUserId(),o=n.getAttributes(),a=this.getBucketingId(i,o),s=this.buildBucketerParams(t,r,a,i),u=tn(s);return kn.of(e,{result:{variationId:u.result||void 0},reasons:u.reasons})}},{key:"getVariation",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=n[Lt.IGNORE_USER_PROFILE_SERVICE]?void 0:{isProfileUpdated:!1,userProfile:this.resolveExperimentBucketMap("sync",r.getUserId(),r.getAttributes()).get()},o=this.resolveVariation("sync",e,t,r,n,i).get();return i&&this.saveUserProfile("sync",r.getUserId(),i),{result:o.result.variationKey||null,reasons:o.reasons}}},{key:"resolveExperimentBucketMap",value:function(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).$opt_experiment_bucket_map||{};return this.getUserProfile(e,t).then(function(t){var n=(null==t?void 0:t.experiment_bucket_map)||{};return kn.of(e,Object.assign(Object.assign({},n),r))})}},{key:"getWhitelistedVariation",value:function(e,t){var r,n,i=[];if(e.forcedVariations&&e.forcedVariations.hasOwnProperty(t)){var o=e.forcedVariations[t];return e.variationKeyMap.hasOwnProperty(o)?(null===(r=this.logger)||void 0===r||r.info(Pn,t,o),i.push([Pn,t,o]),{result:e.variationKeyMap[o],reasons:i}):(null===(n=this.logger)||void 0===n||n.error(Mn,o,t),i.push([Mn,o,t]),{result:null,reasons:i})}return{result:null,reasons:i}}},{key:"checkIfUserIsInAudience",value:function(e,t,r,n,i){var o,a,s=[],u=t.audienceConditions||t.audienceIds,l=e.audiencesById;null===(o=this.logger)||void 0===o||o.debug(Rn,r,i||t.key,JSON.stringify(u)),s.push([Rn,r,i||t.key,JSON.stringify(u)]);var c=this.audienceEvaluator.evaluate(u,l,n);return null===(a=this.logger)||void 0===a||a.info(An,r,i||t.key,c.toString().toUpperCase()),s.push([An,r,i||t.key,c.toString().toUpperCase()]),{result:c,reasons:s}}},{key:"buildBucketerParams",value:function(e,t,r,n){var i=!0,o=t.trafficAllocation;return"cmab"in t&&t.cmab&&(o=[{entityId:"$",endOfRange:t.cmab.trafficAllocation}],i=!1),{bucketingId:r,experimentId:t.id,experimentKey:t.key,experimentIdMap:e.experimentIdMap,experimentKeyMap:e.experimentKeyMap,groupIdMap:e.groupIdMap,logger:this.logger,trafficAllocationConfig:o,userId:n,variationIdMap:e.variationIdMap,validateEntity:i}}},{key:"getVariationForHoldout",value:function(e,t,r){var n,i,o,a,s,u,l,c=r.getUserId(),f=[];if("Running"!==t.status){var d=[Qn,t.key];return f.push(d),null===(o=this.logger)||void 0===o||o.info(Qn,t.key),{result:{experiment:null,variation:null,decisionSource:Ce.HOLDOUT},reasons:f}}var v=this.checkIfUserIsInAudience(e,t,je,r);if((n=f).push.apply(n,_to_consumable_array(v.reasons)),!v.result){var h=[Yn,c,t.key];return f.push(h),null===(a=this.logger)||void 0===a||a.info(Yn,c,t.key),{result:{experiment:null,variation:null,decisionSource:Ce.HOLDOUT},reasons:f}}var p=[$n,c,t.key];f.push(p),null===(s=this.logger)||void 0===s||s.info($n,c,t.key);var g=r.getAttributes(),y=this.getBucketingId(c,g),m=this.buildBucketerParams(e,t,y,c),_=tn(m);if((i=f).push.apply(i,_to_consumable_array(_.reasons)),_.result){var b=e.variationIdMap[_.result];if(b){var k=[Xn,c,t.key,b.key];return f.push(k),null===(u=this.logger)||void 0===u||u.info(Xn,c,t.key,b.key),{result:{experiment:t,variation:b,decisionSource:Ce.HOLDOUT},reasons:f}}}var E=[Zn,c];return f.push(E),null===(l=this.logger)||void 0===l||l.info(Zn,c),{result:{experiment:null,variation:null,decisionSource:Ce.HOLDOUT},reasons:f}}},{key:"getStoredVariation",value:function(e,t,r,n){var i;if(null==n?void 0:n.hasOwnProperty(t.id)){var o=n[t.id],a=o.variation_id;if(e.variationIdMap.hasOwnProperty(a))return e.variationIdMap[o.variation_id];null===(i=this.logger)||void 0===i||i.info("26",r,a,t.key)}return null}},{key:"getUserProfile",value:function(e,t){var r,n=this,i={user_id:t,experiment_bucket_map:{}};if(this.userProfileService){try{return kn.of(e,this.userProfileService.lookup(t))}catch(e){null===(r=this.logger)||void 0===r||r.error("66",t,e.message)}return kn.of(e,i)}return this.userProfileServiceAsync&&"async"===e?kn.of(e,this.userProfileServiceAsync.lookup(t).catch(function(e){var r;return null===(r=n.logger)||void 0===r||r.error("66",t,e.message),i})):kn.of(e,i)}},{key:"updateUserProfile",value:function(e,t,r){r.userProfile&&(r.userProfile[e.id]={variation_id:t.id},r.isProfileUpdated=!0)}},{key:"saveUserProfile",value:function(e,t,r){var n,i,o=this,a=r.userProfile,s=r.isProfileUpdated;if(!a||!s)return kn.of(e,void 0);if("sync"===e&&!this.userProfileService)return kn.of(e,void 0);if(this.userProfileService){try{this.userProfileService.save({user_id:t,experiment_bucket_map:a}),null===(n=this.logger)||void 0===n||n.info("25",t)}catch(e){null===(i=this.logger)||void 0===i||i.error("67",t,e.message)}return kn.of(e,void 0)}return this.userProfileServiceAsync?kn.of(e,this.userProfileServiceAsync.save({user_id:t,experiment_bucket_map:a}).catch(function(e){var r;null===(r=o.logger)||void 0===r||r.error("67",t,e.message)})):kn.of(e,void 0)}},{key:"getVariationsForFeatureList",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resolveVariationsForFeatureList("sync",e,t,r,n).get()}},{key:"resolveVariationsForFeatureList",value:function(e,t,r,n,i){var o=this,a=n.getUserId(),s=n.getAttributes();return(i[Lt.IGNORE_USER_PROFILE_SERVICE]?kn.of(e,void 0):this.resolveExperimentBucketMap(e,a,s).then(function(t){return kn.of(e,{isProfileUpdated:!1,userProfile:t})})).then(function(s){var u=r.map(function(r){return o.resolveVariationForFlag(e,t,r,n,i,s)}),l=kn.all(e,u);return l.then(function(){return s&&o.saveUserProfile(e,a,s),l})})}},{key:"resolveVariationForFlag",value:function(e,t,r,n,i,o){var a,s=this,u=[],l=this.findValidatedForcedDecision(t,n,r.key);if((a=u).push.apply(a,_to_consumable_array(l.reasons)),l.result)return kn.of(e,{result:{variation:l.result,experiment:null,decisionSource:Ce.FEATURE_TEST},reasons:u});var c=function(e,t){if(e.flagHoldoutsMap[t])return e.flagHoldoutsMap[t];var r=_to_consumable_array(e.globalHoldouts.filter(function(r){return!(e.excludedHoldouts[t]||[]).includes(r)})).concat(_to_consumable_array(e.includedHoldouts[t]||[]));return e.flagHoldoutsMap[t]=r,r}(t,r.key),f=!0,d=!1,v=void 0;try{for(var h,p=c[Symbol.iterator]();!(f=(h=p.next()).done);f=!0){var g,y=h.value,m=this.getVariationForHoldout(t,y,n);if((g=u).push.apply(g,_to_consumable_array(m.reasons)),m.result.variation)return kn.of(e,{result:m.result,reasons:u})}}catch(e){d=!0,v=e}finally{try{f||null==p.return||p.return()}finally{if(d)throw v}}return this.getVariationForFeatureExperiment(e,t,r,n,i,o).then(function(i){var o,a,l,c;if(i.error||null!==i.result.variation)return kn.of(e,Object.assign(Object.assign({},i),{reasons:_to_consumable_array(u).concat(_to_consumable_array(i.reasons))}));(o=u).push.apply(o,_to_consumable_array(i.reasons));var f=s.getVariationForRollout(t,r,n);(a=u).push.apply(a,_to_consumable_array(f.reasons));var d=f.result,v=n.getUserId();return d.variation?(null===(l=s.logger)||void 0===l||l.debug(Cn,v,r.key),u.push([Cn,v,r.key])):(null===(c=s.logger)||void 0===c||c.debug(jn,v,r.key),u.push([jn,v,r.key])),kn.of(e,{result:d,reasons:u})})}},{key:"getVariationForFeature",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resolveVariationsForFeatureList("sync",e,[t],r,n).get()[0]}},{key:"getVariationForFeatureExperiment",value:function(e,t,r,n,i,o){var a;return 0===r.experimentIds.length?(null===(a=this.logger)||void 0===a||a.debug(Dn,r.key),kn.of(e,{result:{experiment:null,variation:null,decisionSource:Ce.FEATURE_TEST},reasons:[[Dn,r.key]]})):this.traverseFeatureExperimentList(e,t,r,0,n,[],i,o)}},{key:"traverseFeatureExperimentList",value:function(e,t,r,n,i,o,a,s){var u=this,l=r.experimentIds;if(n>=l.length)return kn.of(e,{result:{experiment:null,variation:null,decisionSource:Ce.FEATURE_TEST},reasons:o});var c=function(e,t,r){if(e.experimentIdMap.hasOwnProperty(t)){var n=e.experimentIdMap[t];if(n)return n}return null==r||r.error("21",t),null}(t,l[n],this.logger);return c?this.getVariationFromExperimentRule(e,t,r.key,c,i,a,s).then(function(l){var f;if((f=o).push.apply(f,_to_consumable_array(l.reasons)),l.error)return kn.of(e,{error:!0,result:{experiment:c,variation:null,decisionSource:Ce.FEATURE_TEST},reasons:o});if(!l.result.variationKey)return u.traverseFeatureExperimentList(e,t,r,n+1,i,o,a,s);var d=l.result.variationKey,v=c.variationKeyMap[d];return v||(v=Dt(t,r.key,d)),kn.of(e,{result:{cmabUuid:l.result.cmabUuid,experiment:c,variation:v,decisionSource:Ce.FEATURE_TEST},reasons:o})}):this.traverseFeatureExperimentList(e,t,r,n+1,i,o,a,s)}},{key:"getVariationForRollout",value:function(e,t,r){var n,i,o,a=[];if(!t.rolloutId)return null===(n=this.logger)||void 0===n||n.debug(Un,t.key),a.push([Un,t.key]),{result:{experiment:null,variation:null,decisionSource:Ce.ROLLOUT},reasons:a};var s=e.rolloutIdMap[t.rolloutId];if(!s)return null===(i=this.logger)||void 0===i||i.error(Vn,t.rolloutId,t.key),a.push([Vn,t.rolloutId,t.key]),{result:{experiment:null,variation:null,decisionSource:Ce.ROLLOUT},reasons:a};var u=s.experiments;if(0===u.length)return null===(o=this.logger)||void 0===o||o.error(Kn,t.rolloutId),a.push([Kn,t.rolloutId]),{result:{experiment:null,variation:null,decisionSource:Ce.ROLLOUT},reasons:a};for(var l,c,f,d=0;d<u.length;){var v;if(l=this.getVariationFromDeliveryRule(e,t.key,u,d,r),(v=a).push.apply(v,_to_consumable_array(l.reasons)),f=l.result,c=l.skipToEveryoneElse,f)return{result:{experiment:e.experimentIdMap[u[d].id],variation:f,decisionSource:Ce.ROLLOUT},reasons:a};d=c?u.length-1:d+1}return{result:{experiment:null,variation:null,decisionSource:Ce.ROLLOUT},reasons:a}}},{key:"getBucketingId",value:function(e,t){var r,n,i=e;return null!=t&&"object"==(void 0===t?"undefined":_type_of(t))&&t.hasOwnProperty(Pe)&&("string"==typeof t[Pe]?(i=String(t[Pe]),null===(r=this.logger)||void 0===r||r.debug("37",i)):null===(n=this.logger)||void 0===n||n.warn("0")),i}},{key:"findValidatedForcedDecision",value:function(e,t,r,n){var i,o,a,s,u,l=[],c=t.getForcedDecision({flagKey:r,ruleKey:n}),f=null,d=t.getUserId();return e&&c&&(u=c.variationKey,(f=Dt(e,r,u))?n?(null===(i=this.logger)||void 0===i||i.info(zn,u,r,n,d),l.push([zn,u,r,n,d])):(null===(o=this.logger)||void 0===o||o.info(Hn,u,r,d),l.push([Hn,u,r,d])):n?(null===(a=this.logger)||void 0===a||a.info(Jn,r,n,d),l.push([Jn,r,n,d])):(null===(s=this.logger)||void 0===s||s.info(Gn,r,d),l.push([Gn,r,d]))),{result:f,reasons:l}}},{key:"removeForcedVariation",value:function(e,t,r){var n;if(!e)throw new qe("26");if(!this.forcedVariationMap.hasOwnProperty(e))throw new qe("65",e);delete this.forcedVariationMap[e][t],null===(n=this.logger)||void 0===n||n.debug("41",r,e)}},{key:"setInForcedVariationMap",value:function(e,t,r){var n;this.forcedVariationMap.hasOwnProperty(e)||(this.forcedVariationMap[e]={}),this.forcedVariationMap[e][t]=r,null===(n=this.logger)||void 0===n||n.debug("34",r,t,e)}},{key:"getForcedVariation",value:function(e,t,r){var n,i,o,a,s,u,l,c=[],f=this.forcedVariationMap[r];if(!f)return null===(n=this.logger)||void 0===n||n.debug("32",r),{result:null,reasons:c};try{var d=jt(e,t);if(!d.hasOwnProperty("id"))return null===(i=this.logger)||void 0===i||i.error(Ln,t),c.push([Ln,t]),{result:null,reasons:c};l=d.id}catch(h){return null===(o=this.logger)||void 0===o||o.error(h),c.push(h.message),{result:null,reasons:c}}var v=f[l];if(!v)return null===(a=this.logger)||void 0===a||a.debug("33",t,r),{result:null,reasons:c};var h,p,g=(p=v,(h=e).variationIdMap.hasOwnProperty(p)?h.variationIdMap[p].key:null);return g?(null===(s=this.logger)||void 0===s||s.debug(qn,g,t,r),c.push([qn,g,t,r])):null===(u=this.logger)||void 0===u||u.debug("33",t,r),{result:g,reasons:c}}},{key:"setForcedVariation",value:function(e,t,r,n){var i,o,a,s,u,l,c;if(null!=n&&!K(n))return null===(i=this.logger)||void 0===i||i.error("28"),!1;try{var f=jt(e,t);if(!f.hasOwnProperty("id"))return null===(o=this.logger)||void 0===o||o.error(Ln,t),!1;c=f.id}catch(e){return null===(a=this.logger)||void 0===a||a.error(e),!1}if(null==n)try{return this.removeForcedVariation(r,c,t),!0}catch(e){return null===(s=this.logger)||void 0===s||s.error(e),!1}var d=function(e,t,r){var n=e.experimentKeyMap[t];return n.variationKeyMap.hasOwnProperty(r)?n.variationKeyMap[r].id:null}(e,t,n);if(!d)return null===(u=this.logger)||void 0===u||u.error("37",n,t),!1;try{return this.setInForcedVariationMap(r,c,d),!0}catch(e){return null===(l=this.logger)||void 0===l||l.error(e),!1}}},{key:"getVariationFromExperimentRule",value:function(e,t,r,n,i,o,a){var s,u,l=[],c=this.findValidatedForcedDecision(t,i,r,n.key);(s=l).push.apply(s,_to_consumable_array(c.reasons));var f=c.result;return f?kn.of(e,{result:{variationKey:f.key},reasons:l}):this.resolveVariation(e,t,n,i,o,a).then(function(t){return(u=l).push.apply(u,_to_consumable_array(t.reasons)),kn.of(e,{error:t.error,result:t.result,reasons:l})})}},{key:"getVariationFromDeliveryRule",value:function(e,t,r,n,i){var o,a,s,u,l,c,f,d=[],v=!1,h=r[n],p=this.findValidatedForcedDecision(e,i,t,h.key);(o=d).push.apply(o,_to_consumable_array(p.reasons));var g=p.result;if(g)return{result:g,reasons:d,skipToEveryoneElse:v};var y,m,_,b,k,E=i.getUserId(),I=i.getAttributes(),S=this.getBucketingId(E,I),w=n===r.length-1,O=w?"Everyone Else":n+1,x=null,P=this.checkIfUserIsInAudience(e,h,"rule",i,O);return(a=d).push.apply(a,_to_consumable_array(P.reasons)),P.result?(null===(u=this.logger)||void 0===u||u.debug(Bn,E,O),d.push([Bn,E,O]),m=this.buildBucketerParams(e,h,S,E),_=tn(m),(s=d).push.apply(s,_to_consumable_array(_.reasons)),(y=_.result)&&(k=y,x=(b=e).variationIdMap.hasOwnProperty(k)?b.variationIdMap[k]:null),x?(null===(l=this.logger)||void 0===l||l.debug(Nn,E,O),d.push([Nn,E,O])):w||(null===(c=this.logger)||void 0===c||c.debug(Fn,E,O),d.push([Fn,E,O]),v=!0)):(null===(f=this.logger)||void 0===f||f.debug(Tn,E,O),d.push([Tn,E,O])),{result:x,reasons:d,skipToEveryoneElse:v}}}]),e}(),ti=function(e){function t(e){var r,n,i,o,a,s,u,l,c,f,d,v;_class_call_check(this,t),(r=_call_super(this,t)).cleanupTasks=new Map,r.nextCleanupTaskId=0;var h=e.clientEngine;h||(null===(n=e.logger)||void 0===n||n.info("13",h),h=Re),r.clientEngine=h,r.clientVersion=e.clientVersion||Ae,r.errorNotifier=e.errorNotifier,r.logger=e.logger,r.projectConfigManager=e.projectConfigManager,r.errorReporter=new zr(r.logger,r.errorNotifier),r.odpManager=e.odpManager,r.vuidManager=e.vuidManager,r.eventProcessor=e.eventProcessor,e.disposable&&(r.projectConfigManager.makeDisposable(),null===(i=r.eventProcessor)||void 0===i||i.makeDisposable(),null===(o=r.odpManager)||void 0===o||o.makeDisposable()),r.logger&&(r.projectConfigManager.setLogger(r.logger.child()),null===(a=r.eventProcessor)||void 0===a||a.setLogger(r.logger.child()),null===(s=r.odpManager)||void 0===s||s.setLogger(r.logger.child()));var p=null!==(u=e.defaultDecideOptions)&&void 0!==u?u:[];Array.isArray(p)||(null===(l=r.logger)||void 0===l||l.debug("15"),p=[]);var g,y,m,_={};if(p.forEach(function(e){var t;Lt[e]?_[e]=!0:null===(t=r.logger)||void 0===t||t.warn("63",e)}),r.defaultDecideOptions=_,r.projectConfigManager=e.projectConfigManager,r.projectConfigManager.onUpdate(function(e){var t;null===(t=r.logger)||void 0===t||t.info("31",e.revision,e.projectId),r.notificationCenter.sendNotifications(vr.OPTIMIZELY_CONFIG_UPDATE,void 0),r.updateOdpSettings()}),r.eventProcessor=e.eventProcessor,null===(c=r.eventProcessor)||void 0===c||c.onDispatch(function(e){r.notificationCenter.sendNotifications(vr.LOG_EVENT,e)}),r.odpManager=e.odpManager,e.userProfileService)try{(function(e){if("object"==(void 0===e?"undefined":_type_of(e))&&null!==e){if("function"!=typeof e.lookup)throw new qe(Ye,"Missing function 'lookup'");if("function"!=typeof e.save)throw new qe(Ye,"Missing function 'save'");return!0}throw new qe(Ye,"Not an object")})(e.userProfileService)&&(g=e.userProfileService,null===(f=r.logger)||void 0===f||f.info("39"))}catch(m){null===(d=r.logger)||void 0===d||d.warn(m)}return r.decisionService=(y={userProfileService:g,userProfileServiceAsync:e.userProfileServiceAsync||void 0,cmabService:e.cmabService,logger:null===(v=r.logger)||void 0===v?void 0:v.child(),UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators},new ei(y)),r.notificationCenter=(m={logger:r.logger,errorNotifier:r.errorNotifier},new Hr(m)),r.start(),r}return _inherits(t,e),_create_class(t,[{key:"start",value:function(){var e,r,n=this;this.isNew()&&(_get(_get_prototype_of(t.prototype),"start",this).call(this),this.state=Et.Starting,this.projectConfigManager.start(),null===(e=this.eventProcessor)||void 0===e||e.start(),null===(r=this.odpManager)||void 0===r||r.start(),Promise.all([this.projectConfigManager.onRunning(),this.eventProcessor?this.eventProcessor.onRunning():Promise.resolve(),this.odpManager?this.odpManager.onRunning():Promise.resolve(),this.vuidManager?this.vuidManager.initialize():Promise.resolve()]).then(function(){var e,t;n.state=Et.Running,n.startPromise.resolve();var r=null===(e=n.vuidManager)||void 0===e?void 0:e.getVuid();r&&(null===(t=n.odpManager)||void 0===t||t.setVuid(r))}).catch(function(e){n.state=Et.Failed,n.errorReporter.report(e),n.startPromise.reject(e)}))}},{key:"getProjectConfig",value:function(){return this.projectConfigManager.getConfig()||null}},{key:"activate",value:function(e,t,r){var n,i,o;try{var a=this.getProjectConfig();if(!a)return this.errorReporter.report(Xe,"activate"),null;if(!this.validateInputs({experiment_key:e,user_id:t},r))return this.notActivatingExperiment(e,t);try{var s=this.getVariation(e,t,r);if(null===s)return this.notActivatingExperiment(e,t);if(Ct(o=a,e)!==Ot)return null===(n=this.logger)||void 0===n||n.debug("27",e),s;var u=jt(a,e),l={experiment:u,variation:u.variationKeyMap[s],decisionSource:Ce.EXPERIMENT};return this.sendImpressionEvent(l,"",t,!0,r),s}catch(r){return null===(i=this.logger)||void 0===i||i.info("19",t,e),this.errorReporter.report(r),null}}catch(o){return this.errorReporter.report(o),null}}},{key:"sendImpressionEvent",value:function(e,t,r,n,i){var o;if(this.eventProcessor){var a=this.getProjectConfig();if(a){var s=function(e){var t,r,n=e.configObj,i=e.decisionObj,o=e.userId,a=e.flagKey,s=e.enabled,u=e.userAttributes,l=e.clientEngine,c=e.clientVersion,f=i.decisionSource,d=x(i),v=null!==(r=null===(t=i.experiment)||void 0===t?void 0:t.id)&&void 0!==r?r:null,h=P(i),p=function(e){var t,r;return null!==(r=null===(t=e.variation)||void 0===t?void 0:t.id)&&void 0!==r?r:null}(i),g=i.cmabUuid,y=null!==v?f===Ce.HOLDOUT?"":function(e,t){var r=e.experimentIdMap[t];if(!r)throw new qe("21",t);return r.layerId}(n,v):null;return Object.assign(Object.assign({},yr({configObj:n,userId:o,userAttributes:u,clientEngine:l,clientVersion:c,type:"impression"})),{layer:{id:y},experiment:{id:v,key:d},variation:{id:p,key:h},ruleKey:d,flagKey:a,ruleType:f,enabled:s,cmabUuid:g})}({decisionObj:e,flagKey:t,enabled:n,userId:r,userAttributes:i,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:a});this.eventProcessor.process(s);var u,l=O([s]),c={experiment:null,holdout:null,userId:r,attributes:i,variation:e.variation,logEvent:l};e.experiment&&(void 0!==(u=e.experiment).status&&Array.isArray(u.includedFlags)&&Array.isArray(u.excludedFlags)?c.holdout=e.experiment:c.experiment=e.experiment),this.notificationCenter.sendNotifications(vr.ACTIVATE,c)}}else null===(o=this.logger)||void 0===o||o.error("33")}},{key:"track",value:function(e,t,r,n){var i,o,a,s,u,l,c;try{if(!this.eventProcessor)return void(null===(i=this.logger)||void 0===i||i.error("33"));var f=this.getProjectConfig();if(!f)return void this.errorReporter.report(Xe,"track");if(!this.validateInputs({user_id:t,event_key:e},r,n))return;if(c=e,!(l=f).eventKeyMap.hasOwnProperty(c))return null===(o=this.logger)||void 0===o||o.warn("7",e),void(null===(a=this.logger)||void 0===a||a.warn("31",t));var d=function(e,t){var r,n,i=e.configObj,o=e.userId,a=e.userAttributes,s=e.clientEngine,u=e.clientVersion,l=e.eventKey,c=e.eventTags,f=(r=l,(n=i.eventKeyMap[r])?n.id:null),d=c?function(e,t){var r=e.revenue;if(null==r)return null;var n="string"==typeof r?parseInt(r):Math.trunc(r);return isFinite(n)?(null==t||t.info("21",n),n):(null==t||t.info("6",r),null)}(c,t):null,v=c?function(e,t){var r=e.value;if(null==r)return null;var n="string"==typeof r?parseFloat(r):r;return isFinite(n)?(null==t||t.info("20",n),n):(null==t||t.info("7",r),null)}(c,t):null;return Object.assign(Object.assign({},yr({configObj:i,userId:o,userAttributes:a,clientEngine:s,clientVersion:u,type:"conversion"})),{event:{id:f,key:l},revenue:d,value:v,tags:c})}({eventKey:e,eventTags:n=this.filterEmptyValues(n),userId:t,userAttributes:r,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:f},this.logger);null===(s=this.logger)||void 0===s||s.info("29",e,t),this.eventProcessor.process(d);var v=O([d]);this.notificationCenter.sendNotifications(vr.TRACK,{eventKey:e,userId:t,attributes:r,eventTags:n,logEvent:v})}catch(l){this.errorReporter.report(l),null===(u=this.logger)||void 0===u||u.error("31",t)}}},{key:"getVariation",value:function(e,t,r){var n,i,o;try{var a=this.getProjectConfig();if(!a)return this.errorReporter.report(Xe,"getVariation"),null;try{if(!this.validateInputs({experiment_key:e,user_id:t},r))return null;var s=a.experimentKeyMap[e];if(!s||s.isRollout)return null===(n=this.logger)||void 0===n||n.debug("16",e),null;var u=this.decisionService.getVariation(a,s,this.createInternalUserContext(t,r)).result,l=(i=a,o=s.id,i.experimentFeatureMap.hasOwnProperty(o)?dr.FEATURE_TEST:dr.AB_TEST);return this.notificationCenter.sendNotifications(vr.DECISION,{type:l,userId:t,attributes:r||{},decisionInfo:{experimentKey:e,variationKey:u}}),u}catch(e){return this.errorReporter.report(e),null}}catch(e){return this.errorReporter.report(e),null}}},{key:"setForcedVariation",value:function(e,t,r){if(!this.validateInputs({experiment_key:e,user_id:t}))return!1;var n=this.getProjectConfig();if(!n)return!1;try{return this.decisionService.setForcedVariation(n,e,t,r)}catch(e){return this.errorReporter.report(e),!1}}},{key:"getForcedVariation",value:function(e,t){if(!this.validateInputs({experiment_key:e,user_id:t}))return null;var r=this.getProjectConfig();if(!r)return null;try{return this.decisionService.getForcedVariation(r,e,t).result}catch(e){return this.errorReporter.report(e),null}}},{key:"validateInputs",value:function(e,t,r){try{if(e.hasOwnProperty("user_id")){var n=e.user_id;if("string"!=typeof n||null===n||"undefined"===n)throw new qe("24","user_id");delete e.user_id}return Object.keys(e).forEach(function(t){if(!K(e[t]))throw new qe("24",t)}),t&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new qe("13");Object.keys(e).forEach(function(t){if(void 0===e[t])throw new qe("56",t)})}(t),r&&function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||Array.isArray(e)||null===e)throw new qe("20")}(r),!0}catch(e){return this.errorReporter.report(e),!1}}},{key:"notActivatingExperiment",value:function(e,t){var r;return null===(r=this.logger)||void 0===r||r.info("19",t,e),null}},{key:"filterEmptyValues",value:function(e){for(var t in e){var r=t;!e.hasOwnProperty(r)||null!==e[r]&&void 0!==e[r]||delete e[r]}return e}},{key:"isFeatureEnabled",value:function(e,t,r){var n,i;try{var o=this.getProjectConfig();if(!o)return this.errorReporter.report(Xe,"isFeatureEnabled"),!1;if(!this.validateInputs({feature_key:e,user_id:t},r))return!1;var a=Tt(o,e,this.logger);if(!a)return!1;var s={},u=this.createInternalUserContext(t,r),l=this.decisionService.getVariationForFeature(o,a,u).result,c=l.decisionSource,f=x(l),d=P(l),v=M(l);c!==Ce.FEATURE_TEST&&c!==Ce.HOLDOUT||(s={experimentKey:f,variationKey:d}),(c===Ce.FEATURE_TEST||c===Ce.HOLDOUT||c===Ce.ROLLOUT&&Ft(o))&&this.sendImpressionEvent(l,a.key,t,v,r),!0===v?null===(n=this.logger)||void 0===n||n.info("8",e,t):(null===(i=this.logger)||void 0===i||i.info("9",e,t),v=!1);var h={featureKey:e,featureEnabled:v,source:l.decisionSource,sourceInfo:s};return this.notificationCenter.sendNotifications(vr.DECISION,{type:dr.FEATURE,userId:t,attributes:r||{},decisionInfo:h}),v}catch(e){return this.errorReporter.report(e),!1}}},{key:"getEnabledFeatures",value:function(e,t){var r=this;try{var n=[],i=this.getProjectConfig();return i?this.validateInputs({user_id:e})?(m(i.featureKeyMap).forEach(function(i){r.isFeatureEnabled(i.key,e,t)&&n.push(i.key)}),n):n:(this.errorReporter.report(Xe,"getEnabledFeatures"),n)}catch(e){return this.errorReporter.report(e),[]}}},{key:"getFeatureVariable",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,null,r,n):(this.errorReporter.report(Xe,"getFeatureVariable"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableForType",value:function(e,t,r,n,i){var o;if(!this.validateInputs({feature_key:e,variable_key:t,user_id:n},i))return null;var a=this.getProjectConfig();if(!a)return null;var s=Tt(a,e,this.logger);if(!s)return null;var u,l,c,f,d,v=(u=a,l=e,c=t,f=this.logger,(d=u.featureKeyMap[l])?d.variableKeyMap[c]||(null==f||f.error("68",c,l),null):(null==f||f.error($e,l),null));if(!v)return null;if(r&&v.type!==r)return null===(o=this.logger)||void 0===o||o.warn("69",r,v.type),null;var h=this.createInternalUserContext(n,i),p=this.decisionService.getVariationForFeature(a,s,h).result,g=M(p),y=this.getFeatureVariableValueFromVariation(e,g,p.variation,v,n),m={};return p.decisionSource===Ce.FEATURE_TEST&&null!==p.experiment&&null!==p.variation&&(m={experimentKey:p.experiment.key,variationKey:p.variation.key}),this.notificationCenter.sendNotifications(vr.DECISION,{type:dr.FEATURE_VARIABLE,userId:n,attributes:i||{},decisionInfo:{featureKey:e,featureEnabled:g,source:p.decisionSource,variableKey:t,variableValue:y,variableType:v.type,sourceInfo:m}}),y}},{key:"getFeatureVariableValueFromVariation",value:function(e,t,r,n,i){var o,a,s,u,l=this.getProjectConfig();if(!l)return null;var c=n.defaultValue;if(null!==r){var f=function(e,t,r,n){if(!t||!r)return null;if(!e.variationVariableUsageMap.hasOwnProperty(r.id))return null==n||n.error("70",r.id),null;var i=e.variationVariableUsageMap[r.id][t.id];return i?i.value:null}(l,n,r,this.logger);null!==f?t?(c=f,null===(o=this.logger)||void 0===o||o.info("36",c,n.key,e)):null===(a=this.logger)||void 0===a||a.info("10",e,i,c):null===(s=this.logger)||void 0===s||s.info("40",n.key,r.key)}else null===(u=this.logger)||void 0===u||u.info("35",i,n.key,e);return function(e,t,r){var n;switch(t){case De:"true"!==e&&"false"!==e?(null==r||r.error(Ze,e,t),n=null):n="true"===e;break;case Fe:n=parseInt(e,10),isNaN(n)&&(null==r||r.error(Ze,e,t),n=null);break;case Te:n=parseFloat(e),isNaN(n)&&(null==r||r.error(Ze,e,t),n=null);break;case Ue:try{n=JSON.parse(e)}catch(i){null==r||r.error(Ze,e,t),n=null}break;default:n=e}return n}(c,n.type,this.logger)}},{key:"getFeatureVariableBoolean",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,De,r,n):(this.errorReporter.report(Xe,"getFeatureVariableBoolean"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableDouble",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Te,r,n):(this.errorReporter.report(Xe,"getFeatureVariableDouble"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableInteger",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Fe,r,n):(this.errorReporter.report(Xe,"getFeatureVariableInteger"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableString",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Ne,r,n):(this.errorReporter.report(Xe,"getFeatureVariableString"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getFeatureVariableJSON",value:function(e,t,r,n){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,Ue,r,n):(this.errorReporter.report(Xe,"getFeatureVariableJSON"),null)}catch(e){return this.errorReporter.report(e),null}}},{key:"getAllFeatureVariables",value:function(e,t,r){var n=this;try{var i=this.getProjectConfig();if(!i)return this.errorReporter.report(Xe,"getAllFeatureVariables"),null;if(!this.validateInputs({feature_key:e,user_id:t},r))return null;var o=Tt(i,e,this.logger);if(!o)return null;var a=this.createInternalUserContext(t,r),s=this.decisionService.getVariationForFeature(i,o,a).result,u=M(s),l={};o.variables.forEach(function(r){l[r.key]=n.getFeatureVariableValueFromVariation(e,u,s.variation,r,t)});var c={};return s.decisionSource===Ce.FEATURE_TEST&&null!==s.experiment&&null!==s.variation&&(c={experimentKey:s.experiment.key,variationKey:s.variation.key}),this.notificationCenter.sendNotifications(vr.DECISION,{type:dr.ALL_FEATURE_VARIABLES,userId:t,attributes:r||{},decisionInfo:{featureKey:e,featureEnabled:u,source:s.decisionSource,variableValues:l,sourceInfo:c}}),l}catch(e){return this.errorReporter.report(e),null}}},{key:"getOptimizelyConfig",value:function(){try{return this.getProjectConfig()&&this.projectConfigManager.getOptimizelyConfig()||null}catch(e){return this.errorReporter.report(e),null}}},{key:"flushImmediately",value:function(){var e=[];return this.isRunning()?(this.eventProcessor&&e.push(this.eventProcessor.flushImmediately()),this.odpManager&&e.push(this.odpManager.flushImmediately()),Promise.all(e)):Promise.resolve()}},{key:"close",value:function(){return this.stop(),this.onTerminated()}},{key:"stop",value:function(){var e,t,r=this;this.isDone()||(this.isRunning()||this.startPromise.reject(new Error(k(Vt,"Client"))),this.state=Et.Stopping,this.projectConfigManager.stop(),null===(e=this.eventProcessor)||void 0===e||e.stop(),null===(t=this.odpManager)||void 0===t||t.stop(),this.notificationCenter.clearAllNotificationListeners(),this.cleanupTasks.forEach(function(e){return e()}),Promise.all([this.projectConfigManager.onTerminated(),this.eventProcessor?this.eventProcessor.onTerminated():Promise.resolve(),this.odpManager?this.odpManager.onTerminated():Promise.resolve()]).then(function(){r.state=Et.Terminated,r.stopPromise.resolve()}).catch(function(e){r.errorReporter.report(e),r.state=Et.Failed,r.stopPromise.reject(e)}))}},{key:"onReady",value:function(e){var t,r=this;"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&void 0!==e.timeout&&(t=e.timeout),p(t)||(t=3e4);var n=I(),i=this.nextCleanupTaskId++,o=setTimeout(function(){r.cleanupTasks.delete(i),n.reject(new Error(k("onReady timeout expired after %s ms",t)))},t);return this.cleanupTasks.set(i,function(){clearTimeout(o),n.reject(new Error("Instance closed"))}),Promise.race([this.onRunning().then(function(){clearTimeout(o),r.cleanupTasks.delete(i)}),n])}},{key:"createUserContext",value:function(e,t){var r,n=this,i=null!=e?e:null===(r=this.vuidManager)||void 0===r?void 0:r.getVuid();if(void 0===i||!this.validateInputs({user_id:i}))throw new Error("Invalid identifier");if(!this.validateInputs({},t))throw new Error("Invalid attributes");var o=new Gr({optimizely:this,userId:i,attributes:t});return this.onRunning().then(function(){n.odpManager&&n.isOdpIntegrated()&&n.odpManager.identifyUser(i)}).catch(function(){}),o}},{key:"createInternalUserContext",value:function(e,t){return new Gr({optimizely:this,userId:e,attributes:t})}},{key:"decide",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return this.getProjectConfig()?this.decideForKeys(e,[t],r,!0)[t]:(this.errorReporter.report(Xe,"decide"),R(t,e,[Ve]))}},{key:"decideAsync",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return S(this,void 0,void 0,function(){return _ts_generator(this,function(n){switch(n.label){case 0:return this.getProjectConfig()?[4,this.decideForKeysAsync(e,[t],r,!0)]:[2,(this.errorReporter.report(Xe,"decide"),R(t,e,[Ve]))];case 1:return[2,n.sent()[t]]}})})}},{key:"getAllDecideOptions",value:function(e){var t,r=this,n=Object.assign({},this.defaultDecideOptions);return Array.isArray(e)?e.forEach(function(e){var t;Lt[e]?n[e]=!0:null===(t=r.logger)||void 0===t||t.warn("63",e)}):null===(t=this.logger)||void 0===t||t.debug("14"),n}},{key:"generateDecision",value:function(e,t,r,n,i,o){var a,s,u,l,c,f,d,v,h,p,g=this,y=e.getUserId(),m=e.getAttributes(),_=o.featureKeyMap[t],b=r.decisionSource,E=null!==(s=null===(a=r.experiment)||void 0===a?void 0:a.key)&&void 0!==s?s:null,I=null!==(l=null===(u=r.experiment)||void 0===u?void 0:u.id)&&void 0!==l?l:null,S=null!==(f=null===(c=r.variation)||void 0===c?void 0:c.key)&&void 0!==f?f:null,w=null!==(v=null===(d=r.variation)||void 0===d?void 0:d.id)&&void 0!==v?v:null,O=M(r),x={},P=!1;O?null===(h=this.logger)||void 0===h||h.info("8",t,y):null===(p=this.logger)||void 0===p||p.info("9",t,y),i[Lt.EXCLUDE_VARIABLES]||_.variables.forEach(function(e){x[e.key]=g.getFeatureVariableValueFromVariation(t,O,r.variation,e,y)}),!i[Lt.DISABLE_DECISION_EVENT]&&(b===Ce.FEATURE_TEST||b===Ce.HOLDOUT||b===Ce.ROLLOUT&&Ft(o))&&(this.sendImpressionEvent(r,t,y,O,m),P=!0);var R=[];i[Lt.INCLUDE_REASONS]&&(R=n.map(function(e){return k.apply(void 0,[e[0]].concat(_to_consumable_array(e.slice(1))))}));var A={flagKey:t,enabled:O,variationKey:S,ruleKey:E,variables:x,reasons:R,decisionEventDispatched:P,experimentId:I,variationId:w};return this.notificationCenter.sendNotifications(vr.DECISION,{type:dr.FLAG,userId:y,attributes:m,decisionInfo:A}),{variationKey:S,enabled:O,variables:x,ruleKey:E,flagKey:t,userContext:e,reasons:R}}},{key:"decideForKeys",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return this.getDecisionForKeys("sync",e,t,r,n).get()}},{key:"decideForKeysAsync",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;return this.getDecisionForKeys("async",e,t,r,n).get()}},{key:"getDecisionForKeys",value:function(e,t,r){var n,i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0,s={},u={},l={},c=this.getProjectConfig();if(!c)return this.errorReporter.report(Xe,"decideForKeys"),kn.of(e,s);if(0===r.length)return kn.of(e,s);var f=this.getAllDecideOptions(o);a&&delete f[Lt.ENABLED_FLAGS_ONLY];var d=[],v=!0,h=!1,p=void 0;try{for(var g,y=r[Symbol.iterator]();!(v=(g=y.next()).done);v=!0){var m=g.value,_=c.featureKeyMap[m];_?d.push(_):(null===(n=this.logger)||void 0===n||n.error($e,m),s[m]=R(m,t,[k('No flag was found for key "%s".',m)]))}}catch(e){h=!0,p=e}finally{try{v||null==y.return||y.return()}finally{if(h)throw p}}return this.decisionService.resolveVariationsForFeatureList(e,c,d,t,f).then(function(r){for(var n=0;n<d.length;n++){var o=d[n].key,a=r[n];a.error?s[o]=R(o,t,a.reasons.map(function(e){return k.apply(void 0,[e[0]].concat(_to_consumable_array(e.slice(1))))})):(u[o]=a.result,l[o]=a.reasons)}var v=!0,h=!1,p=void 0;try{for(var g,y=d[Symbol.iterator]();!(v=(g=y.next()).done);v=!0){var m=g.value.key;if(!s[m]){var _=i.generateDecision(t,m,u[m],l[m],f,c);f[Lt.ENABLED_FLAGS_ONLY]&&!_.enabled||(s[m]=_)}}}catch(e){h=!0,p=e}finally{try{v||null==y.return||y.return()}finally{if(h)throw p}}return kn.of(e,s)})}},{key:"decideAll",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.getProjectConfig();if(!r)return this.errorReporter.report(Xe,"decideAll"),{};var n=Object.keys(r.featureKeyMap);return this.decideForKeys(e,n,t)}},{key:"decideAllAsync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return S(this,void 0,void 0,function(){var r,n,i;return _ts_generator(this,function(o){return r={},(n=this.getProjectConfig())?(i=Object.keys(n.featureKeyMap),[2,this.decideForKeysAsync(e,i,t)]):[2,(this.errorReporter.report(Xe,"decideAll"),r)]})})}},{key:"updateOdpSettings",value:function(){var e=this.getProjectConfig();e&&this.odpManager&&this.odpManager.updateConfig(e.odpIntegrationConfig)}},{key:"sendOdpEvent",value:function(e,t,r,n){var i,o;if(this.odpManager)try{var a=new Cr(t||"",e,r,n);this.odpManager.sendEvent(a)}catch(e){null===(o=this.logger)||void 0===o||o.error("40",e)}else null===(i=this.logger)||void 0===i||i.error("42","sendOdpEvent")}},{key:"isOdpIntegrated",value:function(){var e,t,r;return null!==(r=null===(t=null===(e=this.getProjectConfig())||void 0===e?void 0:e.odpIntegrationConfig)||void 0===t?void 0:t.integrated)&&void 0!==r&&r}},{key:"fetchQualifiedSegments",value:function(e,t){var r;return S(this,void 0,void 0,function(){var n;return _ts_generator(this,function(i){switch(i.label){case 0:return this.odpManager?[4,this.odpManager.fetchQualifiedSegments(e,t)]:[3,2];case 1:return n=i.sent(),[3,3];case 2:null===(r=this.logger)||void 0===r||r.error("42","fetchQualifiedSegments"),n=null,i.label=3;case 3:return[2,n]}})})}},{key:"getVuid",value:function(){var e;if(this.vuidManager)return this.vuidManager.getVuid();null===(e=this.logger)||void 0===e||e.error("54")}}]),t}(qt),ri=function(){function e(t){_class_call_check(this,e),this.predictionEndpointTemplate="https://prediction.cmab.optimizely.com/predict/%s",this.requestHandler=t.requestHandler,this.retryConfig=t.retryConfig,t.predictionEndpointTemplate&&(this.predictionEndpointTemplate=t.predictionEndpointTemplate)}return _create_class(e,[{key:"fetchDecision",value:function(e,t,r,n){var i,o;return S(this,void 0,void 0,function(){var a,s,u,l;return _ts_generator(this,function(c){switch(c.label){case 0:return a=this,s=k(this.predictionEndpointTemplate,e),u=Object.keys(r).map(function(e){return{id:e,value:r[e],type:"custom_attribute"}}),l={instances:[{visitorId:t,experimentId:e,attributes:u,cmabUUID:n}]},[4,this.retryConfig?cr(function(){return a.doFetch(s,JSON.stringify(l))},null===(o=(i=this.retryConfig).backoffProvider)||void 0===o?void 0:o.call(i),this.retryConfig.maxRetries).result:this.doFetch(s,JSON.stringify(l))];case 1:return[2,c.sent()]}})})}},{key:"doFetch",value:function(e,t){return S(this,void 0,void 0,function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,this.requestHandler.makeRequest(e,{"Content-Type":"application/json"},"POST",t).responsePromise];case 1:return r=i.sent(),Ht(r.statusCode)?(n=JSON.parse(r.body),[2,this.validateResponse(n)?String(n.predictions[0].variation_id):Promise.reject(new qe("Invalid CMAB fetch response"))]):[2,Promise.reject(new qe("CMAB decision fetch failed with status: %s",r.statusCode))]}})})}},{key:"validateResponse",value:function(e){return e.predictions&&e.predictions.length>0&&e.predictions[0].variation_id}}]),e}(),ni=function(){function e(t){var r;_class_call_check(this,e),this.serializers=Array.from({length:1e3},function(){return new br}),this.cmabCache=t.cmabCache,this.cmabClient=t.cmabClient,this.logger=t.logger,null===(r=this.logger)||void 0===r||r.setName("CmabService")}return _create_class(e,[{key:"getSerializerIndex",value:function(e,t){var r=this.getCacheKey(e,t),n=Ee.default.v3(r);return Math.abs(n)%1e3}},{key:"getDecision",value:function(e,t,r,n){return S(this,void 0,void 0,function(){var i,o;return _ts_generator(this,function(a){return i=this,o=this.getSerializerIndex(t.getUserId(),r),[2,this.serializers[o].run(function(){return i.getDecisionInternal(e,t,r,n)})]})})}},{key:"getDecisionInternal",value:function(e,t,r,n){var i,o,a,s,u,l;return S(this,void 0,void 0,function(){var c,f,d,v,h,p,g;return _ts_generator(this,function(y){switch(y.label){case 0:return c=t.getUserId(),f=this.filterAttributes(e,t,r),n[Lt.IGNORE_CMAB_CACHE]?[2,(null===(i=this.logger)||void 0===i||i.debug("11",c,r),this.fetchDecision(r,c,f))]:(n[Lt.RESET_CMAB_CACHE]&&(null===(o=this.logger)||void 0===o||o.debug("22",c,r),this.cmabCache.reset()),d=this.getCacheKey(c,r),n[Lt.INVALIDATE_USER_CMAB_CACHE]&&(null===(a=this.logger)||void 0===a||a.debug("12",c,r),this.cmabCache.remove(d)),[4,this.cmabCache.lookup(d)]);case 1:if(v=y.sent(),h=JSON.stringify(f,Object.keys(f).sort()),p=String(Ee.default.v3(h)),v){if(v.attributesHash===p)return[2,(null===(s=this.logger)||void 0===s||s.debug("3",c,r),{variationId:v.variationId,cmabUuid:v.cmabUuid})];null===(u=this.logger)||void 0===u||u.debug("2",c,r),this.cmabCache.remove(d)}else null===(l=this.logger)||void 0===l||l.debug("4",c,r);return[4,this.fetchDecision(r,c,f)];case 2:return g=y.sent(),[2,(this.cmabCache.save(d,{attributesHash:p,variationId:g.variationId,cmabUuid:g.cmabUuid}),g)]}})})}},{key:"fetchDecision",value:function(e,t,r){return S(this,void 0,void 0,function(){var n,i;return _ts_generator(this,function(o){switch(o.label){case 0:return n=be(),i={},[4,this.cmabClient.fetchDecision(e,t,r,n)];case 1:return[2,(i.variationId=o.sent(),i.cmabUuid=n,i)]}})})}},{key:"filterAttributes",value:function(e,t,r){var n={},i=t.getAttributes(),o=e.experimentIdMap[r];return o&&o.cmab?(o.cmab.attributeIds.forEach(function(t){var r=e.attributeIdMap[t];i.hasOwnProperty(r.key)&&(n[r.key]=i[r.key])}),n):n}},{key:"getCacheKey",value:function(e,t){return"".concat(e.length,"-").concat(e,"-").concat(t)}}]),e}(),ii=function(e){var t,r,n,i,o,a,s=e.clientEngine,u=e.clientVersion,l=e.jsonSchemaValidator,c=e.userProfileService,f=e.userProfileServiceAsync,d=e.defaultDecideOptions,v=e.disposable,h=e.requestHandler,p=function(e){if(!e||"object"!=(void 0===e?"undefined":_type_of(e)))throw new Error(Yt);if(!e[Xt])throw new Error(Yt);return e[Xt]}(e.projectConfigManager),g=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[Ir]}(e.eventProcessor),y=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[Lr]}(e.odpManager),m=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[Br]}(e.vuidManager),_=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[mt]}(e.errorNotifier),b=function(e){if(e&&"object"==(void 0===e?"undefined":_type_of(e)))return e[pt]}(e.logger),k=new ri({requestHandler:h,retryConfig:{maxRetries:1,backoffProvider:function(){return new Wt(100)}},predictionEndpointTemplate:null===(t=e.cmab)||void 0===t?void 0:t.predictionEndpointTemplate}),E=(null===(r=e.cmab)||void 0===r?void 0:r.cache)?(n=e.cmab.cache,i=function(e){return JSON.parse(e)},o=function(e,t){if(void 0!==e)return t(e)},a={lookup:function(e){return"sync"===n.operation?o(n.lookup(e),i):n.lookup(e).then(function(e){return o(e,i)})},save:function(e,t){return n.save(e,function(e){return JSON.stringify(e)}(t))}},Object.setPrototypeOf(a,n),a):function(){var t,r,n=(null===(t=e.cmab)||void 0===t?void 0:t.cacheSize)||1e4,i=(null===(r=e.cmab)||void 0===r?void 0:r.cacheTtl)||18e5;return new Or(n,i)}(),I={cmabService:new ni({cmabClient:k,cmabCache:E,logger:null==b?void 0:b.child()}),clientEngine:s||Me,clientVersion:u||Ae,jsonSchemaValidator:l,userProfileService:c,userProfileServiceAsync:f,defaultDecideOptions:d,disposable:v,logger:b,errorNotifier:_,projectConfigManager:p,eventProcessor:g,odpManager:y,vuidManager:m,UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators};return new ti(I)},oi=function(){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_class_call_check(this,e),this.logger=r.logger,this.timeout=null!==(t=r.timeout)&&void 0!==t?t:6e4}return _create_class(e,[{key:"makeRequest",value:function(e,t,r,n){var i=we.default.parse(e);if("https:"!==i.protocol&&"http:"!==i.protocol)return{responsePromise:Promise.reject(new qe("64",i.protocol)),abort:function(){}};var o=("https:"===i.protocol?Se.default:Ie.default).request(Object.assign(Object.assign({},this.getRequestOptionsFromUrl(i)),{method:r,headers:Object.assign(Object.assign({},t),{"accept-encoding":"gzip,deflate","content-length":String((null==n?void 0:n.length)||0)}),timeout:this.timeout})),a=this.getAbortableRequestFromRequest(o);return n&&o.write(n),o.end(),a}},{key:"getRequestOptionsFromUrl",value:function(e){return{hostname:e.hostname,path:e.path,port:e.port,protocol:e.protocol}}},{key:"createHeadersFromNodeIncomingMessage",value:function(e){var t={};return Object.keys(e.headers).forEach(function(r){var n=e.headers[r];"string"==typeof n?t[r]=n:void 0===n||n.length>0&&(t[r]=n[0])}),t}},{key:"getAbortableRequestFromRequest",value:function(e){var t=this,r=!1;return{abort:function(){r=!0,e.destroy()},responsePromise:new Promise(function(n,i){e.on("timeout",function(){r=!0,e.destroy(),i(new qe("48"))}),e.on("error",function(e){_instanceof(e,Error)?i(e):i("string"==typeof e?new Error(e):new qe("47"))}),e.once("response",function(e){if(!r){var o=(0,Oe.default)(e);o.setEncoding("utf8");var a="";o.on("data",function(e){r||(a+=e)}),o.on("end",function(){r||(e.statusCode?n({statusCode:e.statusCode,body:a,headers:t.createHeadersFromNodeIncomingMessage(e)}):i(new qe("36")))})}})})}}}]),e}(),ai=new(function(){function e(t){_class_call_check(this,e),this.requestHandler=t}return _create_class(e,[{key:"dispatchEvent",value:function(e){return S(this,void 0,void 0,function(){var t;return _ts_generator(this,function(r){return"POST"!==e.httpVerb?[2,Promise.reject(new qe("44"))]:(t=JSON.stringify(e.params),[2,this.requestHandler.makeRequest(e.url,{"content-type":"application/json"},"POST",t).responsePromise])})})}}]),e}())(new oi),si=function(e){var t,r={autoUpdate:!0,requestHandler:new oi};return t=Object.assign(Object.assign({},r),e),_define_property({},Xt,function(e){var t;e.cache&&$t(e.cache);var r=null!==(t=e.updateInterval)&&void 0!==t?t:3e5,n=new Gt(1e3,r,500),i=new Qt(r,n),o=[];r<3e4&&o.push({level:he.Warn,message:"Polling intervals below 30 seconds are not recommended.",params:[]});var a={sdkKey:e.sdkKey,autoUpdate:e.autoUpdate,urlTemplate:e.urlTemplate,datafileAccessToken:e.datafileAccessToken,customHeaders:e.customHeaders,requestHandler:e.requestHandler,cache:e.cache,repeater:i,startupLogs:o},s=new Jt(a);return new zt({datafile:e.datafile,datafileManager:s,jsonSchemaValidator:e.jsonSchemaValidator})}(t))},ui=function(){var e;return wr((Sr(e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ai),new Er(e)))},li=function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.eventStore?"async"===(t=r.eventStore).operation?new or(t,kr,JSON.parse,JSON.stringify):new ir(t,kr,JSON.parse,JSON.stringify):void 0;return function(e){return wr(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_r,r=e.eventDispatcher,n=e.closingEventDispatcher,i=e.retryOptions,o=e.eventStore;Sr(r),n&&Sr(n),o&&$t(o);var a=i?{maxRetries:i.maxRetries,backoffProvider:function(){var e,t,r=null!==(e=null==i?void 0:i.minBackoff)&&void 0!==e?e:200,n=null!==(t=null==i?void 0:i.maxBackoff)&&void 0!==t?t:1e3;return new Gt(r,n,50)}}:void 0,s=[],u=e.defaultFlushInterval,l=e.defaultBatchSize,c=u;void 0===e.flushInterval||e.flushInterval<=0?s.push({level:he.Warn,message:"Invalid flushInterval %s, defaulting to %s",params:[e.flushInterval,u]}):c=e.flushInterval;var f=l;return void 0===e.batchSize||e.batchSize<=0?s.push({level:he.Warn,message:"Invalid batchSize %s, defaulting to %s",params:[e.batchSize,l]}):f=e.batchSize,new t({eventDispatcher:r,closingEventDispatcher:n,dispatchRepeater:new Qt(c),failedEventRepeater:e.failedEventRetryInterval?new Qt(e.failedEventRetryInterval):void 0,retryConfig:a,batchSize:f,eventStore:o,startupLogs:s})}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:_r))}({eventDispatcher:r.eventDispatcher||ai,closingEventDispatcher:r.closingEventDispatcher,flushInterval:r.flushInterval,batchSize:r.batchSize,defaultFlushInterval:3e4,defaultBatchSize:10,retryOptions:{maxRetries:null!==(e=r.maxRetries)&&void 0!==e?e:2},failedEventRetryInterval:n?2e4:void 0,eventStore:n})},ci=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=new oi({timeout:t.segmentsApiTimeout||1e4}),n=new oi({timeout:t.eventApiTimeout||1e4});return e=Object.assign(Object.assign({},t),{segmentRequestHandler:r,eventRequestHandler:n,eventBatchSize:t.eventBatchSize||10,eventFlushInterval:t.eventFlushInterval||1e3,eventRequestGenerator:Pr}),_define_property({},Lr,qr(e))},fi=function(){return _define_property({},Br,void 0)},di=function(e){var t=Object.assign(Object.assign({},e),{clientEngine:e.clientEngine||Re,requestHandler:new oi});return ii(t)},vi=function(){},hi=Re,pi=["node"],gi={},yi={type:"optimizely",config:{},init:function(e){return _async_to_generator(function(e){var t,r,n,i,o,a,s,u,l,c,f,d,v;return _ts_generator(this,function(h){switch(h.label){case 0:return t=e.config,r=e.env,(null==(s=t.settings)?void 0:s.sdkKey)?(u=function(e){return(null==e?void 0:e.optimizely)?e.optimizely:fe}(r),l=u.createPollingProjectConfigManager({sdkKey:s.sdkKey,autoUpdate:null===(n=s.autoUpdate)||void 0===n||n,updateInterval:null!==(i=s.updateInterval)&&void 0!==i?i:6e4}),c=u.createBatchEventProcessor({batchSize:null!==(o=s.batchSize)&&void 0!==o?o:10,flushInterval:null!==(a=s.flushInterval)&&void 0!==a?a:1e3}),f={projectConfigManager:l,eventProcessor:c},[4,(d=u.createInstance(f)).onReady()]):[2,!1];case 1:return h.sent(),v={client:d},[2,_object_spread_props(_object_spread({},t),{settings:_object_spread_props(_object_spread({},s),{_state:v})})]}})}).apply(this,arguments)},push:function(e,t){return _async_to_generator(function(e,t){var r,n,i,o,a,s,f,d,h,p,g,y,m,_,b,k,E,I,S,w,O,x,P,M,R,A,C;return _ts_generator(this,function(j){switch(j.label){case 0:return r=t.config,n=t.rule,t.env,i=t.collector,o=r.settings||{},a=o._state||{},s=(null==n?void 0:n.settings)||{},a.client?void 0===(f=o.userId)?[3,2]:[4,v(e,f,{collector:i})]:[2];case 1:h=j.sent(),c(h)&&(d=h),j.label=2;case 2:return d?void 0===o.attributes?[3,4]:[4,v(e,o.attributes,{collector:i})]:[2];case 3:g=j.sent(),l(g)&&(p=g),j.label=4;case 4:if(d!==a.lastUserId||!a.userContext){if(!(y=a.client.createUserContext(d,p)))return[2];a.userContext=y,a.lastUserId=d}return(m=a.userContext)?void 0===s.attributes?[3,6]:[4,v(e,s.attributes,{collector:i})]:[2];case 5:if(_=j.sent(),l(_)){b=!0,k=!1,E=void 0;try{for(I=Object.entries(_)[Symbol.iterator]();!(b=(S=I.next()).done);b=!0)w=_sliced_to_array(S.value,2),O=w[0],x=w[1],m.setAttribute(O,x)}catch(e){k=!0,E=e}finally{try{b||null==I.return||I.return()}finally{if(k)throw E}}}j.label=6;case 6:return!0===(null==n?void 0:n.silent)?[3,13]:(P=c(null==n?void 0:n.name)?n.name:e.name,M={},void 0===s.eventTags?[3,8]:[4,v(e,s.eventTags,{collector:i})]);case 7:R=j.sent(),l(R)&&Object.assign(M,R),j.label=8;case 8:return void 0===s.revenue?[3,10]:[4,v(e,s.revenue,{collector:i})];case 9:A=j.sent(),u(A)&&(M.revenue=A),j.label=10;case 10:return void 0===s.value?[3,12]:[4,v(e,s.value,{collector:i})];case 11:C=j.sent(),u(C)&&(M.value=C),j.label=12;case 12:m.trackEvent(P,M),j.label=13;case 13:return o._state=a,[2]}})}).apply(this,arguments)},on:function(e,t){var r,n,i;if("consent"===e&&t.data){var o=null===(r=t.config)||void 0===r?void 0:r.consent;if(o&&0!==Object.keys(o).length){var a=t.data,s=Object.keys(o).every(function(e){return!0===a[e]}),u=null===(i=t.config)||void 0===i||null===(n=i.settings)||void 0===n?void 0:n._state;!s&&(null==u?void 0:u.client)&&(u.client.close(),u.client=void 0,u.userContext=void 0)}}},destroy:function(e){var t=e.config,r=((null==t?void 0:t.settings)||{})._state;(null==r?void 0:r.client)&&(r.client.close(),r.client=void 0,r.userContext=void 0)}},mi=yi;return En=re,$(q({},"__esModule",{value:!0}),En)}();
|