Socket
Socket
Sign inDemoInstall

recombee-js-api-client

Package Overview
Dependencies
1
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.1.4 to 4.1.5

2

dist/recombee-api-client.min.js

@@ -1,2 +0,2 @@

(function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define('recombee',[],t):'object'==typeof exports?exports.recombee=t():e.recombee=t()})('undefined'==typeof self?this:self,function(){return function(e){function t(r){if(a[r])return a[r].exports;var s=a[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=4)}([function(e,t){'use strict';t.Request=class{constructor(e,t,a){this.method=e,this.path=t,this.timeout=a}}},function(e,t){'use strict';class a extends Error{constructor(e){super(e),this.name=this.constructor.name,'function'==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}}t.ApiError=a},function(e,t,a){'use strict';const r=a(1);class s extends r.ApiError{constructor(e,t,a){super(a),this.request=e,this.statusCode=t}}t.ResponseError=s},function(e,t,a){'use strict';const r=a(1);class s extends r.ApiError{constructor(e){super(`Client did not get response within ${e.timeout} ms`),this.request=e}}t.TimeoutError=s},function(e,t,a){e.exports=a(5)},function(e,t,a){'use strict';t.ApiClient=a(6).ApiClient,t.ApiError=a(1).ApiError,t.ResponseError=a(2).ResponseError,t.TimeoutError=a(3).TimeoutError,t.MergeUsers=a(9).MergeUsers,t.AddDetailView=a(10).AddDetailView,t.AddPurchase=a(11).AddPurchase,t.AddRating=a(12).AddRating,t.AddCartAddition=a(13).AddCartAddition,t.AddBookmark=a(14).AddBookmark,t.SetViewPortion=a(15).SetViewPortion,t.RecommendItemsToUser=a(16).RecommendItemsToUser,t.RecommendItemsToItem=a(17).RecommendItemsToItem,t.RecommendNextItems=a(18).RecommendNextItems,t.RecommendItemSegmentsToUser=a(19).RecommendItemSegmentsToUser,t.RecommendItemSegmentsToItem=a(20).RecommendItemSegmentsToItem,t.RecommendItemSegmentsToItemSegment=a(21).RecommendItemSegmentsToItemSegment,t.SearchItems=a(22).SearchItems,t.SearchItemSegments=a(23).SearchItemSegments,t.Batch=a(24).Batch},function(e,t,a){'use strict';const r=a(7),s=a(8);t.ApiClient=class{constructor(e,t,a){this.databaseId=e,this.publicToken=t,this.options=a||{},this.baseUri=this._getBaseUri(),this.useHttps=!('useHttps'in this.options)||this.options.useHttps,this.async=!('async'in this.options)||this.options.async}_getRegionalBaseUri(e){const t={"ap-se":'client-rapi-ap-se.recombee.com',"ca-east":'client-rapi-ca-east.recombee.com',"eu-west":'client-rapi-eu-west.recombee.com',"us-west":'client-rapi-us-west.recombee.com'}[e.toLowerCase()];if(t===void 0)throw new Error(`Region "${e}" is unknown. You may need to update the version of the SDK.`);return t}_getBaseUri(){let e=this.options.baseUri;if(this.options.region){if(e)throw new Error('baseUri and region cannot be specified at the same time');e=this._getRegionalBaseUri(this.options.region)}return e||'client-rapi.recombee.com'}send(e,t){var a=this;if(t===void 0&&window.Promise)return new Promise(function(t,r){a.send(e,function(e,a){e?r(e):t(a)})});var r=this._signUrl(e.path),o=(this.useHttps?'https://':'http://')+this.baseUri+r,i=new XMLHttpRequest;i.open('POST',o,this.async),i.setRequestHeader('Accept','application/json'),i.setRequestHeader('Content-Type','application/json'),this.async&&(i.timeout=e.timeout),i.onreadystatechange=function(){if(4==this.readyState&&this.responseText)if(200==this.status){if(t)return t(null,JSON.parse(this.responseText));}else if(t)return t(new s.ResponseError(e,this.status,this.responseText))},i.ontimeout=function(){if(t)return t(new s.TimeoutError(e))},i.send(JSON.stringify(e.bodyParameters()))}_signUrl(e){let t='/'+this.databaseId+e;t+=(-1==e.indexOf('?')?'?':'&')+'frontend_timestamp='+parseInt(new Date().getTime()/1e3);let a=new r('SHA-1','TEXT');return a.setHMACKey(this.publicToken,'TEXT'),a.update(t),t+='&frontend_sign='+a.getHMAC('HEX'),t}}},function(e,r,s){'use strict';var o;(function(i){function n(s,e,o){var i,R,T,H,U,n,f,P,r,t=0,h=[],k=0,m=!1,c=[],I=[],x=!1,G=!1,g=-1;if(o=o||{},i=o.encoding||'UTF8',r=o.numRounds||1,r!==parseInt(r,10)||1>r)throw Error('numRounds must a integer >= 1');if('SHA-1'===s)U=512,n=A,f=B,H=160,P=function(e){return e.slice()};else if(0===s.lastIndexOf('SHA-',0)){if(n=function(e,t){return y(e,t,s)},f=function(t,r,o,i){var a,e;if('SHA-224'===s||'SHA-256'===s)a=(r+65>>>9<<4)+15,e=16;else if('SHA-384'===s||'SHA-512'===s)a=(r+129>>>10<<5)+31,e=32;else throw Error('Unexpected error in SHA-2 implementation');for(;t.length<=a;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=o,t[a]=4294967295&r,t[a-1]=0|r/4294967296,o=t.length,r=0;r<o;r+=e)i=y(t.slice(r,r+e),i,s);if('SHA-224'===s)t=[i[0],i[1],i[2],i[3],i[4],i[5],i[6]];else if('SHA-256'===s)t=i;else if('SHA-384'===s)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b];else if('SHA-512'===s)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b,i[6].a,i[6].b,i[7].a,i[7].b];else throw Error('Unexpected error in SHA-2 implementation');return t},P=function(e){return e.slice()},'SHA-224'===s)U=512,H=224;else if('SHA-256'===s)U=512,H=256;else if('SHA-384'===s)U=1024,H=384;else if('SHA-512'===s)U=1024,H=512;else throw Error('Chosen SHA variant is not supported');}else if(0===s.lastIndexOf('SHA3-',0)||0===s.lastIndexOf('SHAKE',0)){var D=6;if(n=v,P=function(e){var t,a=[];for(t=0;5>t;t+=1)a[t]=e[t].slice();return a},g=1,'SHA3-224'===s)U=1152,H=224;else if('SHA3-256'===s)U=1088,H=256;else if('SHA3-384'===s)U=832,H=384;else if('SHA3-512'===s)U=576,H=512;else if('SHAKE128'===s)U=1344,H=-1,D=31,G=!0;else if('SHAKE256'===s)U=1088,H=-1,D=31,G=!0;else throw Error('Chosen SHA variant is not supported');f=function(t,r,s,a,o){s=U;var i,n=D,e=[],d=s>>>5,m=0,u=r>>>5;for(i=0;i<u&&r>=s;i+=d)a=v(t.slice(i,i+d),a),r-=s;for(t=t.slice(i),r%=s;t.length<d;)t.push(0);for(i=r>>>3,t[i>>2]^=n<<8*(i%4),t[d-1]^=2147483648,a=v(t,a);32*e.length<o&&(t=a[m%5][0|m/5],e.push(t.b),!(32*e.length>=o));)e.push(t.a),m+=1,0==64*m%s&&(v(null,a),m=0);return e}}else throw Error('Chosen SHA variant is not supported');T=S(e,i,g),R=E(s),this.setHMACKey=function(r,o,a){var d;if(!0==m)throw Error('HMAC key already set');if(!0==x)throw Error('Cannot set HMAC key after calling update');if(!0==G)throw Error('SHAKE is not supported for HMAC');for(i=(a||{}).encoding||'UTF8',o=S(o,i,g)(r),r=o.binLen,o=o.value,d=U>>>3,a=d/4-1,d<r/8&&(o=f(o,r,0,E(s),H));o.length<=a;)o.push(0);for(r=0;r<=a;r+=1)c[r]=909522486^o[r],I[r]=1549556828^o[r];R=n(c,R),t=U,m=!0},this.update=function(r){var s,o,a,e=0,i=U>>>5;for(s=T(r,h,k),r=s.binLen,o=s.value,s=r>>>5,a=0;a<s;a+=i)e+U<=r&&(R=n(o.slice(a,a+i),R),e+=U);t+=e,h=o.slice(e>>>5),k=r%U,x=!0},this.getHash=function(o,i){var b,e,A,c;if(!0==m)throw Error('Cannot call getHash after setting HMAC key');if(A=C(i),!0==G){if(-1===A.shakeLen)throw Error('shakeLen must be specified in options');H=A.shakeLen}switch(o){case'HEX':b=function(e){return a(e,H,g,A)};break;case'B64':b=function(e){return d(e,H,g,A)};break;case'BYTES':b=function(e){return u(e,H,g)};break;case'ARRAYBUFFER':try{e=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}b=function(e){return p(e,H,g)};break;case'UINT8ARRAY':try{e=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}b=function(e){return l(e,H,g)};break;default:throw Error('format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}for(c=f(h.slice(),k,t,P(R),H),e=1;e<r;e+=1)!0==G&&0!=H%32&&(c[c.length-1]&=16777215>>>24-H%32),c=f(c,H,0,E(s),H);return b(c)},this.getHMAC=function(r,o){var i,e,A,c;if(!1==m)throw Error('Cannot call getHMAC without first setting HMAC key');switch(A=C(o),r){case'HEX':i=function(e){return a(e,H,g,A)};break;case'B64':i=function(e){return d(e,H,g,A)};break;case'BYTES':i=function(e){return u(e,H,g)};break;case'ARRAYBUFFER':try{i=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}i=function(e){return p(e,H,g)};break;case'UINT8ARRAY':try{i=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}i=function(e){return l(e,H,g)};break;default:throw Error('outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}return e=f(h.slice(),k,t,P(R),H),c=n(I,E(s)),c=f(e,H,U,c,H),i(c)}}function I(e,t){this.a=e,this.b=t}function m(e,t,r,a){var s,o,i,n,d;for(t=t||[0],r=r||0,o=r>>>3,d=-1===a?3:0,s=0;s<e.length;s+=1)n=s+o,i=n>>>2,t.length<=i&&t.push(0),t[i]|=e[s]<<8*(d+n%4*a);return{value:t,binLen:8*e.length+r}}function a(t,a,r,e){var s='';a/=8;var o,i,n;for(n=-1===r?3:0,o=0;o<a;o+=1)i=t[o>>>2]>>>8*(n+o%4*r),s+='0123456789abcdef'.charAt(15&i>>>4)+'0123456789abcdef'.charAt(15&i);return e.outputUpper?s.toUpperCase():s}function d(t,a,r,e){var s,o,i,n,c='',d=a/8;for(n=-1===r?3:0,s=0;s<d;s+=3)for(o=s+1<d?t[s+1>>>2]:0,i=s+2<d?t[s+2>>>2]:0,i=(255&t[s>>>2]>>>8*(n+s%4*r))<<16|(255&o>>>8*(n+(s+1)%4*r))<<8|255&i>>>8*(n+(s+2)%4*r),o=0;4>o;o+=1)c+=8*s+6*o<=a?'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(63&i>>>6*(3-o)):e.b64Pad;return c}function u(t,a,r){var e='';a/=8;var s,o,i;for(i=-1===r?3:0,s=0;s<a;s+=1)o=255&t[s>>>2]>>>8*(i+s%4*r),e+=String.fromCharCode(o);return e}function p(t,a,r){a/=8;var e,s,o,i=new ArrayBuffer(a);for(o=new Uint8Array(i),s=-1===r?3:0,e=0;e<a;e+=1)o[e]=255&t[e>>>2]>>>8*(s+e%4*r);return i}function l(t,a,r){a/=8;var e,s,o=new Uint8Array(a);for(s=-1===r?3:0,e=0;e<a;e+=1)o[e]=255&t[e>>>2]>>>8*(s+e%4*r);return o}function C(e){var t={outputUpper:!1,b64Pad:'=',shakeLen:-1};if(e=e||{},t.outputUpper=e.outputUpper||!1,!0===e.hasOwnProperty('b64Pad')&&(t.b64Pad=e.b64Pad),!0===e.hasOwnProperty('shakeLen')){if(0!=e.shakeLen%8)throw Error('shakeLen must be a multiple of 8');t.shakeLen=e.shakeLen}if('boolean'!=typeof t.outputUpper)throw Error('Invalid outputUpper formatting option');if('string'!=typeof t.b64Pad)throw Error('Invalid b64Pad formatting option');return t}function S(t,s,o){switch(s){case'UTF8':case'UTF16BE':case'UTF16LE':break;default:throw Error('encoding must be UTF8, UTF16BE, or UTF16LE');}switch(t){case'HEX':t=function(e,t,r){var s,i,c,d,n,m,u=e.length;if(0!=u%2)throw Error('String of HEX type must be in byte increments');for(t=t||[0],r=r||0,n=r>>>3,m=-1===o?3:0,s=0;s<u;s+=2){if(i=parseInt(e.substr(s,2),16),isNaN(i))throw Error('String of HEX type contains invalid characters');for(d=(s>>>1)+n,c=d>>>2;t.length<=c;)t.push(0);t[c]|=i<<8*(m+d%4*o)}return{value:t,binLen:4*u+r}};break;case'TEXT':t=function(e,a,i){var c,m,l,b,n,g,u,r,t=0;if(a=a||[0],i=i||0,n=i>>>3,'UTF8'===s)for(r=-1===o?3:0,l=0;l<e.length;l+=1)for(c=e.charCodeAt(l),m=[],128>c?m.push(c):2048>c?(m.push(192|c>>>6),m.push(128|63&c)):55296>c||57344<=c?m.push(224|c>>>12,128|63&c>>>6,128|63&c):(l+=1,c=65536+((1023&c)<<10|1023&e.charCodeAt(l)),m.push(240|c>>>18,128|63&c>>>12,128|63&c>>>6,128|63&c)),b=0;b<m.length;b+=1){for(u=t+n,g=u>>>2;a.length<=g;)a.push(0);a[g]|=m[b]<<8*(r+u%4*o),t+=1}else if('UTF16BE'===s||'UTF16LE'===s)for(r=-1===o?2:0,m='UTF16LE'==s&&1!==o||'UTF16LE'!=s&&1===o,l=0;l<e.length;l+=1){for(c=e.charCodeAt(l),!0===m&&(b=255&c,c=b<<8|c>>>8),u=t+n,g=u>>>2;a.length<=g;)a.push(0);a[g]|=c<<8*(r+u%4*o),t+=2}return{value:a,binLen:8*t+i}};break;case'B64':t=function(e,s,i){var d,m,p,l,n,b,u,r,t=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error('Invalid character in base-64 string');if(m=e.indexOf('='),e=e.replace(/\=/g,''),-1!==m&&m<e.length)throw Error('Invalid \'=\' found in base-64 string');for(s=s||[0],i=i||0,b=i>>>3,r=-1===o?3:0,m=0;m<e.length;m+=4){for(n=e.substr(m,4),p=l=0;p<n.length;p+=1)d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.indexOf(n.charAt(p)),l|=d<<18-6*p;for(p=0;p<n.length-1;p+=1){for(u=t+b,d=u>>>2;s.length<=d;)s.push(0);s[d]|=(255&l>>>16-8*p)<<8*(r+u%4*o),t+=1}}return{value:s,binLen:8*t+i}};break;case'BYTES':t=function(e,t,r){var s,i,c,d,m,n;for(t=t||[0],r=r||0,c=r>>>3,n=-1===o?3:0,i=0;i<e.length;i+=1)s=e.charCodeAt(i),m=i+c,d=m>>>2,t.length<=d&&t.push(0),t[d]|=s<<8*(n+m%4*o);return{value:t,binLen:8*e.length+r}};break;case'ARRAYBUFFER':try{t=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}t=function(e,t,a){return m(new Uint8Array(e),t,a,o)};break;case'UINT8ARRAY':try{t=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}t=function(e,t,a){return m(e,t,a,o)};break;default:throw Error('format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}return t}function R(e,t){return e<<t|e>>>32-t}function h(e,t){return 32<t?(t-=32,new I(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0===t?e:new I(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t)}function b(e,t){return e>>>t|e<<32-t}function g(t,a){var r=null,r=new I(t.a,t.b);return r=32>=a?new I(r.a>>>a|4294967295&r.b<<32-a,r.b>>>a|4294967295&r.a<<32-a):new I(r.b>>>a-32|4294967295&r.a<<64-a,r.a>>>a-32|4294967295&r.b<<64-a)}function t(t,a){var r=null;return r=32>=a?new I(t.a>>>a,t.b>>>a|4294967295&t.a<<32-a):new I(0,t.a>>>a-32)}function T(t,r,s){return t&r^~t&s}function U(t,a,r){return new I(t.a&a.a^~t.a&r.a,t.b&a.b^~t.b&r.b)}function P(t,a,r){return t&a^t&r^a&r}function O(t,a,r){return new I(t.a&a.a^t.a&r.a^a.a&r.a,t.b&a.b^t.b&r.b^a.b&r.b)}function M(e){return b(e,2)^b(e,13)^b(e,22)}function N(t){var a=g(t,28),r=g(t,34);return t=g(t,39),new I(a.a^r.a^t.a,a.b^r.b^t.b)}function _(e){return b(e,6)^b(e,11)^b(e,25)}function j(t){var a=g(t,14),r=g(t,18);return t=g(t,41),new I(a.a^r.a^t.a,a.b^r.b^t.b)}function Q(e){return b(e,7)^b(e,18)^e>>>3}function V(a){var r=g(a,1),s=g(a,8);return a=t(a,7),new I(r.a^s.a^a.a,r.b^s.b^a.b)}function W(e){return b(e,17)^b(e,19)^e>>>10}function $(a){var r=g(a,19),s=g(a,61);return a=t(a,6),new I(r.a^s.a^a.a,r.b^s.b^a.b)}function ee(t,a){var r=(65535&t)+(65535&a);return(65535&(t>>>16)+(a>>>16)+(r>>>16))<<16|65535&r}function G(t,a,r,e){var s=(65535&t)+(65535&a)+(65535&r)+(65535&e);return(65535&(t>>>16)+(a>>>16)+(r>>>16)+(e>>>16)+(s>>>16))<<16|65535&s}function te(t,a,r,e,s){var o=(65535&t)+(65535&a)+(65535&r)+(65535&e)+(65535&s);return(65535&(t>>>16)+(a>>>16)+(r>>>16)+(e>>>16)+(s>>>16)+(o>>>16))<<16|65535&o}function H(t,a){var r,e,s;return r=(65535&t.b)+(65535&a.b),e=(t.b>>>16)+(a.b>>>16)+(r>>>16),s=(65535&e)<<16|65535&r,r=(65535&t.a)+(65535&a.a)+(e>>>16),e=(t.a>>>16)+(a.a>>>16)+(r>>>16),new I((65535&e)<<16|65535&r,s)}function ae(t,a,r,e){var s,o,i;return s=(65535&t.b)+(65535&a.b)+(65535&r.b)+(65535&e.b),o=(t.b>>>16)+(a.b>>>16)+(r.b>>>16)+(e.b>>>16)+(s>>>16),i=(65535&o)<<16|65535&s,s=(65535&t.a)+(65535&a.a)+(65535&r.a)+(65535&e.a)+(o>>>16),o=(t.a>>>16)+(a.a>>>16)+(r.a>>>16)+(e.a>>>16)+(s>>>16),new I((65535&o)<<16|65535&s,i)}function re(t,a,r,e,s){var o,i,n;return o=(65535&t.b)+(65535&a.b)+(65535&r.b)+(65535&e.b)+(65535&s.b),i=(t.b>>>16)+(a.b>>>16)+(r.b>>>16)+(e.b>>>16)+(s.b>>>16)+(o>>>16),n=(65535&i)<<16|65535&o,o=(65535&t.a)+(65535&a.a)+(65535&r.a)+(65535&e.a)+(65535&s.a)+(i>>>16),i=(t.a>>>16)+(a.a>>>16)+(r.a>>>16)+(e.a>>>16)+(s.a>>>16)+(o>>>16),new I((65535&i)<<16|65535&o,n)}function x(e,t){return new I(e.a^t.a,e.b^t.b)}function E(t){var a,e=[];if('SHA-1'===t)e=[1732584193,4023233417,2562383102,271733878,3285377520];else if(0===t.lastIndexOf('SHA-',0))switch(e=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],a=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],t){case'SHA-224':break;case'SHA-256':e=a;break;case'SHA-384':e=[new I(3418070365,e[0]),new I(1654270250,e[1]),new I(2438529370,e[2]),new I(355462360,e[3]),new I(1731405415,e[4]),new I(41048885895,e[5]),new I(3675008525,e[6]),new I(1203062813,e[7])];break;case'SHA-512':e=[new I(a[0],4089235720),new I(a[1],2227873595),new I(a[2],4271175723),new I(a[3],1595750129),new I(a[4],2917565137),new I(a[5],725511199),new I(a[6],4215389547),new I(a[7],327033209)];break;default:throw Error('Unknown SHA variant');}else if(0===t.lastIndexOf('SHA3-',0)||0===t.lastIndexOf('SHAKE',0))for(t=0;5>t;t+=1)e[t]=[new I(0,0),new I(0,0),new I(0,0),new I(0,0),new I(0,0)];else throw Error('No SHA variants supported');return e}function A(t,a){var r,s,o,i,n,d,m,u=[];for(r=a[0],s=a[1],o=a[2],i=a[3],n=a[4],m=0;80>m;m+=1)u[m]=16>m?t[m]:R(u[m-3]^u[m-8]^u[m-14]^u[m-16],1),d=20>m?te(R(r,5),s&o^~s&i,n,1518500249,u[m]):40>m?te(R(r,5),s^o^i,n,1859775393,u[m]):60>m?te(R(r,5),P(s,o,i),n,2400959708,u[m]):te(R(r,5),s^o^i,n,3395469782,u[m]),n=i,i=o,o=R(s,30),s=r,r=d;return a[0]=ee(r,a[0]),a[1]=ee(s,a[1]),a[2]=ee(o,a[2]),a[3]=ee(i,a[3]),a[4]=ee(n,a[4]),a}function B(t,a,r,e){var s;for(s=(a+65>>>9<<4)+15;t.length<=s;)t.push(0);for(t[a>>>5]|=128<<24-a%32,a+=r,t[s]=4294967295&a,t[s-1]=0|a/4294967296,a=t.length,s=0;s<a;s+=16)e=A(t.slice(s,s+16),e);return e}function y(a,s,o){var e,i,d,m,b,l,p,g,n,S,u,r,t,R,h,f,A,x,y,v,k,C,D,B=[];if('SHA-224'===o||'SHA-256'===o)S=64,r=1,C=Number,t=ee,R=G,h=te,f=Q,A=W,x=M,y=_,k=P,v=T,D=L;else if('SHA-384'===o||'SHA-512'===o)S=80,r=2,C=I,t=H,R=ae,h=re,f=V,A=$,x=N,y=j,k=O,v=U,D=c;else throw Error('Unexpected error in SHA-2 implementation');for(o=s[0],e=s[1],i=s[2],d=s[3],m=s[4],b=s[5],l=s[6],p=s[7],u=0;u<S;u+=1)16>u?(n=u*r,g=a.length<=n?0:a[n],n=a.length<=n+1?0:a[n+1],B[u]=new C(g,n)):B[u]=R(A(B[u-2]),B[u-7],f(B[u-15]),B[u-16]),g=h(p,y(m),v(m,b,l),D[u],B[u]),n=t(x(o),k(o,e,i)),p=l,l=b,b=m,m=t(d,g),d=i,i=e,e=o,o=t(g,n);return s[0]=t(o,s[0]),s[1]=t(e,s[1]),s[2]=t(i,s[2]),s[3]=t(d,s[3]),s[4]=t(m,s[4]),s[5]=t(b,s[5]),s[6]=t(l,s[6]),s[7]=t(p,s[7]),s}function v(t,a){var r,e,s,o,i=[],c=[];if(null!==t)for(e=0;e<t.length;e+=2)a[(e>>>1)%5][0|(e>>>1)/5]=x(a[(e>>>1)%5][0|(e>>>1)/5],new I(t[e+1],t[e]));for(r=0;24>r;r+=1){for(o=E('SHA3-'),e=0;5>e;e+=1){s=a[e][0];var d=a[e][1],m=a[e][2],u=a[e][3],n=a[e][4];i[e]=new I(s.a^d.a^m.a^u.a^n.a,s.b^d.b^m.b^u.b^n.b)}for(e=0;5>e;e+=1)c[e]=x(i[(e+4)%5],h(i[(e+1)%5],1));for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)a[e][s]=x(a[e][s],c[e]);for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)o[s][(2*e+3*s)%5]=h(a[e][s],f[e][s]);for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)a[e][s]=x(o[e][s],new I(~o[(e+1)%5][s].a&o[(e+2)%5][s].a,~o[(e+1)%5][s].b&o[(e+2)%5][s].b));a[0][0]=x(a[0][0],D[r])}return a}var L,c,f,D;L=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=[new I(L[0],3609767458),new I(L[1],602891725),new I(L[2],3964484399),new I(L[3],2173295548),new I(L[4],4081628472),new I(L[5],3053834265),new I(L[6],2937671579),new I(L[7],3664609560),new I(L[8],2734883394),new I(L[9],1164996542),new I(L[10],1323610764),new I(L[11],3590304994),new I(L[12],4068182383),new I(L[13],991336113),new I(L[14],633803317),new I(L[15],3479774868),new I(L[16],2666613458),new I(L[17],944711139),new I(L[18],2341262773),new I(L[19],2007800933),new I(L[20],1495990901),new I(L[21],1856431235),new I(L[22],3175218132),new I(L[23],2198950837),new I(L[24],3999719339),new I(L[25],766784016),new I(L[26],2566594879),new I(L[27],3203337956),new I(L[28],1034457026),new I(L[29],2466948901),new I(L[30],3758326383),new I(L[31],168717936),new I(L[32],1188179964),new I(L[33],1546045734),new I(L[34],1522805485),new I(L[35],2643833823),new I(L[36],2343527390),new I(L[37],1014477480),new I(L[38],1206759142),new I(L[39],344077627),new I(L[40],1290863460),new I(L[41],3158454273),new I(L[42],3505952657),new I(L[43],106217008),new I(L[44],3606008344),new I(L[45],1432725776),new I(L[46],1467031594),new I(L[47],851169720),new I(L[48],3100823752),new I(L[49],1363258195),new I(L[50],3750685593),new I(L[51],3785050280),new I(L[52],3318307427),new I(L[53],3812723403),new I(L[54],2003034995),new I(L[55],3602036899),new I(L[56],1575990012),new I(L[57],1125592928),new I(L[58],2716904306),new I(L[59],442776044),new I(L[60],593698344),new I(L[61],3733110249),new I(L[62],2999351573),new I(L[63],3815920427),new I(3391569614,3928383900),new I(3515267271,566280711),new I(3940187606,3454069534),new I(4118630271,4000239992),new I(116418474,1914138554),new I(174292421,2731055270),new I(289380356,3203993006),new I(460393269,320620315),new I(685471733,587496836),new I(852142971,1086792851),new I(1017036298,365543100),new I(1126000580,2618297676),new I(1288033470,3409855158),new I(1501505948,4234509866),new I(1607167915,987167468),new I(1816402316,1246189591)],D=[new I(0,1),new I(0,32898),new I(2147483648,32906),new I(2147483648,2147516416),new I(0,32907),new I(0,2147483649),new I(2147483648,2147516545),new I(2147483648,32777),new I(0,138),new I(0,136),new I(0,2147516425),new I(0,2147483658),new I(0,2147516555),new I(2147483648,139),new I(2147483648,32905),new I(2147483648,32771),new I(2147483648,32770),new I(2147483648,128),new I(0,32778),new I(2147483648,2147483658),new I(2147483648,2147516545),new I(2147483648,32896),new I(0,2147483649),new I(2147483648,2147516424)],f=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]],(o=function(){return n}.call(r,s,r,e),!(o!==void 0&&(e.exports=o)))})(this)},function(e,t,a){'use strict';t.ApiError=a(1).ApiError,t.ResponseError=a(2).ResponseError,t.TimeoutError=a(3).TimeoutError},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('PUT',`/users/${encodeURIComponent(e)}/merge/${encodeURIComponent(t)}`,3e4,!1),this.targetUserId=e,this.sourceUserId=t,a=a||{},this.cascadeCreate=a.cascadeCreate}bodyParameters(){let e={cascadeCreate:!(this.cascadeCreate!==void 0)||this.cascadeCreate};return e}}t.MergeUsers=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/detailviews/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.duration=a.duration,this.cascadeCreate=a.cascadeCreate,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.duration&&(e.duration=this.duration),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddDetailView=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/purchases/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.amount=a.amount,this.price=a.price,this.profit=a.profit,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.amount&&(e.amount=this.amount),void 0!==this.price&&(e.price=this.price),void 0!==this.profit&&(e.profit=this.profit),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddPurchase=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/ratings/',3e3,!1),this.userId=e,this.itemId=t,this.rating=a,r=r||{},this.timestamp=r.timestamp,this.cascadeCreate=r.cascadeCreate,this.recommId=r.recommId,this.additionalData=r.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,e.rating=this.rating,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddRating=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/cartadditions/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.amount=a.amount,this.price=a.price,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.amount&&(e.amount=this.amount),void 0!==this.price&&(e.price=this.price),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddCartAddition=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/bookmarks/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddBookmark=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/viewportions/',3e3,!1),this.userId=e,this.itemId=t,this.portion=a,r=r||{},this.sessionId=r.sessionId,this.timestamp=r.timestamp,this.cascadeCreate=r.cascadeCreate,this.recommId=r.recommId,this.additionalData=r.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,e.portion=this.portion,void 0!==this.sessionId&&(e.sessionId=this.sessionId),void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SetViewPortion=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST',`/recomms/users/${encodeURIComponent(e)}/items/`,9e3,!1),this.userId=e,this.count=t,a=a||{},this.scenario=a.scenario,this.cascadeCreate=a.cascadeCreate,this.returnProperties=a.returnProperties,this.includedProperties=a.includedProperties,this.filter=a.filter,this.booster=a.booster,this.logic=a.logic,this.diversity=a.diversity,this.minRelevance=a.minRelevance,this.rotationRate=a.rotationRate,this.rotationTime=a.rotationTime,this.expertSettings=a.expertSettings,this.returnAbGroup=a.returnAbGroup}bodyParameters(){let e={};return e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.diversity&&(e.diversity=this.diversity),void 0!==this.minRelevance&&(e.minRelevance=this.minRelevance),void 0!==this.rotationRate&&(e.rotationRate=this.rotationRate),void 0!==this.rotationTime&&(e.rotationTime=this.rotationTime),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemsToUser=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/recomms/items/${encodeURIComponent(e)}/items/`,9e3,!1),this.itemId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.returnProperties=r.returnProperties,this.includedProperties=r.includedProperties,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.userImpact=r.userImpact,this.diversity=r.diversity,this.minRelevance=r.minRelevance,this.rotationRate=r.rotationRate,this.rotationTime=r.rotationTime,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.userImpact&&(e.userImpact=this.userImpact),void 0!==this.diversity&&(e.diversity=this.diversity),void 0!==this.minRelevance&&(e.minRelevance=this.minRelevance),void 0!==this.rotationRate&&(e.rotationRate=this.rotationRate),void 0!==this.rotationTime&&(e.rotationTime=this.rotationTime),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemsToItem=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t){super('POST',`/recomms/next/items/${encodeURIComponent(e)}`,9e3,!1),this.recommId=e,this.count=t}bodyParameters(){let e={count:this.count,cascadeCreate:!(this.cascadeCreate!==void 0)||this.cascadeCreate};return e}}t.RecommendNextItems=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST',`/recomms/users/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.userId=e,this.count=t,a=a||{},this.scenario=a.scenario,this.cascadeCreate=a.cascadeCreate,this.filter=a.filter,this.booster=a.booster,this.logic=a.logic,this.expertSettings=a.expertSettings,this.returnAbGroup=a.returnAbGroup}bodyParameters(){let e={};return e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToUser=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/recomms/items/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.itemId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToItem=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/recomms/item-segments/item-segments/',9e3,!1),this.contextSegmentId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.contextSegmentId=this.contextSegmentId,e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToItemSegment=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/search/users/${encodeURIComponent(e)}/items/`,9e3,!1),this.userId=e,this.searchQuery=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.returnProperties=r.returnProperties,this.includedProperties=r.includedProperties,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.searchQuery=this.searchQuery,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SearchItems=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/search/users/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.userId=e,this.searchQuery=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.searchQuery=this.searchQuery,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SearchItemSegments=s},function(e,t,a){'use strict';const r=a(0);var s=(e)=>e.map((e)=>e.timeout).reduce((e,t)=>e+t,0);class o extends r.Request{constructor(e,t){super('POST','/batch/',s(e),!0),this.requests=e,t=t||{},this.distinctRecomms=t.distinctRecomms}bodyParameters(){let e=this.requests.map((e)=>this._request_to_batch_object(e)),t={requests:e};return void 0!==this.distinctRecomms&&(t.distinctRecomms=this.distinctRecomms),t}_request_to_batch_object(e){const t=e.bodyParameters();return{method:e.method,path:e.path,params:Object.keys(t).length?t:void 0}}}t.Batch=o}])});
(function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define('recombee',[],t):'object'==typeof exports?exports.recombee=t():e.recombee=t()})('undefined'==typeof self?this:self,function(){return function(e){function t(r){if(a[r])return a[r].exports;var s=a[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=4)}([function(e,t){'use strict';t.Request=class{constructor(e,t,a,r){this.method=e,this.path=t,this.timeout=a,this.ensureHttps=r}}},function(e,t){'use strict';class a extends Error{constructor(e){super(e),this.name=this.constructor.name,'function'==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}}t.ApiError=a},function(e,t,a){'use strict';const r=a(1);class s extends r.ApiError{constructor(e,t,a){super(a),this.request=e,this.statusCode=t}}t.ResponseError=s},function(e,t,a){'use strict';const r=a(1);class s extends r.ApiError{constructor(e){super(`Client did not get response within ${e.timeout} ms`),this.request=e}}t.TimeoutError=s},function(e,t,a){e.exports=a(5)},function(e,t,a){'use strict';t.ApiClient=a(6).ApiClient,t.ApiError=a(1).ApiError,t.ResponseError=a(2).ResponseError,t.TimeoutError=a(3).TimeoutError,t.MergeUsers=a(9).MergeUsers,t.AddDetailView=a(10).AddDetailView,t.AddPurchase=a(11).AddPurchase,t.AddRating=a(12).AddRating,t.AddCartAddition=a(13).AddCartAddition,t.AddBookmark=a(14).AddBookmark,t.SetViewPortion=a(15).SetViewPortion,t.RecommendItemsToUser=a(16).RecommendItemsToUser,t.RecommendItemsToItem=a(17).RecommendItemsToItem,t.RecommendNextItems=a(18).RecommendNextItems,t.RecommendItemSegmentsToUser=a(19).RecommendItemSegmentsToUser,t.RecommendItemSegmentsToItem=a(20).RecommendItemSegmentsToItem,t.RecommendItemSegmentsToItemSegment=a(21).RecommendItemSegmentsToItemSegment,t.SearchItems=a(22).SearchItems,t.SearchItemSegments=a(23).SearchItemSegments,t.Batch=a(24).Batch},function(e,t,a){'use strict';const r=a(7),s=a(8);t.ApiClient=class{constructor(e,t,a){this.databaseId=e,this.publicToken=t,this.options=a||{},this.baseUri=this._getBaseUri(),this.useHttps=!('useHttps'in this.options)||this.options.useHttps,this.async=!('async'in this.options)||this.options.async}_getRegionalBaseUri(e){const t={"ap-se":'client-rapi-ap-se.recombee.com',"ca-east":'client-rapi-ca-east.recombee.com',"eu-west":'client-rapi-eu-west.recombee.com',"us-west":'client-rapi-us-west.recombee.com'}[e.toLowerCase()];if(t===void 0)throw new Error(`Region "${e}" is unknown. You may need to update the version of the SDK.`);return t}_getBaseUri(){let e=this.options.baseUri;if(this.options.region){if(e)throw new Error('baseUri and region cannot be specified at the same time');e=this._getRegionalBaseUri(this.options.region)}return e||'client-rapi.recombee.com'}send(e,t){var a=this;if(t===void 0&&window.Promise)return new Promise(function(t,r){a.send(e,function(e,a){e?r(e):t(a)})});var r=this._signUrl(e.path),o=(this.useHttps||e.ensureHttps?'https://':'http://')+this.baseUri+r,i=new XMLHttpRequest;i.open('POST',o,this.async),i.setRequestHeader('Accept','application/json'),i.setRequestHeader('Content-Type','application/json'),this.async&&(i.timeout=e.timeout),i.onreadystatechange=function(){if(4==this.readyState&&this.responseText)if(200==this.status){if(t)return t(null,JSON.parse(this.responseText));}else if(t)return t(new s.ResponseError(e,this.status,this.responseText))},i.ontimeout=function(){if(t)return t(new s.TimeoutError(e))},i.send(JSON.stringify(e.bodyParameters()))}_signUrl(e){let t='/'+this.databaseId+e;t+=(-1==e.indexOf('?')?'?':'&')+'frontend_timestamp='+parseInt(new Date().getTime()/1e3);let a=new r('SHA-1','TEXT');return a.setHMACKey(this.publicToken,'TEXT'),a.update(t),t+='&frontend_sign='+a.getHMAC('HEX'),t}}},function(e,r,s){'use strict';var o;(function(i){function n(s,e,o){var i,R,T,H,U,n,f,P,r,t=0,h=[],k=0,m=!1,c=[],I=[],x=!1,G=!1,g=-1;if(o=o||{},i=o.encoding||'UTF8',r=o.numRounds||1,r!==parseInt(r,10)||1>r)throw Error('numRounds must a integer >= 1');if('SHA-1'===s)U=512,n=A,f=B,H=160,P=function(e){return e.slice()};else if(0===s.lastIndexOf('SHA-',0)){if(n=function(e,t){return y(e,t,s)},f=function(t,r,o,i){var a,e;if('SHA-224'===s||'SHA-256'===s)a=(r+65>>>9<<4)+15,e=16;else if('SHA-384'===s||'SHA-512'===s)a=(r+129>>>10<<5)+31,e=32;else throw Error('Unexpected error in SHA-2 implementation');for(;t.length<=a;)t.push(0);for(t[r>>>5]|=128<<24-r%32,r+=o,t[a]=4294967295&r,t[a-1]=0|r/4294967296,o=t.length,r=0;r<o;r+=e)i=y(t.slice(r,r+e),i,s);if('SHA-224'===s)t=[i[0],i[1],i[2],i[3],i[4],i[5],i[6]];else if('SHA-256'===s)t=i;else if('SHA-384'===s)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b];else if('SHA-512'===s)t=[i[0].a,i[0].b,i[1].a,i[1].b,i[2].a,i[2].b,i[3].a,i[3].b,i[4].a,i[4].b,i[5].a,i[5].b,i[6].a,i[6].b,i[7].a,i[7].b];else throw Error('Unexpected error in SHA-2 implementation');return t},P=function(e){return e.slice()},'SHA-224'===s)U=512,H=224;else if('SHA-256'===s)U=512,H=256;else if('SHA-384'===s)U=1024,H=384;else if('SHA-512'===s)U=1024,H=512;else throw Error('Chosen SHA variant is not supported');}else if(0===s.lastIndexOf('SHA3-',0)||0===s.lastIndexOf('SHAKE',0)){var D=6;if(n=v,P=function(e){var t,a=[];for(t=0;5>t;t+=1)a[t]=e[t].slice();return a},g=1,'SHA3-224'===s)U=1152,H=224;else if('SHA3-256'===s)U=1088,H=256;else if('SHA3-384'===s)U=832,H=384;else if('SHA3-512'===s)U=576,H=512;else if('SHAKE128'===s)U=1344,H=-1,D=31,G=!0;else if('SHAKE256'===s)U=1088,H=-1,D=31,G=!0;else throw Error('Chosen SHA variant is not supported');f=function(t,r,s,a,o){s=U;var i,n=D,e=[],d=s>>>5,m=0,u=r>>>5;for(i=0;i<u&&r>=s;i+=d)a=v(t.slice(i,i+d),a),r-=s;for(t=t.slice(i),r%=s;t.length<d;)t.push(0);for(i=r>>>3,t[i>>2]^=n<<8*(i%4),t[d-1]^=2147483648,a=v(t,a);32*e.length<o&&(t=a[m%5][0|m/5],e.push(t.b),!(32*e.length>=o));)e.push(t.a),m+=1,0==64*m%s&&(v(null,a),m=0);return e}}else throw Error('Chosen SHA variant is not supported');T=S(e,i,g),R=E(s),this.setHMACKey=function(r,o,a){var d;if(!0==m)throw Error('HMAC key already set');if(!0==x)throw Error('Cannot set HMAC key after calling update');if(!0==G)throw Error('SHAKE is not supported for HMAC');for(i=(a||{}).encoding||'UTF8',o=S(o,i,g)(r),r=o.binLen,o=o.value,d=U>>>3,a=d/4-1,d<r/8&&(o=f(o,r,0,E(s),H));o.length<=a;)o.push(0);for(r=0;r<=a;r+=1)c[r]=909522486^o[r],I[r]=1549556828^o[r];R=n(c,R),t=U,m=!0},this.update=function(r){var s,o,a,e=0,i=U>>>5;for(s=T(r,h,k),r=s.binLen,o=s.value,s=r>>>5,a=0;a<s;a+=i)e+U<=r&&(R=n(o.slice(a,a+i),R),e+=U);t+=e,h=o.slice(e>>>5),k=r%U,x=!0},this.getHash=function(o,i){var b,e,A,c;if(!0==m)throw Error('Cannot call getHash after setting HMAC key');if(A=C(i),!0==G){if(-1===A.shakeLen)throw Error('shakeLen must be specified in options');H=A.shakeLen}switch(o){case'HEX':b=function(e){return a(e,H,g,A)};break;case'B64':b=function(e){return d(e,H,g,A)};break;case'BYTES':b=function(e){return u(e,H,g)};break;case'ARRAYBUFFER':try{e=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}b=function(e){return p(e,H,g)};break;case'UINT8ARRAY':try{e=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}b=function(e){return l(e,H,g)};break;default:throw Error('format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}for(c=f(h.slice(),k,t,P(R),H),e=1;e<r;e+=1)!0==G&&0!=H%32&&(c[c.length-1]&=16777215>>>24-H%32),c=f(c,H,0,E(s),H);return b(c)},this.getHMAC=function(r,o){var i,e,A,c;if(!1==m)throw Error('Cannot call getHMAC without first setting HMAC key');switch(A=C(o),r){case'HEX':i=function(e){return a(e,H,g,A)};break;case'B64':i=function(e){return d(e,H,g,A)};break;case'BYTES':i=function(e){return u(e,H,g)};break;case'ARRAYBUFFER':try{i=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}i=function(e){return p(e,H,g)};break;case'UINT8ARRAY':try{i=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}i=function(e){return l(e,H,g)};break;default:throw Error('outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}return e=f(h.slice(),k,t,P(R),H),c=n(I,E(s)),c=f(e,H,U,c,H),i(c)}}function I(e,t){this.a=e,this.b=t}function m(e,t,r,a){var s,o,i,n,d;for(t=t||[0],r=r||0,o=r>>>3,d=-1===a?3:0,s=0;s<e.length;s+=1)n=s+o,i=n>>>2,t.length<=i&&t.push(0),t[i]|=e[s]<<8*(d+n%4*a);return{value:t,binLen:8*e.length+r}}function a(t,a,r,e){var s='';a/=8;var o,i,n;for(n=-1===r?3:0,o=0;o<a;o+=1)i=t[o>>>2]>>>8*(n+o%4*r),s+='0123456789abcdef'.charAt(15&i>>>4)+'0123456789abcdef'.charAt(15&i);return e.outputUpper?s.toUpperCase():s}function d(t,a,r,e){var s,o,i,n,c='',d=a/8;for(n=-1===r?3:0,s=0;s<d;s+=3)for(o=s+1<d?t[s+1>>>2]:0,i=s+2<d?t[s+2>>>2]:0,i=(255&t[s>>>2]>>>8*(n+s%4*r))<<16|(255&o>>>8*(n+(s+1)%4*r))<<8|255&i>>>8*(n+(s+2)%4*r),o=0;4>o;o+=1)c+=8*s+6*o<=a?'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(63&i>>>6*(3-o)):e.b64Pad;return c}function u(t,a,r){var e='';a/=8;var s,o,i;for(i=-1===r?3:0,s=0;s<a;s+=1)o=255&t[s>>>2]>>>8*(i+s%4*r),e+=String.fromCharCode(o);return e}function p(t,a,r){a/=8;var e,s,o,i=new ArrayBuffer(a);for(o=new Uint8Array(i),s=-1===r?3:0,e=0;e<a;e+=1)o[e]=255&t[e>>>2]>>>8*(s+e%4*r);return i}function l(t,a,r){a/=8;var e,s,o=new Uint8Array(a);for(s=-1===r?3:0,e=0;e<a;e+=1)o[e]=255&t[e>>>2]>>>8*(s+e%4*r);return o}function C(e){var t={outputUpper:!1,b64Pad:'=',shakeLen:-1};if(e=e||{},t.outputUpper=e.outputUpper||!1,!0===e.hasOwnProperty('b64Pad')&&(t.b64Pad=e.b64Pad),!0===e.hasOwnProperty('shakeLen')){if(0!=e.shakeLen%8)throw Error('shakeLen must be a multiple of 8');t.shakeLen=e.shakeLen}if('boolean'!=typeof t.outputUpper)throw Error('Invalid outputUpper formatting option');if('string'!=typeof t.b64Pad)throw Error('Invalid b64Pad formatting option');return t}function S(t,s,o){switch(s){case'UTF8':case'UTF16BE':case'UTF16LE':break;default:throw Error('encoding must be UTF8, UTF16BE, or UTF16LE');}switch(t){case'HEX':t=function(e,t,r){var s,i,c,d,n,m,u=e.length;if(0!=u%2)throw Error('String of HEX type must be in byte increments');for(t=t||[0],r=r||0,n=r>>>3,m=-1===o?3:0,s=0;s<u;s+=2){if(i=parseInt(e.substr(s,2),16),isNaN(i))throw Error('String of HEX type contains invalid characters');for(d=(s>>>1)+n,c=d>>>2;t.length<=c;)t.push(0);t[c]|=i<<8*(m+d%4*o)}return{value:t,binLen:4*u+r}};break;case'TEXT':t=function(e,a,i){var c,m,l,b,n,g,u,r,t=0;if(a=a||[0],i=i||0,n=i>>>3,'UTF8'===s)for(r=-1===o?3:0,l=0;l<e.length;l+=1)for(c=e.charCodeAt(l),m=[],128>c?m.push(c):2048>c?(m.push(192|c>>>6),m.push(128|63&c)):55296>c||57344<=c?m.push(224|c>>>12,128|63&c>>>6,128|63&c):(l+=1,c=65536+((1023&c)<<10|1023&e.charCodeAt(l)),m.push(240|c>>>18,128|63&c>>>12,128|63&c>>>6,128|63&c)),b=0;b<m.length;b+=1){for(u=t+n,g=u>>>2;a.length<=g;)a.push(0);a[g]|=m[b]<<8*(r+u%4*o),t+=1}else if('UTF16BE'===s||'UTF16LE'===s)for(r=-1===o?2:0,m='UTF16LE'==s&&1!==o||'UTF16LE'!=s&&1===o,l=0;l<e.length;l+=1){for(c=e.charCodeAt(l),!0===m&&(b=255&c,c=b<<8|c>>>8),u=t+n,g=u>>>2;a.length<=g;)a.push(0);a[g]|=c<<8*(r+u%4*o),t+=2}return{value:a,binLen:8*t+i}};break;case'B64':t=function(e,s,i){var d,m,p,l,n,b,u,r,t=0;if(-1===e.search(/^[a-zA-Z0-9=+\/]+$/))throw Error('Invalid character in base-64 string');if(m=e.indexOf('='),e=e.replace(/\=/g,''),-1!==m&&m<e.length)throw Error('Invalid \'=\' found in base-64 string');for(s=s||[0],i=i||0,b=i>>>3,r=-1===o?3:0,m=0;m<e.length;m+=4){for(n=e.substr(m,4),p=l=0;p<n.length;p+=1)d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.indexOf(n.charAt(p)),l|=d<<18-6*p;for(p=0;p<n.length-1;p+=1){for(u=t+b,d=u>>>2;s.length<=d;)s.push(0);s[d]|=(255&l>>>16-8*p)<<8*(r+u%4*o),t+=1}}return{value:s,binLen:8*t+i}};break;case'BYTES':t=function(e,t,r){var s,i,c,d,m,n;for(t=t||[0],r=r||0,c=r>>>3,n=-1===o?3:0,i=0;i<e.length;i+=1)s=e.charCodeAt(i),m=i+c,d=m>>>2,t.length<=d&&t.push(0),t[d]|=s<<8*(n+m%4*o);return{value:t,binLen:8*e.length+r}};break;case'ARRAYBUFFER':try{t=new ArrayBuffer(0)}catch(e){throw Error('ARRAYBUFFER not supported by this environment')}t=function(e,t,a){return m(new Uint8Array(e),t,a,o)};break;case'UINT8ARRAY':try{t=new Uint8Array(0)}catch(e){throw Error('UINT8ARRAY not supported by this environment')}t=function(e,t,a){return m(e,t,a,o)};break;default:throw Error('format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY');}return t}function R(e,t){return e<<t|e>>>32-t}function h(e,t){return 32<t?(t-=32,new I(e.b<<t|e.a>>>32-t,e.a<<t|e.b>>>32-t)):0===t?e:new I(e.a<<t|e.b>>>32-t,e.b<<t|e.a>>>32-t)}function b(e,t){return e>>>t|e<<32-t}function g(t,a){var r=null,r=new I(t.a,t.b);return r=32>=a?new I(r.a>>>a|4294967295&r.b<<32-a,r.b>>>a|4294967295&r.a<<32-a):new I(r.b>>>a-32|4294967295&r.a<<64-a,r.a>>>a-32|4294967295&r.b<<64-a)}function t(t,a){var r=null;return r=32>=a?new I(t.a>>>a,t.b>>>a|4294967295&t.a<<32-a):new I(0,t.a>>>a-32)}function T(t,r,s){return t&r^~t&s}function U(t,a,r){return new I(t.a&a.a^~t.a&r.a,t.b&a.b^~t.b&r.b)}function P(t,a,r){return t&a^t&r^a&r}function O(t,a,r){return new I(t.a&a.a^t.a&r.a^a.a&r.a,t.b&a.b^t.b&r.b^a.b&r.b)}function M(e){return b(e,2)^b(e,13)^b(e,22)}function N(t){var a=g(t,28),r=g(t,34);return t=g(t,39),new I(a.a^r.a^t.a,a.b^r.b^t.b)}function _(e){return b(e,6)^b(e,11)^b(e,25)}function j(t){var a=g(t,14),r=g(t,18);return t=g(t,41),new I(a.a^r.a^t.a,a.b^r.b^t.b)}function Q(e){return b(e,7)^b(e,18)^e>>>3}function V(a){var r=g(a,1),s=g(a,8);return a=t(a,7),new I(r.a^s.a^a.a,r.b^s.b^a.b)}function W(e){return b(e,17)^b(e,19)^e>>>10}function $(a){var r=g(a,19),s=g(a,61);return a=t(a,6),new I(r.a^s.a^a.a,r.b^s.b^a.b)}function ee(t,a){var r=(65535&t)+(65535&a);return(65535&(t>>>16)+(a>>>16)+(r>>>16))<<16|65535&r}function G(t,a,r,e){var s=(65535&t)+(65535&a)+(65535&r)+(65535&e);return(65535&(t>>>16)+(a>>>16)+(r>>>16)+(e>>>16)+(s>>>16))<<16|65535&s}function te(t,a,r,e,s){var o=(65535&t)+(65535&a)+(65535&r)+(65535&e)+(65535&s);return(65535&(t>>>16)+(a>>>16)+(r>>>16)+(e>>>16)+(s>>>16)+(o>>>16))<<16|65535&o}function H(t,a){var r,e,s;return r=(65535&t.b)+(65535&a.b),e=(t.b>>>16)+(a.b>>>16)+(r>>>16),s=(65535&e)<<16|65535&r,r=(65535&t.a)+(65535&a.a)+(e>>>16),e=(t.a>>>16)+(a.a>>>16)+(r>>>16),new I((65535&e)<<16|65535&r,s)}function ae(t,a,r,e){var s,o,i;return s=(65535&t.b)+(65535&a.b)+(65535&r.b)+(65535&e.b),o=(t.b>>>16)+(a.b>>>16)+(r.b>>>16)+(e.b>>>16)+(s>>>16),i=(65535&o)<<16|65535&s,s=(65535&t.a)+(65535&a.a)+(65535&r.a)+(65535&e.a)+(o>>>16),o=(t.a>>>16)+(a.a>>>16)+(r.a>>>16)+(e.a>>>16)+(s>>>16),new I((65535&o)<<16|65535&s,i)}function re(t,a,r,e,s){var o,i,n;return o=(65535&t.b)+(65535&a.b)+(65535&r.b)+(65535&e.b)+(65535&s.b),i=(t.b>>>16)+(a.b>>>16)+(r.b>>>16)+(e.b>>>16)+(s.b>>>16)+(o>>>16),n=(65535&i)<<16|65535&o,o=(65535&t.a)+(65535&a.a)+(65535&r.a)+(65535&e.a)+(65535&s.a)+(i>>>16),i=(t.a>>>16)+(a.a>>>16)+(r.a>>>16)+(e.a>>>16)+(s.a>>>16)+(o>>>16),new I((65535&i)<<16|65535&o,n)}function x(e,t){return new I(e.a^t.a,e.b^t.b)}function E(t){var a,e=[];if('SHA-1'===t)e=[1732584193,4023233417,2562383102,271733878,3285377520];else if(0===t.lastIndexOf('SHA-',0))switch(e=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],a=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],t){case'SHA-224':break;case'SHA-256':e=a;break;case'SHA-384':e=[new I(3418070365,e[0]),new I(1654270250,e[1]),new I(2438529370,e[2]),new I(355462360,e[3]),new I(1731405415,e[4]),new I(41048885895,e[5]),new I(3675008525,e[6]),new I(1203062813,e[7])];break;case'SHA-512':e=[new I(a[0],4089235720),new I(a[1],2227873595),new I(a[2],4271175723),new I(a[3],1595750129),new I(a[4],2917565137),new I(a[5],725511199),new I(a[6],4215389547),new I(a[7],327033209)];break;default:throw Error('Unknown SHA variant');}else if(0===t.lastIndexOf('SHA3-',0)||0===t.lastIndexOf('SHAKE',0))for(t=0;5>t;t+=1)e[t]=[new I(0,0),new I(0,0),new I(0,0),new I(0,0),new I(0,0)];else throw Error('No SHA variants supported');return e}function A(t,a){var r,s,o,i,n,d,m,u=[];for(r=a[0],s=a[1],o=a[2],i=a[3],n=a[4],m=0;80>m;m+=1)u[m]=16>m?t[m]:R(u[m-3]^u[m-8]^u[m-14]^u[m-16],1),d=20>m?te(R(r,5),s&o^~s&i,n,1518500249,u[m]):40>m?te(R(r,5),s^o^i,n,1859775393,u[m]):60>m?te(R(r,5),P(s,o,i),n,2400959708,u[m]):te(R(r,5),s^o^i,n,3395469782,u[m]),n=i,i=o,o=R(s,30),s=r,r=d;return a[0]=ee(r,a[0]),a[1]=ee(s,a[1]),a[2]=ee(o,a[2]),a[3]=ee(i,a[3]),a[4]=ee(n,a[4]),a}function B(t,a,r,e){var s;for(s=(a+65>>>9<<4)+15;t.length<=s;)t.push(0);for(t[a>>>5]|=128<<24-a%32,a+=r,t[s]=4294967295&a,t[s-1]=0|a/4294967296,a=t.length,s=0;s<a;s+=16)e=A(t.slice(s,s+16),e);return e}function y(a,s,o){var e,i,d,m,b,l,p,g,n,S,u,r,t,R,h,f,A,x,y,v,k,C,D,B=[];if('SHA-224'===o||'SHA-256'===o)S=64,r=1,C=Number,t=ee,R=G,h=te,f=Q,A=W,x=M,y=_,k=P,v=T,D=L;else if('SHA-384'===o||'SHA-512'===o)S=80,r=2,C=I,t=H,R=ae,h=re,f=V,A=$,x=N,y=j,k=O,v=U,D=c;else throw Error('Unexpected error in SHA-2 implementation');for(o=s[0],e=s[1],i=s[2],d=s[3],m=s[4],b=s[5],l=s[6],p=s[7],u=0;u<S;u+=1)16>u?(n=u*r,g=a.length<=n?0:a[n],n=a.length<=n+1?0:a[n+1],B[u]=new C(g,n)):B[u]=R(A(B[u-2]),B[u-7],f(B[u-15]),B[u-16]),g=h(p,y(m),v(m,b,l),D[u],B[u]),n=t(x(o),k(o,e,i)),p=l,l=b,b=m,m=t(d,g),d=i,i=e,e=o,o=t(g,n);return s[0]=t(o,s[0]),s[1]=t(e,s[1]),s[2]=t(i,s[2]),s[3]=t(d,s[3]),s[4]=t(m,s[4]),s[5]=t(b,s[5]),s[6]=t(l,s[6]),s[7]=t(p,s[7]),s}function v(t,a){var r,e,s,o,i=[],c=[];if(null!==t)for(e=0;e<t.length;e+=2)a[(e>>>1)%5][0|(e>>>1)/5]=x(a[(e>>>1)%5][0|(e>>>1)/5],new I(t[e+1],t[e]));for(r=0;24>r;r+=1){for(o=E('SHA3-'),e=0;5>e;e+=1){s=a[e][0];var d=a[e][1],m=a[e][2],u=a[e][3],n=a[e][4];i[e]=new I(s.a^d.a^m.a^u.a^n.a,s.b^d.b^m.b^u.b^n.b)}for(e=0;5>e;e+=1)c[e]=x(i[(e+4)%5],h(i[(e+1)%5],1));for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)a[e][s]=x(a[e][s],c[e]);for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)o[s][(2*e+3*s)%5]=h(a[e][s],f[e][s]);for(e=0;5>e;e+=1)for(s=0;5>s;s+=1)a[e][s]=x(o[e][s],new I(~o[(e+1)%5][s].a&o[(e+2)%5][s].a,~o[(e+1)%5][s].b&o[(e+2)%5][s].b));a[0][0]=x(a[0][0],D[r])}return a}var L,c,f,D;L=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=[new I(L[0],3609767458),new I(L[1],602891725),new I(L[2],3964484399),new I(L[3],2173295548),new I(L[4],4081628472),new I(L[5],3053834265),new I(L[6],2937671579),new I(L[7],3664609560),new I(L[8],2734883394),new I(L[9],1164996542),new I(L[10],1323610764),new I(L[11],3590304994),new I(L[12],4068182383),new I(L[13],991336113),new I(L[14],633803317),new I(L[15],3479774868),new I(L[16],2666613458),new I(L[17],944711139),new I(L[18],2341262773),new I(L[19],2007800933),new I(L[20],1495990901),new I(L[21],1856431235),new I(L[22],3175218132),new I(L[23],2198950837),new I(L[24],3999719339),new I(L[25],766784016),new I(L[26],2566594879),new I(L[27],3203337956),new I(L[28],1034457026),new I(L[29],2466948901),new I(L[30],3758326383),new I(L[31],168717936),new I(L[32],1188179964),new I(L[33],1546045734),new I(L[34],1522805485),new I(L[35],2643833823),new I(L[36],2343527390),new I(L[37],1014477480),new I(L[38],1206759142),new I(L[39],344077627),new I(L[40],1290863460),new I(L[41],3158454273),new I(L[42],3505952657),new I(L[43],106217008),new I(L[44],3606008344),new I(L[45],1432725776),new I(L[46],1467031594),new I(L[47],851169720),new I(L[48],3100823752),new I(L[49],1363258195),new I(L[50],3750685593),new I(L[51],3785050280),new I(L[52],3318307427),new I(L[53],3812723403),new I(L[54],2003034995),new I(L[55],3602036899),new I(L[56],1575990012),new I(L[57],1125592928),new I(L[58],2716904306),new I(L[59],442776044),new I(L[60],593698344),new I(L[61],3733110249),new I(L[62],2999351573),new I(L[63],3815920427),new I(3391569614,3928383900),new I(3515267271,566280711),new I(3940187606,3454069534),new I(4118630271,4000239992),new I(116418474,1914138554),new I(174292421,2731055270),new I(289380356,3203993006),new I(460393269,320620315),new I(685471733,587496836),new I(852142971,1086792851),new I(1017036298,365543100),new I(1126000580,2618297676),new I(1288033470,3409855158),new I(1501505948,4234509866),new I(1607167915,987167468),new I(1816402316,1246189591)],D=[new I(0,1),new I(0,32898),new I(2147483648,32906),new I(2147483648,2147516416),new I(0,32907),new I(0,2147483649),new I(2147483648,2147516545),new I(2147483648,32777),new I(0,138),new I(0,136),new I(0,2147516425),new I(0,2147483658),new I(0,2147516555),new I(2147483648,139),new I(2147483648,32905),new I(2147483648,32771),new I(2147483648,32770),new I(2147483648,128),new I(0,32778),new I(2147483648,2147483658),new I(2147483648,2147516545),new I(2147483648,32896),new I(0,2147483649),new I(2147483648,2147516424)],f=[[0,36,3,41,18],[1,44,10,45,2],[62,6,43,15,61],[28,55,25,21,56],[27,20,39,8,14]],(o=function(){return n}.call(r,s,r,e),!(o!==void 0&&(e.exports=o)))})(this)},function(e,t,a){'use strict';t.ApiError=a(1).ApiError,t.ResponseError=a(2).ResponseError,t.TimeoutError=a(3).TimeoutError},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('PUT',`/users/${encodeURIComponent(e)}/merge/${encodeURIComponent(t)}`,3e4,!1),this.targetUserId=e,this.sourceUserId=t,a=a||{},this.cascadeCreate=a.cascadeCreate}bodyParameters(){let e={cascadeCreate:!(this.cascadeCreate!==void 0)||this.cascadeCreate};return e}}t.MergeUsers=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/detailviews/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.duration=a.duration,this.cascadeCreate=a.cascadeCreate,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.duration&&(e.duration=this.duration),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddDetailView=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/purchases/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.amount=a.amount,this.price=a.price,this.profit=a.profit,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.amount&&(e.amount=this.amount),void 0!==this.price&&(e.price=this.price),void 0!==this.profit&&(e.profit=this.profit),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddPurchase=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/ratings/',3e3,!1),this.userId=e,this.itemId=t,this.rating=a,r=r||{},this.timestamp=r.timestamp,this.cascadeCreate=r.cascadeCreate,this.recommId=r.recommId,this.additionalData=r.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,e.rating=this.rating,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddRating=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/cartadditions/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.amount=a.amount,this.price=a.price,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.amount&&(e.amount=this.amount),void 0!==this.price&&(e.price=this.price),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddCartAddition=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST','/bookmarks/',3e3,!1),this.userId=e,this.itemId=t,a=a||{},this.timestamp=a.timestamp,this.cascadeCreate=a.cascadeCreate,this.recommId=a.recommId,this.additionalData=a.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.AddBookmark=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/viewportions/',3e3,!1),this.userId=e,this.itemId=t,this.portion=a,r=r||{},this.sessionId=r.sessionId,this.timestamp=r.timestamp,this.cascadeCreate=r.cascadeCreate,this.recommId=r.recommId,this.additionalData=r.additionalData}bodyParameters(){let e={};return e.userId=this.userId,e.itemId=this.itemId,e.portion=this.portion,void 0!==this.sessionId&&(e.sessionId=this.sessionId),void 0!==this.timestamp&&(e.timestamp=this.timestamp),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.recommId&&(e.recommId=this.recommId),void 0!==this.additionalData&&(e.additionalData=this.additionalData),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SetViewPortion=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST',`/recomms/users/${encodeURIComponent(e)}/items/`,9e3,!1),this.userId=e,this.count=t,a=a||{},this.scenario=a.scenario,this.cascadeCreate=a.cascadeCreate,this.returnProperties=a.returnProperties,this.includedProperties=a.includedProperties,this.filter=a.filter,this.booster=a.booster,this.logic=a.logic,this.diversity=a.diversity,this.minRelevance=a.minRelevance,this.rotationRate=a.rotationRate,this.rotationTime=a.rotationTime,this.expertSettings=a.expertSettings,this.returnAbGroup=a.returnAbGroup}bodyParameters(){let e={};return e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.diversity&&(e.diversity=this.diversity),void 0!==this.minRelevance&&(e.minRelevance=this.minRelevance),void 0!==this.rotationRate&&(e.rotationRate=this.rotationRate),void 0!==this.rotationTime&&(e.rotationTime=this.rotationTime),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemsToUser=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/recomms/items/${encodeURIComponent(e)}/items/`,9e3,!1),this.itemId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.returnProperties=r.returnProperties,this.includedProperties=r.includedProperties,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.userImpact=r.userImpact,this.diversity=r.diversity,this.minRelevance=r.minRelevance,this.rotationRate=r.rotationRate,this.rotationTime=r.rotationTime,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.userImpact&&(e.userImpact=this.userImpact),void 0!==this.diversity&&(e.diversity=this.diversity),void 0!==this.minRelevance&&(e.minRelevance=this.minRelevance),void 0!==this.rotationRate&&(e.rotationRate=this.rotationRate),void 0!==this.rotationTime&&(e.rotationTime=this.rotationTime),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemsToItem=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t){super('POST',`/recomms/next/items/${encodeURIComponent(e)}`,9e3,!1),this.recommId=e,this.count=t}bodyParameters(){let e={count:this.count,cascadeCreate:!(this.cascadeCreate!==void 0)||this.cascadeCreate};return e}}t.RecommendNextItems=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a){super('POST',`/recomms/users/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.userId=e,this.count=t,a=a||{},this.scenario=a.scenario,this.cascadeCreate=a.cascadeCreate,this.filter=a.filter,this.booster=a.booster,this.logic=a.logic,this.expertSettings=a.expertSettings,this.returnAbGroup=a.returnAbGroup}bodyParameters(){let e={};return e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToUser=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/recomms/items/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.itemId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToItem=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST','/recomms/item-segments/item-segments/',9e3,!1),this.contextSegmentId=e,this.targetUserId=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.contextSegmentId=this.contextSegmentId,e.targetUserId=this.targetUserId,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.RecommendItemSegmentsToItemSegment=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/search/users/${encodeURIComponent(e)}/items/`,9e3,!1),this.userId=e,this.searchQuery=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.returnProperties=r.returnProperties,this.includedProperties=r.includedProperties,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.searchQuery=this.searchQuery,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.returnProperties&&(e.returnProperties=this.returnProperties),void 0!==this.includedProperties&&(e.includedProperties=this.includedProperties),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SearchItems=s},function(e,t,a){'use strict';const r=a(0);class s extends r.Request{constructor(e,t,a,r){super('POST',`/search/users/${encodeURIComponent(e)}/item-segments/`,9e3,!1),this.userId=e,this.searchQuery=t,this.count=a,r=r||{},this.scenario=r.scenario,this.cascadeCreate=r.cascadeCreate,this.filter=r.filter,this.booster=r.booster,this.logic=r.logic,this.expertSettings=r.expertSettings,this.returnAbGroup=r.returnAbGroup}bodyParameters(){let e={};return e.searchQuery=this.searchQuery,e.count=this.count,void 0!==this.scenario&&(e.scenario=this.scenario),void 0!==this.cascadeCreate&&(e.cascadeCreate=this.cascadeCreate),void 0!==this.filter&&(e.filter=this.filter),void 0!==this.booster&&(e.booster=this.booster),void 0!==this.logic&&(e.logic=this.logic),void 0!==this.expertSettings&&(e.expertSettings=this.expertSettings),void 0!==this.returnAbGroup&&(e.returnAbGroup=this.returnAbGroup),e.cascadeCreate=void 0===this.cascadeCreate||this.cascadeCreate,e}}t.SearchItemSegments=s},function(e,t,a){'use strict';const r=a(0);var s=(e)=>e.map((e)=>e.timeout).reduce((e,t)=>e+t,0);class o extends r.Request{constructor(e,t){super('POST','/batch/',s(e),!0),this.requests=e,t=t||{},this.distinctRecomms=t.distinctRecomms}bodyParameters(){let e=this.requests.map((e)=>this._request_to_batch_object(e)),t={requests:e};return void 0!==this.distinctRecomms&&(t.distinctRecomms=this.distinctRecomms),t}_request_to_batch_object(e){const t=e.bodyParameters();return{method:e.method,path:e.path,params:Object.keys(t).length?t:void 0}}}t.Batch=o}])});
//# sourceMappingURL=recombee-api-client.min.js.map
{
"name": "recombee-js-api-client",
"version": "4.1.4",
"version": "4.1.5",
"description": "Client-side js library for easy use of the Recombee recommendation API",
"main": "./src/index.js",
"browser": "./src/index.js",

@@ -6,0 +7,0 @@ "types": "src/index.d.ts",

@@ -18,18 +18,30 @@ # Recombee API Client

```js
<script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client@4.1.4/dist/recombee-api-client.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client@4.1.5/dist/recombee-api-client.min.js"></script>
```
### npm
Use `npm` also for React Native / NativeScript applications.
```
npm install recombee-js-api-client --save
```
and use the global `recombee` object.
### Bower
### Package managers
```sh
npm install recombee-js-api-client
# or
yarn add recombee-js-api-client
# or
pnpm add recombee-js-api-client
# or
bun add recombee-js-api-client
```
bower install recombee-js-api-client -S
and import into your code using
```js
import recombee from 'recombee-js-api-client'
// or
const recombee = require('recombee-js-api-client');
```
The library ships with types, so you should get autocomplete in your IDE out of the box.
If you're using TypeScript, it should recognize these correctly and warn you about any type errors.
## How to use

@@ -48,3 +60,3 @@

// Initialize client with name of your database and PUBLIC token
var client = new recombee.ApiClient('name-of-your-db', '...db-public-token...', {region: 'us-west'});
const client = new recombee.ApiClient('name-of-your-db', '...db-public-token...', {region: 'us-west'});

@@ -58,3 +70,2 @@ //Interactions take Id of user and Id of item

client.send(new recombee.SetViewPortion('user-4289', 'item-487', 0.3));
```

@@ -68,37 +79,42 @@

#### Promise
```javascript
// Get 5 recommendations related to 'item-365' viewed by 'user-13434'
const response = await client.send(
new recombee.RecommendItemsToItem("item-356", "user-13434", 5)
);
// or
client
.send(new recombee.RecommendItemsToItem("item-356", "user-13434", 5))
.then(function (res) {
console.log(res.recomms);
})
.catch(function (error) {
console.log(error);
// use fallback...
});
```
#### Callback
Callback function take two parameters:
- *err* - `null` if request succeeds or `Error` object
- *res* - object containg reply from Recombee
- _err_ - `null` if request succeeds or `Error` object
- _res_ - object containg reply from Recombee
```javascript
const callback = function (err, res) {
if (err) {
console.log(err);
// use fallback ...
return;
}
console.log(res.recomms);
};
var callback = function (err, res) {
if(err) {
console.log(err);
// use fallback ...
return;
}
console.log(res.recomms);
}
// Get 5 recommendations for user-13434
client.send(new recombee.RecommendItemsToUser('user-13434', 5), callback);
client.send(new recombee.RecommendItemsToUser("user-13434", 5), callback);
```
#### Promise
```javascript
// Get 5 recommendations related to 'item-365' viewed by 'user-13434'
client.send(new recombee.RecommendItemsToItem('item-356', 'user-13434', 5))
.then(function(res) {
console.log(res.recomms);
})
.catch(function(error) {
console.log(error);
// use fallback ...
});
```
### Personalized search

@@ -108,21 +124,26 @@

#### Callback
#### Promise
```javascript
var searchQuery = ' ... search query from search field ....';
client.send(new recombee.SearchItems('user-13434', searchQuery, 5), callback);
const searchQuery = " ... search query from search field ....";
const response = await client.send(
new recombee.SearchItems("user-13434", searchQuery, 5)
);
// or
client
.send(new recombee.SearchItems("user-13434", searchQuery, 5))
.then(function (res) {
console.log(res.recomms);
})
.catch(function (error) {
console.log(error);
// use fallback...
});
```
#### Promise
#### Callback
```javascript
var searchQuery = ' ... search query from search field ....';
client.send(new recombee.SearchItems('user-13434', searchQuery, 5))
.then(function(res) {
console.log(res.recomms);
})
.catch(function(error) {
console.log(error);
// use fallback ...
});
const searchQuery = " ... search query from search field ....";
client.send(new recombee.SearchItems("user-13434", searchQuery, 5), callback);
```

@@ -134,17 +155,15 @@

```javascript
client.send(new recombee.RecommendItemsToUser('user-13434', 5))
.then(function(res) {
console.log(res.recomms);
// Get next 3 recommended items as user-13434 is scrolling the page down
client.send(new recombee.RecommendNextItems(res.recommId, 3))
.then(function(res) {
console.log(res.recomms);
})
});
const initialRecomms = await client.send(
new recombee.RecommendItemsToUser("user-13434", 5)
);
// Get next 3 recommended items as user-13434 is scrolling the page down
const nextRecomms = await client.send(
new recombee.RecommendNextItems(initialRecomms.recommId, 3)
// notice we're using recommId from previous request ^
);
```
### Optional parameters
Recommendation requests accept various optional parameters (see [the docs](https://docs.recombee.com/api.html#recommendations)). Following example shows some of them:

@@ -161,3 +180,3 @@

filter: "'title' != null AND 'availability' == \"in stock\""
// Recommend only items with filled title
// Recommend only items with filled title
// which are in stock

@@ -174,4 +193,4 @@ }

### 2. Upload items catalog
### 2. Upload items catalog
You can use a [script](https://docs.recombee.com/gettingstarted.html#managing-item-catalog) or set a product feed at [Recombee web admin](https://admin.recombee.com/). We will set following sample Google Merchant product feed: [product_feed_sample.xml](./examples/product_feed_sample.xml).

@@ -183,2 +202,3 @@ You will see the items in web interface after the feed is processed.

Let's assume we want to show recommendations at product page of pants `product-270` to user with id `user-1539`. The following HTML+js sample send the detail view of the product by the user and request 3 related items from Recombee:
```html

@@ -201,3 +221,3 @@ <!DOCTYPE html>

<script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client@4.1.4/dist/recombee-api-client.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client@4.1.5/dist/recombee-api-client.min.js"></script>

@@ -224,6 +244,6 @@ <script type="text/javascript">

// Initialize client
var client = new recombee.ApiClient('js-client-example', 'dXx2Jw4VkkYQP1XU4JwBAqGezs8BNzwhogGIRjDHJi39Yj3i0tWyIZ0IhKKw5Ln7', {region: 'eu-west'});
const client = new recombee.ApiClient('js-client-example', 'dXx2Jw4VkkYQP1XU4JwBAqGezs8BNzwhogGIRjDHJi39Yj3i0tWyIZ0IhKKw5Ln7', {region: 'eu-west'});
var itemId = 'product-270';
var userId = 'user-1539'
const itemId = 'product-270';
const userId = 'user-1539'

@@ -247,3 +267,3 @@ // Send detail view

// Show recommendations
var recomms_html = resp.recomms.map(r => r.values).
const recomms_html = resp.recomms.map(r => r.values).
map(vals => showProduct(vals['title'], vals['description'],

@@ -259,2 +279,3 @@ vals['link'], vals['image_link'], vals['price']));

```
You should see something like this:

@@ -264,8 +285,8 @@

Please notice how the properties returned by `returnProperties` & `includedProperties` were used to show titles, images, descriptions and URLs.
Please notice how the properties returned by `returnProperties`&`includedProperties` were used to show titles, images, descriptions and URLs.
### Remark on user identification
In order to achieve personalization, you need a unique identifier for each user. An easy way can be using Google Analytics for this purpose. The example then becomes:
```javascript

@@ -275,6 +296,6 @@ ga('create', 'UA-XXXXX-Y', 'auto'); // Create a tracker if you don't have one

var client = new recombee.ApiClient('js-client-example', 'dXx2Jw4VkkYQP1XU4JwBAqGezs8BNzwhogGIRjDHJi39Yj3i0tWyIZ0IhKKw5Ln7');
const client = new recombee.ApiClient('js-client-example', 'dXx2Jw4VkkYQP1XU4JwBAqGezs8BNzwhogGIRjDHJi39Yj3i0tWyIZ0IhKKw5Ln7');
ga(function(tracker) {
var userId = tracker.get('clientId'); // Get id from GA
const userId = tracker.get('clientId'); // Get id from GA

@@ -281,0 +302,0 @@ client.send(new recombee.RecommendItemsToUser(userId, 3,

@@ -69,3 +69,3 @@ 'use strict';

var signedUrl = this._signUrl(request.path);
var url = ((this.useHttps) ? 'https://' : 'http://') + this.baseUri + signedUrl;
var url = ((this.useHttps || request.ensureHttps) ? 'https://' : 'http://') + this.baseUri + signedUrl;

@@ -72,0 +72,0 @@ var xmlhttp = new XMLHttpRequest();

export module "recombee-js-api-client" {
namespace errors {
/**

@@ -18,3 +17,3 @@ * Base class for errors that occur because of errors in requests reported by API or because of a timeout

*/
export class ResponseError extends errors.ApiError {
export class ResponseError extends ApiError {
/**

@@ -26,3 +25,3 @@ * @param request - Request which caused the exception.

constructor(
request: requests.Request,
request: Request,
statusCode: number,

@@ -36,3 +35,3 @@ message: string

*/
export class TimeoutError extends errors.ApiError {
export class TimeoutError extends ApiError {
/**

@@ -42,8 +41,6 @@ * @param request - Request which caused the exception.

constructor(
request: requests.Request
request: Request
);
}
}
namespace requests {
/**

@@ -65,3 +62,8 @@ * Base class for all the requests

protected __response_type: any; // @ts-expect-error
method: "GET" | "PUT" | "POST" | "DELETE";
path: string;
timeout: number;
ensureHttps: boolean;
protected __response_type: any;
}

@@ -74,3 +76,3 @@

*/
export class Batch extends requests.Request {
export class Batch extends Request {
/**

@@ -81,3 +83,3 @@ * @param requests - Array containing the requests.

constructor(
requests: requests.Request[],
requests: Request[],
optional?: {

@@ -88,5 +90,7 @@ distinctRecomms?: boolean

protected __response_type: BatchResponse;
/**
* Get body parameters
*
*
* @returns The values of body parameters (name of parameter: value of the parameter)

@@ -100,7 +104,7 @@ */

_request_to_batch_object(
req: requests.Request
req: Request
): BatchedRequest
}
}
export type BatchedRequest = {

@@ -120,5 +124,5 @@ method: string;

export type BatchResponse = {
statusCode: number;
response: Response[];
}
code: number;
json: any;
}[];

@@ -149,3 +153,3 @@ /**

* Send the request to Recombee
*
*
* @param request - Request to be sent.

@@ -155,5 +159,5 @@ * @param callback - Optional callback.

*/
send<TRequest extends requests.Request>(
send<TRequest extends Request>(
request: TRequest, // @ts-expect-error
callback?: (error: errors.ResponseError | null, response?: TRequest["__response_type"]) => void // @ts-expect-error
callback?: (error: ResponseError | null, response?: TRequest["__response_type"]) => void // @ts-expect-error
): Promise<TRequest["__response_type"]>;

@@ -187,3 +191,2 @@

namespace requests {
/**

@@ -193,3 +196,3 @@ * Merges interactions (purchases, ratings, bookmarks, detail views ...) of two different users under a single user ID. This is especially useful for online e-commerce applications working with anonymous users identified by unique tokens such as the session ID. In such applications, it may often happen that a user owns a persistent account, yet accesses the system anonymously while, e.g., putting items into a shopping cart. At some point in time, such as when the user wishes to confirm the purchase, (s)he logs into the system using his/her username and password. The interactions made under anonymous session ID then become connected with the persistent account, and merging these two becomes desirable.

*/
export class MergeUsers extends requests.Request {
export class MergeUsers extends Request {
/**

@@ -225,3 +228,3 @@ * @param targetUserId - ID of the target user.

*/
export class AddDetailView extends requests.Request {
export class AddDetailView extends Request {
/**

@@ -275,3 +278,3 @@ * @param userId - User who viewed the item

*/
export class AddPurchase extends requests.Request {
export class AddPurchase extends Request {
/**

@@ -333,3 +336,3 @@ * @param userId - User who purchased the item

*/
export class AddRating extends requests.Request {
export class AddRating extends Request {
/**

@@ -383,3 +386,3 @@ * @param userId - User who submitted the rating

*/
export class AddCartAddition extends requests.Request {
export class AddCartAddition extends Request {
/**

@@ -437,3 +440,3 @@ * @param userId - User who added the item to the cart

*/
export class AddBookmark extends requests.Request {
export class AddBookmark extends Request {
/**

@@ -484,3 +487,3 @@ * @param userId - User who bookmarked the item

*/
export class SetViewPortion extends requests.Request {
export class SetViewPortion extends Request {
/**

@@ -544,3 +547,3 @@ * @param userId - User who viewed a portion of the item

*/
export class RecommendItemsToUser extends requests.Request {
export class RecommendItemsToUser extends Request {
/**

@@ -630,3 +633,3 @@ * @param userId - ID of the user for whom personalized recommendations are to be generated.

*/
export class RecommendItemsToItem extends requests.Request {
export class RecommendItemsToItem extends Request {
/**

@@ -741,3 +744,3 @@ * @param itemId - ID of the item for which the recommendations are to be generated.

*/
export class RecommendNextItems extends requests.Request {
export class RecommendNextItems extends Request {
/**

@@ -775,3 +778,3 @@ * @param recommId - ID of the base recommendation request for which next recommendations should be returned

*/
export class RecommendItemSegmentsToUser extends requests.Request {
export class RecommendItemSegmentsToUser extends Request {
/**

@@ -840,3 +843,3 @@ * @param userId - ID of the user for whom personalized recommendations are to be generated.

*/
export class RecommendItemSegmentsToItem extends requests.Request {
export class RecommendItemSegmentsToItem extends Request {
/**

@@ -920,3 +923,3 @@ * @param itemId - ID of the item for which the recommendations are to be generated.

*/
export class RecommendItemSegmentsToItemSegment extends requests.Request {
export class RecommendItemSegmentsToItemSegment extends Request {
/**

@@ -1001,3 +1004,3 @@ * @param contextSegmentId - ID of the segment from `contextSegmentationId` for which the recommendations are to be generated.

*/
export class SearchItems extends requests.Request {
export class SearchItems extends Request {
/**

@@ -1077,3 +1080,3 @@ * @param userId - ID of the user for whom personalized search will be performed.

*/
export class SearchItemSegments extends requests.Request {
export class SearchItemSegments extends Request {
/**

@@ -1134,3 +1137,3 @@ * @param userId - ID of the user for whom personalized search will be performed.

}
}
}

@@ -13,2 +13,3 @@ 'use strict';

* @param {number} timeout - Timeout in milliseconds
* @param {boolean} ensureHttps - If true, always use HTTPS.
*/

@@ -19,2 +20,3 @@ constructor(method, path, timeout, ensureHttps) {

this.timeout = timeout;
this.ensureHttps = ensureHttps;
}

@@ -21,0 +23,0 @@ }

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc