mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-10-14 12:35:05 +02:00
240 lines
8.1 KiB
JSON
240 lines
8.1 KiB
JSON
{
|
|
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
"framework": "vite",
|
|
"buildCommand": "npm run build:with-docs",
|
|
"outputDirectory": "dist",
|
|
"installCommand": "npm ci",
|
|
"cleanUrls": true,
|
|
"trailingSlash": false,
|
|
"redirects": [
|
|
{ "source": "/ua/:path*", "destination": "/uk/:path*", "permanent": true },
|
|
{ "source": "/en/:path*", "destination": "/:path*", "permanent": true },
|
|
{
|
|
"source": "/:locale(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/src/pages/:page",
|
|
"destination": "/:locale/:page",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/src/pages/:page",
|
|
"destination": "/:page",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/:locale(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/change-text-color",
|
|
"destination": "/:locale/text-color",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/:locale(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/pdf-to-docx",
|
|
"destination": "/:locale/pdf-to-word",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/:locale(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/decrypt-pdf",
|
|
"destination": "/:locale/unlock-pdf",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/:locale(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/encrypt-pdf",
|
|
"destination": "/:locale/protect-pdf",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/change-text-color",
|
|
"destination": "/text-color",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/pdf-to-docx",
|
|
"destination": "/pdf-to-word",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/decrypt-pdf",
|
|
"destination": "/unlock-pdf",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/encrypt-pdf",
|
|
"destination": "/protect-pdf",
|
|
"permanent": true
|
|
},
|
|
{ "source": "/tools/:page", "destination": "/:page", "permanent": true },
|
|
{
|
|
"source": "/getting-started",
|
|
"destination": "/docs/getting-started",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/contributing",
|
|
"destination": "/docs/contributing",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/self-hosting/:path*",
|
|
"destination": "/docs/self-hosting/:path*",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/docs/tools/pdf-to-docx",
|
|
"destination": "/docs/tools/pdf-to-word",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/docs/tools/decrypt-pdf",
|
|
"destination": "/docs/tools/unlock-pdf",
|
|
"permanent": true
|
|
},
|
|
{
|
|
"source": "/docs/tools/encrypt-pdf",
|
|
"destination": "/docs/tools/protect-pdf",
|
|
"permanent": true
|
|
}
|
|
],
|
|
"headers": [
|
|
{
|
|
"source": "/(.*)",
|
|
"headers": [
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self'; script-src 'self' 'wasm-unsafe-eval' 'unsafe-eval' blob: https://cdn.jsdelivr.net; worker-src 'self' blob:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com https://rawcdn.githack.com; connect-src 'self' blob: https://api.github.com https://fonts.gstatic.com https://cdn.jsdelivr.net https://bentopdf-cors-proxy.bentopdf.workers.dev https://rawcdn.githack.com; object-src 'none'; base-uri 'self'; frame-src 'self' blob:; frame-ancestors 'self'; form-action 'self'"
|
|
},
|
|
{ "key": "X-Frame-Options", "value": "SAMEORIGIN" },
|
|
{ "key": "X-Content-Type-Options", "value": "nosniff" },
|
|
{ "key": "X-XSS-Protection", "value": "1; mode=block" },
|
|
{
|
|
"key": "Referrer-Policy",
|
|
"value": "strict-origin-when-cross-origin"
|
|
},
|
|
{
|
|
"key": "Permissions-Policy",
|
|
"value": "geolocation=(), camera=(), microphone=(), payment=(), usb=(), interest-cohort=()"
|
|
},
|
|
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
|
|
{ "key": "Cross-Origin-Embedder-Policy", "value": "credentialless" },
|
|
{ "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" },
|
|
{ "key": "Cache-Control", "value": "public, max-age=300" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/(.*)\\.html",
|
|
"headers": [{ "key": "Cache-Control", "value": "public, max-age=3600" }]
|
|
},
|
|
{
|
|
"source": "/(ar|be|da|de|es|fr|id|it|ja|ko|nl|pl|pt|ru|sk|sv|tr|uk|vi|zh|zh-TW)/(.*)",
|
|
"headers": [{ "key": "Cache-Control", "value": "public, max-age=300" }]
|
|
},
|
|
{
|
|
"source": "/(.*)\\.(js|mjs|css|woff|woff2|ttf|eot|otf)",
|
|
"headers": [
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/(.*)\\.(png|jpg|jpeg|gif|ico|svg|webp|avif|mp4|webm|pdf)",
|
|
"headers": [
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/(.*)\\.(wasm|wasm\\.gz|data|data\\.gz)",
|
|
"headers": [
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/(.*)\\.json",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=0, must-revalidate"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/pdfjs-viewer/(.*)",
|
|
"headers": [
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/pdfjs-annotation-viewer/(.*)",
|
|
"headers": [
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/docs",
|
|
"headers": [
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com https://rawcdn.githack.com; connect-src 'self' https://api.github.com https://fonts.gstatic.com https://cdn.jsdelivr.net https://bentopdf-cors-proxy.bentopdf.workers.dev https://rawcdn.githack.com; object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self'"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/docs/:path*",
|
|
"headers": [
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com https://rawcdn.githack.com; connect-src 'self' https://api.github.com https://fonts.gstatic.com https://cdn.jsdelivr.net https://bentopdf-cors-proxy.bentopdf.workers.dev https://rawcdn.githack.com; object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self'"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/sw.js",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=0, must-revalidate"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/coherentpdf.browser.min.js",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=0, must-revalidate"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/qpdf.wasm",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=0, must-revalidate"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/workers/(.*)",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=0, must-revalidate"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/libreoffice-wasm/soffice.wasm.gz",
|
|
"headers": [
|
|
{ "key": "Content-Type", "value": "application/wasm" },
|
|
{ "key": "Content-Encoding", "value": "gzip" },
|
|
{ "key": "Vary", "value": "Accept-Encoding" },
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/libreoffice-wasm/soffice.data.gz",
|
|
"headers": [
|
|
{ "key": "Content-Type", "value": "application/octet-stream" },
|
|
{ "key": "Content-Encoding", "value": "gzip" },
|
|
{ "key": "Vary", "value": "Accept-Encoding" },
|
|
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
|
|
]
|
|
}
|
|
]
|
|
}
|