Add internationalization support with astro-i18next integration

- 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.
This commit is contained in:
becarta
2025-05-23 15:10:00 +02:00
parent 8a3507dce0
commit 3168826fa8
581 changed files with 88691 additions and 494 deletions

BIN
.DS_Store vendored

Binary file not shown.

57
astro-i18next.config.mjs Normal file
View File

@@ -0,0 +1,57 @@
/** @type {import('astro-i18next').AstroI18nextConfig} */
export default {
defaultLocale: "en",
locales: ["en", "nl", "it"],
namespaces: ["translation"],
defaultNamespace: "translation",
load: ["server", "client"],
i18nextServer: {
debug: true,
initImmediate: false,
supportedLngs: ["en", "nl", "it"],
fallbackLng: "en",
ns: ["translation"],
defaultNS: "translation",
resources: {
en: {
translation: () => import("../public/locales/en/translation.json")
},
nl: {
translation: () => import("../public/locales/nl/translation.json")
},
it: {
translation: () => import("../public/locales/it/translation.json")
}
}
},
i18nextClient: {
debug: false,
supportedLngs: ["en", "nl", "it"],
fallbackLng: "en",
ns: ["translation"],
defaultNS: "translation"
},
routes: {
en: {
about: 'about',
services: 'services',
contact: 'contact',
privacy: 'privacy',
terms: 'terms'
},
nl: {
about: 'over-ons',
services: 'diensten',
contact: 'contact',
privacy: 'privacy',
terms: 'voorwaarden'
},
it: {
about: 'chi-siamo',
services: 'servizi',
contact: 'contatti',
privacy: 'privacy',
terms: 'termini'
}
}
};

View File

@@ -1,11 +1,48 @@
import { defineConfig } from 'astro/config';
import tailwind from '@astrojs/tailwind';
import astroI18next from 'astro-i18next';
// https://astro.build/config
export default defineConfig({
site: 'https://tiber365.it',
integrations: [
tailwind(),
astroI18next({
defaultLocale: "en",
locales: ["en", "nl", "it"],
i18next: {
debug: true,
initImmediate: false,
supportedLngs: ["en", "nl", "it"],
fallbackLng: "en",
load: "all"
},
i18nextPlugins: { fsBackend: 'i18next-fs-backend' },
showDefaultLocale: true,
routes: {
en: {
about: 'about',
services: 'services',
contact: 'contact',
privacy: 'privacy',
terms: 'terms'
},
nl: {
about: 'over-ons',
services: 'diensten',
contact: 'contact',
privacy: 'privacy',
terms: 'voorwaarden'
},
it: {
about: 'chi-siamo',
services: 'servizi',
contact: 'contatti',
privacy: 'privacy',
terms: 'termini'
}
}
}),
],
output: 'static',
build: {

4
dist/404.html vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/_astro/about.Bh3L5Fru.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/_astro/about.ohV8mVtx.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/_astro/hoisted.BsMfRRdS.js vendored Normal file
View File

@@ -0,0 +1 @@
function r(){if(typeof window>"u")return;const e={threshold:.1,rootMargin:"0px 0px -50px 0px"},t=new IntersectionObserver(n=>{n.forEach(d=>{d.isIntersecting&&d.target.classList.add("in-view")})},e);return document.querySelectorAll(".animate-on-scroll").forEach(n=>t.observe(n)),t}function i(){return typeof localStorage<"u"&&localStorage.getItem("theme")?localStorage.getItem("theme"):window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function s(e){localStorage.setItem("theme",e),c(e)}function c(e){document.documentElement.setAttribute("data-theme",e);const t=document.querySelector('meta[name="theme-color"]');t&&t.setAttribute("content",e==="dark"?"#0f172a":"#ffffff")}function a(){const e=i();c(e),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{localStorage.getItem("theme")||c(t.matches?"dark":"light")})}function m(){const t=i()==="light"?"dark":"light";return s(t),t}document.addEventListener("DOMContentLoaded",()=>{a(),r()});document.addEventListener("DOMContentLoaded",()=>{const e=document.getElementById("mobile-menu-button"),t=document.getElementById("mobile-menu"),o=document.getElementById("mobile-menu-icon"),n=document.getElementById("mobile-close-icon");e&&t&&o&&n&&(e.addEventListener("click",()=>{const d=e.getAttribute("aria-expanded")==="true";e.setAttribute("aria-expanded",(!d).toString()),t.classList.toggle("hidden"),o.classList.toggle("hidden"),n.classList.toggle("hidden")}),document.addEventListener("click",d=>{!e.contains(d.target)&&!t.contains(d.target)&&(e.setAttribute("aria-expanded","false"),t.classList.add("hidden"),o.classList.remove("hidden"),n.classList.add("hidden"))}))});document.addEventListener("DOMContentLoaded",()=>{const e=document.getElementById("theme-toggle"),t=document.getElementById("theme-toggle-light-icon"),o=document.getElementById("theme-toggle-dark-icon");if(!e||!t||!o)return;function n(){i()==="dark"?(t.classList.add("hidden"),o.classList.remove("hidden")):(t.classList.remove("hidden"),o.classList.add("hidden"))}n(),e.addEventListener("click",()=>{m(),n()}),new MutationObserver(()=>{n()}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})});

1
dist/_astro/hoisted.Gc4qN2dj.js vendored Normal file
View File

@@ -0,0 +1 @@
import"./hoisted.BsMfRRdS.js";document.addEventListener("DOMContentLoaded",()=>{const t=document.getElementById("contact-form"),n=document.getElementById("submit-btn"),s=document.getElementById("submit-text"),d=document.getElementById("submit-spinner"),e=document.getElementById("form-message");t&&t.addEventListener("submit",async r=>{r.preventDefault(),n.disabled=!0,s.textContent="Sending...",d.classList.remove("hidden");try{await new Promise(o=>setTimeout(o,2e3)),e.className="mt-4 p-4 rounded-lg bg-green-50 border border-green-200 text-green-800",e.textContent="Message sent successfully! We'll get back to you soon.",e.classList.remove("hidden"),t.reset()}catch{e.className="mt-4 p-4 rounded-lg bg-red-50 border border-red-200 text-red-800",e.textContent="Failed to send message. Please try again.",e.classList.remove("hidden")}finally{n.disabled=!1,s.textContent="Send Message",d.classList.add("hidden")}})});

3
dist/_noop-middleware.mjs vendored Normal file
View File

@@ -0,0 +1,3 @@
const onRequest = (_, next) => next();
export { onRequest };

7
dist/_redirects vendored Normal file
View File

@@ -0,0 +1,7 @@
# Redirect language routes to root
/en/* / 301
/nl/* / 301
/it/* / 301
/en / 301
/nl / 301
/it / 301

30
dist/about/index.html vendored Normal file

File diff suppressed because one or more lines are too long

14
dist/chunks/CTA_CIVpts3M.mjs vendored Normal file
View File

@@ -0,0 +1,14 @@
import { c as createComponent, m as maybeRenderHead, a as renderTemplate } from './astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import 'clsx';
import { t } from './Footer_BFBz0LQo.mjs';
const $$CTA = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<section class="py-20 bg-gradient-to-br from-primary via-primary to-secondary text-primary-foreground relative overflow-hidden"> <!-- Background decoration --> <div class="absolute inset-0 opacity-10"> <div class="absolute top-10 left-10 w-32 h-32 rounded-full bg-white blur-2xl"></div> <div class="absolute bottom-10 right-10 w-48 h-48 rounded-full bg-white blur-3xl"></div> <div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-64 h-64 rounded-full bg-white blur-3xl"></div> </div> <div class="container-custom relative z-10"> <div class="text-center max-w-4xl mx-auto animate-on-scroll"> <!-- CTA heading --> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold mb-6"> ${t("cta.title")} </h2> <!-- CTA subtitle --> <p class="text-lg sm:text-xl mb-8 opacity-90 leading-relaxed"> ${t("cta.subtitle")} </p> <!-- CTA button --> <div class="flex flex-col sm:flex-row gap-4 justify-center items-center"> <a href="/contact" class="bg-background text-foreground hover:bg-background/90 px-8 py-4 text-lg font-semibold rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 inline-flex items-center group"> ${t("cta.button")} <svg class="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path> </svg> </a> <a href="tel:+391234567890" class="border-2 border-primary-foreground text-primary-foreground hover:bg-primary-foreground hover:text-primary px-8 py-4 text-lg font-semibold rounded-xl transition-all duration-300 hover:scale-105 inline-flex items-center">
Call Now
<svg class="h-5 w-5 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path> </svg> </a> </div> <!-- Contact info --> <div class="mt-8 opacity-80"> <p class="text-sm">
📧 info@tiber365.it | 📞 +39 123 456 7890
</p> </div> </div> </div> </section>`;
}, "/Users/richard/Website Development/tiber365/src/components/CTA.astro", void 0);
export { $$CTA as $ };

806
dist/chunks/Footer_BFBz0LQo.mjs vendored Normal file
View File

@@ -0,0 +1,806 @@
import { d as createAstro, c as createComponent, r as renderComponent, F as Fragment, a as renderTemplate, u as unescapeHTML, m as maybeRenderHead, s as spreadAttributes, b as addAttribute, e as renderHead, f as renderSlot } from './astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import i18next, { t as t$1 } from 'i18next';
/* empty css */
import 'clsx';
import '@proload/core';
import '@proload/plugin-tsm';
import { P, T } from './page-ssr_ChKiSmuh.mjs';
import localeEmoji from 'locale-emoji';
import ISO6991 from 'iso-639-1';
const SITE = {
title: "Tiber365",
description: "Professional IT services for freelancers and small businesses. Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
author: "Tiber365",
ogImage: "/images/og-image.jpg"};
const LANGUAGES = {
en: "English",
nl: "Nederlands",
it: "Italiano"
};
const NAVIGATION = [
{
label: "nav.home",
href: "/",
type: "internal"
},
{
label: "nav.services",
href: "/services",
type: "internal"
},
{
label: "nav.about",
href: "/about",
type: "internal"
},
{
label: "nav.blog",
href: "https://blog.tiber365.it",
type: "external"
},
{
label: "nav.support",
href: "https://support.tiber365.it",
type: "external"
}
];
const SERVICES = [
{
id: "microsoft365",
icon: "🏢",
titleKey: "services.microsoft365.title",
descriptionKey: "services.microsoft365.description",
features: [
"services.microsoft365.features.migrations",
"services.microsoft365.features.apps",
"services.microsoft365.features.teams",
"services.microsoft365.features.sharepoint",
"services.microsoft365.features.admin"
]
},
{
id: "management",
icon: "⚙️",
titleKey: "services.management.title",
descriptionKey: "services.management.description",
features: [
"services.management.features.automation",
"services.management.features.monitoring",
"services.management.features.maintenance",
"services.management.features.optimization"
]
},
{
id: "networking",
icon: "🌐",
titleKey: "services.networking.title",
descriptionKey: "services.networking.description",
features: [
"services.networking.features.ubiquiti",
"services.networking.features.infrastructure",
"services.networking.features.security",
"services.networking.features.monitoring"
]
},
{
id: "hosting",
icon: "🚀",
titleKey: "services.hosting.title",
descriptionKey: "services.hosting.description",
features: [
"services.hosting.features.webhosting",
"services.hosting.features.domains",
"services.hosting.features.ssl",
"services.hosting.features.backup"
]
},
{
id: "custom",
icon: "🛠️",
titleKey: "services.custom.title",
descriptionKey: "services.custom.description",
features: [
"services.custom.features.consultation",
"services.custom.features.development",
"services.custom.features.integration",
"services.custom.features.support"
]
}
];
const TESTIMONIALS = [
{
id: 1,
nameKey: "testimonials.1.name",
companyKey: "testimonials.1.company",
contentKey: "testimonials.1.content",
rating: 5
},
{
id: 2,
nameKey: "testimonials.2.name",
companyKey: "testimonials.2.company",
contentKey: "testimonials.2.content",
rating: 5
},
{
id: 3,
nameKey: "testimonials.3.name",
companyKey: "testimonials.3.company",
contentKey: "testimonials.3.content",
rating: 5
}
];
const interpolate = (i18nKey, referenceString, namespace = null) => {
const localizedString = t$1(i18nKey, { ns: namespace });
if (localizedString === i18nKey) {
console.warn(`WARNING(astro-i18next): missing translation key ${i18nKey}.`);
return referenceString;
}
const tagsRegex = /<([\w\d]+)([^>]*)>/gi;
const referenceStringMatches = referenceString.match(tagsRegex);
if (!referenceStringMatches) {
console.warn(
"WARNING(astro-i18next): default slot does not include any HTML tag to interpolate! You should use the `t` function directly."
);
return localizedString;
}
const referenceTags = [];
referenceStringMatches.forEach((tagNode) => {
const [, name, attributes] = tagsRegex.exec(tagNode);
referenceTags.push({ name, attributes });
tagsRegex.exec("");
});
let interpolatedString = localizedString;
for (let index = 0; index < referenceTags.length; index++) {
const referencedTag = referenceTags[index];
interpolatedString = interpolatedString.replaceAll(
`<${index}>`,
`<${referencedTag.name}${referencedTag.attributes}>`
);
interpolatedString = interpolatedString.replaceAll(
`</${index}>`,
`</${referencedTag.name}>`
);
}
return interpolatedString;
};
const createReferenceStringFromHTML = (html) => {
const allowedTags = ["strong", "br", "em", "i", "b"];
let forbiddenStrings = [];
if (i18next.options) {
forbiddenStrings = [
"keySeparator",
"nsSeparator",
"pluralSeparator",
"contextSeparator"
].map((key) => {
return {
key,
str: i18next.options[key]
};
}).filter(function(val) {
return typeof val !== "undefined";
});
}
const tagsRegex = /<([\w\d]+)([^>]*)>/gi;
const referenceStringMatches = html.match(tagsRegex);
if (!referenceStringMatches) {
console.warn(
"WARNING(astro-i18next): default slot does not include any HTML tag to interpolate! You should use the `t` function directly."
);
return html;
}
const referenceTags = [];
referenceStringMatches.forEach((tagNode) => {
const [, name, attributes] = tagsRegex.exec(tagNode);
referenceTags.push({ name, attributes });
tagsRegex.exec("");
});
let sanitizedString = html.replace(/\s+/g, " ").trim();
for (let index = 0; index < referenceTags.length; index++) {
const referencedTag = referenceTags[index];
if (allowedTags.includes(referencedTag.name) && referencedTag.attributes.trim().length === 0) {
continue;
}
sanitizedString = sanitizedString.replaceAll(
new RegExp(`<${referencedTag.name}[^>]*?\\s*\\/>`, "gi"),
`<${index}/>`
);
sanitizedString = sanitizedString.replaceAll(
`<${referencedTag.name}${referencedTag.attributes}>`,
`<${index}>`
);
sanitizedString = sanitizedString.replaceAll(
`</${referencedTag.name}>`,
`</${index}>`
);
}
for (let index = 0; index < forbiddenStrings.length; index++) {
const { key, str } = forbiddenStrings[index];
if (sanitizedString.includes(str)) {
console.warn(
`WARNING(astro-i18next): "${str}" was found in a <Trans> translation key, but it is also used as ${key}. Either explicitly set an i18nKey or change the value of ${key}.`
);
}
}
return sanitizedString;
};
const $$Astro$3 = createAstro("https://tiber365.it");
const $$Trans = createComponent(async ($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro$3, $$props, $$slots);
Astro2.self = $$Trans;
const { i18nKey, ns } = Astro2.props;
const referenceString = await Astro2.slots.render("default");
let key;
if (typeof i18nKey === "string") {
key = i18nKey;
} else {
key = createReferenceStringFromHTML(referenceString);
}
return renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": async ($$result2) => renderTemplate`${unescapeHTML(interpolate(key, referenceString, ns))}` })}`;
}, "/Users/richard/Website Development/tiber365/node_modules/astro-i18next/src/components/Trans.astro", void 0);
const $$Astro$2 = createAstro("https://tiber365.it");
const $$LanguageSelector = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro$2, $$props, $$slots);
Astro2.self = $$LanguageSelector;
const supportedLanguages = i18next.languages;
const currentLanguage = i18next.language;
const { pathname } = Astro2.url;
const { showFlag = false, languageMapping, ...attributes } = Astro2.props;
return renderTemplate`${maybeRenderHead()}<select onchange="location = this.value;"${spreadAttributes(attributes)}> ${supportedLanguages.map((supportedLanguage) => {
let value = P(pathname, supportedLanguage);
const flag = showFlag ? localeEmoji(supportedLanguage) + " " : "";
let nativeName = "";
if (languageMapping && languageMapping.hasOwnProperty(supportedLanguage)) {
nativeName = languageMapping[supportedLanguage];
} else {
nativeName = ISO6991.getNativeName(supportedLanguage);
}
const label = flag + nativeName;
return renderTemplate`<option${addAttribute(value, "value")}${addAttribute(supportedLanguage === currentLanguage, "selected")}> ${label} </option>`;
})} </select>`;
}, "/Users/richard/Website Development/tiber365/node_modules/astro-i18next/src/components/LanguageSelector.astro", void 0);
const $$Astro$1 = createAstro("https://tiber365.it");
const $$HeadHrefLangs = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro$1, $$props, $$slots);
Astro2.self = $$HeadHrefLangs;
const supportedLanguages = i18next.languages;
const currentUrl = Astro2.url.href;
return renderTemplate`${supportedLanguages.map((supportedLanguage) => renderTemplate`<link rel="alternate"${addAttribute(supportedLanguage, "hreflang")}${addAttribute(T(currentUrl, supportedLanguage), "href")}>`)}`;
}, "/Users/richard/Website Development/tiber365/node_modules/astro-i18next/src/components/HeadHrefLangs.astro", void 0);
const $$Astro = createAstro("https://tiber365.it");
const $$BaseLayout = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
Astro2.self = $$BaseLayout;
const {
title = SITE.title,
description = SITE.description,
image = SITE.ogImage,
keywords = ""
} = Astro2.props;
const lang = i18next.language || "en";
let canonicalURL;
let ogImageURL;
let twitterImageURL;
try {
const siteURL = Astro2.site || new URL("http://localhost:4321");
canonicalURL = new URL(Astro2.url.pathname, siteURL);
ogImageURL = new URL(image, siteURL);
twitterImageURL = new URL(image, siteURL);
} catch (error) {
const fallbackSite = "https://tiber365.it";
canonicalURL = new URL(Astro2.url?.pathname || "/", fallbackSite);
ogImageURL = new URL(image, fallbackSite);
twitterImageURL = new URL(image, fallbackSite);
}
const fullTitle = title === SITE.title ? title : `${title} | ${SITE.title}`;
return renderTemplate`<html${addAttribute(lang, "lang")} class="scroll-smooth"> <head><meta charset="UTF-8"><meta name="description"${addAttribute(description, "content")}><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator"${addAttribute(Astro2.generator, "content")}>${keywords && renderTemplate`<meta name="keywords"${addAttribute(keywords, "content")}>`}<!-- Canonical URL --><link rel="canonical"${addAttribute(canonicalURL, "href")}><!-- Primary Meta Tags --><title>${fullTitle}</title><meta name="title"${addAttribute(fullTitle, "content")}><meta name="description"${addAttribute(description, "content")}><meta name="author"${addAttribute(SITE.author, "content")}><!-- Prevent automatic language redirects --><meta name="google" content="notranslate"><meta http-equiv="Content-Language"${addAttribute(lang, "content")}><!-- Theme Color --><meta name="theme-color" content="#ffffff"><meta name="msapplication-TileColor" content="#3b82f6"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url"${addAttribute(canonicalURL, "content")}><meta property="og:title"${addAttribute(fullTitle, "content")}><meta property="og:description"${addAttribute(description, "content")}><meta property="og:image"${addAttribute(ogImageURL, "content")}><meta property="og:site_name"${addAttribute(SITE.title, "content")}><meta property="og:locale"${addAttribute(lang === "en" ? "en_US" : lang === "nl" ? "nl_NL" : "it_IT", "content")}><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url"${addAttribute(canonicalURL, "content")}><meta property="twitter:title"${addAttribute(fullTitle, "content")}><meta property="twitter:description"${addAttribute(description, "content")}><meta property="twitter:image"${addAttribute(twitterImageURL, "content")}><!-- Favicons --><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="manifest" href="/manifest.json"><!-- Language alternates -->${renderComponent($$result, "HeadHrefLangs", $$HeadHrefLangs, {})}${renderHead()}</head> <body class="min-h-screen bg-background text-foreground"> ${renderSlot($$result, $$slots["default"])} <!-- Initialize animations --> </body> </html>`;
}, "/Users/richard/Website Development/tiber365/src/layouts/BaseLayout.astro", void 0);
const translations = {
en: {
"meta": {
"title": "Tiber365 - Professional IT Services",
"description": "Professional IT services for freelancers and small businesses. Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
"keywords": "IT services, Microsoft 365, networking, web hosting, automation, small business IT"
},
"nav": {
"home": "Home",
"services": "Services",
"about": "About",
"contact": "Contact",
"blog": "Blog",
"support": "Support",
"language": "Language",
"theme": {
"toggle": "Toggle theme"
}
},
"hero": {
"title": "Professional IT Services for Your Business",
"subtitle": "Empowering freelancers and small businesses with reliable Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
"trusted": "Trusted by businesses across Italy",
"cta": {
"primary": "Get Started Today",
"secondary": "View Our Services"
}
},
"services": {
"title": "Our Services",
"subtitle": "Comprehensive IT solutions tailored for small businesses and freelancers",
"viewAll": "View All Services",
"microsoft365": {
"title": "Microsoft 365 Support",
"description": "Complete Microsoft 365 setup, migration, and ongoing support for your business.",
"features": {
"migrations": "Email & data migrations",
"apps": "Office apps configuration",
"teams": "Microsoft Teams setup",
"sharepoint": "SharePoint collaboration",
"admin": "Admin portal management"
}
},
"management": {
"title": "Full M365 Management",
"description": "Let us handle your entire Microsoft 365 environment with proactive management.",
"features": {
"automation": "Automated workflows",
"monitoring": "24/7 system monitoring",
"maintenance": "Regular maintenance",
"optimization": "Performance optimization"
}
},
"networking": {
"title": "Networking & Infrastructure",
"description": "Professional networking solutions using Ubiquiti and UniFi equipment.",
"features": {
"ubiquiti": "Ubiquiti/UniFi specialists",
"infrastructure": "Network infrastructure",
"security": "Network security",
"monitoring": "Traffic monitoring"
}
},
"hosting": {
"title": "Web Hosting & Management",
"description": "Reliable web hosting with full management and maintenance included.",
"features": {
"webhosting": "Reliable web hosting",
"domains": "Domain management",
"ssl": "SSL certificates",
"backup": "Automated backups"
}
},
"custom": {
"title": "Custom IT Projects",
"description": "Tailored IT solutions designed specifically for your business needs.",
"features": {
"consultation": "IT consultation",
"development": "Custom development",
"integration": "System integration",
"support": "Ongoing support"
}
}
},
"testimonials": {
"title": "What Our Clients Say",
"subtitle": "Don't just take our word for it - see what our satisfied clients have to say",
"1": {
"name": "Marco Rossi",
"company": "Freelance Designer",
"content": "Tiber365 transformed our Microsoft 365 setup. Professional service and excellent support!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Small Business Owner",
"content": "Their networking solutions are top-notch. Our office runs smoothly thanks to their expertise."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consultant",
"content": "Reliable web hosting and great customer service. Highly recommend Tiber365!"
}
},
"about": {
"title": "About Us",
"subtitle": "Your trusted IT partner",
"description": "We specialize in providing comprehensive IT services to freelancers and small businesses.",
"mission": "Our mission is to make technology work for you, not against you.",
"experience": "Years of Experience",
"clients": "Happy Clients",
"projects": "Projects Completed"
},
"contact": {
"title": "Get In Touch",
"subtitle": "Ready to transform your IT infrastructure? Let's talk!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Rome, Italy"
},
"form": {
"name": "Name",
"email": "Email",
"company": "Company",
"service": "Service",
"message": "Message",
"send": "Send Message"
}
},
"cta": {
"title": "Ready to Get Started?",
"subtitle": "Let's discuss how we can help transform your IT infrastructure.",
"button": "Contact Us Today"
},
"footer": {
"description": "Professional IT services for freelancers and small businesses.",
"copyright": "© 2024 Tiber365. All rights reserved.",
"links": {
"contact": "Contact",
"privacy": "Privacy Policy",
"terms": "Terms of Service"
}
},
"404": {
"title": "Page Not Found",
"description": "Sorry, we couldn't find the page you're looking for.",
"button": "Go back home"
}
},
nl: {
"meta": {
"title": "Tiber365 - Professionele IT Services",
"description": "Professionele IT-diensten voor freelancers en kleine bedrijven. Microsoft 365 ondersteuning, netwerkoplossingen, webhosting en aangepaste IT-projecten.",
"keywords": "IT diensten, Microsoft 365, netwerken, webhosting, automatisering, kleine bedrijven IT"
},
"nav": {
"home": "Home",
"services": "Diensten",
"about": "Over Ons",
"contact": "Contact",
"blog": "Blog",
"support": "Ondersteuning",
"language": "Taal",
"theme": {
"toggle": "Thema wisselen"
}
},
"hero": {
"title": "Professionele IT Services voor Uw Bedrijf",
"subtitle": "Ondersteuning van freelancers en kleine bedrijven met betrouwbare Microsoft 365 ondersteuning, netwerkoplossingen, webhosting en aangepaste IT-projecten.",
"trusted": "Vertrouwd door bedrijven in heel Italië",
"cta": {
"primary": "Begin Vandaag",
"secondary": "Bekijk Onze Diensten"
}
},
"services": {
"title": "Onze Diensten",
"subtitle": "Uitgebreide IT-oplossingen op maat voor kleine bedrijven en freelancers",
"viewAll": "Alle Diensten Bekijken",
"microsoft365": {
"title": "Microsoft 365 Ondersteuning",
"description": "Complete Microsoft 365 installatie, migratie en doorlopende ondersteuning.",
"features": {
"migrations": "E-mail & data migraties",
"apps": "Office apps configuratie",
"teams": "Microsoft Teams installatie",
"sharepoint": "SharePoint samenwerking",
"admin": "Beheerportaal management"
}
},
"management": {
"title": "Volledig M365 Beheer",
"description": "Laat ons uw volledige Microsoft 365 omgeving beheren met proactief management.",
"features": {
"automation": "Geautomatiseerde workflows",
"monitoring": "24/7 systeembewaking",
"maintenance": "Regelmatig onderhoud",
"optimization": "Prestatie optimalisatie"
}
},
"networking": {
"title": "Netwerken & Infrastructuur",
"description": "Professionele netwerkoplossingen met Ubiquiti en UniFi apparatuur.",
"features": {
"ubiquiti": "Ubiquiti/UniFi specialisten",
"infrastructure": "Netwerkinfrastructuur",
"security": "Netwerkbeveiliging",
"monitoring": "Verkeer monitoring"
}
},
"hosting": {
"title": "Webhosting & Beheer",
"description": "Betrouwbare webhosting met volledig beheer en onderhoud inbegrepen.",
"features": {
"webhosting": "Betrouwbare webhosting",
"domains": "Domeinbeheer",
"ssl": "SSL certificaten",
"backup": "Geautomatiseerde backups"
}
},
"custom": {
"title": "Aangepaste IT Projecten",
"description": "Op maat gemaakte IT-oplossingen speciaal ontworpen voor uw bedrijfsbehoeften.",
"features": {
"consultation": "IT consultatie",
"development": "Aangepaste ontwikkeling",
"integration": "Systeemintegratie",
"support": "Doorlopende ondersteuning"
}
}
},
"testimonials": {
"title": "Wat Onze Klanten Zeggen",
"subtitle": "Geloof ons niet zomaar - zie wat onze tevreden klanten te zeggen hebben",
"1": {
"name": "Marco Rossi",
"company": "Freelance Designer",
"content": "Tiber365 heeft onze Microsoft 365 installatie getransformeerd. Professionele service en uitstekende ondersteuning!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Kleine Bedrijfseigenaar",
"content": "Hun netwerkoplossingen zijn eersteklas. Ons kantoor draait soepel dankzij hun expertise."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consultant",
"content": "Betrouwbare webhosting en geweldige klantenservice. Beveel Tiber365 ten zeerste aan!"
}
},
"about": {
"title": "Over Ons",
"subtitle": "Uw vertrouwde IT-partner",
"description": "Wij zijn gespecialiseerd in het leveren van uitgebreide IT-diensten aan freelancers en kleine bedrijven.",
"mission": "Onze missie is om technologie voor u te laten werken, niet tegen u.",
"experience": "Jaren Ervaring",
"clients": "Tevreden Klanten",
"projects": "Voltooide Projecten"
},
"contact": {
"title": "Neem Contact Op",
"subtitle": "Klaar om uw IT-infrastructuur te transformeren? Laten we praten!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Rome, Italië"
},
"form": {
"name": "Naam",
"email": "E-mail",
"company": "Bedrijf",
"service": "Dienst",
"message": "Bericht",
"send": "Bericht Versturen"
}
},
"cta": {
"title": "Klaar om te Beginnen?",
"subtitle": "Laten we bespreken hoe wij uw IT-infrastructuur kunnen transformeren.",
"button": "Neem Vandaag Contact Op"
},
"footer": {
"description": "Professionele IT-diensten voor freelancers en kleine bedrijven.",
"copyright": "© 2024 Tiber365. Alle rechten voorbehouden.",
"links": {
"contact": "Contact",
"privacy": "Privacybeleid",
"terms": "Servicevoorwaarden"
}
},
"404": {
"title": "Pagina Niet Gevonden",
"description": "Sorry, we konden de pagina die u zoekt niet vinden.",
"button": "Ga terug naar home"
}
},
it: {
"meta": {
"title": "Tiber365 - Servizi IT Professionali",
"description": "Servizi IT professionali per freelancer e piccole imprese. Supporto Microsoft 365, soluzioni di rete, hosting web e progetti IT personalizzati.",
"keywords": "servizi IT, Microsoft 365, networking, web hosting, automazione, IT piccole imprese"
},
"nav": {
"home": "Home",
"services": "Servizi",
"about": "Chi Siamo",
"contact": "Contatti",
"blog": "Blog",
"support": "Supporto",
"language": "Lingua",
"theme": {
"toggle": "Cambia tema"
}
},
"hero": {
"title": "Servizi IT Professionali per la Tua Azienda",
"subtitle": "Supportiamo freelancer e piccole imprese con supporto Microsoft 365 affidabile, soluzioni di rete, hosting web e progetti IT personalizzati.",
"trusted": "Fidato dalle aziende in tutta Italia",
"cta": {
"primary": "Inizia Oggi",
"secondary": "Vedi i Nostri Servizi"
}
},
"services": {
"title": "I Nostri Servizi",
"subtitle": "Soluzioni IT complete su misura per piccole imprese e freelancer",
"viewAll": "Vedi Tutti i Servizi",
"microsoft365": {
"title": "Supporto Microsoft 365",
"description": "Installazione completa, migrazione e supporto continuo per Microsoft 365.",
"features": {
"migrations": "Migrazioni email e dati",
"apps": "Configurazione app Office",
"teams": "Configurazione Microsoft Teams",
"sharepoint": "Collaborazione SharePoint",
"admin": "Gestione portale amministratore"
}
},
"management": {
"title": "Gestione Completa M365",
"description": "Lascia che ci occupiamo dell'intero ambiente Microsoft 365 con gestione proattiva.",
"features": {
"automation": "Flussi di lavoro automatizzati",
"monitoring": "Monitoraggio sistema 24/7",
"maintenance": "Manutenzione regolare",
"optimization": "Ottimizzazione prestazioni"
}
},
"networking": {
"title": "Networking e Infrastruttura",
"description": "Soluzioni di rete professionali con apparecchiature Ubiquiti e UniFi.",
"features": {
"ubiquiti": "Specialisti Ubiquiti/UniFi",
"infrastructure": "Infrastruttura di rete",
"security": "Sicurezza di rete",
"monitoring": "Monitoraggio traffico"
}
},
"hosting": {
"title": "Web Hosting e Gestione",
"description": "Hosting web affidabile con gestione completa e manutenzione inclusa.",
"features": {
"webhosting": "Hosting web affidabile",
"domains": "Gestione domini",
"ssl": "Certificati SSL",
"backup": "Backup automatizzati"
}
},
"custom": {
"title": "Progetti IT Personalizzati",
"description": "Soluzioni IT su misura progettate specificamente per le tue esigenze aziendali.",
"features": {
"consultation": "Consulenza IT",
"development": "Sviluppo personalizzato",
"integration": "Integrazione sistemi",
"support": "Supporto continuo"
}
}
},
"testimonials": {
"title": "Cosa Dicono i Nostri Clienti",
"subtitle": "Non prendere solo la nostra parola - vedi cosa hanno da dire i nostri clienti soddisfatti",
"1": {
"name": "Marco Rossi",
"company": "Designer Freelance",
"content": "Tiber365 ha trasformato la nostra configurazione Microsoft 365. Servizio professionale e supporto eccellente!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Proprietaria Piccola Impresa",
"content": "Le loro soluzioni di rete sono di prim'ordine. Il nostro ufficio funziona perfettamente grazie alla loro competenza."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consulente",
"content": "Hosting web affidabile e ottimo servizio clienti. Raccomando vivamente Tiber365!"
}
},
"about": {
"title": "Chi Siamo",
"subtitle": "Il tuo partner IT di fiducia",
"description": "Siamo specializzati nel fornire servizi IT completi a freelancer e piccole imprese.",
"mission": "La nostra missione è far sì che la tecnologia lavori per te, non contro di te.",
"experience": "Anni di Esperienza",
"clients": "Clienti Soddisfatti",
"projects": "Progetti Completati"
},
"contact": {
"title": "Contattaci",
"subtitle": "Pronto a trasformare la tua infrastruttura IT? Parliamone!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Roma, Italia"
},
"form": {
"name": "Nome",
"email": "Email",
"company": "Azienda",
"service": "Servizio",
"message": "Messaggio",
"send": "Invia Messaggio"
}
},
"cta": {
"title": "Pronto per Iniziare?",
"subtitle": "Discutiamo di come possiamo aiutare a trasformare la tua infrastruttura IT.",
"button": "Contattaci Oggi"
},
"footer": {
"description": "Servizi IT professionali per freelancer e piccole imprese.",
"copyright": "© 2024 Tiber365. Tutti i diritti riservati.",
"links": {
"contact": "Contatti",
"privacy": "Privacy Policy",
"terms": "Termini di Servizio"
}
},
"404": {
"title": "Pagina Non Trovata",
"description": "Spiacenti, non siamo riusciti a trovare la pagina che stai cercando.",
"button": "Torna alla home"
}
}
};
const SUPPORTED_LOCALES = ["en", "nl", "it"];
function getCurrentLocaleFromStorage() {
if (typeof window !== "undefined") {
try {
const savedLocale = localStorage.getItem("tiber365-locale");
if (savedLocale && SUPPORTED_LOCALES.includes(savedLocale)) {
return savedLocale;
}
} catch (error) {
console.warn("Error accessing localStorage:", error);
}
}
return "en";
}
function t(key, locale) {
try {
const targetLocale = locale || getCurrentLocaleFromStorage();
const keys = key.split(".");
let value = translations[targetLocale];
for (const k of keys) {
value = value?.[k];
if (value === void 0) {
console.warn(`Translation missing for key "${key}" in locale "${targetLocale}"`);
break;
}
}
if (!value && targetLocale !== "en") {
console.warn(`Falling back to English for key "${key}"`);
value = t(key, "en");
}
return value || key;
} catch (error) {
console.error(`Translation error for key "${key}":`, error);
return key;
}
}
const $$ThemeToggle = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<button id="theme-toggle" class="inline-flex items-center justify-center p-2 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent focus:outline-none focus:ring-2 focus:ring-primary"${addAttribute(t("nav.theme.toggle"), "aria-label")}${addAttribute(t("nav.theme.toggle"), "title")}> <!-- Sun icon (light mode) --> <svg id="theme-toggle-light-icon" class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" clip-rule="evenodd"></path> </svg> <!-- Moon icon (dark mode) --> <svg id="theme-toggle-dark-icon" class="h-5 w-5 hidden" fill="currentColor" viewBox="0 0 20 20"> <path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path> </svg> </button> `;
}, "/Users/richard/Website Development/tiber365/src/components/ThemeToggle.astro", void 0);
const $$LanguageSwitcher = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<div class="relative inline-block text-left" data-astro-cid-a2mxz4y6> ${renderComponent($$result, "LanguageSelector", $$LanguageSelector, { "class": "inline-flex items-center justify-center p-2 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent focus:outline-none focus:ring-2 focus:ring-primary", "showFlag": true, "languageMapping": LANGUAGES, "data-astro-cid-a2mxz4y6": true })} </div> `;
}, "/Users/richard/Website Development/tiber365/src/components/LanguageSwitcher.astro", void 0);
const $$Header = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<header class="sticky top-0 z-50 w-full border-b border-border/40 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60"> <nav class="container-custom"> <div class="flex h-16 items-center justify-between"> <!-- Logo --> <div class="flex items-center"> <a href="/" class="flex items-center space-x-2"> <div class="h-8 w-8 flex items-center justify-center"> <img src="/images/TIBER365.png" alt="Tiber365 Logo" class="h-6 w-6 object-contain"> </div> <span class="font-display font-bold text-xl text-foreground">Tiber365</span> </a> </div> <!-- Desktop Navigation --> <div class="hidden md:flex items-center space-x-6"> ${NAVIGATION.map((item) => renderTemplate`<a${addAttribute(item.href, "href")}${addAttribute(item.type === "external" ? "_blank" : void 0, "target")}${addAttribute(item.type === "external" ? "noopener noreferrer" : void 0, "rel")} class="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors relative group"> ${t(item.label)} ${item.type === "external" && renderTemplate`<svg class="inline h-3 w-3 ml-1 opacity-70" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg>`} <span class="absolute inset-x-0 -bottom-1 h-0.5 bg-primary scale-x-0 group-hover:scale-x-100 transition-transform origin-left"></span> </a>`)} </div> <!-- Theme Toggle & Language Switcher --> <div class="flex items-center space-x-4"> ${renderComponent($$result, "LanguageSwitcher", $$LanguageSwitcher, {})} ${renderComponent($$result, "ThemeToggle", $$ThemeToggle, {})} <!-- Mobile Menu Button --> <button id="mobile-menu-button" class="md:hidden inline-flex items-center justify-center p-2 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent focus:outline-none focus:ring-2 focus:ring-primary" aria-expanded="false" aria-label="Toggle mobile menu"> <svg id="mobile-menu-icon" class="h-6 w-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path> </svg> <svg id="mobile-close-icon" class="h-6 w-6 hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </div> </div> <!-- Mobile Navigation --> <div id="mobile-menu" class="md:hidden hidden border-t border-border"> <div class="px-2 pt-2 pb-3 space-y-1"> ${NAVIGATION.map((item) => renderTemplate`<a${addAttribute(item.href, "href")}${addAttribute(item.type === "external" ? "_blank" : void 0, "target")}${addAttribute(item.type === "external" ? "noopener noreferrer" : void 0, "rel")} class="block px-3 py-2 text-base font-medium text-muted-foreground hover:text-foreground hover:bg-accent rounded-md transition-colors"> ${t(item.label)} ${item.type === "external" && renderTemplate`<svg class="inline h-4 w-4 ml-1 opacity-70" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg>`} </a>`)} </div> </div> </nav> </header> `;
}, "/Users/richard/Website Development/tiber365/src/components/Header.astro", void 0);
const $$Footer = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<footer class="bg-secondary-900 text-secondary-100 pt-16 pb-8"> <div class="container-custom"> <!-- Main footer content --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 mb-8"> <!-- Company info --> <div class="lg:col-span-2"> <!-- Logo --> <div class="flex items-center space-x-2 mb-4"> <div class="h-8 w-8 flex items-center justify-center"> <img src="/images/TIBER365.png" alt="Tiber365 Logo" class="h-6 w-6 object-contain"> </div> <span class="font-display font-bold text-xl text-white">Tiber365</span> </div> <!-- Description --> <p class="text-secondary-300 mb-6 max-w-md leading-relaxed"> ${t("footer.description")} </p> <!-- Contact info --> <div class="space-y-2"> <div class="flex items-center text-secondary-300"> <svg class="h-5 w-5 mr-3 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path> </svg> ${t("contact.info.email")} </div> <div class="flex items-center text-secondary-300"> <svg class="h-5 w-5 mr-3 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path> </svg> ${t("contact.info.phone")} </div> <div class="flex items-center text-secondary-300"> <svg class="h-5 w-5 mr-3 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path> </svg> ${t("contact.info.address")} </div> </div> </div> <!-- Quick Links --> <div> <h3 class="font-semibold text-white mb-4">Quick Links</h3> <ul class="space-y-2"> ${NAVIGATION.filter((item) => item.type === "internal").map((item) => renderTemplate`<li> <a${addAttribute(item.href, "href")} class="text-secondary-300 hover:text-primary transition-colors"> ${t(item.label)} </a> </li>`)} <li> <a href="/contact" class="text-secondary-300 hover:text-primary transition-colors"> ${t("footer.links.contact")} </a> </li> </ul> </div> <!-- External Links --> <div> <h3 class="font-semibold text-white mb-4">Resources</h3> <ul class="space-y-2"> ${NAVIGATION.filter((item) => item.type === "external").map((item) => renderTemplate`<li> <a${addAttribute(item.href, "href")} target="_blank" rel="noopener noreferrer" class="text-secondary-300 hover:text-primary transition-colors inline-flex items-center"> ${t(item.label)} <svg class="h-3 w-3 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg> </a> </li>`)} <li> <a href="/privacy" class="text-secondary-300 hover:text-primary transition-colors"> ${t("footer.links.privacy")} </a> </li> <li> <a href="/terms" class="text-secondary-300 hover:text-primary transition-colors"> ${t("footer.links.terms")} </a> </li> </ul> </div> </div> <!-- Footer bottom --> <div class="border-t border-secondary-800 pt-8"> <div class="flex flex-col md:flex-row justify-between items-center"> <!-- Copyright --> <p class="text-secondary-400 text-sm"> ${t("footer.copyright")} </p> <!-- Social links placeholder --> <div class="flex items-center space-x-4 mt-4 md:mt-0"> <a href="https://blog.tiber365.it" target="_blank" rel="noopener noreferrer" class="text-secondary-400 hover:text-primary transition-colors" aria-label="Blog"> <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"> <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"></path> </svg> </a> <a href="https://support.tiber365.it" target="_blank" rel="noopener noreferrer" class="text-secondary-400 hover:text-primary transition-colors" aria-label="Support Portal"> <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"> <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path> </svg> </a> </div> </div> </div> </div> </footer>`;
}, "/Users/richard/Website Development/tiber365/src/components/Footer.astro", void 0);
export { $$BaseLayout as $, SERVICES as S, TESTIMONIALS as T, $$Header as a, $$Footer as b, $$Trans as c, t };

1609
dist/chunks/astro/server_DJC9Xx9K.mjs vendored Normal file

File diff suppressed because it is too large Load Diff

3
dist/chunks/astro_CLp8lNUU.mjs vendored Normal file
View File

@@ -0,0 +1,3 @@
import 'kleur/colors';
import './astro/server_DJC9Xx9K.mjs';
import 'clsx';

64
dist/chunks/page-ssr_ChKiSmuh.mjs vendored Normal file
View File

@@ -0,0 +1,64 @@
/* empty css */
import i18next from 'i18next';
import fsBackend from 'i18next-fs-backend';
import module2 from 'module';
import path2 from 'path';
import * as url2 from 'url';
import '@proload/core';
import '@proload/plugin-tsm';
module2.createRequire(import.meta.url);
const __filename = url2.fileURLToPath(import.meta.url);
path2.dirname(__filename);
var g = { config: { defaultLocale: "cimode", locales: [], namespaces: "translation", defaultNamespace: "translation", load: ["server"], routes: {}, flatRoutes: {}, showDefaultLocale: false, trailingSlash: "ignore", resourcesBasePath: "/locales" } }, A = (e) => {
let r = {};
for (let n in e) n === "routes" && (r = y(e[n])), g.config[n] = e[n];
g.config.flatRoutes = r;
}, y = (e, r = [], n = [], s = null) => {
let o = s || {};
for (let t in e) if (typeof e[t] == "object" && e[t] !== null) y(e[t], [...r, t], [...n, Object.prototype.hasOwnProperty.call(e[t], "index") ? e[t].index : t], o);
else {
let l = "/" + r.join("/"), i = "/" + n.join("/");
t === "index" ? (o[l] = i, l += "/" + t, i += "/" + t, o[l] = i) : (l += "/" + t, i += "/" + e[t], o[l] = i);
}
return o;
};
var m = (e, r) => {
if (e === "/") return e;
switch (r) {
case "always":
return e.endsWith("/") ? e : e + "/";
case "never":
return e.replace(/\/$/, "");
default:
return e;
}
}, P = (e = "/", r = null, n = "/") => {
r || (r = i18next.language);
let s = e.split("/").filter((f) => f !== ""), o = n.split("/").filter((f) => f !== "");
JSON.stringify(s).startsWith(JSON.stringify(o).replace(/]+$/, "")) && s.splice(0, o.length), e = s.length === 0 ? "" : s.join("/"), n = o.length === 0 ? "/" : "/" + o.join("/") + "/";
let { flatRoutes: t, showDefaultLocale: l, defaultLocale: i, locales: a, trailingSlash: c } = g.config;
if (!a.includes(r)) return console.warn(`WARNING(astro-i18next): "${r}" locale is not supported, add it to the locales in your astro config.`), m(`${n}${e}`, c);
if (s.length === 0) return m(l ? `${n}${r}` : r === i ? n : `${n}${r}`, c);
if (r === i) {
let f = Object.keys(t).find((d) => t[d] === "/" + e);
typeof f < "u" && (s = f.split("/").filter((d) => d !== ""));
}
for (let f of a) if (s[0] === f) {
s.shift();
break;
}
(l || r !== i) && (s = [r, ...s]);
let u = n + s.join("/");
return Object.prototype.hasOwnProperty.call(t, u.replace(/\/$/, "")) ? m(t[u.replace(/\/$/, "")], c) : m(u, c);
}, T = (e, r = null, n = "/") => {
let [s, , o, ...t] = e.split("/");
return s + "//" + o + P(t.join("/"), r, n);
};
function fe(e) {
A(e);
}
i18next.use(fsBackend).init({"supportedLngs": ["cimode",],"fallbackLng": ["cimode",],"ns": "translation","defaultNS": "translation","initImmediate": false,"backend": {"loadPath": "/Users/richard/Website%20Development/tiber365/public/locales/{{lng}}/{{ns}}.json",},});fe({"defaultLocale": "cimode","locales": ["cimode",],"namespaces": "translation","defaultNamespace": "translation","load": ["server",],"routes": {},"flatRoutes": {},"showDefaultLocale": false,"trailingSlash": "ignore","resourcesBasePath": "/locales",});
export { P, T };

7
dist/contact/index.html vendored Normal file

File diff suppressed because one or more lines are too long

6
dist/favicon.svg vendored Normal file
View File

@@ -0,0 +1,6 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="24" height="24" fill="#3b82f6"/>
<path d="M12 2L2 7L12 12L22 7L12 2Z" fill="white"/>
<path d="M2 17L12 22L22 17" fill="white" opacity="0.8"/>
<path d="M2 12L12 17L22 12" fill="white" opacity="0.6"/>
</svg>

After

Width:  |  Height:  |  Size: 288 B

BIN
dist/images/TIBER365.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

148
dist/locales/en/translation.json vendored Normal file
View File

@@ -0,0 +1,148 @@
{
"meta": {
"title": "Tiber365 - Professional IT Services",
"description": "Professional IT services for freelancers and small businesses. Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
"keywords": "IT services, Microsoft 365, networking, web hosting, automation, small business IT"
},
"nav": {
"home": "Home",
"services": "Services",
"about": "About",
"contact": "Contact",
"blog": "Blog",
"support": "Support",
"language": "Language",
"theme": {
"toggle": "Toggle theme"
}
},
"hero": {
"title": "Professional IT Services for Your Business",
"subtitle": "Empowering freelancers and small businesses with reliable Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
"trusted": "Trusted by businesses across Italy",
"cta": {
"primary": "Get Started Today",
"secondary": "View Our Services"
}
},
"services": {
"title": "Our Services",
"subtitle": "Comprehensive IT solutions tailored for small businesses and freelancers",
"viewAll": "View All Services",
"microsoft365": {
"title": "Microsoft 365 Support",
"description": "Complete Microsoft 365 setup, migration, and ongoing support for your business.",
"features": {
"migrations": "Email & data migrations",
"apps": "Office apps configuration",
"teams": "Microsoft Teams setup",
"sharepoint": "SharePoint collaboration",
"admin": "Admin portal management"
}
},
"management": {
"title": "Full M365 Management",
"description": "Let us handle your entire Microsoft 365 environment with proactive management.",
"features": {
"automation": "Automated workflows",
"monitoring": "24/7 system monitoring",
"maintenance": "Regular maintenance",
"optimization": "Performance optimization"
}
},
"networking": {
"title": "Networking & Infrastructure",
"description": "Professional networking solutions using Ubiquiti and UniFi equipment.",
"features": {
"ubiquiti": "Ubiquiti/UniFi specialists",
"infrastructure": "Network infrastructure",
"security": "Network security",
"monitoring": "Traffic monitoring"
}
},
"hosting": {
"title": "Web Hosting & Management",
"description": "Reliable web hosting with full management and maintenance included.",
"features": {
"webhosting": "Reliable web hosting",
"domains": "Domain management",
"ssl": "SSL certificates",
"backup": "Automated backups"
}
},
"custom": {
"title": "Custom IT Projects",
"description": "Tailored IT solutions designed specifically for your business needs.",
"features": {
"consultation": "IT consultation",
"development": "Custom development",
"integration": "System integration",
"support": "Ongoing support"
}
}
},
"testimonials": {
"title": "What Our Clients Say",
"subtitle": "Don't just take our word for it - see what our satisfied clients have to say",
"1": {
"name": "Marco Rossi",
"company": "Freelance Designer",
"content": "Tiber365 transformed our Microsoft 365 setup. Professional service and excellent support!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Small Business Owner",
"content": "Their networking solutions are top-notch. Our office runs smoothly thanks to their expertise."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consultant",
"content": "Reliable web hosting and great customer service. Highly recommend Tiber365!"
}
},
"about": {
"title": "About Us",
"subtitle": "Your trusted IT partner",
"description": "We specialize in providing comprehensive IT services to freelancers and small businesses.",
"mission": "Our mission is to make technology work for you, not against you.",
"experience": "Years of Experience",
"clients": "Happy Clients",
"projects": "Projects Completed"
},
"contact": {
"title": "Get In Touch",
"subtitle": "Ready to transform your IT infrastructure? Let's talk!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Rome, Italy"
},
"form": {
"name": "Name",
"email": "Email",
"company": "Company",
"service": "Service",
"message": "Message",
"send": "Send Message"
}
},
"cta": {
"title": "Ready to Get Started?",
"subtitle": "Let's discuss how we can help transform your IT infrastructure.",
"button": "Contact Us Today"
},
"footer": {
"description": "Professional IT services for freelancers and small businesses.",
"copyright": "© 2024 Tiber365. All rights reserved.",
"links": {
"contact": "Contact",
"privacy": "Privacy Policy",
"terms": "Terms of Service"
}
},
"404": {
"title": "Page Not Found",
"description": "Sorry, we couldn't find the page you're looking for.",
"button": "Go back home"
}
}

148
dist/locales/it/translation.json vendored Normal file
View File

@@ -0,0 +1,148 @@
{
"meta": {
"title": "Tiber365 - Servizi IT Professionali",
"description": "Servizi IT professionali per freelancer e piccole imprese. Supporto Microsoft 365, soluzioni di rete, hosting web e progetti IT personalizzati.",
"keywords": "servizi IT, Microsoft 365, networking, web hosting, automazione, IT piccole imprese"
},
"nav": {
"home": "Home",
"services": "Servizi",
"about": "Chi Siamo",
"contact": "Contatti",
"blog": "Blog",
"support": "Supporto",
"language": "Lingua",
"theme": {
"toggle": "Cambia tema"
}
},
"hero": {
"title": "Servizi IT Professionali per la Tua Azienda",
"subtitle": "Supportiamo freelancer e piccole imprese con supporto Microsoft 365 affidabile, soluzioni di rete, hosting web e progetti IT personalizzati.",
"trusted": "Fidato dalle aziende in tutta Italia",
"cta": {
"primary": "Inizia Oggi",
"secondary": "Vedi i Nostri Servizi"
}
},
"services": {
"title": "I Nostri Servizi",
"subtitle": "Soluzioni IT complete su misura per piccole imprese e freelancer",
"viewAll": "Vedi Tutti i Servizi",
"microsoft365": {
"title": "Supporto Microsoft 365",
"description": "Installazione completa, migrazione e supporto continuo per Microsoft 365.",
"features": {
"migrations": "Migrazioni email e dati",
"apps": "Configurazione app Office",
"teams": "Configurazione Microsoft Teams",
"sharepoint": "Collaborazione SharePoint",
"admin": "Gestione portale amministratore"
}
},
"management": {
"title": "Gestione Completa M365",
"description": "Lascia che ci occupiamo dell'intero ambiente Microsoft 365 con gestione proattiva.",
"features": {
"automation": "Flussi di lavoro automatizzati",
"monitoring": "Monitoraggio sistema 24/7",
"maintenance": "Manutenzione regolare",
"optimization": "Ottimizzazione prestazioni"
}
},
"networking": {
"title": "Networking e Infrastruttura",
"description": "Soluzioni di rete professionali con apparecchiature Ubiquiti e UniFi.",
"features": {
"ubiquiti": "Specialisti Ubiquiti/UniFi",
"infrastructure": "Infrastruttura di rete",
"security": "Sicurezza di rete",
"monitoring": "Monitoraggio traffico"
}
},
"hosting": {
"title": "Web Hosting e Gestione",
"description": "Hosting web affidabile con gestione completa e manutenzione inclusa.",
"features": {
"webhosting": "Hosting web affidabile",
"domains": "Gestione domini",
"ssl": "Certificati SSL",
"backup": "Backup automatizzati"
}
},
"custom": {
"title": "Progetti IT Personalizzati",
"description": "Soluzioni IT su misura progettate specificamente per le tue esigenze aziendali.",
"features": {
"consultation": "Consulenza IT",
"development": "Sviluppo personalizzato",
"integration": "Integrazione sistemi",
"support": "Supporto continuo"
}
}
},
"testimonials": {
"title": "Cosa Dicono i Nostri Clienti",
"subtitle": "Non prendere solo la nostra parola - vedi cosa hanno da dire i nostri clienti soddisfatti",
"1": {
"name": "Marco Rossi",
"company": "Designer Freelance",
"content": "Tiber365 ha trasformato la nostra configurazione Microsoft 365. Servizio professionale e supporto eccellente!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Proprietaria Piccola Impresa",
"content": "Le loro soluzioni di rete sono di prim'ordine. Il nostro ufficio funziona perfettamente grazie alla loro competenza."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consulente",
"content": "Hosting web affidabile e ottimo servizio clienti. Raccomando vivamente Tiber365!"
}
},
"about": {
"title": "Chi Siamo",
"subtitle": "Il tuo partner IT di fiducia",
"description": "Siamo specializzati nel fornire servizi IT completi a freelancer e piccole imprese.",
"mission": "La nostra missione è far sì che la tecnologia lavori per te, non contro di te.",
"experience": "Anni di Esperienza",
"clients": "Clienti Soddisfatti",
"projects": "Progetti Completati"
},
"contact": {
"title": "Contattaci",
"subtitle": "Pronto a trasformare la tua infrastruttura IT? Parliamone!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Roma, Italia"
},
"form": {
"name": "Nome",
"email": "Email",
"company": "Azienda",
"service": "Servizio",
"message": "Messaggio",
"send": "Invia Messaggio"
}
},
"cta": {
"title": "Pronto per Iniziare?",
"subtitle": "Discutiamo di come possiamo aiutare a trasformare la tua infrastruttura IT.",
"button": "Contattaci Oggi"
},
"footer": {
"description": "Servizi IT professionali per freelancer e piccole imprese.",
"copyright": "© 2024 Tiber365. Tutti i diritti riservati.",
"links": {
"contact": "Contatti",
"privacy": "Privacy Policy",
"terms": "Termini di Servizio"
}
},
"404": {
"title": "Pagina Non Trovata",
"description": "Spiacenti, non siamo riusciti a trovare la pagina che stai cercando.",
"button": "Torna alla home"
}
}

148
dist/locales/nl/translation.json vendored Normal file
View File

@@ -0,0 +1,148 @@
{
"meta": {
"title": "Tiber365 - Professionele IT Services",
"description": "Professionele IT-diensten voor freelancers en kleine bedrijven. Microsoft 365 ondersteuning, netwerkoplossingen, webhosting en aangepaste IT-projecten.",
"keywords": "IT diensten, Microsoft 365, netwerken, webhosting, automatisering, kleine bedrijven IT"
},
"nav": {
"home": "Home",
"services": "Diensten",
"about": "Over Ons",
"contact": "Contact",
"blog": "Blog",
"support": "Ondersteuning",
"language": "Taal",
"theme": {
"toggle": "Thema wisselen"
}
},
"hero": {
"title": "Professionele IT Services voor Uw Bedrijf",
"subtitle": "Ondersteuning van freelancers en kleine bedrijven met betrouwbare Microsoft 365 ondersteuning, netwerkoplossingen, webhosting en aangepaste IT-projecten.",
"trusted": "Vertrouwd door bedrijven in heel Italië",
"cta": {
"primary": "Begin Vandaag",
"secondary": "Bekijk Onze Diensten"
}
},
"services": {
"title": "Onze Diensten",
"subtitle": "Uitgebreide IT-oplossingen op maat voor kleine bedrijven en freelancers",
"viewAll": "Alle Diensten Bekijken",
"microsoft365": {
"title": "Microsoft 365 Ondersteuning",
"description": "Complete Microsoft 365 installatie, migratie en doorlopende ondersteuning.",
"features": {
"migrations": "E-mail & data migraties",
"apps": "Office apps configuratie",
"teams": "Microsoft Teams installatie",
"sharepoint": "SharePoint samenwerking",
"admin": "Beheerportaal management"
}
},
"management": {
"title": "Volledig M365 Beheer",
"description": "Laat ons uw volledige Microsoft 365 omgeving beheren met proactief management.",
"features": {
"automation": "Geautomatiseerde workflows",
"monitoring": "24/7 systeembewaking",
"maintenance": "Regelmatig onderhoud",
"optimization": "Prestatie optimalisatie"
}
},
"networking": {
"title": "Netwerken & Infrastructuur",
"description": "Professionele netwerkoplossingen met Ubiquiti en UniFi apparatuur.",
"features": {
"ubiquiti": "Ubiquiti/UniFi specialisten",
"infrastructure": "Netwerkinfrastructuur",
"security": "Netwerkbeveiliging",
"monitoring": "Verkeer monitoring"
}
},
"hosting": {
"title": "Webhosting & Beheer",
"description": "Betrouwbare webhosting met volledig beheer en onderhoud inbegrepen.",
"features": {
"webhosting": "Betrouwbare webhosting",
"domains": "Domeinbeheer",
"ssl": "SSL certificaten",
"backup": "Geautomatiseerde backups"
}
},
"custom": {
"title": "Aangepaste IT Projecten",
"description": "Op maat gemaakte IT-oplossingen speciaal ontworpen voor uw bedrijfsbehoeften.",
"features": {
"consultation": "IT consultatie",
"development": "Aangepaste ontwikkeling",
"integration": "Systeemintegratie",
"support": "Doorlopende ondersteuning"
}
}
},
"testimonials": {
"title": "Wat Onze Klanten Zeggen",
"subtitle": "Geloof ons niet zomaar - zie wat onze tevreden klanten te zeggen hebben",
"1": {
"name": "Marco Rossi",
"company": "Freelance Designer",
"content": "Tiber365 heeft onze Microsoft 365 installatie getransformeerd. Professionele service en uitstekende ondersteuning!"
},
"2": {
"name": "Sofia Bianchi",
"company": "Kleine Bedrijfseigenaar",
"content": "Hun netwerkoplossingen zijn eersteklas. Ons kantoor draait soepel dankzij hun expertise."
},
"3": {
"name": "Giuseppe Verdi",
"company": "Consultant",
"content": "Betrouwbare webhosting en geweldige klantenservice. Beveel Tiber365 ten zeerste aan!"
}
},
"about": {
"title": "Over Ons",
"subtitle": "Uw vertrouwde IT-partner",
"description": "Wij zijn gespecialiseerd in het leveren van uitgebreide IT-diensten aan freelancers en kleine bedrijven.",
"mission": "Onze missie is om technologie voor u te laten werken, niet tegen u.",
"experience": "Jaren Ervaring",
"clients": "Tevreden Klanten",
"projects": "Voltooide Projecten"
},
"contact": {
"title": "Neem Contact Op",
"subtitle": "Klaar om uw IT-infrastructuur te transformeren? Laten we praten!",
"info": {
"email": "info@tiber365.it",
"phone": "+39 123 456 7890",
"address": "Rome, Italië"
},
"form": {
"name": "Naam",
"email": "E-mail",
"company": "Bedrijf",
"service": "Dienst",
"message": "Bericht",
"send": "Bericht Versturen"
}
},
"cta": {
"title": "Klaar om te Beginnen?",
"subtitle": "Laten we bespreken hoe wij uw IT-infrastructuur kunnen transformeren.",
"button": "Neem Vandaag Contact Op"
},
"footer": {
"description": "Professionele IT-diensten voor freelancers en kleine bedrijven.",
"copyright": "© 2024 Tiber365. Alle rechten voorbehouden.",
"links": {
"contact": "Contact",
"privacy": "Privacybeleid",
"terms": "Servicevoorwaarden"
}
},
"404": {
"title": "Pagina Niet Gevonden",
"description": "Sorry, we konden de pagina die u zoekt niet vinden.",
"button": "Ga terug naar home"
}
}

30
dist/manifest.json vendored Normal file
View File

@@ -0,0 +1,30 @@
{
"name": "Tiber365 - Professional IT Services",
"short_name": "Tiber365",
"description": "Professional IT services for freelancers and small businesses. Microsoft 365 support, networking solutions, web hosting, and custom IT projects.",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#3b82f6",
"icons": [
{
"src": "/favicon.svg",
"sizes": "any",
"type": "image/svg+xml"
},
{
"src": "/favicon.png",
"sizes": "32x32",
"type": "image/png"
},
{
"src": "/apple-touch-icon.png",
"sizes": "180x180",
"type": "image/png"
}
],
"categories": ["business", "productivity", "utilities"],
"lang": "en",
"dir": "ltr",
"orientation": "portrait-primary"
}

130
dist/manifest_DZy5EIn6.mjs vendored Normal file

File diff suppressed because one or more lines are too long

25
dist/pages/404.astro.mjs vendored Normal file
View File

@@ -0,0 +1,25 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { t, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
export { renderers } from '../renderers.mjs';
const $$404 = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("404.title")} | ${t("meta.title")}`, "description": t("404.description") }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> <section class="min-h-screen flex items-center justify-center bg-gradient-to-br from-background via-background to-muted"> <div class="container-custom"> <div class="text-center max-w-2xl mx-auto animate-on-scroll"> <!-- 404 Visual --> <div class="text-8xl sm:text-9xl font-bold text-primary/20 mb-8">404</div> <!-- Error message --> <h1 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4"> ${t("404.title")} </h1> <p class="text-lg sm:text-xl text-muted-foreground mb-8"> ${t("404.description")} </p> <!-- Action buttons --> <div class="flex flex-col sm:flex-row gap-4 justify-center items-center"> <a href="/" class="btn-primary px-8 py-4 text-lg font-semibold rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 inline-flex items-center group"> <svg class="h-5 w-5 mr-2 group-hover:-translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path> </svg> ${t("404.button")} </a> <a href="/contact" class="btn-outline px-8 py-4 text-lg font-semibold rounded-xl transition-all duration-300 hover:scale-105">
Get Help
</a> </div> <!-- Helpful links --> <div class="mt-12"> <p class="text-muted-foreground mb-4">Or try one of these popular pages:</p> <div class="flex flex-wrap justify-center gap-4"> <a href="/services" class="text-primary hover:text-primary/80 transition-colors">Services</a> <span class="text-muted-foreground"></span> <a href="/about" class="text-primary hover:text-primary/80 transition-colors">About</a> <span class="text-muted-foreground"></span> <a href="/contact" class="text-primary hover:text-primary/80 transition-colors">Contact</a> <span class="text-muted-foreground"></span> <a href="https://blog.tiber365.it" target="_blank" rel="noopener noreferrer" class="text-primary hover:text-primary/80 transition-colors">Blog</a> </div> </div> </div> </div> </section> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/404.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/404.astro";
const $$url = "/404";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$404,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

50
dist/pages/about.astro.mjs vendored Normal file
View File

@@ -0,0 +1,50 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { changeLanguage } from 'i18next';
import { t, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
import { $ as $$CTA } from '../chunks/CTA_CIVpts3M.mjs';
export { renderers } from '../renderers.mjs';
const $$About = createComponent(($$result, $$props, $$slots) => {
changeLanguage("en");
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("nav.about")} | ${t("meta.title")}`, "description": "Learn about Tiber365 - your trusted IT partner specializing in Microsoft 365, networking, and comprehensive IT solutions for small businesses." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> <!-- About Hero --> <section class="py-20 bg-gradient-to-br from-background via-background to-muted"> <div class="container-custom"> <div class="text-center max-w-4xl mx-auto animate-on-scroll"> <h1 class="text-4xl sm:text-5xl lg:text-6xl font-display font-bold text-foreground mb-6"> ${t("about.title")} </h1> <p class="text-lg sm:text-xl text-muted-foreground leading-relaxed"> ${t("about.subtitle")} </p> </div> </div> </section> <!-- Company Story --> <section class="py-20 bg-background"> <div class="container-custom"> <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center"> <!-- Content --> <div class="animate-on-scroll"> <h2 class="text-3xl sm:text-4xl font-display font-bold text-foreground mb-6">
Our Story
</h2> <p class="text-lg text-muted-foreground mb-6 leading-relaxed"> ${t("about.description")} </p> <p class="text-lg text-muted-foreground leading-relaxed"> ${t("about.mission")} </p> </div> <!-- Visual --> <div class="animate-on-scroll" style="animation-delay: 0.2s"> <div class="card p-8 bg-gradient-to-br from-primary/5 via-primary/10 to-secondary/5"> <div class="text-center"> <div class="text-6xl mb-6">🚀</div> <h3 class="text-xl font-semibold text-foreground mb-4">Modern IT Solutions</h3> <p class="text-muted-foreground">
Empowering businesses with cutting-edge technology and reliable support.
</p> </div> </div> </div> </div> </div> </section> <!-- Stats --> <section class="py-20 bg-muted/30"> <div class="container-custom"> <div class="grid grid-cols-1 sm:grid-cols-3 gap-8 text-center"> <div class="animate-on-scroll"> <div class="text-4xl sm:text-5xl font-bold text-primary mb-2">5+</div> <div class="text-muted-foreground">${t("about.experience")}</div> </div> <div class="animate-on-scroll" style="animation-delay: 0.1s"> <div class="text-4xl sm:text-5xl font-bold text-primary mb-2">100+</div> <div class="text-muted-foreground">${t("about.clients")}</div> </div> <div class="animate-on-scroll" style="animation-delay: 0.2s"> <div class="text-4xl sm:text-5xl font-bold text-primary mb-2">200+</div> <div class="text-muted-foreground">${t("about.projects")}</div> </div> </div> </div> </section> <!-- Values --> <section class="py-20 bg-background"> <div class="container-custom"> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4">
Our Values
</h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto">
The principles that guide everything we do
</p> </div> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> <div class="card p-6 text-center animate-on-scroll"> <div class="text-4xl mb-4">🔒</div> <h3 class="text-xl font-semibold text-foreground mb-3">Security First</h3> <p class="text-muted-foreground">
We prioritize the security and privacy of your business data above all else.
</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.1s"> <div class="text-4xl mb-4">🤝</div> <h3 class="text-xl font-semibold text-foreground mb-3">Reliability</h3> <p class="text-muted-foreground">
Count on us for consistent, dependable service that keeps your business running.
</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.2s"> <div class="text-4xl mb-4">💡</div> <h3 class="text-xl font-semibold text-foreground mb-3">Innovation</h3> <p class="text-muted-foreground">
We stay ahead of technology trends to bring you the best solutions.
</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.3s"> <div class="text-4xl mb-4">📞</div> <h3 class="text-xl font-semibold text-foreground mb-3">Support</h3> <p class="text-muted-foreground">
Dedicated support when you need it, with real people who understand your business.
</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.4s"> <div class="text-4xl mb-4"></div> <h3 class="text-xl font-semibold text-foreground mb-3">Efficiency</h3> <p class="text-muted-foreground">
Streamlined processes and quick resolutions to minimize downtime.
</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.5s"> <div class="text-4xl mb-4">🎯</div> <h3 class="text-xl font-semibold text-foreground mb-3">Focus</h3> <p class="text-muted-foreground">
Laser-focused on small business needs and cost-effective solutions.
</p> </div> </div> </div> </section> <!-- Team Section --> <section class="py-20 bg-muted/30"> <div class="container-custom"> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4">
Our Expertise
</h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto">
Specialized knowledge in the technologies that matter to your business
</p> </div> <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6"> <div class="card p-4 text-center animate-on-scroll"> <div class="text-3xl mb-2">🏢</div> <div class="text-sm font-medium text-foreground">Microsoft 365</div> </div> <div class="card p-4 text-center animate-on-scroll" style="animation-delay: 0.1s"> <div class="text-3xl mb-2"></div> <div class="text-sm font-medium text-foreground">Cloud Services</div> </div> <div class="card p-4 text-center animate-on-scroll" style="animation-delay: 0.2s"> <div class="text-3xl mb-2">🌐</div> <div class="text-sm font-medium text-foreground">Networking</div> </div> <div class="card p-4 text-center animate-on-scroll" style="animation-delay: 0.3s"> <div class="text-3xl mb-2">🔒</div> <div class="text-sm font-medium text-foreground">Security</div> </div> <div class="card p-4 text-center animate-on-scroll" style="animation-delay: 0.4s"> <div class="text-3xl mb-2">🚀</div> <div class="text-sm font-medium text-foreground">Web Hosting</div> </div> <div class="card p-4 text-center animate-on-scroll" style="animation-delay: 0.5s"> <div class="text-3xl mb-2"></div> <div class="text-sm font-medium text-foreground">Automation</div> </div> </div> </div> </section> ${renderComponent($$result2, "CTA", $$CTA, {})} </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/about.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/about.astro";
const $$url = "/about";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$About,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

33
dist/pages/contact.astro.mjs vendored Normal file
View File

@@ -0,0 +1,33 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, m as maybeRenderHead, a as renderTemplate, r as renderComponent } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { t, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
import 'clsx';
export { renderers } from '../renderers.mjs';
const $$ContactForm = createComponent(async ($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<section class="py-20 bg-background"> <div class="container-custom"> <div class="max-w-4xl mx-auto"> <!-- Section header --> <div class="text-center mb-12 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4"> ${t("contact.title")} </h2> <p class="text-lg sm:text-xl text-muted-foreground"> ${t("contact.subtitle")} </p> </div> <div class="grid grid-cols-1 lg:grid-cols-2 gap-12"> <!-- Contact form --> <div class="animate-on-scroll"> <form id="contact-form" class="space-y-6"> <!-- Name field --> <div> <label for="name" class="block text-sm font-medium text-foreground mb-2"> ${t("contact.form.name")} *
</label> <input type="text" id="name" name="name" required class="w-full px-4 py-3 border border-border rounded-lg bg-background text-foreground placeholder-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="John Doe"> </div> <!-- Email field --> <div> <label for="email" class="block text-sm font-medium text-foreground mb-2"> ${t("contact.form.email")} *
</label> <input type="email" id="email" name="email" required class="w-full px-4 py-3 border border-border rounded-lg bg-background text-foreground placeholder-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="john@company.com"> </div> <!-- Company field --> <div> <label for="company" class="block text-sm font-medium text-foreground mb-2"> ${t("contact.form.company")} </label> <input type="text" id="company" name="company" class="w-full px-4 py-3 border border-border rounded-lg bg-background text-foreground placeholder-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="Your Company"> </div> <!-- Service field --> <div> <label for="service" class="block text-sm font-medium text-foreground mb-2"> ${t("contact.form.service")} </label> <select id="service" name="service" class="w-full px-4 py-3 border border-border rounded-lg bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all"> <option value="">Select a service</option> <option value="microsoft365">Microsoft 365 Support</option> <option value="management">Full M365 Management</option> <option value="networking">Networking & Infrastructure</option> <option value="hosting">Web Hosting & Management</option> <option value="custom">Custom IT Projects</option> </select> </div> <!-- Message field --> <div> <label for="message" class="block text-sm font-medium text-foreground mb-2"> ${t("contact.form.message")} *
</label> <textarea id="message" name="message" rows="4" required class="w-full px-4 py-3 border border-border rounded-lg bg-background text-foreground placeholder-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all resize-y" placeholder="Tell us about your IT needs..."></textarea> </div> <!-- Submit button --> <button type="submit" class="w-full btn-primary px-6 py-3 text-lg font-semibold rounded-lg transition-all duration-300 hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed" id="submit-btn"> <span id="submit-text">${t("contact.form.send")}</span> <svg id="submit-spinner" class="hidden inline h-5 w-5 ml-2 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path> </svg> </button> </form> <!-- Success/Error messages --> <div id="form-message" class="hidden mt-4 p-4 rounded-lg"></div> </div> <!-- Contact info --> <div class="animate-on-scroll" style="animation-delay: 0.2s"> <div class="card p-8"> <h3 class="text-xl font-display font-semibold text-foreground mb-6">
Get in Touch
</h3> <div class="space-y-4"> <!-- Email --> <div class="flex items-center"> <div class="flex-shrink-0 w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4"> <svg class="h-5 w-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path> </svg> </div> <div> <div class="text-sm text-muted-foreground">Email</div> <a href="mailto:info@tiber365.it" class="text-foreground hover:text-primary transition-colors"> ${t("contact.info.email")} </a> </div> </div> <!-- Phone --> <div class="flex items-center"> <div class="flex-shrink-0 w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4"> <svg class="h-5 w-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path> </svg> </div> <div> <div class="text-sm text-muted-foreground">Phone</div> <a href="tel:+391234567890" class="text-foreground hover:text-primary transition-colors"> ${t("contact.info.phone")} </a> </div> </div> <!-- Location --> <div class="flex items-center"> <div class="flex-shrink-0 w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-4"> <svg class="h-5 w-5 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path> </svg> </div> <div> <div class="text-sm text-muted-foreground">Location</div> <div class="text-foreground"> ${t("contact.info.address")} </div> </div> </div> </div> </div> </div> </div> </div> </div> </section> `;
}, "/Users/richard/Website Development/tiber365/src/components/ContactForm.astro", void 0);
const $$Contact = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("nav.contact")} | ${t("meta.title")}`, "description": "Contact Tiber365 for professional IT services. Get in touch for Microsoft 365 support, networking solutions, and custom IT projects." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> ${renderComponent($$result2, "ContactForm", $$ContactForm, {})} </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/contact.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/contact.astro";
const $$url = "/contact";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Contact,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

58
dist/pages/index.astro.mjs vendored Normal file
View File

@@ -0,0 +1,58 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, m as maybeRenderHead, r as renderComponent, a as renderTemplate, b as addAttribute } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import i18next, { changeLanguage } from 'i18next';
import { c as $$Trans, t, S as SERVICES, T as TESTIMONIALS, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
/* empty css */
import 'clsx';
import { $ as $$CTA } from '../chunks/CTA_CIVpts3M.mjs';
export { renderers } from '../renderers.mjs';
const $$Hero = createComponent(($$result, $$props, $$slots) => {
console.log("Hero component locale:", i18next.language);
return renderTemplate`${maybeRenderHead()}<section class="relative min-h-[calc(100vh-4rem)] flex items-center justify-center bg-gradient-to-br from-background via-background to-muted overflow-hidden" data-astro-cid-bbe6dxrz> <div class="container-custom relative z-10" data-astro-cid-bbe6dxrz> <div class="grid lg:grid-cols-2 gap-12 lg:gap-8 items-center" data-astro-cid-bbe6dxrz> <!-- Text Content --> <div class="text-center lg:text-left animate-on-scroll" data-astro-cid-bbe6dxrz> <h1 class="text-4xl sm:text-5xl lg:text-6xl font-display font-bold text-foreground mb-6" data-astro-cid-bbe6dxrz> ${renderComponent($$result, "Trans", $$Trans, { "i18nKey": "hero.title", "data-astro-cid-bbe6dxrz": true }, { "default": ($$result2) => renderTemplate`
Professional IT Services for Your Business
` })} </h1> <p class="text-lg sm:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto lg:mx-0" data-astro-cid-bbe6dxrz> ${renderComponent($$result, "Trans", $$Trans, { "i18nKey": "hero.subtitle", "data-astro-cid-bbe6dxrz": true }, { "default": ($$result2) => renderTemplate`
Empowering freelancers and small businesses with reliable Microsoft 365 support, networking solutions, web hosting, and custom IT projects.
` })} </p> <div class="flex flex-col sm:flex-row gap-4 justify-center lg:justify-start" data-astro-cid-bbe6dxrz> <a href="/contact" class="btn-primary px-8 py-4 text-lg font-semibold rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105" data-astro-cid-bbe6dxrz> ${renderComponent($$result, "Trans", $$Trans, { "i18nKey": "hero.cta.primary", "data-astro-cid-bbe6dxrz": true }, { "default": ($$result2) => renderTemplate`
Get Started Today
` })} </a> <a href="/services" class="btn-outline px-8 py-4 text-lg font-semibold rounded-xl transition-all duration-300 hover:scale-105" data-astro-cid-bbe6dxrz> ${renderComponent($$result, "Trans", $$Trans, { "i18nKey": "hero.cta.secondary", "data-astro-cid-bbe6dxrz": true }, { "default": ($$result2) => renderTemplate`
View Our Services
` })} </a> </div> <p class="mt-8 text-sm text-muted-foreground" data-astro-cid-bbe6dxrz> ${renderComponent($$result, "Trans", $$Trans, { "i18nKey": "hero.trusted", "data-astro-cid-bbe6dxrz": true }, { "default": ($$result2) => renderTemplate`
Trusted by businesses across Italy
` })} </p> </div> <!-- Hero Image --> <div class="relative animate-on-scroll" style="animation-delay: 0.2s" data-astro-cid-bbe6dxrz> <div class="aspect-square rounded-3xl bg-gradient-to-br from-primary/20 via-primary/10 to-transparent p-8" data-astro-cid-bbe6dxrz> <img src="/images/hero-illustration.svg" alt="IT Services Illustration" class="w-full h-full object-contain" loading="eager" data-astro-cid-bbe6dxrz> </div> <!-- Decorative elements --> <div class="absolute -z-10 inset-0 blur-3xl opacity-30 bg-gradient-to-br from-primary via-primary/50 to-transparent" data-astro-cid-bbe6dxrz></div> </div> </div> </div> <!-- Background decorative elements --> <div class="absolute inset-0 -z-10 overflow-hidden" data-astro-cid-bbe6dxrz> <div class="absolute -top-1/2 -right-1/2 w-full h-full rotate-12 bg-gradient-radial from-primary/5 via-primary/2 to-transparent opacity-70" data-astro-cid-bbe6dxrz></div> <div class="absolute -bottom-1/2 -left-1/2 w-full h-full -rotate-12 bg-gradient-radial from-primary/5 via-primary/2 to-transparent opacity-70" data-astro-cid-bbe6dxrz></div> </div> </section> `;
}, "/Users/richard/Website Development/tiber365/src/components/Hero.astro", void 0);
const $$Services = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<section id="services" class="py-20 bg-muted/30"> <div class="container-custom"> <!-- Section header --> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4"> ${t("services.title")} </h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto"> ${t("services.subtitle")} </p> </div> <!-- Services grid --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"> ${SERVICES.map((service, index) => renderTemplate`<div class="card p-6 hover:shadow-xl transition-all duration-300 hover:scale-105 animate-on-scroll group"${addAttribute(`animation-delay: ${index * 0.1}s`, "style")}> <!-- Service icon --> <div class="text-4xl mb-4 group-hover:scale-110 transition-transform duration-300"> ${service.icon} </div> <!-- Service title --> <h3 class="text-xl font-display font-semibold text-foreground mb-3"> ${t(service.titleKey)} </h3> <!-- Service description --> <p class="text-muted-foreground mb-4 leading-relaxed"> ${t(service.descriptionKey)} </p> <!-- Service features --> <ul class="space-y-2"> ${service.features.map((feature) => renderTemplate`<li class="flex items-start text-sm text-muted-foreground"> <svg class="h-4 w-4 mt-0.5 mr-2 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> </svg> ${t(feature)} </li>`)} </ul> <!-- Learn more link --> <div class="mt-6"> <a${addAttribute(`/services#${service.id}`, "href")} class="inline-flex items-center text-primary hover:text-primary/80 font-medium text-sm group-hover:translate-x-1 transition-all duration-200">
Learn more
<svg class="h-4 w-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path> </svg> </a> </div> </div>`)} </div> <!-- CTA section --> <div class="text-center animate-on-scroll"> <a href="/services" class="btn-primary px-8 py-4 text-lg font-semibold rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 inline-flex items-center group"> ${t("services.viewAll")} <svg class="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> </div> </div> </section>`;
}, "/Users/richard/Website Development/tiber365/src/components/Services.astro", void 0);
const $$Testimonials = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${maybeRenderHead()}<section class="py-20 bg-background"> <div class="container-custom"> <!-- Section header --> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4"> ${t("testimonials.title")} </h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto"> ${t("testimonials.subtitle")} </p> </div> <!-- Testimonials grid --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> ${TESTIMONIALS.map((testimonial, index) => renderTemplate`<div class="card p-6 hover:shadow-xl transition-all duration-300 hover:scale-105 animate-on-scroll"${addAttribute(`animation-delay: ${index * 0.1}s`, "style")}> <!-- Star rating --> <div class="flex items-center mb-4"> ${Array.from({ length: testimonial.rating }, (_, i) => renderTemplate`<svg class="h-5 w-5 text-yellow-400 fill-current" viewBox="0 0 20 20"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg>`)} </div> <!-- Testimonial content --> <blockquote class="text-muted-foreground mb-6 leading-relaxed italic">
"${t(testimonial.contentKey)}"
</blockquote> <!-- Customer info --> <div class="flex items-center"> <!-- Avatar placeholder --> <div class="w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mr-4"> <svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"></path> </svg> </div> <div> <div class="font-semibold text-foreground"> ${t(testimonial.nameKey)} </div> <div class="text-sm text-muted-foreground"> ${t(testimonial.companyKey)} </div> </div> </div> </div>`)} </div> <!-- Additional social proof --> <div class="mt-16 text-center animate-on-scroll"> <div class="grid grid-cols-1 sm:grid-cols-3 gap-8 max-w-3xl mx-auto"> <div class="text-center"> <div class="text-3xl font-bold text-primary mb-2">5+</div> <div class="text-sm text-muted-foreground">${t("about.experience")}</div> </div> <div class="text-center"> <div class="text-3xl font-bold text-primary mb-2">100+</div> <div class="text-sm text-muted-foreground">${t("about.clients")}</div> </div> <div class="text-center"> <div class="text-3xl font-bold text-primary mb-2">200+</div> <div class="text-sm text-muted-foreground">${t("about.projects")}</div> </div> </div> </div> </div> </section>`;
}, "/Users/richard/Website Development/tiber365/src/components/Testimonials.astro", void 0);
const $$Index = createComponent(($$result, $$props, $$slots) => {
changeLanguage("en");
const pageTitle = t("meta.title");
const pageDescription = t("meta.description");
const pageKeywords = t("meta.keywords");
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": pageTitle, "description": pageDescription, "keywords": pageKeywords }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> ${renderComponent($$result2, "Hero", $$Hero, {})} ${renderComponent($$result2, "Services", $$Services, {})} ${renderComponent($$result2, "Testimonials", $$Testimonials, {})} ${renderComponent($$result2, "CTA", $$CTA, {})} </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/index.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/index.astro";
const $$url = "";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

32
dist/pages/it.astro.mjs vendored Normal file
View File

@@ -0,0 +1,32 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
export { renderers } from '../renderers.mjs';
const $$Index = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`import ${changeLanguage} from "i18next";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Header from "../../components/Header.astro";
import Hero from "../../components/Hero.astro";
import Services from "../../components/Services.astro";
import Testimonials from "../../components/Testimonials.astro";
import CTA from "../../components/CTA.astro";
import Footer from "../../components/Footer.astro";
changeLanguage("it");
${renderComponent($$result, "BaseLayout", BaseLayout, {}, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", Header, {})} ${maybeRenderHead()}<main> ${renderComponent($$result2, "Hero", Hero, {})} ${renderComponent($$result2, "Services", Services, {})} ${renderComponent($$result2, "Testimonials", Testimonials, {})} ${renderComponent($$result2, "CTA", CTA, {})} </main> ${renderComponent($$result2, "Footer", Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/it/index.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/it/index.astro";
const $$url = "/it";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

28
dist/pages/it/about.astro.mjs vendored Normal file
View File

@@ -0,0 +1,28 @@
import '../../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
export { renderers } from '../../renderers.mjs';
const $$About = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`import ${changeLanguage} from "i18next";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Header from "../../components/Header.astro";
import Footer from "../../components/Footer.astro";
changeLanguage("it");
${renderComponent($$result, "BaseLayout", BaseLayout, {}, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", Header, {})} ${maybeRenderHead()}<main> <section class="py-20"> <div class="container-custom"> <h1>Chi Siamo</h1> <!-- Add about page content --> </div> </section> </main> ${renderComponent($$result2, "Footer", Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/it/about.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/it/about.astro";
const $$url = "/it/about";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$About,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

32
dist/pages/nl.astro.mjs vendored Normal file
View File

@@ -0,0 +1,32 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
export { renderers } from '../renderers.mjs';
const $$Index = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`import ${changeLanguage} from "i18next";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Header from "../../components/Header.astro";
import Hero from "../../components/Hero.astro";
import Services from "../../components/Services.astro";
import Testimonials from "../../components/Testimonials.astro";
import CTA from "../../components/CTA.astro";
import Footer from "../../components/Footer.astro";
changeLanguage("nl");
${renderComponent($$result, "BaseLayout", BaseLayout, {}, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", Header, {})} ${maybeRenderHead()}<main> ${renderComponent($$result2, "Hero", Hero, {})} ${renderComponent($$result2, "Services", Services, {})} ${renderComponent($$result2, "Testimonials", Testimonials, {})} ${renderComponent($$result2, "CTA", CTA, {})} </main> ${renderComponent($$result2, "Footer", Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/nl/index.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/nl/index.astro";
const $$url = "/nl";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Index,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

28
dist/pages/nl/about.astro.mjs vendored Normal file
View File

@@ -0,0 +1,28 @@
import '../../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
export { renderers } from '../../renderers.mjs';
const $$About = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`import ${changeLanguage} from "i18next";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Header from "../../components/Header.astro";
import Footer from "../../components/Footer.astro";
changeLanguage("nl");
${renderComponent($$result, "BaseLayout", BaseLayout, {}, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", Header, {})} ${maybeRenderHead()}<main> <section class="py-20"> <div class="container-custom"> <h1>Over Ons</h1> <!-- Add about page content --> </div> </section> </main> ${renderComponent($$result2, "Footer", Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/nl/about.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/nl/about.astro";
const $$url = "/nl/about";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$About,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

52
dist/pages/privacy.astro.mjs vendored Normal file
View File

@@ -0,0 +1,52 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { t, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
export { renderers } from '../renderers.mjs';
const $$Privacy = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("footer.links.privacy")} | ${t("meta.title")}`, "description": "Privacy Policy for Tiber365 - Learn how we collect, use, and protect your personal data in compliance with GDPR and Dutch privacy laws." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main class="py-16 bg-background"> <div class="container-custom"> <article class="prose prose-lg dark:prose-invert max-w-4xl mx-auto"> <h1 class="text-4xl font-display font-bold mb-8">${t("footer.links.privacy")}</h1> <div class="mb-8 text-sm text-muted-foreground">
Last updated: ${(/* @__PURE__ */ new Date()).toLocaleDateString()} </div> <section class="mb-12"> <h2>1. Introduction</h2> <p>
Tiber365 ("we", "our", or "us") is committed to protecting your privacy and personal data. This Privacy Policy explains how we collect, use, and protect your personal information in accordance with the General Data Protection Regulation (GDPR) and Dutch privacy laws.
</p> </section> <section class="mb-12"> <h2>2. Data Controller</h2> <p>
Tiber365<br>
Italy<br>
Email: info@tiber365.it
</p> <p>
For privacy-related inquiries, you can contact our Data Protection Officer at privacy@tiber365.it.
</p> </section> <section class="mb-12"> <h2>3. Personal Data We Collect</h2> <p>We collect and process the following types of personal data:</p> <ul> <li>Contact information (name, email, phone number, company name)</li> <li>Technical data (IP address, browser type, device information)</li> <li>Usage data (how you interact with our website and services)</li> <li>Communication data (messages you send us through our contact form)</li> <li>Service data (information related to the IT services we provide)</li> </ul> </section> <section class="mb-12"> <h2>4. Legal Basis for Processing</h2> <p>We process your personal data based on the following legal grounds:</p> <ul> <li>Contract performance (when providing our IT services)</li> <li>Legal obligations (compliance with Dutch and EU laws)</li> <li>Legitimate interests (improving our services and communication)</li> <li>Consent (for marketing communications and cookies)</li> </ul> </section> <section class="mb-12"> <h2>5. How We Use Your Data</h2> <p>We use your personal data for:</p> <ul> <li>Providing and managing our IT services</li> <li>Communicating with you about our services</li> <li>Improving our website and services</li> <li>Complying with legal obligations</li> <li>Sending you marketing communications (with your consent)</li> </ul> </section> <section class="mb-12"> <h2>6. Data Sharing and Transfers</h2> <p>
We may share your data with:
</p> <ul> <li>Service providers (hosting, email, analytics)</li> <li>Professional advisers (lawyers, accountants)</li> <li>Authorities (when legally required)</li> </ul> <p>
Data transfers outside the EU/EEA are protected by appropriate safeguards (Standard Contractual Clauses).
</p> </section> <section class="mb-12"> <h2>7. Data Retention</h2> <p>
We retain your personal data only for as long as necessary to fulfill the purposes for which it was collected, including legal requirements and accounting purposes.
</p> </section> <section class="mb-12"> <h2>8. Your Rights</h2> <p>Under GDPR and Dutch privacy laws, you have the right to:</p> <ul> <li>Access your personal data</li> <li>Correct inaccurate data</li> <li>Request deletion of your data</li> <li>Object to processing</li> <li>Data portability</li> <li>Withdraw consent</li> </ul> <p>
To exercise these rights, contact us at privacy@tiber365.it. We'll respond within 30 days.
</p> </section> <section class="mb-12"> <h2>9. Cookies and Tracking</h2> <p>
We use cookies and similar technologies to improve your browsing experience. You can manage cookie preferences through your browser settings.
</p> </section> <section class="mb-12"> <h2>10. Security</h2> <p>
We implement appropriate technical and organizational measures to protect your personal data against unauthorized access, alteration, disclosure, or destruction.
</p> </section> <section class="mb-12"> <h2>11. Changes to This Policy</h2> <p>
We may update this Privacy Policy periodically. We will notify you of any material changes by posting the new policy on this page.
</p> </section> <section class="mb-12"> <h2>12. Complaints</h2> <p>
If you have concerns about how we process your personal data, please contact us first. You also have the right to file a complaint with the Dutch Data Protection Authority (Autoriteit Persoonsgegevens).
</p> </section> <section class="mb-12"> <h2>13. Contact Us</h2> <p>
For any privacy-related questions or requests, please contact us at:<br>
Email: privacy@tiber365.it<br>
Phone: +39 123 456 7890
</p> </section> </article> </div> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/privacy.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/privacy.astro";
const $$url = "/privacy";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Privacy,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

134
dist/pages/services.astro.mjs vendored Normal file
View File

@@ -0,0 +1,134 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead, b as addAttribute } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { t, $ as $$BaseLayout, S as SERVICES, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
import { $ as $$CTA } from '../chunks/CTA_CIVpts3M.mjs';
export { renderers } from '../renderers.mjs';
const $$Services = createComponent(($$result, $$props, $$slots) => {
const getServiceDetails = (serviceId) => {
switch (serviceId) {
case "microsoft365":
return {
benefits: [
"Seamless transition to Microsoft 365 with expert guidance",
"Zero downtime email migrations and data transfer",
"Custom configuration of all Office applications",
"Enhanced team collaboration through Microsoft Teams",
"Secure document management with SharePoint",
"Streamlined admin center management"
],
process: [
"Initial assessment of your current setup",
"Custom migration plan development",
"Step-by-step implementation",
"User training and support",
"Ongoing maintenance and optimization"
]
};
case "management":
return {
benefits: [
"Proactive system monitoring and maintenance",
"Automated workflow implementation",
"Enhanced security and compliance",
"Regular performance optimization",
"Cost-effective resource utilization",
"Reduced IT management overhead"
],
process: [
"Environment assessment",
"Automation opportunity identification",
"Monitoring setup and configuration",
"Regular maintenance scheduling",
"Continuous improvement implementation"
]
};
case "networking":
return {
benefits: [
"Enterprise-grade network infrastructure",
"High-performance Ubiquiti/UniFi solutions",
"Advanced security implementation",
"Reliable and fast connectivity",
"Scalable network architecture",
"Professional network monitoring"
],
process: [
"Network requirements analysis",
"Infrastructure design and planning",
"Equipment selection and deployment",
"Security implementation",
"Performance optimization"
]
};
case "hosting":
return {
benefits: [
"High-performance web hosting",
"Secure and reliable infrastructure",
"Automated backup systems",
"SSL certificate management",
"Domain name administration",
"Regular maintenance and updates"
],
process: [
"Hosting requirements assessment",
"Server configuration and setup",
"Security implementation",
"Backup system configuration",
"Ongoing monitoring and maintenance"
]
};
case "custom":
return {
benefits: [
"Flexible solutions tailored to your unique business needs",
"Professional project management and documentation",
"Clear communication and consultation throughout the process",
"Integration with existing systems and workflows",
"Scalable and future-proof implementations",
"Support for requirements beyond our standard services"
],
process: [
"Initial consultation and requirements gathering",
"Feasibility study and stakeholder alignment",
"Detailed project planning with all involved parties",
"Phased implementation with regular checkpoints",
"Thorough testing and quality assurance",
"Post-implementation support and maintenance"
],
additionalInfo: `While we offer standardized services for common IT needs, we understand that every business is unique. We're open to discussing and supporting custom IT projects that may fall outside our standard service offerings. Our professional approach ensures that all stakeholders are involved in the consultation, planning, and implementation phases. This collaborative process helps us deliver solutions that truly meet your specific requirements.`
};
default:
return {
benefits: [],
process: []
};
}
};
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("nav.services")} | ${t("meta.title")}`, "description": "Comprehensive IT services for small businesses: Microsoft 365 support, networking solutions, web hosting, and custom IT projects." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> <!-- Services Hero --> <section class="py-20 bg-gradient-to-br from-background via-background to-muted"> <div class="container-custom"> <div class="text-center max-w-4xl mx-auto animate-on-scroll"> <h1 class="text-4xl sm:text-5xl lg:text-6xl font-display font-bold text-foreground mb-6"> ${t("services.title")} </h1> <p class="text-lg sm:text-xl text-muted-foreground leading-relaxed"> ${t("services.subtitle")} </p> </div> </div> </section> <!-- Detailed Services --> <section class="py-20 bg-background"> <div class="container-custom"> <div class="space-y-32"> ${SERVICES.map((service, index) => {
const details = getServiceDetails(service.id);
return renderTemplate`<div${addAttribute(service.id, "id")}${addAttribute(`grid grid-cols-1 lg:grid-cols-2 gap-12 items-start animate-on-scroll ${index % 2 === 1 ? "lg:grid-flow-col-reverse" : ""}`, "class")}> <!-- Service content - Left side --> <div> <div class="text-5xl mb-4">${service.icon}</div> <h2 class="text-3xl sm:text-4xl font-display font-bold text-foreground mb-4"> ${t(service.titleKey)} </h2> <p class="text-lg text-muted-foreground mb-8 leading-relaxed"> ${t(service.descriptionKey)} </p> ${service.id === "custom" && renderTemplate`<div class="mb-8 p-4 bg-primary/5 rounded-lg border border-primary/10"> <p class="text-muted-foreground leading-relaxed"> ${details.additionalInfo} </p> </div>`} <!-- Key Benefits --> <div class="mb-8"> <h3 class="text-xl font-semibold text-foreground mb-4">Key Benefits</h3> <ul class="space-y-3"> ${details.benefits.map((benefit) => renderTemplate`<li class="flex items-start"> <svg class="h-5 w-5 mt-1 mr-3 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> </svg> <span class="text-foreground">${benefit}</span> </li>`)} </ul> </div> <!-- Our Process --> <div class="mb-8"> <h3 class="text-xl font-semibold text-foreground mb-4">Our Process</h3> <ul class="space-y-3"> ${details.process.map((step, stepIndex) => renderTemplate`<li class="flex items-start"> <div class="flex-shrink-0 h-6 w-6 rounded-full bg-primary/10 text-primary flex items-center justify-center mr-3 mt-0.5"> ${stepIndex + 1} </div> <span class="text-foreground">${step}</span> </li>`)} </ul> </div> <!-- CTA button --> <a href="/contact" class="btn-primary px-6 py-3 rounded-lg inline-flex items-center group">
Get Started
<svg class="h-4 w-4 ml-2 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path> </svg> </a> </div> <!-- Service features - Right side --> <div class="card p-8 bg-gradient-to-br from-primary/5 via-primary/10 to-secondary/5"> <div class="space-y-6"> <div class="text-center mb-8"> <div class="text-6xl mb-4 opacity-20">${service.icon}</div> <h3 class="text-xl font-semibold text-foreground">Features & Capabilities</h3> </div> ${service.features.map((feature) => renderTemplate`<div class="bg-background/50 rounded-lg p-4"> <div class="flex items-start"> <svg class="h-5 w-5 mt-0.5 mr-3 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> </svg> <div> <h4 class="font-medium text-foreground mb-1">${t(feature)}</h4> <p class="text-sm text-muted-foreground"> ${feature.includes("migrations") && "Seamless data transfer with zero downtime"} ${feature.includes("apps") && "Full setup and optimization of Office applications"} ${feature.includes("teams") && "Custom Teams environment configuration"} ${feature.includes("sharepoint") && "Document management and collaboration setup"} ${feature.includes("admin") && "Complete admin portal configuration"} ${feature.includes("automation") && "Custom workflow automation solutions"} ${feature.includes("monitoring") && "Proactive system monitoring and alerts"} ${feature.includes("maintenance") && "Regular updates and maintenance tasks"} ${feature.includes("optimization") && "Performance tuning and improvements"} ${feature.includes("ubiquiti") && "Expert Ubiquiti/UniFi implementation"} ${feature.includes("infrastructure") && "Enterprise-grade network setup"} ${feature.includes("security") && "Advanced security measures"} ${feature.includes("webhosting") && "High-performance hosting solutions"} ${feature.includes("domains") && "Complete domain management"} ${feature.includes("ssl") && "SSL certificate installation and renewal"} ${feature.includes("backup") && "Automated backup and recovery"} </p> </div> </div> </div>`)} </div> </div> </div>`;
})} </div> </div> </section> <!-- Why Choose Us --> <section class="py-20 bg-muted/30"> <div class="container-custom"> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4">
Why Choose Tiber365?
</h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto">
We're dedicated to providing reliable, professional IT services that help your business thrive.
</p> </div> <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> <div class="card p-6 text-center animate-on-scroll"> <div class="text-4xl mb-4">⚡</div> <h3 class="text-xl font-semibold text-foreground mb-3">Fast Response</h3> <p class="text-muted-foreground">Quick turnaround times and 24/7 support when you need it most.</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.1s"> <div class="text-4xl mb-4">🎯</div> <h3 class="text-xl font-semibold text-foreground mb-3">Expert Knowledge</h3> <p class="text-muted-foreground">Years of experience with Microsoft 365, networking, and modern IT solutions.</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.2s"> <div class="text-4xl mb-4">💼</div> <h3 class="text-xl font-semibold text-foreground mb-3">Business Focus</h3> <p class="text-muted-foreground">We understand small business needs and provide cost-effective solutions.</p> </div> </div> </div> </section> ${renderComponent($$result2, "CTA", $$CTA, {})} </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/services.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/services.astro";
const $$url = "/services";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Services,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

59
dist/pages/terms.astro.mjs vendored Normal file
View File

