@networkpro/web 1.13.7 → 1.14.1
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/.browserslistrc +5 -0
- package/.editorconfig +65 -0
- package/.env.template +18 -0
- package/.gitattributes +212 -0
- package/.github/COMMIT_GUIDE.md +31 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +74 -0
- package/.github/ISSUE_TEMPLATE/config.yml +32 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +35 -0
- package/.github/ISSUE_TEMPLATE/legal_review.yml +53 -0
- package/.github/workflows/auto-assign.yml +36 -0
- package/.github/workflows/backup-branch.yml +40 -0
- package/.github/workflows/build-and-publish.yml +202 -0
- package/.github/workflows/check-codeql.yml +40 -0
- package/.github/workflows/check-security-txt-expirty.yml +46 -0
- package/.github/workflows/dependency-review.yml +22 -0
- package/.github/workflows/lighthouse.yml +163 -0
- package/.github/workflows/playwright.yml +66 -0
- package/.github/workflows/publish-test.yml +215 -0
- package/.github/workflows/templates/check-codeql.template.yml +47 -0
- package/.lighthouserc.cjs +37 -0
- package/.markdownlint.mjs +31 -0
- package/.md-smart-quotes.js +31 -0
- package/.node-version +1 -0
- package/.nvmrc +1 -0
- package/.prettierignore +55 -0
- package/.prettierrc +35 -0
- package/.stylelintignore +43 -0
- package/.svelte-kit/tsconfig.json +49 -0
- package/.vscode/customData.json +73 -0
- package/.vscode/extensions.json +13 -0
- package/.vscode/extensions.jsonc +24 -0
- package/.vscode/settings.json +80 -0
- package/CHANGELOG.md +56 -2
- package/cspell.json +4 -0
- package/package.json +3 -3
- package/src/app.html +1 -1
- package/src/lib/components/ui/.gitkeep +0 -0
- package/src/lib/data/fossData.js +82 -2
- package/src/lib/images.js +6 -4
- package/src/lib/img/posts/cryptomator.png +0 -0
- package/src/lib/img/posts/cryptomator.webp +0 -0
- package/src/routes/...404/+page.svelte +26 -0
- package/static/.well-known/dnt-policy.txt +218 -0
- package/static/.well-known/gpc.json +4 -0
- package/static/.well-known/humans.txt +21 -0
- package/static/.well-known/security.txt +12 -0
- package/static/.well-known/security.txt.sig +7 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Editor settings
|
|
3
|
+
"editor.defaultFoldingRangeProvider": "esbenp.prettier-vscode",
|
|
4
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
5
|
+
"[markdown]": {
|
|
6
|
+
"editor.defaultFoldingRangeProvider": "esbenp.prettier-vscode",
|
|
7
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
8
|
+
},
|
|
9
|
+
"[svelte]": {
|
|
10
|
+
"editor.defaultFormatter": "svelte.svelte-vscode",
|
|
11
|
+
"editor.tabSize": 2
|
|
12
|
+
},
|
|
13
|
+
"[json]": {
|
|
14
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
15
|
+
},
|
|
16
|
+
"[jsonc]": {
|
|
17
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
18
|
+
},
|
|
19
|
+
// ESLint configuration
|
|
20
|
+
"eslint.workingDirectories": ["D:\\Netwk-Pro\\git\\netwk-pro.github.io"],
|
|
21
|
+
"eslint.validate": ["svelte", "javascript", "javascriptreact"],
|
|
22
|
+
"eslint.lintTask.enable": true,
|
|
23
|
+
"eslint.lintTask.options": ". --ext .mjs,.js,.svelte --config eslint.config.mjs",
|
|
24
|
+
"eslint.useESLintClass": true,
|
|
25
|
+
"eslint.useFlatConfig": true,
|
|
26
|
+
"eslint.codeActionsOnSave.mode": "problems",
|
|
27
|
+
"eslint.probe": [
|
|
28
|
+
"javascript",
|
|
29
|
+
"javascriptreact",
|
|
30
|
+
"html",
|
|
31
|
+
"markdown",
|
|
32
|
+
"json",
|
|
33
|
+
"jsonc",
|
|
34
|
+
"svelte"
|
|
35
|
+
],
|
|
36
|
+
// Stylelint configuration
|
|
37
|
+
"stylelint.configBasedir": "D:\\Netwk-Pro\\git\\netwk-pro.github.io",
|
|
38
|
+
"stylelint.configFile": "stylelint.config.js",
|
|
39
|
+
"stylelint.validate": ["css", "postcss", "html", "svelte"],
|
|
40
|
+
// Custom CSS data for FontAwesome classes
|
|
41
|
+
"css.customData": [
|
|
42
|
+
".vscode/customData.json" // Path to your custom data file
|
|
43
|
+
],
|
|
44
|
+
"markdown.validate.enabled": false,
|
|
45
|
+
"markdown.validate.ignoredLinks": [
|
|
46
|
+
"#bugs",
|
|
47
|
+
"#features",
|
|
48
|
+
"#top",
|
|
49
|
+
"#ownership",
|
|
50
|
+
"#trademark",
|
|
51
|
+
"#branding",
|
|
52
|
+
"#licensed-material",
|
|
53
|
+
"#licenses",
|
|
54
|
+
"#dlnotes",
|
|
55
|
+
"#cc-by",
|
|
56
|
+
"#gnu-gpl",
|
|
57
|
+
"#third-party",
|
|
58
|
+
"#prohibited-uses",
|
|
59
|
+
"#disclaimer",
|
|
60
|
+
"#contact",
|
|
61
|
+
"#revisions",
|
|
62
|
+
"#pledge",
|
|
63
|
+
"#standards",
|
|
64
|
+
"#response",
|
|
65
|
+
"#enforce",
|
|
66
|
+
"#attribute",
|
|
67
|
+
"#version",
|
|
68
|
+
"#structure",
|
|
69
|
+
"#getting-started",
|
|
70
|
+
"#configuration",
|
|
71
|
+
"#sw-utilities",
|
|
72
|
+
"#cspreport",
|
|
73
|
+
"#testing",
|
|
74
|
+
"#toolchain",
|
|
75
|
+
"#toolconfig",
|
|
76
|
+
"#scripts",
|
|
77
|
+
"#license",
|
|
78
|
+
"#questions"
|
|
79
|
+
]
|
|
80
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -20,11 +20,62 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
20
20
|
|
|
21
21
|
## [Unreleased]
|
|
22
22
|
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## [1.14.1] - 2025-06-16
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Updated Node.js engine to `24` to match the specified engine constraints in `package.json`.
|
|
30
|
+
- Reordered `npm ci` step to follow Node.js and npm setup to prevent version mismatches during simulation steps.
|
|
31
|
+
- Refactored `build-and-publish.yml` to use `git archive` for artifact preparation and aligned it with a tested publishing flow.
|
|
32
|
+
- Removed `.npmrc` token-based authentication in favor of environment secrets to avoid credential conflicts.
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- Introduced `.github/workflows/publish-test.yml`, a standalone workflow to safely simulate `npm publish` without publishing.
|
|
37
|
+
- Added commands to display Node.js and npm versions for visibility and troubleshooting in all relevant jobs.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## [1.14.0] - 2025-06-16
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Commented out registry and auth lines in `.npmrc`, retaining only `engine-strict=true` to streamline CI token handling and prevent conflicts
|
|
46
|
+
|
|
47
|
+
### Reverted
|
|
48
|
+
|
|
49
|
+
- Temporarily reverted `build-and-publish.yml` to prior, working workflow to confirm publish capability before attempting archive-based improvements
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## [1.13.8] - 2025-06-16
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- Added `cryptomator.png` and `cryptomator.webp` images for use in the FOSS Spotlight route
|
|
58
|
+
- Imported assets via image utility (`src/lib/images.js`) as `cryptomPng` and `cryptomWbp`
|
|
59
|
+
- Introduced `cryptomator` entry to `fossData.js`
|
|
60
|
+
- Added `COMMIT_GUIDE.md` to help standardize commit message formatting across contributions
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- Updated `build-and-publish.yml` to use an allowlist-based upload approach, explicitly including root-level files and directories (`.github/`, `.vscode/`, `netlify/`, `scripts/`, `src/`, `static/`, and `tests/`)
|
|
65
|
+
- Updated meta `author` field in `app.html` to `Scott Lopez`
|
|
66
|
+
- Version bumped to **v1.13.8**
|
|
67
|
+
- Upgraded dependencies:
|
|
68
|
+
- `postcss` updated from `^8.5.5` → `^8.5.6`
|
|
69
|
+
- `posthog-js` updated from `^1.252.1` → `^1.253.4`
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
23
73
|
## [1.13.7] - 2025-06-15
|
|
24
74
|
|
|
25
75
|
### Changed
|
|
26
76
|
|
|
27
77
|
- Added pre-publish steps in `build-and-publish.yml` to recursively list all files and top-level directory contents for auditing
|
|
78
|
+
- Version bumped to **v1.13.7**
|
|
28
79
|
|
|
29
80
|
---
|
|
30
81
|
|
|
@@ -448,7 +499,10 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
448
499
|
|
|
449
500
|
<!-- Link references -->
|
|
450
501
|
|
|
451
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.
|
|
502
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.14.1...HEAD
|
|
503
|
+
[1.14.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.14.1
|
|
504
|
+
[1.14.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.14.0
|
|
505
|
+
[1.13.8]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.13.8
|
|
452
506
|
[1.13.7]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.13.7
|
|
453
507
|
[1.13.6]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.13.6
|
|
454
508
|
[1.13.5]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.13.5
|
|
@@ -466,4 +520,4 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
466
520
|
[1.12.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.3
|
|
467
521
|
[1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1
|
|
468
522
|
|
|
469
|
-
<!-- cspell:ignore qrcode -->
|
|
523
|
+
<!-- cspell:ignore qrcode cryptom -->
|
package/cspell.json
CHANGED
|
@@ -13,10 +13,13 @@
|
|
|
13
13
|
"ccby",
|
|
14
14
|
"CCPA",
|
|
15
15
|
"CPRA",
|
|
16
|
+
"cryptomator",
|
|
17
|
+
"dont",
|
|
16
18
|
"elif",
|
|
17
19
|
"Embedder",
|
|
18
20
|
"Ente",
|
|
19
21
|
"esbuild",
|
|
22
|
+
"fdroid",
|
|
20
23
|
"fontawesome",
|
|
21
24
|
"foss",
|
|
22
25
|
"geolocation",
|
|
@@ -61,6 +64,7 @@
|
|
|
61
64
|
"prefs",
|
|
62
65
|
"publickey",
|
|
63
66
|
"reconsent",
|
|
67
|
+
"shizuku",
|
|
64
68
|
"SIEM",
|
|
65
69
|
"SPDY",
|
|
66
70
|
"squircle",
|
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.14.1",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advisory",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"dompurify": "^3.2.6",
|
|
83
|
-
"posthog-js": "^1.
|
|
83
|
+
"posthog-js": "^1.253.4",
|
|
84
84
|
"semver": "^7.7.2",
|
|
85
85
|
"svelte": "5.34.3"
|
|
86
86
|
},
|
|
@@ -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.6",
|
|
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
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<meta
|
|
16
16
|
name="robots"
|
|
17
17
|
content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
|
|
18
|
-
<meta name="author" content="
|
|
18
|
+
<meta name="author" content="Scott Lopez" />
|
|
19
19
|
|
|
20
20
|
<!-- Favicon: Keep only ICO for max compatibility -->
|
|
21
21
|
<link
|
|
File without changes
|
package/src/lib/data/fossData.js
CHANGED
|
@@ -7,7 +7,7 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== */
|
|
8
8
|
|
|
9
9
|
// Import FOSS images
|
|
10
|
-
import { acodePng, acodeWbp, eauthPng, eauthWbp, hboardPng, hboardWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, squirclePng, squircleWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
10
|
+
import { acodePng, acodeWbp, cryptomPng, cryptomWbp, eauthPng, eauthWbp, hboardPng, hboardWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, squirclePng, squircleWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
11
11
|
|
|
12
12
|
// cspell:disable
|
|
13
13
|
/**
|
|
@@ -26,6 +26,86 @@ const lsheetLink = "obtainium://app/%7B%22id%22%3A%22fe.linksheet.nightly%22%2C%
|
|
|
26
26
|
//cspell:enable
|
|
27
27
|
|
|
28
28
|
export const fossData = [
|
|
29
|
+
{
|
|
30
|
+
id: "cryptomator",
|
|
31
|
+
images: {
|
|
32
|
+
webp: cryptomWbp,
|
|
33
|
+
png: cryptomPng,
|
|
34
|
+
},
|
|
35
|
+
imgAlt: "Cryptomator",
|
|
36
|
+
title: "Cryptomator",
|
|
37
|
+
headline: "Vault Up Your Cloud Privacy",
|
|
38
|
+
headlineDescription: `
|
|
39
|
+
<p>
|
|
40
|
+
Tired of feeling like your cloud files are just floating out there, unprotected? Say hello to <strong>Cryptomator</strong>—your personal vault for keeping sensitive data safe in the cloud, <em>without giving up open-source freedom</em>.
|
|
41
|
+
</p>
|
|
42
|
+
<p>
|
|
43
|
+
🛡️ <strong>Cryptomator</strong> provides transparent client-side encryption for your cloud storage. Whether you're using Nextcloud, Google Drive, OneDrive or another service, Cryptomator keeps your files <strong>encrypted and private</strong>—before they even leave your device.
|
|
44
|
+
</p>
|
|
45
|
+
`,
|
|
46
|
+
features: [
|
|
47
|
+
{
|
|
48
|
+
emoji: "📋",
|
|
49
|
+
label: "Why Cryptomator stands out:",
|
|
50
|
+
isIntro: true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
emoji: "🔐",
|
|
54
|
+
label: "Zero-knowledge encryption",
|
|
55
|
+
description: "not even Cryptomator can access your data",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
emoji: "🆓",
|
|
59
|
+
label: "Completely free and open-source",
|
|
60
|
+
description: "GPLv3",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
emoji: "💻",
|
|
64
|
+
label: "Cross-platform",
|
|
65
|
+
description: "Windows, macOS, Linux, iOS & Android"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
emoji: "📂",
|
|
69
|
+
label: "Folder-level encryption",
|
|
70
|
+
description: "integrated with your file system",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
emoji: "💬",
|
|
74
|
+
label: "No account needed",
|
|
75
|
+
description: "no tracking, no ads"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
detailsDescription: `
|
|
79
|
+
<p>
|
|
80
|
+
📈 Why privacy-conscious users are switching:<br />
|
|
81
|
+
✅ <strong>User-friendly interface</strong><br />
|
|
82
|
+
✅ <strong>End-to-end encryption</strong> without needing to trust any cloud provider<br />
|
|
83
|
+
✅ <strong>Community-driven</strong> with regular updates<br />
|
|
84
|
+
✅ <strong>Works with any cloud provider</strong><br />
|
|
85
|
+
✅ <strong>100% local key management</strong>
|
|
86
|
+
</p>
|
|
87
|
+
<p>
|
|
88
|
+
Your cloud deserves more than blind trust. Cryptomator empowers you to <em>own your data</em> with ease and elegance.
|
|
89
|
+
</p>
|
|
90
|
+
`,
|
|
91
|
+
links: [
|
|
92
|
+
{
|
|
93
|
+
label: "Website",
|
|
94
|
+
href: "https://cryptomator.org",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
label: "GitHub",
|
|
98
|
+
href: "https://github.com/cryptomator/cryptomator",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
label: "F-Droid",
|
|
102
|
+
href: "https://f-droid.org/en/packages/org.cryptomator.lite/",
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
notes: [
|
|
106
|
+
"Cryptomator is available from several sources, including <strong>Google Play, F-Droid, and GitHub/Obtainium</strong>. While we generally recommend using only open-source versions, <strong>you may opt for the Google Play version if Google Drive integration is important to you</strong>. Note that the F-Droid and GitHub versions exclude third-party libraries, which means <strong>they cannot interface with Google Drive</strong>."
|
|
107
|
+
],
|
|
108
|
+
},
|
|
29
109
|
{
|
|
30
110
|
id: "squircle",
|
|
31
111
|
images: {
|
|
@@ -591,4 +671,4 @@ export const fossData = [
|
|
|
591
671
|
},
|
|
592
672
|
];
|
|
593
673
|
|
|
594
|
-
// cspell:ignore hboard gboard lsheet eauth tosdr
|
|
674
|
+
// cspell:ignore hboard gboard lsheet eauth tosdr cryptom
|
package/src/lib/images.js
CHANGED
|
@@ -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 lsheet tosdr
|
|
10
|
-
|
|
11
9
|
/**
|
|
12
10
|
* Image import utility
|
|
13
11
|
*
|
|
@@ -15,7 +13,7 @@ This file is part of Network Pro.
|
|
|
15
13
|
* @description Provides convenient access to images in the src/lib/img directory
|
|
16
14
|
* @module src/lib
|
|
17
15
|
* @author SunDevil311
|
|
18
|
-
* @updated 2025-06-
|
|
16
|
+
* @updated 2025-06-16
|
|
19
17
|
*/
|
|
20
18
|
|
|
21
19
|
// Import favicon images
|
|
@@ -39,6 +37,8 @@ import obtainiumWbp from '$lib/img/obtainium.webp';
|
|
|
39
37
|
// Import images for posts
|
|
40
38
|
import acodePng from '$lib/img/posts/acode.png';
|
|
41
39
|
import acodeWbp from '$lib/img/posts/acode.webp';
|
|
40
|
+
import cryptomPng from "$lib/img/posts/cryptomator.png";
|
|
41
|
+
import cryptomWbp from "$lib/img/posts/cryptomator.webp";
|
|
42
42
|
import eauthPng from '$lib/img/posts/eauth.png';
|
|
43
43
|
import eauthWbp from '$lib/img/posts/eauth.webp';
|
|
44
44
|
import hboardPng from '$lib/img/posts/hboard.png';
|
|
@@ -72,6 +72,8 @@ export {
|
|
|
72
72
|
bySvg,
|
|
73
73
|
ccBadge,
|
|
74
74
|
ccSvg,
|
|
75
|
+
cryptomPng,
|
|
76
|
+
cryptomWbp,
|
|
75
77
|
eauthPng,
|
|
76
78
|
eauthWbp,
|
|
77
79
|
faviconSvg,
|
|
@@ -99,4 +101,4 @@ export {
|
|
|
99
101
|
vcfWbp
|
|
100
102
|
};
|
|
101
103
|
|
|
102
|
-
// cspell:ignore eauth hboard
|
|
104
|
+
// cspell:ignore eauth hboard cryptom tosdr
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/...404/+page.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
|
+
/**
|
|
11
|
+
* @type {string}
|
|
12
|
+
* Style class for the h1 and p elements.
|
|
13
|
+
*/
|
|
14
|
+
const centerText = 'center-text';
|
|
15
|
+
|
|
16
|
+
/** @type {{ pathname: string } | undefined} */
|
|
17
|
+
export let url;
|
|
18
|
+
|
|
19
|
+
// Use a fallback pathname if `url` is undefined
|
|
20
|
+
const pathname = url?.pathname ?? '/';
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<main>
|
|
24
|
+
<h1 class={centerText}>404 - Page Not Found</h1>
|
|
25
|
+
<p class={centerText}>The page "{pathname}" does not exist.</p>
|
|
26
|
+
</main>
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
Do Not Track Compliance Policy
|
|
2
|
+
|
|
3
|
+
Version 1.0
|
|
4
|
+
|
|
5
|
+
This domain complies with user opt-outs from tracking via the "Do Not Track"
|
|
6
|
+
or "DNT" header [http://www.w3.org/TR/tracking-dnt/]. This file will always
|
|
7
|
+
be posted via HTTPS at https://example-domain.com/.well-known/dnt-policy.txt
|
|
8
|
+
to indicate this fact.
|
|
9
|
+
|
|
10
|
+
SCOPE
|
|
11
|
+
|
|
12
|
+
This policy document allows an operator of a Fully Qualified Domain Name
|
|
13
|
+
("domain") to declare that it respects Do Not Track as a meaningful privacy
|
|
14
|
+
opt-out of tracking, so that privacy-protecting software can better determine
|
|
15
|
+
whether to block or anonymize communications with this domain. This policy is
|
|
16
|
+
intended first and foremost to be posted on domains that publish ads, widgets,
|
|
17
|
+
images, scripts and other third-party embedded hypertext (for instance on
|
|
18
|
+
widgets.example.com), but it can be posted on any domain, including those users
|
|
19
|
+
visit directly (such as www.example.com). The policy may be applied to some
|
|
20
|
+
domains used by a company, site, or service, and not to others. Do Not Track
|
|
21
|
+
may be sent by any client that uses the HTTP protocol, including websites,
|
|
22
|
+
mobile apps, and smart devices like TVs. Do Not Track also works with all
|
|
23
|
+
protocols able to read HTTP headers, including SPDY.
|
|
24
|
+
|
|
25
|
+
NOTE: This policy contains both Requirements and Exceptions. Where possible
|
|
26
|
+
terms are defined in the text, but a few additional definitions are included
|
|
27
|
+
at the end.
|
|
28
|
+
|
|
29
|
+
REQUIREMENTS
|
|
30
|
+
|
|
31
|
+
When this domain receives Web requests from a user who enables DNT by actively
|
|
32
|
+
choosing an opt-out setting in their browser or by installing software that is
|
|
33
|
+
primarily designed to protect privacy ("DNT User"), we will take the following
|
|
34
|
+
measures with respect to those users' data, subject to the Exceptions, also
|
|
35
|
+
listed below:
|
|
36
|
+
|
|
37
|
+
1. END USER IDENTIFIERS:
|
|
38
|
+
|
|
39
|
+
a. If a DNT User has logged in to our service, all user identifiers, such as
|
|
40
|
+
unique or nearly unique cookies, "supercookies" and fingerprints are
|
|
41
|
+
discarded as soon as the HTTP(S) response is issued.
|
|
42
|
+
|
|
43
|
+
Data structures which associate user identifiers with accounts may be
|
|
44
|
+
employed to recognize logged in users per Exception 4 below, but may not
|
|
45
|
+
be associated with records of the user's activities unless otherwise
|
|
46
|
+
excepted.
|
|
47
|
+
|
|
48
|
+
b. If a DNT User is not logged in to our service, we will take steps to ensure
|
|
49
|
+
that no user identifiers are transmitted to us at all.
|
|
50
|
+
|
|
51
|
+
2. LOG RETENTION:
|
|
52
|
+
|
|
53
|
+
a. Logs with DNT Users' identifiers removed (but including IP addresses and
|
|
54
|
+
User Agent strings) may be retained for a period of 10 days or less,
|
|
55
|
+
unless an Exception (below) applies. This period of time balances privacy
|
|
56
|
+
concerns with the need to ensure that log processing systems have time to
|
|
57
|
+
operate; that operations engineers have time to monitor and fix technical
|
|
58
|
+
and performance problems; and that security and data aggregation systems
|
|
59
|
+
have time to operate.
|
|
60
|
+
|
|
61
|
+
b. These logs will not be used for any other purposes.
|
|
62
|
+
|
|
63
|
+
3. OTHER DOMAINS:
|
|
64
|
+
|
|
65
|
+
a. If this domain transfers identifiable user data about DNT Users to
|
|
66
|
+
contractors, affiliates or other parties, or embeds from or posts data to
|
|
67
|
+
other domains, we will either:
|
|
68
|
+
|
|
69
|
+
b. ensure that the operators of those domains abide by this policy overall
|
|
70
|
+
by posting it at /.well-known/dnt-policy.txt via HTTPS on the domains in
|
|
71
|
+
question,
|
|
72
|
+
|
|
73
|
+
OR
|
|
74
|
+
|
|
75
|
+
ensure that the recipient's policies and practices require the recipient
|
|
76
|
+
to respect the policy for our DNT Users' data.
|
|
77
|
+
|
|
78
|
+
OR
|
|
79
|
+
|
|
80
|
+
obtain a contractual commitment from the recipient to respect this policy
|
|
81
|
+
for our DNT Users' data.
|
|
82
|
+
|
|
83
|
+
NOTE: if an “Other Domain” does not receive identifiable user information
|
|
84
|
+
from the domain because such information has been removed, because the
|
|
85
|
+
Other Domain does not log that information, or for some other reason, these
|
|
86
|
+
requirements do not apply.
|
|
87
|
+
|
|
88
|
+
c. "Identifiable" means any records which are not Anonymized or otherwise
|
|
89
|
+
covered by the Exceptions below.
|
|
90
|
+
|
|
91
|
+
4. PERIODIC REASSERTION OF COMPLIANCE:
|
|
92
|
+
|
|
93
|
+
At least once every 12 months, we will take reasonable steps commensurate
|
|
94
|
+
with the size of our organization and the nature of our service to confirm
|
|
95
|
+
our ongoing compliance with this document, and we will publicly reassert our
|
|
96
|
+
compliance.
|
|
97
|
+
|
|
98
|
+
5. USER NOTIFICATION:
|
|
99
|
+
|
|
100
|
+
a. If we are required by law to retain or disclose user identifiers, we will
|
|
101
|
+
attempt to provide the users with notice (unless we are prohibited or it
|
|
102
|
+
would be futile) that a request for their information has been made in
|
|
103
|
+
order to give the users an opportunity to object to the retention or
|
|
104
|
+
disclosure.
|
|
105
|
+
|
|
106
|
+
b. We will attempt to provide this notice by email, if the users have given
|
|
107
|
+
us an email address, and by postal mail if the users have provided a
|
|
108
|
+
postal address.
|
|
109
|
+
|
|
110
|
+
c. If the users do not challenge the disclosure request, we may be legally
|
|
111
|
+
required to turn over their information.
|
|
112
|
+
|
|
113
|
+
d. We may delay notice if we, in good faith, believe that an emergency
|
|
114
|
+
involving danger of death or serious physical injury to any person
|
|
115
|
+
requires disclosure without delay of information relating to the
|
|
116
|
+
emergency.
|
|
117
|
+
|
|
118
|
+
EXCEPTIONS
|
|
119
|
+
|
|
120
|
+
Data from DNT Users collected by this domain may be logged or retained only in
|
|
121
|
+
the following specific situations:
|
|
122
|
+
|
|
123
|
+
1. CONSENT / "OPT BACK IN"
|
|
124
|
+
|
|
125
|
+
a. DNT Users are opting out from tracking across the Web. It is possible
|
|
126
|
+
that for some feature or functionality, we will need to ask a DNT User to
|
|
127
|
+
"opt back in" to be tracked by us across the entire Web.
|
|
128
|
+
|
|
129
|
+
b. If we do that, we will take reasonable steps to verify that the users who
|
|
130
|
+
select this option have genuinely intended to opt back in to tracking.
|
|
131
|
+
One way to do this is by performing scientifically reasonable user
|
|
132
|
+
studies with a representative sample of our users, but smaller
|
|
133
|
+
organizations can satisfy this requirement by other means.
|
|
134
|
+
|
|
135
|
+
c. Where we believe that we have opt back in consent, our server will
|
|
136
|
+
send a tracking value status header "Tk: C" as described in section 6.2
|
|
137
|
+
of the W3C Tracking Preference Expression draft:
|
|
138
|
+
|
|
139
|
+
http://www.w3.org/TR/tracking-dnt/#tracking-status-value
|
|
140
|
+
|
|
141
|
+
2. TRANSACTIONS
|
|
142
|
+
|
|
143
|
+
If a DNT User actively and knowingly enters a transaction with our
|
|
144
|
+
services (for instance, clicking on a clearly-labeled advertisement,
|
|
145
|
+
posting content to a widget, or purchasing an item), we will retain
|
|
146
|
+
necessary data for as long as required to perform the transaction. This
|
|
147
|
+
may for example include keeping auditing information for clicks on
|
|
148
|
+
advertising links; keeping a copy of posted content and the name of the
|
|
149
|
+
posting user; keeping server-side session IDs to recognize logged in
|
|
150
|
+
users; or keeping a copy of the physical address to which a purchased
|
|
151
|
+
item will be shipped. By their nature, some transactions will require data
|
|
152
|
+
to be retained indefinitely.
|
|
153
|
+
|
|
154
|
+
3. TECHNICAL AND SECURITY LOGGING:
|
|
155
|
+
|
|
156
|
+
a. If, during the processing of the initial request (for unique identifiers)
|
|
157
|
+
or during the subsequent 10 days (for IP addresses and User Agent strings),
|
|
158
|
+
we obtain specific information that causes our employees or systems to
|
|
159
|
+
believe that a request is, or is likely to be, part of a security attack,
|
|
160
|
+
spam submission, or fraudulent transaction, then logs of those requests
|
|
161
|
+
are not subject to this policy.
|
|
162
|
+
|
|
163
|
+
b. If we encounter technical problems with our site, then, in rare
|
|
164
|
+
circumstances, we may retain logs for longer than 10 days, if that is
|
|
165
|
+
necessary to diagnose and fix those problems, but this practice will not be
|
|
166
|
+
routinized and we will strive to delete such logs as soon as possible.
|
|
167
|
+
|
|
168
|
+
4. AGGREGATION:
|
|
169
|
+
|
|
170
|
+
a. We may retain and share anonymized datasets, such as aggregate records of
|
|
171
|
+
readership patterns; statistical models of user behavior; graphs of system
|
|
172
|
+
variables; data structures to count active users on monthly or yearly
|
|
173
|
+
bases; database tables mapping authentication cookies to logged in
|
|
174
|
+
accounts; non-unique data structures constructed within browsers for tasks
|
|
175
|
+
such as ad frequency capping or conversion tracking; or logs with truncated
|
|
176
|
+
and/or encrypted IP addresses and simplified User Agent strings.
|
|
177
|
+
|
|
178
|
+
b. "Anonymized" means we have conducted risk mitigation to ensure
|
|
179
|
+
that the dataset, plus any additional information that is in our
|
|
180
|
+
possession or likely to be available to us, does not allow the
|
|
181
|
+
reconstruction of reading habits, online or offline activity of groups of
|
|
182
|
+
fewer than 5000 individuals or devices.
|
|
183
|
+
|
|
184
|
+
c. If we generate anonymized datasets under this exception we will publicly
|
|
185
|
+
document our anonymization methods in sufficient detail to allow outside
|
|
186
|
+
experts to evaluate the effectiveness of those methods.
|
|
187
|
+
|
|
188
|
+
5. ERRORS:
|
|
189
|
+
|
|
190
|
+
From time to time, there may be errors by which user data is temporarily
|
|
191
|
+
logged or retained in violation of this policy. If such errors are
|
|
192
|
+
inadvertent, rare, and made in good faith, they do not constitute a breach
|
|
193
|
+
of this policy. We will delete such data as soon as practicable after we
|
|
194
|
+
become aware of any error and take steps to ensure that it is deleted by any
|
|
195
|
+
third-party who may have had access to the data.
|
|
196
|
+
|
|
197
|
+
ADDITIONAL DEFINITIONS
|
|
198
|
+
|
|
199
|
+
"Fully Qualified Domain Name" means a domain name that addresses a computer
|
|
200
|
+
connected to the Internet. For instance, example1.com; www.example1.com;
|
|
201
|
+
ads.example1.com; and widgets.example2.com are all distinct FQDNs.
|
|
202
|
+
|
|
203
|
+
"Supercookie" means any technology other than an HTTP Cookie which can be used
|
|
204
|
+
by a server to associate identifiers with the clients that visit it. Examples
|
|
205
|
+
of supercookies include Flash LSO cookies, DOM storage, HTML5 storage, or
|
|
206
|
+
tricks to store information in caches or etags.
|
|
207
|
+
|
|
208
|
+
"Risk mitigation" means an engineering process that evaluates the possibility
|
|
209
|
+
and likelihood of various adverse outcomes, considers the available methods of
|
|
210
|
+
making those adverse outcomes less likely, and deploys sufficient mitigations
|
|
211
|
+
to bring the probability and harm from adverse outcomes below an acceptable
|
|
212
|
+
threshold.
|
|
213
|
+
|
|
214
|
+
"Reading habits" includes amongst other things lists of visited DNS names, if
|
|
215
|
+
those domains pertain to specific topics or activities, but records of visited
|
|
216
|
+
DNS names are not reading habits if those domain names serve content of a very
|
|
217
|
+
diverse and general nature, thereby revealing minimal information about the
|
|
218
|
+
opinions, interests or activities of the user.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* TEAM */
|
|
2
|
+
Organization: Network Pro Strategies (Network Pro™)
|
|
3
|
+
URL: https://netwk.pro
|
|
4
|
+
Contact: SunDevil311 (Scott Lopez)
|
|
5
|
+
GitHub: https://github.com/netwk-pro
|
|
6
|
+
Email: support@neteng.pro
|
|
7
|
+
|
|
8
|
+
/* PGP */
|
|
9
|
+
PGP Fingerprint: 6590 B992 E2E3 EFF1 2738 7BCE 2AF0 93E9 DEC6 1BA0
|
|
10
|
+
PGP Key: https://netwk.pro/pgp/support@neteng.pro.asc
|
|
11
|
+
|
|
12
|
+
/* SITE */
|
|
13
|
+
Standards: HTML5, CSS3, SvelteKit, Markdown
|
|
14
|
+
Tools: GitHub, Material for MkDocs, Proton Mail
|
|
15
|
+
Hosting: Decentralized / CDN-backed static infrastructure
|
|
16
|
+
|
|
17
|
+
/* MOTTO */
|
|
18
|
+
"Designed for professionals. Hardened for privacy. Built with intent."
|
|
19
|
+
|
|
20
|
+
/* LAST UPDATED */
|
|
21
|
+
2025-06-11
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Addresses under the s.neteng.pro domain are powered by Proton Mail.
|
|
2
|
+
# These accounts support built-in encryption and default end-to-end protection.
|
|
3
|
+
Contact: mailto:security@s.neteng.pro
|
|
4
|
+
Encryption: https://raw.githubusercontent.com/netwk-pro/.github/master/PGP-KEY.asc
|
|
5
|
+
Acknowledgments: https://github.com/netwk-pro/netwk-pro.github.io/security/policy
|
|
6
|
+
Policy: https://github.com/netwk-pro/netwk-pro.github.io/security/policy
|
|
7
|
+
Preferred-Languages: en
|
|
8
|
+
Canonical: https://netwk.pro/.well-known/security.txt
|
|
9
|
+
Signature: https://netwk.pro/.well-known/security.txt.sig
|
|
10
|
+
# This file is authenticated using a detached GPG signature:
|
|
11
|
+
# https://netwk.pro/.well-known/security.txt.sig
|
|
12
|
+
Expires: 2025-12-31T23:59:59Z
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-----BEGIN PGP SIGNATURE-----
|
|
2
|
+
|
|
3
|
+
iIwEABYKADQWIQS3/h1ObKs+cUqf325Iy3KQwA0NpQUCaEyxUhYcc2VjdXJpdHlA
|
|
4
|
+
cy5uZXRlbmcucHJvAAoJEEjLcpDADQ2lPAgA/0rNLm+HpBmlYn2ETD0jyX7jDdPB
|
|
5
|
+
YSX2AifNCEV+AW63AQDTyKq0E0sw45eOjqZnLCxByuRWcNwj8wazWR1p+2ptDw==
|
|
6
|
+
=ybGE
|
|
7
|
+
-----END PGP SIGNATURE-----
|