Phase 4: Add @bytelyst/feedback-client, broadcast-client, survey-client, offline-queue wrappers. Revamp settings page with profile, password change, feedback form. Add BroadcastBanner and SurveyBanner to app layout. Wire offline queue flush on boot. Phase 5: Fix .env.example branding (NoteLett), update docker-compose with all env vars, enable GitHub Actions CI workflow with lint steps. Made-with: Cursor
58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
import path from "node:path";
|
|
import type { NextConfig } from "next";
|
|
|
|
const securityHeaders = [
|
|
{
|
|
key: "X-Frame-Options",
|
|
value: "DENY",
|
|
},
|
|
{
|
|
key: "X-Content-Type-Options",
|
|
value: "nosniff",
|
|
},
|
|
{
|
|
key: "Referrer-Policy",
|
|
value: "strict-origin-when-cross-origin",
|
|
},
|
|
{
|
|
key: "Permissions-Policy",
|
|
value: "camera=(), microphone=(), geolocation=()",
|
|
},
|
|
];
|
|
|
|
const nextConfig: NextConfig = {
|
|
output: "standalone",
|
|
outputFileTracingRoot: path.join(process.cwd(), ".."),
|
|
transpilePackages: [
|
|
"@bytelyst/api-client",
|
|
"@bytelyst/blob-client",
|
|
"@bytelyst/broadcast-client",
|
|
"@bytelyst/dashboard-components",
|
|
"@bytelyst/design-tokens",
|
|
"@bytelyst/diagnostics-client",
|
|
"@bytelyst/extraction",
|
|
"@bytelyst/feature-flag-client",
|
|
"@bytelyst/feedback-client",
|
|
"@bytelyst/kill-switch-client",
|
|
"@bytelyst/offline-queue",
|
|
"@bytelyst/platform-client",
|
|
"@bytelyst/react-auth",
|
|
"@bytelyst/survey-client",
|
|
"@bytelyst/telemetry-client",
|
|
],
|
|
webpack: (config) => {
|
|
config.resolve.symlinks = true;
|
|
return config;
|
|
},
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: "/(.*)",
|
|
headers: securityHeaders,
|
|
},
|
|
];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|