@networkpro/web 1.25.18 → 1.25.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,7 @@ jobs:
27
27
 
28
28
  steps:
29
29
  - name: Checkout master branch
30
- uses: actions/checkout@v5
30
+ uses: actions/checkout@v6
31
31
  with:
32
32
  ref: master
33
33
  fetch-depth: 0 # Required to push to another branch
@@ -33,7 +33,7 @@ jobs:
33
33
 
34
34
  steps:
35
35
  - name: Checkout repository
36
- uses: actions/checkout@v5
36
+ uses: actions/checkout@v6
37
37
 
38
38
  - name: Set up Node.js
39
39
  uses: actions/setup-node@v6
@@ -80,7 +80,7 @@ jobs:
80
80
 
81
81
  - name: Upload JSDoc results
82
82
  if: ${{ steps.jsdoc_lint.outputs.jsdoc_count != 0 }}
83
- uses: actions/upload-artifact@v4
83
+ uses: actions/upload-artifact@v6
84
84
  with:
85
85
  name: jsdoc-lint-results
86
86
  path: jsdoc-lint-output.txt
@@ -95,7 +95,7 @@ jobs:
95
95
  run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
96
96
 
97
97
  - name: Upload source archive
98
- uses: actions/upload-artifact@v5
98
+ uses: actions/upload-artifact@v6
99
99
  with:
100
100
  name: clean-source
101
101
  path: clean-source.tar.gz
@@ -108,7 +108,7 @@ jobs:
108
108
 
109
109
  steps:
110
110
  - name: Download clean source archive
111
- uses: actions/download-artifact@v5
111
+ uses: actions/download-artifact@v7
112
112
  with:
113
113
  name: clean-source
114
114
  path: ./
@@ -164,7 +164,7 @@ jobs:
164
164
 
165
165
  steps:
166
166
  - name: Download clean source archive
167
- uses: actions/download-artifact@v5
167
+ uses: actions/download-artifact@v7
168
168
  with:
169
169
  name: clean-source
170
170
  path: ./
@@ -18,7 +18,7 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: 'Checkout Repository'
21
- uses: actions/checkout@v5
21
+ uses: actions/checkout@v6
22
22
 
23
23
  - name: 'Dependency Review'
24
24
  uses: actions/dependency-review-action@v4
@@ -31,7 +31,7 @@ jobs:
31
31
 
32
32
  steps:
33
33
  - name: Checkout Repository
34
- uses: actions/checkout@v5
34
+ uses: actions/checkout@v6
35
35
 
36
36
  - name: Authenticate GitHub CLI
37
37
  run: gh auth status
@@ -23,7 +23,7 @@ jobs:
23
23
 
24
24
  steps:
25
25
  - name: Checkout repo
26
- uses: actions/checkout@v5
26
+ uses: actions/checkout@v6
27
27
 
28
28
  - name: Set up Node.js
29
29
  uses: actions/setup-node@v6
@@ -26,7 +26,7 @@ jobs:
26
26
 
27
27
  steps:
28
28
  - name: Checkout repository
29
- uses: actions/checkout@v5
29
+ uses: actions/checkout@v6
30
30
 
31
31
  - name: Log ENV_MODE
32
32
  run: 'echo "ENV_MODE is set to: $ENV_MODE"'
@@ -109,7 +109,7 @@ jobs:
109
109
  echo "✅ Report saved as probely-scan-coverage.csv"
110
110
 
111
111
  - name: Upload report artifact
112
- uses: actions/upload-artifact@v5
112
+ uses: actions/upload-artifact@v6
113
113
  with:
114
114
  name: probely-scan-coverage
115
115
  path: probely-scan-coverage.csv
@@ -31,7 +31,7 @@ jobs:
31
31
 
32
32
  steps:
33
33
  - name: Checkout repository
34
- uses: actions/checkout@v5
34
+ uses: actions/checkout@v6
35
35
 
36
36
  - name: Set up Node.js
37
37
  uses: actions/setup-node@v6
@@ -79,7 +79,7 @@ jobs:
79
79
 
80
80
  - name: Upload JSDoc results
81
81
  if: ${{ steps.jsdoc_lint.outputs.jsdoc_count != 0 }}
82
- uses: actions/upload-artifact@v4
82
+ uses: actions/upload-artifact@v6
83
83
  with:
84
84
  name: jsdoc-lint-results
85
85
  path: jsdoc-lint-output.txt
@@ -94,7 +94,7 @@ jobs:
94
94
  run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
95
95
 
96
96
  - name: Upload source archive
97
- uses: actions/upload-artifact@v5
97
+ uses: actions/upload-artifact@v6
98
98
  with:
99
99
  name: clean-source
