diff --git a/.prettierignore b/.prettierignore index 67f16de..35de289 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,7 +5,7 @@ # This file is part of Network Pro. # Custom ignores - +static/.well-known/dnt-policy.txt # Claude Code .claude diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bb59bf..c7b9a5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,28 @@ version increments reflecting both user-visible and operational impact. --- +## [1.27.2] - 2026-04-25 + +### Added + +- Added a site-wide W3C Do Not Track tracking status resource at `/.well-known/dnt`. +- Added the DNT tracking status resource to `sitemap.xml`. + +### Changed + +- Bumped project version to `v1.27.2`. +- Updated `npm run dev` and `npm run preview` so they start local servers without automatically opening a browser. +- Refreshed sitemap metadata for updated public pages and privacy well-known resources. +- Updated the HeliBoard FOSS Spotlight GitHub link to the current `HeliBorg/HeliBoard` repository. +- Excluded the human-readable DNT policy text file from Prettier formatting. + +### Removed + +- Removed stale commented debug logging from shared layout, metadata, legal, FOSS, PGP, services, terms, and home page components. +- Removed `/CNAME` from the service worker ignored-path list. + +--- + ## [1.27.1] - 2026-04-25 ### Changed @@ -2779,11 +2801,10 @@ This enables analytics filtering and CSP hardening for the audit environment. - Deprecated `shouldTrackUser()` logic and legacy cookie checks. ---- - -[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.27.1...HEAD +[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.27.2...HEAD +[1.27.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.27.2 [1.27.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.27.1 [1.27.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.27.0 [1.26.22]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.22 @@ -2885,4 +2906,4 @@ This enables analytics filtering and CSP hardening for the audit environment. [1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1 [1.12.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.0 - + diff --git a/package-lock.json b/package-lock.json index f4c146f..b8678ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@networkpro/web", - "version": "1.27.1", + "version": "1.27.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@networkpro/web", - "version": "1.27.1", + "version": "1.27.2", "hasInstallScript": true, "license": "CC-BY-4.0 OR GPL-3.0-or-later", "dependencies": { diff --git a/package.json b/package.json index ae3846f..a1d53cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@networkpro/web", "private": false, - "version": "1.27.1", + "version": "1.27.2", "description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies", "keywords": [ "advocacy", @@ -36,7 +36,7 @@ "npm": ">=10.0.0 <12" }, "scripts": { - "dev": "vite dev --open", + "dev": "vite dev", "dev:audit": "vite --mode audit", "start": "npm run dev", "dev:vercel": "vercel dev", @@ -45,7 +45,7 @@ "build:vercel": "vercel build", "build:codex": "vite build --mode codex", "dev:codex": "vite dev --mode codex", - "preview": "vite preview --open", + "preview": "vite preview", "css:bundle": "node scripts/bundleCss.js", "prepare": "svelte-kit sync && npx simple-git-hooks || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", diff --git a/src/lib/components/Badges.svelte b/src/lib/components/Badges.svelte index 1f50865..be18bfc 100644 --- a/src/lib/components/Badges.svelte +++ b/src/lib/components/Badges.svelte @@ -12,11 +12,6 @@ This file is part of Network Pro. import { ccBadge, gplBadge } from '$lib'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE } = CONSTANTS; const ccbyLink = `${base}/legal#cc-by`; diff --git a/src/lib/components/LegalNav.svelte b/src/lib/components/LegalNav.svelte index 2112928..a81874a 100644 --- a/src/lib/components/LegalNav.svelte +++ b/src/lib/components/LegalNav.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE } = CONSTANTS; const termsLink = `${base}/terms-of-use`; diff --git a/src/lib/components/MetaTags.svelte b/src/lib/components/MetaTags.svelte index 37349dd..0914e82 100644 --- a/src/lib/components/MetaTags.svelte +++ b/src/lib/components/MetaTags.svelte @@ -15,8 +15,6 @@ This file is part of Network Pro. import { CONSTANTS } from '$lib'; - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, LINKS } = CONSTANTS; // Default fallbacks (for missing or undefined props) diff --git a/src/lib/components/foss/FossItemContent.svelte b/src/lib/components/foss/FossItemContent.svelte index fdd1b6e..736b20a 100644 --- a/src/lib/components/foss/FossItemContent.svelte +++ b/src/lib/components/foss/FossItemContent.svelte @@ -19,8 +19,6 @@ This file is part of Network Pro. import { CONSTANTS } from '$lib'; - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE, NAV } = CONSTANTS; /** @type {"async"} */ diff --git a/src/lib/components/layout/Footer.svelte b/src/lib/components/layout/Footer.svelte index f231538..bdcc62c 100644 --- a/src/lib/components/layout/Footer.svelte +++ b/src/lib/components/layout/Footer.svelte @@ -11,9 +11,6 @@ This file is part of Network Pro. import { bySvg, ccSvg } from '$lib'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS; // Dynamic links for licensing and trademark diff --git a/src/lib/components/layout/HeaderDefault.svelte b/src/lib/components/layout/HeaderDefault.svelte index f0e3b25..4f64822 100644 --- a/src/lib/components/layout/HeaderDefault.svelte +++ b/src/lib/components/layout/HeaderDefault.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE, LINKS } = CONSTANTS; const homeLink = base || '/'; diff --git a/src/lib/components/layout/HeaderHome.svelte b/src/lib/components/layout/HeaderHome.svelte index 5b49cde..c866aa8 100644 --- a/src/lib/components/layout/HeaderHome.svelte +++ b/src/lib/components/layout/HeaderHome.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE, LINKS } = CONSTANTS; const aboutLink = `${base}/about`; diff --git a/src/lib/data/fossData.js b/src/lib/data/fossData.js index e51cdb8..b80c8c0 100644 --- a/src/lib/data/fossData.js +++ b/src/lib/data/fossData.js @@ -11,7 +11,7 @@ This file is part of Network Pro. * @description Data for FOSS Spotlight route * @module src/lib/data * @author Scott Lopez - * @updated 2025-10-20 + * @updated 2026-04-25 */ // Import FOSS images @@ -315,7 +315,7 @@ export const fossData = [ links: [ { label: "GitHub", - href: "https://github.com/Helium314/HeliBoard", + href: "https://github.com/HeliBorg/HeliBoard", }, { label: "F-Droid", diff --git a/src/lib/pages/AboutContent.svelte b/src/lib/pages/AboutContent.svelte index e85fc0d..08610e7 100644 --- a/src/lib/pages/AboutContent.svelte +++ b/src/lib/pages/AboutContent.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { CONSTANTS, getQR, PGP_KEYS } from '$lib'; import { base } from '$app/paths'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, CONTACT, PAGE } = CONSTANTS; const pgpKeys = PGP_KEYS.filter( (k) => k.id === 'pgp-support' || k.id === 'pgp-contact', diff --git a/src/lib/pages/FossContent.svelte b/src/lib/pages/FossContent.svelte index 16f1922..4f0a0ea 100644 --- a/src/lib/pages/FossContent.svelte +++ b/src/lib/pages/FossContent.svelte @@ -11,8 +11,6 @@ This file is part of Network Pro. import FossItemContent from '$lib/components/foss/FossItemContent.svelte'; import { CONSTANTS } from '$lib'; - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { PAGE } = CONSTANTS; /** diff --git a/src/lib/pages/HomeContent.svelte b/src/lib/pages/HomeContent.svelte index c98a5dc..01ee2a5 100644 --- a/src/lib/pages/HomeContent.svelte +++ b/src/lib/pages/HomeContent.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, CONTACT, LINKS, PAGE, NAV } = CONSTANTS; /** diff --git a/src/lib/pages/PGPContent.svelte b/src/lib/pages/PGPContent.svelte index c846330..a87b8e5 100644 --- a/src/lib/pages/PGPContent.svelte +++ b/src/lib/pages/PGPContent.svelte @@ -11,11 +11,6 @@ This file is part of Network Pro. import { CodeBlock } from '$lib/components'; import { base } from '$app/paths'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { CONTACT, PAGE } = CONSTANTS; /** diff --git a/src/lib/pages/ServicesContent.svelte b/src/lib/pages/ServicesContent.svelte index b9acf49..d059ec4 100644 --- a/src/lib/pages/ServicesContent.svelte +++ b/src/lib/pages/ServicesContent.svelte @@ -11,11 +11,6 @@ This file is part of Network Pro. import { CONSTANTS } from '$lib'; import { ServiceSummaryTable } from '$lib/components'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, CONTACT, PAGE, LINKS, NAV } = CONSTANTS; /** diff --git a/src/lib/pages/TermsConditionsContent.svelte b/src/lib/pages/TermsConditionsContent.svelte index 4c3873f..7d79940 100644 --- a/src/lib/pages/TermsConditionsContent.svelte +++ b/src/lib/pages/TermsConditionsContent.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, PAGE, NAV } = CONSTANTS; /** diff --git a/src/lib/pages/TermsUseContent.svelte b/src/lib/pages/TermsUseContent.svelte index 4620d01..deddd60 100644 --- a/src/lib/pages/TermsUseContent.svelte +++ b/src/lib/pages/TermsUseContent.svelte @@ -10,11 +10,6 @@ This file is part of Network Pro. import { base } from '$app/paths'; import { CONSTANTS } from '$lib'; - // Log the base path to verify its value - //console.log("Base path:", base); - - //console.log(CONSTANTS.COMPANY_INFO.APP_NAME); - const { COMPANY_INFO, PAGE, NAV } = CONSTANTS; /** diff --git a/src/routes/.well-known/dnt/+server.js b/src/routes/.well-known/dnt/+server.js new file mode 100644 index 0000000..888a4e9 --- /dev/null +++ b/src/routes/.well-known/dnt/+server.js @@ -0,0 +1,37 @@ +/* ========================================================================== +src/routes/.well-known/dnt/+server.js + +Copyright © 2025-2026 Network Pro Strategies (Network Pro™) +SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later +This file is part of Network Pro. +========================================================================== */ + +/** + * @file +server.js + * @description Site-wide W3C Do Not Track tracking status resource. + * @see https://w3c.github.io/dnt/drafts/tracking-dnt.html#status-representation + * @module src/routes/.well-known/dnt + * @author Scott Lopez + * @updated 2026-04-25 + */ + +/** + * @type {import('./$types').RequestHandler} + */ +export function GET() { + return new Response( + // `N` signals that data collected by this origin is not used for tracking. + JSON.stringify({ + tracking: 'N', + policy: '/.well-known/dnt-policy.txt', + config: '/privacy#tracking', + }), + { + headers: { + 'Content-Type': 'application/tracking-status+json', + // W3C TSR clients may cache stable site-wide status for preflight checks. + 'Cache-Control': 'public, max-age=86400', + }, + }, + ); +} diff --git a/src/service-worker.js b/src/service-worker.js index 8c94c5a..3ce9d8a 100644 --- a/src/service-worker.js +++ b/src/service-worker.js @@ -49,7 +49,6 @@ const IGNORE_PATHS = new Set([ '/b173de6c44c144c1b186841b88d51c67.txt', '/robots.txt', '/sitemap.xml', - '/CNAME', ]); /** @type {string[]} */ diff --git a/static/sitemap.xml b/static/sitemap.xml index 12af0ab..f49e88d 100644 --- a/static/sitemap.xml +++ b/static/sitemap.xml @@ -1,5 +1,5 @@ - + @@ -7,7 +7,7 @@ https://netwk.pro - 2026-02-07 + 2026-04-25 weekly @@ -19,7 +19,7 @@ https://netwk.pro/foss - 2025-11-09 + 2026-04-25 monthly @@ -31,7 +31,7 @@ https://netwk.pro/about - 2025-12-27 + 2025-04-26 monthly @@ -43,7 +43,7 @@ https://netwk.pro/privacy-dashboard - 2025-11-09 + 2026-04-25 monthly @@ -55,7 +55,7 @@ https://netwk.pro/privacy - 2026-01-11 + 2026-04-25 monthly @@ -67,7 +67,7 @@ https://netwk.pro/legal - 2026-02-01 + 2026-04-25 monthly @@ -79,7 +79,7 @@ https://netwk.pro/terms-of-use - 2026-01-11 + 2026-04-25 monthly @@ -91,7 +91,7 @@ https://netwk.pro/terms-conditions - 2025-11-09 + 2026-04-25 monthly @@ -103,7 +103,7 @@ https://netwk.pro/pgp - 2025-11-09 + 2026-04-25 monthly @@ -159,6 +159,18 @@ + + + https://netwk.pro/.well-known/dnt + + 2026-04-26 + + yearly + + 0.2 + + + https://netwk.pro/.well-known/gpc.json