@obelism/improve-sdk-next 0.3.6 → 0.5.1

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/index.d.mts CHANGED
@@ -23,4 +23,5 @@ type GenerateImproveNextMiddlewareArgs = {
23
23
  };
24
24
  declare const generateImproveNextMiddleware: (args: GenerateImproveNextMiddlewareArgs) => (request: NextRequest) => NextResponse<unknown>;
25
25
 
26
- export { type GenerateImproveNextMiddlewareArgs, type OptionConfig, type ServerABTestConfig, generateImproveNextMiddleware };
26
+ export { generateImproveNextMiddleware };
27
+ export type { GenerateImproveNextMiddlewareArgs, OptionConfig, ServerABTestConfig };
package/dist/index.d.ts CHANGED
@@ -23,4 +23,5 @@ type GenerateImproveNextMiddlewareArgs = {
23
23
  };
24
24
  declare const generateImproveNextMiddleware: (args: GenerateImproveNextMiddlewareArgs) => (request: NextRequest) => NextResponse<unknown>;
25
25
 
26
- export { type GenerateImproveNextMiddlewareArgs, type OptionConfig, type ServerABTestConfig, generateImproveNextMiddleware };
26
+ export { generateImproveNextMiddleware };
27
+ export type { GenerateImproveNextMiddlewareArgs, OptionConfig, ServerABTestConfig };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var e=require("next/server");const t=RegExp(["Vercelbot","DotBot","Yeti","AhrefsBot","SeznamBot","YandexBot","UptimeRobot","Bytespider","Baiduspider","fidget-spinner-bot","AASA-Bot","FullStoryBot","SemrushBot","PetalBot","RyteBot","Pinterestbot","AntBot","Monsidobot","blowra","JobRoboter","Qwantify","YisouSpider"].map(e=>e.toLowerCase()).join("|"),"i"),o=e=>!!e&&t.test(e.toLowerCase()),r=/(\[[a-zA-Z0-9-]+\])+/g,s=/\[\[\.\.\.[a-zA-Z0-9-]+\]\]/g,i=/\[\.\.\.[a-zA-Z0-9-]+\]/g,n=e=>e.endsWith("/")?e.substring(0,e.length-1):e,a=(e,t)=>{let o=n(t.split("?")[0]),a=n(e.split("?")[0]);return o===a||new RegExp(`^${a.replace(r,"[a-zA-Z0-9-]+")}$`.replace(s,"?.*").replace(i,".*")).test(o)};exports.generateImproveNextMiddleware=t=>r=>{let s;let{ua:i="",isBot:n=!1}=e.userAgent(r);if(n||o(i))return e.NextResponse.next();let l=t.serverABtests.find(e=>a(e.routeHandler,r.nextUrl.pathname));if(!l)return e.NextResponse.next();let p=l.options.at(0)?.value;if(!p)return e.NextResponse.next();let u=t.improveSdk.getVisitorCookieName(),g=r.cookies.get(u)?.value,d=g&&t.improveSdk.validateVisitorId(g)?g:t.improveSdk.generateVisitorId(),x=e=>e&&t.improveSdk.validateTestValue(l.slug,e)?e:null,m=x(r.nextUrl.searchParams.get(l.slug))||x(r.cookies.get(l.slug)?.value)||t.improveSdk.getTestValue(l.slug,d,i),v=l.options.find(e=>e.value===m);if(!v)return e.NextResponse.next();if(v.value!==p){let t=r.nextUrl.clone();t.pathname=l?.formatSlug?l?.formatSlug(t,v)?.pathname:v.slug,s=e.NextResponse.rewrite(t)}else s=e.NextResponse.next();return s.cookies.set(u,d,{maxAge:604800,...t.options?.visitorId}),s.cookies.set(l.slug,m,{maxAge:604800,...t.options?.testValue}),s};
1
+ Object.defineProperty(exports,"__esModule",{value:!0});var e=require("next/server");let t=RegExp(["Vercelbot","DotBot","Yeti","AhrefsBot","SeznamBot","YandexBot","UptimeRobot","Bytespider","Baiduspider","fidget-spinner-bot","AASA-Bot","FullStoryBot","SemrushBot","PetalBot","RyteBot","Pinterestbot","AntBot","Monsidobot","blowra","JobRoboter","Qwantify","YisouSpider"].map(e=>e.toLowerCase()).join("|"),"i"),o=/(\[[a-zA-Z0-9-]+\])+/g,r=/\[\[\.\.\.[a-zA-Z0-9-]+\]\]/g,s=/\[\.\.\.[a-zA-Z0-9-]+\]/g,n=e=>e.endsWith("/")?e.substring(0,e.length-1):e,i=new Map;exports.generateImproveNextMiddleware=a=>l=>{try{let p,{ua:u="",isBot:g=!1}=e.userAgent(l);if(g||u&&t.test(u.toLowerCase()))return e.NextResponse.next();let d=a.serverABtests.find(e=>((e,t)=>{let a=n(t.split("?")[0]),l=n(e.split("?")[0]);if(a===l)return!0;let p=i.get(l);return p||(p=new RegExp(`^${l.replace(o,"[a-zA-Z0-9-]+")}$`.replace(r,"?.*").replace(s,".*")),i.set(l,p)),p.test(a)})(e.routeHandler,l.nextUrl.pathname));if(!d)return e.NextResponse.next();let x=d.options.at(0)?.value;if(!x)return e.NextResponse.next();let m=a.improveSdk.getVisitorCookieName(),v=l.cookies.get(m)?.value,c=v&&a.improveSdk.validateVisitorId(v)?v:a.improveSdk.generateVisitorId(),f=e=>e&&a.improveSdk.validateTestValue(d.slug,e)?e:null,A=f(l.nextUrl.searchParams.get(d.slug))||f(l.cookies.get(d.slug)?.value)||a.improveSdk.getTestValue(d.slug,c,u),B=d.options.find(e=>e.value===A);if(!B)return e.NextResponse.next();if(B.value!==x){let t=l.nextUrl.clone();t.pathname=d?.formatSlug?d?.formatSlug(t,B)?.pathname:B.slug,p=e.NextResponse.rewrite(t)}else p=e.NextResponse.next();return p.cookies.set(m,c,{maxAge:604800,...a.options?.visitorId}),p.cookies.set(d.slug,A,{maxAge:604800,...a.options?.testValue}),p}catch(t){return console.error("[Improve SDK]",t),e.NextResponse.next()}};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{userAgent as e,NextResponse as t}from"next/server";let o=RegExp(["Vercelbot","DotBot","Yeti","AhrefsBot","SeznamBot","YandexBot","UptimeRobot","Bytespider","Baiduspider","fidget-spinner-bot","AASA-Bot","FullStoryBot","SemrushBot","PetalBot","RyteBot","Pinterestbot","AntBot","Monsidobot","blowra","JobRoboter","Qwantify","YisouSpider"].map(e=>e.toLowerCase()).join("|"),"i"),r=e=>!!e&&o.test(e.toLowerCase()),i=/(\[[a-zA-Z0-9-]+\])+/g,a=/\[\[\.\.\.[a-zA-Z0-9-]+\]\]/g,s=/\[\.\.\.[a-zA-Z0-9-]+\]/g,l=e=>e.endsWith("/")?e.substring(0,e.length-1):e,n=(e,t)=>{let o=l(t.split("?")[0]),r=l(e.split("?")[0]);return o===r||new RegExp(`^${r.replace(i,"[a-zA-Z0-9-]+")}$`.replace(a,"?.*").replace(s,".*")).test(o)},u=o=>i=>{let a;let{ua:s="",isBot:l=!1}=e(i);if(l||r(s))return t.next();let u=o.serverABtests.find(e=>n(e.routeHandler,i.nextUrl.pathname));if(!u)return t.next();let p=u.options.at(0)?.value;if(!p)return t.next();let g=o.improveSdk.getVisitorCookieName(),d=i.cookies.get(g)?.value,m=d&&o.improveSdk.validateVisitorId(d)?d:o.improveSdk.generateVisitorId(),v=e=>e&&o.improveSdk.validateTestValue(u.slug,e)?e:null,x=v(i.nextUrl.searchParams.get(u.slug))||v(i.cookies.get(u.slug)?.value)||o.improveSdk.getTestValue(u.slug,m,s),f=u.options.find(e=>e.value===x);if(!f)return t.next();if(f.value!==p){let e=i.nextUrl.clone();e.pathname=u?.formatSlug?u?.formatSlug(e,f)?.pathname:f.slug,a=t.rewrite(e)}else a=t.next();return a.cookies.set(g,m,{maxAge:604800,...o.options?.visitorId}),a.cookies.set(u.slug,x,{maxAge:604800,...o.options?.testValue}),a};export{u as generateImproveNextMiddleware};
1
+ import{userAgent as e,NextResponse as t}from"next/server";let o=RegExp(["Vercelbot","DotBot","Yeti","AhrefsBot","SeznamBot","YandexBot","UptimeRobot","Bytespider","Baiduspider","fidget-spinner-bot","AASA-Bot","FullStoryBot","SemrushBot","PetalBot","RyteBot","Pinterestbot","AntBot","Monsidobot","blowra","JobRoboter","Qwantify","YisouSpider"].map(e=>e.toLowerCase()).join("|"),"i"),r=/(\[[a-zA-Z0-9-]+\])+/g,i=/\[\[\.\.\.[a-zA-Z0-9-]+\]\]/g,a=/\[\.\.\.[a-zA-Z0-9-]+\]/g,s=e=>e.endsWith("/")?e.substring(0,e.length-1):e,l=new Map,n=n=>u=>{try{let p,{ua:g="",isBot:d=!1}=e(u);if(d||g&&o.test(g.toLowerCase()))return t.next();let m=n.serverABtests.find(e=>((e,t)=>{let o=s(t.split("?")[0]),n=s(e.split("?")[0]);if(o===n)return!0;let u=l.get(n);return u||(u=new RegExp(`^${n.replace(r,"[a-zA-Z0-9-]+")}$`.replace(i,"?.*").replace(a,".*")),l.set(n,u)),u.test(o)})(e.routeHandler,u.nextUrl.pathname));if(!m)return t.next();let v=m.options.at(0)?.value;if(!v)return t.next();let x=n.improveSdk.getVisitorCookieName(),f=u.cookies.get(x)?.value,c=f&&n.improveSdk.validateVisitorId(f)?f:n.improveSdk.generateVisitorId(),B=e=>e&&n.improveSdk.validateTestValue(m.slug,e)?e:null,S=B(u.nextUrl.searchParams.get(m.slug))||B(u.cookies.get(m.slug)?.value)||n.improveSdk.getTestValue(m.slug,c,g),A=m.options.find(e=>e.value===S);if(!A)return t.next();if(A.value!==v){let e=u.nextUrl.clone();e.pathname=m?.formatSlug?m?.formatSlug(e,A)?.pathname:A.slug,p=t.rewrite(e)}else p=t.next();return p.cookies.set(x,c,{maxAge:604800,...n.options?.visitorId}),p.cookies.set(m.slug,S,{maxAge:604800,...n.options?.testValue}),p}catch(e){return console.error("[Improve SDK]",e),t.next()}};export{n as generateImproveNextMiddleware};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@obelism/improve-sdk-next",
3
3
  "description": "Obelism Improve NextJS SDK",
4
- "version": "0.3.6",
4
+ "version": "0.5.1",
5
5
  "keywords": [
6
6
  "ab-tests",
7
7
  "feature-flags",
@@ -14,8 +14,10 @@
14
14
  "author": "Obelism <hello@obelism.studio> (https://www.obelism.studio)",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/Obelism/improve-sdk-next"
17
+ "url": "https://github.com/Obelism/improve-sdk",
18
+ "directory": "packages/next-sdk"
18
19
  },
20
+ "sideEffects": false,
19
21
  "files": [
20
22
  "dist"
21
23
  ],
@@ -58,7 +60,6 @@
58
60
  "vitest": "^2.0.5"
59
61
  },
60
62
  "dependencies": {
61
- "@obelism/improve-sdk": "^0.3.6",
62
- "@obelism/improve-sdk-react": "^0.3.6"
63
+ "@obelism/improve-sdk": "^0.5.0"
63
64
  }
64
65
  }