@networkpro/web 1.12.3 → 1.12.4

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 CHANGED
@@ -1,10 +1,20 @@
1
+ <!-- =====================================================================
2
+ CHANGELOG.md
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
+
1
9
  # Changelog
2
10
 
3
11
  <!-- markdownlint-disable MD024 -->
4
12
 
13
+ <!-- Use sections: Added, Changed, Deprecated, Removed, Fixed, Security -->
14
+
5
15
  All notable changes to this project will be documented in this file.
6
16
 
7
- This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), though versioning and formatting may vary.
17
+ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), though versioning and formatting may vary.
8
18
 
9
19
  ---
10
20
 
@@ -12,6 +22,28 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
12
22
 
13
23
  ---
14
24
 
25
+ ## [1.12.4] - 2025-06-05
26
+
27
+ ### Added
28
+
29
+ - Introduced `.md-smart-quotes.js` script for use with markdownlint to flag "smart quotes" in Markdown files.
30
+
31
+ ### Changed
32
+
33
+ - Cleaned up `IGNORE_PATHS` in `src/service-worker.js`: removed the `static/docs/` entry, as the directory no longer exists.
34
+ - Upgraded development dependencies:
35
+ - `@vitest/coverage-v8`
36
+ - `posthog-js`
37
+ - `vitest`
38
+ - Corrected the "Effective Date" in `LICENSE.md`.
39
+ - Refactored `.markdownlint.jsonc` into `.markdownlint.mjs` to support the custom linting script.
40
+
41
+ ### Removed
42
+
43
+ - Removed the entire `static/docs/` directory; its contents have been migrated to the [Wiki](https://github.com/netwk-pro/netwk-pro.github.io/wiki).
44
+
45
+ ---
46
+
15
47
  ## [1.12.3] - 2025-06-04
16
48
 
17
49
  ### Added
@@ -25,7 +57,7 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
25
57
 
26
58
  ---
27
59
 
28
- ## [1.12.2] – 2025-06-04
60
+ ## 1.12.2 – 2025-06-04
29
61
 
30
62
  ### Changed
31
63
 
@@ -52,7 +84,7 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
52
84
 
53
85
  ---
54
86
 
55
- ## [1.12.0] – 2025-06-04
87
+ ## 1.12.0 – 2025-06-04
56
88
 
57
89
  ### Added
58
90
 
@@ -77,3 +109,10 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
77
109
  - Deprecated `shouldTrackUser()` logic and legacy cookie checks.
78
110
 
79
111
  ---
112
+
113
+ <!-- Link references -->
114
+
115
+ [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.12.4...HEAD
116
+ [1.12.4]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.4
117
+ [1.12.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.3
118
+ [1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1
package/LICENSE.md CHANGED
@@ -14,7 +14,7 @@ This file is part of Network Pro.
14
14
  # Legal, Copyright, and Licensing
15
15
 
16
16
  **Network Pro Strategies**
17
- **Effective Date:** May 28, 2025
17
+ **Effective Date:** June 4, 2025
18
18
 
19
19
  **Official Version Notice**
20
20
  This document is provided for convenience only. In the event of any discrepancy, the authoritative version is the one published at [https://netwk.pro](https://netwk.pro).
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@networkpro/web",
3
3
  "private": false,
4
- "version": "1.12.3",
5
- "description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
4
+ "version": "1.12.4",
5
+ "description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
6
6
  "keywords": [
7
7
  "advisory",
8
8
  "consulting",
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "homepage": "https://netwk.pro",
18
18
  "bugs": {
19
- "url": "https://github.com/netwk-pro/netwk-pro.github.io/issues"
19
+ "url": "https://github.com/netwk-pro/netwk-pro.github.io/issues/new/choose"
20
20
  },
21
21
  "repository": {
22
22
  "type": "git",
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "dompurify": "^3.2.6",
80
- "posthog-js": "^1.249.3",
80
+ "posthog-js": "^1.249.4",
81
81
  "semver": "^7.7.2",
82
82
  "svelte": "5.33.14"
83
83
  },
@@ -91,7 +91,7 @@
91
91
  "@sveltejs/vite-plugin-svelte": "5.1.0",
92
92
  "@testing-library/jest-dom": "^6.6.3",
93
93
  "@testing-library/svelte": "^5.2.8",
94
- "@vitest/coverage-v8": "^3.2.1",
94
+ "@vitest/coverage-v8": "^3.2.2",
95
95
  "autoprefixer": "^10.4.21",
96
96
  "browserslist": "^4.25.0",
97
97
  "eslint": "^9.28.0",
@@ -119,7 +119,7 @@
119
119
  "vite": "^6.3.5",
120
120
  "vite-plugin-lightningcss": "^0.0.5",
121
121
  "vite-tsconfig-paths": "^5.1.4",
122
- "vitest": "^3.2.1"
122
+ "vitest": "^3.2.2"
123
123
  },
124
124
  "overrides": {
125
125
  "@sveltejs/kit": {
@@ -27,23 +27,15 @@ const CACHE = `cache-${version}`;
27
27
  /** @type {string[]} */
28
28
  const excludedAssets = [];
29
29
 
30
- //TODO: Remove files in docs once migrated to documentation subsite
31
-
32
30
  const IGNORE_PATHS = new Set([
33
- "/docs/extensions.md",
34
- "/docs/Home.md",
35
- "/docs/pgp-email.md",
36
- "/docs/pgp-win.md",
37
- "/docs/pgp.md",
38
- "/docs/tracking.md",
39
31
  "/img/banner-1280x640.png",
40
32
  "/img/logo-transparent.png",
41
33
  "/img/logo.png",
42
34
  "/img/svelte.png",
35
+ "/screenshots/desktop-foss.png",
43
36
  "/webfonts/fa-brands-400.ttf",
44
37
  "/webfonts/fa-solid-900.ttf",
45
38
  "/robots.txt",
46
- "/screenshots/desktop-foss.png",
47
39
  "/sitemap.xml",
48
40
  "/CNAME",
49
41
  ]);
@@ -1,63 +0,0 @@
1
- # 🧠 Network Pro — Developer Wiki
2
-
3
- > Internal documentation and contributor onboarding resources for the [Network Pro&trade; Web Presence](https://github.com/netwk-pro/netwk-pro.github.io) project.
4
- > **Note:** Most of the below links are currently non-functional and serve solely as placeholders. Once pages are added, the placeholder links will be removed.
5
-
6
- ---
7
-
8
- ## 📌 Overview
9
-
10
- This wiki provides documentation, conventions, and internal tooling references to support development, testing, and deployment workflows across the Network Pro stack.
11
-
12
- ---
13
-
14
- ## 📁 Sections
15
-
16
- ### 🛠 Setup & Tooling
17
-
18
- - [Environment Requirements](Environment-Requirements.md)
19
- Node, npm, version managers, OS-specific notes.
20
- - [Editor Configuration](Editor-Configuration.md)
21
- Workspace settings, recommended VS Code/VSCodium extensions.
22
- - [CLI Scripts Reference](CLI-Scripts.md)
23
- `npm run` scripts explained with tips for usage.
24
-
25
- ### 🚧 Development
26
-
27
- - [Local Development](Local-Development.md)
28
- Running the project, debugging, hot reload, ENV_MODE behavior.
29
- - [Testing & Audits](Testing-&-Audits.md)
30
- Vitest, Playwright, Lighthouse, CI reports.
31
- - [Styling & Components](Styling-&-Components.md)
32
- Design system, reusable components, naming conventions.
33
-
34
- ### 🚀 CI/CD
35
-
36
- - [GitHub Actions Workflows](CI-CD-Workflows.md)
37
- How our deploy/audit pipelines are structured.
38
- - [Versioning & Releases](Versioning-&-Releases.md)
39
- Publishing, changelog generation, NPM tagging conventions.
40
-
41
- ### 📚 Documentation Maintenance
42
-
43
- - [Contributing to the Wiki](Contributing-to-the-Wiki.md)
44
- Format, tone, and content guidelines for internal docs.
45
- - [MkDocs Subsite Overview](MkDocs-Subsite.md)
46
- How the public documentation repo is built and deployed.
47
-
48
- ---
49
-
50
- ## 📎 Related Repositories
51
-
52
- - [Main Site (Web)](https://github.com/netwk-pro/netwk-pro.github.io)
53
- - [Documentation Site](https://github.com/netwk-pro/docs)
54
- - [Blog Subsite](https://github.com/netwk-pro/blog)
55
- - [GitHub Wiki](https://github.com/netwk-pro/netwk-pro.github.io/wiki)
56
-
57
- ---
58
-
59
- ## 🤝 Contributing
60
-
61
- If you're new to the project, start with [Environment Requirements](Environment-Requirements.md) and [Local Development](Local-Development.md). See [Contributing to the Wiki](Contributing-to-the-Wiki.md) for how to add or edit content.
62
-
63
- ---
@@ -1,58 +0,0 @@
1
- # 🧩 Recommended VS Code Extensions
2
-
3
- To streamline development and align with project conventions, we recommend the following [VSCodium](https://vscodium.com/) and [Visual Studio Code](https://code.visualstudio.com/) (VS Code) extensions. These tools enhance productivity, enforce code quality, and ensure consistency across the codebase.
4
-
5
- > Note: While these extensions are optional, they are thoughtfully curated to complement our development workflow.
6
-
7
- <!-- cspell:disable -->
8
-
9
- | Extension Name | Identifier | Description |
10
- | ------------------------- | --------------------------------------- | --------------------------------------------------------------------------- |
11
- | Prettier - Code formatter | `esbenp.prettier-vscode` | Formats code consistently across various languages. |
12
- | ESLint | `dbaeumer.vscode-eslint` | Integrates ESLint into VS Code for JavaScript and TypeScript linting. |
13
- | Stylelint | `stylelint.vscode-stylelint` | Lints CSS/SCSS and enforces consistent styling conventions. |
14
- | Markdownlint | `DavidAnson.vscode-markdownlint` | Provides linting and style checking for Markdown files. |
15
- | EditorConfig for VS Code | `EditorConfig.EditorConfig` | Maintains consistent coding styles between different editors and IDEs. |
16
- | Svelte for VS Code | `svelte.svelte-vscode` | Offers syntax highlighting, code completion, and error checking for Svelte. |
17
- | Code Spell Checker | `streetsidesoftware.code-spell-checker` | Inline spell checking (comments, Markdown, etc.) |
18
-
19
- ## 🛠 Installation
20
-
21
- To install these extensions, you can use the following command in your terminal:
22
-
23
- ```bash
24
- code --install-extension esbenp.prettier-vscode
25
- code --install-extension dbaeumer.vscode-eslint
26
- code --install-extension stylelint.vscode-stylelint
27
- code --install-extension DavidAnson.vscode-markdownlint
28
- code --install-extension EditorConfig.EditorConfig
29
- code --install-extension svelte.svelte-vscode
30
- code --install-extension volta.volta
31
- code --install-extension eamodio.gitlens
32
- code --install-extension github.vscode-pull-request-github
33
- ```
34
-
35
- <!-- cspell:enable -->
36
-
37
- Alternatively, you can search for each extension by name in [Open VSX Registry](https://open-vsx.org/) and/or the [VS Code Extensions Marketplace](https://marketplace.visualstudio.com/vscode) and install them individually.
38
-
39
- ## 📁 Workspace Recommendations
40
-
41
- Our repository includes a `.vscode/extensions.json` file that specifies these recommended extensions. When you open the project in VS Code, you'll be prompted to install any missing recommended extensions. This ensures a consistent development environment across all contributors.
42
-
43
- ## 🔧 Configuration
44
-
45
- The `.vscode/settings.json` file in the repository contains workspace-specific settings that align with our coding standards and practices. These settings include formatter configurations, linting rules, and other preferences to maintain code quality and consistency.
46
-
47
- ---
48
-
49
- <div style="font-size: 12px; text-align: center;">
50
-
51
- Copyright &copy; 2025
52
- **[Network Pro Strategies](https://netwk.pro) (Network Pro&trade;)**
53
-
54
- Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are [trademarks](https://netwk.pro/license#trademark) of Network Pro Strategies.
55
-
56
- Licensed under **[CC BY 4.0](https://netwk.pro/license#cc-by)** and the **[GNU GPL](https://netwk.pro/license#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.
57
-
58
- </div>
@@ -1,152 +0,0 @@
1
- # 📧 Encrypting Email with PGP
2
-
3
- > This guide walks you through using PGP (Pretty Good Privacy) to encrypt email using both graphical and client-based tools.
4
-
5
- PGP encryption ensures that only the intended recipient can read your email content — even if it's intercepted.
6
-
7
- ---
8
-
9
- ## 🔹 Option A: Outlook (Windows) with GpgOL
10
-
11
- GpgOL is a plugin included with **Gpg4win** that integrates directly into Microsoft Outlook (desktop only).
12
-
13
- ### ✅ Requirements
14
-
15
- - Gpg4win (with GpgOL selected during installation)
16
- - Outlook 2010 or newer (desktop version)
17
- - Recipient’s **public key**
18
-
19
- > ⚠️ GpgOL does not work with Outlook for Microsoft 365 Web or Outlook Mobile. It is only compatible with the **desktop edition of Outlook** on Windows.
20
-
21
- ### 📥 Encrypting an Email in Outlook
22
-
23
- 1. Open Outlook and compose a new message
24
- 2. Enter the recipient’s email address (must match imported key)
25
- 3. Click the `Encrypt` button on the **GpgOL ribbon** tab
26
- 4. Send your email
27
-
28
- > ✉️ Outlook will encrypt the email contents using the recipient's public key.
29
-
30
- ### 📥 Decrypting an Email in Outlook
31
-
32
- When receiving an encrypted message:
33
-
34
- - GpgOL will automatically prompt to decrypt it using your private key
35
- - You may need to enter your key passphrase
36
-
37
- > 💡 Tip: Manage keys with **Kleopatra** — launch from Start Menu
38
-
39
- ---
40
-
41
- ## 🔹 Option B: Thunderbird (Windows/macOS/Linux)
42
-
43
- Thunderbird includes **built-in OpenPGP** support and is often preferred for privacy-focused users.
44
-
45
- ### ✅ Setup
46
-
47
- 1. [Download Thunderbird](https://www.thunderbird.net)
48
- 2. Add your email account
49
- 3. Go to: `Account Settings → End-to-End Encryption`
50
- 4. Generate a new key, or import your existing one
51
- 5. Import your recipient’s **public key**
52
-
53
- ### 🔐 Sending Encrypted Email
54
-
55
- When composing a message:
56
-
57
- - Click the **padlock** icon to enable encryption
58
- - Click **sign** if you also want to verify authenticity
59
- - Send as usual
60
-
61
- ---
62
-
63
- ## 🔹 Option C: Webmail with Mailvelope
64
-
65
- **Mailvelope** adds OpenPGP support to Gmail, Outlook.com, Yahoo, and others.
66
-
67
- ### 🔧 Setup
68
-
69
- 1. Install [Mailvelope](https://www.mailvelope.com/) for Chrome or Firefox
70
- 2. Import your keys or generate a new pair
71
- 3. Use the Mailvelope overlay when composing encrypted emails
72
-
73
- ---
74
-
75
- ## Alternative PGP-Compatible Email Clients
76
-
77
- In addition to widely used options like Outlook (via GpgOL) and Thunderbird, several other desktop email clients offer OpenPGP support—either natively or through plugins.
78
-
79
- Notable alternatives include:
80
-
81
- - **[Betterbird](https://www.betterbird.eu/):**
82
- A privacy-focused Thunderbird fork with full PGP support.
83
- ▸ Available on Windows, Linux, and macOS.
84
-
85
- - **[eM Client](https://www.emclient.com/):**
86
- A feature-rich client with native OpenPGP integration and calendar/task support.
87
- ▸ Available on Windows, macOS, Android, and iOS.
88
- ▸ _Free tier supports 2 email accounts after a 30-day trial._
89
-
90
- > 💡 **Note:** Be sure to verify the client’s compatibility with your GPG keyring (e.g., Gpg4win or Kleopatra on Windows).
91
-
92
- ---
93
-
94
- ## 📱 Mobile Email Clients with OpenPGP Support
95
-
96
- For secure email on Android, the following apps support OpenPGP encryption via [**OpenKeychain**](https://www.openkeychain.org/):
97
-
98
- - **[FairEmail](https://email.faircode.eu/)**
99
- A lightweight, privacy-first email client for Android, offering built-in OpenPGP support, rich customization, and a modern, privacy-respecting interface.
100
-
101
- - **[K-9 Mail](https://k9mail.app/)**
102
- A veteran open-source Android mail client known for its simplicity and transparency. K-9 is now maintained by the Thunderbird team as part of their mobile strategy.
103
-
104
- - **[Thunderbird Mobile](https://www.thunderbird.net/en-US/mobile/)**
105
- A mobile adaptation of Thunderbird, currently built on K-9 Mail and maintained by the same team. Provides end-to-end encryption and an open-source, user-friendly experience.
106
-
107
- > ⚠️ OpenPGP support on iOS is limited due to platform restrictions.
108
- > Most options are proprietary or require external tools, and may not provide full compatibility with standard PGP workflows.
109
-
110
- ---
111
-
112
- ## 📤 Exporting and Sharing Public Keys
113
-
114
- You can export your public key from **Kleopatra**, Thunderbird, or the command line, and share it via:
115
-
116
- - Your website
117
- - A keyserver (e.g., [keys.openpgp.org](https://keys.openpgp.org))
118
- - Your GitHub profile (e.g., in `SECURITY.md` or a `PGP-KEY.asc` file)
119
-
120
- ### 🔧 Export via Command Line
121
-
122
- If you’re using GnuPG directly:
123
-
124
- ```sh
125
- gpg --armor --export your@email.com > publickey.asc
126
- ```
127
-
128
- This creates a text-formatted (`.asc`) version of your public key that’s easy to upload or embed.
129
-
130
- > 💡 Replace `your@email.com` with the email associated with your PGP key.
131
-
132
- ---
133
-
134
- ## 🛠 Troubleshooting Tips
135
-
136
- - Ensure email address in key matches recipient’s address
137
- - Key must be **trusted/imported** before encryption works
138
- - For Outlook, restart if GpgOL ribbon does not appear
139
- - Thunderbird may require re-indexing of OpenPGP keyring
140
-
141
- ---
142
-
143
- ## 📚 Learn More
144
-
145
- - [Gpg4win Documentation](https://gpg4win.org/documentation.html)
146
- - [How to Encrypt Emails with OpenPGP in Thunderbird (2022)](https://www.linuxbabe.com/security/encrypt-emails-gpg-thunderbird)
147
- - [Mozilla OpenPGP Docs](https://support.mozilla.org/en-US/kb/openpgp-thunderbird-how-does-it-work)
148
- - [Mailvelope Overview](https://www.mailvelope.com/help)
149
-
150
- ---
151
-
152
- > 🔐 PGP protects your communication, but both parties must be using it correctly. Always test before sending sensitive content.
@@ -1,67 +0,0 @@
1
- # 💻 Using PGP on Windows (Gpg4win & Kleopatra)
2
-
3
- ## This section walks through encrypting a message or file using **Gpg4win** and its GUI tool **Kleopatra**
4
-
5
- ### 📦 1. Install Gpg4win
6
-
7
- - Download from: [https://gpg4win.org](https://gpg4win.org)
8
- - During setup, make sure **Kleopatra** is selected.
9
-
10
- ---
11
-
12
- ### 🔑 2. Import the Recipient’s Public Key
13
-
14
- 1. Open **Kleopatra**
15
- 2. Click `File` → `Import Certificates…`
16
- 3. Select the `.asc` or `.gpg` file you downloaded
17
- 4. Confirm the fingerprint matches the published value
18
-
19
- ---
20
-
21
- ### ✍️ 3. Encrypt a Message (Text)
22
-
23
- 1. In Kleopatra, go to `Tools` → `Clipboard` → `Encrypt`
24
- 2. Paste your message
25
- 3. Select the recipient’s public key
26
- 4. Click **Encrypt**
27
- 5. Copy or save the armored output (begins with `-----BEGIN PGP MESSAGE-----`)
28
-
29
- You can now send that encrypted message via email or any communication platform.
30
-
31
- ---
32
-
33
- ### 📁 4. Encrypt a File
34
-
35
- 1. Right-click on any file (e.g., PDF or TXT)
36
- 2. Choose **More GpgEX options** → **Encrypt**
37
- 3. Select the recipient key
38
- 4. The encrypted file will be saved with a `.gpg` extension
39
-
40
- ---
41
-
42
- ### 🔓 5. Decrypt a Message or File
43
-
44
- To decrypt a file:
45
-
46
- - Right-click `.gpg` file → **Decrypt and verify**
47
-
48
- To decrypt a clipboard message:
49
-
50
- - In Kleopatra, go to `Tools` → `Clipboard` → `Decrypt/Verify`
51
- - Paste the encrypted message
52
- - Kleopatra will prompt for your private key if needed
53
-
54
- ---
55
-
56
- ### 🧠 Tips for Windows Users
57
-
58
- - Your private key is protected by a passphrase — never share it.
59
- - You can export your public key for others to encrypt messages to you.
60
- - Kleopatra also supports **signing** files and messages to verify your identity.
61
-
62
- ---
63
-
64
- 📘 For full walkthroughs, see:
65
-
66
- - [Gpg4win Documentation](https://gpg4win.org/documentation.html)
67
- - [Kleopatra User Guide (PDF)](https://files.gpg4win.org/doc/gpg4win-compendium-en.pdf)
@@ -1,71 +0,0 @@
1
- # 🔐 How to Encrypt Messages Using PGP
2
-
3
- This guide explains how to encrypt a message or file using PGP (Pretty Good Privacy) for secure communication with **Network Pro Strategies** or any contact with a published PGP key.
4
-
5
- ---
6
-
7
- ## 📥 1. Obtain the Recipient's Public Key
8
-
9
- You can find the official public key at:
10
-
11
- - [https://netwk.pro/pgp](https://netwk.pro/pgp)
12
- - Or via GitHub, Keybase, or direct contact
13
-
14
- Make sure the key fingerprint matches what the recipient advertises.
15
-
16
- ---
17
-
18
- ## 🔧 2. Import the Public Key
19
-
20
- Save the public key as a `.asc` or `.gpg` file, then run:
21
-
22
- ```bash
23
- gpg --import path/to/public-key.asc
24
- ```
25
-
26
- You can confirm the key is imported:
27
-
28
- ```bash
29
- gpg --list-keys
30
- ```
31
-
32
- ## 🔏 3. Encrypt a Message
33
-
34
- To encrypt a plain text file (e.g. message.txt) for the recipient:
35
-
36
- ```bash
37
- gpg --encrypt --armor --recipient recipient@example.com message.txt
38
- ```
39
-
40
- - --armor creates ASCII-formatted output
41
- - Output is saved as message.txt.asc
42
-
43
- ## 🔏 4. Encrypt a File (Binary or Attachment)
44
-
45
- ```bash
46
- gpg --encrypt --recipient recipient@example.com file.pdf
47
- ```
48
-
49
- This will create file.pdf.gpg, which you can send securely.
50
-
51
- ## 🔓 Optional: Decrypting (For Testing)
52
-
53
- If you're the recipient and want to decrypt a file:
54
-
55
- ```bash
56
- gpg --decrypt file.txt.asc
57
- ```
58
-
59
- ## 🔐 Tips
60
-
61
- - Always verify the recipient’s key fingerprint.
62
- - Never share your private key.
63
- - Use a strong passphrase to protect your keypair.
64
-
65
- ---
66
-
67
- 📘 For more help, see:
68
-
69
- - [GnuPG Documentation](https://gnupg.org/documentation/)
70
- - [A Practical Guide to GPG](https://www.linuxbabe.com/security/a-practical-guide-to-gpg-part-1-generate-your-keypair)
71
- - [OpenPGP Best Practices](https://help.riseup.net/en/security/message-security/openpgp/best-practices)
@@ -1,63 +0,0 @@
1
- # Tracking Preferences & Privacy Signals
2
-
3
- <!-- markdownlint-disable MD018 -->
4
-
5
- ## Overview
6
-
7
- This document explains how Network Pro handles analytics tracking in a privacy-aware, user-consented, and standards-compliant manner. It covers:
8
-
9
- - Tracking preference storage (cookies)
10
- - Browser signals (DNT and GPC)
11
- - Reconsent logic
12
- - Reactive store architecture
13
-
14
- ### 🔐 Principles
15
-
16
- - **Privacy by default**: Tracking is disabled when browser signals indicate user preference (DNT/GPC).
17
- - **Explicit consent**: Users may opt-in or opt-out manually, overriding signals.
18
- - **Persistent choice**: Consent state is remembered via first-party cookies.
19
- - **Transparency**: The tracking status is shown to users in the UI.
20
-
21
- ### 🧠 Architecture Summary
22
-
23
- - **Store**: `src/lib/stores/trackingPreferences.js`
24
- - Consolidates logic for cookie preferences, browser signals, and consent state.
25
- - SSR-safe, reactive, and fully declarative.
26
- - **Deprecated**:
27
- - `utils/privacy.js` → replaced by derived store logic.
28
- - `utils/trackingCookies.js` → merged into the store with SSR-safe cookie APIs.
29
-
30
- ### Reactive State
31
-
32
- | Store | Type | Description |
33
- | ----------------------- | ------------------------- | ----------------------------------------------------------------------- |
34
- | `trackingPreferences` | `Readable<TrackingState>` | Contains current tracking metadata (opt-in/out, DNT, GPC, status, etc). |
35
- | `trackingEnabled` | `Writable<boolean>` | Exposed to toggle or query PostHog tracking state reactively. |
36
- | `remindUserToReconsent` | `Readable<boolean>` | Indicates whether a consent renewal prompt should be shown. |
37
- | `showReminder` | `Writable<boolean>` | Used by PostHog to conditionally display a reminder or banner. |
38
-
39
- ### ⏳ Reconsent Logic
40
-
41
- The derived store `remindUserToReconsent` evaluates whether a user should be reminded to re-consent to tracking.
42
-
43
- It checks for:
44
-
45
- - Manual opt-in or opt-out
46
- - A valid `tracking_consent_timestamp` cookie
47
- - Whether 6+ months have elapsed since that timestamp
48
-
49
- ### ⚙️ Developer Notes
50
-
51
- - Changes to tracking preferences update cookies and reactive state
52
- - Reconsent timestamp is written/cleared via store utility functions
53
- - Use `$trackingPreferences` and `remindUserToReconsent` wherever reactive values are needed
54
-
55
- ### 💡 Related Components
56
-
57
- | File | Purpose |
58
- | ------------------------------- | -------------------------------------------------------------------------------- |
59
- | `+layout.svelte` | Initializes PostHog client and service worker; references `trackingPreferences`. |
60
- | `PrivacyDashboard.svelte` | UI control panel for opt-in/out toggles and consent status display. |
61
- | `PrivacyContent.svelte` | Informational content rendered in modals, footers, and standalone pages. |
62
- | `stores/trackingPreferences.js` | Primary source of truth; tracks and derives tracking state. |
63
- | `stores/posthog.js` | Encapsulates privacy-safe analytics setup and event capture logic. |