@preprio/prepr-nextjs 2.1.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -36
- package/dist/chunk-3HGRH7FO.js +207 -0
- package/dist/chunk-3HGRH7FO.js.map +1 -0
- package/dist/chunk-6JKK7JBP.js +2 -0
- package/dist/{chunk-VKR6ZZKI.js.map → chunk-6JKK7JBP.js.map} +1 -1
- package/dist/chunk-J5SXB377.js +207 -0
- package/dist/chunk-J5SXB377.js.map +1 -0
- package/dist/chunk-QL7ACWMP.js +207 -0
- package/dist/chunk-QL7ACWMP.js.map +1 -0
- package/dist/chunk-Y4KREOMP.js +2 -0
- package/dist/{chunk-XF2V3KT7.js.map → chunk-Y4KREOMP.js.map} +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/middleware/index.cjs +1 -1
- package/dist/middleware/index.cjs.map +1 -1
- package/dist/middleware/index.js +1 -1
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +2 -2
- package/dist/react/index.js.map +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +1 -1
- package/package.json +6 -6
- package/dist/chunk-VKR6ZZKI.js +0 -2
- package/dist/chunk-XF2V3KT7.js +0 -2
- package/dist/chunk-Y65HR6LY.js +0 -2
- package/dist/chunk-Y65HR6LY.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/middleware/index.ts"],"names":[],"mappings":"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","file":"chunk-J5SXB377.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.1.1\",\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 \"clean\": \"rm -rf dist\",\n \"check\": \"tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"fix\": \"eslint src --ext .ts,.tsx --fix && prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"changeset\": \"changeset\",\n \"version\": \"changeset version\",\n \"release\": \"pnpm run build && changeset publish\",\n \"prepublishOnly\": \"pnpm run check && pnpm 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 \"./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 \"@changesets/cli\": \"^2.29.5\",\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 \"zustand\": \"^5.0.8\"\n }\n}\n\n","import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\nimport { version } from '../../package.json';\n\nexport interface PreprMiddlewareOptions {\n preview?: boolean;\n}\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param response - NextResponse object to chain with\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n response: NextResponse,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Implementation of createPreprMiddleware with function overloads\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n responseOrOptions?: NextResponse | PreprMiddlewareOptions,\n options?: PreprMiddlewareOptions\n): NextResponse {\n let response: NextResponse;\n let finalOptions: PreprMiddlewareOptions | undefined;\n\n // Handle overloads\n if (responseOrOptions && 'headers' in responseOrOptions) {\n // Second parameter is NextResponse\n response = responseOrOptions;\n finalOptions = options;\n } else {\n // Second parameter is options or undefined\n response = NextResponse.next();\n finalOptions = responseOrOptions as PreprMiddlewareOptions | undefined;\n }\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 Prepr version header\n response.headers.set('Prepr-Package', version);\n\n let ip: string | null = ipAddress(request) || null;\n\n if (request.headers.get('Cf-Connecting-Ip')) {\n ip = request.headers.get('Cf-Connecting-Ip');\n }\n\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 not enabled, return the response\n if (!finalOptions?.preview || process.env.PREPR_ENV !== 'preview') {\n return response;\n }\n\n // Respect preview mode toggle cookie from client\n const previewModeCookie = request.cookies.get('Prepr-Preview-Mode')?.value;\n const previewModeEnabled = previewModeCookie !== 'false';\n\n if (!previewModeEnabled) {\n // When preview mode is disabled, do not set preview headers\n return response;\n }\n\n // If preview mode is enabled, set additional headers\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 return response;\n}\n"]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { ipAddress } from '@vercel/functions';
|
|
2
|
+
import { NextResponse } from 'next/server';
|
|
3
|
+
|
|
4
|
+
// src/middleware/index.ts
|
|
5
|
+
|
|
6
|
+
// package.json
|
|
7
|
+
var version = "2.1.1";
|
|
8
|
+
var package_default = {
|
|
9
|
+
name: "@preprio/prepr-nextjs",
|
|
10
|
+
version,
|
|
11
|
+
description: "Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities",
|
|
12
|
+
main: "dist/react/index.cjs",
|
|
13
|
+
types: "./dist/react/index.d.ts",
|
|
14
|
+
module: "./dist/react/index.js",
|
|
15
|
+
type: "module",
|
|
16
|
+
scripts: {
|
|
17
|
+
build: "tsup",
|
|
18
|
+
dev: "tsup --watch",
|
|
19
|
+
clean: "rm -rf dist",
|
|
20
|
+
check: 'tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check "src/**/*.{ts,tsx,js,jsx,json,md}"',
|
|
21
|
+
fix: 'eslint src --ext .ts,.tsx --fix && prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}"',
|
|
22
|
+
changeset: "changeset",
|
|
23
|
+
version: "changeset version",
|
|
24
|
+
release: "pnpm run build && changeset publish",
|
|
25
|
+
prepublishOnly: "pnpm run check && pnpm run build"
|
|
26
|
+
},
|
|
27
|
+
exports: {
|
|
28
|
+
"./middleware": {
|
|
29
|
+
import: "./dist/middleware/index.js",
|
|
30
|
+
types: "./dist/middleware/index.d.ts",
|
|
31
|
+
require: "./dist/middleware/index.cjs"
|
|
32
|
+
},
|
|
33
|
+
"./server": {
|
|
34
|
+
import: "./dist/server/index.js",
|
|
35
|
+
types: "./dist/server/index.d.ts",
|
|
36
|
+
require: "./dist/server/index.cjs"
|
|
37
|
+
},
|
|
38
|
+
"./react": {
|
|
39
|
+
import: "./dist/react/index.js",
|
|
40
|
+
types: "./dist/react/index.d.ts",
|
|
41
|
+
require: "./dist/react/index.cjs"
|
|
42
|
+
},
|
|
43
|
+
"./utils": {
|
|
44
|
+
import: "./dist/utils/index.js",
|
|
45
|
+
types: "./dist/utils/index.d.ts",
|
|
46
|
+
require: "./dist/utils/index.cjs"
|
|
47
|
+
},
|
|
48
|
+
"./types": {
|
|
49
|
+
import: "./dist/types/index.js",
|
|
50
|
+
types: "./dist/types/index.d.ts",
|
|
51
|
+
require: "./dist/types/index.cjs"
|
|
52
|
+
},
|
|
53
|
+
"./index.css": {
|
|
54
|
+
import: "./dist/index.css",
|
|
55
|
+
require: "./dist/index.css"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
files: [
|
|
59
|
+
"dist",
|
|
60
|
+
"package.json"
|
|
61
|
+
],
|
|
62
|
+
keywords: [
|
|
63
|
+
"prepr",
|
|
64
|
+
"cms",
|
|
65
|
+
"nextjs",
|
|
66
|
+
"preview",
|
|
67
|
+
"visual-editing",
|
|
68
|
+
"headless-cms",
|
|
69
|
+
"react",
|
|
70
|
+
"typescript",
|
|
71
|
+
"debug",
|
|
72
|
+
"stega"
|
|
73
|
+
],
|
|
74
|
+
author: "Preprio",
|
|
75
|
+
license: "MIT",
|
|
76
|
+
packageManager: "pnpm@10.5.2",
|
|
77
|
+
devDependencies: {
|
|
78
|
+
"@changesets/cli": "^2.29.5",
|
|
79
|
+
"@eslint/js": "^9.25.1",
|
|
80
|
+
"@types/node": "^20.11.5",
|
|
81
|
+
"@types/react": "19.1.0",
|
|
82
|
+
"@types/react-dom": "19.1.2",
|
|
83
|
+
"@typescript-eslint/eslint-plugin": "^8.31.1",
|
|
84
|
+
"@typescript-eslint/parser": "^8.31.1",
|
|
85
|
+
autoprefixer: "^10.4.21",
|
|
86
|
+
cssnano: "^7.0.7",
|
|
87
|
+
eslint: "^9.25.1",
|
|
88
|
+
"eslint-config-prettier": "^10.1.2",
|
|
89
|
+
"eslint-plugin-prettier": "^5.2.6",
|
|
90
|
+
"eslint-plugin-react": "^7.37.2",
|
|
91
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
92
|
+
next: "15.3.1",
|
|
93
|
+
postcss: "^8",
|
|
94
|
+
prettier: "^3.5.3",
|
|
95
|
+
"prettier-plugin-tailwindcss": "^0.5.12",
|
|
96
|
+
react: "^19.1.0",
|
|
97
|
+
"react-dom": "^19.1.0",
|
|
98
|
+
tailwindcss: "^3.4.17",
|
|
99
|
+
tsup: "^8.5.0",
|
|
100
|
+
typescript: "^5.8.3"
|
|
101
|
+
},
|
|
102
|
+
peerDependencies: {
|
|
103
|
+
next: "^15.0.0 || ^14.0.0 || ^13.0.0",
|
|
104
|
+
react: "^19.0.0 || ^18.0.0 || ^17.0.0 ",
|
|
105
|
+
"react-dom": "^19.0.0 || ^18.0.0 || ^17.0.0"
|
|
106
|
+
},
|
|
107
|
+
dependencies: {
|
|
108
|
+
"@headlessui/react": "^2.2.0",
|
|
109
|
+
"@vercel/functions": "^2.0.0",
|
|
110
|
+
"@vercel/stega": "^0.1.2",
|
|
111
|
+
clsx: "^2.1.1",
|
|
112
|
+
"postcss-cli": "^11.0.1",
|
|
113
|
+
"tailwind-merge": "^3.0.1",
|
|
114
|
+
zustand: "^5.0.8"
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// src/middleware/index.ts
|
|
119
|
+
function createPreprMiddleware(request, responseOrOptions, options) {
|
|
120
|
+
var _a, _b, _c, _d, _e;
|
|
121
|
+
let response;
|
|
122
|
+
let finalOptions;
|
|
123
|
+
if (responseOrOptions && "headers" in responseOrOptions) {
|
|
124
|
+
response = responseOrOptions;
|
|
125
|
+
finalOptions = options;
|
|
126
|
+
} else {
|
|
127
|
+
response = NextResponse.next();
|
|
128
|
+
finalOptions = responseOrOptions;
|
|
129
|
+
}
|
|
130
|
+
request.nextUrl.searchParams.forEach((value, key) => {
|
|
131
|
+
switch (key) {
|
|
132
|
+
case "utm_source":
|
|
133
|
+
response.headers.set("Prepr-Context-utm_source", value);
|
|
134
|
+
break;
|
|
135
|
+
case "utm_medium":
|
|
136
|
+
response.headers.set("Prepr-Context-utm_medium", value);
|
|
137
|
+
break;
|
|
138
|
+
case "utm_term":
|
|
139
|
+
response.headers.set("Prepr-Context-utm_term", value);
|
|
140
|
+
break;
|
|
141
|
+
case "utm_content":
|
|
142
|
+
response.headers.set("Prepr-Context-utm_content", value);
|
|
143
|
+
break;
|
|
144
|
+
case "utm_campaign":
|
|
145
|
+
response.headers.set("Prepr-Context-utm_campaign", value);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const referrer = request.headers.get("referer");
|
|
150
|
+
if (referrer) {
|
|
151
|
+
response.headers.set("Prepr-Context-initial_referral", referrer);
|
|
152
|
+
}
|
|
153
|
+
response.headers.set("Prepr-Package", version);
|
|
154
|
+
let ip = ipAddress(request) || null;
|
|
155
|
+
if (request.headers.get("Cf-Connecting-Ip")) {
|
|
156
|
+
ip = request.headers.get("Cf-Connecting-Ip");
|
|
157
|
+
}
|
|
158
|
+
if (ip) {
|
|
159
|
+
response.headers.set("Prepr-Visitor-IP", ip);
|
|
160
|
+
}
|
|
161
|
+
const hutkCookie = (_a = request.cookies.get("hubspotutk")) == null ? void 0 : _a.value;
|
|
162
|
+
if (hutkCookie) {
|
|
163
|
+
response.headers.set("Prepr-Hubspot-Id", hutkCookie);
|
|
164
|
+
}
|
|
165
|
+
let cookie = (_b = request.cookies.get("__prepr_uid")) == null ? void 0 : _b.value;
|
|
166
|
+
if (!cookie) {
|
|
167
|
+
cookie = crypto.randomUUID();
|
|
168
|
+
response.cookies.set("__prepr_uid", cookie, {
|
|
169
|
+
maxAge: 1 * 365 * 24 * 60
|
|
170
|
+
// Set for one year
|
|
171
|
+
});
|
|
172
|
+
response.headers.set("Prepr-Customer-Id-Created", "true");
|
|
173
|
+
}
|
|
174
|
+
response.headers.set("Prepr-Customer-Id", cookie);
|
|
175
|
+
if (!(finalOptions == null ? void 0 : finalOptions.preview) || process.env.PREPR_ENV !== "preview") {
|
|
176
|
+
return response;
|
|
177
|
+
}
|
|
178
|
+
const previewModeCookie = (_c = request.cookies.get("Prepr-Preview-Mode")) == null ? void 0 : _c.value;
|
|
179
|
+
const previewModeEnabled = previewModeCookie !== "false";
|
|
180
|
+
if (!previewModeEnabled) {
|
|
181
|
+
return response;
|
|
182
|
+
}
|
|
183
|
+
response.headers.set("Prepr-Preview-Bar", "true");
|
|
184
|
+
const segmentCookie = (_d = request.cookies.get("Prepr-Segments")) == null ? void 0 : _d.value;
|
|
185
|
+
if (segmentCookie) {
|
|
186
|
+
response.headers.set("Prepr-Segments", segmentCookie);
|
|
187
|
+
}
|
|
188
|
+
const abCookie = (_e = request.cookies.get("Prepr-ABtesting")) == null ? void 0 : _e.value;
|
|
189
|
+
if (abCookie) {
|
|
190
|
+
response.headers.set("Prepr-ABtesting", abCookie);
|
|
191
|
+
}
|
|
192
|
+
request.nextUrl.searchParams.forEach((value, key) => {
|
|
193
|
+
if (key === "prepr_preview_ab") {
|
|
194
|
+
response.headers.set("Prepr-ABtesting", value);
|
|
195
|
+
response.cookies.set("Prepr-ABtesting", value);
|
|
196
|
+
}
|
|
197
|
+
if (key === "prepr_preview_segment") {
|
|
198
|
+
response.headers.set("Prepr-Segments", value);
|
|
199
|
+
response.cookies.set("Prepr-Segments", value);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
return response;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export { createPreprMiddleware, package_default };
|
|
206
|
+
//# sourceMappingURL=chunk-QL7ACWMP.js.map
|
|
207
|
+
//# sourceMappingURL=chunk-QL7ACWMP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/middleware/index.ts"],"names":[],"mappings":"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","file":"chunk-QL7ACWMP.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.1.1\",\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 \"clean\": \"rm -rf dist\",\n \"check\": \"tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"fix\": \"eslint src --ext .ts,.tsx --fix && prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"changeset\": \"changeset\",\n \"version\": \"changeset version\",\n \"release\": \"pnpm run build && changeset publish\",\n \"prepublishOnly\": \"pnpm run check && pnpm 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 \"./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 \"@changesets/cli\": \"^2.29.5\",\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 \"zustand\": \"^5.0.8\"\n }\n}\n","import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\nimport { version } from '../../package.json';\n\nexport interface PreprMiddlewareOptions {\n preview?: boolean;\n}\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param response - NextResponse object to chain with\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n response: NextResponse,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Implementation of createPreprMiddleware with function overloads\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n responseOrOptions?: NextResponse | PreprMiddlewareOptions,\n options?: PreprMiddlewareOptions\n): NextResponse {\n let response: NextResponse;\n let finalOptions: PreprMiddlewareOptions | undefined;\n\n // Handle overloads\n if (responseOrOptions && 'headers' in responseOrOptions) {\n // Second parameter is NextResponse\n response = responseOrOptions;\n finalOptions = options;\n } else {\n // Second parameter is options or undefined\n response = NextResponse.next();\n finalOptions = responseOrOptions as PreprMiddlewareOptions | undefined;\n }\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 Prepr version header\n response.headers.set('Prepr-Package', version);\n\n let ip: string | null = ipAddress(request) || null;\n\n if (request.headers.get('Cf-Connecting-Ip')) {\n ip = request.headers.get('Cf-Connecting-Ip');\n }\n\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 not enabled, return the response\n if (!finalOptions?.preview || process.env.PREPR_ENV !== 'preview') {\n return response;\n }\n\n // Respect preview mode toggle cookie from client\n const previewModeCookie = request.cookies.get('Prepr-Preview-Mode')?.value;\n const previewModeEnabled = previewModeCookie !== 'false';\n\n if (!previewModeEnabled) {\n // When preview mode is disabled, do not set preview headers\n return response;\n }\n\n // If preview mode is enabled, set additional headers\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 return response;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {ipAddress}from'@vercel/functions';import {NextResponse}from'next/server';var f="2.1.3";var C={name:"@preprio/prepr-nextjs",version:f,description:"Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities",main:"dist/react/index.cjs",types:"./dist/react/index.d.ts",module:"./dist/react/index.js",type:"module",scripts:{build:"tsup",dev:"tsup --watch",clean:"rm -rf dist",check:'tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check "src/**/*.{ts,tsx,js,jsx,json,md}"',fix:'eslint src --ext .ts,.tsx --fix && prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}"',changeset:"changeset",version:"changeset version",release:"pnpm run build && changeset publish",prepublishOnly:"pnpm run check && pnpm run build"},exports:{"./middleware":{import:"./dist/middleware/index.js",types:"./dist/middleware/index.d.ts",require:"./dist/middleware/index.cjs"},"./server":{import:"./dist/server/index.js",types:"./dist/server/index.d.ts",require:"./dist/server/index.cjs"},"./react":{import:"./dist/react/index.js",types:"./dist/react/index.d.ts",require:"./dist/react/index.cjs"},"./utils":{import:"./dist/utils/index.js",types:"./dist/utils/index.d.ts",require:"./dist/utils/index.cjs"},"./types":{import:"./dist/types/index.js",types:"./dist/types/index.d.ts",require:"./dist/types/index.cjs"},"./index.css":{import:"./dist/index.css",require:"./dist/index.css"}},files:["dist","package.json"],keywords:["prepr","cms","nextjs","preview","visual-editing","headless-cms","react","typescript","debug","stega"],author:"Preprio",license:"MIT",packageManager:"pnpm@10.5.2",devDependencies:{"@changesets/cli":"^2.29.5","@eslint/js":"^9.25.1","@types/node":"^20.11.5","@types/react":"19.2.2","@types/react-dom":"19.2.2","@typescript-eslint/eslint-plugin":"^8.31.1","@typescript-eslint/parser":"^8.31.1",autoprefixer:"^10.4.21",cssnano:"^7.0.7",eslint:"^9.25.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.2.6","eslint-plugin-react":"^7.37.2","eslint-plugin-react-hooks":"^5.0.0",next:"16.0.10",postcss:"^8",prettier:"^3.5.3","prettier-plugin-tailwindcss":"^0.5.12",react:"^19.2.3","react-dom":"^19.2.3",tailwindcss:"^3.4.17",tsup:"^8.5.0",typescript:"^5.8.3"},peerDependencies:{next:"^16.0.3 || ^15.0.5 || ^15.1.9 || ^15.2.6 || ^15.3.6 || ^15.4.8 || ^15.5.7 || ^14.0.0 || ^13.0.0",react:"^19.0.0 || ^18.0.0 || ^17.0.0 ","react-dom":"^19.0.0 || ^18.0.0 || ^17.0.0"},dependencies:{"@headlessui/react":"^2.2.0","@vercel/functions":"^2.0.0","@vercel/stega":"^0.1.2",clsx:"^2.1.1","postcss-cli":"^11.0.1","tailwind-merge":"^3.0.1",zustand:"^5.0.8"}};function j(t,i,w){var u,m,x,g,h;let e,s;i&&"headers"in i?(e=i,s=w):(e=NextResponse.next(),s=i),t.nextUrl.searchParams.forEach((r,d)=>{switch(d){case "utm_source":e.headers.set("Prepr-Context-utm_source",r);break;case "utm_medium":e.headers.set("Prepr-Context-utm_medium",r);break;case "utm_term":e.headers.set("Prepr-Context-utm_term",r);break;case "utm_content":e.headers.set("Prepr-Context-utm_content",r);break;case "utm_campaign":e.headers.set("Prepr-Context-utm_campaign",r);break}});let a=t.headers.get("referer");a&&e.headers.set("Prepr-Context-initial_referral",a),e.headers.set("Prepr-Package",f);let p=ipAddress(t)||null;t.headers.get("Cf-Connecting-Ip")&&(p=t.headers.get("Cf-Connecting-Ip")),p&&e.headers.set("Prepr-Visitor-IP",p);let o=(u=t.cookies.get("hubspotutk"))==null?void 0:u.value;o&&e.headers.set("Prepr-Hubspot-Id",o);let n=(m=t.cookies.get("__prepr_uid"))==null?void 0:m.value;if(n||(n=crypto.randomUUID(),e.cookies.set("__prepr_uid",n,{maxAge:1*365*24*60}),e.headers.set("Prepr-Customer-Id-Created","true")),e.headers.set("Prepr-Customer-Id",n),!(s!=null&&s.preview)||process.env.PREPR_ENV!=="preview"||!(((x=t.cookies.get("Prepr-Preview-Mode"))==null?void 0:x.value)!=="false"))return e;e.headers.set("Prepr-Preview-Bar","true");let c=(g=t.cookies.get("Prepr-Segments"))==null?void 0:g.value;c&&e.headers.set("Prepr-Segments",c);let l=(h=t.cookies.get("Prepr-ABtesting"))==null?void 0:h.value;return l&&e.headers.set("Prepr-ABtesting",l),t.nextUrl.searchParams.forEach((r,d)=>{d==="prepr_preview_ab"&&(e.headers.set("Prepr-ABtesting",r),e.cookies.set("Prepr-ABtesting",r)),d==="prepr_preview_segment"&&(e.headers.set("Prepr-Segments",r),e.cookies.set("Prepr-Segments",r));}),e}export{C as a,j as b};//# sourceMappingURL=chunk-Y4KREOMP.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-Y4KREOMP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/middleware/index.ts"],"names":["version","package_default","createPreprMiddleware","request","responseOrOptions","options","_a","_b","_c","_d","_e","response","finalOptions","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"chunk-XF2V3KT7.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.1.3\",\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 \"clean\": \"rm -rf dist\",\n \"check\": \"tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"fix\": \"eslint src --ext .ts,.tsx --fix && prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"changeset\": \"changeset\",\n \"version\": \"changeset version\",\n \"release\": \"pnpm run build && changeset publish\",\n \"prepublishOnly\": \"pnpm run check && pnpm 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 \"./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 \"@changesets/cli\": \"^2.29.5\",\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\": \"^16.0.3 || ^15.0.5 || ^15.1.9 || ^15.2.6 || ^15.3.6 || ^15.4.8 || ^15.5.7 || ^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 \"zustand\": \"^5.0.8\"\n }\n}\n","import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\nimport { version } from '../../package.json';\n\nexport interface PreprMiddlewareOptions {\n preview?: boolean;\n}\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param response - NextResponse object to chain with\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n response: NextResponse,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Implementation of createPreprMiddleware with function overloads\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n responseOrOptions?: NextResponse | PreprMiddlewareOptions,\n options?: PreprMiddlewareOptions\n): NextResponse {\n let response: NextResponse;\n let finalOptions: PreprMiddlewareOptions | undefined;\n\n // Handle overloads\n if (responseOrOptions && 'headers' in responseOrOptions) {\n // Second parameter is NextResponse\n response = responseOrOptions;\n finalOptions = options;\n } else {\n // Second parameter is options or undefined\n response = NextResponse.next();\n finalOptions = responseOrOptions as PreprMiddlewareOptions | undefined;\n }\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 Prepr version header\n response.headers.set('Prepr-Package', version);\n\n let ip: string | null = ipAddress(request) || null;\n\n if (request.headers.get('Cf-Connecting-Ip')) {\n ip = request.headers.get('Cf-Connecting-Ip');\n }\n\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 not enabled, return the response\n if (!finalOptions?.preview || process.env.PREPR_ENV !== 'preview') {\n return response;\n }\n\n // Respect preview mode toggle cookie from client\n const previewModeCookie = request.cookies.get('Prepr-Preview-Mode')?.value;\n const previewModeEnabled = previewModeCookie !== 'false';\n\n if (!previewModeEnabled) {\n // When preview mode is disabled, do not set preview headers\n return response;\n }\n\n // If preview mode is enabled, set additional headers\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 return response;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/middleware/index.ts"],"names":["version","package_default","createPreprMiddleware","request","responseOrOptions","options","_a","_b","_c","_d","_e","response","finalOptions","NextResponse","value","key","referrer","ip","ipAddress","hutkCookie","cookie","segmentCookie","abCookie"],"mappings":"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","file":"chunk-Y4KREOMP.js","sourcesContent":["{\n \"name\": \"@preprio/prepr-nextjs\",\n \"version\": \"2.1.3\",\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 \"clean\": \"rm -rf dist\",\n \"check\": \"tsc --noEmit && eslint src --ext .ts,.tsx && prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"fix\": \"eslint src --ext .ts,.tsx --fix && prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json,md}\\\"\",\n \"changeset\": \"changeset\",\n \"version\": \"changeset version\",\n \"release\": \"pnpm run build && changeset publish\",\n \"prepublishOnly\": \"pnpm run check && pnpm 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 \"./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 \"@changesets/cli\": \"^2.29.5\",\n \"@eslint/js\": \"^9.25.1\",\n \"@types/node\": \"^20.11.5\",\n \"@types/react\": \"19.2.2\",\n \"@types/react-dom\": \"19.2.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\": \"16.0.10\",\n \"postcss\": \"^8\",\n \"prettier\": \"^3.5.3\",\n \"prettier-plugin-tailwindcss\": \"^0.5.12\",\n \"react\": \"^19.2.3\",\n \"react-dom\": \"^19.2.3\",\n \"tailwindcss\": \"^3.4.17\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.8.3\"\n },\n \"peerDependencies\": {\n \"next\": \"^16.0.3 || ^15.0.5 || ^15.1.9 || ^15.2.6 || ^15.3.6 || ^15.4.8 || ^15.5.7 || ^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 \"zustand\": \"^5.0.8\"\n }\n}\n\n","import { ipAddress } from '@vercel/functions';\nimport { NextRequest, NextResponse } from 'next/server';\nimport { version } from '../../package.json';\n\nexport interface PreprMiddlewareOptions {\n preview?: boolean;\n}\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Middleware to set Prepr headers for personalization.\n *\n * @overload\n * @param request - NextRequest object\n * @param response - NextResponse object to chain with\n * @param options - Options object\n * @returns NextResponse with Prepr headers set\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n response: NextResponse,\n options?: PreprMiddlewareOptions\n): NextResponse;\n\n/**\n * Implementation of createPreprMiddleware with function overloads\n */\nexport default function createPreprMiddleware(\n request: NextRequest,\n responseOrOptions?: NextResponse | PreprMiddlewareOptions,\n options?: PreprMiddlewareOptions\n): NextResponse {\n let response: NextResponse;\n let finalOptions: PreprMiddlewareOptions | undefined;\n\n // Handle overloads\n if (responseOrOptions && 'headers' in responseOrOptions) {\n // Second parameter is NextResponse\n response = responseOrOptions;\n finalOptions = options;\n } else {\n // Second parameter is options or undefined\n response = NextResponse.next();\n finalOptions = responseOrOptions as PreprMiddlewareOptions | undefined;\n }\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 Prepr version header\n response.headers.set('Prepr-Package', version);\n\n let ip: string | null = ipAddress(request) || null;\n\n if (request.headers.get('Cf-Connecting-Ip')) {\n ip = request.headers.get('Cf-Connecting-Ip');\n }\n\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 not enabled, return the response\n if (!finalOptions?.preview || process.env.PREPR_ENV !== 'preview') {\n return response;\n }\n\n // Respect preview mode toggle cookie from client\n const previewModeCookie = request.cookies.get('Prepr-Preview-Mode')?.value;\n const previewModeEnabled = previewModeCookie !== 'false';\n\n if (!previewModeEnabled) {\n // When preview mode is disabled, do not set preview headers\n return response;\n }\n\n // If preview mode is enabled, set additional headers\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 return response;\n}\n"]}
|
package/dist/metafile-cjs.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/react/components/error-boundary.tsx":{"bytes":1342,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/utils/errors.ts":{"bytes":1985,"imports":[],"format":"esm"},"src/utils/dom.ts":{"bytes":4121,"imports":[{"path":"src/utils/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/utils/debug.ts":{"bytes":3135,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils/performance.ts":{"bytes":2443,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1347,"imports":[{"path":"clsx","kind":"import-statement","external":true},{"path":"tailwind-merge","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true},{"path":"src/utils/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/utils/dom.ts","kind":"import-statement","original":"./dom"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"./debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"./performance"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/stores/prepr-store.ts":{"bytes":6190,"imports":[{"path":"zustand","kind":"import-statement","external":true},{"path":"zustand/middleware","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../utils"}],"format":"esm"},"src/react/components/store/prepr-store-initializer.tsx":{"bytes":2417,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"../../../types","kind":"import-statement","external":true}],"format":"esm"},"src/react/hooks/use-scroll-position.tsx":{"bytes":1889,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../utils"},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../utils"}],"format":"esm"},"src/react/components/toolbar/toolbar-provider.tsx":{"bytes":4009,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"../../../types","kind":"import-statement","external":true},{"path":"src/react/components/error-boundary.tsx","kind":"import-statement","original":"../error-boundary"},{"path":"src/react/components/store/prepr-store-initializer.tsx","kind":"import-statement","original":"../store/prepr-store-initializer"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../../utils/debug"},{"path":"src/react/hooks/use-scroll-position.tsx","kind":"import-statement","original":"../../hooks/use-scroll-position"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"}],"format":"esm"},"src/react/hooks/use-stega-overlay.tsx":{"bytes":6482,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/dom.ts","kind":"import-statement","original":"../../utils/dom"},{"path":"src/utils/errors.ts","kind":"import-statement","original":"../../utils/errors"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"@vercel/stega","kind":"import-statement","external":true}],"format":"esm"},"src/react/hooks/use-stega-proximity.tsx":{"bytes":4921,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"../../utils/performance"}],"format":"esm"},"src/react/hooks/use-stega-elements.tsx":{"bytes":7844,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"}],"format":"esm"},"src/react/hooks/use-stega-scan.tsx":{"bytes":4193,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/dom.ts","kind":"import-statement","original":"../../utils/dom"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"../../utils/performance"},{"path":"src/react/hooks/use-stega-overlay.tsx","kind":"import-statement","original":"./use-stega-overlay"},{"path":"src/react/hooks/use-stega-proximity.tsx","kind":"import-statement","original":"./use-stega-proximity"},{"path":"src/react/hooks/use-stega-elements.tsx","kind":"import-statement","original":"./use-stega-elements"}],"format":"esm"},"src/react/hooks/use-modal.ts":{"bytes":1586,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/icons/xmark.tsx":{"bytes":530,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/i18n/locales/en.json":{"bytes":706,"imports":[]},"src/i18n/locales/nl.json":{"bytes":751,"imports":[]},"src/i18n/index.ts":{"bytes":1122,"imports":[{"path":"src/i18n/locales/en.json","kind":"import-statement","original":"./locales/en.json"},{"path":"src/i18n/locales/nl.json","kind":"import-statement","original":"./locales/nl.json"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../stores/prepr-store"}],"format":"esm"},"src/react/hooks/use-i18n.ts":{"bytes":374,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/i18n/index.ts","kind":"import-statement","original":"../../i18n"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../stores/prepr-store"}],"format":"esm"},"src/react/components/ui/status-indicator-pill.tsx":{"bytes":2947,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/icons/xmark.tsx","kind":"import-statement","original":"../icons/xmark"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/close-edit-mode-pill.tsx":{"bytes":991,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/react/components/icons/xmark.tsx","kind":"import-statement","original":"../icons/xmark"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/icons/rotate.tsx":{"bytes":1662,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/reset-button.tsx":{"bytes":1777,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/react/components/icons/rotate.tsx","kind":"import-statement","original":"../icons/rotate"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/icon.tsx":{"bytes":815,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/logo.tsx":{"bytes":4307,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/prepr-tracking-pixel.tsx":{"bytes":1951,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/script","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/index.ts":{"bytes":358,"imports":[{"path":"src/react/components/ui/status-indicator-pill.tsx","kind":"import-statement","original":"./status-indicator-pill"},{"path":"src/react/components/ui/close-edit-mode-pill.tsx","kind":"import-statement","original":"./close-edit-mode-pill"},{"path":"src/react/components/ui/reset-button.tsx","kind":"import-statement","original":"./reset-button"},{"path":"src/react/components/ui/icon.tsx","kind":"import-statement","original":"./icon"},{"path":"src/react/components/ui/logo.tsx","kind":"import-statement","original":"./logo"},{"path":"src/react/components/ui/prepr-tracking-pixel.tsx","kind":"import-statement","original":"./prepr-tracking-pixel"}],"format":"esm"},"src/react/components/icons/sort-down.tsx":{"bytes":649,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/selectors/segment-selector.tsx":{"bytes":3479,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"../../../types","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"@headlessui/react","kind":"import-statement","external":true},{"path":"src/react/components/icons/sort-down.tsx","kind":"import-statement","original":"../icons/sort-down"},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/tooltip.tsx":{"bytes":3451,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/selectors/radio-selector.tsx":{"bytes":2022,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@headlessui/react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/ui/tooltip.tsx","kind":"import-statement","original":"../ui/tooltip"}],"format":"esm"},"src/react/components/selectors/variant-selector.tsx":{"bytes":1291,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"}],"format":"esm"},"src/react/components/selectors/edit-mode-selector.tsx":{"bytes":752,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/selectors/preview-mode-selector.tsx":{"bytes":915,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/selectors/index.ts":{"bytes":333,"imports":[{"path":"src/react/components/selectors/segment-selector.tsx","kind":"import-statement","original":"./segment-selector"},{"path":"src/react/components/selectors/variant-selector.tsx","kind":"import-statement","original":"./variant-selector"},{"path":"src/react/components/selectors/edit-mode-selector.tsx","kind":"import-statement","original":"./edit-mode-selector"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/components/selectors/preview-mode-selector.tsx","kind":"import-statement","original":"./preview-mode-selector"}],"format":"esm"},"src/react/components/toolbar/toolbar-content.tsx":{"bytes":3594,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"},{"path":"src/react/components/selectors/index.ts","kind":"import-statement","original":"../selectors"},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/toolbar/toolbar-button.tsx":{"bytes":525,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"}],"format":"esm"},"src/react/components/toolbar/toolbar.tsx":{"bytes":3669,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/hooks/use-modal.ts","kind":"import-statement","original":"../../hooks/use-modal"},{"path":"src/react/components/toolbar/toolbar-content.tsx","kind":"import-statement","original":"./toolbar-content"},{"path":"src/react/components/toolbar/toolbar-button.tsx","kind":"import-statement","original":"./toolbar-button"}],"format":"esm"},"src/react/components/toolbar/toolbar-wrapper.tsx":{"bytes":1429,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar.tsx","kind":"import-statement","original":"./toolbar"}],"format":"esm"},"src/react/components/toolbar/toolbar-indicator-wrapper.tsx":{"bytes":307,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"}],"format":"esm"},"src/react/components/toolbar/prepr-toolbar.tsx":{"bytes":467,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/hooks/use-stega-scan.tsx","kind":"import-statement","original":"../../hooks/use-stega-scan"},{"path":"src/react/components/toolbar/toolbar-wrapper.tsx","kind":"import-statement","original":"./toolbar-wrapper"},{"path":"src/react/components/toolbar/toolbar-indicator-wrapper.tsx","kind":"import-statement","original":"./toolbar-indicator-wrapper"}],"format":"esm"},"src/react/index.tsx":{"bytes":332,"imports":[{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"./components/toolbar/toolbar-provider"},{"path":"src/react/components/toolbar/prepr-toolbar.tsx","kind":"import-statement","original":"./components/toolbar/prepr-toolbar"},{"path":"src/react/components/ui/prepr-tracking-pixel.tsx","kind":"import-statement","original":"./components/ui/prepr-tracking-pixel"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"./hooks/use-i18n"}],"format":"esm"}},"outputs":{"dist/react/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":145887},"dist/react/index.cjs":{"imports":[{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"zustand","kind":"require-call","external":true},{"path":"zustand/middleware","kind":"require-call","external":true},{"path":"clsx","kind":"require-call","external":true},{"path":"tailwind-merge","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@vercel/stega","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react-dom","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/script","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"@headlessui/react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@headlessui/react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react-dom","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/react/index.tsx","inputs":{"src/react/index.tsx":{"bytesInOutput":159},"src/react/components/toolbar/toolbar-provider.tsx":{"bytesInOutput":1389},"src/react/components/error-boundary.tsx":{"bytesInOutput":747},"src/react/components/store/prepr-store-initializer.tsx":{"bytesInOutput":1002},"src/stores/prepr-store.ts":{"bytesInOutput":2100},"src/utils/index.ts":{"bytesInOutput":342},"src/utils/errors.ts":{"bytesInOutput":511},"src/utils/dom.ts":{"bytesInOutput":1397},"src/utils/debug.ts":{"bytesInOutput":699},"src/utils/performance.ts":{"bytesInOutput":334},"src/react/hooks/use-scroll-position.tsx":{"bytesInOutput":957},"src/react/components/toolbar/prepr-toolbar.tsx":{"bytesInOutput":185},"src/react/hooks/use-stega-scan.tsx":{"bytesInOutput":1568},"src/react/hooks/use-stega-overlay.tsx":{"bytesInOutput":2803},"src/react/hooks/use-stega-proximity.tsx":{"bytesInOutput":1732},"src/react/hooks/use-stega-elements.tsx":{"bytesInOutput":3556},"src/react/components/toolbar/toolbar-wrapper.tsx":{"bytesInOutput":668},"src/react/components/toolbar/toolbar.tsx":{"bytesInOutput":1469},"src/react/hooks/use-modal.ts":{"bytesInOutput":673},"src/react/components/toolbar/toolbar-content.tsx":{"bytesInOutput":2927},"src/react/components/ui/status-indicator-pill.tsx":{"bytesInOutput":1457},"src/react/components/icons/xmark.tsx":{"bytesInOutput":429},"src/react/hooks/use-i18n.ts":{"bytesInOutput":106},"src/i18n/locales/en.json":{"bytesInOutput":541},"src/i18n/locales/nl.json":{"bytesInOutput":586},"src/i18n/index.ts":{"bytesInOutput":342},"src/react/components/ui/index.ts":{"bytesInOutput":0},"src/react/components/ui/close-edit-mode-pill.tsx":{"bytesInOutput":685},"src/react/components/ui/reset-button.tsx":{"bytesInOutput":921},"src/react/components/icons/rotate.tsx":{"bytesInOutput":1607},"src/react/components/ui/icon.tsx":{"bytesInOutput":696},"src/react/components/ui/logo.tsx":{"bytesInOutput":4173},"src/react/components/ui/prepr-tracking-pixel.tsx":{"bytesInOutput":816},"src/react/components/selectors/segment-selector.tsx":{"bytesInOutput":1918},"src/react/components/icons/sort-down.tsx":{"bytesInOutput":545},"src/react/components/selectors/index.ts":{"bytesInOutput":0},"src/react/components/selectors/variant-selector.tsx":{"bytesInOutput":498},"src/react/components/selectors/radio-selector.tsx":{"bytesInOutput":1004},"src/react/components/ui/tooltip.tsx":{"bytesInOutput":1645},"src/react/components/selectors/edit-mode-selector.tsx":{"bytesInOutput":269},"src/react/components/selectors/preview-mode-selector.tsx":{"bytesInOutput":355},"src/react/components/toolbar/toolbar-button.tsx":{"bytesInOutput":295},"src/react/components/toolbar/toolbar-indicator-wrapper.tsx":{"bytesInOutput":218}},"bytes":45401}}}
|
|
1
|
+
{"inputs":{"src/react/components/error-boundary.tsx":{"bytes":1342,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/utils/errors.ts":{"bytes":1985,"imports":[],"format":"esm"},"src/utils/dom.ts":{"bytes":4121,"imports":[{"path":"src/utils/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/utils/debug.ts":{"bytes":3135,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils/performance.ts":{"bytes":2443,"imports":[],"format":"esm"},"src/utils/index.ts":{"bytes":1347,"imports":[{"path":"clsx","kind":"import-statement","external":true},{"path":"tailwind-merge","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true},{"path":"src/utils/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/utils/dom.ts","kind":"import-statement","original":"./dom"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"./debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"./performance"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/stores/prepr-store.ts":{"bytes":6190,"imports":[{"path":"zustand","kind":"import-statement","external":true},{"path":"zustand/middleware","kind":"import-statement","external":true},{"path":"../types","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../utils"}],"format":"esm"},"src/react/components/store/prepr-store-initializer.tsx":{"bytes":2417,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"../../../types","kind":"import-statement","external":true}],"format":"esm"},"src/react/hooks/use-scroll-position.tsx":{"bytes":1889,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../utils"},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../utils"}],"format":"esm"},"src/react/hooks/use-stega-clean.tsx":{"bytes":7885,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@vercel/stega","kind":"import-statement","external":true},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"}],"format":"esm"},"src/react/components/toolbar/toolbar-provider.tsx":{"bytes":4192,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"../../../types","kind":"import-statement","external":true},{"path":"src/react/components/error-boundary.tsx","kind":"import-statement","original":"../error-boundary"},{"path":"src/react/components/store/prepr-store-initializer.tsx","kind":"import-statement","original":"../store/prepr-store-initializer"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../../utils/debug"},{"path":"src/react/hooks/use-scroll-position.tsx","kind":"import-statement","original":"../../hooks/use-scroll-position"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/hooks/use-stega-clean.tsx","kind":"import-statement","original":"../../hooks/use-stega-clean"}],"format":"esm"},"src/react/hooks/use-stega-overlay.tsx":{"bytes":7230,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/dom.ts","kind":"import-statement","original":"../../utils/dom"},{"path":"src/utils/errors.ts","kind":"import-statement","original":"../../utils/errors"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"@vercel/stega","kind":"import-statement","external":true}],"format":"esm"},"src/react/hooks/use-stega-proximity.tsx":{"bytes":4921,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"../../utils/performance"}],"format":"esm"},"src/react/hooks/use-stega-elements.tsx":{"bytes":6228,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"}],"format":"esm"},"src/react/hooks/use-stega-scan.tsx":{"bytes":4830,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/dom.ts","kind":"import-statement","original":"../../utils/dom"},{"path":"src/utils/debug.ts","kind":"import-statement","original":"../../utils/debug"},{"path":"src/utils/performance.ts","kind":"import-statement","original":"../../utils/performance"},{"path":"src/react/hooks/use-stega-overlay.tsx","kind":"import-statement","original":"./use-stega-overlay"},{"path":"src/react/hooks/use-stega-proximity.tsx","kind":"import-statement","original":"./use-stega-proximity"},{"path":"src/react/hooks/use-stega-elements.tsx","kind":"import-statement","original":"./use-stega-elements"}],"format":"esm"},"src/react/hooks/use-modal.ts":{"bytes":1586,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/icons/xmark.tsx":{"bytes":530,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/i18n/locales/en.json":{"bytes":706,"imports":[]},"src/i18n/locales/nl.json":{"bytes":751,"imports":[]},"src/i18n/index.ts":{"bytes":1122,"imports":[{"path":"src/i18n/locales/en.json","kind":"import-statement","original":"./locales/en.json"},{"path":"src/i18n/locales/nl.json","kind":"import-statement","original":"./locales/nl.json"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../stores/prepr-store"}],"format":"esm"},"src/react/hooks/use-i18n.ts":{"bytes":374,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/i18n/index.ts","kind":"import-statement","original":"../../i18n"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../stores/prepr-store"}],"format":"esm"},"src/react/components/ui/status-indicator-pill.tsx":{"bytes":2947,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/icons/xmark.tsx","kind":"import-statement","original":"../icons/xmark"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/close-edit-mode-pill.tsx":{"bytes":991,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/react/components/icons/xmark.tsx","kind":"import-statement","original":"../icons/xmark"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/icons/rotate.tsx":{"bytes":1662,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/reset-button.tsx":{"bytes":1777,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"../toolbar/toolbar-provider"},{"path":"src/react/components/icons/rotate.tsx","kind":"import-statement","original":"../icons/rotate"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/icon.tsx":{"bytes":815,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/logo.tsx":{"bytes":4307,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/prepr-tracking-pixel.tsx":{"bytes":1951,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/script","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/ui/index.ts":{"bytes":358,"imports":[{"path":"src/react/components/ui/status-indicator-pill.tsx","kind":"import-statement","original":"./status-indicator-pill"},{"path":"src/react/components/ui/close-edit-mode-pill.tsx","kind":"import-statement","original":"./close-edit-mode-pill"},{"path":"src/react/components/ui/reset-button.tsx","kind":"import-statement","original":"./reset-button"},{"path":"src/react/components/ui/icon.tsx","kind":"import-statement","original":"./icon"},{"path":"src/react/components/ui/logo.tsx","kind":"import-statement","original":"./logo"},{"path":"src/react/components/ui/prepr-tracking-pixel.tsx","kind":"import-statement","original":"./prepr-tracking-pixel"}],"format":"esm"},"src/react/components/icons/sort-down.tsx":{"bytes":649,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/selectors/segment-selector.tsx":{"bytes":3479,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"../../../types","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"@headlessui/react","kind":"import-statement","external":true},{"path":"src/react/components/icons/sort-down.tsx","kind":"import-statement","original":"../icons/sort-down"},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/ui/tooltip.tsx":{"bytes":3451,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true}],"format":"esm"},"src/react/components/selectors/radio-selector.tsx":{"bytes":2022,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@headlessui/react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/ui/tooltip.tsx","kind":"import-statement","original":"../ui/tooltip"}],"format":"esm"},"src/react/components/selectors/variant-selector.tsx":{"bytes":1291,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"}],"format":"esm"},"src/react/components/selectors/edit-mode-selector.tsx":{"bytes":752,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/selectors/preview-mode-selector.tsx":{"bytes":915,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/selectors/index.ts":{"bytes":333,"imports":[{"path":"src/react/components/selectors/segment-selector.tsx","kind":"import-statement","original":"./segment-selector"},{"path":"src/react/components/selectors/variant-selector.tsx","kind":"import-statement","original":"./variant-selector"},{"path":"src/react/components/selectors/edit-mode-selector.tsx","kind":"import-statement","original":"./edit-mode-selector"},{"path":"src/react/components/selectors/radio-selector.tsx","kind":"import-statement","original":"./radio-selector"},{"path":"src/react/components/selectors/preview-mode-selector.tsx","kind":"import-statement","original":"./preview-mode-selector"}],"format":"esm"},"src/react/components/toolbar/toolbar-content.tsx":{"bytes":3594,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"},{"path":"src/react/components/selectors/index.ts","kind":"import-statement","original":"../selectors"},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"../../hooks/use-i18n"}],"format":"esm"},"src/react/components/toolbar/toolbar-button.tsx":{"bytes":525,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"}],"format":"esm"},"src/react/components/toolbar/toolbar.tsx":{"bytes":3663,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"src/utils/index.ts","kind":"import-statement","original":"../../../utils"},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/hooks/use-modal.ts","kind":"import-statement","original":"../../hooks/use-modal"},{"path":"src/react/components/toolbar/toolbar-content.tsx","kind":"import-statement","original":"./toolbar-content"},{"path":"src/react/components/toolbar/toolbar-button.tsx","kind":"import-statement","original":"./toolbar-button"}],"format":"esm"},"src/react/components/toolbar/toolbar-wrapper.tsx":{"bytes":1429,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/react/components/toolbar/toolbar.tsx","kind":"import-statement","original":"./toolbar"}],"format":"esm"},"src/react/components/toolbar/toolbar-indicator-wrapper.tsx":{"bytes":307,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/react/components/ui/index.ts","kind":"import-statement","original":"../ui"}],"format":"esm"},"src/react/components/toolbar/prepr-toolbar.tsx":{"bytes":467,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/stores/prepr-store.ts","kind":"import-statement","original":"../../../stores/prepr-store"},{"path":"src/react/hooks/use-stega-scan.tsx","kind":"import-statement","original":"../../hooks/use-stega-scan"},{"path":"src/react/components/toolbar/toolbar-wrapper.tsx","kind":"import-statement","original":"./toolbar-wrapper"},{"path":"src/react/components/toolbar/toolbar-indicator-wrapper.tsx","kind":"import-statement","original":"./toolbar-indicator-wrapper"}],"format":"esm"},"src/react/index.tsx":{"bytes":332,"imports":[{"path":"src/react/components/toolbar/toolbar-provider.tsx","kind":"import-statement","original":"./components/toolbar/toolbar-provider"},{"path":"src/react/components/toolbar/prepr-toolbar.tsx","kind":"import-statement","original":"./components/toolbar/prepr-toolbar"},{"path":"src/react/components/ui/prepr-tracking-pixel.tsx","kind":"import-statement","original":"./components/ui/prepr-tracking-pixel"},{"path":"src/react/hooks/use-i18n.ts","kind":"import-statement","original":"./hooks/use-i18n"}],"format":"esm"}},"outputs":{"dist/react/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":157617},"dist/react/index.cjs":{"imports":[{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"zustand","kind":"require-call","external":true},{"path":"zustand/middleware","kind":"require-call","external":true},{"path":"clsx","kind":"require-call","external":true},{"path":"tailwind-merge","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@vercel/stega","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@vercel/stega","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react-dom","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/script","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"@headlessui/react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"next/navigation","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@headlessui/react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react-dom","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/react/index.tsx","inputs":{"src/react/index.tsx":{"bytesInOutput":159},"src/react/components/toolbar/toolbar-provider.tsx":{"bytesInOutput":1405},"src/react/components/error-boundary.tsx":{"bytesInOutput":747},"src/react/components/store/prepr-store-initializer.tsx":{"bytesInOutput":1002},"src/stores/prepr-store.ts":{"bytesInOutput":2100},"src/utils/index.ts":{"bytesInOutput":342},"src/utils/errors.ts":{"bytesInOutput":511},"src/utils/dom.ts":{"bytesInOutput":1397},"src/utils/debug.ts":{"bytesInOutput":699},"src/utils/performance.ts":{"bytesInOutput":334},"src/react/hooks/use-scroll-position.tsx":{"bytesInOutput":957},"src/react/hooks/use-stega-clean.tsx":{"bytesInOutput":2601},"src/react/components/toolbar/prepr-toolbar.tsx":{"bytesInOutput":185},"src/react/hooks/use-stega-scan.tsx":{"bytesInOutput":1806},"src/react/hooks/use-stega-overlay.tsx":{"bytesInOutput":3119},"src/react/hooks/use-stega-proximity.tsx":{"bytesInOutput":1730},"src/react/hooks/use-stega-elements.tsx":{"bytesInOutput":2895},"src/react/components/toolbar/toolbar-wrapper.tsx":{"bytesInOutput":672},"src/react/components/toolbar/toolbar.tsx":{"bytesInOutput":1466},"src/react/hooks/use-modal.ts":{"bytesInOutput":678},"src/react/components/toolbar/toolbar-content.tsx":{"bytesInOutput":2927},"src/react/components/ui/status-indicator-pill.tsx":{"bytesInOutput":1457},"src/react/components/icons/xmark.tsx":{"bytesInOutput":429},"src/react/hooks/use-i18n.ts":{"bytesInOutput":106},"src/i18n/locales/en.json":{"bytesInOutput":541},"src/i18n/locales/nl.json":{"bytesInOutput":586},"src/i18n/index.ts":{"bytesInOutput":342},"src/react/components/ui/index.ts":{"bytesInOutput":0},"src/react/components/ui/close-edit-mode-pill.tsx":{"bytesInOutput":685},"src/react/components/ui/reset-button.tsx":{"bytesInOutput":921},"src/react/components/icons/rotate.tsx":{"bytesInOutput":1607},"src/react/components/ui/icon.tsx":{"bytesInOutput":696},"src/react/components/ui/logo.tsx":{"bytesInOutput":4173},"src/react/components/ui/prepr-tracking-pixel.tsx":{"bytesInOutput":816},"src/react/components/selectors/segment-selector.tsx":{"bytesInOutput":1918},"src/react/components/icons/sort-down.tsx":{"bytesInOutput":545},"src/react/components/selectors/index.ts":{"bytesInOutput":0},"src/react/components/selectors/variant-selector.tsx":{"bytesInOutput":498},"src/react/components/selectors/radio-selector.tsx":{"bytesInOutput":1004},"src/react/components/ui/tooltip.tsx":{"bytesInOutput":1645},"src/react/components/selectors/edit-mode-selector.tsx":{"bytesInOutput":269},"src/react/components/selectors/preview-mode-selector.tsx":{"bytesInOutput":355},"src/react/components/toolbar/toolbar-button.tsx":{"bytesInOutput":295},"src/react/components/toolbar/toolbar-indicator-wrapper.tsx":{"bytesInOutput":218}},"bytes":47921}}}
|