- Implemented astro-i18next for multi-language support, including English, Dutch, and Italian. - Configured default locale and language fallback settings. - Defined routes for localized content in the configuration. - Updated package.json and package-lock.json to include new dependencies for i18next and related plugins.
131 lines
13 KiB
JavaScript
131 lines
13 KiB
JavaScript
import '@astrojs/internal-helpers/path';
|
|
import 'cookie';
|
|
import 'kleur/colors';
|
|
import 'es-module-lexer';
|
|
import { N as NOOP_MIDDLEWARE_HEADER, g as decodeKey } from './chunks/astro/server_DJC9Xx9K.mjs';
|
|
import 'clsx';
|
|
import 'html-escaper';
|
|
|
|
const NOOP_MIDDLEWARE_FN = async (_ctx, next) => {
|
|
const response = await next();
|
|
response.headers.set(NOOP_MIDDLEWARE_HEADER, "true");
|
|
return response;
|
|
};
|
|
|
|
const codeToStatusMap = {
|
|
// Implemented from tRPC error code table
|
|
// https://trpc.io/docs/server/error-handling#error-codes
|
|
BAD_REQUEST: 400,
|
|
UNAUTHORIZED: 401,
|
|
FORBIDDEN: 403,
|
|
NOT_FOUND: 404,
|
|
TIMEOUT: 405,
|
|
CONFLICT: 409,
|
|
PRECONDITION_FAILED: 412,
|
|
PAYLOAD_TOO_LARGE: 413,
|
|
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
UNPROCESSABLE_CONTENT: 422,
|
|
TOO_MANY_REQUESTS: 429,
|
|
CLIENT_CLOSED_REQUEST: 499,
|
|
INTERNAL_SERVER_ERROR: 500
|
|
};
|
|
Object.entries(codeToStatusMap).reduce(
|
|
// reverse the key-value pairs
|
|
(acc, [key, value]) => ({ ...acc, [value]: key }),
|
|
{}
|
|
);
|
|
|
|
function sanitizeParams(params) {
|
|
return Object.fromEntries(
|
|
Object.entries(params).map(([key, value]) => {
|
|
if (typeof value === "string") {
|
|
return [key, value.normalize().replace(/#/g, "%23").replace(/\?/g, "%3F")];
|
|
}
|
|
return [key, value];
|
|
})
|
|
);
|
|
}
|
|
function getParameter(part, params) {
|
|
if (part.spread) {
|
|
return params[part.content.slice(3)] || "";
|
|
}
|
|
if (part.dynamic) {
|
|
if (!params[part.content]) {
|
|
throw new TypeError(`Missing parameter: ${part.content}`);
|
|
}
|
|
return params[part.content];
|
|
}
|
|
return part.content.normalize().replace(/\?/g, "%3F").replace(/#/g, "%23").replace(/%5B/g, "[").replace(/%5D/g, "]");
|
|
}
|
|
function getSegment(segment, params) {
|
|
const segmentPath = segment.map((part) => getParameter(part, params)).join("");
|
|
return segmentPath ? "/" + segmentPath : "";
|
|
}
|
|
function getRouteGenerator(segments, addTrailingSlash) {
|
|
return (params) => {
|
|
const sanitizedParams = sanitizeParams(params);
|
|
let trailing = "";
|
|
if (addTrailingSlash === "always" && segments.length) {
|
|
trailing = "/";
|
|
}
|
|
const path = segments.map((segment) => getSegment(segment, sanitizedParams)).join("") + trailing;
|
|
return path || "/";
|
|
};
|
|
}
|
|
|
|
function deserializeRouteData(rawRouteData) {
|
|
return {
|
|
route: rawRouteData.route,
|
|
type: rawRouteData.type,
|
|
pattern: new RegExp(rawRouteData.pattern),
|
|
params: rawRouteData.params,
|
|
component: rawRouteData.component,
|
|
generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),
|
|
pathname: rawRouteData.pathname || void 0,
|
|
segments: rawRouteData.segments,
|
|
prerender: rawRouteData.prerender,
|
|
redirect: rawRouteData.redirect,
|
|
redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,
|
|
fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {
|
|
return deserializeRouteData(fallback);
|
|
}),
|
|
isIndex: rawRouteData.isIndex
|
|
};
|
|
}
|
|
|
|
function deserializeManifest(serializedManifest) {
|
|
const routes = [];
|
|
for (const serializedRoute of serializedManifest.routes) {
|
|
routes.push({
|
|
...serializedRoute,
|
|
routeData: deserializeRouteData(serializedRoute.routeData)
|
|
});
|
|
const route = serializedRoute;
|
|
route.routeData = deserializeRouteData(serializedRoute.routeData);
|
|
}
|
|
const assets = new Set(serializedManifest.assets);
|
|
const componentMetadata = new Map(serializedManifest.componentMetadata);
|
|
const inlinedScripts = new Map(serializedManifest.inlinedScripts);
|
|
const clientDirectives = new Map(serializedManifest.clientDirectives);
|
|
const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);
|
|
const key = decodeKey(serializedManifest.key);
|
|
return {
|
|
// in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)
|
|
middleware() {
|
|
return { onRequest: NOOP_MIDDLEWARE_FN };
|
|
},
|
|
...serializedManifest,
|
|
assets,
|
|
componentMetadata,
|
|
inlinedScripts,
|
|
clientDirectives,
|
|
routes,
|
|
serverIslandNameMap,
|
|
key
|
|
};
|
|
}
|
|
|
|
const manifest = deserializeManifest({"hrefRoot":"file:///Users/richard/Website%20Development/tiber365/","adapterName":"","routes":[{"file":"file:///Users/richard/Website%20Development/tiber365/dist/404.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/404","isIndex":false,"type":"page","pattern":"^\\/404\\/?$","segments":[[{"content":"404","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/404.astro","pathname":"/404","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/about/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/about","isIndex":false,"type":"page","pattern":"^\\/about\\/?$","segments":[[{"content":"about","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/about.astro","pathname":"/about","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/contact/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/contact","isIndex":false,"type":"page","pattern":"^\\/contact\\/?$","segments":[[{"content":"contact","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/contact.astro","pathname":"/contact","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/it/about/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/it/about","isIndex":false,"type":"page","pattern":"^\\/it\\/about\\/?$","segments":[[{"content":"it","dynamic":false,"spread":false}],[{"content":"about","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/it/about.astro","pathname":"/it/about","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/it/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/it","isIndex":true,"type":"page","pattern":"^\\/it\\/?$","segments":[[{"content":"it","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/it/index.astro","pathname":"/it","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/nl/about/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/nl/about","isIndex":false,"type":"page","pattern":"^\\/nl\\/about\\/?$","segments":[[{"content":"nl","dynamic":false,"spread":false}],[{"content":"about","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/nl/about.astro","pathname":"/nl/about","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/nl/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/nl","isIndex":true,"type":"page","pattern":"^\\/nl\\/?$","segments":[[{"content":"nl","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/nl/index.astro","pathname":"/nl","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/privacy/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/privacy","isIndex":false,"type":"page","pattern":"^\\/privacy\\/?$","segments":[[{"content":"privacy","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/privacy.astro","pathname":"/privacy","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/services/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/services","isIndex":false,"type":"page","pattern":"^\\/services\\/?$","segments":[[{"content":"services","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/services.astro","pathname":"/services","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/terms/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/terms","isIndex":false,"type":"page","pattern":"^\\/terms\\/?$","segments":[[{"content":"terms","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/terms.astro","pathname":"/terms","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}},{"file":"file:///Users/richard/Website%20Development/tiber365/dist/index.html","links":[],"scripts":[],"styles":[],"routeData":{"route":"/","isIndex":true,"type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":true,"fallbackRoutes":[],"_meta":{"trailingSlash":"ignore"}}}],"site":"https://tiber365.it","base":"/","trailingSlash":"ignore","compressHTML":true,"componentMetadata":[["/Users/richard/Website Development/tiber365/src/pages/404.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/about.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/contact.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/index.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/privacy.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/services.astro",{"propagation":"none","containsHead":true}],["/Users/richard/Website Development/tiber365/src/pages/terms.astro",{"propagation":"none","containsHead":true}]],"renderers":[],"clientDirectives":[["idle","(()=>{var l=(o,t)=>{let i=async()=>{await(await o())()},e=typeof t.value==\"object\"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};\"requestIdleCallback\"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var s=(i,t)=>{let a=async()=>{await(await i())()};if(t.value){let e=matchMedia(t.value);e.matches?a():e.addEventListener(\"change\",a,{once:!0})}};(self.Astro||(self.Astro={})).media=s;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var l=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value==\"object\"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let a of e)if(a.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=l;window.dispatchEvent(new Event(\"astro:visible\"));})();"]],"entryModules":{"\u0000noop-middleware":"_noop-middleware.mjs","\u0000@astro-page:src/pages/404@_@astro":"pages/404.astro.mjs","\u0000@astro-page:src/pages/about@_@astro":"pages/about.astro.mjs","\u0000@astro-page:src/pages/contact@_@astro":"pages/contact.astro.mjs","\u0000@astro-page:src/pages/it/about@_@astro":"pages/it/about.astro.mjs","\u0000@astro-page:src/pages/it/index@_@astro":"pages/it.astro.mjs","\u0000@astro-page:src/pages/nl/about@_@astro":"pages/nl/about.astro.mjs","\u0000@astro-page:src/pages/nl/index@_@astro":"pages/nl.astro.mjs","\u0000@astro-page:src/pages/privacy@_@astro":"pages/privacy.astro.mjs","\u0000@astro-page:src/pages/services@_@astro":"pages/services.astro.mjs","\u0000@astro-page:src/pages/terms@_@astro":"pages/terms.astro.mjs","\u0000@astro-page:src/pages/index@_@astro":"pages/index.astro.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000@astrojs-manifest":"manifest_DZy5EIn6.mjs","/astro/hoisted.js?q=1":"_astro/hoisted.Gc4qN2dj.js","/astro/hoisted.js?q=0":"_astro/hoisted.BsMfRRdS.js","astro:scripts/before-hydration.js":""},"inlinedScripts":[],"assets":["/file:///Users/richard/Website%20Development/tiber365/dist/404.html","/file:///Users/richard/Website%20Development/tiber365/dist/about/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/contact/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/it/about/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/it/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/nl/about/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/nl/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/privacy/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/services/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/terms/index.html","/file:///Users/richard/Website%20Development/tiber365/dist/index.html"],"buildFormat":"directory","checkOrigin":false,"serverIslandNameMap":[],"key":"8SuZZEZON3dHsbz8KjG6uDVDzg5zFI9np3kFEC0SQCY=","experimentalEnvGetSecretEnabled":false});
|
|
|
|
export { manifest };
|