@preprio/prepr-nextjs 2.0.0-alpha.5 → 2.0.0-alpha.6

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.
@@ -1,2 +1,2 @@
1
- 'use strict';var functions=require('@vercel/functions'),server=require('next/server');function f(r){var c,m,P,d;process.env.PREPR_GRAPHQL_URL||console.error("PREPR_GRAPHQL_URL is not set");let e=server.NextResponse.next();r.nextUrl.searchParams.forEach((t,o)=>{switch(o){case "utm_source":e.headers.set("Prepr-Context-utm_source",t);break;case "utm_medium":e.headers.set("Prepr-Context-utm_medium",t);break;case "utm_term":e.headers.set("Prepr-Context-utm_term",t);break;case "utm_content":e.headers.set("Prepr-Context-utm_content",t);break;case "utm_campaign":e.headers.set("Prepr-Context-utm_campaign",t);break}});let a=r.headers.get("referer");a&&e.headers.set("Prepr-Context-initial_referral",a);let p=functions.ipAddress(r);p&&e.headers.set("Prepr-Visitor-IP",p);let n=(c=r.cookies.get("hubspotutk"))==null?void 0:c.value;n&&e.headers.set("Prepr-Hubspot-Id",n);let s=(m=r.cookies.get("__prepr_uid"))==null?void 0:m.value;if(s||(s=crypto.randomUUID(),e.cookies.set("__prepr_uid",s,{maxAge:1*365*24*60}),e.headers.set("Prepr-Customer-Id-Created","true")),e.headers.set("Prepr-Customer-Id",s),process.env.PREPR_ENV==="preview"){e.headers.set("Prepr-Preview-Bar","true");let t=(P=r.cookies.get("Prepr-Segments"))==null?void 0:P.value;t&&e.headers.set("Prepr-Segments",t);let o=(d=r.cookies.get("Prepr-ABtesting"))==null?void 0:d.value;o&&e.headers.set("Prepr-ABtesting",o),r.nextUrl.searchParams.forEach((i,_)=>{_==="prepr_preview_ab"&&(e.headers.set("Prepr-ABtesting",i),e.cookies.set("Prepr-ABtesting",i)),_==="prepr_preview_segment"&&(e.headers.set("Prepr-Segments",i),e.cookies.set("Prepr-Segments",i));}),console.log(e.headers.getSetCookie());}return e}module.exports=f;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var functions=require('@vercel/functions'),server=require('next/server');function u(r){var c,m,P,d;process.env.PREPR_GRAPHQL_URL||console.error("PREPR_GRAPHQL_URL is not set");let e=server.NextResponse.next();r.nextUrl.searchParams.forEach((t,o)=>{switch(o){case "utm_source":e.headers.set("Prepr-Context-utm_source",t);break;case "utm_medium":e.headers.set("Prepr-Context-utm_medium",t);break;case "utm_term":e.headers.set("Prepr-Context-utm_term",t);break;case "utm_content":e.headers.set("Prepr-Context-utm_content",t);break;case "utm_campaign":e.headers.set("Prepr-Context-utm_campaign",t);break}});let a=r.headers.get("referer");a&&e.headers.set("Prepr-Context-initial_referral",a);let p=functions.ipAddress(r);p&&e.headers.set("Prepr-Visitor-IP",p);let n=(c=r.cookies.get("hubspotutk"))==null?void 0:c.value;n&&e.headers.set("Prepr-Hubspot-Id",n);let s=(m=r.cookies.get("__prepr_uid"))==null?void 0:m.value;if(s||(s=crypto.randomUUID(),e.cookies.set("__prepr_uid",s,{maxAge:1*365*24*60}),e.headers.set("Prepr-Customer-Id-Created","true")),e.headers.set("Prepr-Customer-Id",s),process.env.PREPR_ENV==="preview"){e.headers.set("Prepr-Preview-Bar","true");let t=(P=r.cookies.get("Prepr-Segments"))==null?void 0:P.value;t&&e.headers.set("Prepr-Segments",t);let o=(d=r.cookies.get("Prepr-ABtesting"))==null?void 0:d.value;o&&e.headers.set("Prepr-ABtesting",o),r.nextUrl.searchParams.forEach((i,_)=>{_==="prepr_preview_ab"&&(e.headers.set("Prepr-ABtesting",i),e.cookies.set("Prepr-ABtesting",i)),_==="prepr_preview_segment"&&(e.headers.set("Prepr-Segments",i),e.cookies.set("Prepr-Segments",i));});}return e}module.exports=u;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/index.ts"],"names":["createPreprMiddleware","request","_a","_b","_c","_d","response","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\n\n/**\n * Middleware to set Prepr headers for personalization.\n * @param request - NextRequest object.\n * @param preview - Boolean indicating if preview mode is enabled.\n */\nexport default function createPreprMiddleware(request: NextRequest) {\n if (!process.env.PREPR_GRAPHQL_URL) {\n console.error('PREPR_GRAPHQL_URL is not set');\n }\n\n const response = NextResponse.next();\n\n // Map over search params and set headers\n request.nextUrl.searchParams.forEach((value, key) => {\n switch (key) {\n case 'utm_source':\n response.headers.set('Prepr-Context-utm_source', value);\n break;\n case 'utm_medium':\n response.headers.set('Prepr-Context-utm_medium', value);\n break;\n case 'utm_term':\n response.headers.set('Prepr-Context-utm_term', value);\n break;\n case 'utm_content':\n response.headers.set('Prepr-Context-utm_content', value);\n break;\n case 'utm_campaign':\n response.headers.set('Prepr-Context-utm_campaign', value);\n break;\n }\n });\n\n // Set initial referral header\n const referrer = request.headers.get('referer');\n if (referrer) {\n response.headers.set('Prepr-Context-initial_referral', referrer);\n }\n\n // Set IP address header\n const ip = ipAddress(request);\n if (ip) {\n response.headers.set('Prepr-Visitor-IP', ip);\n }\n\n // Set HubSpot cookie header\n const hutkCookie = request.cookies.get('hubspotutk')?.value;\n if (hutkCookie) {\n response.headers.set('Prepr-Hubspot-Id', hutkCookie);\n }\n\n // Check for existing Prepr UID cookie or create a new one\n let cookie = request.cookies.get('__prepr_uid')?.value;\n if (!cookie) {\n cookie = crypto.randomUUID();\n response.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n });\n response.headers.set('Prepr-Customer-Id-Created', 'true');\n }\n\n // Set the Prepr Customer ID header\n response.headers.set('Prepr-Customer-Id', cookie);\n\n // If preview mode is enabled, set additional headers\n if (process.env.PREPR_ENV === 'preview') {\n response.headers.set('Prepr-Preview-Bar', 'true');\n\n // Set Prepr Preview Segment and AB test cookies\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value;\n if (segmentCookie) {\n response.headers.set('Prepr-Segments', segmentCookie);\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value;\n if (abCookie) {\n response.headers.set('Prepr-ABtesting', abCookie);\n }\n\n // Set Prepr Preview Segment and AB test headers from query params\n request.nextUrl.searchParams.forEach((value, key) => {\n if (key === 'prepr_preview_ab') {\n response.headers.set('Prepr-ABtesting', value);\n response.cookies.set('Prepr-ABtesting', value);\n }\n\n if (key === 'prepr_preview_segment') {\n response.headers.set('Prepr-Segments', value);\n response.cookies.set('Prepr-Segments', value);\n }\n });\n console.log(response.headers.getSetCookie());\n }\n\n return response;\n}\n"]}
1
+ {"version":3,"sources":["../../src/middleware/index.ts"],"names":["createPreprMiddleware","request","_a","_b","_c","_d","response","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\n\n/**\n * Middleware to set Prepr headers for personalization.\n * @param request - NextRequest object.\n * @param preview - Boolean indicating if preview mode is enabled.\n */\nexport default function createPreprMiddleware(request: NextRequest) {\n if (!process.env.PREPR_GRAPHQL_URL) {\n console.error('PREPR_GRAPHQL_URL is not set');\n }\n\n const response = NextResponse.next();\n\n // Map over search params and set headers\n request.nextUrl.searchParams.forEach((value, key) => {\n switch (key) {\n case 'utm_source':\n response.headers.set('Prepr-Context-utm_source', value);\n break;\n case 'utm_medium':\n response.headers.set('Prepr-Context-utm_medium', value);\n break;\n case 'utm_term':\n response.headers.set('Prepr-Context-utm_term', value);\n break;\n case 'utm_content':\n response.headers.set('Prepr-Context-utm_content', value);\n break;\n case 'utm_campaign':\n response.headers.set('Prepr-Context-utm_campaign', value);\n break;\n }\n });\n\n // Set initial referral header\n const referrer = request.headers.get('referer');\n if (referrer) {\n response.headers.set('Prepr-Context-initial_referral', referrer);\n }\n\n // Set IP address header\n const ip = ipAddress(request);\n if (ip) {\n response.headers.set('Prepr-Visitor-IP', ip);\n }\n\n // Set HubSpot cookie header\n const hutkCookie = request.cookies.get('hubspotutk')?.value;\n if (hutkCookie) {\n response.headers.set('Prepr-Hubspot-Id', hutkCookie);\n }\n\n // Check for existing Prepr UID cookie or create a new one\n let cookie = request.cookies.get('__prepr_uid')?.value;\n if (!cookie) {\n cookie = crypto.randomUUID();\n response.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n });\n response.headers.set('Prepr-Customer-Id-Created', 'true');\n }\n\n // Set the Prepr Customer ID header\n response.headers.set('Prepr-Customer-Id', cookie);\n\n // If preview mode is enabled, set additional headers\n if (process.env.PREPR_ENV === 'preview') {\n response.headers.set('Prepr-Preview-Bar', 'true');\n\n // Set Prepr Preview Segment and AB test cookies\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value;\n if (segmentCookie) {\n response.headers.set('Prepr-Segments', segmentCookie);\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value;\n if (abCookie) {\n response.headers.set('Prepr-ABtesting', abCookie);\n }\n\n // Set Prepr Preview Segment and AB test headers from query params\n request.nextUrl.searchParams.forEach((value, key) => {\n if (key === 'prepr_preview_ab') {\n response.headers.set('Prepr-ABtesting', value);\n response.cookies.set('Prepr-ABtesting', value);\n }\n\n if (key === 'prepr_preview_segment') {\n response.headers.set('Prepr-Segments', value);\n response.cookies.set('Prepr-Segments', value);\n }\n });\n }\n\n return response;\n}\n"]}
@@ -1,2 +1,2 @@
1
- import'../chunk-E7ATRJ2F.js';import {ipAddress}from'@vercel/functions';import {NextResponse}from'next/server';function f(r){var c,m,P,d;process.env.PREPR_GRAPHQL_URL||console.error("PREPR_GRAPHQL_URL is not set");let e=NextResponse.next();r.nextUrl.searchParams.forEach((t,o)=>{switch(o){case "utm_source":e.headers.set("Prepr-Context-utm_source",t);break;case "utm_medium":e.headers.set("Prepr-Context-utm_medium",t);break;case "utm_term":e.headers.set("Prepr-Context-utm_term",t);break;case "utm_content":e.headers.set("Prepr-Context-utm_content",t);break;case "utm_campaign":e.headers.set("Prepr-Context-utm_campaign",t);break}});let a=r.headers.get("referer");a&&e.headers.set("Prepr-Context-initial_referral",a);let p=ipAddress(r);p&&e.headers.set("Prepr-Visitor-IP",p);let n=(c=r.cookies.get("hubspotutk"))==null?void 0:c.value;n&&e.headers.set("Prepr-Hubspot-Id",n);let s=(m=r.cookies.get("__prepr_uid"))==null?void 0:m.value;if(s||(s=crypto.randomUUID(),e.cookies.set("__prepr_uid",s,{maxAge:1*365*24*60}),e.headers.set("Prepr-Customer-Id-Created","true")),e.headers.set("Prepr-Customer-Id",s),process.env.PREPR_ENV==="preview"){e.headers.set("Prepr-Preview-Bar","true");let t=(P=r.cookies.get("Prepr-Segments"))==null?void 0:P.value;t&&e.headers.set("Prepr-Segments",t);let o=(d=r.cookies.get("Prepr-ABtesting"))==null?void 0:d.value;o&&e.headers.set("Prepr-ABtesting",o),r.nextUrl.searchParams.forEach((i,_)=>{_==="prepr_preview_ab"&&(e.headers.set("Prepr-ABtesting",i),e.cookies.set("Prepr-ABtesting",i)),_==="prepr_preview_segment"&&(e.headers.set("Prepr-Segments",i),e.cookies.set("Prepr-Segments",i));}),console.log(e.headers.getSetCookie());}return e}export{f as default};//# sourceMappingURL=index.js.map
1
+ import'../chunk-E7ATRJ2F.js';import {ipAddress}from'@vercel/functions';import {NextResponse}from'next/server';function u(r){var c,m,P,d;process.env.PREPR_GRAPHQL_URL||console.error("PREPR_GRAPHQL_URL is not set");let e=NextResponse.next();r.nextUrl.searchParams.forEach((t,o)=>{switch(o){case "utm_source":e.headers.set("Prepr-Context-utm_source",t);break;case "utm_medium":e.headers.set("Prepr-Context-utm_medium",t);break;case "utm_term":e.headers.set("Prepr-Context-utm_term",t);break;case "utm_content":e.headers.set("Prepr-Context-utm_content",t);break;case "utm_campaign":e.headers.set("Prepr-Context-utm_campaign",t);break}});let a=r.headers.get("referer");a&&e.headers.set("Prepr-Context-initial_referral",a);let p=ipAddress(r);p&&e.headers.set("Prepr-Visitor-IP",p);let n=(c=r.cookies.get("hubspotutk"))==null?void 0:c.value;n&&e.headers.set("Prepr-Hubspot-Id",n);let s=(m=r.cookies.get("__prepr_uid"))==null?void 0:m.value;if(s||(s=crypto.randomUUID(),e.cookies.set("__prepr_uid",s,{maxAge:1*365*24*60}),e.headers.set("Prepr-Customer-Id-Created","true")),e.headers.set("Prepr-Customer-Id",s),process.env.PREPR_ENV==="preview"){e.headers.set("Prepr-Preview-Bar","true");let t=(P=r.cookies.get("Prepr-Segments"))==null?void 0:P.value;t&&e.headers.set("Prepr-Segments",t);let o=(d=r.cookies.get("Prepr-ABtesting"))==null?void 0:d.value;o&&e.headers.set("Prepr-ABtesting",o),r.nextUrl.searchParams.forEach((i,_)=>{_==="prepr_preview_ab"&&(e.headers.set("Prepr-ABtesting",i),e.cookies.set("Prepr-ABtesting",i)),_==="prepr_preview_segment"&&(e.headers.set("Prepr-Segments",i),e.cookies.set("Prepr-Segments",i));});}return e}export{u as default};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/index.ts"],"names":["createPreprMiddleware","request","_a","_b","_c","_d","response","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"index.js","sourcesContent":["import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\n\n/**\n * Middleware to set Prepr headers for personalization.\n * @param request - NextRequest object.\n * @param preview - Boolean indicating if preview mode is enabled.\n */\nexport default function createPreprMiddleware(request: NextRequest) {\n if (!process.env.PREPR_GRAPHQL_URL) {\n console.error('PREPR_GRAPHQL_URL is not set');\n }\n\n const response = NextResponse.next();\n\n // Map over search params and set headers\n request.nextUrl.searchParams.forEach((value, key) => {\n switch (key) {\n case 'utm_source':\n response.headers.set('Prepr-Context-utm_source', value);\n break;\n case 'utm_medium':\n response.headers.set('Prepr-Context-utm_medium', value);\n break;\n case 'utm_term':\n response.headers.set('Prepr-Context-utm_term', value);\n break;\n case 'utm_content':\n response.headers.set('Prepr-Context-utm_content', value);\n break;\n case 'utm_campaign':\n response.headers.set('Prepr-Context-utm_campaign', value);\n break;\n }\n });\n\n // Set initial referral header\n const referrer = request.headers.get('referer');\n if (referrer) {\n response.headers.set('Prepr-Context-initial_referral', referrer);\n }\n\n // Set IP address header\n const ip = ipAddress(request);\n if (ip) {\n response.headers.set('Prepr-Visitor-IP', ip);\n }\n\n // Set HubSpot cookie header\n const hutkCookie = request.cookies.get('hubspotutk')?.value;\n if (hutkCookie) {\n response.headers.set('Prepr-Hubspot-Id', hutkCookie);\n }\n\n // Check for existing Prepr UID cookie or create a new one\n let cookie = request.cookies.get('__prepr_uid')?.value;\n if (!cookie) {\n cookie = crypto.randomUUID();\n response.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n });\n response.headers.set('Prepr-Customer-Id-Created', 'true');\n }\n\n // Set the Prepr Customer ID header\n response.headers.set('Prepr-Customer-Id', cookie);\n\n // If preview mode is enabled, set additional headers\n if (process.env.PREPR_ENV === 'preview') {\n response.headers.set('Prepr-Preview-Bar', 'true');\n\n // Set Prepr Preview Segment and AB test cookies\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value;\n if (segmentCookie) {\n response.headers.set('Prepr-Segments', segmentCookie);\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value;\n if (abCookie) {\n response.headers.set('Prepr-ABtesting', abCookie);\n }\n\n // Set Prepr Preview Segment and AB test headers from query params\n request.nextUrl.searchParams.forEach((value, key) => {\n if (key === 'prepr_preview_ab') {\n response.headers.set('Prepr-ABtesting', value);\n response.cookies.set('Prepr-ABtesting', value);\n }\n\n if (key === 'prepr_preview_segment') {\n response.headers.set('Prepr-Segments', value);\n response.cookies.set('Prepr-Segments', value);\n }\n });\n console.log(response.headers.getSetCookie());\n }\n\n return response;\n}\n"]}
1
+ {"version":3,"sources":["../../src/middleware/index.ts"],"names":["createPreprMiddleware","request","_a","_b","_c","_d","response","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"index.js","sourcesContent":["import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\n\n/**\n * Middleware to set Prepr headers for personalization.\n * @param request - NextRequest object.\n * @param preview - Boolean indicating if preview mode is enabled.\n */\nexport default function createPreprMiddleware(request: NextRequest) {\n if (!process.env.PREPR_GRAPHQL_URL) {\n console.error('PREPR_GRAPHQL_URL is not set');\n }\n\n const response = NextResponse.next();\n\n // Map over search params and set headers\n request.nextUrl.searchParams.forEach((value, key) => {\n switch (key) {\n case 'utm_source':\n response.headers.set('Prepr-Context-utm_source', value);\n break;\n case 'utm_medium':\n response.headers.set('Prepr-Context-utm_medium', value);\n break;\n case 'utm_term':\n response.headers.set('Prepr-Context-utm_term', value);\n break;\n case 'utm_content':\n response.headers.set('Prepr-Context-utm_content', value);\n break;\n case 'utm_campaign':\n response.headers.set('Prepr-Context-utm_campaign', value);\n break;\n }\n });\n\n // Set initial referral header\n const referrer = request.headers.get('referer');\n if (referrer) {\n response.headers.set('Prepr-Context-initial_referral', referrer);\n }\n\n // Set IP address header\n const ip = ipAddress(request);\n if (ip) {\n response.headers.set('Prepr-Visitor-IP', ip);\n }\n\n // Set HubSpot cookie header\n const hutkCookie = request.cookies.get('hubspotutk')?.value;\n if (hutkCookie) {\n response.headers.set('Prepr-Hubspot-Id', hutkCookie);\n }\n\n // Check for existing Prepr UID cookie or create a new one\n let cookie = request.cookies.get('__prepr_uid')?.value;\n if (!cookie) {\n cookie = crypto.randomUUID();\n response.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n });\n response.headers.set('Prepr-Customer-Id-Created', 'true');\n }\n\n // Set the Prepr Customer ID header\n response.headers.set('Prepr-Customer-Id', cookie);\n\n // If preview mode is enabled, set additional headers\n if (process.env.PREPR_ENV === 'preview') {\n response.headers.set('Prepr-Preview-Bar', 'true');\n\n // Set Prepr Preview Segment and AB test cookies\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value;\n if (segmentCookie) {\n response.headers.set('Prepr-Segments', segmentCookie);\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value;\n if (abCookie) {\n response.headers.set('Prepr-ABtesting', abCookie);\n }\n\n // Set Prepr Preview Segment and AB test headers from query params\n request.nextUrl.searchParams.forEach((value, key) => {\n if (key === 'prepr_preview_ab') {\n response.headers.set('Prepr-ABtesting', value);\n response.cookies.set('Prepr-ABtesting', value);\n }\n\n if (key === 'prepr_preview_segment') {\n response.headers.set('Prepr-Segments', value);\n response.cookies.set('Prepr-Segments', value);\n }\n });\n }\n\n return response;\n}\n"]}
@@ -1,4 +1,4 @@
1
- 'use strict';var headers=require('next/headers');var n=(e,r,t)=>new Promise((s,d)=>{var u=i=>{try{a(t.next(i));}catch(p){d(p);}},l=i=>{try{a(t.throw(i));}catch(p){d(p);}},a=i=>i.done?s(i.value):Promise.resolve(i.value).then(u,l);a((t=t.apply(e,r)).next());});var o={version:"2.0.0-alpha.5"};function w(){return n(this,null,function*(){return (yield headers.headers()).get("prepr-customer-id")})}function g(){return n(this,null,function*(){return (yield headers.headers()).get("Prepr-Segments")})}function x(){return n(this,null,function*(){return (yield headers.headers()).get("Prepr-ABtesting")})}function k(){return n(this,null,function*(){let e={};return (yield headers.headers()).forEach((t,s)=>{s.startsWith("prepr")&&(e[s]=t);}),e})}function h(e){return n(this,null,function*(){var r;if(!e)return console.error("No token provided, make sure you are using your Prepr GraphQL URL"),[];if(!e.startsWith("https://"))return console.error("Invalid token provided, make sure you are using your Prepr GraphQL URL"),[];try{let t=yield fetch(e,{headers:{"User-Agent":`Prepr-Preview-Bar/${y()}`,"Content-Type":"application/json"},method:"POST",body:JSON.stringify({query:`{
1
+ 'use strict';var headers=require('next/headers');var n=(e,r,t)=>new Promise((s,d)=>{var u=i=>{try{a(t.next(i));}catch(p){d(p);}},l=i=>{try{a(t.throw(i));}catch(p){d(p);}},a=i=>i.done?s(i.value):Promise.resolve(i.value).then(u,l);a((t=t.apply(e,r)).next());});var o={version:"2.0.0-alpha.6"};function w(){return n(this,null,function*(){return (yield headers.headers()).get("prepr-customer-id")})}function g(){return n(this,null,function*(){return (yield headers.headers()).get("Prepr-Segments")})}function x(){return n(this,null,function*(){return (yield headers.headers()).get("Prepr-ABtesting")})}function k(){return n(this,null,function*(){let e={};return (yield headers.headers()).forEach((t,s)=>{s.startsWith("prepr")&&(e[s]=t);}),e})}function h(e){return n(this,null,function*(){var r;if(!e)return console.error("No token provided, make sure you are using your Prepr GraphQL URL"),[];if(!e.startsWith("https://"))return console.error("Invalid token provided, make sure you are using your Prepr GraphQL URL"),[];try{let t=yield fetch(e,{headers:{"User-Agent":`Prepr-Preview-Bar/${y()}`,"Content-Type":"application/json"},method:"POST",body:JSON.stringify({query:`{
2
2
  _Segments {
3
3
  _id
4
4
  name
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/index.ts","../../package.json"],"names":["package_default","getPreprUUID","__async","headers","getActiveSegment","getActiveVariant","getPreprHeaders","newHeaders","value","key","getPreprEnvironmentSegments","token","_a","response","getPackageVersion","json","e","error","getPreviewBarProps","data","activeSegment","activeVariant"],"mappings":"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","file":"index.cjs","sourcesContent":["import { headers } from 'next/headers';\nimport { PreprPreviewBarProps, PreprSegment } from '../types';\nimport pjson from '../../package.json';\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport async function getPreprUUID() {\n const headersList = await headers();\n return headersList.get('prepr-customer-id');\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport async function getActiveSegment() {\n const headersList = await headers();\n return headersList.get('Prepr-Segments');\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport async function getActiveVariant() {\n const headersList = await headers();\n return headersList.get('Prepr-ABtesting');\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport async function getPreprHeaders() {\n const newHeaders: {\n [key: string]: string;\n } = {};\n\n const headersList = await headers();\n\n headersList.forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value;\n }\n });\n\n return newHeaders;\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Array of PreprSegmentResponse\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegment[]> {\n if (!token) {\n console.error(\n 'No token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n if (!token.startsWith('https://')) {\n console.error(\n 'Invalid token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n try {\n const response = await fetch(token, {\n headers: {\n 'User-Agent': `Prepr-Preview-Bar/${getPackageVersion()}`,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({\n query: `{\n _Segments {\n _id\n name\n }\n }`,\n }),\n });\n try {\n const json = await response.json();\n\n if (!json || !json.data || !json.data._Segments) {\n return [];\n }\n\n return json.data?._Segments as PreprSegment[];\n } catch {\n console.error('Error parsing JSON, please contact Prepr support');\n return [];\n }\n } catch (error) {\n console.error('Error fetching segments:', error);\n return [];\n }\n}\n\n/**\n * Fetches all the necessary previewbar props\n * @param token Prepr access token with scope 'segments'\n * @returns Object with activeSegment, activeVariant and data\n */\nexport async function getPreviewBarProps(\n token: string\n): Promise<PreprPreviewBarProps> {\n let data: PreprSegment[] = [];\n let activeSegment: string | null = null;\n let activeVariant: string | null = null;\n\n // Prevent unnecessary function calling in production\n if (process.env.PREPR_ENV === 'preview') {\n data = await getPreprEnvironmentSegments(token);\n activeSegment = await getActiveSegment();\n activeVariant = await getActiveVariant();\n }\n\n return {\n activeSegment,\n activeVariant,\n data,\n };\n}\n\nfunction getPackageVersion() {\n return pjson.version;\n}\n","{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.0.0-alpha.5\",\n \"description\": \"Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities\",\n \"main\": \"dist/react/index.cjs\",\n \"types\": \"./dist/react/index.d.ts\",\n \"module\": \"./dist/react/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"dev:css\": \"postcss ./src/globals.css -o ./src/output.css --watch\",\n \"build:css\": \"NODE_ENV=production postcss ./src/globals.css -o ./dist/index.css\",\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"clean\": \"rm -rf dist\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"release\": \"node scripts/release.js\",\n \"check\": \"npm run type-check && npm run lint:check && npm run format:check\",\n \"type-check\": \"tsc --noEmit\",\n \"lint\": \"eslint src --ext .ts,.tsx --fix\",\n \"lint:check\": \"eslint src --ext .ts,.tsx\",\n \"prepublishOnly\": \"npm run check && npm run build\"\n },\n \"exports\": {\n \"./middleware\": {\n \"import\": \"./dist/middleware/index.js\",\n \"types\": \"./dist/middleware/index.d.ts\",\n \"require\": \"./dist/middleware/index.cjs\"\n },\n \"./server\": {\n \"import\": \"./dist/server/index.js\",\n \"types\": \"./dist/server/index.d.ts\",\n \"require\": \"./dist/server/index.cjs\"\n },\n \"./react\": {\n \"import\": \"./dist/react/index.js\",\n \"types\": \"./dist/react/index.d.ts\",\n \"require\": \"./dist/react/index.cjs\"\n },\n \"./contexts\": {\n \"import\": \"./dist/contexts/index.js\",\n \"types\": \"./dist/contexts/index.d.ts\",\n \"require\": \"./dist/contexts/index.cjs\"\n },\n \"./utils\": {\n \"import\": \"./dist/utils/index.js\",\n \"types\": \"./dist/utils/index.d.ts\",\n \"require\": \"./dist/utils/index.cjs\"\n },\n \"./types\": {\n \"import\": \"./dist/types/index.js\",\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/types/index.cjs\"\n },\n \"./index.css\": {\n \"import\": \"./dist/index.css\",\n \"require\": \"./dist/index.css\"\n }\n },\n \"files\": [\n \"dist\",\n \"package.json\"\n ],\n \"keywords\": [\n \"prepr\",\n \"cms\",\n \"nextjs\",\n \"preview\",\n \"visual-editing\",\n \"headless-cms\",\n \"react\",\n \"typescript\",\n \"debug\",\n \"stega\"\n ],\n \"author\": \"Preprio\",\n \"license\": \"MIT\",\n \"packageManager\": \"pnpm@10.5.2\",\n \"devDependencies\": {\n \"@eslint/js\": \"^9.25.1\",\n \"@types/node\": \"^20.11.5\",\n \"@types/react\": \"19.1.0\",\n \"@types/react-dom\": \"19.1.2\",\n \"@typescript-eslint/eslint-plugin\": \"^8.31.1\",\n \"@typescript-eslint/parser\": \"^8.31.1\",\n \"autoprefixer\": \"^10.4.21\",\n \"cssnano\": \"^7.0.7\",\n \"eslint\": \"^9.25.1\",\n \"eslint-config-prettier\": \"^10.1.2\",\n \"eslint-plugin-prettier\": \"^5.2.6\",\n \"eslint-plugin-react\": \"^7.37.2\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"next\": \"15.3.1\",\n \"postcss\": \"^8\",\n \"prettier\": \"^3.5.3\",\n \"prettier-plugin-tailwindcss\": \"^0.5.12\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"tailwindcss\": \"^3.4.17\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.8.3\"\n },\n \"peerDependencies\": {\n \"next\": \"^15.0.0 || ^14.0.0 || ^13.0.0\",\n \"react\": \"^19.0.0 || ^18.0.0 || ^17.0.0 \",\n \"react-dom\": \"^19.0.0 || ^18.0.0 || ^17.0.0\"\n },\n \"dependencies\": {\n \"@headlessui/react\": \"^2.2.0\",\n \"@vercel/functions\": \"^2.0.0\",\n \"@vercel/stega\": \"^0.1.2\",\n \"clsx\": \"^2.1.1\",\n \"postcss-cli\": \"^11.0.1\",\n \"tailwind-merge\": \"^3.0.1\"\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/server/index.ts","../../package.json"],"names":["package_default","getPreprUUID","__async","headers","getActiveSegment","getActiveVariant","getPreprHeaders","newHeaders","value","key","getPreprEnvironmentSegments","token","_a","response","getPackageVersion","json","e","error","getPreviewBarProps","data","activeSegment","activeVariant"],"mappings":"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","file":"index.cjs","sourcesContent":["import { headers } from 'next/headers';\nimport { PreprPreviewBarProps, PreprSegment } from '../types';\nimport pjson from '../../package.json';\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport async function getPreprUUID() {\n const headersList = await headers();\n return headersList.get('prepr-customer-id');\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport async function getActiveSegment() {\n const headersList = await headers();\n return headersList.get('Prepr-Segments');\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport async function getActiveVariant() {\n const headersList = await headers();\n return headersList.get('Prepr-ABtesting');\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport async function getPreprHeaders() {\n const newHeaders: {\n [key: string]: string;\n } = {};\n\n const headersList = await headers();\n\n headersList.forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value;\n }\n });\n\n return newHeaders;\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Array of PreprSegmentResponse\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegment[]> {\n if (!token) {\n console.error(\n 'No token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n if (!token.startsWith('https://')) {\n console.error(\n 'Invalid token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n try {\n const response = await fetch(token, {\n headers: {\n 'User-Agent': `Prepr-Preview-Bar/${getPackageVersion()}`,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({\n query: `{\n _Segments {\n _id\n name\n }\n }`,\n }),\n });\n try {\n const json = await response.json();\n\n if (!json || !json.data || !json.data._Segments) {\n return [];\n }\n\n return json.data?._Segments as PreprSegment[];\n } catch {\n console.error('Error parsing JSON, please contact Prepr support');\n return [];\n }\n } catch (error) {\n console.error('Error fetching segments:', error);\n return [];\n }\n}\n\n/**\n * Fetches all the necessary previewbar props\n * @param token Prepr access token with scope 'segments'\n * @returns Object with activeSegment, activeVariant and data\n */\nexport async function getPreviewBarProps(\n token: string\n): Promise<PreprPreviewBarProps> {\n let data: PreprSegment[] = [];\n let activeSegment: string | null = null;\n let activeVariant: string | null = null;\n\n // Prevent unnecessary function calling in production\n if (process.env.PREPR_ENV === 'preview') {\n data = await getPreprEnvironmentSegments(token);\n activeSegment = await getActiveSegment();\n activeVariant = await getActiveVariant();\n }\n\n return {\n activeSegment,\n activeVariant,\n data,\n };\n}\n\nfunction getPackageVersion() {\n return pjson.version;\n}\n","{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.0.0-alpha.6\",\n \"description\": \"Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities\",\n \"main\": \"dist/react/index.cjs\",\n \"types\": \"./dist/react/index.d.ts\",\n \"module\": \"./dist/react/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"dev:css\": \"postcss ./src/globals.css -o ./src/output.css --watch\",\n \"build:css\": \"NODE_ENV=production postcss ./src/globals.css -o ./dist/index.css\",\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"clean\": \"rm -rf dist\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"release\": \"node scripts/release.js\",\n \"check\": \"npm run type-check && npm run lint:check && npm run format:check\",\n \"type-check\": \"tsc --noEmit\",\n \"lint\": \"eslint src --ext .ts,.tsx --fix\",\n \"lint:check\": \"eslint src --ext .ts,.tsx\",\n \"prepublishOnly\": \"npm run check && npm run build\"\n },\n \"exports\": {\n \"./middleware\": {\n \"import\": \"./dist/middleware/index.js\",\n \"types\": \"./dist/middleware/index.d.ts\",\n \"require\": \"./dist/middleware/index.cjs\"\n },\n \"./server\": {\n \"import\": \"./dist/server/index.js\",\n \"types\": \"./dist/server/index.d.ts\",\n \"require\": \"./dist/server/index.cjs\"\n },\n \"./react\": {\n \"import\": \"./dist/react/index.js\",\n \"types\": \"./dist/react/index.d.ts\",\n \"require\": \"./dist/react/index.cjs\"\n },\n \"./contexts\": {\n \"import\": \"./dist/contexts/index.js\",\n \"types\": \"./dist/contexts/index.d.ts\",\n \"require\": \"./dist/contexts/index.cjs\"\n },\n \"./utils\": {\n \"import\": \"./dist/utils/index.js\",\n \"types\": \"./dist/utils/index.d.ts\",\n \"require\": \"./dist/utils/index.cjs\"\n },\n \"./types\": {\n \"import\": \"./dist/types/index.js\",\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/types/index.cjs\"\n },\n \"./index.css\": {\n \"import\": \"./dist/index.css\",\n \"require\": \"./dist/index.css\"\n }\n },\n \"files\": [\n \"dist\",\n \"package.json\"\n ],\n \"keywords\": [\n \"prepr\",\n \"cms\",\n \"nextjs\",\n \"preview\",\n \"visual-editing\",\n \"headless-cms\",\n \"react\",\n \"typescript\",\n \"debug\",\n \"stega\"\n ],\n \"author\": \"Preprio\",\n \"license\": \"MIT\",\n \"packageManager\": \"pnpm@10.5.2\",\n \"devDependencies\": {\n \"@eslint/js\": \"^9.25.1\",\n \"@types/node\": \"^20.11.5\",\n \"@types/react\": \"19.1.0\",\n \"@types/react-dom\": \"19.1.2\",\n \"@typescript-eslint/eslint-plugin\": \"^8.31.1\",\n \"@typescript-eslint/parser\": \"^8.31.1\",\n \"autoprefixer\": \"^10.4.21\",\n \"cssnano\": \"^7.0.7\",\n \"eslint\": \"^9.25.1\",\n \"eslint-config-prettier\": \"^10.1.2\",\n \"eslint-plugin-prettier\": \"^5.2.6\",\n \"eslint-plugin-react\": \"^7.37.2\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"next\": \"15.3.1\",\n \"postcss\": \"^8\",\n \"prettier\": \"^3.5.3\",\n \"prettier-plugin-tailwindcss\": \"^0.5.12\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"tailwindcss\": \"^3.4.17\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.8.3\"\n },\n \"peerDependencies\": {\n \"next\": \"^15.0.0 || ^14.0.0 || ^13.0.0\",\n \"react\": \"^19.0.0 || ^18.0.0 || ^17.0.0 \",\n \"react-dom\": \"^19.0.0 || ^18.0.0 || ^17.0.0\"\n },\n \"dependencies\": {\n \"@headlessui/react\": \"^2.2.0\",\n \"@vercel/functions\": \"^2.0.0\",\n \"@vercel/stega\": \"^0.1.2\",\n \"clsx\": \"^2.1.1\",\n \"postcss-cli\": \"^11.0.1\",\n \"tailwind-merge\": \"^3.0.1\"\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import {c as c$1}from'../chunk-E7ATRJ2F.js';import {headers}from'next/headers';var c={version:"2.0.0-alpha.5"};function x(){return c$1(this,null,function*(){return (yield headers()).get("prepr-customer-id")})}function p(){return c$1(this,null,function*(){return (yield headers()).get("Prepr-Segments")})}function d(){return c$1(this,null,function*(){return (yield headers()).get("Prepr-ABtesting")})}function h(){return c$1(this,null,function*(){let e={};return (yield headers()).forEach((s,t)=>{t.startsWith("prepr")&&(e[t]=s);}),e})}function o(e){return c$1(this,null,function*(){var i;if(!e)return console.error("No token provided, make sure you are using your Prepr GraphQL URL"),[];if(!e.startsWith("https://"))return console.error("Invalid token provided, make sure you are using your Prepr GraphQL URL"),[];try{let s=yield fetch(e,{headers:{"User-Agent":`Prepr-Preview-Bar/${u()}`,"Content-Type":"application/json"},method:"POST",body:JSON.stringify({query:`{
1
+ import {c as c$1}from'../chunk-E7ATRJ2F.js';import {headers}from'next/headers';var c={version:"2.0.0-alpha.6"};function x(){return c$1(this,null,function*(){return (yield headers()).get("prepr-customer-id")})}function p(){return c$1(this,null,function*(){return (yield headers()).get("Prepr-Segments")})}function d(){return c$1(this,null,function*(){return (yield headers()).get("Prepr-ABtesting")})}function h(){return c$1(this,null,function*(){let e={};return (yield headers()).forEach((s,t)=>{t.startsWith("prepr")&&(e[t]=s);}),e})}function o(e){return c$1(this,null,function*(){var i;if(!e)return console.error("No token provided, make sure you are using your Prepr GraphQL URL"),[];if(!e.startsWith("https://"))return console.error("Invalid token provided, make sure you are using your Prepr GraphQL URL"),[];try{let s=yield fetch(e,{headers:{"User-Agent":`Prepr-Preview-Bar/${u()}`,"Content-Type":"application/json"},method:"POST",body:JSON.stringify({query:`{
2
2
  _Segments {
3
3
  _id
4
4
  name
@@ -1 +1 @@
1
- {"version":3,"sources":["../../package.json","../../src/server/index.ts"],"names":["package_default","getPreprUUID","__async","headers","getActiveSegment","getActiveVariant","getPreprHeaders","newHeaders","value","key","getPreprEnvironmentSegments","token","_a","response","getPackageVersion","json","e","error","getPreviewBarProps","data","activeSegment","activeVariant"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.0.0-alpha.5\",\n \"description\": \"Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities\",\n \"main\": \"dist/react/index.cjs\",\n \"types\": \"./dist/react/index.d.ts\",\n \"module\": \"./dist/react/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"dev:css\": \"postcss ./src/globals.css -o ./src/output.css --watch\",\n \"build:css\": \"NODE_ENV=production postcss ./src/globals.css -o ./dist/index.css\",\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"clean\": \"rm -rf dist\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"release\": \"node scripts/release.js\",\n \"check\": \"npm run type-check && npm run lint:check && npm run format:check\",\n \"type-check\": \"tsc --noEmit\",\n \"lint\": \"eslint src --ext .ts,.tsx --fix\",\n \"lint:check\": \"eslint src --ext .ts,.tsx\",\n \"prepublishOnly\": \"npm run check && npm run build\"\n },\n \"exports\": {\n \"./middleware\": {\n \"import\": \"./dist/middleware/index.js\",\n \"types\": \"./dist/middleware/index.d.ts\",\n \"require\": \"./dist/middleware/index.cjs\"\n },\n \"./server\": {\n \"import\": \"./dist/server/index.js\",\n \"types\": \"./dist/server/index.d.ts\",\n \"require\": \"./dist/server/index.cjs\"\n },\n \"./react\": {\n \"import\": \"./dist/react/index.js\",\n \"types\": \"./dist/react/index.d.ts\",\n \"require\": \"./dist/react/index.cjs\"\n },\n \"./contexts\": {\n \"import\": \"./dist/contexts/index.js\",\n \"types\": \"./dist/contexts/index.d.ts\",\n \"require\": \"./dist/contexts/index.cjs\"\n },\n \"./utils\": {\n \"import\": \"./dist/utils/index.js\",\n \"types\": \"./dist/utils/index.d.ts\",\n \"require\": \"./dist/utils/index.cjs\"\n },\n \"./types\": {\n \"import\": \"./dist/types/index.js\",\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/types/index.cjs\"\n },\n \"./index.css\": {\n \"import\": \"./dist/index.css\",\n \"require\": \"./dist/index.css\"\n }\n },\n \"files\": [\n \"dist\",\n \"package.json\"\n ],\n \"keywords\": [\n \"prepr\",\n \"cms\",\n \"nextjs\",\n \"preview\",\n \"visual-editing\",\n \"headless-cms\",\n \"react\",\n \"typescript\",\n \"debug\",\n \"stega\"\n ],\n \"author\": \"Preprio\",\n \"license\": \"MIT\",\n \"packageManager\": \"pnpm@10.5.2\",\n \"devDependencies\": {\n \"@eslint/js\": \"^9.25.1\",\n \"@types/node\": \"^20.11.5\",\n \"@types/react\": \"19.1.0\",\n \"@types/react-dom\": \"19.1.2\",\n \"@typescript-eslint/eslint-plugin\": \"^8.31.1\",\n \"@typescript-eslint/parser\": \"^8.31.1\",\n \"autoprefixer\": \"^10.4.21\",\n \"cssnano\": \"^7.0.7\",\n \"eslint\": \"^9.25.1\",\n \"eslint-config-prettier\": \"^10.1.2\",\n \"eslint-plugin-prettier\": \"^5.2.6\",\n \"eslint-plugin-react\": \"^7.37.2\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"next\": \"15.3.1\",\n \"postcss\": \"^8\",\n \"prettier\": \"^3.5.3\",\n \"prettier-plugin-tailwindcss\": \"^0.5.12\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"tailwindcss\": \"^3.4.17\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.8.3\"\n },\n \"peerDependencies\": {\n \"next\": \"^15.0.0 || ^14.0.0 || ^13.0.0\",\n \"react\": \"^19.0.0 || ^18.0.0 || ^17.0.0 \",\n \"react-dom\": \"^19.0.0 || ^18.0.0 || ^17.0.0\"\n },\n \"dependencies\": {\n \"@headlessui/react\": \"^2.2.0\",\n \"@vercel/functions\": \"^2.0.0\",\n \"@vercel/stega\": \"^0.1.2\",\n \"clsx\": \"^2.1.1\",\n \"postcss-cli\": \"^11.0.1\",\n \"tailwind-merge\": \"^3.0.1\"\n }\n}\n","import { headers } from 'next/headers';\nimport { PreprPreviewBarProps, PreprSegment } from '../types';\nimport pjson from '../../package.json';\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport async function getPreprUUID() {\n const headersList = await headers();\n return headersList.get('prepr-customer-id');\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport async function getActiveSegment() {\n const headersList = await headers();\n return headersList.get('Prepr-Segments');\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport async function getActiveVariant() {\n const headersList = await headers();\n return headersList.get('Prepr-ABtesting');\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport async function getPreprHeaders() {\n const newHeaders: {\n [key: string]: string;\n } = {};\n\n const headersList = await headers();\n\n headersList.forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value;\n }\n });\n\n return newHeaders;\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Array of PreprSegmentResponse\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegment[]> {\n if (!token) {\n console.error(\n 'No token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n if (!token.startsWith('https://')) {\n console.error(\n 'Invalid token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n try {\n const response = await fetch(token, {\n headers: {\n 'User-Agent': `Prepr-Preview-Bar/${getPackageVersion()}`,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({\n query: `{\n _Segments {\n _id\n name\n }\n }`,\n }),\n });\n try {\n const json = await response.json();\n\n if (!json || !json.data || !json.data._Segments) {\n return [];\n }\n\n return json.data?._Segments as PreprSegment[];\n } catch {\n console.error('Error parsing JSON, please contact Prepr support');\n return [];\n }\n } catch (error) {\n console.error('Error fetching segments:', error);\n return [];\n }\n}\n\n/**\n * Fetches all the necessary previewbar props\n * @param token Prepr access token with scope 'segments'\n * @returns Object with activeSegment, activeVariant and data\n */\nexport async function getPreviewBarProps(\n token: string\n): Promise<PreprPreviewBarProps> {\n let data: PreprSegment[] = [];\n let activeSegment: string | null = null;\n let activeVariant: string | null = null;\n\n // Prevent unnecessary function calling in production\n if (process.env.PREPR_ENV === 'preview') {\n data = await getPreprEnvironmentSegments(token);\n activeSegment = await getActiveSegment();\n activeVariant = await getActiveVariant();\n }\n\n return {\n activeSegment,\n activeVariant,\n data,\n };\n}\n\nfunction getPackageVersion() {\n return pjson.version;\n}\n"]}
1
+ {"version":3,"sources":["../../package.json","../../src/server/index.ts"],"names":["package_default","getPreprUUID","__async","headers","getActiveSegment","getActiveVariant","getPreprHeaders","newHeaders","value","key","getPreprEnvironmentSegments","token","_a","response","getPackageVersion","json","e","error","getPreviewBarProps","data","activeSegment","activeVariant"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.0.0-alpha.6\",\n \"description\": \"Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities\",\n \"main\": \"dist/react/index.cjs\",\n \"types\": \"./dist/react/index.d.ts\",\n \"module\": \"./dist/react/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"dev:css\": \"postcss ./src/globals.css -o ./src/output.css --watch\",\n \"build:css\": \"NODE_ENV=production postcss ./src/globals.css -o ./dist/index.css\",\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"clean\": \"rm -rf dist\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"release\": \"node scripts/release.js\",\n \"check\": \"npm run type-check && npm run lint:check && npm run format:check\",\n \"type-check\": \"tsc --noEmit\",\n \"lint\": \"eslint src --ext .ts,.tsx --fix\",\n \"lint:check\": \"eslint src --ext .ts,.tsx\",\n \"prepublishOnly\": \"npm run check && npm run build\"\n },\n \"exports\": {\n \"./middleware\": {\n \"import\": \"./dist/middleware/index.js\",\n \"types\": \"./dist/middleware/index.d.ts\",\n \"require\": \"./dist/middleware/index.cjs\"\n },\n \"./server\": {\n \"import\": \"./dist/server/index.js\",\n \"types\": \"./dist/server/index.d.ts\",\n \"require\": \"./dist/server/index.cjs\"\n },\n \"./react\": {\n \"import\": \"./dist/react/index.js\",\n \"types\": \"./dist/react/index.d.ts\",\n \"require\": \"./dist/react/index.cjs\"\n },\n \"./contexts\": {\n \"import\": \"./dist/contexts/index.js\",\n \"types\": \"./dist/contexts/index.d.ts\",\n \"require\": \"./dist/contexts/index.cjs\"\n },\n \"./utils\": {\n \"import\": \"./dist/utils/index.js\",\n \"types\": \"./dist/utils/index.d.ts\",\n \"require\": \"./dist/utils/index.cjs\"\n },\n \"./types\": {\n \"import\": \"./dist/types/index.js\",\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/types/index.cjs\"\n },\n \"./index.css\": {\n \"import\": \"./dist/index.css\",\n \"require\": \"./dist/index.css\"\n }\n },\n \"files\": [\n \"dist\",\n \"package.json\"\n ],\n \"keywords\": [\n \"prepr\",\n \"cms\",\n \"nextjs\",\n \"preview\",\n \"visual-editing\",\n \"headless-cms\",\n \"react\",\n \"typescript\",\n \"debug\",\n \"stega\"\n ],\n \"author\": \"Preprio\",\n \"license\": \"MIT\",\n \"packageManager\": \"pnpm@10.5.2\",\n \"devDependencies\": {\n \"@eslint/js\": \"^9.25.1\",\n \"@types/node\": \"^20.11.5\",\n \"@types/react\": \"19.1.0\",\n \"@types/react-dom\": \"19.1.2\",\n \"@typescript-eslint/eslint-plugin\": \"^8.31.1\",\n \"@typescript-eslint/parser\": \"^8.31.1\",\n \"autoprefixer\": \"^10.4.21\",\n \"cssnano\": \"^7.0.7\",\n \"eslint\": \"^9.25.1\",\n \"eslint-config-prettier\": \"^10.1.2\",\n \"eslint-plugin-prettier\": \"^5.2.6\",\n \"eslint-plugin-react\": \"^7.37.2\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"next\": \"15.3.1\",\n \"postcss\": \"^8\",\n \"prettier\": \"^3.5.3\",\n \"prettier-plugin-tailwindcss\": \"^0.5.12\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"tailwindcss\": \"^3.4.17\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.8.3\"\n },\n \"peerDependencies\": {\n \"next\": \"^15.0.0 || ^14.0.0 || ^13.0.0\",\n \"react\": \"^19.0.0 || ^18.0.0 || ^17.0.0 \",\n \"react-dom\": \"^19.0.0 || ^18.0.0 || ^17.0.0\"\n },\n \"dependencies\": {\n \"@headlessui/react\": \"^2.2.0\",\n \"@vercel/functions\": \"^2.0.0\",\n \"@vercel/stega\": \"^0.1.2\",\n \"clsx\": \"^2.1.1\",\n \"postcss-cli\": \"^11.0.1\",\n \"tailwind-merge\": \"^3.0.1\"\n }\n}\n","import { headers } from 'next/headers';\nimport { PreprPreviewBarProps, PreprSegment } from '../types';\nimport pjson from '../../package.json';\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport async function getPreprUUID() {\n const headersList = await headers();\n return headersList.get('prepr-customer-id');\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport async function getActiveSegment() {\n const headersList = await headers();\n return headersList.get('Prepr-Segments');\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport async function getActiveVariant() {\n const headersList = await headers();\n return headersList.get('Prepr-ABtesting');\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport async function getPreprHeaders() {\n const newHeaders: {\n [key: string]: string;\n } = {};\n\n const headersList = await headers();\n\n headersList.forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value;\n }\n });\n\n return newHeaders;\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Array of PreprSegmentResponse\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegment[]> {\n if (!token) {\n console.error(\n 'No token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n if (!token.startsWith('https://')) {\n console.error(\n 'Invalid token provided, make sure you are using your Prepr GraphQL URL'\n );\n return [];\n }\n\n try {\n const response = await fetch(token, {\n headers: {\n 'User-Agent': `Prepr-Preview-Bar/${getPackageVersion()}`,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({\n query: `{\n _Segments {\n _id\n name\n }\n }`,\n }),\n });\n try {\n const json = await response.json();\n\n if (!json || !json.data || !json.data._Segments) {\n return [];\n }\n\n return json.data?._Segments as PreprSegment[];\n } catch {\n console.error('Error parsing JSON, please contact Prepr support');\n return [];\n }\n } catch (error) {\n console.error('Error fetching segments:', error);\n return [];\n }\n}\n\n/**\n * Fetches all the necessary previewbar props\n * @param token Prepr access token with scope 'segments'\n * @returns Object with activeSegment, activeVariant and data\n */\nexport async function getPreviewBarProps(\n token: string\n): Promise<PreprPreviewBarProps> {\n let data: PreprSegment[] = [];\n let activeSegment: string | null = null;\n let activeVariant: string | null = null;\n\n // Prevent unnecessary function calling in production\n if (process.env.PREPR_ENV === 'preview') {\n data = await getPreprEnvironmentSegments(token);\n activeSegment = await getActiveSegment();\n activeVariant = await getActiveVariant();\n }\n\n return {\n activeSegment,\n activeVariant,\n data,\n };\n}\n\nfunction getPackageVersion() {\n return pjson.version;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@preprio/prepr-nextjs",
3
- "version": "2.0.0-alpha.5",
3
+ "version": "2.0.0-alpha.6",
4
4
  "description": "Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities",
5
5
  "main": "dist/react/index.cjs",
6
6
  "types": "./dist/react/index.d.ts",