configuration/strings/privacy.strings.ts

configuration/strings/privacy.strings.ts is a file in Bane's Lab Site. 119 lines of code and 7 definitions.

import { AUTHOR_ADDRESS, SITE_URL, pagePath } from "#core/assets/link.assets";
import { COLLECTION_SECTION, PARTIES_SECTION, SERVER_SECTION } from "#configuration/strings/privacy.fragment.strings";
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";
import { PRIVACY_SHARE } from "#configuration/strings/page.strings";
import { REPLY_NOTE } from "#configuration/strings/company.strings";

export const PRIVACY_META: DocumentMeta = {
    closing: "There is no personal information to entrust to me, and I intend to keep it that way.",
    effectiveDate: "September 19, 2026",
    intro: "Bane's Lab is a static informational website. I do not collect, store, or process personal data. This policy describes the information your browser exchanges with the server during a visit and what happens to it.",
    lastUpdated: "September 24, 2026",
    title: PRIVACY_SHARE.headline,
    version: "2.1.1",
};

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: AUTHOR_ADDRESS, 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 I hold no personal data about you, there is generally nothing to access, correct, export, or delete.",
            title: "Data Subject Rights",
        },
        {
            content: `If you believe I hold or have processed personal data about you, contact me at ${AUTHOR_ADDRESS} and I will tell you 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 version and update date at the top of this page identify the current policy.",
            title: "Updates",
        },
    ],
    title: "Changes to This Policy",
};

const CONTACT_SECTION: Section = {
    icon: PRIVACY_CONTACT_ICON,
    id: PRIVACY_CONTACT_SECTION_ID,
    subsections: [
        {
            blocks: [
                {
                    entries: [
                        { description: AUTHOR_ADDRESS, term: "Email" },
                        { description: REPLY_NOTE, term: "Note" },
                    ],
                    kind: "glossary",
                },
            ],
            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,
];