@@ -0,0 +1,59 @@
import '../chunks/page-ssr_ChKiSmuh.mjs';
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead } from '../chunks/astro/server_DJC9Xx9K.mjs';
import 'kleur/colors';
import { t, $ as $$BaseLayout, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
export { renderers } from '../renderers.mjs';
const $$Terms = createComponent(($$result, $$props, $$slots) => {
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("footer.links.terms")} | ${t("meta.title")}`, "description": "Terms of Service for Tiber365 - Understanding our service agreement and legal terms in compliance with European and Dutch laws." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main class="py-16 bg-background"> <div class="container-custom"> <article class="prose prose-lg dark:prose-invert max-w-4xl mx-auto"> <h1 class="text-4xl font-display font-bold mb-8">${t("footer.links.terms")}</h1> <div class="mb-8 text-sm text-muted-foreground">
Last updated: ${(/* @__PURE__ */ new Date()).toLocaleDateString()} </div> <section class="mb-12"> <h2>1. Introduction</h2> <p>
These Terms of Service ("Terms") govern your use of Tiber365's website and services. By accessing our website or using our services, you agree to be bound by these Terms. If you disagree with any part of these terms, please do not use our services.
</p> </section> <section class="mb-12"> <h2>2. Company Information</h2> <p>
Tiber365<br>
Registered in Italy<br>
Email: info@tiber365.it<br>
Phone: +39 123 456 7890
</p> </section> <section class="mb-12"> <h2>3. Services</h2> <p>
We provide IT services including:
</p> <ul> <li>Microsoft 365 support and management</li> <li>Networking and infrastructure solutions</li> <li>Web hosting and management</li> <li>Custom IT projects</li> </ul> <p>
Service specifics will be detailed in individual service agreements.
</p> </section> <section class="mb-12"> <h2>4. Service Agreement</h2> <p>
Upon engaging our services:
</p> <ul> <li>We will provide services as specified in the service agreement</li> <li>You agree to provide necessary information and access for service delivery</li> <li>You will maintain the confidentiality of any access credentials provided</li> <li>You will use the services in compliance with applicable laws</li> </ul> </section> <section class="mb-12"> <h2>5. Intellectual Property</h2> <p>
All content on our website and services, including but not limited to text, graphics, logos, and software, is our property or that of our licensors and is protected by intellectual property laws.
</p> </section> <section class="mb-12"> <h2>6. User Obligations</h2> <p>You agree to:</p> <ul> <li>Provide accurate and complete information</li> <li>Maintain the security of your account</li> <li>Not use our services for illegal purposes</li> <li>Not interfere with the proper functioning of our services</li> <li>Comply with all applicable laws and regulations</li> </ul> </section> <section class="mb-12"> <h2>7. Payment Terms</h2> <p>
Payment terms, including fees, billing cycles, and payment methods, will be specified in your service agreement. Late payments may result in service suspension.
</p> </section> <section class="mb-12"> <h2>8. Liability</h2> <p>
To the extent permitted by law:
</p> <ul> <li>We provide services "as is" without warranties</li> <li>We are not liable for indirect, consequential, or incidental damages</li> <li>Our liability is limited to the amount paid for services in the previous 12 months</li> </ul> </section> <section class="mb-12"> <h2>9. Data Protection</h2> <p>
We process personal data in accordance with our Privacy Policy and applicable data protection laws (GDPR and Dutch privacy laws).
</p> </section> <section class="mb-12"> <h2>10. Service Availability</h2> <p>
While we strive for high availability, we do not guarantee uninterrupted service. We will provide notice of scheduled maintenance when possible.
</p> </section> <section class="mb-12"> <h2>11. Termination</h2> <p>
Either party may terminate services according to the terms in the service agreement. Upon termination:
</p> <ul> <li>All access to services will cease</li> <li>You remain liable for any outstanding payments</li> <li>We will assist with data transition as specified in the service agreement</li> </ul> </section> <section class="mb-12"> <h2>12. Changes to Terms</h2> <p>
We may modify these Terms at any time. Continued use of our services after changes constitutes acceptance of the modified Terms.
</p> </section> <section class="mb-12"> <h2>13. Governing Law</h2> <p>
These Terms are governed by Dutch law. Any disputes will be subject to the exclusive jurisdiction of the Dutch courts.
</p> </section> <section class="mb-12"> <h2>14. Severability</h2> <p>
If any provision of these Terms is found to be unenforceable, the remaining provisions will remain in effect.
</p> </section> <section class="mb-12"> <h2>15. Contact</h2> <p>
For questions about these Terms, please contact us at:<br>
Email: legal@tiber365.it<br>
Phone: +39 123 456 7890
</p> </section> </article> </div> </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
}, "/Users/richard/Website Development/tiber365/src/pages/terms.astro", void 0);
const $$file = "/Users/richard/Website Development/tiber365/src/pages/terms.astro";
const $$url = "/terms";
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
__proto__: null,
default: $$Terms,
file: $$file,
url: $$url
}, Symbol.toStringTag, { value: 'Module' }));
const page = () => _page;
export { page };

3
dist/renderers.mjs vendored Normal file
View File

@@ -0,0 +1,3 @@
const renderers = [];
export { renderers };

24
dist/robots.txt vendored Normal file
View File

@@ -0,0 +1,24 @@
User-agent: *
Allow: /
Allow: /services
Allow: /about
Allow: /contact
Allow: /404
Allow: /favicon.svg
Allow: /manifest.json
Disallow: /en
Disallow: /en/
Disallow: /nl
Disallow: /nl/
Disallow: /it
Disallow: /it/
# Sitemap
Sitemap: https://tiber365.it/sitemap.xml
# Crawl delay
Crawl-delay: 1
# Disallow admin or sensitive areas (if any in the future)
# Disallow: /admin/
# Disallow: /private/

1
node_modules/.bin/astro-i18next generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../astro-i18next/dist/cli/index.js

1
node_modules/.bin/tsm generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../tsm/bin.js

295
node_modules/.package-lock.json generated vendored
View File

@@ -355,6 +355,15 @@
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/runtime": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz",
"integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
"version": "7.27.2",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
@@ -610,6 +619,28 @@
"node": ">=14"
}
},
"node_modules/@proload/core": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@proload/core/-/core-0.3.3.tgz",
"integrity": "sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==",
"license": "MIT",
"dependencies": {
"deepmerge": "^4.2.2",
"escalade": "^3.1.1"
}
},
"node_modules/@proload/plugin-tsm": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@proload/plugin-tsm/-/plugin-tsm-0.2.1.tgz",
"integrity": "sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==",
"license": "MIT",
"dependencies": {
"tsm": "^2.1.4"
},
"peerDependencies": {
"@proload/core": "^0.3.2"
}
},
"node_modules/@rollup/pluginutils": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
@@ -1066,6 +1097,52 @@
"sharp": "^0.33.3"
}
},
"node_modules/astro-i18next": {
"version": "1.0.0-beta.21",
"resolved": "https://registry.npmjs.org/astro-i18next/-/astro-i18next-1.0.0-beta.21.tgz",
"integrity": "sha512-1YPqwexumHpK/d9afEoi52CBFTu6k4MYv/oHjsaAasZDvFClU6U5VPttC/OgZcXRYggCM6ee2LOnyHqlmXOeLA==",
"license": "MIT",
"dependencies": {
"@proload/core": "^0.3.3",
"@proload/plugin-tsm": "^0.2.1",
"i18next": "^22.4.10",
"i18next-browser-languagedetector": "^7.0.1",
"i18next-fs-backend": "^2.1.1",
"i18next-http-backend": "^2.1.1",
"iso-639-1": "^2.1.15",
"locale-emoji": "^0.3.0",
"pathe": "^1.1.0"
},
"bin": {
"astro-i18next": "dist/cli/index.js"
},
"peerDependencies": {
"astro": ">=1.0.0"
}
},
"node_modules/astro-i18next/node_modules/i18next": {
"version": "22.5.1",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-22.5.1.tgz",
"integrity": "sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==",
"funding": [
{
"type": "individual",
"url": "https://locize.com"
},
{
"type": "individual",
"url": "https://locize.com/i18next.html"
},
{
"type": "individual",
"url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
}
],
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.6"
}
},
"node_modules/autoprefixer": {
"version": "10.4.21",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
@@ -1484,6 +1561,15 @@
"node": ">= 0.6"
}
},
"node_modules/cross-fetch": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
"integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
"license": "MIT",
"dependencies": {
"node-fetch": "^2.6.12"
}
},
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -1540,6 +1626,15 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -1700,6 +1795,22 @@
"@esbuild/win32-x64": "0.21.5"
}
},
"node_modules/esbuild-darwin-arm64": {
"version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
"integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -1877,6 +1988,20 @@
"url": "https://github.com/sponsors/rawify"
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -2218,6 +2343,61 @@
"integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
"license": "BSD-2-Clause"
},
"node_modules/i18next": {
"version": "25.2.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.0.tgz",
"integrity": "sha512-ERhJICsxkw1vE7G0lhCUYv4ZxdBEs03qblt1myJs94rYRK9loJF3xDj8mgQz3LmCyp0yYrNjbN/1/GWZTZDGCA==",
"funding": [
{
"type": "individual",
"url": "https://locize.com"
},
{
"type": "individual",
"url": "https://locize.com/i18next.html"
},
{
"type": "individual",
"url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
}
],
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.27.1"
},
"peerDependencies": {
"typescript": "^5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/i18next-browser-languagedetector": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.2.tgz",
"integrity": "sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.2"
}
},
"node_modules/i18next-fs-backend": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.6.0.tgz",
"integrity": "sha512-3ZlhNoF9yxnM8pa8bWp5120/Ob6t4lVl1l/tbLmkml/ei3ud8IWySCHt2lrY5xWRlSU5D9IV2sm5bEbGuTqwTw==",
"license": "MIT"
},
"node_modules/i18next-http-backend": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.7.3.tgz",
"integrity": "sha512-FgZxrXdRA5u44xfYsJlEBL4/KH3f2IluBpgV/7riW0YW2VEyM8FzVt2XHAOi6id0Ppj7vZvCZVpp5LrGXnc8Ig==",
"license": "MIT",
"dependencies": {
"cross-fetch": "4.0.0"
}
},
"node_modules/import-meta-resolve": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
@@ -2400,6 +2580,15 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"license": "ISC"
},
"node_modules/iso-639-1": {
"version": "2.1.15",
"resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz",
"integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==",
"license": "MIT",
"engines": {
"node": ">=6.0"
}
},
"node_modules/jackspeak": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
@@ -2548,6 +2737,12 @@
"node": ">=6"
}
},
"node_modules/locale-emoji": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/locale-emoji/-/locale-emoji-0.3.0.tgz",
"integrity": "sha512-JGm8+naU49CBDnH1jksS3LecPdfWQLxFgkLN6ZhYONKa850pJ0Xt8DPGJnYK0ZuJI8jTuiDDPCDtSL3nyacXwg==",
"license": "CC0-1.0"
},
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -3561,6 +3756,26 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
}
},
"node_modules/node-releases": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
@@ -3813,6 +4028,12 @@
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -4865,6 +5086,12 @@
"node": ">=8.0"
}
},
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"license": "MIT"
},
"node_modules/trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
@@ -4911,6 +5138,58 @@
}
}
},
"node_modules/tsm": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tsm/-/tsm-2.3.0.tgz",
"integrity": "sha512-++0HFnmmR+gMpDtKTnW3XJ4yv9kVGi20n+NfyQWB9qwJvTaIWY9kBmzek2YUQK5APTQ/1DTrXmm4QtFPmW9Rzw==",
"license": "MIT",
"dependencies": {
"esbuild": "^0.15.16"
},
"bin": {
"tsm": "bin.js"
},
"engines": {
"node": ">=12"
}
},
"node_modules/tsm/node_modules/esbuild": {
"version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
"integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.15.18",
"@esbuild/linux-loong64": "0.15.18",
"esbuild-android-64": "0.15.18",
"esbuild-android-arm64": "0.15.18",
"esbuild-darwin-64": "0.15.18",
"esbuild-darwin-arm64": "0.15.18",
"esbuild-freebsd-64": "0.15.18",
"esbuild-freebsd-arm64": "0.15.18",
"esbuild-linux-32": "0.15.18",
"esbuild-linux-64": "0.15.18",
"esbuild-linux-arm": "0.15.18",
"esbuild-linux-arm64": "0.15.18",
"esbuild-linux-mips64le": "0.15.18",
"esbuild-linux-ppc64le": "0.15.18",
"esbuild-linux-riscv64": "0.15.18",
"esbuild-linux-s390x": "0.15.18",
"esbuild-netbsd-64": "0.15.18",
"esbuild-openbsd-64": "0.15.18",
"esbuild-sunos-64": "0.15.18",
"esbuild-windows-32": "0.15.18",
"esbuild-windows-64": "0.15.18",
"esbuild-windows-arm64": "0.15.18"
}
},
"node_modules/type-fest": {
"version": "4.41.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
@@ -5251,6 +5530,22 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"license": "BSD-2-Clause"
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

View File

@@ -1,25 +1,25 @@
{
"hash": "745e08c6",
"hash": "37d4c730",
"configHash": "1148bf53",
"lockfileHash": "633aff28",
"browserHash": "d435c027",
"lockfileHash": "ad63364b",
"browserHash": "300a125e",
"optimized": {
"astro > cssesc": {
"src": "../../cssesc/cssesc.js",
"file": "astro___cssesc.js",
"fileHash": "200652b1",
"fileHash": "93a3de5b",
"needsInterop": true
},
"astro > aria-query": {
"src": "../../aria-query/lib/index.js",
"file": "astro___aria-query.js",
"fileHash": "5d70289c",
"fileHash": "e8b4e2ed",
"needsInterop": true
},
"astro > axobject-query": {
"src": "../../axobject-query/lib/index.js",
"file": "astro___axobject-query.js",
"fileHash": "d5653076",
"fileHash": "f9e1eca2",
"needsInterop": true
}
},

22
node_modules/@babel/runtime/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,22 @@
MIT License
Copyright (c) 2014-present Sebastian McKenzie and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

19
node_modules/@babel/runtime/README.md generated vendored Normal file
View File

@@ -0,0 +1,19 @@
# @babel/runtime
> babel's modular runtime helpers
See our website [@babel/runtime](https://babeljs.io/docs/babel-runtime) for more information.
## Install
Using npm:
```sh
npm install --save @babel/runtime
```
or using yarn:
```sh
yarn add @babel/runtime
```

4
node_modules/@babel/runtime/helpers/AwaitValue.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
function _AwaitValue(t) {
this.wrapped = t;
}
module.exports = _AwaitValue, module.exports.__esModule = true, module.exports["default"] = module.exports;

4
node_modules/@babel/runtime/helpers/OverloadYield.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
function _OverloadYield(e, d) {
this.v = e, this.k = d;
}
module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,9 @@
function _applyDecoratedDescriptor(i, e, r, n, l) {
var a = {};
return Object.keys(n).forEach(function (i) {
a[i] = n[i];
}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) {
return n(i, e, r) || r;
}, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a;
}
module.exports = _applyDecoratedDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;

236
node_modules/@babel/runtime/helpers/applyDecs.js generated vendored Normal file
View File

@@ -0,0 +1,236 @@
var _typeof = require("./typeof.js")["default"];
var setFunctionName = require("./setFunctionName.js");
var toPropertyKey = require("./toPropertyKey.js");
function old_createMetadataMethodsForProperty(e, t, a, r) {
return {
getMetadata: function getMetadata(o) {
old_assertNotFinished(r, "getMetadata"), old_assertMetadataKey(o);
var i = e[o];
if (void 0 !== i) if (1 === t) {
var n = i["public"];
if (void 0 !== n) return n[a];
} else if (2 === t) {
var l = i["private"];
if (void 0 !== l) return l.get(a);
} else if (Object.hasOwnProperty.call(i, "constructor")) return i.constructor;
},
setMetadata: function setMetadata(o, i) {
old_assertNotFinished(r, "setMetadata"), old_assertMetadataKey(o);
var n = e[o];
if (void 0 === n && (n = e[o] = {}), 1 === t) {
var l = n["public"];
void 0 === l && (l = n["public"] = {}), l[a] = i;
} else if (2 === t) {
var s = n.priv;
void 0 === s && (s = n["private"] = new Map()), s.set(a, i);
} else n.constructor = i;
}
};
}
function old_convertMetadataMapToFinal(e, t) {
var a = e[Symbol.metadata || Symbol["for"]("Symbol.metadata")],
r = Object.getOwnPropertySymbols(t);
if (0 !== r.length) {
for (var o = 0; o < r.length; o++) {
var i = r[o],
n = t[i],
l = a ? a[i] : null,
s = n["public"],
c = l ? l["public"] : null;
s && c && Object.setPrototypeOf(s, c);
var d = n["private"];
if (d) {
var u = Array.from(d.values()),
f = l ? l["private"] : null;
f && (u = u.concat(f)), n["private"] = u;
}
l && Object.setPrototypeOf(n, l);
}
a && Object.setPrototypeOf(t, a), e[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = t;
}
}
function old_createAddInitializerMethod(e, t) {
return function (a) {
old_assertNotFinished(t, "addInitializer"), old_assertCallable(a, "An initializer"), e.push(a);
};
}
function old_memberDec(e, t, a, r, o, i, n, l, s) {
var c;
switch (i) {
case 1:
c = "accessor";
break;
case 2:
c = "method";
break;
case 3:
c = "getter";
break;
case 4:
c = "setter";
break;
default:
c = "field";
}
var d,
u,
f = {
kind: c,
name: l ? "#" + t : toPropertyKey(t),
isStatic: n,
isPrivate: l
},
p = {
v: !1
};
if (0 !== i && (f.addInitializer = old_createAddInitializerMethod(o, p)), l) {
d = 2, u = Symbol(t);
var v = {};
0 === i ? (v.get = a.get, v.set = a.set) : 2 === i ? v.get = function () {
return a.value;
} : (1 !== i && 3 !== i || (v.get = function () {
return a.get.call(this);
}), 1 !== i && 4 !== i || (v.set = function (e) {
a.set.call(this, e);
})), f.access = v;
} else d = 1, u = t;
try {
return e(s, Object.assign(f, old_createMetadataMethodsForProperty(r, d, u, p)));
} finally {
p.v = !0;
}
}
function old_assertNotFinished(e, t) {
if (e.v) throw Error("attempted to call " + t + " after decoration was finished");
}
function old_assertMetadataKey(e) {
if ("symbol" != _typeof(e)) throw new TypeError("Metadata keys must be symbols, received: " + e);
}
function old_assertCallable(e, t) {
if ("function" != typeof e) throw new TypeError(t + " must be a function");
}
function old_assertValidReturnValue(e, t) {
var a = _typeof(t);
if (1 === e) {
if ("object" !== a || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
void 0 !== t.get && old_assertCallable(t.get, "accessor.get"), void 0 !== t.set && old_assertCallable(t.set, "accessor.set"), void 0 !== t.init && old_assertCallable(t.init, "accessor.init"), void 0 !== t.initializer && old_assertCallable(t.initializer, "accessor.initializer");
} else if ("function" !== a) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0");
}
function old_getInit(e) {
var t;
return null == (t = e.init) && (t = e.initializer) && void 0 !== console && console.warn(".initializer has been renamed to .init as of March 2022"), t;
}
function old_applyMemberDec(e, t, a, r, o, i, n, l, s) {
var c,
d,
u,
f,
p,
v,
y,
h = a[0];
if (n ? (0 === o || 1 === o ? (c = {
get: a[3],
set: a[4]
}, u = "get") : 3 === o ? (c = {
get: a[3]
}, u = "get") : 4 === o ? (c = {
set: a[3]
}, u = "set") : c = {
value: a[3]
}, 0 !== o && (1 === o && setFunctionName(a[4], "#" + r, "set"), setFunctionName(a[3], "#" + r, u))) : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? f = {
get: c.get,
set: c.set
} : 2 === o ? f = c.value : 3 === o ? f = c.get : 4 === o && (f = c.set), "function" == typeof h) void 0 !== (p = old_memberDec(h, r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? d = p : 1 === o ? (d = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = {
get: v,
set: y
}) : f = p);else for (var m = h.length - 1; m >= 0; m--) {
var b;
void 0 !== (p = old_memberDec(h[m], r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? b = p : 1 === o ? (b = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = {
get: v,
set: y
}) : f = p, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b)));
}
if (0 === o || 1 === o) {
if (void 0 === d) d = function d(e, t) {
return t;
};else if ("function" != typeof d) {
var g = d;
d = function d(e, t) {
for (var a = t, r = 0; r < g.length; r++) a = g[r].call(e, a);
return a;
};
} else {
var _ = d;
d = function d(e, t) {
return _.call(e, t);
};
}
e.push(d);
}
0 !== o && (1 === o ? (c.get = f.get, c.set = f.set) : 2 === o ? c.value = f : 3 === o ? c.get = f : 4 === o && (c.set = f), n ? 1 === o ? (e.push(function (e, t) {
return f.get.call(e, t);
}), e.push(function (e, t) {
return f.set.call(e, t);
})) : 2 === o ? e.push(f) : e.push(function (e, t) {
return f.call(e, t);
}) : Object.defineProperty(t, r, c));
}
function old_applyMemberDecs(e, t, a, r, o) {
for (var i, n, l = new Map(), s = new Map(), c = 0; c < o.length; c++) {
var d = o[c];
if (Array.isArray(d)) {
var u,
f,
p,
v = d[1],
y = d[2],
h = d.length > 3,
m = v >= 5;
if (m ? (u = t, f = r, 0 != (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !h) {
var b = m ? s : l,
g = b.get(y) || 0;
if (!0 === g || 3 === g && 4 !== v || 4 === g && 3 !== v) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + y);
!g && v > 2 ? b.set(y, v) : b.set(y, !0);
}
old_applyMemberDec(e, u, d, y, v, m, h, f, p);
}
}
old_pushInitializers(e, i), old_pushInitializers(e, n);
}
function old_pushInitializers(e, t) {
t && e.push(function (e) {
for (var a = 0; a < t.length; a++) t[a].call(e);
return e;
});
}
function old_applyClassDecs(e, t, a, r) {
if (r.length > 0) {
for (var o = [], i = t, n = t.name, l = r.length - 1; l >= 0; l--) {
var s = {
v: !1
};
try {
var c = Object.assign({
kind: "class",
name: n,
addInitializer: old_createAddInitializerMethod(o, s)
}, old_createMetadataMethodsForProperty(a, 0, n, s)),
d = r[l](i, c);
} finally {
s.v = !0;
}
void 0 !== d && (old_assertValidReturnValue(10, d), i = d);
}
e.push(i, function () {
for (var e = 0; e < o.length; e++) o[e].call(i);
});
}
}
function applyDecs(e, t, a) {
var r = [],
o = {},
i = {};
return old_applyMemberDecs(r, e, i, o, t), old_convertMetadataMapToFinal(e.prototype, i), old_applyClassDecs(r, e, o, a), old_convertMetadataMapToFinal(e, o), r;
}
module.exports = applyDecs, module.exports.__esModule = true, module.exports["default"] = module.exports;

184
node_modules/@babel/runtime/helpers/applyDecs2203.js generated vendored Normal file
View File

@@ -0,0 +1,184 @@
var _typeof = require("./typeof.js")["default"];
function applyDecs2203Factory() {
function createAddInitializerMethod(e, t) {
return function (r) {
!function (e, t) {
if (e.v) throw Error("attempted to call addInitializer after decoration was finished");
}(t), assertCallable(r, "An initializer"), e.push(r);
};
}
function memberDec(e, t, r, a, n, i, s, o) {
var c;
switch (n) {
case 1:
c = "accessor";
break;
case 2:
c = "method";
break;
case 3:
c = "getter";
break;
case 4:
c = "setter";
break;
default:
c = "field";
}
var l,
u,
f = {
kind: c,
name: s ? "#" + t : t,
"static": i,
"private": s
},
p = {
v: !1
};
0 !== n && (f.addInitializer = createAddInitializerMethod(a, p)), 0 === n ? s ? (l = r.get, u = r.set) : (l = function l() {
return this[t];
}, u = function u(e) {
this[t] = e;
}) : 2 === n ? l = function l() {
return r.value;
} : (1 !== n && 3 !== n || (l = function l() {
return r.get.call(this);
}), 1 !== n && 4 !== n || (u = function u(e) {
r.set.call(this, e);
})), f.access = l && u ? {
get: l,
set: u
} : l ? {
get: l
} : {
set: u
};
try {
return e(o, f);
} finally {
p.v = !0;
}
}
function assertCallable(e, t) {
if ("function" != typeof e) throw new TypeError(t + " must be a function");
}
function assertValidReturnValue(e, t) {
var r = _typeof(t);
if (1 === e) {
if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init");
} else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0");
}
function applyMemberDec(e, t, r, a, n, i, s, o) {
var c,
l,
u,
f,
p,
d,
h = r[0];
if (s ? c = 0 === n || 1 === n ? {
get: r[3],
set: r[4]
} : 3 === n ? {
get: r[3]
} : 4 === n ? {
set: r[3]
} : {
value: r[3]
} : 0 !== n && (c = Object.getOwnPropertyDescriptor(t, a)), 1 === n ? u = {
get: c.get,
set: c.set
} : 2 === n ? u = c.value : 3 === n ? u = c.get : 4 === n && (u = c.set), "function" == typeof h) void 0 !== (f = memberDec(h, a, c, o, n, i, s, u)) && (assertValidReturnValue(n, f), 0 === n ? l = f : 1 === n ? (l = f.init, p = f.get || u.get, d = f.set || u.set, u = {
get: p,
set: d
}) : u = f);else for (var v = h.length - 1; v >= 0; v--) {
var g;
void 0 !== (f = memberDec(h[v], a, c, o, n, i, s, u)) && (assertValidReturnValue(n, f), 0 === n ? g = f : 1 === n ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = {
get: p,
set: d
}) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)));
}
if (0 === n || 1 === n) {
if (void 0 === l) l = function l(e, t) {
return t;
};else if ("function" != typeof l) {
var y = l;
l = function l(e, t) {
for (var r = t, a = 0; a < y.length; a++) r = y[a].call(e, r);
return r;
};
} else {
var m = l;
l = function l(e, t) {
return m.call(e, t);
};
}
e.push(l);
}
0 !== n && (1 === n ? (c.get = u.get, c.set = u.set) : 2 === n ? c.value = u : 3 === n ? c.get = u : 4 === n && (c.set = u), s ? 1 === n ? (e.push(function (e, t) {
return u.get.call(e, t);
}), e.push(function (e, t) {
return u.set.call(e, t);
})) : 2 === n ? e.push(u) : e.push(function (e, t) {
return u.call(e, t);
}) : Object.defineProperty(t, a, c));
}
function pushInitializers(e, t) {
t && e.push(function (e) {
for (var r = 0; r < t.length; r++) t[r].call(e);
return e;
});
}
return function (e, t, r) {
var a = [];
return function (e, t, r) {
for (var a, n, i = new Map(), s = new Map(), o = 0; o < r.length; o++) {
var c = r[o];
if (Array.isArray(c)) {
var l,
u,
f = c[1],
p = c[2],
d = c.length > 3,
h = f >= 5;
if (h ? (l = t, 0 != (f -= 5) && (u = n = n || [])) : (l = t.prototype, 0 !== f && (u = a = a || [])), 0 !== f && !d) {
var v = h ? s : i,
g = v.get(p) || 0;
if (!0 === g || 3 === g && 4 !== f || 4 === g && 3 !== f) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + p);
!g && f > 2 ? v.set(p, f) : v.set(p, !0);
}
applyMemberDec(e, l, c, p, f, h, d, u);
}
}
pushInitializers(e, a), pushInitializers(e, n);
}(a, e, t), function (e, t, r) {
if (r.length > 0) {
for (var a = [], n = t, i = t.name, s = r.length - 1; s >= 0; s--) {
var o = {
v: !1
};
try {
var c = r[s](n, {
kind: "class",
name: i,
addInitializer: createAddInitializerMethod(a, o)
});
} finally {
o.v = !0;
}
void 0 !== c && (assertValidReturnValue(10, c), n = c);
}
e.push(n, function () {
for (var e = 0; e < a.length; e++) a[e].call(n);
});
}
}(a, e, r), a;
};
}
var applyDecs2203Impl;
function applyDecs2203(e, t, r) {
return (applyDecs2203Impl = applyDecs2203Impl || applyDecs2203Factory())(e, t, r);
}
module.exports = applyDecs2203, module.exports.__esModule = true, module.exports["default"] = module.exports;

191
node_modules/@babel/runtime/helpers/applyDecs2203R.js generated vendored Normal file
View File

@@ -0,0 +1,191 @@
var _typeof = require("./typeof.js")["default"];
var setFunctionName = require("./setFunctionName.js");
var toPropertyKey = require("./toPropertyKey.js");
function applyDecs2203RFactory() {
function createAddInitializerMethod(e, t) {
return function (r) {
!function (e, t) {
if (e.v) throw Error("attempted to call addInitializer after decoration was finished");
}(t), assertCallable(r, "An initializer"), e.push(r);
};
}
function memberDec(e, t, r, n, a, i, o, s) {
var c;
switch (a) {
case 1:
c = "accessor";
break;
case 2:
c = "method";
break;
case 3:
c = "getter";
break;
case 4:
c = "setter";
break;
default:
c = "field";
}
var l,
u,
f = {
kind: c,
name: o ? "#" + t : toPropertyKey(t),
"static": i,
"private": o
},
p = {
v: !1
};
0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? o ? (l = r.get, u = r.set) : (l = function l() {
return this[t];
}, u = function u(e) {
this[t] = e;
}) : 2 === a ? l = function l() {
return r.value;
} : (1 !== a && 3 !== a || (l = function l() {
return r.get.call(this);
}), 1 !== a && 4 !== a || (u = function u(e) {
r.set.call(this, e);
})), f.access = l && u ? {
get: l,
set: u
} : l ? {
get: l
} : {
set: u
};
try {
return e(s, f);
} finally {
p.v = !0;
}
}
function assertCallable(e, t) {
if ("function" != typeof e) throw new TypeError(t + " must be a function");
}
function assertValidReturnValue(e, t) {
var r = _typeof(t);
if (1 === e) {
if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init");
} else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0");
}
function applyMemberDec(e, t, r, n, a, i, o, s) {
var c,
l,
u,
f,
p,
d,
h,
v = r[0];
if (o ? (0 === a || 1 === a ? (c = {
get: r[3],
set: r[4]
}, u = "get") : 3 === a ? (c = {
get: r[3]
}, u = "get") : 4 === a ? (c = {
set: r[3]
}, u = "set") : c = {
value: r[3]
}, 0 !== a && (1 === a && setFunctionName(r[4], "#" + n, "set"), setFunctionName(r[3], "#" + n, u))) : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? f = {
get: c.get,
set: c.set
} : 2 === a ? f = c.value : 3 === a ? f = c.get : 4 === a && (f = c.set), "function" == typeof v) void 0 !== (p = memberDec(v, n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? l = p : 1 === a ? (l = p.init, d = p.get || f.get, h = p.set || f.set, f = {
get: d,
set: h
}) : f = p);else for (var g = v.length - 1; g >= 0; g--) {
var y;
void 0 !== (p = memberDec(v[g], n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? y = p : 1 === a ? (y = p.init, d = p.get || f.get, h = p.set || f.set, f = {
get: d,
set: h
}) : f = p, void 0 !== y && (void 0 === l ? l = y : "function" == typeof l ? l = [l, y] : l.push(y)));
}
if (0 === a || 1 === a) {
if (void 0 === l) l = function l(e, t) {
return t;
};else if ("function" != typeof l) {
var m = l;
l = function l(e, t) {
for (var r = t, n = 0; n < m.length; n++) r = m[n].call(e, r);
return r;
};
} else {
var b = l;
l = function l(e, t) {
return b.call(e, t);
};
}
e.push(l);
}
0 !== a && (1 === a ? (c.get = f.get, c.set = f.set) : 2 === a ? c.value = f : 3 === a ? c.get = f : 4 === a && (c.set = f), o ? 1 === a ? (e.push(function (e, t) {
return f.get.call(e, t);
}), e.push(function (e, t) {
return f.set.call(e, t);
})) : 2 === a ? e.push(f) : e.push(function (e, t) {
return f.call(e, t);
}) : Object.defineProperty(t, n, c));
}
function applyMemberDecs(e, t) {
for (var r, n, a = [], i = new Map(), o = new Map(), s = 0; s < t.length; s++) {
var c = t[s];
if (Array.isArray(c)) {
var l,
u,
f = c[1],
p = c[2],
d = c.length > 3,
h = f >= 5;
if (h ? (l = e, 0 != (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) {
var v = h ? o : i,
g = v.get(p) || 0;
if (!0 === g || 3 === g && 4 !== f || 4 === g && 3 !== f) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + p);
!g && f > 2 ? v.set(p, f) : v.set(p, !0);
}
applyMemberDec(a, l, c, p, f, h, d, u);
}
}
return pushInitializers(a, r), pushInitializers(a, n), a;
}
function pushInitializers(e, t) {
t && e.push(function (e) {
for (var r = 0; r < t.length; r++) t[r].call(e);
return e;
});
}
return function (e, t, r) {
return {
e: applyMemberDecs(e, t),
get c() {
return function (e, t) {
if (t.length > 0) {
for (var r = [], n = e, a = e.name, i = t.length - 1; i >= 0; i--) {
var o = {
v: !1
};
try {
var s = t[i](n, {
kind: "class",
name: a,
addInitializer: createAddInitializerMethod(r, o)
});
} finally {
o.v = !0;
}
void 0 !== s && (assertValidReturnValue(10, s), n = s);
}
return [n, function () {
for (var e = 0; e < r.length; e++) r[e].call(n);
}];
}
}(e, r);
}
};
};
}
function applyDecs2203R(e, t, r) {
return (module.exports = applyDecs2203R = applyDecs2203RFactory(), module.exports.__esModule = true, module.exports["default"] = module.exports)(e, t, r);
}
module.exports = applyDecs2203R, module.exports.__esModule = true, module.exports["default"] = module.exports;

222
node_modules/@babel/runtime/helpers/applyDecs2301.js generated vendored Normal file
View File

@@ -0,0 +1,222 @@
var _typeof = require("./typeof.js")["default"];
var checkInRHS = require("./checkInRHS.js");
var setFunctionName = require("./setFunctionName.js");
var toPropertyKey = require("./toPropertyKey.js");
function applyDecs2301Factory() {
function createAddInitializerMethod(e, t) {
return function (r) {
!function (e, t) {
if (e.v) throw Error("attempted to call addInitializer after decoration was finished");
}(t), assertCallable(r, "An initializer"), e.push(r);
};
}
function assertInstanceIfPrivate(e, t) {
if (!e(t)) throw new TypeError("Attempted to access private element on non-instance");
}
function memberDec(e, t, r, n, a, i, s, o, c) {
var u;
switch (a) {
case 1:
u = "accessor";
break;
case 2:
u = "method";
break;
case 3:
u = "getter";
break;
case 4:
u = "setter";
break;
default:
u = "field";
}
var l,
f,
p = {
kind: u,
name: s ? "#" + t : toPropertyKey(t),
"static": i,
"private": s
},
d = {
v: !1
};
if (0 !== a && (p.addInitializer = createAddInitializerMethod(n, d)), s || 0 !== a && 2 !== a) {
if (2 === a) l = function l(e) {
return assertInstanceIfPrivate(c, e), r.value;
};else {
var h = 0 === a || 1 === a;
(h || 3 === a) && (l = s ? function (e) {
return assertInstanceIfPrivate(c, e), r.get.call(e);
} : function (e) {
return r.get.call(e);
}), (h || 4 === a) && (f = s ? function (e, t) {
assertInstanceIfPrivate(c, e), r.set.call(e, t);
} : function (e, t) {
r.set.call(e, t);
});
}
} else l = function l(e) {
return e[t];
}, 0 === a && (f = function f(e, r) {
e[t] = r;
});
var v = s ? c.bind() : function (e) {
return t in e;
};
p.access = l && f ? {
get: l,
set: f,
has: v
} : l ? {
get: l,
has: v
} : {
set: f,
has: v
};
try {
return e(o, p);
} finally {
d.v = !0;
}
}
function assertCallable(e, t) {
if ("function" != typeof e) throw new TypeError(t + " must be a function");
}
function assertValidReturnValue(e, t) {
var r = _typeof(t);
if (1 === e) {
if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init");
} else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0");
}
function curryThis2(e) {
return function (t) {
e(this, t);
};
}
function applyMemberDec(e, t, r, n, a, i, s, o, c) {
var u,
l,
f,
p,
d,
h,
v,
y,
g = r[0];
if (s ? (0 === a || 1 === a ? (u = {
get: (d = r[3], function () {
return d(this);
}),
set: curryThis2(r[4])
}, f = "get") : 3 === a ? (u = {
get: r[3]
}, f = "get") : 4 === a ? (u = {
set: r[3]
}, f = "set") : u = {
value: r[3]
}, 0 !== a && (1 === a && setFunctionName(u.set, "#" + n, "set"), setFunctionName(u[f || "value"], "#" + n, f))) : 0 !== a && (u = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? p = {
get: u.get,
set: u.set
} : 2 === a ? p = u.value : 3 === a ? p = u.get : 4 === a && (p = u.set), "function" == typeof g) void 0 !== (h = memberDec(g, n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? l = h : 1 === a ? (l = h.init, v = h.get || p.get, y = h.set || p.set, p = {
get: v,
set: y
}) : p = h);else for (var m = g.length - 1; m >= 0; m--) {
var b;
void 0 !== (h = memberDec(g[m], n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? b = h : 1 === a ? (b = h.init, v = h.get || p.get, y = h.set || p.set, p = {
get: v,
set: y
}) : p = h, void 0 !== b && (void 0 === l ? l = b : "function" == typeof l ? l = [l, b] : l.push(b)));
}
if (0 === a || 1 === a) {
if (void 0 === l) l = function l(e, t) {
return t;
};else if ("function" != typeof l) {
var I = l;
l = function l(e, t) {
for (var r = t, n = 0; n < I.length; n++) r = I[n].call(e, r);
return r;
};
} else {
var w = l;
l = function l(e, t) {
return w.call(e, t);
};
}
e.push(l);
}
0 !== a && (1 === a ? (u.get = p.get, u.set = p.set) : 2 === a ? u.value = p : 3 === a ? u.get = p : 4 === a && (u.set = p), s ? 1 === a ? (e.push(function (e, t) {
return p.get.call(e, t);
}), e.push(function (e, t) {
return p.set.call(e, t);
})) : 2 === a ? e.push(p) : e.push(function (e, t) {
return p.call(e, t);
}) : Object.defineProperty(t, n, u));
}
function applyMemberDecs(e, t, r) {
for (var n, a, i, s = [], o = new Map(), c = new Map(), u = 0; u < t.length; u++) {
var l = t[u];
if (Array.isArray(l)) {
var f,
p,
d = l[1],
h = l[2],
v = l.length > 3,
y = d >= 5,
g = r;
if (y ? (f = e, 0 != (d -= 5) && (p = a = a || []), v && !i && (i = function i(t) {
return checkInRHS(t) === e;
}), g = i) : (f = e.prototype, 0 !== d && (p = n = n || [])), 0 !== d && !v) {
var m = y ? c : o,
b = m.get(h) || 0;
if (!0 === b || 3 === b && 4 !== d || 4 === b && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
!b && d > 2 ? m.set(h, d) : m.set(h, !0);
}
applyMemberDec(s, f, l, h, d, y, v, p, g);
}
}
return pushInitializers(s, n), pushInitializers(s, a), s;
}
function pushInitializers(e, t) {
t && e.push(function (e) {
for (var r = 0; r < t.length; r++) t[r].call(e);
return e;
});
}
return function (e, t, r, n) {
return {
e: applyMemberDecs(e, t, n),
get c() {
return function (e, t) {
if (t.length > 0) {
for (var r = [], n = e, a = e.name, i = t.length - 1; i >= 0; i--) {
var s = {
v: !1
};
try {
var o = t[i](n, {
kind: "class",
name: a,
addInitializer: createAddInitializerMethod(r, s)
});
} finally {
s.v = !0;
}
void 0 !== o && (assertValidReturnValue(10, o), n = o);
}
return [n, function () {
for (var e = 0; e < r.length; e++) r[e].call(n);
}];
}
}(e, r);
}
};
};
}
function applyDecs2301(e, t, r, n) {
return (module.exports = applyDecs2301 = applyDecs2301Factory(), module.exports.__esModule = true, module.exports["default"] = module.exports)(e, t, r, n);
}
module.exports = applyDecs2301, module.exports.__esModule = true, module.exports["default"] = module.exports;

133
node_modules/@babel/runtime/helpers/applyDecs2305.js generated vendored Normal file
View File

@@ -0,0 +1,133 @@
var _typeof = require("./typeof.js")["default"];
var checkInRHS = require("./checkInRHS.js");
var setFunctionName = require("./setFunctionName.js");
var toPropertyKey = require("./toPropertyKey.js");
function applyDecs2305(e, t, r, n, o, a) {
function i(e, t, r) {
return function (n, o) {
return r && r(n), e[t].call(n, o);
};
}
function c(e, t) {
for (var r = 0; r < e.length; r++) e[r].call(t);
return t;
}
function s(e, t, r, n) {
if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined"));
return e;
}
function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) {
function m(e) {
if (!h(e)) throw new TypeError("Attempted to access private element on non-instance");
}
var y,
v = t[0],
g = t[3],
b = !u;
if (!b) {
r || Array.isArray(v) || (v = [v]);
var w = {},
S = [],
A = 3 === o ? "get" : 4 === o || d ? "set" : "value";
f ? (p || d ? w = {
get: setFunctionName(function () {
return g(this);
}, n, "get"),
set: function set(e) {
t[4](this, e);
}
} : w[A] = g, p || setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n));
}
for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) {
var D = v[j],
E = r ? v[j - 1] : void 0,
I = {},
O = {
kind: ["field", "accessor", "method", "getter", "setter", "class"][o],
name: n,
metadata: a,
addInitializer: function (e, t) {
if (e.v) throw Error("attempted to call addInitializer after decoration was finished");
s(t, "An initializer", "be", !0), c.push(t);
}.bind(null, I)
};
try {
if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else {
var k, F;
O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) {
return m(e), w.value;
} : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) {
return e[n];
}, (o < 2 || 4 === o) && (F = function F(e, t) {
e[n] = t;
}));
var N = O.access = {
has: f ? h.bind() : function (e) {
return n in e;
}
};
if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? {
get: w.get,
set: w.set
} : w[A], O), d) {
if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
} else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P);
}
} finally {
I.v = !0;
}
}
return (p || d) && u.push(function (e, t) {
for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t);
return t;
}), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P;
}
function u(e, t) {
return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), {
configurable: !0,
enumerable: !0,
value: t
});
}
if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")];
var f = Object.create(null == l ? null : l),
p = function (e, t, r, n) {
var o,
a,
i = [],
s = function s(t) {
return checkInRHS(t) === e;
},
u = new Map();
function l(e) {
e && i.push(c.bind(null, e));
}
for (var f = 0; f < t.length; f++) {
var p = t[f];
if (Array.isArray(p)) {
var d = p[1],
h = p[2],
m = p.length > 3,
y = 16 & d,
v = !!(8 & d),
g = 0 == (d &= 7),
b = h + "/" + v;
if (!g && !m) {
var w = u.get(b);
if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
u.set(b, !(d > 2) || d);
}
applyDec(v ? e : e.prototype, p, y, m ? "#" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r);
}
}
return l(o), l(a), i;
}(e, t, o, f);
return r.length || u(e, f), {
e: p,
get c() {
var t = [];
return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)];
}
};
}
module.exports = applyDecs2305, module.exports.__esModule = true, module.exports["default"] = module.exports;

124
node_modules/@babel/runtime/helpers/applyDecs2311.js generated vendored Normal file
View File

@@ -0,0 +1,124 @@
var _typeof = require("./typeof.js")["default"];
var checkInRHS = require("./checkInRHS.js");
var setFunctionName = require("./setFunctionName.js");
var toPropertyKey = require("./toPropertyKey.js");
function applyDecs2311(e, t, n, r, o, i) {
var a,
c,
u,
s,
f,
l,
p,
d = Symbol.metadata || Symbol["for"]("Symbol.metadata"),
m = Object.defineProperty,
h = Object.create,
y = [h(null), h(null)],
v = t.length;
function g(t, n, r) {
return function (o, i) {
n && (i = o, o = e);
for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);
return r ? i : o;
};
}
function b(e, t, n, r) {
if ("function" != typeof e && (r || void 0 !== e)) throw new TypeError(t + " must " + (n || "be") + " a function" + (r ? "" : " or undefined"));
return e;
}
function applyDec(e, t, n, r, o, i, u, s, f, l, p) {
function d(e) {
if (!p(e)) throw new TypeError("Attempted to access private element on non-instance");
}
var h = [].concat(t[0]),
v = t[3],
w = !u,
D = 1 === o,
S = 3 === o,
j = 4 === o,
E = 2 === o;
function I(t, n, r) {
return function (o, i) {
return n && (i = o, o = e), r && r(o), P[t].call(o, i);
};
}
if (!w) {
var P = {},
k = [],
F = S ? "get" : j || D ? "set" : "value";
if (f ? (l || D ? P = {
get: setFunctionName(function () {
return v(this);
}, r, "get"),
set: function set(e) {
t[4](this, e);
}
} : P[F] = v, l || setFunctionName(P[F], r, E ? "" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {
if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error("Decorating two elements with the same name (" + P[F].name + ") is not supported yet");
y[+s][r] = o < 3 ? 1 : o;
}
}
for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {
var T = b(h[O], "A decorator", "be", !0),
z = n ? h[O - 1] : void 0,
A = {},
H = {
kind: ["field", "accessor", "method", "getter", "setter", "class"][o],
name: r,
metadata: a,
addInitializer: function (e, t) {
if (e.v) throw new TypeError("attempted to call addInitializer after decoration was finished");
b(t, "An initializer", "be", !0), i.push(t);
}.bind(null, A)
};
if (w) c = T.call(z, N, H), A.v = 1, b(c, "class decorators", "return") && (N = c);else if (H["static"] = s, H["private"] = f, c = H.access = {
has: f ? p.bind() : function (e) {
return r in e;
}
}, j || (c.get = f ? E ? function (e) {
return d(e), P.value;
} : I("get", 0, d) : function (e) {
return e[r];
}), E || S || (c.set = f ? I("set", 0, d) : function (e, t) {
e[r] = t;
}), N = T.call(z, D ? {
get: P.get,
set: P.set
} : P[F], H), A.v = 1, D) {
if ("object" == _typeof(N) && N) (c = b(N.get, "accessor.get")) && (P.get = c), (c = b(N.set, "accessor.set")) && (P.set = c), (c = b(N.init, "accessor.init")) && k.unshift(c);else if (void 0 !== N) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined");
} else b(N, (l ? "field" : "method") + " decorators", "return") && (l ? k.unshift(N) : P[F] = N);
}
return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I("get", s), I("set", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;
}
function w(e) {
return m(e, d, {
configurable: !0,
enumerable: !0,
value: a
});
}
return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {
e && f.push(g(e));
}, p = function p(t, r) {
for (var i = 0; i < n.length; i++) {
var a = n[i],
c = a[1],
l = 7 & c;
if ((8 & c) == t && !l == r) {
var p = a[2],
d = !!a[3],
m = 16 & c;
applyDec(t ? e : e.prototype, a, m, d ? "#" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {
return checkInRHS(t) === e;
} : o);
}
}
}, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {
e: c,
get c() {
var n = [];
return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];
}
};
}
module.exports = applyDecs2311, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,6 @@
function _arrayLikeToArray(r, a) {
(null == a || a > r.length) && (a = r.length);
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
return n;
}
module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _arrayWithHoles(r) {
if (Array.isArray(r)) return r;
}
module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var arrayLikeToArray = require("./arrayLikeToArray.js");
function _arrayWithoutHoles(r) {
if (Array.isArray(r)) return arrayLikeToArray(r);
}
module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
function _assertClassBrand(e, t, n) {
if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
throw new TypeError("Private element is not present on this object");
}
module.exports = _assertClassBrand, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
function _assertThisInitialized(e) {
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return e;
}
module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,24 @@
var OverloadYield = require("./OverloadYield.js");
function _asyncGeneratorDelegate(t) {
var e = {},
n = !1;
function pump(e, r) {
return n = !0, r = new Promise(function (n) {
n(t[e](r));
}), {
done: !1,
value: new OverloadYield(r, 1)
};
}
return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () {
return this;
}, e.next = function (t) {
return n ? (n = !1, t) : pump("next", t);
}, "function" == typeof t["throw"] && (e["throw"] = function (t) {
if (n) throw n = !1, t;
return pump("throw", t);
}), "function" == typeof t["return"] && (e["return"] = function (t) {
return n ? (n = !1, t) : pump("return", t);
}), e;
}
module.exports = _asyncGeneratorDelegate, module.exports.__esModule = true, module.exports["default"] = module.exports;

45
node_modules/@babel/runtime/helpers/asyncIterator.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
function _asyncIterator(r) {
var n,
t,
o,
e = 2;
for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {
if (t && null != (n = r[t])) return n.call(r);
if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
t = "@@asyncIterator", o = "@@iterator";
}
throw new TypeError("Object is not async iterable");
}
function AsyncFromSyncIterator(r) {
function AsyncFromSyncIteratorContinuation(r) {
if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
var n = r.done;
return Promise.resolve(r.value).then(function (r) {
return {
value: r,
done: n
};
});
}
return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {
this.s = r, this.n = r.next;
}, AsyncFromSyncIterator.prototype = {
s: null,
n: null,
next: function next() {
return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
},
"return": function _return(r) {
var n = this.s["return"];
return void 0 === n ? Promise.resolve({
value: r,
done: !0
}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
},
"throw": function _throw(r) {
var n = this.s["return"];
return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
}
}, new AsyncFromSyncIterator(r);
}
module.exports = _asyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,26 @@
function asyncGeneratorStep(n, t, e, r, o, a, c) {
try {
var i = n[a](c),
u = i.value;
} catch (n) {
return void e(n);
}
i.done ? t(u) : Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
return function () {
var t = this,
e = arguments;
return new Promise(function (r, o) {
var a = n.apply(t, e);
function _next(n) {
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
}
function _throw(n) {
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
}
_next(void 0);
});
};
}
module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var OverloadYield = require("./OverloadYield.js");
function _awaitAsyncGenerator(e) {
return new OverloadYield(e, 0);
}
module.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

7
node_modules/@babel/runtime/helpers/callSuper.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
var getPrototypeOf = require("./getPrototypeOf.js");
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
var possibleConstructorReturn = require("./possibleConstructorReturn.js");
function _callSuper(t, o, e) {
return o = getPrototypeOf(o), possibleConstructorReturn(t, isNativeReflectConstruct() ? Reflect.construct(o, e || [], getPrototypeOf(t).constructor) : o.apply(t, e));
}
module.exports = _callSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;

6
node_modules/@babel/runtime/helpers/checkInRHS.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
var _typeof = require("./typeof.js")["default"];
function _checkInRHS(e) {
if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null"));
return e;
}
module.exports = _checkInRHS, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _checkPrivateRedeclaration(e, t) {
if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
}
module.exports = _checkPrivateRedeclaration, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,10 @@
function _classApplyDescriptorDestructureSet(e, t) {
if (t.set) return "__destrObj" in t || (t.__destrObj = {
set value(r) {
t.set.call(e, r);
}
}), t.__destrObj;
if (!t.writable) throw new TypeError("attempted to set read only private field");
return t;
}
module.exports = _classApplyDescriptorDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classApplyDescriptorGet(e, t) {
return t.get ? t.get.call(e) : t.value;
}
module.exports = _classApplyDescriptorGet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
function _classApplyDescriptorSet(e, t, l) {
if (t.set) t.set.call(e, l);else {
if (!t.writable) throw new TypeError("attempted to set read only private field");
t.value = l;
}
}
module.exports = _classApplyDescriptorSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classCallCheck(a, n) {
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
}
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classCheckPrivateStaticAccess(s, a, r) {
return assertClassBrand(a, s, r);
}
module.exports = _classCheckPrivateStaticAccess, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classCheckPrivateStaticFieldDescriptor(t, e) {
if (void 0 === t) throw new TypeError("attempted to " + e + " private static field before its declaration");
}
module.exports = _classCheckPrivateStaticFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var classPrivateFieldGet2 = require("./classPrivateFieldGet2.js");
function _classExtractFieldDescriptor(e, t) {
return classPrivateFieldGet2(t, e);
}
module.exports = _classExtractFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classNameTDZError(e) {
throw new ReferenceError('Class "' + e + '" cannot be referenced in computed property keys.');
}
module.exports = _classNameTDZError, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
var classPrivateFieldGet2 = require("./classPrivateFieldGet2.js");
function _classPrivateFieldDestructureSet(e, t) {
var r = classPrivateFieldGet2(t, e);
return classApplyDescriptorDestructureSet(e, r);
}
module.exports = _classPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
var classPrivateFieldGet2 = require("./classPrivateFieldGet2.js");
function _classPrivateFieldGet(e, t) {
var r = classPrivateFieldGet2(t, e);
return classApplyDescriptorGet(e, r);
}
module.exports = _classPrivateFieldGet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classPrivateFieldGet2(s, a) {
return s.get(assertClassBrand(s, a));
}
module.exports = _classPrivateFieldGet2, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
function _classPrivateFieldInitSpec(e, t, a) {
checkPrivateRedeclaration(e, t), t.set(e, a);
}
module.exports = _classPrivateFieldInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
function _classPrivateFieldBase(e, t) {
if (!{}.hasOwnProperty.call(e, t)) throw new TypeError("attempted to use private field on non-instance");
return e;
}
module.exports = _classPrivateFieldBase, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var id = 0;
function _classPrivateFieldKey(e) {
return "__private_" + id++ + "_" + e;
}
module.exports = _classPrivateFieldKey, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
var classPrivateFieldGet2 = require("./classPrivateFieldGet2.js");
function _classPrivateFieldSet(e, t, r) {
var s = classPrivateFieldGet2(t, e);
return classApplyDescriptorSet(e, s, r), r;
}
module.exports = _classPrivateFieldSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classPrivateFieldSet2(s, a, r) {
return s.set(assertClassBrand(s, a), r), r;
}
module.exports = _classPrivateFieldSet2, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classPrivateGetter(s, r, a) {
return a(assertClassBrand(s, r));
}
module.exports = _classPrivateGetter, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classPrivateMethodGet(s, a, r) {
return assertClassBrand(a, s), r;
}
module.exports = _classPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
function _classPrivateMethodInitSpec(e, a) {
checkPrivateRedeclaration(e, a), a.add(e);
}
module.exports = _classPrivateMethodInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classPrivateMethodSet() {
throw new TypeError("attempted to reassign private method");
}
module.exports = _classPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classPrivateSetter(s, r, a, t) {
return r(assertClassBrand(s, a), t), t;
}
module.exports = _classPrivateSetter, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
var assertClassBrand = require("./assertClassBrand.js");
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
function _classStaticPrivateFieldDestructureSet(t, r, s) {
return assertClassBrand(r, t), classCheckPrivateStaticFieldDescriptor(s, "set"), classApplyDescriptorDestructureSet(t, s);
}
module.exports = _classStaticPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
var assertClassBrand = require("./assertClassBrand.js");
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
function _classStaticPrivateFieldSpecGet(t, s, r) {
return assertClassBrand(s, t), classCheckPrivateStaticFieldDescriptor(r, "get"), classApplyDescriptorGet(t, r);
}
module.exports = _classStaticPrivateFieldSpecGet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,7 @@
var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
var assertClassBrand = require("./assertClassBrand.js");
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
function _classStaticPrivateFieldSpecSet(s, t, r, e) {
return assertClassBrand(t, s), classCheckPrivateStaticFieldDescriptor(r, "set"), classApplyDescriptorSet(s, r, e), e;
}
module.exports = _classStaticPrivateFieldSpecSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,5 @@
var assertClassBrand = require("./assertClassBrand.js");
function _classStaticPrivateMethodGet(s, a, t) {
return assertClassBrand(a, s), t;
}
module.exports = _classStaticPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,4 @@
function _classStaticPrivateMethodSet() {
throw new TypeError("attempted to set read only static private field");
}
module.exports = _classStaticPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports;

10
node_modules/@babel/runtime/helpers/construct.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
var setPrototypeOf = require("./setPrototypeOf.js");
function _construct(t, e, r) {
if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
var o = [null];
o.push.apply(o, e);
var p = new (t.bind.apply(t, o))();
return r && setPrototypeOf(p, r.prototype), p;
}
module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;

13
node_modules/@babel/runtime/helpers/createClass.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
var toPropertyKey = require("./toPropertyKey.js");
function _defineProperties(e, r) {
for (var t = 0; t < r.length; t++) {
var o = r[t];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
}
}
function _createClass(e, r, t) {
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
writable: !1
}), e;
}
module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,50 @@
var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
function _createForOfIteratorHelper(r, e) {
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
if (!t) {
if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
t && (r = t);
var _n = 0,
F = function F() {};
return {
s: F,
n: function n() {
return _n >= r.length ? {
done: !0
} : {
done: !1,
value: r[_n++]
};
},
e: function e(r) {
throw r;
},
f: F
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var o,
a = !0,
u = !1;
return {
s: function s() {
t = t.call(r);
},
n: function n() {
var r = t.next();
return a = r.done, r;
},
e: function e(r) {
u = !0, o = r;
},
f: function f() {
try {
a || null == t["return"] || t["return"]();
} finally {
if (u) throw o;
}
}
};
}
module.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,19 @@
var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
function _createForOfIteratorHelperLoose(r, e) {
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
if (t) return (t = t.call(r)).next.bind(t);
if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
t && (r = t);
var o = 0;
return function () {
return o >= r.length ? {
done: !0
} : {
done: !1,
value: r[o++]
};
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _createForOfIteratorHelperLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;

16
node_modules/@babel/runtime/helpers/createSuper.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
var getPrototypeOf = require("./getPrototypeOf.js");
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
var possibleConstructorReturn = require("./possibleConstructorReturn.js");
function _createSuper(t) {
var r = isNativeReflectConstruct();
return function () {
var e,
o = getPrototypeOf(t);
if (r) {
var s = getPrototypeOf(this).constructor;
e = Reflect.construct(o, arguments, s);
} else e = o.apply(this, arguments);
return possibleConstructorReturn(this, e);
};
}
module.exports = _createSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;

250
node_modules/@babel/runtime/helpers/decorate.js generated vendored Normal file
View File

@@ -0,0 +1,250 @@
var toArray = require("./toArray.js");
var toPropertyKey = require("./toPropertyKey.js");
function _decorate(e, r, t, i) {
var o = _getDecoratorsApi();
if (i) for (var n = 0; n < i.length; n++) o = i[n](o);
var s = r(function (e) {
o.initializeInstanceElements(e, a.elements);
}, t),
a = o.decorateClass(_coalesceClassElements(s.d.map(_createElementDescriptor)), e);
return o.initializeClassElements(s.F, a.elements), o.runClassFinishers(s.F, a.finishers);
}
function _getDecoratorsApi() {
_getDecoratorsApi = function _getDecoratorsApi() {
return e;
};
var e = {
elementsDefinitionOrder: [["method"], ["field"]],
initializeInstanceElements: function initializeInstanceElements(e, r) {
["method", "field"].forEach(function (t) {
r.forEach(function (r) {
r.kind === t && "own" === r.placement && this.defineClassElement(e, r);
}, this);
}, this);
},
initializeClassElements: function initializeClassElements(e, r) {
var t = e.prototype;
["method", "field"].forEach(function (i) {
r.forEach(function (r) {
var o = r.placement;
if (r.kind === i && ("static" === o || "prototype" === o)) {
var n = "static" === o ? e : t;
this.defineClassElement(n, r);
}
}, this);
}, this);
},
defineClassElement: function defineClassElement(e, r) {
var t = r.descriptor;
if ("field" === r.kind) {
var i = r.initializer;
t = {
enumerable: t.enumerable,
writable: t.writable,
configurable: t.configurable,
value: void 0 === i ? void 0 : i.call(e)
};
}
Object.defineProperty(e, r.key, t);
},
decorateClass: function decorateClass(e, r) {
var t = [],
i = [],
o = {
"static": [],
prototype: [],
own: []
};
if (e.forEach(function (e) {
this.addElementPlacement(e, o);
}, this), e.forEach(function (e) {
if (!_hasDecorators(e)) return t.push(e);
var r = this.decorateElement(e, o);
t.push(r.element), t.push.apply(t, r.extras), i.push.apply(i, r.finishers);
}, this), !r) return {
elements: t,
finishers: i
};
var n = this.decorateConstructor(t, r);
return i.push.apply(i, n.finishers), n.finishers = i, n;
},
addElementPlacement: function addElementPlacement(e, r, t) {
var i = r[e.placement];
if (!t && -1 !== i.indexOf(e.key)) throw new TypeError("Duplicated element (" + e.key + ")");
i.push(e.key);
},
decorateElement: function decorateElement(e, r) {
for (var t = [], i = [], o = e.decorators, n = o.length - 1; n >= 0; n--) {
var s = r[e.placement];
s.splice(s.indexOf(e.key), 1);
var a = this.fromElementDescriptor(e),
l = this.toElementFinisherExtras((0, o[n])(a) || a);
e = l.element, this.addElementPlacement(e, r), l.finisher && i.push(l.finisher);
var c = l.extras;
if (c) {
for (var p = 0; p < c.length; p++) this.addElementPlacement(c[p], r);
t.push.apply(t, c);
}
}
return {
element: e,
finishers: i,
extras: t
};
},
decorateConstructor: function decorateConstructor(e, r) {
for (var t = [], i = r.length - 1; i >= 0; i--) {
var o = this.fromClassDescriptor(e),
n = this.toClassDescriptor((0, r[i])(o) || o);
if (void 0 !== n.finisher && t.push(n.finisher), void 0 !== n.elements) {
e = n.elements;
for (var s = 0; s < e.length - 1; s++) for (var a = s + 1; a < e.length; a++) if (e[s].key === e[a].key && e[s].placement === e[a].placement) throw new TypeError("Duplicated element (" + e[s].key + ")");
}
}
return {
elements: e,
finishers: t
};
},
fromElementDescriptor: function fromElementDescriptor(e) {
var r = {
kind: e.kind,
key: e.key,
placement: e.placement,
descriptor: e.descriptor
};
return Object.defineProperty(r, Symbol.toStringTag, {
value: "Descriptor",
configurable: !0
}), "field" === e.kind && (r.initializer = e.initializer), r;
},
toElementDescriptors: function toElementDescriptors(e) {
if (void 0 !== e) return toArray(e).map(function (e) {
var r = this.toElementDescriptor(e);
return this.disallowProperty(e, "finisher", "An element descriptor"), this.disallowProperty(e, "extras", "An element descriptor"), r;
}, this);
},
toElementDescriptor: function toElementDescriptor(e) {
var r = e.kind + "";
if ("method" !== r && "field" !== r) throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "' + r + '"');
var t = toPropertyKey(e.key),
i = e.placement + "";
if ("static" !== i && "prototype" !== i && "own" !== i) throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "' + i + '"');
var o = e.descriptor;
this.disallowProperty(e, "elements", "An element descriptor");
var n = {
kind: r,
key: t,
placement: i,
descriptor: Object.assign({}, o)
};
return "field" !== r ? this.disallowProperty(e, "initializer", "A method descriptor") : (this.disallowProperty(o, "get", "The property descriptor of a field descriptor"), this.disallowProperty(o, "set", "The property descriptor of a field descriptor"), this.disallowProperty(o, "value", "The property descriptor of a field descriptor"), n.initializer = e.initializer), n;
},
toElementFinisherExtras: function toElementFinisherExtras(e) {
return {
element: this.toElementDescriptor(e),
finisher: _optionalCallableProperty(e, "finisher"),
extras: this.toElementDescriptors(e.extras)
};
},
fromClassDescriptor: function fromClassDescriptor(e) {
var r = {
kind: "class",
elements: e.map(this.fromElementDescriptor, this)
};
return Object.defineProperty(r, Symbol.toStringTag, {
value: "Descriptor",
configurable: !0
}), r;
},
toClassDescriptor: function toClassDescriptor(e) {
var r = e.kind + "";
if ("class" !== r) throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "' + r + '"');
this.disallowProperty(e, "key", "A class descriptor"), this.disallowProperty(e, "placement", "A class descriptor"), this.disallowProperty(e, "descriptor", "A class descriptor"), this.disallowProperty(e, "initializer", "A class descriptor"), this.disallowProperty(e, "extras", "A class descriptor");
var t = _optionalCallableProperty(e, "finisher");
return {
elements: this.toElementDescriptors(e.elements),
finisher: t
};
},
runClassFinishers: function runClassFinishers(e, r) {
for (var t = 0; t < r.length; t++) {
var i = (0, r[t])(e);
if (void 0 !== i) {
if ("function" != typeof i) throw new TypeError("Finishers must return a constructor.");
e = i;
}
}
return e;
},
disallowProperty: function disallowProperty(e, r, t) {
if (void 0 !== e[r]) throw new TypeError(t + " can't have a ." + r + " property.");
}
};
return e;
}
function _createElementDescriptor(e) {
var r,
t = toPropertyKey(e.key);
"method" === e.kind ? r = {
value: e.value,
writable: !0,
configurable: !0,
enumerable: !1
} : "get" === e.kind ? r = {
get: e.value,
configurable: !0,
enumerable: !1
} : "set" === e.kind ? r = {
set: e.value,
configurable: !0,
enumerable: !1
} : "field" === e.kind && (r = {
configurable: !0,
writable: !0,
enumerable: !0
});
var i = {
kind: "field" === e.kind ? "field" : "method",
key: t,
placement: e["static"] ? "static" : "field" === e.kind ? "own" : "prototype",
descriptor: r
};
return e.decorators && (i.decorators = e.decorators), "field" === e.kind && (i.initializer = e.value), i;
}
function _coalesceGetterSetter(e, r) {
void 0 !== e.descriptor.get ? r.descriptor.get = e.descriptor.get : r.descriptor.set = e.descriptor.set;
}
function _coalesceClassElements(e) {
for (var r = [], isSameElement = function isSameElement(e) {
return "method" === e.kind && e.key === o.key && e.placement === o.placement;
}, t = 0; t < e.length; t++) {
var i,
o = e[t];
if ("method" === o.kind && (i = r.find(isSameElement))) {
if (_isDataDescriptor(o.descriptor) || _isDataDescriptor(i.descriptor)) {
if (_hasDecorators(o) || _hasDecorators(i)) throw new ReferenceError("Duplicated methods (" + o.key + ") can't be decorated.");
i.descriptor = o.descriptor;
} else {
if (_hasDecorators(o)) {
if (_hasDecorators(i)) throw new ReferenceError("Decorators can't be placed on different accessors with for the same property (" + o.key + ").");
i.decorators = o.decorators;
}
_coalesceGetterSetter(o, i);
}
} else r.push(o);
}
return r;
}
function _hasDecorators(e) {
return e.decorators && e.decorators.length;
}
function _isDataDescriptor(e) {
return void 0 !== e && !(void 0 === e.value && void 0 === e.writable);
}
function _optionalCallableProperty(e, r) {
var t = e[r];
if (void 0 !== t && "function" != typeof t) throw new TypeError("Expected '" + r + "' to be a function");
return t;
}
module.exports = _decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;

9
node_modules/@babel/runtime/helpers/defaults.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
function _defaults(e, r) {
for (var t = Object.getOwnPropertyNames(r), o = 0; o < t.length; o++) {
var n = t[o],
a = Object.getOwnPropertyDescriptor(r, n);
a && a.configurable && void 0 === e[n] && Object.defineProperty(e, n, a);
}
return e;
}
module.exports = _defaults, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,8 @@
function _defineAccessor(e, r, n, t) {
var c = {
configurable: !0,
enumerable: !0
};
return c[e] = t, Object.defineProperty(r, n, c);
}
module.exports = _defineAccessor, module.exports.__esModule = true, module.exports["default"] = module.exports;

View File

@@ -0,0 +1,12 @@
function _defineEnumerableProperties(e, r) {
for (var t in r) {
var n = r[t];
n.configurable = n.enumerable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, t, n);
}
if (Object.getOwnPropertySymbols) for (var a = Object.getOwnPropertySymbols(r), b = 0; b < a.length; b++) {
var i = a[b];
(n = r[i]).configurable = n.enumerable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, i, n);
}
return e;
}
module.exports = _defineEnumerableProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;

10
node_modules/@babel/runtime/helpers/defineProperty.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
var toPropertyKey = require("./toPropertyKey.js");
function _defineProperty(e, r, t) {
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;

Some files were not shown because too many files have changed in this diff Show More