aboutsummaryrefslogtreecommitdiff
path: root/next.config.js
blob: b32b62588c389d601d8e9b62bb438f782255b56d (plain) (blame)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/** @type {import('next').NextConfig} */
// const nextSafe = require("next-safe");

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: "/:path*",
      //   headers: nextSafe({
      //     contentTypeOptions: "nosniff",
      //     contentSecurityPolicy: {
      //       "base-uri": "'none'",
      //       "child-src": "'none'",
      //       "connect-src": [
      //         "'self'",
      //         "webpack://*",
      //         "https://graphql.anilist.co/",
      //         "https://api.aniskip.com/",
      //         "https://m3u8proxy.moopa.workers.dev/",
      //       ],
      //       "default-src": "'self'",
      //       "font-src": [
      //         "'self'",
      //         "https://cdnjs.cloudflare.com/",
      //         "https://fonts.gstatic.com/",
      //       ],
      //       "form-action": "'self'",
      //       "frame-ancestors": "'none'",
      //       "frame-src": "'none'",
      //       "img-src": [
      //         "'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",
      //       ],
      //       "manifest-src": "'self'",
      //       "media-src": ["'self'", "blob:"],
      //       "object-src": "'none'",
      //       "prefetch-src": false,
      //       "script-src": [
      //         "'self'",
      //         "https://static.cloudflareinsights.com",
      //         "'unsafe-inline'",
      //         "'unsafe-eval'",
      //       ],

      //       "style-src": [
      //         "'self'",
      //         "'unsafe-inline'",
      //         "https://cdnjs.cloudflare.com",
      //         "https://fonts.googleapis.com",
      //       ],
      //       "worker-src": "'self'",
      //       mergeDefaultDirectives: false,
      //       reportOnly: false,
      //     },
      //     frameOptions: "DENY",
      //     permissionsPolicy: false,
      //     // permissionsPolicyDirectiveSupport: ["proposed", "standard"],
      //     isDev: false,
      //     referrerPolicy: "no-referrer",
      //     xssProtection: "1; mode=block",
      //   }),
      // },
    ];
  },
});