import { COLLECTION_SECTION, PARTIES_SECTION, SERVER_SECTION } from "#configuration/strings/privacy.fragment.strings"; import { CONTACT_MAIL, SITE_URL, pagePath } from "#assets/link.assets"; import type { DocumentMeta, Section } from "#types/document.types"; import { PRIVACY_CHANGES_ICON, PRIVACY_CONTACT_ICON, PRIVACY_OPERATOR_ICON, PRIVACY_RIGHTS_ICON, PRIVACY_SECURITY_ICON, } from "#configuration/icons/privacy.icons"; import { PRIVACY_CHANGES_SECTION_ID, PRIVACY_CONTACT_SECTION_ID, PRIVACY_OPERATOR_SECTION_ID, PRIVACY_RIGHTS_SECTION_ID, PRIVACY_SECURITY_SECTION_ID, } from "#core/ids/privacy.ids"; import { INFORMATION_PAGE } from "#core/ids/page.ids"; export const PRIVACY_META: DocumentMeta = { closing: "There is no personal information to entrust to us, and we intend to keep it that way.", effectiveDate: "September 19, 2026", intro: "Bane's Lab is a static informational website. We do not collect, store, or process personal data. This policy describes what little information your browser exchanges with the server during a normal visit and what we do (and do not) do with it.", lastUpdated: "September 19, 2026", title: "Privacy Policy", version: "2.1.0", }; const OPERATOR_SECTION: Section = { icon: PRIVACY_OPERATOR_ICON, id: PRIVACY_OPERATOR_SECTION_ID, subsections: [ { blocks: [ { entries: [ { description: "Bane's Lab", term: "Name" }, { description: "Jay Baleine", term: "Operator" }, { description: CONTACT_MAIL, term: "Contact Email" }, { description: SITE_URL, term: "Website" }, ], kind: "glossary", }, ], title: "Contact", }, ], title: "Site Operator", }; const RIGHTS_SECTION: Section = { icon: PRIVACY_RIGHTS_ICON, id: PRIVACY_RIGHTS_SECTION_ID, subsections: [ { content: "Most data-subject rights under GDPR, UK GDPR, CCPA, and similar regulations apply to entities that hold personal data about you. Since we do not hold any personal data about you, there is generally nothing to access, correct, export, or delete.", title: "Data Subject Rights", }, { content: `If you believe we have or have processed personal data about you, contact us at ${CONTACT_MAIL} and we will respond honestly about what (if anything) exists.`, title: "If You Have Questions", }, ], title: "Your Rights", }; const SECURITY_SECTION: Section = { icon: PRIVACY_SECURITY_ICON, id: PRIVACY_SECURITY_SECTION_ID, subsections: [ { blocks: [{ kind: "link", links: [{ href: pagePath(INFORMATION_PAGE), text: "Security information" }] }], content: "All content is delivered over HTTPS with modern TLS, strict security headers, and a hardened reverse proxy. Technical details are documented on the Info page.", title: "Protections in Place", }, ], title: "Security", }; const CHANGES_SECTION: Section = { icon: PRIVACY_CHANGES_ICON, id: PRIVACY_CHANGES_SECTION_ID, subsections: [ { content: "This policy is updated when site behavior changes. The effective date at the top of this page reflects the current version.", title: "Updates", }, ], title: "Changes to This Policy", }; const CONTACT_SECTION: Section = { icon: PRIVACY_CONTACT_ICON, id: PRIVACY_CONTACT_SECTION_ID, subsections: [ { blocks: [ { entries: [ { description: CONTACT_MAIL, term: "Email" }, { description: "responses are best-effort, not guaranteed within a fixed window", term: "Note", }, ], kind: "glossary", }, ], content: "For any privacy-related question:", title: "Privacy Questions", }, ], title: "Contact", }; export const PRIVACY_SECTIONS: readonly Section[] = [ OPERATOR_SECTION, COLLECTION_SECTION, SERVER_SECTION, PARTIES_SECTION, RIGHTS_SECTION, SECURITY_SECTION, CHANGES_SECTION, CONTACT_SECTION, ];