100
100
  path: clean-source.tar.gz
@@ -107,7 +107,7 @@ jobs:
107
107
 
108
108
  steps:
109
109
  - name: Download clean source archive
110
- uses: actions/download-artifact@v5
110
+ uses: actions/download-artifact@v7
111
111
  with:
112
112
  name: clean-source
113
113
  path: ./
@@ -168,7 +168,7 @@ jobs:
168
168
 
169
169
  steps:
170
170
  - name: Download clean source archive
171
- uses: actions/download-artifact@v5
171
+ uses: actions/download-artifact@v7
172
172
  with:
173
173
  name: clean-source
174
174
  path: ./
@@ -27,7 +27,7 @@ jobs:
27
27
  # ---------------------------------------------------------------------
28
28
  # Checkout the full repo history (needed for Gitleaks to scan all commits)
29
29
  # ---------------------------------------------------------------------
30
- - uses: actions/checkout@v5
30
+ - uses: actions/checkout@v6
31
31
  with:
32
32
  fetch-depth: 0
33
33
 
@@ -50,7 +50,7 @@ jobs:
50
50
  # ---------------------------------------------------------------------
51
51
  - name: Upload Gitleaks Report
52
52
  if: always() && (github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request')
53
- uses: actions/upload-artifact@v4
53
+ uses: actions/upload-artifact@v6
54
54
  with:
55
55
  name: gitleaks-report
56
56
  path: gitleaks-report.json
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
  steps:
43
43
  - name: Checkout repository
44
- uses: actions/checkout@v5
44
+ uses: actions/checkout@v6
45
45
 
46
46
  - name: Set up Node.js
47
47
  uses: actions/setup-node@v6
@@ -84,7 +84,7 @@ jobs:
84
84
 
85
85
  - name: Upload JSDoc results
86
86
  if: ${{ steps.jsdoc_lint.outputs.jsdoc_count != 0 }}
87
- uses: actions/upload-artifact@v4
87
+ uses: actions/upload-artifact@v6
88
88
  with:
89
89
  name: jsdoc-lint-results
90
90
  path: jsdoc-lint-output.txt
@@ -99,7 +99,7 @@ jobs:
99
99
  run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
100
100
 
101
101
  - name: Upload source archive
102
- uses: actions/upload-artifact@v5
102
+ uses: actions/upload-artifact@v6
103
103
  with:
104
104
  name: clean-source
105
105
  path: clean-source.tar.gz
@@ -112,7 +112,7 @@ jobs:
112
112
 
113
113
  steps:
114
114
  - name: Download clean source archive
115
- uses: actions/download-artifact@v5
115
+ uses: actions/download-artifact@v7
116
116
  with:
117
117
  name: clean-source
118
118
  path: ./
@@ -168,7 +168,7 @@ jobs:
168
168
 
169
169
  steps:
170
170
  - name: Download clean source archive
171
- uses: actions/download-artifact@v5
171
+ uses: actions/download-artifact@v7
172
172
  with:
173
173
  name: clean-source
174
174
  path: ./
package/.lighthouserc.cjs CHANGED
@@ -9,7 +9,7 @@ This file is part of Network Pro.
9
9
  module.exports = {
10
10
  ci: {
11
11
  collect: {
12
- url: ['https://audit.netwk.pro'],
12
+ url: ['https://netwk.pro'],
13
13
  numberOfRuns: 1,
14
14
  settings: {
15
15
  onlyCategories: [
package/.ncurc.cjs CHANGED
@@ -31,7 +31,7 @@ This file is part of Network Pro.
31
31
  /** @type {import('npm-check-updates').RunOptions} */
32
32
  module.exports = {
33
33
  // Ignore specific dependencies (prevent upgrades)
34
- reject: ['vitest', '@vitest/coverage-v8', 'prettier'],
34
+ reject: ['vitest', '@vitest/coverage-v8'],
35
35
 
36
36
  // Always upgrade devDependencies as well
37
37
  dep: 'prod,dev',
package/.node-version CHANGED
@@ -1 +1 @@
1
- 24.11.1
1
+ 24.12.0
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 24.11.1
1
+ 24.12.0
package/CHANGELOG.md CHANGED
@@ -14,7 +14,9 @@ This file is part of Network Pro.
14
14
 
15
15
  All notable changes to this project will be documented in this file.
16
16
 
17
- This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), though versioning and formatting may vary.
17
+ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
18
+ Version numbers use a **SemVer-inspired** `MAJOR.MINOR.PATCH` format, with
19
+ version increments reflecting both user-visible and operational impact.
18
20
 
19
21
  ---
20
22
 
@@ -22,6 +24,66 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
22
24
 
23
25
  ---
24
26
 
27
+ ## [1.25.20] - 2025-12-24
28
+
29
+ ### Added
30
+
31
+ - Added `VERSIONING.md` to document the project’s versioning strategy.
32
+
33
+ ### Changed
34
+
35
+ - Updated `.lighthouse.cjs` to utilize `https://netwk.pro` as the target.
36
+ - Removed **Services** route from `sitemap.xml` and refreshed last modified timestamps.
37
+ - Updated `README.md` to clarify the project's versioning strategy and changelog format.
38
+ - Updated `src/routes/+page.svelte` to apply `containerClass="readable"` to `<FullWidthSection>` for improved readability.
39
+ - Revised homepage and About page content (`HomeContent.svelte` and `AboutContent.svelte`) to better reflect the company’s current mission, focus, and messaging.
40
+ - Bumped project version to `v1.25.20`.
41
+
42
+ ### Removed
43
+
44
+ - Removed **Services** from primary navigation (`HeaderDefault.svelte` and `HeaderHome.svelte`).
45
+ - Removed references to home implementation services from `AboutContent.svelte`.
46
+ - This change reflects a clarified focus on internal research, education, advocacy, and selectively aligned consulting, rather than broad outward-facing service offerings.
47
+
48
+ ---
49
+
50
+ ## [1.25.19] - 2025-12-24
51
+
52
+ ### Changed
53
+
54
+ - Updated GitHub workflows to utilize `actions/checkout@v6`, `actions/upload-artifact@v6`, and `actions/download-artifact@v7`:
55
+ - `.github/workflows/templates/publish.template.yml`
56
+ - `.github/workflows/backup-branch.yml`
57
+ - `.github/workflows/build-and-publish.yml`
58
+ - `.github/workflows/dependency-review.yml`
59
+ - `.github/workflows/lighthouse.yml`
60
+ - `.github/workflows/meta-check.yml`
61
+ - `.github/workflows/playwright.yml`
62
+ - `.github/workflows/probely-scan.yml`
63
+ - `.github/workflows/publish-test.yml`
64
+ - `.github/workflows/secret-scan.yml`
65
+ - Corrected `README.md` to properly state that subsites are hosted on Vercel and Netlify.
66
+ - Updated `.node-version` and `.nvmrc` to utilize **Node.js** `v24.12.0`.
67
+ - Bumped project version to `v1.25.19`.
68
+ - Updated dependencies:
69
+ - `@eslint/js` `^9.39.1` → `^9.39.2`
70
+ - `@testing-library/svelte` `^5.2.9` → `^5.3.0`
71
+ - `autoprefixer` `^10.4.22` → `^10.4.23`
72
+ - `eslint` `^9.39.1` → `^9.39.2`
73
+ - `prettier-plugin-svelte` `^3.4.0` → `^3.4.1`
74
+ - `svelte-check` `^4.3.4` → `^4.3.5`
75
+ - `globby` `^16.0.0` → `^16.1.0`
76
+ - `posthog-js` `^1.305.0` → `^1.310.1`
77
+ - `svelte` `5.45.9` → `5.46.1`
78
+ - `vite` `^7.2.7` → `^7.3.0`
79
+ - `vite-tsconfig-paths` `^5.1.4` → `^6.0.3`
80
+
81
+ ## Removed
82
+
83
+ - Removed `/* eslint-env vitest */` comment from `vitest-setup-client.js`, as it was causing an ESLint warning.
84
+
85
+ ---
86
+
25
87
  ## [1.25.18] - 2025-12-11
26
88
 
27
89
  ### Changed
@@ -2040,7 +2102,9 @@ This enables analytics filtering and CSP hardening for the audit environment.
2040
2102
 
2041
2103
  <!-- Link references -->
2042
2104
 
2043
- [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.25.18...HEAD
2105
+ [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.25.20...HEAD
2106
+ [1.25.20]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.20
2107
+ [1.25.19]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.19
2044
2108
  [1.25.18]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.18
2045
2109
  [1.25.17]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.17
2046
2110
  [1.25.16]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.16
package/README.md CHANGED
@@ -13,9 +13,9 @@ This file is part of Network Pro.
13
13
 
14
14
  &nbsp;
15
15
 
16
- [![Vercel](https://img.shields.io/github/deployments/netwk-pro/netwk-pro.github.io/Production?label=vercel&logo=vercel)](https://vercel.com) [![NPM Version](https://img.shields.io/npm/v/%40networkpro%2Fweb?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat&logo=npm&logoSize=auto&color=%23CB3837)](https://www.npmjs.com/package/@networkpro/web) [![Build and Publish to Registries](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build-and-publish.yml/badge.svg)](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build-and-publish.yml)
17
- [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat)](https://github.com/prettier/prettier) [![stylelint](https://img.shields.io/badge/stylelint-%23747474?style=flat&logo=stylelint&logoSize=auto&labelColor=%23263238)](https://stylelint.io/)
18
- [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/netwk-pro/netwk-pro.github.io/blob/master/CODE_OF_CONDUCT.md)
16
+ [![Vercel](https://img.shields.io/github/deployments/netwk-pro/netwk-pro.github.io/Production?label=vercel&logo=vercel 'Vercel')](https://vercel.com) [![NPM Version](https://img.shields.io/npm/v/%40networkpro%2Fweb?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat&logo=npm&logoSize=auto&color=%23CB3837 'NPM Version')](https://www.npmjs.com/package/@networkpro/web) [![Build and Publish to Registries](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build-and-publish.yml/badge.svg 'Build and Publish to Registries')](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build-and-publish.yml)
17
+ [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat 'Code Style: Prettier')](https://github.com/prettier/prettier) [![stylelint](https://img.shields.io/badge/stylelint-%23747474?style=flat&logo=stylelint&logoSize=auto&labelColor=%23263238 'stylelint')](https://stylelint.io/)
18
+ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg 'Contributor Covenant')](https://github.com/netwk-pro/netwk-pro.github.io/blob/master/CODE_OF_CONDUCT.md)
19
19
 
20
20
  <section id="top">
21
21
 
@@ -24,7 +24,7 @@ This file is part of Network Pro.
24
24
  This GitHub repository powers the official web presence of **[Network Pro Strategies](https://netwk.pro/about)** — a privacy-first consultancy specializing in cybersecurity, network engineering, and information security. We also lead public advocacy efforts promoting digital privacy and responsible cyber policy.
25
25
 
26
26
  Built with [SvelteKit](https://kit.svelte.dev/) and deployed via [Vercel](https://vercel.com/).
27
- [Blog](https://github.com/netwk-pro/blog) and [documentation](https://github.com/netwk-pro/docs) subsites built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) and deployed via [GitHub Pages](https://pages.github.com/).
27
+ [Blog](https://github.com/netwk-pro/blog) and [documentation](https://github.com/netwk-pro/docs) subsites built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) and deployed via [Vercel](https://vercel.com/) and [Netlify](https://netlify.com/).
28
28
 
29
29
  All infrastructure and data flows are designed with **maximum transparency, self-hosting, and user privacy** in mind.
30
30
 
@@ -53,7 +53,9 @@ All infrastructure and data flows are designed with **maximum transparency, self
53
53
 
54
54
  For a history of changes to the Network Pro&trade; Web Presence, see the **[CHANGELOG](https://github.com/netwk-pro/netwk-pro.github.io/blob/master/CHANGELOG.md)**. All notable updates are documented there.
55
55
 
56
- This project follows the principles of [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), though formatting and versioning may occasionally vary.
56
+ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
57
+ Version numbers use a **SemVer-inspired** `MAJOR.MINOR.PATCH` format, with
58
+ version increments reflecting both user-visible and operational impact.
57
59
 
58
60
  </section>
59
61
 
package/VERSIONING.md ADDED
@@ -0,0 +1,47 @@
1
+ # Versioning Policy
2
+
3
+ This project uses a **SemVer-inspired versioning scheme** based on the
4
+ `MAJOR.MINOR.PATCH` format.
5
+
6
+ Version numbers are intended to communicate the **impact of a change** rather
7
+ than strict compliance with the Semantic Versioning specification. In addition
8
+ to user-facing changes, version increments may reflect infrastructure, hosting,
9
+ or operational changes relevant to maintainers.
10
+
11
+ ## Version Number Meaning
12
+
13
+ ### MAJOR (`X.0.0`)
14
+
15
+ Incremented when changes introduce **user-visible incompatibilities**, such as:
16
+
17
+ - URL or navigation structure changes
18
+ - Removal or renaming of major sections
19
+ - Changes that break existing links or bookmarks
20
+ - Changes to access, availability, or licensing
21
+
22
+ ### MINOR (`1.X.0`)
23
+
24
+ Incremented for **backward-compatible but significant changes**, including:
25
+
26
+ - Hosting platform migrations (e.g. Netlify → Vercel)
27
+ - Build or deployment pipeline changes
28
+ - Security header or CSP delivery changes
29
+ - Changes that may affect maintainers or operators, but not readers
30
+ - New features or content additions that do not break existing usage
31
+
32
+ ### PATCH (`1.1.X`)
33
+
34
+ Incremented for **backward-compatible, low-impact changes**, such as:
35
+
36
+ - Content edits or corrections
37
+ - Dependency updates
38
+ - Tooling updates that do not alter build behavior
39
+ - Internal refactoring or cleanup
40
+
41
+ ## Notes
42
+
43
+ - Infrastructure or platform changes may be considered “breaking” from a
44
+ maintainer perspective, but do not automatically imply a MAJOR version bump.
45
+ - Version numbers are intended to communicate **impact**, not just change.
46
+ - Detailed migration or operational notes are documented in the changelog when
47
+ relevant.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@networkpro/web",
3
3
  "private": false,
4
- "version": "1.25.18",
4
+ "version": "1.25.20",
5
5
  "description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
6
6
  "keywords": [
7
7
  "advisory",
@@ -86,13 +86,13 @@
86
86
  },
87
87
  "dependencies": {
88
88
  "dompurify": "^3.3.1",
89
- "posthog-js": "^1.305.0",
89
+ "posthog-js": "^1.310.1",
90
90
  "semver": "^7.7.3",
91
- "svelte": "5.45.9"
91
+ "svelte": "5.46.1"
92
92
  },
93
93
  "devDependencies": {
94
94
  "@eslint/compat": "^2.0.0",
95
- "@eslint/js": "^9.39.1",
95
+ "@eslint/js": "^9.39.2",
96
96
  "@lhci/cli": "^0.15.1",
97
97
  "@playwright/test": "^1.57.0",
98
98
  "@sveltejs/adapter-netlify": "^5.2.4",
@@ -100,16 +100,16 @@
100
100
  "@sveltejs/kit": "2.49.2",
101
101
  "@sveltejs/vite-plugin-svelte": "^6.2.1",
102
102
  "@testing-library/jest-dom": "^6.9.1",
103
- "@testing-library/svelte": "^5.2.9",
103
+ "@testing-library/svelte": "^5.3.0",
104
104
  "@vitest/coverage-v8": "3.2.4",
105
- "autoprefixer": "^10.4.22",
105
+ "autoprefixer": "^10.4.23",
106
106
  "browserslist": "^4.28.1",
107
- "eslint": "^9.39.1",
107
+ "eslint": "^9.39.2",
108
108
  "eslint-config-prettier": "^10.1.8",
109
109
  "eslint-plugin-jsdoc": "^61.5.0",
110
110
  "eslint-plugin-svelte": "^3.13.1",
111
111
  "globals": "^16.5.0",
112
- "globby": "^16.0.0",
112
+ "globby": "^16.1.0",
113
113
  "jsdom": "27.3.0",
114
114
  "lightningcss": "^1.30.2",
115
115
  "markdownlint": "^0.40.0",
@@ -118,20 +118,20 @@
118
118
  "playwright": "^1.57.0",
119
119
  "postcss": "^8.5.6",
120
120
  "prettier": "3.7.4",
121
- "prettier-plugin-svelte": "^3.4.0",
121
+ "prettier-plugin-svelte": "^3.4.1",
122
122
  "simple-git-hooks": "^2.13.1",
123
123
  "stylelint": "^16.26.1",
124
124
  "stylelint-config-html": "^1.1.0",
125
125
  "stylelint-config-recommended": "^17.0.0",
126
126
  "stylelint-order": "^7.0.0",
127
- "svelte-check": "^4.3.4",
127
+ "svelte-check": "^4.3.5",
128
128
  "svelte-eslint-parser": "^1.4.1",
129
129
  "svelte-preprocess": "^6.0.3",
130
130
  "typescript": "^5.9.3",
131
- "vite": "^7.2.7",
131
+ "vite": "^7.3.0",
132
132
  "vite-plugin-devtools-json": "^1.0.0",
133
133
  "vite-plugin-lightningcss": "^0.0.5",
134
- "vite-tsconfig-paths": "^5.1.4",
134
+ "vite-tsconfig-paths": "^6.0.3",
135
135
  "vitest": "3.2.4"
136
136
  },
137
137
  "overrides": {
@@ -19,7 +19,7 @@ This file is part of Network Pro.
19
19
 
20
20
  const homeLink = base || '/';
21
21
  const aboutLink = `${base}/about`;
22
- const servLink = `${base}/services`;
22
+ //const servLink = `${base}/services`;
23
23
  const lhubLink = `${base}/links`;
24
24
  const fossLink = `${base}/foss`;
25
25
  const discussLink =
@@ -42,7 +42,6 @@ This file is part of Network Pro.
42
42
  const nav = [
43
43
  { label: 'home', href: homeLink, target: PAGE.SELF, external: false },
44
44
  { label: 'about', href: aboutLink, target: PAGE.SELF, external: false },
45
- { label: 'services', href: servLink, target: PAGE.SELF, external: false },
46
45
  {
47
46
  label: 'blog',
48
47
  href: LINKS.BLOG,
@@ -88,7 +87,7 @@ This file is part of Network Pro.
88
87
  {/if}
89
88
  <!-- Separator logic -->
90
89
  {#if index < nav.length - 1}
91
- {#if label === 'blog'}
90
+ {#if label === 'foss'}
92
91
  <br />
93
92
  {:else}
94
93
  <span class="goldseparator">|</span>
@@ -19,7 +19,7 @@ This file is part of Network Pro.
19
19
 
20
20
  const aboutLink = `${base}/about`;
21
21
  const fossLink = `${base}/foss`;
22
- const servLink = `${base}/services`;
22
+ //const servLink = `${base}/services`;
23
23
  const lhubLink = `${base}/links`;
24
24
  const discussLink =
25
25
  'https://github.com/netwk-pro/netwk-pro.github.io/discussions';
@@ -40,7 +40,6 @@ This file is part of Network Pro.
40
40
  */
41
41
  const nav = [
42
42
  { label: 'about', href: aboutLink, target: PAGE.SELF, external: false },
43
- { label: 'services', href: servLink, target: PAGE.SELF, external: false },
44
43
  {
45
44
  label: 'blog',
46
45
  href: LINKS.BLOG,
@@ -86,7 +85,7 @@ This file is part of Network Pro.
86
85
  {/if}
87
86
  <!-- Separator logic -->
88
87
  {#if index < nav.length - 1}
89
- {#if label === 'blog'}
88
+ {#if label === 'foss'}
90
89
  <br />
91
90
  {:else}
92
91
  <span class="goldseparator">|</span>
@@ -30,7 +30,7 @@ This file is part of Network Pro.
30
30
  * URL to the Consultation route, using the base path
31
31
  * @type {string}
32
32
  */
33
- const consultLink = `${base}/consultation`;
33
+ //const consultLink = `${base}/consultation`;
34
34
 
35
35
  /**
36
36
  * URL to the Services route, using the base path
@@ -121,7 +121,7 @@ This file is part of Network Pro.
121
121
  <div class="spacer"></div>
122
122
 
123
123
  <section id="subhead">
124
- <h2>Security That Respects You</h2>
124
+ <h2>Security, with Intent</h2>
125
125
  </section>
126
126
  <!-- END TITLE -->
127
127
 
@@ -137,87 +137,76 @@ This file is part of Network Pro.
137
137
  </p>
138
138
 
139
139
  <p>
140
- At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME})</strong>, we deliver
141
- network security and engineering, cybersecurity, and digital privacy
142
- consulting with clarity, credibility, and care. We believe that real security
143
- doesn't have to come at the cost of user autonomy, and that privacy-minded
144
- solutions can be both practical and powerful.
140
+ At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME})</strong>, our work
141
+ centers on advancing practical security, infrastructure resilience, and
142
+ digital privacy through research, development, education, and advocacy.
145
143
  </p>
146
144
 
147
145
  <p>
148
- Our approach is built on a simple principle:
149
- <strong>the best security is the one that fits.</strong> That means we don't
150
- push ideologies—we apply what works. We advocate for and implement
151
- <strong>free and open source solutions</strong>
152
- where they offer competitive functionality, control, and visibility. When proprietary
153
- platforms are better suited, we deploy them responsibly and securely—ensuring every
154
- recommendation is grounded in
155
- <strong>technical merit</strong>, <strong>scalability</strong>, and
156
- <strong>client goals</strong>.
146
+ We design, operate, and study real-world systems with a focus on understanding
147
+ how security works in practice—not just in theory. Our goal is to produce
148
+ clear, credible guidance and tools that respect user autonomy, scale
149
+ responsibly, and reflect the realities of modern infrastructure.
157
150
  </p>
158
151
 
159
- <h3>What We Do</h3>
160
152
  <p>
161
- As a remote-first consultancy, we support clients across industries and
162
- geographies with a focus on:
153
+ Where appropriate, we also apply this work through limited consulting
154
+ engagements, offering focused expertise in network security, cybersecurity,
155
+ and privacy engineering for organizations seeking intentional, well-reasoned
156
+ solutions.
163
157
  </p>
164
158
 
165
- <ul>
166
- <li><strong>Network Hardening & Perimeter Defense</strong></li>
167
- <li><strong>Firewall Architecture & Policy Optimization</strong></li>
168
- <li><strong>Zero Trust Implementation</strong></li>
169
- <li><strong>Secure Infrastructure Design & Implementation</strong></li>
170
- <li><strong>Risk Reduction & Security Posture Assessment</strong></li>
171
- </ul>
159
+ <h3>What We Do</h3>
172
160
 
173
161
  <p>
174
- Our consulting engagements range from tactical one-off solutions to strategic,
175
- long-term partnerships. Whether it's helping a business segment its internal
176
- network, lock down its cloud footprint, or plan scalable defenses—we deliver
177
- clear value, with zero fluff.
162
+ {COMPANY_INFO.APP_NAME} is focused on internal research, development, education,
163
+ and advocacy in the areas of network security, infrastructure design, and digital
164
+ privacy.
178
165
  </p>
179
166
 
180
- <div class="spacer"></div>
167
+ <p>
168
+ Our work centers on building and operating real-world systems, conducting
169
+ exploratory and applied research, developing proof-of-concept environments,
170
+ and publishing practical insights drawn from hands-on experience. These
171
+ efforts inform the tools, guidance, and educational content we share with the
172
+ broader community.
173
+ </p>
181
174
 
182
175
  <p>
183
- Additionally, {COMPANY_INFO.APP_NAME} provides
184
- <a href={servLink} target={PAGE.SELF}>on-site services</a>
185
- in the Greater Phoenix Metropolitan Area (Maricopa County, AZ). Our
186
- <a href={servLink} target={PAGE.SELF}>on-site services</a> are available to both
187
- consumers and businesses. In addition to consulting, we offer the following services:
176
+ We also offer <strong
177
+ >limited consulting on a selective, case-by-case basis</strong
178
+ >, typically aligned with our research focus areas, including:
188
179
  </p>
189
180
 
190
181
  <ul>
191
- <li><strong>Home Modem Setup</strong></li>
192
- <li><strong>Basic Router Setup</strong></li>
193
- <li><strong>Wi-Fi and Wireless Networking Setup</strong></li>
194
- <li><strong>Network Troubleshooting</strong></li>
195
- <li><strong>Network Security Review</strong></li>
196
- <li><strong>Add a Wi-Fi Device</strong></li>
197
- <li><strong>Add or Configure a Printer</strong></li>
182
+ <li>Network Hardening & Perimeter Defense</li>
183
+ <li>Firewall Architecture & Policy Optimization</li>
184
+ <li>Zero Trust Design Principles</li>
185
+ <li>Secure Infrastructure Architecture</li>
186
+ <li>Risk Reduction & Security Posture Assessment</li>
198
187
  </ul>
199
188
 
200
- <div class="spacer"></div>
201
-
202
189
  <p>
203
- We also believe education is a core pillar of real-world security. That's why
204
- we invest in raising awareness—across both technical and general audiences—on
205
- best practices in digital privacy, secure design, and threat mitigation.
190
+ Rather than operating as a traditional consultancy, our engagement model
191
+ prioritizes depth, intent, and alignment. Consulting work is approached as an
192
+ extension of our internal projects and research—not as a volume-driven service
193
+ offering.
206
194
  </p>
207
195
 
208
196
  <p>
209
- At {COMPANY_INFO.APP_NAME}, we deliver robust, intentional solutions for
210
- individuals and organizations that prioritize integrity without compromising
211
- agility or trust. We don't just protect infrastructure. We protect peace of
212
- mind.
197
+ At Network Pro™, we believe strong security comes from understanding systems
198
+ deeply, communicating clearly, and designing with purpose. Our goal is not
199
+ scale for its own sake, but meaningful work that advances security practice,
200
+ privacy awareness, and resilient infrastructure.
213
201
  </p>
214
202
 
203
+ <div class="spacer"></div>
204
+
215
205
  <p>
216
- Ready to take the next step? <a href={contactLink} target={PAGE.BLANK}
217
- >Let's connect</a>
218
- to explore how we can help fortify your home or business.
219
- <a href={consultLink} target={PAGE.BLANK}
220
- >Schedule a free, initial consultation</a> today and discover what's possible.
206
+ Interested in our work or exploring a potential collaboration? <a
207
+ href={contactLink}
208
+ target={PAGE.BLANK}>Let's connect</a
209
+ >.
221
210
  </p>
222
211
 
223
212
  <p>
@@ -43,45 +43,45 @@ This file is part of Network Pro.
43
43
  </script>
44
44
 
45
45
  <!-- BEGIN HOME CONTENT -->
46
- <h3 class={classIndex}>🔒 Practical Cybersecurity. Trusted Expertise.</h3>
46
+ <h3 class={classIndex}>🔐 Security, with Intent</h3>
47
47
 
48
48
  <p class={classCenter}>
49
- At <strong>{COMPANY_INFO.NAME}</strong>, we specialize in network engineering
50
- and security, cybersecurity, and digital privacy consulting that meets today's
51
- real-world demands. Our remote-first approach combines technical depth with
52
- practical solutions—leveraging a strategic mix of open source and proprietary
53
- technologies based on performance, scalability, and trustworthiness.
49
+ At <strong>{COMPANY_INFO.NAME}</strong>, we advance practical cybersecurity,
50
+ resilient infrastructure, and digital privacy through hands-on research,
51
+ real-world engineering, education, and advocacy.
54
52
  </p>
55
53
 
56
54
  <p class={classCenter}>
57
- From secure network design to cloud infrastructure and perimeter defense, we
58
- help individuals and organizations build stronger, smarter security
59
- postures—without compromising flexibility or transparency.
55
+ Our work centers on understanding how systems behave in practice—building,
56
+ testing, and operating secure environments to surface insights that are
57
+ grounded in reality, not ideology. We believe effective security respects
58
+ autonomy, scales responsibly, and is designed with purpose.
60
59
  </p>
61
60
 
62
61
  <p class={classCenter}>
63
- 📡
64
- <em>
65
- <strong>Stay informed:</strong> Follow our
66
- <a href={LINKS.BLOG} target={PAGE.SELF}>blog</a>
67
- and social channels for actionable insights, implementation guides, and the latest
68
- cybersecurity developments.
69
- </em>
62
+ A core part of our mission is education and awareness. Through published
63
+ research, technical writing, and community-focused content, we aim to make
64
+ security concepts more accessible, transparent, and actionable for both
65
+ technical and non-technical audiences.
66
+ </p>
67
+
68
+ <p class={classCenter}>
69
+ Where there is strong alignment, we also apply this work through <strong
70
+ >limited, selective consulting engagements</strong
71
+ >, offering focused expertise in network security, infrastructure design, and
72
+ privacy engineering.
70
73
  </p>
71
74
 
72
75
  <div class="spacer"></div>
73
76
 
74
77
  <p class={classCenter}>
75
- <strong>{COMPANY_INFO.NAME}</strong><br />
76
- 📞 <strong>Phone:</strong>
77
- {CONTACT.PHONE}<br />
78
- 📧 <strong>General Inquiries:</strong>
79
- <a href={`mailto:${CONTACT.EMAIL_LINK}`} target={PAGE.BLANK}
80
- >{CONTACT.EMAIL_LINK}</a
81
- ><br />
82
- 🔐 <strong>Secure Email:</strong>
83
- <a href={`mailto:${CONTACT.SECURE_LINK}`} target={PAGE.BLANK}
84
- >{CONTACT.SECURE_LINK}</a>
78
+ 📡 <strong>Stay informed</strong>.<br />
79
+ <em>
80
+ Follow our
81
+ <a href={LINKS.BLOG} target={PAGE.SELF}>work</a> for research findings, practical
82
+ guidance, and perspectives on security, infrastructure, and digital privacy—shared
83
+ openly and grounded in real-world experience.
84
+ </em>
85
85
  </p>
86
86
 
87
87
  &nbsp;
@@ -18,7 +18,7 @@ This file is part of Network Pro.
18
18
  </script>
19
19
 
20
20
  <section id="home-page" data-testid="home-page">
21
- <FullWidthSection>
21
+ <FullWidthSection containerClass="readable">
22
22
  <!-- BEGIN TITLE -->
23
23
  <section id="page-title">
24
24
  <Logo />
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Sitemap last updated 2025-12-11 -->
2
+ <!-- Sitemap last updated 2025-12-25 -->
3
3
 
4
4
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
5
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <loc>https://netwk.pro</loc>
9
9
 
10
- <lastmod>2025-12-11</lastmod>
10
+ <lastmod>2025-12-25</lastmod>
11
11
 
12
12
  <changefreq>weekly</changefreq>
13
13
 
@@ -15,18 +15,6 @@
15
15
 
16
16
  </url>
17
17
 
18
- <url>
19
-
20
- <loc>https://netwk.pro/services</loc>
21
-
22
- <lastmod>2025-11-09</lastmod>
23
-
24
- <changefreq>monthly</changefreq>
25
-
26
- <priority>0.8</priority>
27
-
28
- </url>
29
-
30
18
  <url>
31
19
 
32
20
  <loc>https://netwk.pro/foss</loc>
@@ -43,7 +31,7 @@
43
31
 
44
32
  <loc>https://netwk.pro/about</loc>
45
33
 
46
- <lastmod>2025-11-09</lastmod>
34
+ <lastmod>2025-12-25</lastmod>
47
35
 
48
36
  <changefreq>monthly</changefreq>
49
37
 
@@ -5,8 +5,6 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
5
5
  This file is part of Network Pro.
6
6
  ========================================================================= */
7
7
 
8
- /* eslint-env vitest */
9
-
10
8
  import '@testing-library/jest-dom/vitest';
11
9
  import { cleanup } from '@testing-library/svelte';
12
10
  import { afterEach, vi } from 'vitest';