@preprio/prepr-nextjs 1.0.0-beta.0 → 1.0.0-beta.2

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.
@@ -85,9 +85,6 @@
85
85
  .prp-gap-4 {
86
86
  gap: 1rem;
87
87
  }
88
- .prp-gap-8 {
89
- gap: 2rem;
90
- }
91
88
  .prp-gap-6 {
92
89
  gap: 1.5rem;
93
90
  }
@@ -108,9 +105,6 @@
108
105
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
109
106
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
110
107
  }
111
- .prp-self-center {
112
- align-self: center;
113
- }
114
108
  .prp-rounded-lg {
115
109
  border-radius: 0.5rem;
116
110
  }
@@ -177,15 +171,9 @@
177
171
  .prp-pb-0\.5 {
178
172
  padding-bottom: 0.125rem;
179
173
  }
180
- .prp-pb-1 {
181
- padding-bottom: 0.25rem;
182
- }
183
174
  .prp-pb-2 {
184
175
  padding-bottom: 0.5rem;
185
176
  }
186
- .prp-pb-\[2px\] {
187
- padding-bottom: 2px;
188
- }
189
177
  .prp-text-center {
190
178
  text-align: center;
191
179
  }
@@ -211,9 +199,6 @@
211
199
  .prp-font-bold {
212
200
  font-weight: 700;
213
201
  }
