UNPKG

@relewise/client

Version:

Relewise is a next generation personalization SaaS-platform, which offers functionality within product- and content recommendations and personalized search. This official SDK helps you interact with our API.

2 lines (1 loc) 6.74 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Relewise={})}(this,(function(e){"use strict";function t(e,t,r,i){return new(r||(r=Promise))((function(n,s){function a(e){try{u(i.next(e))}catch(e){s(e)}}function o(e){try{u(i.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,o)}u((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;var r="client@2.12.0";class i extends Error{get details(){return this._details}constructor(e,t){super(e),this._details=t}}class n{constructor(e,t,r){if(this.datasetId=e,this.apiKey=t,this._serverUrl="https://api.relewise.com",this._urlPath="v1",!e)throw new Error("Dataset id cannot be null or empty. Please contact Relewise if you don't have an account already or would like a free demo license");if(!t)throw new Error("API Key secret cannot be null or empty. Please contact Relewise support if you don't know the apiKeySecret for your datasetId.");this._apiKeyHeader=`APIKey ${this.apiKey}`,(null==r?void 0:r.serverUrl)&&(this._serverUrl=r.serverUrl)}get serverUrl(){return this._serverUrl}request(e,n,s){return t(this,void 0,void 0,(function*(){const t=this.createRequestUrl(this._serverUrl,this.datasetId,this._urlPath,e);try{const e=yield fetch(t,{method:"POST",headers:{Authorization:this._apiKeyHeader,"Content-Type":"application/json","X-Relewise-Version":r},body:JSON.stringify(n),signal:null==s?void 0:s.abortSignal,cache:"no-cache"});if(!e.ok){let t=null;try{t=yield e.json()}catch(e){}const r=(null==t?void 0:t.detail)?`Details: ${t.detail}\n`:"";throw new i(`Error when calling the Relewise API.\n\nTitle: ${e.statusText}\nStatus: ${e.status}\n${r}\nRead more in the details property if there is error response or look in the network tab.`,t)}return yield this.parseJson(e)}catch(e){this.handleRequestError(e)}}))}createRequestUrl(e,...t){const r=t.join("/");return e.endsWith("/")?e.concat(r):e.concat("/",r)}handleRequestError(e){if(e instanceof i)throw e;if(e instanceof DOMException)throw e;throw console.error("Network error or preflight request failed. Check API Key and Dataset ID."),new Error("Network error or preflight request failed. Check API Key and Dataset ID.")}parseJson(e){return t(this,void 0,void 0,(function*(){try{return yield e.json()}catch(e){return}}))}}e.ProblemDetailsError=i,e.RelewiseClient=n,e.Tracker=class extends n{constructor(e,t,r){super(e,t,r),this.datasetId=e,this.apiKey=t}trackOrder(e,r){return t(this,arguments,void 0,(function*({user:e,subtotal:t,orderNumber:r,lineItems:i,cartName:n="default",trackingNumber:s,data:a},o){return this.request("TrackOrderRequest",{$type:"Relewise.Client.Requests.Tracking.TrackOrderRequest, Relewise.Client",order:{$type:"Relewise.Client.DataTypes.Order, Relewise.Client",lineItems:i.map((e=>Object.assign(Object.assign({product:{id:e.productId}},e.variantId&&{variant:{id:e.variantId}}),{lineTotal:e.lineTotal,quantity:e.quantity,data:e.data}))),subtotal:{amount:t.amount,currency:{value:t.currency}},orderNumber:r,trackingNumber:s,cartName:n,data:a,user:e}},o)}))}trackCart(e,r){return t(this,arguments,void 0,(function*({user:e,subtotal:t,lineItems:r,data:i,cartName:n="default"},s){return this.request("TrackCartRequest",{$type:"Relewise.Client.Requests.Tracking.TrackCartRequest, Relewise.Client",cart:{$type:"Relewise.Client.DataTypes.Cart, Relewise.Client",lineItems:r.map((e=>Object.assign(Object.assign({product:{id:e.productId}},e.variantId&&{variant:{id:e.variantId}}),{lineTotal:e.lineTotal,quantity:e.quantity,data:e.data}))),subtotal:{amount:t.amount,currency:{value:t.currency}},name:n,user:e,data:i}},s)}))}trackProductView(e,r){return t(this,arguments,void 0,(function*({productId:e,variantId:t,user:r},i){return this.request("TrackProductViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackProductViewRequest, Relewise.Client",productView:Object.assign(Object.assign({$type:"Relewise.Client.DataTypes.ProductView, Relewise.Client",product:{id:e}},t&&{variant:{id:t}}),{user:r})},i)}))}trackProductCategoryView(e,r){return t(this,arguments,void 0,(function*({idPath:e,user:t},r){return this.request("TrackProductCategoryViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackProductCategoryViewRequest, Relewise.Client",productCategoryView:{$type:"Relewise.Client.DataTypes.ProductCategoryView, Relewise.Client",idPath:e,user:t}},r)}))}trackContentView(e,r){return t(this,arguments,void 0,(function*({contentId:e,user:t},r){return this.request("TrackContentViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackContentViewRequest, Relewise.Client",contentView:{$type:"Relewise.Client.DataTypes.ContentView, Relewise.Client",content:{id:e},user:t}},r)}))}trackContentCategoryView(e,r){return t(this,arguments,void 0,(function*({idPath:e,user:t},r){return this.request("TrackContentCategoryViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackContentCategoryViewRequest, Relewise.Client",contentCategoryView:{$type:"Relewise.Client.DataTypes.ContentCategoryView, Relewise.Client",idPath:e,user:t}},r)}))}trackBrandView(e,r){return t(this,arguments,void 0,(function*({brandId:e,user:t},r){return this.request("TrackBrandViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackBrandViewRequest, Relewise.Client",brandView:{$type:"Relewise.Client.DataTypes.BrandView, Relewise.Client",brand:{id:e},user:t}},r)}))}trackSearchTerm(e,r){return t(this,arguments,void 0,(function*({term:e,language:t,user:r},i){return this.request("TrackSearchTermRequest",{$type:"Relewise.Client.Requests.Tracking.TrackSearchTermRequest, Relewise.Client",searchTerm:{$type:"Relewise.Client.DataTypes.SearchTerm, Relewise.Client",language:{value:t},term:e,user:r}},i)}))}trackUserUpdate(e,r){return t(this,arguments,void 0,(function*({user:e,updateKind:t="UpdateAndAppend"},r){return this.request("TrackUserUpdateRequest",{$type:"Relewise.Client.Requests.Tracking.TrackUserUpdateRequest, Relewise.Client",userUpdate:{$type:"Relewise.Client.DataTypes.UserUpdate, Relewise.Client",user:e,kind:t}},r)}))}},e.UserFactory=class{static anonymous(e){return Object.assign({},e)}static byAuthenticatedId(e,t,r){return Object.assign(Object.assign({authenticatedId:e},t&&{temporaryId:t}),r)}static byTemporaryId(e,t){return Object.assign(Object.assign({},t),{temporaryId:e})}static byIdentifier(e,t,r){return Object.assign(Object.assign({},r),{identifiers:{[e]:t}})}static byIdentifiers(e,t){return Object.assign({identifiers:e},t)}static byEmail(e,t){return Object.assign({email:e},t)}static byFingerprint(e,t){return Object.assign({fingerprint:e},t)}}}));