@obelism/improve-sdk 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.cjs +1 -1
- package/dist/client.d.cts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/server.cjs +1 -1
- package/dist/server.d.cts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/client.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var i=require("ua-parser-js"),t=i&&i.__esModule?i:{default:i};const e={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},s=i=>i&&e.device.includes(i)?i:"desktop",r=["tiktok","wechat","weibo","snapchat","klarna","Line","instagram","facebook","alipay","Baidu"],o=(i="")=>{if(!i)return"other";let t=i.toLowerCase();return e.browser.find(i=>t.includes(i))||(r.includes(t)?"social":"other")},n=["wearable","mobile","tablet"],l=i=>n.includes(i)?"coarse":"fine",a=(i="")=>{if(!i)return"unix";let t=i.toLowerCase();return e.os.find(i=>t.includes(i))||"unix"},u=i=>{if(!i||"string"!=typeof i)return null;let e=new t.default(i).getResult(),r=s(e.device.type);return{pointer:l(r),device:r,browser:o(e.browser.name),os:a(e.os.name)}},h=(i,t)=>!i||Object.entries(i).every(([i,e])=>t[i]===e),c=i=>{if(0===i.length)return null;if(1===i.length)return i[0].slug;let t=Math.random()*i.reduce((i,{split:t})=>i+t,0);return(i.find(({split:i})=>(t-=i)<=0)||i[0]).slug},d="https://improve.obelism.studio",f=`${d}/config`,g=`${d}/api/log`,v="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",p=i=>new Promise(t=>setTimeout(t,i)),m=async(i=1e3,t)=>(await p(i),t?.abort(),null),w=(i=3e3,t,e)=>{let s=new AbortController;return Promise.race([fetch(t,{...e,signal:s.signal}),m(i,s)])};class b{#i;constructor({organizationId:i,environment:t,state:e,config:s,fetchTimeout:r}){this.organizationId="",this.environment="develop",this.#i=null,this.config=null,this.fetchConfig=async()=>{if(this.config)return;if(!this.#i){console.log("No config fetch setup provided");return}let i=await w(this.#i.timeout,this.#i.url);if(!i){console.log("Configuration fetch timed-out");return}this.config=await i.json()},this.generateVisitorId=()=>`visi_${(function(i=5){return i&&"number"==typeof i?Array(i).fill("").reduce(i=>i+=v.charAt(Math.floor(Math.random()*v.length)),""):""})(26).toUpperCase()}`,this.getVisitorCookieName=()=>"visitorId",this.organizationId=i,this.environment=t,s?this.config=s:this.#i={url:[f,i,t,e||"active"].join("/"),timeout:r||3e3}}}const y=i=>{if(!i)return!1;let t=document.cookie.split("; ").find(t=>{let[e]=t.split("=");return i===e});return!!t&&t.split("=")[1]},I=(i,t)=>{let e=new Date;e.setMonth(e.getMonth()+1),document.cookie=`${i}=${t};path=/;expires=${e.toUTCString()}`},V=()=>{let i=window.innerWidth;return i<=768?"small":i<=1024?"medium":i<=1200?"large":"huge"};exports.ImproveClientSDK=class extends b{#t;#e;#s;#r;#o;constructor(...i){super(...i),this.#e=!1,this.#s="",this.#r={},this.#o=g,this.setupVisitor=(i=window.navigator.userAgent)=>{let t=y(this.getVisitorCookieName());this.#e=!!t,this.#s=t||this.generateVisitorId();let e=u(i);return e?(this.#t=e,I(this.getVisitorCookieName(),this.#s),this.#s):null},this.getFlagValue=i=>{if(!this.config)return null;let t=this.config.flags[i];if(!t)return null;if(this.#t||this.setupVisitor(),!this.#s||!this.#t)return t.options[0].slug;if(this.#t?.[i])return this.#t[i];if(!h(this.config.audience[t.audience],this.#t))return t.options[0].slug;let e=y(i)||c(t.options);return e?(this.#t[i]=e,I(i,e),e):null},this.getTestValue=i=>{if(!this.config)return null;let t=this.config.tests[i];if(!t)return null;if(this.#t||this.setupVisitor(),!this.#s||!this.#t)return t.defaultValue;if(this.#t?.[i])return this.#t[i];if(!h(this.config.audience[t.audience],this.#t))return t.defaultValue;if(t.allocation<100&&100*Math.random()>t.allocation)return this.#t[i]=t.defaultValue,this.#t?.[i];let e=y(i)||c(t.options);return e?(this.#t[i]=e,I(i,e),e):null},this.setAnalyticsUrls=i=>{this.#o=i},this.postAnalytic=(i,t,e)=>{if(!this.config)return null;let s=this.config.tests[i];if(this.#t||this.setupVisitor(),!s||!this.#t||this.#r?.[i]?.[t])return null;this.#r[i]=this.#r[i]||{},this.#r[i][t]=!0,this.#t?.[i]||this.getTestValue(i);let r={organizationId:this.organizationId,environment:this.environment,testId:s.id,testValue:this.#t[i],visitorId:this.#s,pointer:this.#t.pointer,device:this.#t.device,screen:V(),browser:this.#t.browser,os:this.#t.os,visitor:this.#e?"recurring":"new",event:t,message:e||""};return fetch(this.#o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}}};
|
package/dist/client.d.cts
CHANGED
|
@@ -5,7 +5,7 @@ declare class BaseImproveSDK {
|
|
|
5
5
|
organizationId: string;
|
|
6
6
|
environment: EnvironmentOption;
|
|
7
7
|
config: Configuration | null;
|
|
8
|
-
constructor({ organizationId, environment, config, fetchTimeout, }: ImproveArgs);
|
|
8
|
+
constructor({ organizationId, environment, state, config, fetchTimeout, }: ImproveArgs);
|
|
9
9
|
fetchConfig: () => Promise<void>;
|
|
10
10
|
generateVisitorId: () => string;
|
|
11
11
|
getVisitorCookieName: () => string;
|
package/dist/client.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare class BaseImproveSDK {
|
|
|
5
5
|
organizationId: string;
|
|
6
6
|
environment: EnvironmentOption;
|
|
7
7
|
config: Configuration | null;
|
|
8
|
-
constructor({ organizationId, environment, config, fetchTimeout, }: ImproveArgs);
|
|
8
|
+
constructor({ organizationId, environment, state, config, fetchTimeout, }: ImproveArgs);
|
|
9
9
|
fetchConfig: () => Promise<void>;
|
|
10
10
|
generateVisitorId: () => string;
|
|
11
11
|
getVisitorCookieName: () => string;
|
package/dist/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import i from"ua-parser-js";let t={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},e=i=>i&&t.device.includes(i)?i:"desktop",s=["tiktok","wechat","weibo","snapchat","klarna","Line","instagram","facebook","alipay","Baidu"],r=(i="")=>{if(!i)return"other";let e=i.toLowerCase();return t.browser.find(i=>e.includes(i))||(s.includes(e)?"social":"other")},o=["wearable","mobile","tablet"],n=i=>o.includes(i)?"coarse":"fine",l=(i="")=>{if(!i)return"unix";let e=i.toLowerCase();return t.os.find(i=>e.includes(i))||"unix"},a=t=>{if(!t||"string"!=typeof t)return null;let s=new i(t).getResult(),o=e(s.device.type);return{pointer:n(o),device:o,browser:r(s.browser.name),os:l(s.os.name)}},h=(i,t)=>!i||Object.entries(i).every(([i,e])=>t[i]===e),u=i=>{if(0===i.length)return null;if(1===i.length)return i[0].slug;let t=Math.
|
|
1
|
+
import i from"ua-parser-js";let t={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},e=i=>i&&t.device.includes(i)?i:"desktop",s=["tiktok","wechat","weibo","snapchat","klarna","Line","instagram","facebook","alipay","Baidu"],r=(i="")=>{if(!i)return"other";let e=i.toLowerCase();return t.browser.find(i=>e.includes(i))||(s.includes(e)?"social":"other")},o=["wearable","mobile","tablet"],n=i=>o.includes(i)?"coarse":"fine",l=(i="")=>{if(!i)return"unix";let e=i.toLowerCase();return t.os.find(i=>e.includes(i))||"unix"},a=t=>{if(!t||"string"!=typeof t)return null;let s=new i(t).getResult(),o=e(s.device.type);return{pointer:n(o),device:o,browser:r(s.browser.name),os:l(s.os.name)}},h=(i,t)=>!i||Object.entries(i).every(([i,e])=>t[i]===e),u=i=>{if(0===i.length)return null;if(1===i.length)return i[0].slug;let t=Math.random()*i.reduce((i,{split:t})=>i+t,0);return(i.find(({split:i})=>(t-=i)<=0)||i[0]).slug},c="https://improve.obelism.studio",d=`${c}/config`,f=`${c}/api/log`,g="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",v=i=>new Promise(t=>setTimeout(t,i)),p=async(i=1e3,t)=>(await v(i),t?.abort(),null),m=(i=3e3,t,e)=>{let s=new AbortController;return Promise.race([fetch(t,{...e,signal:s.signal}),p(i,s)])};class w{#i;constructor({organizationId:i,environment:t,state:e,config:s,fetchTimeout:r}){this.organizationId="",this.environment="develop",this.#i=null,this.config=null,this.fetchConfig=async()=>{if(this.config)return;if(!this.#i){console.log("No config fetch setup provided");return}let i=await m(this.#i.timeout,this.#i.url);if(!i){console.log("Configuration fetch timed-out");return}this.config=await i.json()},this.generateVisitorId=()=>`visi_${(function(i=5){return i&&"number"==typeof i?Array(i).fill("").reduce(i=>i+=g.charAt(Math.floor(Math.random()*g.length)),""):""})(26).toUpperCase()}`,this.getVisitorCookieName=()=>"visitorId",this.organizationId=i,this.environment=t,s?this.config=s:this.#i={url:[d,i,t,e||"active"].join("/"),timeout:r||3e3}}}let b=i=>{if(!i)return!1;let t=document.cookie.split("; ").find(t=>{let[e]=t.split("=");return i===e});return!!t&&t.split("=")[1]},y=(i,t)=>{let e=new Date;e.setMonth(e.getMonth()+1),document.cookie=`${i}=${t};path=/;expires=${e.toUTCString()}`},I=()=>{let i=window.innerWidth;return i<=768?"small":i<=1024?"medium":i<=1200?"large":"huge"};class V extends w{#t;#e;#s;#r;#o;constructor(...i){super(...i),this.#e=!1,this.#s="",this.#r={},this.#o=f,this.setupVisitor=(i=window.navigator.userAgent)=>{let t=b(this.getVisitorCookieName());this.#e=!!t,this.#s=t||this.generateVisitorId();let e=a(i);return e?(this.#t=e,y(this.getVisitorCookieName(),this.#s),this.#s):null},this.getFlagValue=i=>{if(!this.config)return null;let t=this.config.flags[i];if(!t)return null;if(this.#t||this.setupVisitor(),!this.#s||!this.#t)return t.options[0].slug;if(this.#t?.[i])return this.#t[i];if(!h(this.config.audience[t.audience],this.#t))return t.options[0].slug;let e=b(i)||u(t.options);return e?(this.#t[i]=e,y(i,e),e):null},this.getTestValue=i=>{if(!this.config)return null;let t=this.config.tests[i];if(!t)return null;if(this.#t||this.setupVisitor(),!this.#s||!this.#t)return t.defaultValue;if(this.#t?.[i])return this.#t[i];if(!h(this.config.audience[t.audience],this.#t))return t.defaultValue;if(t.allocation<100&&100*Math.random()>t.allocation)return this.#t[i]=t.defaultValue,this.#t?.[i];let e=b(i)||u(t.options);return e?(this.#t[i]=e,y(i,e),e):null},this.setAnalyticsUrls=i=>{this.#o=i},this.postAnalytic=(i,t,e)=>{if(!this.config)return null;let s=this.config.tests[i];if(this.#t||this.setupVisitor(),!s||!this.#t||this.#r?.[i]?.[t])return null;this.#r[i]=this.#r[i]||{},this.#r[i][t]=!0,this.#t?.[i]||this.getTestValue(i);let r={organizationId:this.organizationId,environment:this.environment,testId:s.id,testValue:this.#t[i],visitorId:this.#s,pointer:this.#t.pointer,device:this.#t.device,screen:I(),browser:this.#t.browser,os:this.#t.os,visitor:this.#e?"recurring":"new",event:t,message:e||""};return fetch(this.#o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}}}export{V as ImproveClientSDK};
|
package/dist/index.d.ts
CHANGED
package/dist/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0});var t=require("ua-parser-js"),i=t&&t.__esModule?t:{default:t};const e={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},s=t=>t&&e.device.includes(t)?t:"desktop",
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var t=require("ua-parser-js"),i=t&&t.__esModule?t:{default:t};const e={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},s=t=>t&&e.device.includes(t)?t:"desktop",o=["tiktok","wechat","weibo","snapchat","klarna","Line","instagram","facebook","alipay","Baidu"],r=(t="")=>{if(!t)return"other";let i=t.toLowerCase();return e.browser.find(t=>i.includes(t))||(o.includes(i)?"social":"other")},n=["wearable","mobile","tablet"],l=t=>n.includes(t)?"coarse":"fine",a=(t="")=>{if(!t)return"unix";let i=t.toLowerCase();return e.os.find(t=>i.includes(t))||"unix"},u=t=>{if(!t||"string"!=typeof t)return null;let e=new i.default(t).getResult(),o=s(e.device.type);return{pointer:l(o),device:o,browser:r(e.browser.name),os:a(e.os.name)}},h=(t,i)=>!t||Object.entries(t).every(([t,e])=>i[t]===e),c=t=>{if(0===t.length)return null;if(1===t.length)return t[0].slug;let i=Math.random()*t.reduce((t,{split:i})=>t+i,0);return(t.find(({split:t})=>(i-=t)<=0)||t[0]).slug},f="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",g=t=>new Promise(i=>setTimeout(i,t)),d=async(t=1e3,i)=>(await g(t),i?.abort(),null),v=(t=3e3,i,e)=>{let s=new AbortController;return Promise.race([fetch(i,{...e,signal:s.signal}),d(t,s)])};class m{#t;constructor({organizationId:t,environment:i,state:e,config:s,fetchTimeout:o}){this.organizationId="",this.environment="develop",this.#t=null,this.config=null,this.fetchConfig=async()=>{if(this.config)return;if(!this.#t){console.log("No config fetch setup provided");return}let t=await v(this.#t.timeout,this.#t.url);if(!t){console.log("Configuration fetch timed-out");return}this.config=await t.json()},this.generateVisitorId=()=>`visi_${(function(t=5){return t&&"number"==typeof t?Array(t).fill("").reduce(t=>t+=f.charAt(Math.floor(Math.random()*f.length)),""):""})(26).toUpperCase()}`,this.getVisitorCookieName=()=>"visitorId",this.organizationId=t,this.environment=i,s?this.config=s:this.#t={url:["https://improve.obelism.studio/config",t,i,e||"active"].join("/"),timeout:o||3e3}}}exports.ImproveServerSDK=class extends m{#i;constructor(...t){super(...t),this.#i={},this.getFlagConfig=t=>this.config?.flags?.[t],this.getTestConfig=t=>this.config?.tests?.[t],this.getFlagValue=(t,i,e)=>{let s=this.getFlagConfig(t);if(!s||!this.config)return null;if(!i)return s.options[0].slug;if(this.#i?.[i]?.[e]?.[t])return this.#i[i][e][t];if(this.#i[i]=this.#i[i]||{},this.#i[i][e]=this.#i[i][e]||u(e),!h(this.config.audience[s.audience],this.#i[i][e]))return s.options[0].slug;let o=c(s.options);return o?(this.#i[i][e][t]=o,o):null},this.getTestValue=(t,i,e)=>{let s=this.getTestConfig(t);if(!s||!this.config)return null;if(!i||!e)return s.defaultValue;if(this.#i?.[i]?.[e]?.[t])return this.#i[i][e][t];if(this.#i[i]=this.#i[i]||{},this.#i[i][e]=this.#i[i][e]||u(e),!h(this.config.audience[s.audience],this.#i[i][e]))return s.defaultValue;if(s.allocation<100&&100*Math.random()>s.allocation)return this.#i[i][e][t]=s.defaultValue,this.#i[i][e][t];let o=c(s.options);return o?(this.#i[i][e][t]=o,o):null}}};
|
package/dist/server.d.cts
CHANGED
|
@@ -6,7 +6,7 @@ declare class BaseImproveSDK {
|
|
|
6
6
|
organizationId: string;
|
|
7
7
|
environment: EnvironmentOption;
|
|
8
8
|
config: Configuration | null;
|
|
9
|
-
constructor({ organizationId, environment, config, fetchTimeout, }: ImproveArgs);
|
|
9
|
+
constructor({ organizationId, environment, state, config, fetchTimeout, }: ImproveArgs);
|
|
10
10
|
fetchConfig: () => Promise<void>;
|
|
11
11
|
generateVisitorId: () => string;
|
|
12
12
|
getVisitorCookieName: () => string;
|
package/dist/server.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare class BaseImproveSDK {
|
|
|
6
6
|
organizationId: string;
|
|
7
7
|
environment: EnvironmentOption;
|
|
8
8
|
config: Configuration | null;
|
|
9
|
-
constructor({ organizationId, environment, config, fetchTimeout, }: ImproveArgs);
|
|
9
|
+
constructor({ organizationId, environment, state, config, fetchTimeout, }: ImproveArgs);
|
|
10
10
|
fetchConfig: () => Promise<void>;
|
|
11
11
|
generateVisitorId: () => string;
|
|
12
12
|
getVisitorCookieName: () => string;
|
package/dist/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import i from"ua-parser-js";let t={device:["wearable","mobile","tablet","console","smarttv","embedded","desktop"],browser:["chrome","safari","firefox","edge","ie","samsung internet","social","other"],os:["mac os","ios","android","windows","unix"]},e=i=>i&&t.device.includes(i)?i:"desktop",s=["tiktok","wechat","weibo","snapchat","klarna","Line","instagram","facebook","alipay","Baidu"],o=(i="")=>{if(!i)return"other";let e=i.toLowerCase();return t.browser.find(i=>e.includes(i))||(s.includes(e)?"social":"other")},r=["wearable","mobile","tablet"],n=i=>r.includes(i)?"coarse":"fine",l=(i="")=>{if(!i)return"unix";let e=i.toLowerCase();return t.os.find(i=>e.includes(i))||"unix"},a=t=>{if(!t||"string"!=typeof t)return null;let s=new i(t).getResult(),r=e(s.device.type);return{pointer:n(r),device:r,browser:o(s.browser.name),os:l(s.os.name)}},u=(i,t)=>!i||Object.entries(i).every(([i,e])=>t[i]===e),h=i=>{if(0===i.length)return null;if(1===i.length)return i[0].slug;let t=Math.random()*i.reduce((i,{split:t})=>i+t,0);return(i.find(({split:i})=>(t-=i)<=0)||i[0]).slug},c="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",f=i=>new Promise(t=>setTimeout(t,i)),g=async(i=1e3,t)=>(await f(i),t?.abort(),null),d=(i=3e3,t,e)=>{let s=new AbortController;return Promise.race([fetch(t,{...e,signal:s.signal}),g(i,s)])};class v{#i;constructor({organizationId:i,environment:t,state:e,config:s,fetchTimeout:o}){this.organizationId="",this.environment="develop",this.#i=null,this.config=null,this.fetchConfig=async()=>{if(this.config)return;if(!this.#i){console.log("No config fetch setup provided");return}let i=await d(this.#i.timeout,this.#i.url);if(!i){console.log("Configuration fetch timed-out");return}this.config=await i.json()},this.generateVisitorId=()=>`visi_${(function(i=5){return i&&"number"==typeof i?Array(i).fill("").reduce(i=>i+=c.charAt(Math.floor(Math.random()*c.length)),""):""})(26).toUpperCase()}`,this.getVisitorCookieName=()=>"visitorId",this.organizationId=i,this.environment=t,s?this.config=s:this.#i={url:["https://improve.obelism.studio/config",i,t,e||"active"].join("/"),timeout:o||3e3}}}class m extends v{#t;constructor(...i){super(...i),this.#t={},this.getFlagConfig=i=>this.config?.flags?.[i],this.getTestConfig=i=>this.config?.tests?.[i],this.getFlagValue=(i,t,e)=>{let s=this.getFlagConfig(i);if(!s||!this.config)return null;if(!t)return s.options[0].slug;if(this.#t?.[t]?.[e]?.[i])return this.#t[t][e][i];if(this.#t[t]=this.#t[t]||{},this.#t[t][e]=this.#t[t][e]||a(e),!u(this.config.audience[s.audience],this.#t[t][e]))return s.options[0].slug;let o=h(s.options);return o?(this.#t[t][e][i]=o,o):null},this.getTestValue=(i,t,e)=>{let s=this.getTestConfig(i);if(!s||!this.config)return null;if(!t||!e)return s.defaultValue;if(this.#t?.[t]?.[e]?.[i])return this.#t[t][e][i];if(this.#t[t]=this.#t[t]||{},this.#t[t][e]=this.#t[t][e]||a(e),!u(this.config.audience[s.audience],this.#t[t][e]))return s.defaultValue;if(s.allocation<100&&100*Math.random()>s.allocation)return this.#t[t][e][i]=s.defaultValue,this.#t[t][e][i];let o=h(s.options);return o?(this.#t[t][e][i]=o,o):null}}}export{m as ImproveServerSDK};
|
package/dist/types.d.ts
CHANGED