214
- .prp-leading-\[1\.375rem\] {
215
- line-height: 1.375rem;
216
- }
217
202
  .prp-leading-tight {
218
203
  line-height: 1.25;
219
204
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.css"],"sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');\n.prp-sticky{\n position: sticky;\n}\n.prp-top-0{\n top: 0px;\n}\n.prp-z-\\[1000\\]{\n z-index: 1000;\n}\n.prp-z-\\[100\\]{\n z-index: 100;\n}\n.prp-z-\\[9999\\]{\n z-index: 9999;\n}\n.prp-mr-1{\n margin-right: 0.25rem;\n}\n.prp-mr-10{\n margin-right: 2.5rem;\n}\n.prp-block{\n display: block;\n}\n.prp-flex{\n display: flex;\n}\n.prp-hidden{\n display: none;\n}\n.prp-h-10{\n height: 2.5rem;\n}\n.prp-h-8{\n height: 2rem;\n}\n.prp-h-full{\n height: 100%;\n}\n.prp-w-3{\n width: 0.75rem;\n}\n.prp-w-\\[13rem\\]{\n width: 13rem;\n}\n.prp-w-\\[var\\(--button-width\\)\\]{\n width: var(--button-width);\n}\n.prp-w-full{\n width: 100%;\n}\n.prp-max-w-\\[15rem\\]{\n max-width: 15rem;\n}\n.prp-max-w-\\[312px\\]{\n max-width: 312px;\n}\n.prp-flex-initial{\n flex: 0 1 auto;\n}\n.prp-cursor-pointer{\n cursor: pointer;\n}\n.prp-flex-wrap{\n flex-wrap: wrap;\n}\n.prp-items-center{\n align-items: center;\n}\n.prp-justify-center{\n justify-content: center;\n}\n.prp-justify-between{\n justify-content: space-between;\n}\n.prp-gap-1{\n gap: 0.25rem;\n}\n.prp-gap-2{\n gap: 0.5rem;\n}\n.prp-gap-4{\n gap: 1rem;\n}\n.prp-gap-8{\n gap: 2rem;\n}\n.prp-gap-6{\n gap: 1.5rem;\n}\n.prp-gap-x-6{\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n.prp-gap-y-4{\n row-gap: 1rem;\n}\n.prp-space-y-2 > :not([hidden]) ~ :not([hidden]){\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.prp-space-y-3 > :not([hidden]) ~ :not([hidden]){\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.prp-self-center{\n align-self: center;\n}\n.prp-rounded-lg{\n border-radius: 0.5rem;\n}\n.prp-rounded-md{\n border-radius: 0.375rem;\n}\n.prp-rounded-b-md{\n border-bottom-right-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.prp-border{\n border-width: 1px;\n}\n.prp-border-gray-300{\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.prp-bg-grey-400{\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity));\n}\n.prp-bg-indigo-default{\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.prp-bg-orange-400{\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n.prp-bg-white{\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.prp-p-1{\n padding: 0.25rem;\n}\n.prp-p-4{\n padding: 1rem;\n}\n.prp-px-3{\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.prp-px-4{\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.prp-px-5{\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.prp-py-2{\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.prp-py-3{\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.prp-py-4{\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.prp-pb-0\\.5{\n padding-bottom: 0.125rem;\n}\n.prp-pb-1{\n padding-bottom: 0.25rem;\n}\n.prp-pb-2{\n padding-bottom: 0.5rem;\n}\n.prp-pb-\\[2px\\]{\n padding-bottom: 2px;\n}\n.prp-text-center{\n text-align: center;\n}\n.prp-text-base{\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.prp-text-lg{\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.prp-text-sm{\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.prp-text-xs{\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.prp-font-black{\n font-weight: 900;\n}\n.prp-font-bold{\n font-weight: 700;\n}\n.prp-leading-\\[1\\.375rem\\]{\n line-height: 1.375rem;\n}\n.prp-leading-tight{\n line-height: 1.25;\n}\n.prp-text-gray-500{\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.prp-text-gray-900{\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.prp-text-indigo-300{\n --tw-text-opacity: 1;\n color: rgb(165 180 252 / var(--tw-text-opacity));\n}\n.prp-text-indigo-700{\n --tw-text-opacity: 1;\n color: rgb(67 56 202 / var(--tw-text-opacity));\n}\n.prp-text-white{\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.prp-ring-0{\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.prp-regular-text{\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n line-height: 1.5;\n}\n\n.prp-base {\n font-family: Inter, sans-serif;\n}\n\n.prp-dropshadow {\n box-shadow: 0px 0px 12px 0px #C3C3C3;\n}\n\n.prp-dropshadow-popover {\n box-shadow: 0px 3px 16px 0px rgba(84, 84, 84, 0.45);\n}\n\n.hover\\:prp-cursor-pointer:hover{\n cursor: pointer;\n}\n\n.hover\\:prp-bg-gray-100:hover{\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n\n.hover\\:prp-text-indigo-400:hover{\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-opacity));\n}\n\n.focus\\:prp-ring-0:focus{\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.data-\\[open\\]\\:prp-rounded-b-none[data-open]{\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n.data-\\[open\\]\\:prp-border-b-white[data-open]{\n --tw-border-opacity: 1;\n border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity));\n}\n\n.data-\\[checked\\]\\:prp-bg-indigo-600[data-checked]{\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n\n.data-\\[checked\\]\\:prp-text-white[data-checked]{\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n@media (min-width: 768px){\n .md\\:prp-inline{\n display: inline;\n }\n .md\\:prp-w-\\[15rem\\]{\n width: 15rem;\n }\n .md\\:prp-w-auto{\n width: auto;\n }\n .md\\:prp-px-19\\.5{\n padding-left: 4.875rem;\n padding-right: 4.875rem;\n }\n}\n\n@media (min-width: 1024px){\n .lg\\:prp-block{\n display: block;\n }\n .lg\\:prp-gap-6{\n gap: 1.5rem;\n }\n}\n\n@media (min-width: 1440px){\n .\\32xl\\:prp-flex{\n display: flex;\n }\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/main.css"],"sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');\n.prp-sticky{\n position: sticky;\n}\n.prp-top-0{\n top: 0px;\n}\n.prp-z-\\[1000\\]{\n z-index: 1000;\n}\n.prp-z-\\[100\\]{\n z-index: 100;\n}\n.prp-z-\\[9999\\]{\n z-index: 9999;\n}\n.prp-mr-1{\n margin-right: 0.25rem;\n}\n.prp-mr-10{\n margin-right: 2.5rem;\n}\n.prp-block{\n display: block;\n}\n.prp-flex{\n display: flex;\n}\n.prp-hidden{\n display: none;\n}\n.prp-h-10{\n height: 2.5rem;\n}\n.prp-h-8{\n height: 2rem;\n}\n.prp-h-full{\n height: 100%;\n}\n.prp-w-3{\n width: 0.75rem;\n}\n.prp-w-\\[13rem\\]{\n width: 13rem;\n}\n.prp-w-\\[var\\(--button-width\\)\\]{\n width: var(--button-width);\n}\n.prp-w-full{\n width: 100%;\n}\n.prp-max-w-\\[15rem\\]{\n max-width: 15rem;\n}\n.prp-max-w-\\[312px\\]{\n max-width: 312px;\n}\n.prp-flex-initial{\n flex: 0 1 auto;\n}\n.prp-cursor-pointer{\n cursor: pointer;\n}\n.prp-flex-wrap{\n flex-wrap: wrap;\n}\n.prp-items-center{\n align-items: center;\n}\n.prp-justify-center{\n justify-content: center;\n}\n.prp-justify-between{\n justify-content: space-between;\n}\n.prp-gap-1{\n gap: 0.25rem;\n}\n.prp-gap-2{\n gap: 0.5rem;\n}\n.prp-gap-4{\n gap: 1rem;\n}\n.prp-gap-6{\n gap: 1.5rem;\n}\n.prp-gap-x-6{\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n.prp-gap-y-4{\n row-gap: 1rem;\n}\n.prp-space-y-2 > :not([hidden]) ~ :not([hidden]){\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.prp-space-y-3 > :not([hidden]) ~ :not([hidden]){\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.prp-rounded-lg{\n border-radius: 0.5rem;\n}\n.prp-rounded-md{\n border-radius: 0.375rem;\n}\n.prp-rounded-b-md{\n border-bottom-right-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.prp-border{\n border-width: 1px;\n}\n.prp-border-gray-300{\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.prp-bg-grey-400{\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity));\n}\n.prp-bg-indigo-default{\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n.prp-bg-orange-400{\n --tw-bg-opacity: 1;\n background-color: rgb(251 146 60 / var(--tw-bg-opacity));\n}\n.prp-bg-white{\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.prp-p-1{\n padding: 0.25rem;\n}\n.prp-p-4{\n padding: 1rem;\n}\n.prp-px-3{\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.prp-px-4{\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.prp-px-5{\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.prp-py-2{\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.prp-py-3{\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.prp-py-4{\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.prp-pb-0\\.5{\n padding-bottom: 0.125rem;\n}\n.prp-pb-2{\n padding-bottom: 0.5rem;\n}\n.prp-text-center{\n text-align: center;\n}\n.prp-text-base{\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.prp-text-lg{\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.prp-text-sm{\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.prp-text-xs{\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.prp-font-black{\n font-weight: 900;\n}\n.prp-font-bold{\n font-weight: 700;\n}\n.prp-leading-tight{\n line-height: 1.25;\n}\n.prp-text-gray-500{\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.prp-text-gray-900{\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.prp-text-indigo-300{\n --tw-text-opacity: 1;\n color: rgb(165 180 252 / var(--tw-text-opacity));\n}\n.prp-text-indigo-700{\n --tw-text-opacity: 1;\n color: rgb(67 56 202 / var(--tw-text-opacity));\n}\n.prp-text-white{\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.prp-ring-0{\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.prp-regular-text{\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n line-height: 1.5;\n}\n\n.prp-base {\n font-family: Inter, sans-serif;\n}\n\n.prp-dropshadow {\n box-shadow: 0px 0px 12px 0px #C3C3C3;\n}\n\n.prp-dropshadow-popover {\n box-shadow: 0px 3px 16px 0px rgba(84, 84, 84, 0.45);\n}\n\n.hover\\:prp-cursor-pointer:hover{\n cursor: pointer;\n}\n\n.hover\\:prp-bg-gray-100:hover{\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n\n.hover\\:prp-text-indigo-400:hover{\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-opacity));\n}\n\n.focus\\:prp-ring-0:focus{\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.data-\\[open\\]\\:prp-rounded-b-none[data-open]{\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n.data-\\[open\\]\\:prp-border-b-white[data-open]{\n --tw-border-opacity: 1;\n border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity));\n}\n\n.data-\\[checked\\]\\:prp-bg-indigo-600[data-checked]{\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity));\n}\n\n.data-\\[checked\\]\\:prp-text-white[data-checked]{\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n@media (min-width: 768px){\n .md\\:prp-inline{\n display: inline;\n }\n .md\\:prp-w-\\[15rem\\]{\n width: 15rem;\n }\n .md\\:prp-w-auto{\n width: auto;\n }\n .md\\:prp-px-19\\.5{\n padding-left: 4.875rem;\n padding-right: 4.875rem;\n }\n}\n\n@media (min-width: 1024px){\n .lg\\:prp-block{\n display: block;\n }\n .lg\\:prp-gap-6{\n gap: 1.5rem;\n }\n}\n\n@media (min-width: 1440px){\n .\\32xl\\:prp-flex{\n display: flex;\n }\n}"],"mappings":"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","names":[]}
package/dist/index.d.mts CHANGED
@@ -13,12 +13,6 @@ declare function getActiveSegment(): string;
13
13
  * Returns the active variant from the headers
14
14
  */
15
15
  declare function getActiveVariant(): string;
16
- /**
17
- * Helper function to only retrieve Prepr preview headers
18
- */
19
- declare function getPreviewHeaders(): {
20
- [key: string]: string;
21
- };
22
16
  /**
23
17
  * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)
24
18
  */
@@ -59,4 +53,4 @@ declare function getPreviewBarProps(token: string): Promise<{
59
53
  data: PreprSegmentsResponse;
60
54
  }>;
61
55
 
62
- export { PreprMiddleware, type PreprSegment, type PreprSegmentsResponse, getActiveSegment, getActiveVariant, getPreprEnvironmentSegments, getPreprHeaders, getPreprUUID, getPreviewBarProps, getPreviewHeaders };
56
+ export { PreprMiddleware, type PreprSegment, type PreprSegmentsResponse, getActiveSegment, getActiveVariant, getPreprEnvironmentSegments, getPreprHeaders, getPreprUUID, getPreviewBarProps };
package/dist/index.d.ts CHANGED
@@ -13,12 +13,6 @@ declare function getActiveSegment(): string;
13
13
  * Returns the active variant from the headers
14
14
  */
15
15
  declare function getActiveVariant(): string;
16
- /**
17
- * Helper function to only retrieve Prepr preview headers
18
- */
19
- declare function getPreviewHeaders(): {
20
- [key: string]: string;
21
- };
22
16
  /**
23
17
  * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)
24
18
  */
@@ -59,4 +53,4 @@ declare function getPreviewBarProps(token: string): Promise<{
59
53
  data: PreprSegmentsResponse;
60
54
  }>;
61
55
 
62
- export { PreprMiddleware, type PreprSegment, type PreprSegmentsResponse, getActiveSegment, getActiveVariant, getPreprEnvironmentSegments, getPreprHeaders, getPreprUUID, getPreviewBarProps, getPreviewHeaders };
56
+ export { PreprMiddleware, type PreprSegment, type PreprSegmentsResponse, getActiveSegment, getActiveVariant, getPreprEnvironmentSegments, getPreprHeaders, getPreprUUID, getPreviewBarProps };
package/dist/index.js CHANGED
@@ -45,8 +45,7 @@ __export(src_exports, {
45
45
  getPreprEnvironmentSegments: () => getPreprEnvironmentSegments,
46
46
  getPreprHeaders: () => getPreprHeaders,
47
47
  getPreprUUID: () => getPreprUUID,
48
- getPreviewBarProps: () => getPreviewBarProps,
49
- getPreviewHeaders: () => getPreviewHeaders
48
+ getPreviewBarProps: () => getPreviewBarProps
50
49
  });
51
50
  module.exports = __toCommonJS(src_exports);
52
51
  var import_server = require("next/server");
@@ -64,6 +63,7 @@ function PreprMiddleware(request, response) {
64
63
  }
65
64
  newResponse.headers.set("Prepr-Customer-Id", cookie);
66
65
  if (process.env.PREPR_ENV === "preview") {
66
+ newResponse.headers.set("Prepr-Preview-Bar", "true");
67
67
  if (request.nextUrl.searchParams.has("segments")) {
68
68
  const segments = request.nextUrl.searchParams.get("segments");
69
69
  if (segments) {
@@ -108,33 +108,21 @@ function getActiveSegment() {
108
108
  function getActiveVariant() {
109
109
  return (0, import_headers.headers)().get("Prepr-ABtesting");
110
110
  }
111
- function getPreviewHeaders() {
111
+ function getPreprHeaders() {
112
112
  let newHeaders = {};
113
113
  (0, import_headers.headers)().forEach((value, key) => {
114
- if (key.startsWith("prepr") && key !== "prepr-customer-id") {
114
+ if (key.startsWith("prepr")) {
115
115
  newHeaders[key] = value;
116
116
  }
117
117
  });
118
118
  return newHeaders;
119
119
  }
120
- function getPreprHeaders() {
121
- let newHeaders = {};
122
- if (process.env.PREPR_ENV !== "preview") {
123
- newHeaders["prepr-customer-id"] = (0, import_headers.headers)().get("prepr-customer-id") || "";
124
- } else {
125
- (0, import_headers.headers)().forEach((value, key) => {
126
- if (key.startsWith("prepr") && key !== "prepr-customer-id") {
127
- newHeaders[key] = value;
128
- }
129
- });
130
- }
131
- return newHeaders;
132
- }
133
120
  function getPreprEnvironmentSegments(token) {
134
121
  return __async(this, null, function* () {
135
122
  const response = yield fetch("https://api.eu1.prepr.io/segments", {
136
123
  headers: {
137
- Authorization: `Bearer ${token}`
124
+ Authorization: `Bearer ${token}`,
125
+ "User-Agent": "Prepr-Preview-Bar/1.0"
138
126
  }
139
127
  });
140
128
  return response.json();
@@ -160,7 +148,6 @@ function getPreviewBarProps(token) {
160
148
  getPreprEnvironmentSegments,
161
149
  getPreprHeaders,
162
150
  getPreprUUID,
163
- getPreviewBarProps,
164
- getPreviewHeaders
151
+ getPreviewBarProps
165
152
  });
166
153
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {NextRequest, NextResponse} from \"next/server\";\nimport {headers} from \"next/headers\";\n\nexport function PreprMiddleware(request: NextRequest, response?: NextResponse) {\n const newResponse = response || NextResponse.next()\n\n let cookie = request.cookies.get('__prepr_uid')?.value\n\n if (!cookie) {\n cookie = crypto.randomUUID()\n newResponse.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n })\n }\n\n newResponse.headers.set('Prepr-Customer-Id', cookie)\n\n if (process.env.PREPR_ENV === 'preview') {\n if (request.nextUrl.searchParams.has('segments')) {\n const segments = request.nextUrl.searchParams.get('segments')\n\n if (segments) {\n newResponse.headers.set('Prepr-Segments', segments)\n newResponse.cookies.set('Prepr-Segments', segments, {\n maxAge: 60, // Set for one year\n })\n }\n }\n\n if (request.nextUrl.searchParams.has('a-b-testing')) {\n const ab_testing = request.nextUrl.searchParams.get('a-b-testing')\n let value = ab_testing?.toUpperCase()\n if (value === 'B') {\n value = 'B'\n } else {\n value = 'A'\n }\n newResponse.headers.set('Prepr-ABtesting', value)\n newResponse.cookies.set('Prepr-ABtesting', value, {\n maxAge: 60, // Set for one year\n })\n }\n\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value\n if (segmentCookie) {\n newResponse.headers.set('Prepr-Segments', segmentCookie)\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value\n if (abCookie) {\n newResponse.headers.set('Prepr-ABtesting', abCookie)\n }\n }\n\n return newResponse\n}\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport function getPreprUUID() {\n return headers().get('prepr-customer-id')\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport function getActiveSegment() {\n return headers().get('Prepr-Segments')\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport function getActiveVariant() {\n return headers().get('Prepr-ABtesting')\n}\n\n/**\n * Helper function to only retrieve Prepr preview headers\n */\nexport function getPreviewHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n headers().forEach((value, key) => {\n if (key.startsWith('prepr') && key !== 'prepr-customer-id') {\n newHeaders[key] = value\n }\n })\n\n return newHeaders\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport function getPreprHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n\n if (process.env.PREPR_ENV !== 'preview') {\n newHeaders['prepr-customer-id'] =\n headers().get('prepr-customer-id') || ''\n } else {\n headers().forEach((value, key) => {\n if (key.startsWith('prepr') && key !== 'prepr-customer-id') {\n newHeaders[key] = value\n }\n })\n }\n\n return newHeaders\n}\n\nexport type PreprSegment = {\n id: string\n created_on: string\n changed_on: string\n synced_on: string\n label: string\n reference_id: string\n body: string\n query: string\n count: number\n}\n\nexport type PreprSegmentsResponse = {\n total: number\n skip: number\n limit: number\n items: PreprSegment[]\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Object with total, skip, limit and items\n */\nexport async function getPreprEnvironmentSegments(token: string): Promise<PreprSegmentsResponse> {\n const response = await fetch('https://api.eu1.prepr.io/segments', {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n\n return response.json()\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(token: string): Promise<{\n activeSegment: string | null,\n activeVariant: string | null,\n data: PreprSegmentsResponse\n}> {\n const data = await getPreprEnvironmentSegments(token)\n const activeSegment = getActiveSegment()\n const activeVariant = getActiveVariant()\n\n return {\n activeSegment,\n activeVariant,\n data\n }\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { NextRequest, NextResponse } from 'next/server'\nimport { headers } from 'next/headers'\n\nexport function PreprMiddleware(request: NextRequest, response?: NextResponse) {\n const newResponse = response || NextResponse.next()\n\n let cookie = request.cookies.get('__prepr_uid')?.value\n\n if (!cookie) {\n cookie = crypto.randomUUID()\n newResponse.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n })\n }\n\n newResponse.headers.set('Prepr-Customer-Id', cookie)\n\n if (process.env.PREPR_ENV === 'preview') {\n newResponse.headers.set('Prepr-Preview-Bar', 'true')\n\n if (request.nextUrl.searchParams.has('segments')) {\n const segments = request.nextUrl.searchParams.get('segments')\n\n if (segments) {\n newResponse.headers.set('Prepr-Segments', segments)\n newResponse.cookies.set('Prepr-Segments', segments, {\n maxAge: 60, // Set for one year\n })\n }\n }\n\n if (request.nextUrl.searchParams.has('a-b-testing')) {\n const ab_testing = request.nextUrl.searchParams.get('a-b-testing')\n let value = ab_testing?.toUpperCase()\n if (value === 'B') {\n value = 'B'\n } else {\n value = 'A'\n }\n newResponse.headers.set('Prepr-ABtesting', value)\n newResponse.cookies.set('Prepr-ABtesting', value, {\n maxAge: 60, // Set for one year\n })\n }\n\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value\n if (segmentCookie) {\n newResponse.headers.set('Prepr-Segments', segmentCookie)\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value\n if (abCookie) {\n newResponse.headers.set('Prepr-ABtesting', abCookie)\n }\n }\n\n return newResponse\n}\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport function getPreprUUID() {\n return headers().get('prepr-customer-id')\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport function getActiveSegment() {\n return headers().get('Prepr-Segments')\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport function getActiveVariant() {\n return headers().get('Prepr-ABtesting')\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport function getPreprHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n\n headers().forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value\n }\n })\n\n return newHeaders\n}\n\nexport type PreprSegment = {\n id: string\n created_on: string\n changed_on: string\n synced_on: string\n label: string\n reference_id: string\n body: string\n query: string\n count: number\n}\n\nexport type PreprSegmentsResponse = {\n total: number\n skip: number\n limit: number\n items: PreprSegment[]\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Object with total, skip, limit and items\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegmentsResponse> {\n const response = await fetch('https://api.eu1.prepr.io/segments', {\n headers: {\n Authorization: `Bearer ${token}`,\n 'User-Agent': 'Prepr-Preview-Bar/1.0',\n },\n })\n\n return response.json()\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(token: string): Promise<{\n activeSegment: string | null\n activeVariant: string | null\n data: PreprSegmentsResponse\n}> {\n const data = await getPreprEnvironmentSegments(token)\n const activeSegment = getActiveSegment()\n const activeVariant = getActiveVariant()\n\n return {\n activeSegment,\n activeVariant,\n data,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0C;AAC1C,qBAAwB;AAEjB,SAAS,gBAAgB,SAAsB,UAAyB;AAH/E;AAII,QAAM,cAAc,YAAY,2BAAa,KAAK;AAElD,MAAI,UAAS,aAAQ,QAAQ,IAAI,aAAa,MAAjC,mBAAoC;AAEjD,MAAI,CAAC,QAAQ;AACT,aAAS,OAAO,WAAW;AAC3B,gBAAY,QAAQ,IAAI,eAAe,QAAQ;AAAA,MAC3C,QAAQ,IAAI,MAAM,KAAK;AAAA;AAAA,IAC3B,CAAC;AAAA,EACL;AAEA,cAAY,QAAQ,IAAI,qBAAqB,MAAM;AAEnD,MAAI,QAAQ,IAAI,cAAc,WAAW;AACrC,gBAAY,QAAQ,IAAI,qBAAqB,MAAM;AAEnD,QAAI,QAAQ,QAAQ,aAAa,IAAI,UAAU,GAAG;AAC9C,YAAM,WAAW,QAAQ,QAAQ,aAAa,IAAI,UAAU;AAE5D,UAAI,UAAU;AACV,oBAAY,QAAQ,IAAI,kBAAkB,QAAQ;AAClD,oBAAY,QAAQ,IAAI,kBAAkB,UAAU;AAAA,UAChD,QAAQ;AAAA;AAAA,QACZ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,QAAI,QAAQ,QAAQ,aAAa,IAAI,aAAa,GAAG;AACjD,YAAM,aAAa,QAAQ,QAAQ,aAAa,IAAI,aAAa;AACjE,UAAI,QAAQ,yCAAY;AACxB,UAAI,UAAU,KAAK;AACf,gBAAQ;AAAA,MACZ,OAAO;AACH,gBAAQ;AAAA,MACZ;AACA,kBAAY,QAAQ,IAAI,mBAAmB,KAAK;AAChD,kBAAY,QAAQ,IAAI,mBAAmB,OAAO;AAAA,QAC9C,QAAQ;AAAA;AAAA,MACZ,CAAC;AAAA,IACL;AAEA,UAAM,iBAAgB,aAAQ,QAAQ,IAAI,gBAAgB,MAApC,mBAAuC;AAC7D,QAAI,eAAe;AACf,kBAAY,QAAQ,IAAI,kBAAkB,aAAa;AAAA,IAC3D;AAEA,UAAM,YAAW,aAAQ,QAAQ,IAAI,iBAAiB,MAArC,mBAAwC;AACzD,QAAI,UAAU;AACV,kBAAY,QAAQ,IAAI,mBAAmB,QAAQ;AAAA,IACvD;AAAA,EACJ;AAEA,SAAO;AACX;AAKO,SAAS,eAAe;AAC3B,aAAO,wBAAQ,EAAE,IAAI,mBAAmB;AAC5C;AAKO,SAAS,mBAAmB;AAC/B,aAAO,wBAAQ,EAAE,IAAI,gBAAgB;AACzC;AAKO,SAAS,mBAAmB;AAC/B,aAAO,wBAAQ,EAAE,IAAI,iBAAiB;AAC1C;AAKO,SAAS,kBAAkB;AAC9B,MAAI,aAEA,CAAC;AAEL,8BAAQ,EAAE,QAAQ,CAAC,OAAO,QAAQ;AAC9B,QAAI,IAAI,WAAW,OAAO,GAAG;AACzB,iBAAW,GAAG,IAAI;AAAA,IACtB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AA0BA,SAAsB,4BAClB,OAC8B;AAAA;AAC9B,UAAM,WAAW,MAAM,MAAM,qCAAqC;AAAA,MAC9D,SAAS;AAAA,QACL,eAAe,UAAU,KAAK;AAAA,QAC9B,cAAc;AAAA,MAClB;AAAA,IACJ,CAAC;AAED,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAOA,SAAsB,mBAAmB,OAItC;AAAA;AACC,UAAM,OAAO,MAAM,4BAA4B,KAAK;AACpD,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,gBAAgB,iBAAiB;AAEvC,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA;","names":[]}
package/dist/index.mjs CHANGED
@@ -18,6 +18,7 @@ function PreprMiddleware(request, response) {
18
18
  }
19
19
  newResponse.headers.set("Prepr-Customer-Id", cookie);
20
20
  if (process.env.PREPR_ENV === "preview") {
21
+ newResponse.headers.set("Prepr-Preview-Bar", "true");
21
22
  if (request.nextUrl.searchParams.has("segments")) {
22
23
  const segments = request.nextUrl.searchParams.get("segments");
23
24
  if (segments) {
@@ -62,33 +63,21 @@ function getActiveSegment() {
62
63
  function getActiveVariant() {
63
64
  return headers().get("Prepr-ABtesting");
64
65
  }
65
- function getPreviewHeaders() {
66
+ function getPreprHeaders() {
66
67
  let newHeaders = {};
67
68
  headers().forEach((value, key) => {
68
- if (key.startsWith("prepr") && key !== "prepr-customer-id") {
69
+ if (key.startsWith("prepr")) {
69
70
  newHeaders[key] = value;
70
71
  }
71
72
  });
72
73
  return newHeaders;
73
74
  }
74
- function getPreprHeaders() {
75
- let newHeaders = {};
76
- if (process.env.PREPR_ENV !== "preview") {
77
- newHeaders["prepr-customer-id"] = headers().get("prepr-customer-id") || "";
78
- } else {
79
- headers().forEach((value, key) => {
80
- if (key.startsWith("prepr") && key !== "prepr-customer-id") {
81
- newHeaders[key] = value;
82
- }
83
- });
84
- }
85
- return newHeaders;
86
- }
87
75
  function getPreprEnvironmentSegments(token) {
88
76
  return __async(this, null, function* () {
89
77
  const response = yield fetch("https://api.eu1.prepr.io/segments", {
90
78
  headers: {
91
- Authorization: `Bearer ${token}`
79
+ Authorization: `Bearer ${token}`,
80
+ "User-Agent": "Prepr-Preview-Bar/1.0"
92
81
  }
93
82
  });
94
83
  return response.json();
@@ -113,7 +102,6 @@ export {
113
102
  getPreprEnvironmentSegments,
114
103
  getPreprHeaders,
115
104
  getPreprUUID,
116
- getPreviewBarProps,
117
- getPreviewHeaders
105
+ getPreviewBarProps
118
106
  };
119
107
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {NextRequest, NextResponse} from \"next/server\";\nimport {headers} from \"next/headers\";\n\nexport function PreprMiddleware(request: NextRequest, response?: NextResponse) {\n const newResponse = response || NextResponse.next()\n\n let cookie = request.cookies.get('__prepr_uid')?.value\n\n if (!cookie) {\n cookie = crypto.randomUUID()\n newResponse.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n })\n }\n\n newResponse.headers.set('Prepr-Customer-Id', cookie)\n\n if (process.env.PREPR_ENV === 'preview') {\n if (request.nextUrl.searchParams.has('segments')) {\n const segments = request.nextUrl.searchParams.get('segments')\n\n if (segments) {\n newResponse.headers.set('Prepr-Segments', segments)\n newResponse.cookies.set('Prepr-Segments', segments, {\n maxAge: 60, // Set for one year\n })\n }\n }\n\n if (request.nextUrl.searchParams.has('a-b-testing')) {\n const ab_testing = request.nextUrl.searchParams.get('a-b-testing')\n let value = ab_testing?.toUpperCase()\n if (value === 'B') {\n value = 'B'\n } else {\n value = 'A'\n }\n newResponse.headers.set('Prepr-ABtesting', value)\n newResponse.cookies.set('Prepr-ABtesting', value, {\n maxAge: 60, // Set for one year\n })\n }\n\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value\n if (segmentCookie) {\n newResponse.headers.set('Prepr-Segments', segmentCookie)\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value\n if (abCookie) {\n newResponse.headers.set('Prepr-ABtesting', abCookie)\n }\n }\n\n return newResponse\n}\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport function getPreprUUID() {\n return headers().get('prepr-customer-id')\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport function getActiveSegment() {\n return headers().get('Prepr-Segments')\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport function getActiveVariant() {\n return headers().get('Prepr-ABtesting')\n}\n\n/**\n * Helper function to only retrieve Prepr preview headers\n */\nexport function getPreviewHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n headers().forEach((value, key) => {\n if (key.startsWith('prepr') && key !== 'prepr-customer-id') {\n newHeaders[key] = value\n }\n })\n\n return newHeaders\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport function getPreprHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n\n if (process.env.PREPR_ENV !== 'preview') {\n newHeaders['prepr-customer-id'] =\n headers().get('prepr-customer-id') || ''\n } else {\n headers().forEach((value, key) => {\n if (key.startsWith('prepr') && key !== 'prepr-customer-id') {\n newHeaders[key] = value\n }\n })\n }\n\n return newHeaders\n}\n\nexport type PreprSegment = {\n id: string\n created_on: string\n changed_on: string\n synced_on: string\n label: string\n reference_id: string\n body: string\n query: string\n count: number\n}\n\nexport type PreprSegmentsResponse = {\n total: number\n skip: number\n limit: number\n items: PreprSegment[]\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Object with total, skip, limit and items\n */\nexport async function getPreprEnvironmentSegments(token: string): Promise<PreprSegmentsResponse> {\n const response = await fetch('https://api.eu1.prepr.io/segments', {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n\n return response.json()\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(token: string): Promise<{\n activeSegment: string | null,\n activeVariant: string | null,\n data: PreprSegmentsResponse\n}> {\n const data = await getPreprEnvironmentSegments(token)\n const activeSegment = getActiveSegment()\n const activeVariant = getActiveVariant()\n\n return {\n activeSegment,\n activeVariant,\n data\n }\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { NextRequest, NextResponse } from 'next/server'\nimport { headers } from 'next/headers'\n\nexport function PreprMiddleware(request: NextRequest, response?: NextResponse) {\n const newResponse = response || NextResponse.next()\n\n let cookie = request.cookies.get('__prepr_uid')?.value\n\n if (!cookie) {\n cookie = crypto.randomUUID()\n newResponse.cookies.set('__prepr_uid', cookie, {\n maxAge: 1 * 365 * 24 * 60, // Set for one year\n })\n }\n\n newResponse.headers.set('Prepr-Customer-Id', cookie)\n\n if (process.env.PREPR_ENV === 'preview') {\n newResponse.headers.set('Prepr-Preview-Bar', 'true')\n\n if (request.nextUrl.searchParams.has('segments')) {\n const segments = request.nextUrl.searchParams.get('segments')\n\n if (segments) {\n newResponse.headers.set('Prepr-Segments', segments)\n newResponse.cookies.set('Prepr-Segments', segments, {\n maxAge: 60, // Set for one year\n })\n }\n }\n\n if (request.nextUrl.searchParams.has('a-b-testing')) {\n const ab_testing = request.nextUrl.searchParams.get('a-b-testing')\n let value = ab_testing?.toUpperCase()\n if (value === 'B') {\n value = 'B'\n } else {\n value = 'A'\n }\n newResponse.headers.set('Prepr-ABtesting', value)\n newResponse.cookies.set('Prepr-ABtesting', value, {\n maxAge: 60, // Set for one year\n })\n }\n\n const segmentCookie = request.cookies.get('Prepr-Segments')?.value\n if (segmentCookie) {\n newResponse.headers.set('Prepr-Segments', segmentCookie)\n }\n\n const abCookie = request.cookies.get('Prepr-ABtesting')?.value\n if (abCookie) {\n newResponse.headers.set('Prepr-ABtesting', abCookie)\n }\n }\n\n return newResponse\n}\n\n/**\n * Returns the Prepr Customer ID from the headers\n */\nexport function getPreprUUID() {\n return headers().get('prepr-customer-id')\n}\n\n/**\n * Retuns the active segment from the headers\n */\nexport function getActiveSegment() {\n return headers().get('Prepr-Segments')\n}\n\n/**\n * Returns the active variant from the headers\n */\nexport function getActiveVariant() {\n return headers().get('Prepr-ABtesting')\n}\n\n/**\n * Helper function to retrieve Prepr headers (will filter out customer ID if in preview mode)\n */\nexport function getPreprHeaders() {\n let newHeaders: {\n [key: string]: string\n } = {}\n\n headers().forEach((value, key) => {\n if (key.startsWith('prepr')) {\n newHeaders[key] = value\n }\n })\n\n return newHeaders\n}\n\nexport type PreprSegment = {\n id: string\n created_on: string\n changed_on: string\n synced_on: string\n label: string\n reference_id: string\n body: string\n query: string\n count: number\n}\n\nexport type PreprSegmentsResponse = {\n total: number\n skip: number\n limit: number\n items: PreprSegment[]\n}\n\n/**\n * Fetches the segments from the Prepr API\n * @param token Prepr access token with scope 'segments'\n * @returns Object with total, skip, limit and items\n */\nexport async function getPreprEnvironmentSegments(\n token: string\n): Promise<PreprSegmentsResponse> {\n const response = await fetch('https://api.eu1.prepr.io/segments', {\n headers: {\n Authorization: `Bearer ${token}`,\n 'User-Agent': 'Prepr-Preview-Bar/1.0',\n },\n })\n\n return response.json()\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(token: string): Promise<{\n activeSegment: string | null\n activeVariant: string | null\n data: PreprSegmentsResponse\n}> {\n const data = await getPreprEnvironmentSegments(token)\n const activeSegment = getActiveSegment()\n const activeVariant = getActiveVariant()\n\n return {\n activeSegment,\n activeVariant,\n data,\n }\n}\n"],"mappings":";;;;;AAAA,SAAsB,oBAAoB;AAC1C,SAAS,eAAe;AAEjB,SAAS,gBAAgB,SAAsB,UAAyB;AAH/E;AAII,QAAM,cAAc,YAAY,aAAa,KAAK;AAElD,MAAI,UAAS,aAAQ,QAAQ,IAAI,aAAa,MAAjC,mBAAoC;AAEjD,MAAI,CAAC,QAAQ;AACT,aAAS,OAAO,WAAW;AAC3B,gBAAY,QAAQ,IAAI,eAAe,QAAQ;AAAA,MAC3C,QAAQ,IAAI,MAAM,KAAK;AAAA;AAAA,IAC3B,CAAC;AAAA,EACL;AAEA,cAAY,QAAQ,IAAI,qBAAqB,MAAM;AAEnD,MAAI,QAAQ,IAAI,cAAc,WAAW;AACrC,gBAAY,QAAQ,IAAI,qBAAqB,MAAM;AAEnD,QAAI,QAAQ,QAAQ,aAAa,IAAI,UAAU,GAAG;AAC9C,YAAM,WAAW,QAAQ,QAAQ,aAAa,IAAI,UAAU;AAE5D,UAAI,UAAU;AACV,oBAAY,QAAQ,IAAI,kBAAkB,QAAQ;AAClD,oBAAY,QAAQ,IAAI,kBAAkB,UAAU;AAAA,UAChD,QAAQ;AAAA;AAAA,QACZ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,QAAI,QAAQ,QAAQ,aAAa,IAAI,aAAa,GAAG;AACjD,YAAM,aAAa,QAAQ,QAAQ,aAAa,IAAI,aAAa;AACjE,UAAI,QAAQ,yCAAY;AACxB,UAAI,UAAU,KAAK;AACf,gBAAQ;AAAA,MACZ,OAAO;AACH,gBAAQ;AAAA,MACZ;AACA,kBAAY,QAAQ,IAAI,mBAAmB,KAAK;AAChD,kBAAY,QAAQ,IAAI,mBAAmB,OAAO;AAAA,QAC9C,QAAQ;AAAA;AAAA,MACZ,CAAC;AAAA,IACL;AAEA,UAAM,iBAAgB,aAAQ,QAAQ,IAAI,gBAAgB,MAApC,mBAAuC;AAC7D,QAAI,eAAe;AACf,kBAAY,QAAQ,IAAI,kBAAkB,aAAa;AAAA,IAC3D;AAEA,UAAM,YAAW,aAAQ,QAAQ,IAAI,iBAAiB,MAArC,mBAAwC;AACzD,QAAI,UAAU;AACV,kBAAY,QAAQ,IAAI,mBAAmB,QAAQ;AAAA,IACvD;AAAA,EACJ;AAEA,SAAO;AACX;AAKO,SAAS,eAAe;AAC3B,SAAO,QAAQ,EAAE,IAAI,mBAAmB;AAC5C;AAKO,SAAS,mBAAmB;AAC/B,SAAO,QAAQ,EAAE,IAAI,gBAAgB;AACzC;AAKO,SAAS,mBAAmB;AAC/B,SAAO,QAAQ,EAAE,IAAI,iBAAiB;AAC1C;AAKO,SAAS,kBAAkB;AAC9B,MAAI,aAEA,CAAC;AAEL,UAAQ,EAAE,QAAQ,CAAC,OAAO,QAAQ;AAC9B,QAAI,IAAI,WAAW,OAAO,GAAG;AACzB,iBAAW,GAAG,IAAI;AAAA,IACtB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AA0BA,SAAsB,4BAClB,OAC8B;AAAA;AAC9B,UAAM,WAAW,MAAM,MAAM,qCAAqC;AAAA,MAC9D,SAAS;AAAA,QACL,eAAe,UAAU,KAAK;AAAA,QAC9B,cAAc;AAAA,MAClB;AAAA,IACJ,CAAC;AAED,WAAO,SAAS,KAAK;AAAA,EACzB;AAAA;AAOA,SAAsB,mBAAmB,OAItC;AAAA;AACC,UAAM,OAAO,MAAM,4BAA4B,KAAK;AACpD,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,gBAAgB,iBAAiB;AAEvC,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@preprio/prepr-nextjs",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.0-beta.2",
4
4
  "description": "A next.js package with code snippets to use with Prepr",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",