@networkpro/web 1.22.2 → 1.23.0
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.
- package/.node-version +1 -1
- package/.nvmrc +1 -1
- package/CHANGELOG.md +54 -1
- package/LICENSE.md +1 -1
- package/README.md +5 -5
- package/budget.json +1 -1
- package/package.json +7 -6
- package/src/app.html +4 -4
- package/src/lib/README.md +12 -9
- package/src/lib/components/Badges.svelte +2 -2
- package/src/lib/components/LegalNav.svelte +1 -1
- package/src/lib/components/MetaTags.svelte +42 -16
- package/src/lib/components/layout/Footer.svelte +7 -7
- package/src/lib/components/layout/HeaderDefault.svelte +1 -1
- package/src/lib/components/layout/HeaderHome.svelte +1 -1
- package/src/lib/index.js +2 -2
- package/src/lib/meta.js +24 -24
- package/src/lib/pages/AboutContent.svelte +9 -9
- package/src/lib/pages/HomeContent.svelte +1 -1
- package/src/lib/pages/LicenseContent.svelte +6 -7
- package/src/lib/pages/ServicesContent.svelte +1 -2
- package/src/lib/pages/TermsUseContent.svelte +1 -1
- package/src/lib/types/README.md +2 -2
- package/src/routes/+layout.js +2 -3
- package/src/routes/+layout.svelte +11 -3
- package/src/routes/+page.svelte +7 -26
- package/src/routes/about/+page.svelte +10 -21
- package/src/routes/{license → foss}/+page.server.js +2 -2
- package/src/routes/{foss-spotlight → foss}/+page.svelte +11 -22
- package/src/routes/{foss-spotlight → legal}/+page.server.js +2 -2
- package/src/routes/{license → legal}/+page.svelte +11 -22
- package/src/routes/pgp/+page.svelte +10 -21
- package/src/routes/privacy/+page.svelte +10 -21
- package/src/routes/privacy-dashboard/+page.svelte +10 -27
- package/src/routes/services/+page.svelte +3 -16
- package/src/routes/terms-conditions/+page.svelte +10 -21
- package/src/routes/terms-of-use/+page.svelte +10 -21
- package/static/sitemap.xml +13 -13
- package/tests/e2e/mobile.spec.js +36 -17
- package/tests/e2e/shared/helpers.js +39 -1
- package/tests/meta/meta.test.js +1 -1
- package/tests/unit/server/meta.test.js +1 -1
- package/vercel.json +8 -8
package/.node-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
22.21.
|
|
1
|
+
22.21.1
|
package/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
22.21.
|
|
1
|
+
22.21.1
|
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,58 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
+
## [1.23.0] - 2025-10-30
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- Updated `src/lib/README.md` to reflect newly added app constants.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Refactored all route files to use named imports from `$lib/components` and `$lib/pages` barrel modules, replacing individual `.svelte` imports for improved consistency and maintainability.
|
|
34
|
+
- Changed `COMPANY_INFO.APP_NAME` constant to `Network Pro™` in `src/lib/index.js`.
|
|
35
|
+
- Removed unnecessary `™` symbol from files that utilize the app constant.
|
|
36
|
+
- Changed `/license` and `/foss-spotlight` routes to `/legal` and `/foss`, respectively, for more intuitive navigation.
|
|
37
|
+
- Updated all references to the new routes, `/legal` and `/foss`.
|
|
38
|
+
- Updated `vercel.json` to redirect `/license` to `/legal`, and `/foss-spotlight` to `/foss`.
|
|
39
|
+
- Refactored Playwright helper utilities to modern standards:
|
|
40
|
+
- Replaced deprecated `page.waitForNavigation()` with `waitForURL()` and `waitForLoadState()` in `clickAndWaitForNavigation()` for improved SPA and full-page navigation reliability.
|
|
41
|
+
- Simplified logic and removed unsupported `lastResponse()` usage.
|
|
42
|
+
- Improved test stability for mobile navigation (especially in CI environments).
|
|
43
|
+
- Modified `tests/unit/server/meta.test.js` to match on `Locking Down Networks`, rather than `Network Pro`, which is now dynamically attached.
|
|
44
|
+
- Refreshed **Last Modified** timestamps in `static/sitemap.xml`.
|
|
45
|
+
- Updated `.node-version` and `.nvmrc` to utilize **Node.js** `22.21.1` (LTS).
|
|
46
|
+
- Updated generator metadata in `src/app.html` to reflect **SvelteKit 2.48.4**.
|
|
47
|
+
- Bumped project version to `v1.23.0`.
|
|
48
|
+
- Updated dependencies:
|
|
49
|
+
- `@sveltejs/kit` `2.48.3` → `2.48.4`
|
|
50
|
+
- `svelte` `5.43.0` → `5.43.2`
|
|
51
|
+
- `eslint-plugin-svelte` `^3.12.5` → `^3.13.0`
|
|
52
|
+
|
|
53
|
+
- Refactored metadata and SEO handling for consistency and maintainability:
|
|
54
|
+
- Centralized all `<meta>` and `<title>` management in `src/lib/components/MetaTags.svelte`.
|
|
55
|
+
- Removed redundant per-page `<svelte:head>` entries and `MetaTags` imports in individual `+page.svelte` files.
|
|
56
|
+
- Added dynamic canonical URL generation using route `pathname` from `+layout.js`.
|
|
57
|
+
- Implemented automatic title and description suffixing:
|
|
58
|
+
- Titles now end with `— Network Pro™`.
|
|
59
|
+
- Descriptions now end with `| Security, Networking, Privacy — Network Pro Strategies`.
|
|
60
|
+
- Cleaned up fallback values (`defaultTitle`, `defaultDescription`, `defaultMeta`) to prevent redundant branding text.
|
|
61
|
+
- Adjusted layout structure to ensure correct canonical and OpenGraph metadata per route.
|
|
62
|
+
|
|
63
|
+
- Updated `src/app.html`:
|
|
64
|
+
- Removed duplicate document sections and placeholder meta tags.
|
|
65
|
+
- Verified correct `%sveltekit.head%` placement for dynamic head injection.
|
|
66
|
+
- Moved static PWA-related metadata (e.g., `<meta name="theme-color">`) into `app.html`.
|
|
67
|
+
- Retained dynamic icons and preload links for cache-busted assets via `+layout.svelte`.
|
|
68
|
+
|
|
69
|
+
### Security
|
|
70
|
+
|
|
71
|
+
- Added transitive dependency overrides to address reported vulnerabilities:
|
|
72
|
+
- `tar@7.5.1` → `tar@7.5.2` (fixes CVE-2025-64118: race condition/uninitialized memory exposure).
|
|
73
|
+
- Confirmed overrides applied correctly via `npm ls` and `npm explain`.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
25
77
|
## [1.22.2] - 2025-10-29
|
|
26
78
|
|
|
27
79
|
### Documentation
|
|
@@ -1310,7 +1362,8 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1310
1362
|
|
|
1311
1363
|
<!-- Link references -->
|
|
1312
1364
|
|
|
1313
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.
|
|
1365
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.23.0...HEAD
|
|
1366
|
+
[1.23.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.23.0
|
|
1314
1367
|
[1.22.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.2
|
|
1315
1368
|
[1.22.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.1
|
|
1316
1369
|
[1.22.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.0
|
package/LICENSE.md
CHANGED
|
@@ -45,7 +45,7 @@ This document is provided for convenience only. In the event of any discrepancy,
|
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
48
|
-
**Formats Available:** [HTML](https://netwk.pro/
|
|
48
|
+
**Formats Available:** [HTML](https://netwk.pro/legal) | Markdown
|
|
49
49
|
|
|
50
50
|
<a name="ownership"></a>
|
|
51
51
|
|
package/README.md
CHANGED
|
@@ -465,11 +465,11 @@ Refer to the Wiki for:
|
|
|
465
465
|
|
|
466
466
|
This project is licensed under:
|
|
467
467
|
|
|
468
|
-
- [Creative Commons BY 4.0](https://netwk.pro/
|
|
468
|
+
- [Creative Commons BY 4.0](https://netwk.pro/legal#cc-by)
|
|
469
469
|
|
|
470
|
-
- Or optionally, [GNU GPL v3 or later](https://netwk.pro/
|
|
470
|
+
- Or optionally, [GNU GPL v3 or later](https://netwk.pro/legal#gnu-gpl)
|
|
471
471
|
|
|
472
|
-
Source code, branding, and visual assets are subject to reuse and distribution terms specified on our [Legal, Copyright, and Licensing page](https://netwk.pro/
|
|
472
|
+
Source code, branding, and visual assets are subject to reuse and distribution terms specified on our [Legal, Copyright, and Licensing page](https://netwk.pro/legal).
|
|
473
473
|
|
|
474
474
|
</section>
|
|
475
475
|
|
|
@@ -499,9 +499,9 @@ _Designed for professionals. Hardened for privacy. Built with intent._
|
|
|
499
499
|
Copyright © 2025
|
|
500
500
|
**[Network Pro Strategies](https://netwk.pro) (Network Pro™)**
|
|
501
501
|
|
|
502
|
-
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/
|
|
502
|
+
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/legal#trademark) of Network Pro Strategies.
|
|
503
503
|
|
|
504
|
-
Licensed under **[CC BY 4.0](https://netwk.pro/
|
|
504
|
+
Licensed under **[CC BY 4.0](https://netwk.pro/legal#cc-by)** and the **[GNU GPL](https://netwk.pro/legal#gnu-gpl)**, as published by the [Free Software Foundation](https://www.fsf.org), either version 3 of the License, or (at your option) any later version.
|
|
505
505
|
|
|
506
506
|
</span>
|
|
507
507
|
|
package/budget.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.23.0",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advisory",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"dompurify": "^3.3.0",
|
|
82
82
|
"posthog-js": "^1.282.0",
|
|
83
83
|
"semver": "^7.7.3",
|
|
84
|
-
"svelte": "5.43.
|
|
84
|
+
"svelte": "5.43.2"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@eslint/compat": "^1.4.1",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@lhci/cli": "^0.15.1",
|
|
90
90
|
"@playwright/test": "^1.56.1",
|
|
91
91
|
"@sveltejs/adapter-vercel": "^6.1.1",
|
|
92
|
-
"@sveltejs/kit": "2.48.
|
|
92
|
+
"@sveltejs/kit": "2.48.4",
|
|
93
93
|
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
94
94
|
"@testing-library/jest-dom": "^6.9.1",
|
|
95
95
|
"@testing-library/svelte": "^5.2.8",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"eslint": "^9.38.0",
|
|
100
100
|
"eslint-config-prettier": "^10.1.8",
|
|
101
101
|
"eslint-plugin-jsdoc": "^61.1.11",
|
|
102
|
-
"eslint-plugin-svelte": "^3.
|
|
102
|
+
"eslint-plugin-svelte": "^3.13.0",
|
|
103
103
|
"globals": "^16.4.0",
|
|
104
104
|
"jsdom": "26.1.0",
|
|
105
105
|
"lightningcss": "^1.30.2",
|
|
@@ -124,7 +124,8 @@
|
|
|
124
124
|
"vitest": "3.2.4"
|
|
125
125
|
},
|
|
126
126
|
"overrides": {
|
|
127
|
-
"
|
|
128
|
-
"
|
|
127
|
+
"cookie": "^1.0.0",
|
|
128
|
+
"tar": "7.5.2",
|
|
129
|
+
"tmp": ">=0.2.4"
|
|
129
130
|
}
|
|
130
131
|
}
|
package/src/app.html
CHANGED
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
This file is part of Network Pro.
|
|
11
11
|
====================================================================== -->
|
|
12
12
|
|
|
13
|
-
<title
|
|
14
|
-
|
|
13
|
+
<!-- ✅ DO NOT include any <title> or <meta name="description"> tags here
|
|
14
|
+
Titles and metadata are managed by SvelteKit via MetaTags.svelte -->
|
|
15
|
+
|
|
15
16
|
<meta
|
|
16
17
|
name="robots"
|
|
17
18
|
content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
|
|
18
|
-
<meta name="author" content="Scott Lopez" />
|
|
19
19
|
|
|
20
20
|
<!-- Favicon: Keep only ICO for max compatibility -->
|
|
21
21
|
<link
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
content="bx4ham0zkpvzztzu213bhpt76m9siq" />
|
|
54
54
|
<!-- cspell:enable -->
|
|
55
55
|
|
|
56
|
-
<meta name="generator" content="SvelteKit 2.48.
|
|
56
|
+
<meta name="generator" content="SvelteKit 2.48.4" />
|
|
57
57
|
|
|
58
58
|
<script src="/disableSw.js"></script>
|
|
59
59
|
|
package/src/lib/README.md
CHANGED
|
@@ -84,17 +84,20 @@ console.log(CONSTANTS.COMPANY_INFO.APP_NAME); // "Network Pro"
|
|
|
84
84
|
| Key | Description | Example |
|
|
85
85
|
| ---------- | ---------------------------- | ------------------------ |
|
|
86
86
|
| `NAME` | Full company name | `Network Pro Strategies` |
|
|
87
|
-
| `APP_NAME` | Application or branding name | `Network Pro
|
|
87
|
+
| `APP_NAME` | Application or branding name | `Network Pro™` |
|
|
88
88
|
| `YEAR` | Copyright / app year | `2025` |
|
|
89
89
|
|
|
90
90
|
### 📬 CONTACT
|
|
91
91
|
|
|
92
|
-
| Key
|
|
93
|
-
|
|
|
94
|
-
| `EMAIL`
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
92
|
+
| Key | Description | Example |
|
|
93
|
+
| -------------- | ------------------------------ | --------------------------- |
|
|
94
|
+
| `EMAIL` | General support email | `support (at) netwk.pro` |
|
|
95
|
+
| `EMAIL_LINK` | General support email (link) | `support@netwk.pro` |
|
|
96
|
+
| `SECURE` | Secure contact address | `contact (at) s.neteng.pro` |
|
|
97
|
+
| `SECURE_LINK` | Secure contact address (link) | `contact@s.neteng.pro` |
|
|
98
|
+
| `PRIVACY` | Privacy-related contact | `privacy (at) netwk.pro` |
|
|
99
|
+
| `PRIVACY_LINK` | Privacy-related contact (link) | `privacy@netwk.pro` |
|
|
100
|
+
| `PHONE` | Company phone number | `(623) 252-4350` |
|
|
98
101
|
|
|
99
102
|
### 🗂️ PAGE
|
|
100
103
|
|
|
@@ -153,8 +156,8 @@ No need to modify imports when adding new images — just add them to `images.js
|
|
|
153
156
|
Copyright © 2025
|
|
154
157
|
**[Network Pro Strategies](https://netwk.pro) (Network Pro™)**
|
|
155
158
|
|
|
156
|
-
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/
|
|
159
|
+
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/legal#trademark) of Network Pro Strategies.
|
|
157
160
|
|
|
158
|
-
Licensed under **[CC BY 4.0](https://netwk.pro/
|
|
161
|
+
Licensed under **[CC BY 4.0](https://netwk.pro/legal#cc-by)** and the **[GNU GPL](https://netwk.pro/legal#gnu-gpl)**, as published by the [Free Software Foundation](https://www.fsf.org), either version 3 of the License, or (at your option) any later version.
|
|
159
162
|
|
|
160
163
|
</span>
|
|
@@ -19,8 +19,8 @@ This file is part of Network Pro.
|
|
|
19
19
|
|
|
20
20
|
const { PAGE } = CONSTANTS;
|
|
21
21
|
|
|
22
|
-
const ccbyLink = `${base}/
|
|
23
|
-
const gplLink = `${base}/
|
|
22
|
+
const ccbyLink = `${base}/legal#cc-by`;
|
|
23
|
+
const gplLink = `${base}/legal#gnu-gpl`;
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Badge link object.
|
|
@@ -19,7 +19,7 @@ This file is part of Network Pro.
|
|
|
19
19
|
|
|
20
20
|
const termsLink = `${base}/terms-of-use`;
|
|
21
21
|
const privacyLink = `${base}/privacy`;
|
|
22
|
-
const licenseLink = `${base}/
|
|
22
|
+
const licenseLink = `${base}/legal`;
|
|
23
23
|
const pdashLink = `${base}/privacy-dashboard`;
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -9,6 +9,9 @@ This file is part of Network Pro.
|
|
|
9
9
|
<script>
|
|
10
10
|
export let title;
|
|
11
11
|
export let description;
|
|
12
|
+
export let url = 'https://netwk.pro';
|
|
13
|
+
export let image = `${url}/img/banner-og-1200x630.png`;
|
|
14
|
+
export let pathname = '';
|
|
12
15
|
|
|
13
16
|
import { CONSTANTS } from '$lib';
|
|
14
17
|
|
|
@@ -16,33 +19,56 @@ This file is part of Network Pro.
|
|
|
16
19
|
|
|
17
20
|
const { COMPANY_INFO, LINKS } = CONSTANTS;
|
|
18
21
|
|
|
22
|
+
// Default fallbacks (for missing or undefined props)
|
|
23
|
+
const defaultTitle = 'Security, Networking, Privacy';
|
|
24
|
+
const defaultDescription = 'Locking Down Networks, Unlocking Confidence™';
|
|
25
|
+
|
|
26
|
+
// computed title/description with fallback
|
|
27
|
+
$: metaTitle = title
|
|
28
|
+
? `${title}${title.includes(COMPANY_INFO.APP_NAME) ? '' : ` — ${COMPANY_INFO.APP_NAME}`}`
|
|
29
|
+
: defaultTitle;
|
|
30
|
+
|
|
31
|
+
$: metaDescription = description
|
|
32
|
+
? `${description}${description.includes(COMPANY_INFO.NAME) ? '' : ` | Security, Networking, Privacy — ${COMPANY_INFO.NAME}`}`
|
|
33
|
+
: defaultDescription;
|
|
34
|
+
|
|
35
|
+
// Compute canonical URL
|
|
36
|
+
$: canonicalUrl = pathname
|
|
37
|
+
? `${url.replace(/\/$/, '')}${pathname.startsWith('/') ? pathname : `/${pathname}`}`
|
|
38
|
+
: url;
|
|
39
|
+
|
|
19
40
|
// Static shared values
|
|
20
|
-
const ogUrl = LINKS.HOME;
|
|
21
|
-
const ogImg = '/img/banner-og-1200x630.png';
|
|
22
|
-
const companyName = COMPANY_INFO.NAME;
|
|
23
41
|
const twitterAct = '@NetEng_Pro';
|
|
24
42
|
</script>
|
|
25
43
|
|
|
26
44
|
<svelte:head>
|
|
27
|
-
<title>{
|
|
28
|
-
<meta name="description" content={
|
|
45
|
+
<title>{metaTitle}</title>
|
|
46
|
+
<meta name="description" content={metaDescription} />
|
|
29
47
|
|
|
30
48
|
<!-- OpenGraph -->
|
|
31
|
-
<meta property="og:title" content={
|
|
49
|
+
<meta property="og:title" content={metaTitle} />
|
|
50
|
+
<meta property="og:description" content={metaDescription} />
|
|
51
|
+
<meta property="og:url" content={url} />
|
|
32
52
|
<meta property="og:type" content="website" />
|
|
33
|
-
<meta property="og:
|
|
34
|
-
<meta property="og:image" content={
|
|
35
|
-
<meta property="og:image:alt" content={
|
|
36
|
-
<meta property="og:
|
|
53
|
+
<meta property="og:site_name" content={COMPANY_INFO.APP_NAME} />
|
|
54
|
+
<meta property="og:image" content={image} />
|
|
55
|
+
<meta property="og:image:alt" content={COMPANY_INFO.NAME} />
|
|
56
|
+
<meta property="og:locale" content="en_US" />
|
|
37
57
|
|
|
38
58
|
<!-- Twitter -->
|
|
39
59
|
<meta name="twitter:card" content="summary_large_image" />
|
|
60
|
+
<meta name="twitter:title" content={metaTitle} />
|
|
61
|
+
<meta name="twitter:description" content={metaDescription} />
|
|
40
62
|
<meta name="twitter:site" content={twitterAct} />
|
|
41
63
|
<meta name="twitter:creator" content={twitterAct} />
|
|
42
|
-
<meta property="twitter:domain" content={
|
|
43
|
-
<meta property="twitter:url" content={
|
|
44
|
-
<meta name="twitter:
|
|
45
|
-
<meta name="twitter:
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
<meta property="twitter:domain" content={url} />
|
|
65
|
+
<meta property="twitter:url" content={url} />
|
|
66
|
+
<meta name="twitter:image" content={image} />
|
|
67
|
+
<meta name="twitter:image:alt" content={COMPANY_INFO.NAME} />
|
|
68
|
+
|
|
69
|
+
<!-- Canonical URL -->
|
|
70
|
+
<link rel="canonical" href={canonicalUrl} />
|
|
71
|
+
|
|
72
|
+
<!-- Basic SEO -->
|
|
73
|
+
<meta name="author" content="Scott Lopez" />
|
|
48
74
|
</svelte:head>
|
|
@@ -6,8 +6,6 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
|
6
6
|
This file is part of Network Pro.
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
|
-
<!-- cspell:ignore ccby gnugpl -->
|
|
10
|
-
|
|
11
9
|
<script>
|
|
12
10
|
import { base } from '$app/paths';
|
|
13
11
|
// Import icons for licenses
|
|
@@ -22,9 +20,9 @@ This file is part of Network Pro.
|
|
|
22
20
|
const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS;
|
|
23
21
|
|
|
24
22
|
// Dynamic links for licensing and trademark
|
|
25
|
-
const ccbyLink = `${base}/
|
|
26
|
-
const gnugplLink = `${base}/
|
|
27
|
-
const trademarkLink = `${base}/
|
|
23
|
+
const ccbyLink = `${base}/legal#cc-by`;
|
|
24
|
+
const gnugplLink = `${base}/legal#gnu-gpl`;
|
|
25
|
+
const trademarkLink = `${base}/legal#trademark`;
|
|
28
26
|
|
|
29
27
|
/** @type {string} */
|
|
30
28
|
const creatorUrl = 'https://netwk.pro';
|
|
@@ -101,12 +99,12 @@ This file is part of Network Pro.
|
|
|
101
99
|
target={PAGE.BLANK}>
|
|
102
100
|
<strong>{COMPANY_INFO.NAME}</strong>
|
|
103
101
|
</a>
|
|
104
|
-
({COMPANY_INFO.APP_NAME}
|
|
102
|
+
({COMPANY_INFO.APP_NAME})
|
|
105
103
|
</p>
|
|
106
104
|
|
|
107
105
|
<!-- Trademark Section -->
|
|
108
106
|
<p>
|
|
109
|
-
{COMPANY_INFO.APP_NAME}
|
|
107
|
+
{COMPANY_INFO.APP_NAME}, the shield logo, and the "{creatorSlogan}™"
|
|
110
108
|
slogan are
|
|
111
109
|
<a href={trademarkLink} target={PAGE.SELF}>trademarks</a>
|
|
112
110
|
of {COMPANY_INFO.NAME}.
|
|
@@ -146,3 +144,5 @@ This file is part of Network Pro.
|
|
|
146
144
|
</p>
|
|
147
145
|
</div>
|
|
148
146
|
<!-- END FOOTER -->
|
|
147
|
+
|
|
148
|
+
<!-- cspell:ignore ccby gnugpl -->
|
|
@@ -21,7 +21,7 @@ This file is part of Network Pro.
|
|
|
21
21
|
const aboutLink = `${base}/about`;
|
|
22
22
|
const servLink = `${base}/services`;
|
|
23
23
|
const lhubLink = `${base}/links`;
|
|
24
|
-
const fossLink = `${base}/foss
|
|
24
|
+
const fossLink = `${base}/foss`;
|
|
25
25
|
const discussLink =
|
|
26
26
|
'https://github.com/netwk-pro/netwk-pro.github.io/discussions';
|
|
27
27
|
|
|
@@ -18,7 +18,7 @@ This file is part of Network Pro.
|
|
|
18
18
|
const { PAGE, LINKS } = CONSTANTS;
|
|
19
19
|
|
|
20
20
|
const aboutLink = `${base}/about`;
|
|
21
|
-
const fossLink = `${base}/foss
|
|
21
|
+
const fossLink = `${base}/foss`;
|
|
22
22
|
const servLink = `${base}/services`;
|
|
23
23
|
const lhubLink = `${base}/links`;
|
|
24
24
|
const discussLink =
|
package/src/lib/index.js
CHANGED
|
@@ -16,7 +16,7 @@ This file is part of Network Pro.
|
|
|
16
16
|
* and re-exported here for flat `$lib` imports.
|
|
17
17
|
* @module src/lib
|
|
18
18
|
* @author Scott Lopez
|
|
19
|
-
* @updated 2025-10-
|
|
19
|
+
* @updated 2025-10-30
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
// Re-export all images so they can be imported directly from `$lib`
|
|
@@ -52,7 +52,7 @@ export { PGP_KEYS } from '$lib/data/pgpKeys.js';
|
|
|
52
52
|
export const CONSTANTS = {
|
|
53
53
|
COMPANY_INFO: {
|
|
54
54
|
NAME: 'Network Pro Strategies',
|
|
55
|
-
APP_NAME: 'Network Pro',
|
|
55
|
+
APP_NAME: 'Network Pro™',
|
|
56
56
|
YEAR: '2025',
|
|
57
57
|
},
|
|
58
58
|
CONTACT: {
|
package/src/lib/meta.js
CHANGED
|
@@ -18,62 +18,62 @@ This file is part of Network Pro.
|
|
|
18
18
|
const meta = {
|
|
19
19
|
'/': {
|
|
20
20
|
title:
|
|
21
|
-
'Security, Networking, Privacy
|
|
21
|
+
'Security, Networking, Privacy',
|
|
22
22
|
description:
|
|
23
|
-
'Locking Down Networks, Unlocking Confidence™
|
|
23
|
+
'Locking Down Networks, Unlocking Confidence™',
|
|
24
24
|
},
|
|
25
25
|
'/about': {
|
|
26
|
-
title: 'About Us
|
|
27
|
-
description: 'About Us
|
|
26
|
+
title: 'About Us',
|
|
27
|
+
description: 'About Us',
|
|
28
28
|
},
|
|
29
29
|
'/privacy': {
|
|
30
|
-
title: 'Privacy Policy
|
|
30
|
+
title: 'Privacy Policy',
|
|
31
31
|
description:
|
|
32
|
-
'Privacy Policy
|
|
32
|
+
'Privacy Policy',
|
|
33
33
|
},
|
|
34
34
|
'/terms-of-use': {
|
|
35
|
-
title: 'Website Terms of Use
|
|
35
|
+
title: 'Website Terms of Use',
|
|
36
36
|
description:
|
|
37
|
-
'Website Terms of Use
|
|
37
|
+
'Website Terms of Use',
|
|
38
38
|
},
|
|
39
|
-
'/
|
|
40
|
-
title: 'Legal, Copyright, and Licensing
|
|
39
|
+
'/legal': {
|
|
40
|
+
title: 'Legal, Copyright, and Licensing',
|
|
41
41
|
description:
|
|
42
|
-
'Legal, Copyright, and Licensing
|
|
42
|
+
'Legal, Copyright, and Licensing',
|
|
43
43
|
},
|
|
44
44
|
'/terms-conditions': {
|
|
45
|
-
title: 'Consulting Terms and Conditions
|
|
45
|
+
title: 'Consulting Terms and Conditions',
|
|
46
46
|
description:
|
|
47
|
-
'Terms and Conditions
|
|
47
|
+
'Terms and Conditions',
|
|
48
48
|
},
|
|
49
|
-
'/foss
|
|
50
|
-
title: 'FOSS Spotlight
|
|
49
|
+
'/foss': {
|
|
50
|
+
title: 'FOSS Spotlight',
|
|
51
51
|
description:
|
|
52
|
-
'FOSS Spotlight
|
|
52
|
+
'FOSS Spotlight',
|
|
53
53
|
},
|
|
54
54
|
'/privacy-dashboard': {
|
|
55
|
-
title: 'Privacy Dashboard
|
|
55
|
+
title: 'Privacy Dashboard',
|
|
56
56
|
description:
|
|
57
|
-
'Privacy Dashboard
|
|
57
|
+
'Privacy Dashboard',
|
|
58
58
|
},
|
|
59
59
|
'/pgp': {
|
|
60
|
-
title: 'Public PGP Keys
|
|
60
|
+
title: 'Public PGP Keys',
|
|
61
61
|
description:
|
|
62
|
-
'Public encryption keys for secure communication
|
|
62
|
+
'Public encryption keys for secure communication',
|
|
63
63
|
},
|
|
64
64
|
'/services': {
|
|
65
|
-
title: "On-Site Services
|
|
65
|
+
title: "On-Site Services",
|
|
66
66
|
description:
|
|
67
|
-
'On-Site Services
|
|
67
|
+
'On-Site Services'
|
|
68
68
|
},
|
|
69
69
|
// Excludes redirect-only routes like /contact, /consultation, /privacy-rights
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
/** @type {MetaData} */
|
|
73
73
|
const defaultMeta = {
|
|
74
|
-
title: 'Loading...
|
|
74
|
+
title: 'Loading...',
|
|
75
75
|
description:
|
|
76
|
-
'Please wait while the content loads...
|
|
76
|
+
'Please wait while the content loads...',
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
// Export values
|
|
@@ -116,9 +116,9 @@ This file is part of Network Pro.
|
|
|
116
116
|
</section>
|
|
117
117
|
|
|
118
118
|
<section id="page-title">
|
|
119
|
-
<h1>About {COMPANY_INFO.APP_NAME}
|
|
119
|
+
<h1>About {COMPANY_INFO.APP_NAME}</h1>
|
|
120
120
|
<p>
|
|
121
|
-
<strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}
|
|
121
|
+
<strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME})</strong>
|
|
122
122
|
<br />
|
|
123
123
|
<em>Security, Networking, Privacy</em>
|
|
124
124
|
</p>
|
|
@@ -143,8 +143,8 @@ This file is part of Network Pro.
|
|
|
143
143
|
</p>
|
|
144
144
|
|
|
145
145
|
<p>
|
|
146
|
-
At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}
|
|
147
|
-
|
|
146
|
+
At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME})</strong>, we deliver
|
|
147
|
+
network security and engineering, cybersecurity, and digital privacy
|
|
148
148
|
consulting with clarity, credibility, and care. We believe that real security
|
|
149
149
|
doesn't have to come at the cost of user autonomy, and that privacy-minded
|
|
150
150
|
solutions can be both practical and powerful.
|
|
@@ -186,7 +186,7 @@ This file is part of Network Pro.
|
|
|
186
186
|
<div class="spacer"></div>
|
|
187
187
|
|
|
188
188
|
<p>
|
|
189
|
-
Additionally, {COMPANY_INFO.APP_NAME}
|
|
189
|
+
Additionally, {COMPANY_INFO.APP_NAME} provides
|
|
190
190
|
<a href={servLink} target={PAGE.SELF}>on-site services</a>
|
|
191
191
|
in the Greater Phoenix Metropolitan Area (Maricopa County, AZ). Our
|
|
192
192
|
<a href={servLink} target={PAGE.SELF}>on-site services</a> are available to both
|
|
@@ -212,10 +212,10 @@ This file is part of Network Pro.
|
|
|
212
212
|
</p>
|
|
213
213
|
|
|
214
214
|
<p>
|
|
215
|
-
At {COMPANY_INFO.APP_NAME}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
215
|
+
At {COMPANY_INFO.APP_NAME}, we deliver robust, intentional solutions for
|
|
216
|
+
individuals and organizations that prioritize integrity — without compromising
|
|
217
|
+
agility or trust. We don't just protect infrastructure. We protect peace of
|
|
218
|
+
mind.
|
|
219
219
|
</p>
|
|
220
220
|
|
|
221
221
|
<p>
|
|
@@ -126,7 +126,7 @@ This file is part of Network Pro.
|
|
|
126
126
|
<p>
|
|
127
127
|
All content—including text, software, logos, graphics, documentation,
|
|
128
128
|
and other materials—provided by
|
|
129
|
-
<strong>{COMPANY_INFO.NAME}</strong> ("{COMPANY_INFO.APP_NAME}
|
|
129
|
+
<strong>{COMPANY_INFO.NAME}</strong> ("{COMPANY_INFO.APP_NAME}",
|
|
130
130
|
"Company", "Licensor") is protected by U.S. and international copyright
|
|
131
131
|
laws.
|
|
132
132
|
</p>
|
|
@@ -135,12 +135,12 @@ This file is part of Network Pro.
|
|
|
135
135
|
<strong>
|
|
136
136
|
<a href={homeLink} target={PAGE.BLANK}> {COMPANY_INFO.NAME} </a>
|
|
137
137
|
</strong>
|
|
138
|
-
({COMPANY_INFO.APP_NAME}
|
|
138
|
+
({COMPANY_INFO.APP_NAME})
|
|
139
139
|
</p>
|
|
140
140
|
{:else if link.id === 'trademark'}
|
|
141
141
|
<p>The following trademarks are the exclusive property of the Company:</p>
|
|
142
142
|
<ul>
|
|
143
|
-
<li><strong>Brand Name:</strong> {COMPANY_INFO.APP_NAME}
|
|
143
|
+
<li><strong>Brand Name:</strong> {COMPANY_INFO.APP_NAME}</li>
|
|
144
144
|
<li><strong>Domain Names:</strong> netwk.pro, neteng.pro, neteng.cc</li>
|
|
145
145
|
<li
|
|
146
146
|
><strong>Logo:</strong> The shield logo displayed on our homepage</li>
|
|
@@ -233,8 +233,7 @@ This file is part of Network Pro.
|
|
|
233
233
|
</p>
|
|
234
234
|
|
|
235
235
|
<p>
|
|
236
|
-
{COMPANY_INFO.APP_NAME}
|
|
237
|
-
under
|
|
236
|
+
{COMPANY_INFO.APP_NAME} (the "Licensed Material") is licensed under
|
|
238
237
|
<strong>Creative Commons Attribution 4.0 International</strong> (CC BY
|
|
239
238
|
4.0)
|
|
240
239
|
<a
|
|
@@ -314,8 +313,8 @@ This file is part of Network Pro.
|
|
|
314
313
|
</p>
|
|
315
314
|
|
|
316
315
|
<p>
|
|
317
|
-
{COMPANY_INFO.APP_NAME}
|
|
318
|
-
|
|
316
|
+
{COMPANY_INFO.APP_NAME} is free software: you can redistribute it and/or
|
|
317
|
+
modify it under the terms of the
|
|
319
318
|
<strong>GNU General Public License</strong> (GNU GPL) as published by
|
|
320
319
|
the
|
|
321
320
|
<a rel={PAGE.REL} href="https://fsf.org" target={PAGE.BLANK}
|
|
@@ -85,8 +85,7 @@ This file is part of Network Pro.
|
|
|
85
85
|
well. Simply <a href={consultLink} target={PAGE.BLANK}
|
|
86
86
|
>schedule a free, initial consultation</a>
|
|
87
87
|
or <a href={contactLink} target={PAGE.BLANK}>contact us directly</a> — we'd be
|
|
88
|
-
happy to discuss how {COMPANY_INFO.APP_NAME}
|
|
89
|
-
on-site.
|
|
88
|
+
happy to discuss how {COMPANY_INFO.APP_NAME} can support your business on-site.
|
|
90
89
|
</p>
|
|
91
90
|
|
|
92
91
|
<p>
|