1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/** @type {import('next').NextConfig} */
const { createSecureHeaders } = require("next-secure-headers");
const withPWA = require("next-pwa")({
dest: "public",
register: true,
disable: process.env.NODE_ENV === "development",
skipWaiting: true,
});
module.exports = withPWA({
reactStrictMode: false,
images: {
unoptimized: true,
remotePatterns: [
{
protocol: "https",
hostname: "s4.anilist.co",
},
],
},
distDir: process.env.BUILD_DIR || ".next",
trailingSlash: true,
output: "standalone",
async headers() {
return [
{
// matching all API routes
source: "/api/:path*",
headers: [
{ key: "Access-Control-Allow-Credentials", value: "true" },
{
key: "Access-Control-Allow-Origin",
value: "https://moopa.live",
}, // replace this your actual origin
{
key: "Access-Control-Allow-Methods",
value: "GET,DELETE,PATCH,POST,PUT",
},
{
key: "Access-Control-Allow-Headers",
value:
"X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version",
},
],
},
{
source: "/(.*)",
headers: createSecureHeaders({
contentSecurityPolicy: {
directives: {
styleSrc: [
"'self'",
"'unsafe-inline'",
"https://cdnjs.cloudflare.com",
"https://fonts.googleapis.com",
],
imgSrc: [
"'self'",
"https://s4.anilist.co",
"data:",
"https://media.kitsu.io",
"https://artworks.thetvdb.com",
"https://img.moopa.live",
"https://meo.comick.pictures",
"https://kitsu-production-media.s3.us-west-002.backblazeb2.com",
],
baseUri: "self",
formAction: "self",
frameAncestors: true,
},
},
}),
},
];
},
});
|