@networkpro/web 1.12.7 → 1.12.9
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/CHANGELOG.md +92 -2
- package/README.md +27 -0
- package/cspell.json +4 -0
- package/jsconfig.template.jsonc +3 -1
- package/package.json +10 -10
- package/src/app.html +1 -1
- package/src/hooks.server.js +1 -1
- package/src/lib/components/CodeBlock.svelte +13 -0
- package/src/lib/components/foss/FossItemContent.svelte +2 -2
- package/src/lib/data/fossData.js +8 -1
- package/src/lib/images.js +15 -8
- package/src/lib/img/qr/pgp-contact.webp +0 -0
- package/src/lib/img/qr/pgp-github.webp +0 -0
- package/src/lib/img/qr/pgp-security.png +0 -0
- package/src/lib/img/qr/pgp-security.webp +0 -0
- package/src/lib/img/qr/pgp-support.webp +0 -0
- package/src/lib/img/qr/vcard.webp +0 -0
- package/src/lib/meta.js +5 -0
- package/src/lib/pages/AboutContent.svelte +62 -32
- package/src/lib/pages/LicenseContent.svelte +13 -19
- package/src/lib/pages/PGPContent.svelte +142 -0
- package/src/lib/pages/TermsConditionsContent.svelte +1 -1
- package/src/lib/styles/css/default.css +23 -1
- package/src/lib/styles/css/style.css +13 -4
- package/src/lib/styles/global.min.css +1 -1
- package/src/routes/pgp/+page.server.js +18 -0
- package/src/routes/pgp/+page.svelte +61 -0
- package/src/routes/pgp/[key]/+server.js +35 -0
- package/src/service-worker.js +18 -6
- package/static/{assets → bin}/license/CC-BY-4.0.html +1 -1
- package/static/{assets → bin}/license/COPYING.html +1 -1
- package/static/img/powered-by-proton.svg +1 -0
- package/static/pgp/pgp-contact.webp +0 -0
- package/static/pgp/pgp-github.webp +0 -0
- package/static/pgp/pgp-security.png +0 -0
- package/static/pgp/pgp-security.webp +0 -0
- package/static/pgp/pgp-support.webp +0 -0
- package/static/pgp/security@s.neteng.pro.asc +22 -0
- package/static/pgp/vcard.webp +0 -0
- package/static/sitemap.xml +71 -11
- package/static/assets/bin/contact.vcf +0 -13
- package/static/assets/bin/contact@s.neteng.pro.asc +0 -17
- package/static/assets/bin/github@sl.neteng.cc.asc +0 -29
- package/static/assets/bin/linksheet.json +0 -8
- package/static/assets/bin/support@neteng.pro.asc +0 -47
- package/static/assets/consulting-terms.pdf +0 -0
- /package/{assets → static/bin}/consulting-terms.pdf +0 -0
- /package/{assets → static}/bin/contact.vcf +0 -0
- /package/static/{assets → bin}/license/CC-BY-4.0-rdfa.xml +0 -0
- /package/static/{assets → bin}/license/CC-BY-4.0.md +0 -0
- /package/static/{assets → bin}/license/CC-BY-4.0.txt +0 -0
- /package/static/{assets → bin}/license/CC-BY-4.0.xml +0 -0
- /package/static/{assets → bin}/license/COPYING-rdfa.xml +0 -0
- /package/static/{assets → bin}/license/COPYING.md +0 -0
- /package/static/{assets → bin}/license/COPYING.odt +0 -0
- /package/static/{assets → bin}/license/COPYING.txt +0 -0
- /package/{assets → static}/bin/linksheet.json +0 -0
- /package/{assets/bin → static/pgp}/contact@s.neteng.pro.asc +0 -0
- /package/{assets/bin → static/pgp}/github@sl.neteng.cc.asc +0 -0
- /package/static/{img/qr → pgp}/pgp-contact.png +0 -0
- /package/static/{img/qr → pgp}/pgp-github.png +0 -0
- /package/static/{img/qr → pgp}/pgp-support.png +0 -0
- /package/{assets/bin → static/pgp}/support@neteng.pro.asc +0 -0
- /package/static/{img/qr → pgp}/vcard.png +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -22,7 +22,95 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
## [1.12.
|
|
25
|
+
## [1.12.9] - 2025-06-11
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Added `check-security-txt-expiry.yml` workflow to check `.well-known/security.txt` expiration and warn if close to expiring
|
|
30
|
+
- Added `humans.txt` and `security.txt` to `.well-known/` directory
|
|
31
|
+
- Added `src/lib/components/CodeBlock.svelte` component for improved inline formatting control
|
|
32
|
+
- Updated sitemap.xml to include `.well-known/` routes and the `/pgp` route
|
|
33
|
+
- Added link to OpenPGP results for `security@s.neteng.pro` on the `/pgp` route
|
|
34
|
+
- Added support for copy-to-clipboard feedback on PGP fingerprint buttons
|
|
35
|
+
- Added detached signature (`security.txt.asc`) for `.well-known/security.txt`, signed with the `security@s.neteng.pro` PGP key
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- Version bump to `v1.12.9` in `package.json`
|
|
40
|
+
- Corrected the name of `dnt-policy.txt` from `dnt-policy-1.0.txt`
|
|
41
|
+
- Updated `src/service-worker.js` to:
|
|
42
|
+
- Reflect correct `.well-known/dnt-policy.txt` reference
|
|
43
|
+
- Exclude `.well-known/security.txt.asc` from caching
|
|
44
|
+
- Applied line breaks to comment header in `jsconfig.template.jsonc` to fix formatting
|
|
45
|
+
- Minor revision to spreadsheet display and fingerprint formatting for improved mobile responsiveness
|
|
46
|
+
- Revised `.github/SECURITY.md`:
|
|
47
|
+
- Removed note about “PGP section coming soon to the wiki” (now live)
|
|
48
|
+
- Clarified Proton Mail use for `s.neteng.pro` addresses, while preserving support guidance for others
|
|
49
|
+
- Streamlined vulnerability reporting section for clarity and correctness
|
|
50
|
+
- Updated Content Security Policy (CSP) header to allow `clipboard-write` permission
|
|
51
|
+
- Added Proton Mail usage note to `/pgp` route UI for `s.neteng.pro` domain only
|
|
52
|
+
- Added equivalent Proton Mail usage comment to `.well-known/security.txt`
|
|
53
|
+
- Upgraded dependencies:
|
|
54
|
+
- `@eslint/compat` `^1.2.9` → `^1.3.0`
|
|
55
|
+
- `eslint-plugin-jsdoc` `^50.7.1` → `^50.8.0`
|
|
56
|
+
- `postcss` `^8.5.4` → `^8.5.5`
|
|
57
|
+
- `posthog-js` `^1.250.1` → `^1.250.2`
|
|
58
|
+
- `svelte` `5.33.19` → `5.34.1`
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## [1.12.8] - 2025-06-11
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
|
|
66
|
+
- Created `/pgp` route with `+page.svelte`, `+page.server.js`, and supporting structure.
|
|
67
|
+
- Added `src/lib/pages/PGPContent.svelte` for rendering PGP key information.
|
|
68
|
+
- Dynamic routing with `src/routes/pgp/[key]/+server.js` for serving `.asc` files with correct MIME type (`application/pgp-keys`).
|
|
69
|
+
- Support for serving QR code images statically in `/pgp` and dynamically in `/about`.
|
|
70
|
+
- Added WebP versions of QR code images in `static/pgp/` and `src/lib/img/qr/`.
|
|
71
|
+
- Set up dynamic import for QR images in `/about` route via `src/lib/images.js`.
|
|
72
|
+
- Enhanced accessibility styles for focus-visible states on links.
|
|
73
|
+
- Improved copy-to-clipboard buttons for PGP fingerprints.
|
|
74
|
+
- Defined `ContactAssets` typedef and expanded `pgpKeys` data structure for strict typing.
|
|
75
|
+
- README updated with new section: `static/pgp/` Directory Structure.
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
|
|
79
|
+
- Modified `/about` route to reference `/pgp` and use dynamic WebP images for PGP keys.
|
|
80
|
+
- Adjusted `src/lib/meta.js` to include metadata for the `/pgp` route.
|
|
81
|
+
- Canonical links in `static/bin/CC-BY-4.0.html` and `static/bin/COPYING.html` updated to reflect new paths.
|
|
82
|
+
- Service worker updated to exclude `.asc` files in `/pgp`, while continuing to cache QR image assets.
|
|
83
|
+
- Moved license and binary files from `static/assets` to `static/bin`.
|
|
84
|
+
- File paths updated on the `/license` route to reflect the new `/bin/license` location.
|
|
85
|
+
- Updated sitemap.xml.
|
|
86
|
+
- Updated `.prettierignore` to ignore `static/bin/license`.
|
|
87
|
+
- Updated LinkSheet download in `FossItemContent.svelte` to reference `bin/linksheet.json`.
|
|
88
|
+
- Added dynamic `lsheetDl` constant in `fossData.js`.
|
|
89
|
+
- Updated `TermsConditionsContent.svelte` to point to `bin/consulting-terms.pdf`.
|
|
90
|
+
- Updated `LicenseContent.svelte` to:
|
|
91
|
+
- View HTML license file.
|
|
92
|
+
- Use `download` attribute for all other formats.
|
|
93
|
+
- Updated `generator` meta tag to reflect `SvelteKit 2.21.4`
|
|
94
|
+
- Upgraded dependencies:
|
|
95
|
+
- `@playwright/test` updated from `^1.52.0` → `^1.53.0`
|
|
96
|
+
- `@sveltejs/kit` updated from `2.21.3` → `2.21.4`
|
|
97
|
+
- `eslint-plugin-svelte` updated from `^3.9.1` → `^3.9.2`
|
|
98
|
+
- `playwright` updated from `^1.52.0` → `^1.53.0`
|
|
99
|
+
- `posthog-js` updated from `^1.249.5` → `^1.250.1`
|
|
100
|
+
- `svelte` updated from `5.33.18` → `5.33.19`
|
|
101
|
+
|
|
102
|
+
### Fixed
|
|
103
|
+
|
|
104
|
+
- Resolved TypeScript and JSDoc typing errors in `AboutContent.svelte` and `PGPContent.svelte`.
|
|
105
|
+
- Verified fallback behavior on `/pgp/[key]` for unknown files:
|
|
106
|
+
- `.asc` files return "File not found".
|
|
107
|
+
- All others fall through to 404.
|
|
108
|
+
- Adjusted `function copy(text)` with explicit JSDoc type for parameter.
|
|
109
|
+
- Removed stale references to deleted assets in service worker config.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## [1.12.7] - 2025-06-09
|
|
26
114
|
|
|
27
115
|
### Changed
|
|
28
116
|
|
|
@@ -198,7 +286,9 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
198
286
|
|
|
199
287
|
<!-- Link references -->
|
|
200
288
|
|
|
201
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.12.
|
|
289
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.12.9...HEAD
|
|
290
|
+
[1.12.9]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.9
|
|
291
|
+
[1.12.8]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.8
|
|
202
292
|
[1.12.7]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.7
|
|
203
293
|
[1.12.6]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.6
|
|
204
294
|
[1.12.5]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.5
|
package/README.md
CHANGED
|
@@ -105,6 +105,33 @@ This project follows the principles of [Keep a Changelog](https://keepachangelog
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
|
|
108
|
+
### 🔐 `static/pgp/` Directory Structure
|
|
109
|
+
|
|
110
|
+
This directory contains public PGP key files and their corresponding QR codes.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
static/
|
|
114
|
+
├── pgp/
|
|
115
|
+
│ ├── contact@s.neteng.pro.asc # Public key for secure email
|
|
116
|
+
│ ├── pgp-contact.png # QR code (PNG) for secure email key
|
|
117
|
+
│ ├── pgp-contact.webp # Optimized WebP version of the QR code
|
|
118
|
+
│ ├── pgp-security.png # QR code (PNG) for security contact key
|
|
119
|
+
│ ├── pgp-security.webp # WebP version of the security QR code
|
|
120
|
+
│ ├── pgp-support.png # QR code (PNG) for support key
|
|
121
|
+
│ ├── pgp-support.webp # WebP version of the support QR code
|
|
122
|
+
│ ├── security@s.neteng.pro.asc # Public key for security contact
|
|
123
|
+
│ ├── support@neteng.pro.asc # Public key for general support
|
|
124
|
+
└── ...
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- `.asc` files are **excluded from service worker precaching** but served directly via the `/pgp/[key]` route.
|
|
128
|
+
- QR code images are **served statically** by the `/pgp` route using `<picture>` elements.
|
|
129
|
+
- **WebP versions** are also used in the `/pgp` route, while the `/about` route imports **dynamic equivalents** from `src/lib/img/qr`.
|
|
130
|
+
- This route does **not use fallback rendering**; only explicitly defined files are available and expected to resolve.
|
|
131
|
+
- A dynamic `[key]/+server.js` handler under `src/routes/pgp/` serves the `.asc` files with appropriate `Content-Type` and download headers.
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
108
135
|
### E2E Test Structure
|
|
109
136
|
|
|
110
137
|
End-to-end tests are located in `tests/e2e/` and organized by feature or route:
|
package/cspell.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"ccby",
|
|
14
14
|
"CCPA",
|
|
15
15
|
"CPRA",
|
|
16
|
+
"elif",
|
|
16
17
|
"Embedder",
|
|
17
18
|
"Ente",
|
|
18
19
|
"esbuild",
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"lighthouserc",
|
|
34
35
|
"lightningcss",
|
|
35
36
|
"linksheet",
|
|
37
|
+
"lsheet",
|
|
36
38
|
"Mailvelope",
|
|
37
39
|
"Maricopa",
|
|
38
40
|
"mdsvex",
|
|
@@ -51,7 +53,9 @@
|
|
|
51
53
|
"NWPRO",
|
|
52
54
|
"obtainium",
|
|
53
55
|
"openpgp",
|
|
56
|
+
"opgp",
|
|
54
57
|
"posthog",
|
|
58
|
+
"precaching",
|
|
55
59
|
"prefs",
|
|
56
60
|
"publickey",
|
|
57
61
|
"reconsent",
|
package/jsconfig.template.jsonc
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/* =========================================================================
|
|
2
2
|
jsconfig.template.jsonc
|
|
3
3
|
|
|
4
|
-
NOTE: This file is for reference only and is not actively used by SvelteKit or
|
|
4
|
+
NOTE: This file is for reference only and is not actively used by SvelteKit or
|
|
5
|
+
tooling. SvelteKit uses the jsconfig.json file without comments for actual
|
|
6
|
+
configuration.
|
|
5
7
|
|
|
6
8
|
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
7
9
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.12.
|
|
4
|
+
"version": "1.12.9",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advisory",
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"dompurify": "^3.2.6",
|
|
83
|
-
"posthog-js": "^1.
|
|
83
|
+
"posthog-js": "^1.250.2",
|
|
84
84
|
"semver": "^7.7.2",
|
|
85
|
-
"svelte": "5.
|
|
85
|
+
"svelte": "5.34.1"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
|
-
"@eslint/compat": "^1.
|
|
88
|
+
"@eslint/compat": "^1.3.0",
|
|
89
89
|
"@eslint/js": "^9.28.0",
|
|
90
90
|
"@lhci/cli": "^0.15.0",
|
|
91
|
-
"@playwright/test": "^1.
|
|
91
|
+
"@playwright/test": "^1.53.0",
|
|
92
92
|
"@sveltejs/adapter-netlify": "^5.0.2",
|
|
93
|
-
"@sveltejs/kit": "2.21.
|
|
93
|
+
"@sveltejs/kit": "2.21.4",
|
|
94
94
|
"@sveltejs/vite-plugin-svelte": "5.1.0",
|
|
95
95
|
"@testing-library/jest-dom": "^6.6.3",
|
|
96
96
|
"@testing-library/svelte": "^5.2.8",
|
|
@@ -99,16 +99,16 @@
|
|
|
99
99
|
"browserslist": "^4.25.0",
|
|
100
100
|
"eslint": "^9.28.0",
|
|
101
101
|
"eslint-config-prettier": "^10.1.5",
|
|
102
|
-
"eslint-plugin-jsdoc": "^50.
|
|
103
|
-
"eslint-plugin-svelte": "^3.9.
|
|
102
|
+
"eslint-plugin-jsdoc": "^50.8.0",
|
|
103
|
+
"eslint-plugin-svelte": "^3.9.2",
|
|
104
104
|
"globals": "^16.2.0",
|
|
105
105
|
"jsdom": "^26.1.0",
|
|
106
106
|
"lightningcss": "^1.30.1",
|
|
107
107
|
"markdownlint": "^0.38.0",
|
|
108
108
|
"markdownlint-cli2": "^0.18.1",
|
|
109
109
|
"mdsvex": "^0.12.6",
|
|
110
|
-
"playwright": "^1.
|
|
111
|
-
"postcss": "^8.5.
|
|
110
|
+
"playwright": "^1.53.0",
|
|
111
|
+
"postcss": "^8.5.5",
|
|
112
112
|
"prettier": "^3.5.3",
|
|
113
113
|
"prettier-plugin-svelte": "^3.4.0",
|
|
114
114
|
"stylelint": "^16.20.0",
|
package/src/app.html
CHANGED
package/src/hooks.server.js
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/components/CodeBlock.svelte
|
|
3
|
+
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
|
+
This file is part of Network Pro.
|
|
7
|
+
========================================================================== -->
|
|
8
|
+
|
|
9
|
+
<script>
|
|
10
|
+
export let text = "";
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<code class="block">{text}</code>
|
|
@@ -126,11 +126,11 @@ This file is part of Network Pro.
|
|
|
126
126
|
><i class="fas fa-file-arrow-down" style="margin-left: 8px;"></i
|
|
127
127
|
></span>
|
|
128
128
|
<a
|
|
129
|
-
href="/
|
|
129
|
+
href="/bin/linksheet.json"
|
|
130
130
|
type="application/json"
|
|
131
131
|
download
|
|
132
132
|
style="margin-left: 8px;"
|
|
133
|
-
target=
|
|
133
|
+
target={PAGE.BLANK}>
|
|
134
134
|
Obtainium App Config
|
|
135
135
|
</a>
|
|
136
136
|
</p>
|
package/src/lib/data/fossData.js
CHANGED
|
@@ -7,8 +7,15 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== */
|
|
8
8
|
|
|
9
9
|
// Import FOSS images
|
|
10
|
+
import { base } from "$app/paths";
|
|
10
11
|
import { acodePng, acodeWbp, eauthPng, eauthWbp, hboardPng, hboardWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, squirclePng, squircleWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
11
12
|
|
|
13
|
+
/**
|
|
14
|
+
* URL to the LinkSheet config file, using the base path
|
|
15
|
+
* @type {string}
|
|
16
|
+
*/
|
|
17
|
+
const lsheetDl = `${base}/bin/linksheet.json`;
|
|
18
|
+
|
|
12
19
|
export const fossData = [
|
|
13
20
|
{
|
|
14
21
|
id: "squircle",
|
|
@@ -510,7 +517,7 @@ export const fossData = [
|
|
|
510
517
|
hideLabels: true, // Special flag to control rendering
|
|
511
518
|
downloadText: "Obtainium App Config",
|
|
512
519
|
downloadHref:
|
|
513
|
-
|
|
520
|
+
{lsheetDl},
|
|
514
521
|
},
|
|
515
522
|
{
|
|
516
523
|
label: "GitHub",
|
package/src/lib/images.js
CHANGED
|
@@ -15,7 +15,7 @@ This file is part of Network Pro.
|
|
|
15
15
|
* @description Provides convenient access to images in the src/lib/img directory
|
|
16
16
|
* @module src/lib
|
|
17
17
|
* @author SunDevil311
|
|
18
|
-
* @updated 2025-
|
|
18
|
+
* @updated 2025-06-09
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
// Import favicon images
|
|
@@ -55,9 +55,14 @@ import urlPng from "$lib/img/posts/urlcheck.png";
|
|
|
55
55
|
import urlWbp from "$lib/img/posts/urlcheck.webp";
|
|
56
56
|
|
|
57
57
|
// Import QR code images
|
|
58
|
-
import
|
|
59
|
-
import
|
|
60
|
-
import
|
|
58
|
+
import pgpContactPng from "$lib/img/qr/pgp-contact.png";
|
|
59
|
+
import pgpContactWbp from "$lib/img/qr/pgp-contact.webp";
|
|
60
|
+
import pgpSecurityPng from "$lib/img/qr/pgp-security.png";
|
|
61
|
+
import pgpSecurityWbp from "$lib/img/qr/pgp-security.webp";
|
|
62
|
+
import pgpSupportPng from "$lib/img/qr/pgp-support.png";
|
|
63
|
+
import pgpSupportWbp from "$lib/img/qr/pgp-support.webp";
|
|
64
|
+
import vcfPng from "$lib/img/qr/vcard.png";
|
|
65
|
+
import vcfWbp from "$lib/img/qr/vcard.webp";
|
|
61
66
|
|
|
62
67
|
// Re-export all imports
|
|
63
68
|
export {
|
|
@@ -79,9 +84,10 @@ export {
|
|
|
79
84
|
lsheetWbp,
|
|
80
85
|
obtainiumPng,
|
|
81
86
|
obtainiumWbp,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
pgpContactPng,
|
|
88
|
+
pgpContactWbp, pgpSecurityPng,
|
|
89
|
+
pgpSecurityWbp, pgpSupportPng,
|
|
90
|
+
pgpSupportWbp, pmxPng,
|
|
85
91
|
pmxWbp,
|
|
86
92
|
squirclePng,
|
|
87
93
|
squircleWbp,
|
|
@@ -89,7 +95,8 @@ export {
|
|
|
89
95
|
tosWbp,
|
|
90
96
|
urlPng,
|
|
91
97
|
urlWbp,
|
|
92
|
-
|
|
98
|
+
vcfPng,
|
|
99
|
+
vcfWbp
|
|
93
100
|
};
|
|
94
101
|
|
|
95
102
|
// cspell:ignore eauth hboard
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/lib/meta.js
CHANGED
|
@@ -56,6 +56,11 @@ const meta = {
|
|
|
56
56
|
description:
|
|
57
57
|
"Privacy Dashboard | Security, Networking, Privacy — Network Pro™",
|
|
58
58
|
},
|
|
59
|
+
"/pgp": {
|
|
60
|
+
title: "Public PGP Keys — Network Pro™",
|
|
61
|
+
description:
|
|
62
|
+
"Public encryption keys for secure communication | Security, Networking, Privacy — Network Pro™",
|
|
63
|
+
},
|
|
59
64
|
// Excludes redirect-only routes like /contact, /consultation, /privacy-rights
|
|
60
65
|
};
|
|
61
66
|
|
|
@@ -7,14 +7,21 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
pgpContactPng,
|
|
12
|
+
pgpContactWbp,
|
|
13
|
+
pgpSupportPng,
|
|
14
|
+
pgpSupportWbp,
|
|
15
|
+
vcfPng,
|
|
16
|
+
vcfWbp,
|
|
17
|
+
} from "$lib";
|
|
11
18
|
import { base } from "$app/paths";
|
|
12
19
|
import { CONSTANTS } from "$lib";
|
|
13
20
|
|
|
14
21
|
// Log the base path to verify its value
|
|
15
22
|
//console.log("Base path:", base);
|
|
16
23
|
|
|
17
|
-
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
24
|
+
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
18
25
|
|
|
19
26
|
const { COMPANY_INFO, PAGE } = CONSTANTS;
|
|
20
27
|
|
|
@@ -24,6 +31,12 @@ This file is part of Network Pro.
|
|
|
24
31
|
*/
|
|
25
32
|
const contactLink = `${base}/contact`;
|
|
26
33
|
|
|
34
|
+
/**
|
|
35
|
+
* URL to the PGP route, using the base path
|
|
36
|
+
* @type {string}
|
|
37
|
+
*/
|
|
38
|
+
const pgpLink = `${base}/pgp`;
|
|
39
|
+
|
|
27
40
|
/**
|
|
28
41
|
* HTML attribute for async image decoding
|
|
29
42
|
* @type {"async" | "sync" | "auto"}
|
|
@@ -70,6 +83,7 @@ This file is part of Network Pro.
|
|
|
70
83
|
* @type {Array<{
|
|
71
84
|
* label: string,
|
|
72
85
|
* qrSrc: string,
|
|
86
|
+
* qrWbp: string,
|
|
73
87
|
* keySearch: string,
|
|
74
88
|
* fingerprint: string[]
|
|
75
89
|
* }>}
|
|
@@ -77,13 +91,15 @@ This file is part of Network Pro.
|
|
|
77
91
|
const pgpKeys = [
|
|
78
92
|
{
|
|
79
93
|
label: "support@neteng.pro",
|
|
80
|
-
qrSrc:
|
|
94
|
+
qrSrc: pgpSupportPng,
|
|
95
|
+
qrWbp: pgpSupportWbp,
|
|
81
96
|
keySearch: "https://keys.openpgp.org/search?q=support%40neteng.pro",
|
|
82
97
|
fingerprint: ["6590B992E2E3EFF12738", "7BCE2AF093E9DEC61BA0"],
|
|
83
98
|
},
|
|
84
99
|
{
|
|
85
100
|
label: "contact@s.neteng.pro",
|
|
86
|
-
qrSrc:
|
|
101
|
+
qrSrc: pgpContactPng,
|
|
102
|
+
qrWbp: pgpContactWbp,
|
|
87
103
|
keySearch: "https://keys.openpgp.org/search?q=contact%40s.neteng.pro",
|
|
88
104
|
fingerprint: ["DF118BAA6C2D9DCDEBDC", "2DDCF99373499495F957"],
|
|
89
105
|
},
|
|
@@ -91,18 +107,20 @@ This file is part of Network Pro.
|
|
|
91
107
|
|
|
92
108
|
/**
|
|
93
109
|
* @typedef {Object} ContactAssets
|
|
94
|
-
* @property {string} vcf
|
|
95
|
-
* @property {string} qrSrc
|
|
96
|
-
* @property {string}
|
|
97
|
-
* @property {string}
|
|
110
|
+
* @property {string} vcf
|
|
111
|
+
* @property {string} qrSrc
|
|
112
|
+
* @property {string} qrWbp
|
|
113
|
+
* @property {string} supportAsc
|
|
114
|
+
* @property {string} contactAsc
|
|
98
115
|
*/
|
|
99
116
|
|
|
100
117
|
/** @type {ContactAssets} */
|
|
101
118
|
const contactAssets = {
|
|
102
|
-
vcf: "/
|
|
103
|
-
qrSrc:
|
|
104
|
-
|
|
105
|
-
|
|
119
|
+
vcf: "/bin/contact.vcf",
|
|
120
|
+
qrSrc: vcfPng,
|
|
121
|
+
qrWbp: vcfWbp,
|
|
122
|
+
supportAsc: "/pgp/support@neteng.pro.asc",
|
|
123
|
+
contactAsc: "/pgp/contact@s.neteng.pro.asc",
|
|
106
124
|
};
|
|
107
125
|
</script>
|
|
108
126
|
|
|
@@ -210,8 +228,11 @@ This file is part of Network Pro.
|
|
|
210
228
|
<div class="spacer"></div>
|
|
211
229
|
|
|
212
230
|
<p>
|
|
213
|
-
You can find our PGP keys and a vCard
|
|
214
|
-
below.
|
|
231
|
+
You can find our PGP keys and a downloadable vCard with contact information
|
|
232
|
+
below. For a complete list of public keys, visit the <a
|
|
233
|
+
href={pgpLink}
|
|
234
|
+
target={PAGE.SELF}>dedicated PGP page</a
|
|
235
|
+
>.
|
|
215
236
|
</p>
|
|
216
237
|
|
|
217
238
|
<!-- BEGIN PGP KEYS -->
|
|
@@ -221,12 +242,15 @@ This file is part of Network Pro.
|
|
|
221
242
|
<!-- Row 0 (First row) remains unchanged -->
|
|
222
243
|
<tr>
|
|
223
244
|
<td class="pgp-col1">
|
|
224
|
-
<
|
|
225
|
-
{
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
245
|
+
<picture>
|
|
246
|
+
<source srcset={pgpKeys[0].qrWbp} type="image/webp" />
|
|
247
|
+
<img
|
|
248
|
+
{decoding}
|
|
249
|
+
{loading}
|
|
250
|
+
src={pgpKeys[0].qrSrc}
|
|
251
|
+
class="pgp-image"
|
|
252
|
+
alt={`PGP Key - ${pgpKeys[0].label}`} />
|
|
253
|
+
</picture>
|
|
230
254
|
</td>
|
|
231
255
|
<td class="pgp-col2">
|
|
232
256
|
<a rel={PAGE.REL} href={pgpKeys[0].keySearch} target={PAGE.BLANK}>
|
|
@@ -275,24 +299,30 @@ This file is part of Network Pro.
|
|
|
275
299
|
</p>
|
|
276
300
|
</td>
|
|
277
301
|
<td class="pgp-col2">
|
|
278
|
-
<
|
|
279
|
-
{
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
302
|
+
<picture>
|
|
303
|
+
<source srcset={pgpKeys[1].qrWbp} type="image/webp" />
|
|
304
|
+
<img
|
|
305
|
+
{decoding}
|
|
306
|
+
{loading}
|
|
307
|
+
src={pgpKeys[1].qrSrc}
|
|
308
|
+
class="pgp-image"
|
|
309
|
+
alt={`PGP Key - ${pgpKeys[1].label}`} />
|
|
310
|
+
</picture>
|
|
284
311
|
</td>
|
|
285
312
|
</tr>
|
|
286
313
|
|
|
287
314
|
<!-- Row 2 (Third row) remains unchanged -->
|
|
288
315
|
<tr>
|
|
289
316
|
<td class="pgp-col1">
|
|
290
|
-
<
|
|
291
|
-
{
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
317
|
+
<picture>
|
|
318
|
+
<source srcset={contactAssets.qrWbp} type="image/webp" />
|
|
319
|
+
<img
|
|
320
|
+
{decoding}
|
|
321
|
+
{loading}
|
|
322
|
+
src={contactAssets.qrSrc}
|
|
323
|
+
class="pgp-image"
|
|
324
|
+
alt="vCard" />
|
|
325
|
+
</picture>
|
|
296
326
|
</td>
|
|
297
327
|
<td class="pgp-col2">
|
|
298
328
|
<strong>vCard</strong>
|
|
@@ -218,22 +218,19 @@ This file is part of Network Pro.
|
|
|
218
218
|
</ul>
|
|
219
219
|
{:else if link.id === "cc-by"}
|
|
220
220
|
<p class={constants.classSmall}>
|
|
221
|
-
Download:
|
|
222
|
-
<a href="/
|
|
223
|
-
>HTML</a>
|
|
221
|
+
View / Download:
|
|
222
|
+
<a href="/bin/license/CC-BY-4.0.html" target={PAGE.BLANK}>HTML</a>
|
|
224
223
|
|
|
|
225
|
-
<a href="/
|
|
224
|
+
<a href="/bin/license/CC-BY-4.0.md" download target={PAGE.BLANK}
|
|
226
225
|
>Markdown</a>
|
|
227
226
|
|
|
|
228
|
-
<a href="/
|
|
227
|
+
<a href="/bin/license/CC-BY-4.0.txt" download target={PAGE.BLANK}
|
|
229
228
|
>Text</a>
|
|
230
229
|
|
|
|
231
|
-
<a
|
|
232
|
-
|
|
233
|
-
download
|
|
234
|
-
target={PAGE.BLANK}>RDFa</a>
|
|
230
|
+
<a href="/bin/license/CC-BY-4.0-rdfa.xml" download target={PAGE.BLANK}
|
|
231
|
+
>RDFa</a>
|
|
235
232
|
|
|
|
236
|
-
<a href="/
|
|
233
|
+
<a href="/bin/license/CC-BY-4.0.xml" download target={PAGE.BLANK}
|
|
237
234
|
>XMP</a>
|
|
238
235
|
</p>
|
|
239
236
|
|
|
@@ -314,21 +311,18 @@ This file is part of Network Pro.
|
|
|
314
311
|
</code>
|
|
315
312
|
{:else if link.id === "gnu-gpl"}
|
|
316
313
|
<p class={constants.classSmall}>
|
|
317
|
-
Download:
|
|
318
|
-
<a href="/
|
|
319
|
-
>HTML</a>
|
|
314
|
+
View / Download:
|
|
315
|
+
<a href="/bin/license/COPYING.html" target={PAGE.BLANK}>HTML</a>
|
|
320
316
|
|
|
|
321
|
-
<a href="/
|
|
317
|
+
<a href="/bin/license/COPYING.md" download target={PAGE.BLANK}
|
|
322
318
|
>Markdown</a>
|
|
323
319
|
|
|
|
324
|
-
<a href="/
|
|
325
|
-
>Text</a>
|
|
320
|
+
<a href="/bin/license/COPYING.txt" download target={PAGE.BLANK}>Text</a>
|
|
326
321
|
|
|
|
327
|
-
<a href="/
|
|
322
|
+
<a href="/bin/license/COPYING-rdfa.xml" download target={PAGE.BLANK}
|
|
328
323
|
>RDFa</a>
|
|
329
324
|
|
|
|
330
|
-
<a href="/
|
|
331
|
-
>ODT</a>
|
|
325
|
+
<a href="/bin/license/COPYING.odt" download target={PAGE.BLANK}>ODT</a>
|
|
332
326
|
</p>
|
|
333
327
|
|
|
334
328
|
<p>
|