Spaces:
Running
Running
/** | |
* | |
* Copyright 2023-2024 InspectorRAGet Team | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
* | |
**/ | |
const path = require('path'); | |
const cspMap = { | |
'base-uri': ["'none'"], | |
'font-src': ["'self'", 'data:', "'unsafe-inline'"], | |
'form-action': ["'self'"], | |
'frame-src': ["'self'"], | |
'img-src': ["'self'", 'data:', 'blob:'], | |
'media-src': ["'self'", 'blob:'], | |
'object-src': ["'none'"], | |
'style-src': ["'self'", "'unsafe-inline'"], | |
}; | |
const getCSPString = (cspMap) => | |
Object.entries(cspMap) | |
.map(([key, values]) => `${key} ${values.join(' ')}`) | |
.join('; '); | |
const headers = [ | |
{ | |
key: 'Content-Security-Policy', | |
value: getCSPString(cspMap), | |
}, | |
{ | |
key: 'Strict-Transport-Security', | |
value: 'max-age=63072000; includeSubDomains; preload', | |
}, | |
]; | |
const nextConfig = { | |
reactStrictMode: true, | |
swcMinify: true, | |
output: 'standalone', | |
sassOptions: { | |
includePaths: [path.join(__dirname, 'styles')], | |
}, | |
async headers() { | |
return [ | |
// Default headers for all pages. | |
{ source: '/', headers }, | |
{ source: '/:path*', headers }, | |
]; | |
}, | |
}; | |
module.exports = nextConfig; | |