@networkpro/web 1.12.8 → 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 +39 -1
- package/cspell.json +1 -0
- package/jsconfig.template.jsonc +3 -1
- package/package.json +6 -6
- package/src/hooks.server.js +1 -1
- package/src/lib/components/CodeBlock.svelte +13 -0
- package/src/lib/pages/PGPContent.svelte +42 -10
- package/src/lib/styles/css/default.css +5 -1
- package/src/lib/styles/global.min.css +1 -1
- package/src/service-worker.js +2 -1
- package/static/img/powered-by-proton.svg +1 -0
- package/static/sitemap.xml +64 -4
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,43 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
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
|
+
|
|
25
62
|
## [1.12.8] - 2025-06-11
|
|
26
63
|
|
|
27
64
|
### Added
|
|
@@ -249,7 +286,8 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
249
286
|
|
|
250
287
|
<!-- Link references -->
|
|
251
288
|
|
|
252
|
-
[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
|
|
253
291
|
[1.12.8]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.8
|
|
254
292
|
[1.12.7]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.7
|
|
255
293
|
[1.12.6]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.6
|
package/cspell.json
CHANGED
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,12 +80,12 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"dompurify": "^3.2.6",
|
|
83
|
-
"posthog-js": "^1.250.
|
|
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
91
|
"@playwright/test": "^1.53.0",
|
|
@@ -99,7 +99,7 @@
|
|
|
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.
|
|
102
|
+
"eslint-plugin-jsdoc": "^50.8.0",
|
|
103
103
|
"eslint-plugin-svelte": "^3.9.2",
|
|
104
104
|
"globals": "^16.2.0",
|
|
105
105
|
"jsdom": "^26.1.0",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"markdownlint-cli2": "^0.18.1",
|
|
109
109
|
"mdsvex": "^0.12.6",
|
|
110
110
|
"playwright": "^1.53.0",
|
|
111
|
-
"postcss": "^8.5.
|
|
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/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>
|
|
@@ -7,6 +7,7 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
+
import CodeBlock from "$lib/components/CodeBlock.svelte";
|
|
10
11
|
import { base } from "$app/paths";
|
|
11
12
|
import { CONSTANTS } from "$lib";
|
|
12
13
|
|
|
@@ -38,25 +39,56 @@ This file is part of Network Pro.
|
|
|
38
39
|
name: "Security Contact",
|
|
39
40
|
email: "security (at) s.neteng.pro",
|
|
40
41
|
fingerprint: "B7FE 1D4E 6CAB 3E71 4A9F DF6E 48CB 7290 C00D 0DA5",
|
|
41
|
-
opgp:
|
|
42
|
+
opgp: "https://keys.openpgp.org/search?q=security%40s.neteng.pro",
|
|
42
43
|
file: "/pgp/security@s.neteng.pro.asc",
|
|
43
44
|
img: "pgp-security",
|
|
44
45
|
},
|
|
45
46
|
];
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
|
-
*
|
|
49
|
-
* @
|
|
49
|
+
* Tracks which PGP key's fingerprint was last copied.
|
|
50
|
+
* @type {string | null}
|
|
51
|
+
*/
|
|
52
|
+
let copiedKey = null;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Copies the fingerprint of a given PGP key and shows temporary feedback.
|
|
56
|
+
* @param {{ fingerprint: string, email: string }} key - The PGP key object
|
|
57
|
+
*/
|
|
58
|
+
function handleCopy(key) {
|
|
59
|
+
copy(key.fingerprint);
|
|
60
|
+
copiedKey = key.email;
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
if (copiedKey === key.email) copiedKey = null;
|
|
63
|
+
}, 2000);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Writes a string to the clipboard.
|
|
68
|
+
* @param {string} text - The text to copy to the clipboard
|
|
50
69
|
*/
|
|
51
70
|
function copy(text) {
|
|
52
|
-
navigator.clipboard.writeText(text)
|
|
71
|
+
navigator.clipboard.writeText(text).catch((err) => {
|
|
72
|
+
console.error("Clipboard copy failed:", err);
|
|
73
|
+
});
|
|
53
74
|
}
|
|
54
75
|
</script>
|
|
55
76
|
|
|
56
77
|
<h1>🔐 Public PGP Keys</h1>
|
|
57
|
-
<p
|
|
58
|
-
|
|
59
|
-
verify signed messages
|
|
78
|
+
<p>
|
|
79
|
+
Below are our public encryption keys. Use them to securely send email or
|
|
80
|
+
verify signed messages.
|
|
81
|
+
</p>
|
|
82
|
+
<p>
|
|
83
|
+
<img
|
|
84
|
+
src="/img/powered-by-proton.svg"
|
|
85
|
+
alt="Powered by Proton"
|
|
86
|
+
style="width: 168px; height: 24px;" />
|
|
87
|
+
</p>
|
|
88
|
+
<p class="bquote">
|
|
89
|
+
NOTE: Addresses under the <strong>s.neteng.pro</strong> domain are powered by Proton
|
|
90
|
+
Mail to ensure strong end-to-end privacy protections.
|
|
91
|
+
</p>
|
|
60
92
|
|
|
61
93
|
{#each keys as key}
|
|
62
94
|
<section class="pgp-entry" aria-labelledby={`pgp-${key.img}`}>
|
|
@@ -73,14 +105,14 @@ This file is part of Network Pro.
|
|
|
73
105
|
{/if}
|
|
74
106
|
>
|
|
75
107
|
</h3>
|
|
76
|
-
<
|
|
108
|
+
<CodeBlock text={key.fingerprint} />
|
|
77
109
|
<p>
|
|
78
110
|
<button
|
|
79
111
|
type="button"
|
|
80
|
-
on:click={() =>
|
|
112
|
+
on:click={() => handleCopy(key)}
|
|
81
113
|
aria-label={`Copy PGP fingerprint for ${key.name}`}
|
|
82
114
|
title="Copy fingerprint to clipboard">
|
|
83
|
-
Copy fingerprint
|
|
115
|
+
{copiedKey === key.email ? "Copied!" : "Copy fingerprint"}
|
|
84
116
|
</button>
|
|
85
117
|
</p>
|
|
86
118
|
<p>
|
|
@@ -457,12 +457,16 @@ footer .container {
|
|
|
457
457
|
.block {
|
|
458
458
|
width: 100%;
|
|
459
459
|
border: none;
|
|
460
|
-
font-size: 0.
|
|
460
|
+
font-size: 0.875rem;
|
|
461
461
|
line-height: 1.125rem;
|
|
462
462
|
background: none;
|
|
463
463
|
border-radius: 0;
|
|
464
|
+
font-family: monospace; /* retain code look */
|
|
464
465
|
outline: none;
|
|
466
|
+
overflow-wrap: break-word; /* modern replacement */
|
|
465
467
|
resize: none;
|
|
468
|
+
white-space: normal; /* allow wrapping */
|
|
469
|
+
word-break: normal; /* avoid deprecated behavior */
|
|
466
470
|
}
|
|
467
471
|
|
|
468
472
|
.fingerprint {
|
|
@@ -3,4 +3,4 @@ Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
|
3
3
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
4
4
|
This file is part of Network Pro.
|
|
5
5
|
========================================================================== */
|
|
6
|
-
html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:visited{color:#7f6227}a:focus-visible{color:#191919;outline-offset:4px;background-color:#ffc627;outline:2px solid #ffc627}a:focus:not(:focus-visible){color:inherit;background-color:#0000;outline:none}a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#7f6227}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.
|
|
6
|
+
html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:visited{color:#7f6227}a:focus-visible{color:#191919;outline-offset:4px;background-color:#ffc627;outline:2px solid #ffc627}a:focus:not(:focus-visible){color:inherit;background-color:#0000;outline:none}a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#7f6227}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{overflow-wrap:break-word;resize:none;white-space:normal;word-break:normal;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-family:monospace;font-size:.875rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pgp-entry{flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.pgp-text{flex:2;min-width:250px}.pgp-qr{flex:1;min-width:150px}
|
package/src/service-worker.js
CHANGED
|
@@ -28,6 +28,7 @@ const CACHE = `cache-${version}`;
|
|
|
28
28
|
const excludedAssets = [];
|
|
29
29
|
|
|
30
30
|
const IGNORE_PATHS = new Set([
|
|
31
|
+
"/.well-known/security.txt.asc",
|
|
31
32
|
"/img/banner-1280x640.png",
|
|
32
33
|
"/img/logo-transparent.png",
|
|
33
34
|
"/img/logo.png",
|
|
@@ -108,7 +109,7 @@ const REQUIRED_ASSETS = [
|
|
|
108
109
|
"/styles/solid.min.css",
|
|
109
110
|
"/webfonts/fa-brands-400.woff2",
|
|
110
111
|
"/webfonts/fa-solid-900.woff2",
|
|
111
|
-
"/.well-known/dnt-policy
|
|
112
|
+
"/.well-known/dnt-policy.txt",
|
|
112
113
|
"/.well-known/gpc.json",
|
|
113
114
|
];
|
|
114
115
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="196.114" height="28" aria-label="POWERED BY: PROTON"><g shape-rendering="crispEdges"><path fill="#555" d="M0 0h117.614v28H0z"/><path fill="#6d4aff" d="M117.614 0h78.5v28h-78.5z"/></g><g fill="#fff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="100" text-anchor="middle" text-rendering="geometricPrecision"><image width="11.114" height="14" x="9" y="7" href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMTkuMDUyMDAwMDAwMDAwMDAzIDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5Qcm90b248L3RpdGxlPjxwYXRoIGQ9Ik0wIDE3Ljc1VjI0aDQuNDAxdi01Ljk3OWMwLTAuNTgyIDAuMjMyLTEuMTQgMC42NDUtMS41NTFhMi4yMDQgMi4yMDQgMCAwIDEgMS41NTYtMC42NDNoNC41MTNhNy45NTUgNy45NTUgMCAwIDAgNS42MTItMi4zMTggNy45MDcgNy45MDcgMCAwIDAgMi4zMjUtNS41OTUgNy45MSA3LjkxIDAgMCAwLTIuMzI1LTUuNTk2QTcuOTU4IDcuOTU4IDAgMCAwIDExLjExMyAwSDB2Ny44MTJoNC40MDFWNC4xMjloNi40MTZjMC45OTUgMCAxLjk1MSAwLjM5NCAyLjY1NiAxLjA5NyAwLjcwNCAwLjcgMS4xIDEuNjUzIDEuMTAxIDIuNjQ2YTMuNzQyIDMuNzQyIDAgMCAxLTEuMTAxIDIuNjQ4IDMuNzY2IDMuNzY2IDAgMCAxLTIuNjU2IDEuMDk3SDYuMTUzYTYuMTU4IDYuMTU4IDAgMCAwLTQuMzUyIDEuNzk1IDYuMTMzIDYuMTMzIDAgMCAwLTEuODAxIDQuMzM4WiIvPjwvc3ZnPg=="/><text x="658.637" y="175" textLength="795" transform="scale(.1)">POWERED BY</text><text x="1568.637" y="175" font-weight="bold" textLength="545" transform="scale(.1)">PROTON</text></g></svg>
|
package/static/sitemap.xml
CHANGED
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
|
|
102
102
|
<url>
|
|
103
103
|
|
|
104
|
-
<loc>https://netwk.pro/
|
|
104
|
+
<loc>https://netwk.pro/pgp</loc>
|
|
105
105
|
|
|
106
|
-
<lastmod>2025-06-
|
|
106
|
+
<lastmod>2025-06-11</lastmod>
|
|
107
107
|
|
|
108
108
|
<changefreq>monthly</changefreq>
|
|
109
109
|
|
|
@@ -111,15 +111,75 @@
|
|
|
111
111
|
|
|
112
112
|
</url>
|
|
113
113
|
|
|
114
|
+
<url>
|
|
115
|
+
|
|
116
|
+
<loc>https://netwk.pro/bin/CC-BY-4.0.html</loc>
|
|
117
|
+
|
|
118
|
+
<lastmod>2025-06-10</lastmod>
|
|
119
|
+
|
|
120
|
+
<changefreq>yearly</changefreq>
|
|
121
|
+
|
|
122
|
+
<priority>0.3</priority>
|
|
123
|
+
|
|
124
|
+
</url>
|
|
125
|
+
|
|
114
126
|
<url>
|
|
115
127
|
|
|
116
128
|
<loc>https://netwk.pro/bin/COPYING.html</loc>
|
|
117
129
|
|
|
118
130
|
<lastmod>2025-06-10</lastmod>
|
|
119
131
|
|
|
120
|
-
<changefreq>
|
|
132
|
+
<changefreq>yearly</changefreq>
|
|
121
133
|
|
|
122
|
-
<priority>0.
|
|
134
|
+
<priority>0.3</priority>
|
|
135
|
+
|
|
136
|
+
</url>
|
|
137
|
+
|
|
138
|
+
<url>
|
|
139
|
+
|
|
140
|
+
<loc>https://netwk.pro/.well-known/security.txt</loc>
|
|
141
|
+
|
|
142
|
+
<lastmod>2025-06-11</lastmod>
|
|
143
|
+
|
|
144
|
+
<changefreq>yearly</changefreq>
|
|
145
|
+
|
|
146
|
+
<priority>0.2</priority>
|
|
147
|
+
|
|
148
|
+
</url>
|
|
149
|
+
|
|
150
|
+
<url>
|
|
151
|
+
|
|
152
|
+
<loc>https://netwk.pro/.well-known/dnt-policy.txt</loc>
|
|
153
|
+
|
|
154
|
+
<lastmod>2025-06-11</lastmod>
|
|
155
|
+
|
|
156
|
+
<changefreq>yearly</changefreq>
|
|
157
|
+
|
|
158
|
+
<priority>0.2</priority>
|
|
159
|
+
|
|
160
|
+
</url>
|
|
161
|
+
|
|
162
|
+
<url>
|
|
163
|
+
|
|
164
|
+
<loc>https://netwk.pro/.well-known/gpc.json</loc>
|
|
165
|
+
|
|
166
|
+
<lastmod>2025-06-11</lastmod>
|
|
167
|
+
|
|
168
|
+
<changefreq>yearly</changefreq>
|
|
169
|
+
|
|
170
|
+
<priority>0.2</priority>
|
|
171
|
+
|
|
172
|
+
</url>
|
|
173
|
+
|
|
174
|
+
<url>
|
|
175
|
+
|
|
176
|
+
<loc>https://netwk.pro/.well-known/humans.txt</loc>
|
|
177
|
+
|
|
178
|
+
<lastmod>2025-06-11</lastmod>
|
|
179
|
+
|
|
180
|
+
<changefreq>yearly</changefreq>
|
|
181
|
+
|
|
182
|
+
<priority>0.1</priority>
|
|
123
183
|
|
|
124
184
|
</url>
|
|
125
185
|
|