open-brandkit 0.4.7
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/LICENSE +72 -0
- package/README.md +284 -0
- package/dist/adapters/next/brandkit-page.d.ts +15 -0
- package/dist/adapters/next/brandkit-page.d.ts.map +1 -0
- package/dist/adapters/next/brandkit-page.js +1085 -0
- package/dist/adapters/next/brandkit-page.js.map +1 -0
- package/dist/adapters/next/index.d.ts +3 -0
- package/dist/adapters/next/index.d.ts.map +1 -0
- package/dist/adapters/next/index.js +3 -0
- package/dist/adapters/next/index.js.map +1 -0
- package/dist/adapters/next/manifest.d.ts +33 -0
- package/dist/adapters/next/manifest.d.ts.map +1 -0
- package/dist/adapters/next/manifest.js +57 -0
- package/dist/adapters/next/manifest.js.map +1 -0
- package/dist/adapters/next/route-handlers.d.ts +102 -0
- package/dist/adapters/next/route-handlers.d.ts.map +1 -0
- package/dist/adapters/next/route-handlers.js +451 -0
- package/dist/adapters/next/route-handlers.js.map +1 -0
- package/dist/adapters/next/server.d.ts +2 -0
- package/dist/adapters/next/server.d.ts.map +1 -0
- package/dist/adapters/next/server.js +2 -0
- package/dist/adapters/next/server.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +1079 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/assets.d.ts +34 -0
- package/dist/core/assets.d.ts.map +1 -0
- package/dist/core/assets.js +200 -0
- package/dist/core/assets.js.map +1 -0
- package/dist/core/banner-renderer.d.ts +21 -0
- package/dist/core/banner-renderer.d.ts.map +1 -0
- package/dist/core/banner-renderer.js +119 -0
- package/dist/core/banner-renderer.js.map +1 -0
- package/dist/core/build.d.ts +13 -0
- package/dist/core/build.d.ts.map +1 -0
- package/dist/core/build.js +345 -0
- package/dist/core/build.js.map +1 -0
- package/dist/core/colors.d.ts +12 -0
- package/dist/core/colors.d.ts.map +1 -0
- package/dist/core/colors.js +335 -0
- package/dist/core/colors.js.map +1 -0
- package/dist/core/config.d.ts +103 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +119 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/static-page.d.ts +3 -0
- package/dist/core/static-page.d.ts.map +1 -0
- package/dist/core/static-page.js +1830 -0
- package/dist/core/static-page.js.map +1 -0
- package/dist/core/types.d.ts +163 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/docs/STYLE_CONTRACT.md +48 -0
- package/examples/acme-studio-color-system.md +99 -0
- package/package.json +89 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { NextResponse } from 'next/server.js';
|
|
5
|
+
import { getBrandKitManifestPath, loadBrandKitManifest, } from './manifest.js';
|
|
6
|
+
const faviconPngSizes = [16, 32, 48, 180, 192, 512];
|
|
7
|
+
const icoSizes = [16, 32, 48];
|
|
8
|
+
const acceptedImageTypes = new Set([
|
|
9
|
+
'image/jpeg',
|
|
10
|
+
'image/png',
|
|
11
|
+
'image/svg+xml',
|
|
12
|
+
'image/webp',
|
|
13
|
+
]);
|
|
14
|
+
const maxUploadBytes = 20 * 1024 * 1024;
|
|
15
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
16
|
+
const sharpPackageName = 'sha' + 'rp';
|
|
17
|
+
function getSharp() {
|
|
18
|
+
return requireFromHere(sharpPackageName);
|
|
19
|
+
}
|
|
20
|
+
function stripSlashes(value) {
|
|
21
|
+
return value.replace(/^\/+|\/+$/g, '');
|
|
22
|
+
}
|
|
23
|
+
function getCwd(options) {
|
|
24
|
+
return options.cwd ?? process.cwd();
|
|
25
|
+
}
|
|
26
|
+
function getPublicDir(options) {
|
|
27
|
+
return options.publicDir ?? 'public';
|
|
28
|
+
}
|
|
29
|
+
function isProduction() {
|
|
30
|
+
return process.env.NODE_ENV === 'production';
|
|
31
|
+
}
|
|
32
|
+
function productionBlocked(message) {
|
|
33
|
+
return NextResponse.json({ error: message }, { status: 403 });
|
|
34
|
+
}
|
|
35
|
+
function getPublicFilePath(publicUrl, options) {
|
|
36
|
+
const cwd = getCwd(options);
|
|
37
|
+
const publicDir = path.resolve(cwd, getPublicDir(options));
|
|
38
|
+
const filePath = path.resolve(publicDir, ...publicUrl.split('/').filter(Boolean));
|
|
39
|
+
if (!filePath.startsWith(`${publicDir}${path.sep}`)) {
|
|
40
|
+
throw new Error('Brand Kit public asset path is not writable.');
|
|
41
|
+
}
|
|
42
|
+
return filePath;
|
|
43
|
+
}
|
|
44
|
+
function getDownloadFileName(publicUrl, fallback) {
|
|
45
|
+
try {
|
|
46
|
+
const url = new URL(publicUrl, 'https://open-brandkit.local');
|
|
47
|
+
const fileName = path.basename(url.pathname);
|
|
48
|
+
return fileName || fallback;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return fallback;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function findBannerAsset(manifest, assetId) {
|
|
55
|
+
for (const group of manifest.bannerGroups) {
|
|
56
|
+
const asset = group.items.find((item) => item.id === assetId);
|
|
57
|
+
if (asset)
|
|
58
|
+
return asset;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
function getCustomBannerIds(manifest) {
|
|
63
|
+
return manifest.bannerGroups.flatMap((group) => group.items.filter((asset) => asset.isCustom).map((asset) => asset.id));
|
|
64
|
+
}
|
|
65
|
+
function setCustomBannerState(manifest, assetId, isCustom) {
|
|
66
|
+
return {
|
|
67
|
+
...manifest,
|
|
68
|
+
bannerGroups: manifest.bannerGroups.map((group) => ({
|
|
69
|
+
...group,
|
|
70
|
+
items: group.items.map((asset) => {
|
|
71
|
+
if (asset.id !== assetId)
|
|
72
|
+
return asset;
|
|
73
|
+
const { isCustom: _previous, ...rest } = asset;
|
|
74
|
+
return isCustom ? { ...rest, isCustom: true } : rest;
|
|
75
|
+
}),
|
|
76
|
+
})),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function writeBrandKitManifest(manifest, options) {
|
|
80
|
+
const manifestPath = getBrandKitManifestPath(options);
|
|
81
|
+
await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
82
|
+
}
|
|
83
|
+
function bannerWrittenFileNames(config, files, options) {
|
|
84
|
+
const cwd = getCwd(options);
|
|
85
|
+
const publicDir = getPublicDir(options);
|
|
86
|
+
const route = config.route ?? '/brandkit';
|
|
87
|
+
const assetBasePath = config.output?.assetBasePath ?? route;
|
|
88
|
+
const outputDir = config.socialBanners?.outputDir ?? 'banners';
|
|
89
|
+
const bannerDir = path.resolve(cwd, publicDir, stripSlashes(assetBasePath), stripSlashes(outputDir));
|
|
90
|
+
return files
|
|
91
|
+
.filter((file) => path.extname(file).toLowerCase() === '.png' &&
|
|
92
|
+
path.resolve(file).startsWith(`${bannerDir}${path.sep}`))
|
|
93
|
+
.map((file) => path.basename(file));
|
|
94
|
+
}
|
|
95
|
+
function isBrandKitConfig(value) {
|
|
96
|
+
return Boolean(value &&
|
|
97
|
+
typeof value === 'object' &&
|
|
98
|
+
'brand' in value &&
|
|
99
|
+
'logos' in value &&
|
|
100
|
+
'colors' in value);
|
|
101
|
+
}
|
|
102
|
+
function decodePngDataUrl(dataUrl) {
|
|
103
|
+
if (typeof dataUrl !== 'string') {
|
|
104
|
+
throw new Error('Missing image data.');
|
|
105
|
+
}
|
|
106
|
+
const match = dataUrl.match(/^data:image\/png;base64,(.+)$/);
|
|
107
|
+
if (!match) {
|
|
108
|
+
throw new Error('Expected a PNG data URL.');
|
|
109
|
+
}
|
|
110
|
+
return Buffer.from(match[1], 'base64');
|
|
111
|
+
}
|
|
112
|
+
async function makePng(source, size) {
|
|
113
|
+
const sharp = await getSharp();
|
|
114
|
+
return sharp(source)
|
|
115
|
+
.resize(size, size, {
|
|
116
|
+
fit: 'contain',
|
|
117
|
+
background: { r: 0, g: 0, b: 0, alpha: 0 },
|
|
118
|
+
})
|
|
119
|
+
.png()
|
|
120
|
+
.toBuffer();
|
|
121
|
+
}
|
|
122
|
+
function makeIco(images) {
|
|
123
|
+
const header = Buffer.alloc(6);
|
|
124
|
+
const directory = Buffer.alloc(images.length * 16);
|
|
125
|
+
let offset = header.length + directory.length;
|
|
126
|
+
header.writeUInt16LE(0, 0);
|
|
127
|
+
header.writeUInt16LE(1, 2);
|
|
128
|
+
header.writeUInt16LE(images.length, 4);
|
|
129
|
+
images.forEach((image, index) => {
|
|
130
|
+
const entryOffset = index * 16;
|
|
131
|
+
directory.writeUInt8(image.size === 256 ? 0 : image.size, entryOffset);
|
|
132
|
+
directory.writeUInt8(image.size === 256 ? 0 : image.size, entryOffset + 1);
|
|
133
|
+
directory.writeUInt8(0, entryOffset + 2);
|
|
134
|
+
directory.writeUInt8(0, entryOffset + 3);
|
|
135
|
+
directory.writeUInt16LE(1, entryOffset + 4);
|
|
136
|
+
directory.writeUInt16LE(32, entryOffset + 6);
|
|
137
|
+
directory.writeUInt32LE(image.buffer.length, entryOffset + 8);
|
|
138
|
+
directory.writeUInt32LE(offset, entryOffset + 12);
|
|
139
|
+
offset += image.buffer.length;
|
|
140
|
+
});
|
|
141
|
+
return Buffer.concat([
|
|
142
|
+
header,
|
|
143
|
+
directory,
|
|
144
|
+
...images.map((image) => image.buffer),
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
function manifestSource(config) {
|
|
148
|
+
const name = config.brand.name;
|
|
149
|
+
const shortName = config.brand.shortName ?? name;
|
|
150
|
+
const description = config.brand.description ?? `${name} brand kit.`;
|
|
151
|
+
const colors = config.socialBanners?.colors ?? [];
|
|
152
|
+
const backgroundColor = colors.find((color) => color.key.includes('white'))?.hex ?? '#ffffff';
|
|
153
|
+
const themeColor = colors[0]?.hex ?? '#0d2249';
|
|
154
|
+
return `import type { MetadataRoute } from 'next'
|
|
155
|
+
|
|
156
|
+
export default function manifest(): MetadataRoute.Manifest {
|
|
157
|
+
return {
|
|
158
|
+
name: ${JSON.stringify(name)},
|
|
159
|
+
short_name: ${JSON.stringify(shortName)},
|
|
160
|
+
description: ${JSON.stringify(description)},
|
|
161
|
+
start_url: '/',
|
|
162
|
+
display: 'standalone',
|
|
163
|
+
background_color: ${JSON.stringify(backgroundColor)},
|
|
164
|
+
theme_color: ${JSON.stringify(themeColor)},
|
|
165
|
+
icons: [
|
|
166
|
+
{
|
|
167
|
+
src: '/android-chrome-192x192.png',
|
|
168
|
+
sizes: '192x192',
|
|
169
|
+
type: 'image/png',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
src: '/android-chrome-512x512.png',
|
|
173
|
+
sizes: '512x512',
|
|
174
|
+
type: 'image/png',
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
`;
|
|
180
|
+
}
|
|
181
|
+
function applyBannerPresetRequest(config, options) {
|
|
182
|
+
if (!config.socialBanners)
|
|
183
|
+
return config;
|
|
184
|
+
return {
|
|
185
|
+
...config,
|
|
186
|
+
socialBanners: {
|
|
187
|
+
...config.socialBanners,
|
|
188
|
+
presets: config.socialBanners.presets.map((preset) => ({
|
|
189
|
+
...preset,
|
|
190
|
+
accentColor: options.accentColor ?? preset.accentColor,
|
|
191
|
+
alignment: options.alignment
|
|
192
|
+
? options.alignment
|
|
193
|
+
: preset.alignment,
|
|
194
|
+
backgroundColor: options.backgroundColor ?? preset.backgroundColor,
|
|
195
|
+
markColor: options.markColor ?? options.accentColor ?? preset.markColor,
|
|
196
|
+
markVariant: options.markVariant ?? preset.markVariant,
|
|
197
|
+
pattern: options.pattern
|
|
198
|
+
? options.pattern
|
|
199
|
+
: preset.pattern,
|
|
200
|
+
secondaryColor: options.secondaryColor ?? preset.secondaryColor,
|
|
201
|
+
})),
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export function createBrandKitDownloadHandler(options = {}) {
|
|
206
|
+
return {
|
|
207
|
+
async GET(_request, context) {
|
|
208
|
+
const params = await context.params;
|
|
209
|
+
const requestedGroup = params.group;
|
|
210
|
+
const fallbackGroup = requestedGroup === 'all' ? 'all-assets' : requestedGroup;
|
|
211
|
+
const cwd = getCwd(options);
|
|
212
|
+
const publicDir = getPublicDir(options);
|
|
213
|
+
const assetBasePath = options.assetBasePath ?? '/brandkit';
|
|
214
|
+
let filePath = path.join(cwd, publicDir, stripSlashes(assetBasePath), 'downloads', `${fallbackGroup}.zip`);
|
|
215
|
+
let fileName = `${fallbackGroup}.zip`;
|
|
216
|
+
try {
|
|
217
|
+
const manifest = await loadBrandKitManifest(options);
|
|
218
|
+
const archiveUrl = requestedGroup === 'all'
|
|
219
|
+
? manifest.downloads.allAssets
|
|
220
|
+
: requestedGroup === 'banners'
|
|
221
|
+
? manifest.downloads.bannerAssets
|
|
222
|
+
: manifest.downloads.assetGroups?.[requestedGroup];
|
|
223
|
+
if (archiveUrl) {
|
|
224
|
+
filePath = getPublicFilePath(archiveUrl, options);
|
|
225
|
+
fileName = getDownloadFileName(archiveUrl, fileName);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// Fall back to the original unprefixed archive paths for older manifests.
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
const content = await readFile(filePath);
|
|
233
|
+
return new Response(content, {
|
|
234
|
+
headers: {
|
|
235
|
+
'Cache-Control': 'no-store',
|
|
236
|
+
'Content-Disposition': `attachment; filename="${fileName}"`,
|
|
237
|
+
'Content-Type': 'application/zip',
|
|
238
|
+
},
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return new Response('Brand Kit download not found', { status: 404 });
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
export function createBrandKitFaviconHandler(config, options = {}) {
|
|
248
|
+
return {
|
|
249
|
+
async POST(request) {
|
|
250
|
+
try {
|
|
251
|
+
if (isProduction()) {
|
|
252
|
+
return productionBlocked('Favicon installation is only available in local development.');
|
|
253
|
+
}
|
|
254
|
+
const body = (await request.json());
|
|
255
|
+
const source = decodePngDataUrl(body.imageDataUrl);
|
|
256
|
+
const cwd = getCwd(options);
|
|
257
|
+
const appDir = path.resolve(cwd, options.appDir ?? 'src/app');
|
|
258
|
+
const publicDir = path.resolve(cwd, getPublicDir(options));
|
|
259
|
+
const pngs = new Map();
|
|
260
|
+
await Promise.all(faviconPngSizes.map(async (size) => {
|
|
261
|
+
pngs.set(size, await makePng(source, size));
|
|
262
|
+
}));
|
|
263
|
+
const ico = makeIco(icoSizes.map((size) => ({
|
|
264
|
+
size,
|
|
265
|
+
buffer: pngs.get(size) ?? Buffer.alloc(0),
|
|
266
|
+
})));
|
|
267
|
+
const writes = [
|
|
268
|
+
{ path: path.join(appDir, 'favicon.ico'), buffer: ico },
|
|
269
|
+
{ path: path.join(appDir, 'icon1.png'), buffer: pngs.get(32) },
|
|
270
|
+
{ path: path.join(appDir, 'icon2.png'), buffer: pngs.get(192) },
|
|
271
|
+
{ path: path.join(appDir, 'icon3.png'), buffer: pngs.get(512) },
|
|
272
|
+
{ path: path.join(appDir, 'apple-icon.png'), buffer: pngs.get(180) },
|
|
273
|
+
{ path: path.join(publicDir, 'favicon-16x16.png'), buffer: pngs.get(16) },
|
|
274
|
+
{ path: path.join(publicDir, 'favicon-32x32.png'), buffer: pngs.get(32) },
|
|
275
|
+
{
|
|
276
|
+
path: path.join(publicDir, 'apple-touch-icon.png'),
|
|
277
|
+
buffer: pngs.get(180),
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
path: path.join(publicDir, 'android-chrome-192x192.png'),
|
|
281
|
+
buffer: pngs.get(192),
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
path: path.join(publicDir, 'android-chrome-512x512.png'),
|
|
285
|
+
buffer: pngs.get(512),
|
|
286
|
+
},
|
|
287
|
+
];
|
|
288
|
+
await Promise.all([mkdir(appDir, { recursive: true }), mkdir(publicDir, { recursive: true })]);
|
|
289
|
+
await Promise.all(writes.map(async (write) => {
|
|
290
|
+
if (!write.buffer) {
|
|
291
|
+
throw new Error(`Missing generated buffer for ${write.path}.`);
|
|
292
|
+
}
|
|
293
|
+
await writeFile(write.path, write.buffer);
|
|
294
|
+
}));
|
|
295
|
+
await writeFile(path.join(appDir, 'manifest.ts'), manifestSource(config));
|
|
296
|
+
return NextResponse.json({
|
|
297
|
+
files: [
|
|
298
|
+
'src/app/favicon.ico',
|
|
299
|
+
'src/app/icon1.png',
|
|
300
|
+
'src/app/icon2.png',
|
|
301
|
+
'src/app/icon3.png',
|
|
302
|
+
'src/app/apple-icon.png',
|
|
303
|
+
'src/app/manifest.ts',
|
|
304
|
+
'public/favicon-16x16.png',
|
|
305
|
+
'public/favicon-32x32.png',
|
|
306
|
+
'public/apple-touch-icon.png',
|
|
307
|
+
'public/android-chrome-192x192.png',
|
|
308
|
+
'public/android-chrome-512x512.png',
|
|
309
|
+
],
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
return NextResponse.json({
|
|
314
|
+
error: error instanceof Error
|
|
315
|
+
? error.message
|
|
316
|
+
: 'Could not install favicon files.',
|
|
317
|
+
}, { status: 400 });
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
export function createBrandKitBannerUploadHandler(configOrOptions = {}, maybeOptions = {}) {
|
|
323
|
+
const config = isBrandKitConfig(configOrOptions) ? configOrOptions : null;
|
|
324
|
+
const options = isBrandKitConfig(configOrOptions)
|
|
325
|
+
? maybeOptions
|
|
326
|
+
: configOrOptions;
|
|
327
|
+
return {
|
|
328
|
+
async POST(request) {
|
|
329
|
+
try {
|
|
330
|
+
if (isProduction()) {
|
|
331
|
+
return productionBlocked('Custom banner uploads are only available in local development.');
|
|
332
|
+
}
|
|
333
|
+
if (request.headers.get('content-type')?.includes('application/json')) {
|
|
334
|
+
if (!config) {
|
|
335
|
+
throw new Error('Banner reset requires the Brand Kit config.');
|
|
336
|
+
}
|
|
337
|
+
const body = (await request.json());
|
|
338
|
+
if (body.action !== 'reset') {
|
|
339
|
+
throw new Error('Unsupported banner action.');
|
|
340
|
+
}
|
|
341
|
+
if (typeof body.assetId !== 'string') {
|
|
342
|
+
throw new Error('Missing banner asset.');
|
|
343
|
+
}
|
|
344
|
+
const manifest = await loadBrandKitManifest(options);
|
|
345
|
+
const asset = findBannerAsset(manifest, body.assetId);
|
|
346
|
+
if (!asset) {
|
|
347
|
+
throw new Error('Banner asset not found.');
|
|
348
|
+
}
|
|
349
|
+
const customBannerIds = getCustomBannerIds(manifest).filter((assetId) => assetId !== body.assetId);
|
|
350
|
+
const { buildBrandKit } = await import('../../core/build.js');
|
|
351
|
+
const result = await buildBrandKit(config, {
|
|
352
|
+
cwd: getCwd(options),
|
|
353
|
+
customBannerIds,
|
|
354
|
+
});
|
|
355
|
+
const resetAsset = findBannerAsset(result.manifest, body.assetId);
|
|
356
|
+
return NextResponse.json({
|
|
357
|
+
assetId: body.assetId,
|
|
358
|
+
files: bannerWrittenFileNames(config, result.writtenFiles, options),
|
|
359
|
+
height: resetAsset?.height ?? asset.height,
|
|
360
|
+
isCustom: false,
|
|
361
|
+
url: resetAsset?.previewUrl ?? asset.previewUrl,
|
|
362
|
+
width: resetAsset?.width ?? asset.width,
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
const formData = await request.formData();
|
|
366
|
+
const assetId = formData.get('assetId');
|
|
367
|
+
const file = formData.get('file');
|
|
368
|
+
if (typeof assetId !== 'string') {
|
|
369
|
+
throw new Error('Missing banner asset.');
|
|
370
|
+
}
|
|
371
|
+
if (!file || typeof file === 'string') {
|
|
372
|
+
throw new Error('Missing image file.');
|
|
373
|
+
}
|
|
374
|
+
if (file.size > maxUploadBytes) {
|
|
375
|
+
throw new Error('Image must be smaller than 20 MB.');
|
|
376
|
+
}
|
|
377
|
+
if (file.type && !acceptedImageTypes.has(file.type)) {
|
|
378
|
+
throw new Error('Upload a PNG, JPG, SVG, or WebP image.');
|
|
379
|
+
}
|
|
380
|
+
const manifest = await loadBrandKitManifest(options);
|
|
381
|
+
const asset = findBannerAsset(manifest, assetId);
|
|
382
|
+
const download = asset?.downloads.find((item) => item.format === 'PNG');
|
|
383
|
+
if (!asset || !download) {
|
|
384
|
+
throw new Error('Banner asset not found.');
|
|
385
|
+
}
|
|
386
|
+
const source = Buffer.from(await file.arrayBuffer());
|
|
387
|
+
const sharp = await getSharp();
|
|
388
|
+
const output = await sharp(source)
|
|
389
|
+
.resize(asset.width, asset.height, {
|
|
390
|
+
fit: 'cover',
|
|
391
|
+
position: 'center',
|
|
392
|
+
})
|
|
393
|
+
.png()
|
|
394
|
+
.toBuffer();
|
|
395
|
+
const filePath = getPublicFilePath(download.url, options);
|
|
396
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
397
|
+
await writeFile(filePath, output);
|
|
398
|
+
await writeBrandKitManifest(setCustomBannerState(manifest, asset.id, true), options);
|
|
399
|
+
return NextResponse.json({
|
|
400
|
+
assetId: asset.id,
|
|
401
|
+
fileName: download.fileName,
|
|
402
|
+
height: asset.height,
|
|
403
|
+
isCustom: true,
|
|
404
|
+
url: download.url,
|
|
405
|
+
width: asset.width,
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
catch (error) {
|
|
409
|
+
return NextResponse.json({
|
|
410
|
+
error: error instanceof Error
|
|
411
|
+
? error.message
|
|
412
|
+
: 'Could not replace banner image.',
|
|
413
|
+
}, { status: 400 });
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
export function createBrandKitBannerPresetHandler(config, options = {}) {
|
|
419
|
+
return {
|
|
420
|
+
async POST(request) {
|
|
421
|
+
try {
|
|
422
|
+
const body = (await request.json());
|
|
423
|
+
const currentManifest = await loadBrandKitManifest(options);
|
|
424
|
+
const customBannerIds = getCustomBannerIds(currentManifest);
|
|
425
|
+
const { buildBrandKit } = await import('../../core/build.js');
|
|
426
|
+
const result = await buildBrandKit(applyBannerPresetRequest(config, body), {
|
|
427
|
+
cwd: getCwd(options),
|
|
428
|
+
customBannerIds,
|
|
429
|
+
});
|
|
430
|
+
const files = bannerWrittenFileNames(config, result.writtenFiles, options);
|
|
431
|
+
return NextResponse.json({ files });
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
return NextResponse.json({
|
|
435
|
+
error: error instanceof Error
|
|
436
|
+
? error.message
|
|
437
|
+
: 'Could not update banner presets.',
|
|
438
|
+
}, { status: 400 });
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
export function createBrandKitNextHandlers(config, options = {}) {
|
|
444
|
+
return {
|
|
445
|
+
bannerPresets: createBrandKitBannerPresetHandler(config, options),
|
|
446
|
+
bannerUpload: createBrandKitBannerUploadHandler(config, options),
|
|
447
|
+
downloads: createBrandKitDownloadHandler(options),
|
|
448
|
+
favicon: createBrandKitFaviconHandler(config, options),
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=route-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-handlers.js","sourceRoot":"","sources":["../../../src/adapters/next/route-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/server.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/next/server.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|