@networkpro/web 1.22.0 → 1.22.2
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/.github/workflows/build-and-publish.yml +4 -4
- package/.github/workflows/lighthouse.yml +1 -1
- package/.github/workflows/meta-check.yml +1 -1
- package/.github/workflows/playwright.yml +1 -1
- package/.github/workflows/publish-test.yml +16 -16
- package/.github/workflows/templates/publish.template.yml +4 -4
- package/.ncurc.cjs +50 -0
- package/.node-version +1 -1
- package/.nvmrc +1 -1
- package/CHANGELOG.md +83 -2
- package/README.md +3 -10
- package/cspell.json +1 -0
- package/package.json +15 -13
- package/src/app.html +1 -1
- package/src/lib/pages/AboutContent.svelte +11 -12
- package/src/lib/pages/FossContent.svelte +1 -1
- package/src/lib/pages/LicenseContent.svelte +1 -1
- package/src/lib/pages/PrivacyContent.svelte +6 -3
- package/src/lib/pages/PrivacyDashboard.svelte +5 -2
- package/src/lib/pages/ServicesContent.svelte +3 -3
- package/src/lib/pages/TermsConditionsContent.svelte +1 -1
- package/src/lib/pages/TermsUseContent.svelte +3 -3
- package/tests/e2e/app.spec.js +8 -3
- package/tests/e2e/mobile.spec.js +12 -3
- package/vite.config.js +11 -0
- package/vitest.config.client.js +9 -0
- package/CODE_OF_CONDUCT.md +0 -173
- package/CONTRIBUTING.md +0 -214
|
@@ -36,7 +36,7 @@ jobs:
|
|
|
36
36
|
uses: actions/checkout@v5
|
|
37
37
|
|
|
38
38
|
- name: Set up Node.js
|
|
39
|
-
uses: actions/setup-node@
|
|
39
|
+
uses: actions/setup-node@v6
|
|
40
40
|
with:
|
|
41
41
|
node-version: 22
|
|
42
42
|
cache: npm
|
|
@@ -96,7 +96,7 @@ jobs:
|
|
|
96
96
|
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
97
97
|
|
|
98
98
|
- name: Upload source archive
|
|
99
|
-
uses: actions/upload-artifact@
|
|
99
|
+
uses: actions/upload-artifact@v5
|
|
100
100
|
with:
|
|
101
101
|
name: clean-source
|
|
102
102
|
path: clean-source.tar.gz
|
|
@@ -121,7 +121,7 @@ jobs:
|
|
|
121
121
|
run: rm clean-source.tar.gz
|
|
122
122
|
|
|
123
123
|
- name: Set up Node.js for npmjs
|
|
124
|
-
uses: actions/setup-node@
|
|
124
|
+
uses: actions/setup-node@v6
|
|
125
125
|
with:
|
|
126
126
|
node-version: 22
|
|
127
127
|
registry-url: https://registry.npmjs.org/
|
|
@@ -182,7 +182,7 @@ jobs:
|
|
|
182
182
|
run: rm clean-source.tar.gz
|
|
183
183
|
|
|
184
184
|
- name: Set up Node.js for GPR
|
|
185
|
-
uses: actions/setup-node@
|
|
185
|
+
uses: actions/setup-node@v6
|
|
186
186
|
with:
|
|
187
187
|
node-version: 22
|
|
188
188
|
registry-url: https://npm.pkg.github.com/
|
|
@@ -34,16 +34,16 @@ jobs:
|
|
|
34
34
|
uses: actions/checkout@v5
|
|
35
35
|
|
|
36
36
|
- name: Set up Node.js
|
|
37
|
-
uses: actions/setup-node@
|
|
37
|
+
uses: actions/setup-node@v6
|
|
38
38
|
with:
|
|
39
39
|
node-version: 22
|
|
40
40
|
cache: npm
|
|
41
41
|
cache-dependency-path: package-lock.json
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
#- name: Show Node.js and npm versions
|
|
44
|
+
# run: |
|
|
45
|
+
# echo "Node.js version: $(node -v)"
|
|
46
|
+
# echo "npm version: $(npm -v)"
|
|
47
47
|
|
|
48
48
|
- name: Upgrade npm
|
|
49
49
|
run: |
|
|
@@ -94,7 +94,7 @@ jobs:
|
|
|
94
94
|
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
95
95
|
|
|
96
96
|
- name: Upload source archive
|
|
97
|
-
uses: actions/upload-artifact@
|
|
97
|
+
uses: actions/upload-artifact@v5
|
|
98
98
|
with:
|
|
99
99
|
name: clean-source
|
|
100
100
|
path: clean-source.tar.gz
|
|
@@ -119,17 +119,17 @@ jobs:
|
|
|
119
119
|
run: rm clean-source.tar.gz
|
|
120
120
|
|
|
121
121
|
- name: Set up Node.js for npmjs
|
|
122
|
-
uses: actions/setup-node@
|
|
122
|
+
uses: actions/setup-node@v6
|
|
123
123
|
with:
|
|
124
124
|
node-version: 22
|
|
125
125
|
registry-url: https://registry.npmjs.org/
|
|
126
126
|
cache: npm
|
|
127
127
|
cache-dependency-path: package-lock.json
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
#- name: Show Node.js and npm versions
|
|
130
|
+
# run: |
|
|
131
|
+
# echo "Node.js version: $(node -v)"
|
|
132
|
+
# echo "npm version: $(npm -v)"
|
|
133
133
|
|
|
134
134
|
- name: Upgrade npm
|
|
135
135
|
run: |
|
|
@@ -180,17 +180,17 @@ jobs:
|
|
|
180
180
|
run: rm clean-source.tar.gz
|
|
181
181
|
|
|
182
182
|
- name: Set up Node.js for GPR
|
|
183
|
-
uses: actions/setup-node@
|
|
183
|
+
uses: actions/setup-node@v6
|
|
184
184
|
with:
|
|
185
185
|
node-version: 22
|
|
186
186
|
registry-url: https://npm.pkg.github.com/
|
|
187
187
|
cache: npm
|
|
188
188
|
cache-dependency-path: package-lock.json
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
#- name: Show Node.js and npm versions
|
|
191
|
+
# run: |
|
|
192
|
+
# echo "Node.js version: $(node -v)"
|
|
193
|
+
# echo "npm version: $(npm -v)"
|
|
194
194
|
|
|
195
195
|
- name: Upgrade npm
|
|
196
196
|
run: |
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
uses: actions/checkout@v5
|
|
45
45
|
|
|
46
46
|
- name: Set up Node.js
|
|
47
|
-
uses: actions/setup-node@
|
|
47
|
+
uses: actions/setup-node@v6
|
|
48
48
|
with:
|
|
49
49
|
node-version: 22
|
|
50
50
|
cache: npm
|
|
@@ -104,7 +104,7 @@ jobs:
|
|
|
104
104
|
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
105
105
|
|
|
106
106
|
- name: Upload source archive
|
|
107
|
-
uses: actions/upload-artifact@
|
|
107
|
+
uses: actions/upload-artifact@v5
|
|
108
108
|
with:
|
|
109
109
|
name: clean-source
|
|
110
110
|
path: clean-source.tar.gz
|
|
@@ -129,7 +129,7 @@ jobs:
|
|
|
129
129
|
run: rm clean-source.tar.gz
|
|
130
130
|
|
|
131
131
|
- name: Set up Node.js for npmjs
|
|
132
|
-
uses: actions/setup-node@
|
|
132
|
+
uses: actions/setup-node@v6
|
|
133
133
|
with:
|
|
134
134
|
node-version: 22
|
|
135
135
|
registry-url: https://registry.npmjs.org/
|
|
@@ -190,7 +190,7 @@ jobs:
|
|
|
190
190
|
run: rm clean-source.tar.gz
|
|
191
191
|
|
|
192
192
|
- name: Set up Node.js for GPR
|
|
193
|
-
uses: actions/setup-node@
|
|
193
|
+
uses: actions/setup-node@v6
|
|
194
194
|
with:
|
|
195
195
|
node-version: 22
|
|
196
196
|
registry-url: https://npm.pkg.github.com/
|
package/.ncurc.cjs
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.ncurc.cjs
|
|
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
|
+
/**
|
|
10
|
+
* ==========================================================
|
|
11
|
+
* npm-check-updates Configuration
|
|
12
|
+
* ----------------------------------------------------------
|
|
13
|
+
* This file defines upgrade behavior for project dependencies.
|
|
14
|
+
* It ensures consistent updates while protecting pinned tools
|
|
15
|
+
* that are known to break between major versions.
|
|
16
|
+
*
|
|
17
|
+
* 🔧 Usage:
|
|
18
|
+
* - Run `npm run check:updates` to preview safe upgrades
|
|
19
|
+
* - Run `npm run upgrade` to apply upgrades (respects these rules)
|
|
20
|
+
*
|
|
21
|
+
* 📜 Notes for Contributors:
|
|
22
|
+
* - Do NOT remove entries from "reject" unless a maintainer
|
|
23
|
+
* confirms the dependency has been tested and verified.
|
|
24
|
+
* - This config is automatically used by npm-check-updates (NCU)
|
|
25
|
+
* and requires no command-line flags.
|
|
26
|
+
*
|
|
27
|
+
* 💡 See CONTRIBUTING.md → "Dependency Management" for details.
|
|
28
|
+
* ==========================================================
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/** @type {import('npm-check-updates').RunOptions} */
|
|
32
|
+
module.exports = {
|
|
33
|
+
// Ignore specific dependencies (prevent upgrades)
|
|
34
|
+
reject: ['vitest', '@vitest/coverage-v8', 'prettier', 'jsdom'],
|
|
35
|
+
|
|
36
|
+
// Always upgrade devDependencies as well
|
|
37
|
+
dep: 'prod,dev',
|
|
38
|
+
|
|
39
|
+
// Show a summary table
|
|
40
|
+
format: ['group', 'table'],
|
|
41
|
+
|
|
42
|
+
// Don’t automatically install — just update package.json
|
|
43
|
+
upgrade: true,
|
|
44
|
+
|
|
45
|
+
// Display upgraded dependencies as JSON (optional for automation)
|
|
46
|
+
jsonUpgraded: false,
|
|
47
|
+
|
|
48
|
+
// Enable readable colors when supported
|
|
49
|
+
color: true, // harmless, but CLI-only
|
|
50
|
+
};
|
package/.node-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
22.
|
|
1
|
+
22.21.0
|
package/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
22.
|
|
1
|
+
22.21.0
|
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,85 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
+
## [1.22.2] - 2025-10-29
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- Rewrote `CONTRIBUTING.md` to accurately describe the modern SvelteKit contribution workflow.
|
|
30
|
+
- Updated guidelines for branch naming, code style, and pull request submission.
|
|
31
|
+
- Removed outdated references to Webpack and `build/` artifacts.
|
|
32
|
+
- Moved `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md` to the organization’s `.github` repository to centralize contribution and conduct policies across all projects.
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- Introduced `vite-plugin-devtools-json` as a new `devDependency` to improve DevTools and JSON inspection support.
|
|
37
|
+
- Added plugin configuration in `vite.config.js`.
|
|
38
|
+
- Added `.ncurc.json` configuration to define rules for `npm-check-updates`, preventing automatic upgrades of version-linked packages such as `vitest` and `@vitest/coverage-v8`.
|
|
39
|
+
- Added the term `ncurc` to `cspell.json` to prevent false-positive spell-check warnings.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- Updated GitHub workflows to utilize `actions/upload-artifact@v5` and `actions/setup-node@v6`:
|
|
44
|
+
- `templates/publish.template.yml`
|
|
45
|
+
- `build-and-publish.yml`
|
|
46
|
+
- `lighthouse.yml`
|
|
47
|
+
- `meta-check.yml`
|
|
48
|
+
- `playwright.yml`
|
|
49
|
+
- `publish-test.yml`
|
|
50
|
+
- Improved **Svelte 5** / Rune compatibility in `vitest.config.client.js`:
|
|
51
|
+
- Added `optimizeDeps.include` configuration to ensure `.svelte` files are properly transformed during testing, and to align with **Vitest 4.x** and future **Vite 6** compatibility.
|
|
52
|
+
- Prevents `rune_outside_svelte` errors and prepares for future **Vitest 4.x** updates.
|
|
53
|
+
- Updated generator metadata in `src/app.html` to reflect **SvelteKit 2.48.3**.
|
|
54
|
+
- Modified `.node-version` and `.nvmrc` to reflect **Node.js** version `22.21.0` (LTS).
|
|
55
|
+
- Bumped project version to `v1.22.2`.
|
|
56
|
+
- Updated dependencies:
|
|
57
|
+
- `@eslint/compat` `^1.4.0` → `^1.4.1`
|
|
58
|
+
- `@sveltejs/adapter-vercel` `^6.0.0` → `^6.1.1`
|
|
59
|
+
- `@sveltejs/kit` `2.47.2` → `2.48.3`
|
|
60
|
+
- `browserslist` `^4.26.3` → `^4.27.0`
|
|
61
|
+
- `eslint-plugin-jsdoc` `^61.1.5` → `^61.1.11`
|
|
62
|
+
- `posthog-js` `^1.278.0` → `^1.282.0`
|
|
63
|
+
- `svelte` `5.41.1` → `5.43.0`
|
|
64
|
+
- `vite` `^7.1.11` → `^7.1.12`
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## [1.22.1] - 2025-10-21
|
|
69
|
+
|
|
70
|
+
### Documentation
|
|
71
|
+
|
|
72
|
+
- Updated directory structure and **static/pgp** section of `README.md`.
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
|
|
76
|
+
- Bumped project version to `v1.22.1`.
|
|
77
|
+
- Updated the text and layout of `AboutContent.svelte`.
|
|
78
|
+
- Added a link to the privacy email address in `PrivacyContent.svelte` and `PrivacyDashboard.svelte` for easier access.
|
|
79
|
+
- Updated the text of `ServicesContent.svelte`.
|
|
80
|
+
- Increased default Playwright test timeouts for navigation-sensitive suites (Desktop and Mobile) to improve stability under CI latency conditions.
|
|
81
|
+
- Implemented `Promise.all()` pattern for combined click and navigation waits, reducing flakiness in route transition tests.
|
|
82
|
+
- Updated the `'about' link` navigation tests in both Desktop and Mobile scenarios to include:
|
|
83
|
+
- Explicit `page.waitForLoadState('domcontentloaded')` calls before assertions.
|
|
84
|
+
- Extended per-suite timeouts (`90s`) using `test.setTimeout(90000)` for reliability on slower environments.
|
|
85
|
+
- Added fallback `waitForURL('\*\*/about', { timeout: 60000 })` to ensure deterministic routing checks.
|
|
86
|
+
- Adjusted test structure for consistency across device profiles and browsers.
|
|
87
|
+
- Verified local runs remain performant while increasing tolerance for **CI network latency**.
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
|
|
91
|
+
- Corrected `TermsUseContent.svelte` to reflect hosting by Vercel, not Netlify.
|
|
92
|
+
- Corrected license identifier syntax on the following pages:
|
|
93
|
+
- `AboutContent.svelte`
|
|
94
|
+
- `FossContent.svelte`
|
|
95
|
+
- `LicenseContent.svelte`
|
|
96
|
+
- `PrivacyContent.svelte`
|
|
97
|
+
- `PrivacyDashboard.svelte`
|
|
98
|
+
- `ServicesContent.svelte`
|
|
99
|
+
- `TermsConditionsContent.svelte`
|
|
100
|
+
- `TermsUseContent.svelte`
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
25
104
|
## [1.22.0] - 2025-10-20
|
|
26
105
|
|
|
27
106
|
### Added
|
|
@@ -1231,7 +1310,9 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1231
1310
|
|
|
1232
1311
|
<!-- Link references -->
|
|
1233
1312
|
|
|
1234
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.22.
|
|
1313
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.22.2...HEAD
|
|
1314
|
+
[1.22.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.2
|
|
1315
|
+
[1.22.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.1
|
|
1235
1316
|
[1.22.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.22.0
|
|
1236
1317
|
[1.21.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.21.1
|
|
1237
1318
|
[1.21.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.21.0
|
|
@@ -1273,4 +1354,4 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1273
1354
|
[1.12.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.3
|
|
1274
1355
|
[1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1
|
|
1275
1356
|
|
|
1276
|
-
<!-- cspell:ignore qrcode cryptom otphelp -->
|
|
1357
|
+
<!-- cspell:ignore qrcode cryptom otphelp domcontentloaded -->
|
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ This project follows the principles of [Keep a Changelog](https://keepachangelog
|
|
|
83
83
|
│ ├── hooks.server.js # Injects CSP headers and permissions policy
|
|
84
84
|
│ └── service-worker.js # Custom PWA service worker
|
|
85
85
|
├── static/ # Public assets served at site root
|
|
86
|
-
│ ├── pgp/ # PGP keys
|
|
86
|
+
│ ├── pgp/ # PGP keys
|
|
87
87
|
│ ├── disableSw.js # Service worker bypass (via ?nosw param)
|
|
88
88
|
│ ├── manifest.json # PWA metadata
|
|
89
89
|
│ ├── robots.txt # SEO: allow/disallow crawlers
|
|
@@ -106,26 +106,19 @@ This project follows the principles of [Keep a Changelog](https://keepachangelog
|
|
|
106
106
|
|
|
107
107
|
### 🔐 `static/pgp/` Directory Structure
|
|
108
108
|
|
|
109
|
-
This directory contains public PGP key files
|
|
109
|
+
This directory contains public PGP key files. Their corresponding QR code images are now loaded dynamically from `src/lib/img/qr`. A dynamic QR code import utility in `src/lib/images.js` allows these files to be imported directly from `$lib`.
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
112
|
static/
|
|
113
113
|
├── pgp/
|
|
114
114
|
│ ├── contact@s.neteng.pro.asc # Public key for secure email
|
|
115
|
-
│ ├── pgp-contact.png # QR code (PNG) for secure email key
|
|
116
|
-
│ ├── pgp-contact.webp # Optimized WebP version of the QR code
|
|
117
|
-
│ ├── pgp-security.png # QR code (PNG) for security contact key
|
|
118
|
-
│ ├── pgp-security.webp # WebP version of the security QR code
|
|
119
|
-
│ ├── pgp-support.png # QR code (PNG) for support key
|
|
120
|
-
│ ├── pgp-support.webp # WebP version of the support QR code
|
|
121
115
|
│ ├── security@s.neteng.pro.asc # Public key for security contact
|
|
122
116
|
│ ├── support@neteng.pro.asc # Public key for general support
|
|
123
117
|
└── ...
|
|
124
118
|
```
|
|
125
119
|
|
|
126
120
|
- `.asc` files are **excluded from service worker precaching** but served directly via the `/pgp/[key]` route.
|
|
127
|
-
- QR code images are **served
|
|
128
|
-
- **WebP versions** are also used in the `/pgp` route, while the `/about` route imports **dynamic equivalents** from `src/lib/img/qr`.
|
|
121
|
+
- QR code images—including WebP and PNG versions—are **served dynamically** from `src/lib/img/qr` using `<picture>` elements.
|
|
129
122
|
- This route does **not use fallback rendering**; only explicitly defined files are available and expected to resolve.
|
|
130
123
|
- A dynamic `[key]/+server.js` handler under `src/routes/pgp/` serves the `.asc` files with appropriate `Content-Type` and download headers.
|
|
131
124
|
|
package/cspell.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.22.
|
|
4
|
+
"version": "1.22.2",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advisory",
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"verify": "npm run checkout",
|
|
53
53
|
"delete": "rm -rf build .svelte-kit node_modules package-lock.json",
|
|
54
54
|
"clean": "npm run delete && npm cache clean --force && npm install",
|
|
55
|
-
"upgrade": "
|
|
55
|
+
"upgrade": "ncu -u --format group --color",
|
|
56
|
+
"check:updates": "ncu --format group --color",
|
|
56
57
|
"test": "npm run test:all",
|
|
57
58
|
"test:all": "npm run test:client -- --run && npm run test:server -- --run",
|
|
58
59
|
"test:client": "vitest --config vitest.config.client.js",
|
|
@@ -78,26 +79,26 @@
|
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
81
|
"dompurify": "^3.3.0",
|
|
81
|
-
"posthog-js": "^1.
|
|
82
|
+
"posthog-js": "^1.282.0",
|
|
82
83
|
"semver": "^7.7.3",
|
|
83
|
-
"svelte": "5.
|
|
84
|
+
"svelte": "5.43.0"
|
|
84
85
|
},
|
|
85
86
|
"devDependencies": {
|
|
86
|
-
"@eslint/compat": "^1.4.
|
|
87
|
+
"@eslint/compat": "^1.4.1",
|
|
87
88
|
"@eslint/js": "^9.38.0",
|
|
88
89
|
"@lhci/cli": "^0.15.1",
|
|
89
90
|
"@playwright/test": "^1.56.1",
|
|
90
|
-
"@sveltejs/adapter-vercel": "^6.
|
|
91
|
-
"@sveltejs/kit": "2.
|
|
91
|
+
"@sveltejs/adapter-vercel": "^6.1.1",
|
|
92
|
+
"@sveltejs/kit": "2.48.3",
|
|
92
93
|
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
93
94
|
"@testing-library/jest-dom": "^6.9.1",
|
|
94
95
|
"@testing-library/svelte": "^5.2.8",
|
|
95
|
-
"@vitest/coverage-v8": "
|
|
96
|
+
"@vitest/coverage-v8": "3.2.4",
|
|
96
97
|
"autoprefixer": "^10.4.21",
|
|
97
|
-
"browserslist": "^4.
|
|
98
|
+
"browserslist": "^4.27.0",
|
|
98
99
|
"eslint": "^9.38.0",
|
|
99
100
|
"eslint-config-prettier": "^10.1.8",
|
|
100
|
-
"eslint-plugin-jsdoc": "^61.1.
|
|
101
|
+
"eslint-plugin-jsdoc": "^61.1.11",
|
|
101
102
|
"eslint-plugin-svelte": "^3.12.5",
|
|
102
103
|
"globals": "^16.4.0",
|
|
103
104
|
"jsdom": "26.1.0",
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"markdownlint-cli2": "^0.18.1",
|
|
107
108
|
"playwright": "^1.56.1",
|
|
108
109
|
"postcss": "^8.5.6",
|
|
109
|
-
"prettier": "
|
|
110
|
+
"prettier": "3.6.2",
|
|
110
111
|
"prettier-plugin-svelte": "^3.4.0",
|
|
111
112
|
"stylelint": "^16.25.0",
|
|
112
113
|
"stylelint-config-html": "^1.1.0",
|
|
@@ -116,10 +117,11 @@
|
|
|
116
117
|
"svelte-eslint-parser": "^1.4.0",
|
|
117
118
|
"svelte-preprocess": "^6.0.3",
|
|
118
119
|
"typescript": "^5.9.3",
|
|
119
|
-
"vite": "^7.1.
|
|
120
|
+
"vite": "^7.1.12",
|
|
121
|
+
"vite-plugin-devtools-json": "^1.0.0",
|
|
120
122
|
"vite-plugin-lightningcss": "^0.0.5",
|
|
121
123
|
"vite-tsconfig-paths": "^5.1.4",
|
|
122
|
-
"vitest": "
|
|
124
|
+
"vitest": "3.2.4"
|
|
123
125
|
},
|
|
124
126
|
"overrides": {
|
|
125
127
|
"tmp": ">=0.2.4",
|
package/src/app.html
CHANGED
|
@@ -73,7 +73,7 @@ This file is part of Network Pro.
|
|
|
73
73
|
*/
|
|
74
74
|
const navLinks = [
|
|
75
75
|
{
|
|
76
|
-
label: 'SPDX
|
|
76
|
+
label: 'SPDX-License-Identifier',
|
|
77
77
|
href: 'https://spdx.dev/learn/handling-license-info',
|
|
78
78
|
target: PAGE.BLANK,
|
|
79
79
|
text: 'CC-BY-4.0 OR GPL-3.0-or-later',
|
|
@@ -120,7 +120,7 @@ This file is part of Network Pro.
|
|
|
120
120
|
<p>
|
|
121
121
|
<strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>
|
|
122
122
|
<br />
|
|
123
|
-
<em>
|
|
123
|
+
<em>Security, Networking, Privacy</em>
|
|
124
124
|
</p>
|
|
125
125
|
</section>
|
|
126
126
|
|
|
@@ -144,11 +144,10 @@ This file is part of Network Pro.
|
|
|
144
144
|
|
|
145
145
|
<p>
|
|
146
146
|
At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>, we
|
|
147
|
-
deliver network security and engineering,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
can be both practical and powerful.
|
|
147
|
+
deliver network security and engineering, cybersecurity, and digital privacy
|
|
148
|
+
consulting with clarity, credibility, and care. We believe that real security
|
|
149
|
+
doesn't have to come at the cost of user autonomy, and that privacy-minded
|
|
150
|
+
solutions can be both practical and powerful.
|
|
152
151
|
</p>
|
|
153
152
|
|
|
154
153
|
<p>
|
|
@@ -189,7 +188,7 @@ This file is part of Network Pro.
|
|
|
189
188
|
<p>
|
|
190
189
|
Additionally, {COMPANY_INFO.APP_NAME}™ provides
|
|
191
190
|
<a href={servLink} target={PAGE.SELF}>on-site services</a>
|
|
192
|
-
in the Greater Phoenix
|
|
191
|
+
in the Greater Phoenix Metropolitan Area (Maricopa County, AZ). Our
|
|
193
192
|
<a href={servLink} target={PAGE.SELF}>on-site services</a> are available to both
|
|
194
193
|
consumers and businesses. In addition to consulting, we offer the following services:
|
|
195
194
|
</p>
|
|
@@ -204,14 +203,14 @@ This file is part of Network Pro.
|
|
|
204
203
|
<li><strong>Add or Configure a Printer</strong></li>
|
|
205
204
|
</ul>
|
|
206
205
|
|
|
206
|
+
<div class="spacer"></div>
|
|
207
|
+
|
|
207
208
|
<p>
|
|
208
209
|
We also believe education is a core pillar of real-world security. That's why
|
|
209
210
|
we invest in raising awareness—across both technical and general audiences—on
|
|
210
211
|
best practices in digital privacy, secure design, and threat mitigation.
|
|
211
212
|
</p>
|
|
212
213
|
|
|
213
|
-
<div class="spacer"></div>
|
|
214
|
-
|
|
215
214
|
<p>
|
|
216
215
|
At {COMPANY_INFO.APP_NAME}™, we deliver robust, intentional solutions
|
|
217
216
|
for individuals and organizations that prioritize integrity — without
|
|
@@ -223,8 +222,8 @@ This file is part of Network Pro.
|
|
|
223
222
|
Ready to take the next step? <a href={contactLink} target={PAGE.BLANK}
|
|
224
223
|
>Let's connect</a>
|
|
225
224
|
to explore how we can help fortify your home or business.
|
|
226
|
-
<a href={consultLink} target={PAGE.BLANK}
|
|
227
|
-
|
|
225
|
+
<a href={consultLink} target={PAGE.BLANK}
|
|
226
|
+
>Schedule a free, initial consultation</a> today and discover what's possible.
|
|
228
227
|
</p>
|
|
229
228
|
|
|
230
229
|
<p>
|
|
@@ -61,7 +61,7 @@ This file is part of Network Pro.
|
|
|
61
61
|
rel={PAGE.REL}
|
|
62
62
|
href="https://spdx.dev/learn/handling-license-info"
|
|
63
63
|
target={PAGE.BLANK}>
|
|
64
|
-
SPDX
|
|
64
|
+
SPDX-License-Identifier
|
|
65
65
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
66
66
|
</span>
|
|
67
67
|
</section>
|
|
@@ -77,7 +77,7 @@ This file is part of Network Pro.
|
|
|
77
77
|
rel={PAGE.REL}
|
|
78
78
|
href="https://spdx.dev/learn/handling-license-info"
|
|
79
79
|
target={PAGE.BLANK}>
|
|
80
|
-
SPDX
|
|
80
|
+
SPDX-License-Identifier
|
|
81
81
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
82
82
|
</span>
|
|
83
83
|
</section>
|
|
@@ -55,7 +55,7 @@ This file is part of Network Pro.
|
|
|
55
55
|
];
|
|
56
56
|
|
|
57
57
|
/** @type {string} */
|
|
58
|
-
const effectiveDate = 'October
|
|
58
|
+
const effectiveDate = 'October 21, 2025';
|
|
59
59
|
|
|
60
60
|
/** @type {string} */
|
|
61
61
|
const classSmall = 'small-text';
|
|
@@ -112,7 +112,7 @@ This file is part of Network Pro.
|
|
|
112
112
|
rel={PAGE.REL}
|
|
113
113
|
href="https://spdx.dev/learn/handling-license-info"
|
|
114
114
|
target={PAGE.BLANK}>
|
|
115
|
-
SPDX
|
|
115
|
+
SPDX-License-Identifier
|
|
116
116
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
117
117
|
</span>
|
|
118
118
|
</section>
|
|
@@ -432,7 +432,10 @@ This file is part of Network Pro.
|
|
|
432
432
|
href={prightsLink}
|
|
433
433
|
target={PAGE.BLANK}>Privacy Rights Request Form</a
|
|
434
434
|
>. Alternatively, you can email us at
|
|
435
|
-
<strong
|
|
435
|
+
<strong
|
|
436
|
+
><a href={`mailto:${CONTACT.PRIVACY_LINK}`} target={PAGE.BLANK}
|
|
437
|
+
>{CONTACT.PRIVACY_LINK}</a
|
|
438
|
+
></strong>
|
|
436
439
|
with the subject line: "<strong>Privacy Rights Preferences</strong>".
|
|
437
440
|
</p>
|
|
438
441
|
{:else if link.id === 'third-party'}
|
|
@@ -87,7 +87,7 @@ This file is part of Network Pro.
|
|
|
87
87
|
rel={PAGE.REL}
|
|
88
88
|
href="https://spdx.dev/learn/handling-license-info"
|
|
89
89
|
target={PAGE.BLANK}>
|
|
90
|
-
SPDX
|
|
90
|
+
SPDX-License-Identifier
|
|
91
91
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
92
92
|
</span>
|
|
93
93
|
</section>
|
|
@@ -240,7 +240,10 @@ This file is part of Network Pro.
|
|
|
240
240
|
href={prightsLink}
|
|
241
241
|
target={PAGE.BLANK}>Privacy Rights Request Form</a
|
|
242
242
|
>. Alternatively, you can email us at
|
|
243
|
-
<strong
|
|
243
|
+
<strong
|
|
244
|
+
><a href={`mailto:${CONTACT.PRIVACY_LINK}`} target={PAGE.BLANK}
|
|
245
|
+
>{CONTACT.PRIVACY_LINK}</a
|
|
246
|
+
></strong>
|
|
244
247
|
with the subject line: "<strong>Privacy Rights Preferences</strong>".
|
|
245
248
|
</p>
|
|
246
249
|
</section>
|
|
@@ -44,7 +44,7 @@ This file is part of Network Pro.
|
|
|
44
44
|
* @type {{ effectiveDate: string, classSmall: string }}
|
|
45
45
|
*/
|
|
46
46
|
const constants = {
|
|
47
|
-
effectiveDate: 'October
|
|
47
|
+
effectiveDate: 'October 21, 2025',
|
|
48
48
|
classSmall: 'small-text',
|
|
49
49
|
};
|
|
50
50
|
</script>
|
|
@@ -56,7 +56,7 @@ This file is part of Network Pro.
|
|
|
56
56
|
rel={PAGE.REL}
|
|
57
57
|
href="https://spdx.dev/learn/handling-license-info"
|
|
58
58
|
target={PAGE.BLANK}>
|
|
59
|
-
SPDX
|
|
59
|
+
SPDX-License-Identifier
|
|
60
60
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
61
61
|
</span>
|
|
62
62
|
</section>
|
|
@@ -83,7 +83,7 @@ This file is part of Network Pro.
|
|
|
83
83
|
If you're a business seeking similar on-site solutions, we've got you covered!
|
|
84
84
|
We offer tailored services to meet the unique needs of commercial clients as
|
|
85
85
|
well. Simply <a href={consultLink} target={PAGE.BLANK}
|
|
86
|
-
>schedule a consultation</a>
|
|
86
|
+
>schedule a free, initial consultation</a>
|
|
87
87
|
or <a href={contactLink} target={PAGE.BLANK}>contact us directly</a> — we'd be
|
|
88
88
|
happy to discuss how {COMPANY_INFO.APP_NAME}™ can support your business
|
|
89
89
|
on-site.
|
|
@@ -67,7 +67,7 @@ This file is part of Network Pro.
|
|
|
67
67
|
rel={PAGE.REL}
|
|
68
68
|
href="https://spdx.dev/learn/handling-license-info"
|
|
69
69
|
target={PAGE.BLANK}>
|
|
70
|
-
SPDX
|
|
70
|
+
SPDX-License-Identifier
|
|
71
71
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
72
72
|
</span>
|
|
73
73
|
</section>
|
|
@@ -65,7 +65,7 @@ This file is part of Network Pro.
|
|
|
65
65
|
* @type {{ effectiveDate: string, classSmall: string }}
|
|
66
66
|
*/
|
|
67
67
|
const constants = {
|
|
68
|
-
effectiveDate: '
|
|
68
|
+
effectiveDate: 'October 21, 2025',
|
|
69
69
|
classSmall: 'small-text',
|
|
70
70
|
};
|
|
71
71
|
</script>
|
|
@@ -77,7 +77,7 @@ This file is part of Network Pro.
|
|
|
77
77
|
rel={PAGE.REL}
|
|
78
78
|
href="https://spdx.dev/learn/handling-license-info"
|
|
79
79
|
target={PAGE.BLANK}>
|
|
80
|
-
SPDX
|
|
80
|
+
SPDX-License-Identifier
|
|
81
81
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
82
82
|
</span>
|
|
83
83
|
</section>
|
|
@@ -142,7 +142,7 @@ This file is part of Network Pro.
|
|
|
142
142
|
These Terms of Use apply to all platforms associated with the Company,
|
|
143
143
|
including but not limited to:
|
|
144
144
|
<strong>
|
|
145
|
-
GitHub, our main website (hosted via
|
|
145
|
+
GitHub, our main website (hosted via Vercel and GitHub Pages), Stack
|
|
146
146
|
Overflow Teams, Nextcloud, communications on Discord and/or Slack, and
|
|
147
147
|
our social media presence (e.g., Facebook, Instagram, X, and similar
|
|
148
148
|
platforms).
|
package/tests/e2e/app.spec.js
CHANGED
|
@@ -11,7 +11,7 @@ This file is part of Network Pro.
|
|
|
11
11
|
* @description Runs Playwright E2E tests with desktop and root route assertions.
|
|
12
12
|
* @module tests/e2e
|
|
13
13
|
* @author Scott Lopez
|
|
14
|
-
* @updated 2025-
|
|
14
|
+
* @updated 2025-10-21
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { expect, test } from '@playwright/test';
|
|
@@ -24,6 +24,8 @@ import {
|
|
|
24
24
|
|
|
25
25
|
// Root route should display nav bar and about link
|
|
26
26
|
test.describe('Desktop Tests', () => {
|
|
27
|
+
test.setTimeout(90_000); // increase timeout for all desktop tests
|
|
28
|
+
|
|
27
29
|
test("should display the navigation bar and 'about' link", async ({
|
|
28
30
|
page,
|
|
29
31
|
}) => {
|
|
@@ -67,12 +69,15 @@ test.describe('Desktop Tests', () => {
|
|
|
67
69
|
await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
|
|
68
70
|
|
|
69
71
|
const nav = await getVisibleNav(page);
|
|
70
|
-
|
|
71
72
|
const aboutLink = nav.getByRole('link', { name: 'about' });
|
|
72
73
|
await expect(aboutLink).toBeVisible();
|
|
73
74
|
await aboutLink.click();
|
|
74
75
|
|
|
75
|
-
|
|
76
|
+
// safer wait pattern with load state
|
|
77
|
+
await Promise.all([
|
|
78
|
+
page.waitForLoadState('load'),
|
|
79
|
+
page.waitForURL('**/about', { timeout: 60000 }),
|
|
80
|
+
]);
|
|
76
81
|
await expect(page).toHaveURL(/\/about/);
|
|
77
82
|
});
|
|
78
83
|
}); // End Desktop Tests
|
package/tests/e2e/mobile.spec.js
CHANGED
|
@@ -11,7 +11,7 @@ This file is part of Network Pro.
|
|
|
11
11
|
* @description Runs Playwright E2E tests with mobile assertions.
|
|
12
12
|
* @module tests/e2e
|
|
13
13
|
* @author Scott Lopez
|
|
14
|
-
* @updated 2025-
|
|
14
|
+
* @updated 2025-10-21
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { expect, test } from '@playwright/test';
|
|
@@ -19,6 +19,8 @@ import { getFooter, getVisibleNav, setMobileView } from './shared/helpers.js';
|
|
|
19
19
|
|
|
20
20
|
// Mobile viewport smoke tests for the root route
|
|
21
21
|
test.describe('Mobile Tests', () => {
|
|
22
|
+
test.setTimeout(90_000); // increase timeout for all desktop tests
|
|
23
|
+
|
|
22
24
|
test('should display the main description text on mobile', async ({
|
|
23
25
|
page,
|
|
24
26
|
browserName,
|
|
@@ -57,13 +59,20 @@ test.describe('Mobile Tests', () => {
|
|
|
57
59
|
|
|
58
60
|
await setMobileView(page);
|
|
59
61
|
await page.goto('/');
|
|
62
|
+
await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
|
|
60
63
|
|
|
61
64
|
const nav = await getVisibleNav(page);
|
|
62
65
|
const aboutLink = nav.getByRole('link', { name: 'about' });
|
|
63
66
|
await expect(aboutLink).toBeVisible();
|
|
64
67
|
|
|
65
|
-
|
|
66
|
-
await
|
|
68
|
+
// combine click + wait in a Promise.all to ensure navigation completes
|
|
69
|
+
await Promise.all([
|
|
70
|
+
page.waitForLoadState('load'),
|
|
71
|
+
page.waitForURL('**/about', { timeout: 60000 }),
|
|
72
|
+
aboutLink.click(),
|
|
73
|
+
]);
|
|
74
|
+
|
|
75
|
+
await expect(page).toHaveURL(/\/about/);
|
|
67
76
|
});
|
|
68
77
|
|
|
69
78
|
test('should display the footer on /about (mobile)', async ({
|
package/vite.config.js
CHANGED
|
@@ -7,13 +7,24 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================= */
|
|
8
8
|
|
|
9
9
|
import { sveltekit } from '@sveltejs/kit/vite';
|
|
10
|
+
import { resolve } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
10
12
|
import { defineConfig } from 'vite';
|
|
13
|
+
import devtoolsJson from 'vite-plugin-devtools-json';
|
|
11
14
|
import lightningcssPlugin from 'vite-plugin-lightningcss';
|
|
12
15
|
import tsconfigPaths from 'vite-tsconfig-paths'; // NEW: tsconfig/jsconfig alias support
|
|
13
16
|
|
|
17
|
+
// Compute absolute project root
|
|
18
|
+
const projectRoot = fileURLToPath(new URL('.', import.meta.url));
|
|
19
|
+
|
|
14
20
|
export default defineConfig({
|
|
15
21
|
plugins: [
|
|
16
22
|
tsconfigPaths(), // Insert before sveltekit()
|
|
23
|
+
devtoolsJson({
|
|
24
|
+
projectRoot: resolve(projectRoot), // Correct key name
|
|
25
|
+
normalizeForWindowsContainer: true, // optional, helps with path consistency on Windows or WSL
|
|
26
|
+
uuid: 'ad0db4f4-6172-4c1e-ae17-26b1bee53764',
|
|
27
|
+
}),
|
|
17
28
|
sveltekit(),
|
|
18
29
|
lightningcssPlugin({
|
|
19
30
|
minify: process.env.NODE_ENV === 'production',
|
package/vitest.config.client.js
CHANGED
|
@@ -39,5 +39,14 @@ export default defineConfig({
|
|
|
39
39
|
reporter: ['html'],
|
|
40
40
|
reportsDirectory: './reports/client/coverage',
|
|
41
41
|
},
|
|
42
|
+
|
|
43
|
+
// Svelte 5 / Runes compatibility (Vitest 4.x+)
|
|
44
|
+
optimizeDeps: {
|
|
45
|
+
include: [/svelte/], // Ensures .svelte files are pre-bundled with rune support
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// Optional: quiet down noisy vite logs
|
|
49
|
+
logHeapUsage: false,
|
|
50
|
+
isolate: true,
|
|
42
51
|
},
|
|
43
52
|
});
|
package/CODE_OF_CONDUCT.md
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
<!-- =========================================================================
|
|
2
|
-
CODE_OF_CONDUCT.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
|
-
|
|
9
|
-
<a name="top"></a>
|
|
10
|
-
|
|
11
|
-
[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
|
|
12
|
-
`CC-BY-4.0 OR GPL-3.0-or-later`
|
|
13
|
-
|
|
14
|
-
# Contributor Covenant Code of Conduct
|
|
15
|
-
|
|
16
|
-
**Network Pro Strategies**
|
|
17
|
-
**Effective Date:** March 21, 2025
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## Contents
|
|
22
|
-
|
|
23
|
-
- [Our Pledge](#pledge)
|
|
24
|
-
- [Our Standards](#standards)
|
|
25
|
-
- [Responsibilities](#response)
|
|
26
|
-
- [Scope](#scope)
|
|
27
|
-
- [Enforcement](#enforce)
|
|
28
|
-
- [Attribution](#attribute)
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
<section id="pledge">
|
|
33
|
-
|
|
34
|
-
## Our Pledge
|
|
35
|
-
|
|
36
|
-
We as members, contributors, and leaders pledge to make participation in our
|
|
37
|
-
community a harassment-free experience for everyone, regardless of age, body
|
|
38
|
-
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
39
|
-
identity and expression, level of experience, education, socio-economic status,
|
|
40
|
-
nationality, personal appearance, race, caste, color, religion, or sexual
|
|
41
|
-
identity and orientation.
|
|
42
|
-
|
|
43
|
-
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
44
|
-
diverse, inclusive, and healthy community.
|
|
45
|
-
|
|
46
|
-
</section>
|
|
47
|
-
|
|
48
|
-
<section id="standards">
|
|
49
|
-
|
|
50
|
-
## Our Standards
|
|
51
|
-
|
|
52
|
-
Examples of behavior that contributes to a positive environment for our
|
|
53
|
-
community include:
|
|
54
|
-
|
|
55
|
-
- Demonstrating empathy and kindness toward other people
|
|
56
|
-
- Being respectful of differing opinions, viewpoints, and experiences
|
|
57
|
-
- Giving and gracefully accepting constructive feedback
|
|
58
|
-
- Accepting responsibility and apologizing to those affected by our mistakes,
|
|
59
|
-
and learning from the experience
|
|
60
|
-
- Focusing on what is best not just for us as individuals, but for the overall
|
|
61
|
-
community
|
|
62
|
-
|
|
63
|
-
Examples of unacceptable behavior include:
|
|
64
|
-
|
|
65
|
-
- The use of sexualized language or imagery, and sexual attention or advances of
|
|
66
|
-
any kind
|
|
67
|
-
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
68
|
-
- Public or private harassment
|
|
69
|
-
- Publishing others' private information, such as a physical or email address,
|
|
70
|
-
without their explicit permission
|
|
71
|
-
- Other conduct which could reasonably be considered inappropriate in a
|
|
72
|
-
professional setting
|
|
73
|
-
|
|
74
|
-
<sub>[Back to top](#top)</sub>
|
|
75
|
-
|
|
76
|
-
</section>
|
|
77
|
-
|
|
78
|
-
<section id="response">
|
|
79
|
-
|
|
80
|
-
## Responsibilities
|
|
81
|
-
|
|
82
|
-
Company and community leaders are responsible for clarifying and enforcing our standards of
|
|
83
|
-
acceptable behavior and will take appropriate and fair corrective action in
|
|
84
|
-
response to any behavior that they deem inappropriate, threatening, offensive,
|
|
85
|
-
or harmful.
|
|
86
|
-
|
|
87
|
-
Company and community leaders have the right and responsibility to remove, edit, or reject
|
|
88
|
-
comments, commits, code, wiki edits, issues, and other contributions that are
|
|
89
|
-
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
|
90
|
-
decisions when appropriate.
|
|
91
|
-
|
|
92
|
-
Network Pro Strategies reserves the right, at its sole discretion, to remove, edit, or reject any contributions that are contrary to or detrimental to its business interests.
|
|
93
|
-
|
|
94
|
-
<sub>[Back to top](#top)</sub>
|
|
95
|
-
|
|
96
|
-
</section>
|
|
97
|
-
|
|
98
|
-
<section id="scope">
|
|
99
|
-
|
|
100
|
-
## Scope
|
|
101
|
-
|
|
102
|
-
This Code of Conduct applies within all community spaces, and also applies when
|
|
103
|
-
an individual is officially representing the company or community in public spaces.
|
|
104
|
-
Examples of representing our company or community include using an official email address,
|
|
105
|
-
posting via an official social media account, or acting as an appointed
|
|
106
|
-
representative at an online or offline event.
|
|
107
|
-
|
|
108
|
-
<sub>[Back to top](#top)</sub>
|
|
109
|
-
|
|
110
|
-
</section>
|
|
111
|
-
|
|
112
|
-
<section id="enforce">
|
|
113
|
-
|
|
114
|
-
## Enforcement
|
|
115
|
-
|
|
116
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the abuse team at [abuse@neteng.pro](mailto:abuse@neteng.pro). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.
|
|
117
|
-
|
|
118
|
-
The abuse team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
119
|
-
|
|
120
|
-
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.
|
|
121
|
-
|
|
122
|
-
<sub>[Back to top](#top)</sub>
|
|
123
|
-
|
|
124
|
-
</section>
|
|
125
|
-
|
|
126
|
-
<section id="attribute">
|
|
127
|
-
|
|
128
|
-
## Attribution
|
|
129
|
-
|
|
130
|
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
131
|
-
version 2.1, available at
|
|
132
|
-
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
133
|
-
|
|
134
|
-
The **Enforcement** section is adapted from the
|
|
135
|
-
[Contributor Covenant][homepage],
|
|
136
|
-
version 1.4, available at
|
|
137
|
-
[https://www.contributor-covenant.org/version/1/4/code-of-conduct/][v1.4].
|
|
138
|
-
|
|
139
|
-
For answers to common questions about this code of conduct, see the FAQ at
|
|
140
|
-
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
|
141
|
-
[https://www.contributor-covenant.org/translations][translations].
|
|
142
|
-
|
|
143
|
-
[homepage]: https://www.contributor-covenant.org
|
|
144
|
-
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
|
145
|
-
[v1.4]: https://www.contributor-covenant.org/version/1/4/code-of-conduct/
|
|
146
|
-
[FAQ]: https://www.contributor-covenant.org/faq
|
|
147
|
-
[translations]: https://www.contributor-covenant.org/translations
|
|
148
|
-
|
|
149
|
-
<sub>[Back to top](#top)</sub>
|
|
150
|
-
|
|
151
|
-
</section>
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
<div style="font-size: 12px; font-weight: bold; text-align: center;">
|
|
156
|
-
|
|
157
|
-
[Home](https://netwk.pro) | [Terms of Use](https://netwk.pro/terms-of-use)
|
|
158
|
-
[Privacy Policy](https://netwk.pro/privacy) | [Legal](https://netwk.pro/license)
|
|
159
|
-
|
|
160
|
-
</div>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
<span style="font-size: 12px; text-align: center;">
|
|
165
|
-
|
|
166
|
-
Copyright © 2025
|
|
167
|
-
**[Network Pro Strategies](https://netwk.pro/)** (Network Pro™)
|
|
168
|
-
|
|
169
|
-
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/license#trademark) of Network Pro Strategies.
|
|
170
|
-
|
|
171
|
-
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, either version 3 of the License, or (at your option) any later version.
|
|
172
|
-
|
|
173
|
-
</span>
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
<!-- =========================================================================
|
|
2
|
-
CONTRIBUTING.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
|
-
|
|
9
|
-
<a name="top"></a>
|
|
10
|
-
|
|
11
|
-
[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/):
|
|
12
|
-
`CC-BY-4.0 OR GPL-3.0-or-later`
|
|
13
|
-
|
|
14
|
-
# 🤝 Contributing to Network Pro Strategies
|
|
15
|
-
|
|
16
|
-
**Network Pro Strategies**
|
|
17
|
-
**Effective Date:** July 31, 2025
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Thanks for your interest in improving **Network Pro Strategies** (Network Pro™)! We're always looking for collaborators and contributors of all skill levels. This guide will help you get started quickly and effectively.
|
|
22
|
-
|
|
23
|
-
Following these guidelines helps us all work together efficiently and respectfully. 🙌
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## 🐛 Using the Issue Tracker
|
|
28
|
-
|
|
29
|
-
Use the [issue tracker](https://github.com/netwk-pro/netwk-pro.github.io/issues) for:
|
|
30
|
-
|
|
31
|
-
- Reporting [bugs](#bug-reports)
|
|
32
|
-
- Submitting [feature requests](#feature-requests)
|
|
33
|
-
- Proposing [pull requests](#pull-requests)
|
|
34
|
-
|
|
35
|
-
🚫 Please do **not** use issues for general support — instead, head to:
|
|
36
|
-
|
|
37
|
-
- [Stack Overflow Teams](https://stack.neteng.pro/)
|
|
38
|
-
- [GitHub Discussions](https://discuss.neteng.pro)
|
|
39
|
-
- [Discord](https://discord.neteng.pro)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
<section id="bug-reports">
|
|
44
|
-
|
|
45
|
-
## 🐞 Bug Reports
|
|
46
|
-
|
|
47
|
-
A bug is a clear, reproducible issue in the code. High-quality reports help us fix problems faster.
|
|
48
|
-
|
|
49
|
-
### ✅ A good bug report includes
|
|
50
|
-
|
|
51
|
-
- A **descriptive title**
|
|
52
|
-
- Steps to reproduce
|
|
53
|
-
- Your environment (OS, browser, version)
|
|
54
|
-
- Expected vs actual behavior
|
|
55
|
-
- Links to a minimal reproducible case (if possible)
|
|
56
|
-
|
|
57
|
-
_Example_:
|
|
58
|
-
|
|
59
|
-
<!-- markdownlint-disable MD042 -->
|
|
60
|
-
|
|
61
|
-
> **Title**: Checkbox toggle fails on Safari 17
|
|
62
|
-
> Steps:
|
|
63
|
-
>
|
|
64
|
-
> 1. Visit page X
|
|
65
|
-
> 2. Click toggle
|
|
66
|
-
> 3. Observe that...
|
|
67
|
-
> Expected: ...
|
|
68
|
-
> Actual: ...
|
|
69
|
-
> [Live example](#)
|
|
70
|
-
|
|
71
|
-
<!-- markdownlint-enable MD042 -->
|
|
72
|
-
|
|
73
|
-
</section>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
<sub>[Back to top](#top)</sub>
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
<section id="feature-requests">
|
|
82
|
-
|
|
83
|
-
## ✨ Feature Requests
|
|
84
|
-
|
|
85
|
-
Feature requests are welcome — just make sure it aligns with the project’s goals.
|
|
86
|
-
|
|
87
|
-
Before posting:
|
|
88
|
-
|
|
89
|
-
- Search for similar requests
|
|
90
|
-
- Clearly describe the problem it solves
|
|
91
|
-
- Explain the use case and who benefits
|
|
92
|
-
|
|
93
|
-
Strong proposals help us prioritize.
|
|
94
|
-
|
|
95
|
-
</section>
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
<sub>[Back to top](#top)</sub>
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
<section id="pull-requests">
|
|
104
|
-
|
|
105
|
-
## 🔁 Pull Requests
|
|
106
|
-
|
|
107
|
-
Well-scoped, well-documented pull requests are the lifeblood of open-source.
|
|
108
|
-
|
|
109
|
-
### ⚠️ Ask First
|
|
110
|
-
|
|
111
|
-
Before large PRs (new features, refactors, dependency upgrades), please check with maintainers first.
|
|
112
|
-
|
|
113
|
-
### 📋 Steps
|
|
114
|
-
|
|
115
|
-
1. **Fork the repo & set remotes**:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
git clone https://github.com/<your-username>/netwk-pro.github.io.git
|
|
119
|
-
cd netwk-pro.github.io
|
|
120
|
-
git remote add upstream https://github.com/netwk-pro/netwk-pro.github.io.git
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
2. **Stay Updated**
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
git checkout master
|
|
127
|
-
git pull upstream master
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
3. **Create a topic branch:**
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
git checkout -b my-feature
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
4. **Install & test locally:**
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
npm install
|
|
140
|
-
npm run checkout
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
5. **Make your changes**
|
|
144
|
-
|
|
145
|
-
(and commit them in logical chunks with good commit messages).
|
|
146
|
-
|
|
147
|
-
6. **Build:**
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
npm run build
|
|
151
|
-
git add build/
|
|
152
|
-
git commit -m "Build: update assets"
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
7. **Push and open a PR:**
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
git push origin my-feature
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Open your PR with a clear title, description, and reference the related issue (if any).
|
|
162
|
-
|
|
163
|
-
</section>
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<sub>[Back to top](#top)</sub>
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## ✅ Coding & Style Notes
|
|
172
|
-
|
|
173
|
-
- Use the defined code style (Prettier, ESLint, Stylelint, markdownlint)
|
|
174
|
-
- Avoid unrelated changes in the same PR
|
|
175
|
-
- Keep PRs focused and test-covered when appropriate
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
## 🔐 Legal Notice
|
|
180
|
-
|
|
181
|
-
By submitting a pull request, you agree to license your contributions under:
|
|
182
|
-
|
|
183
|
-
- [CC BY 4.0](https://netwk.pro/license#cc-by)
|
|
184
|
-
- [GNU GPL 3.0 or later](https://netwk.pro/license#gnu-gpl)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
<sub>[Back to top](#top)</sub>
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
_Thanks again for your contribution and for being part of the Network Pro™ community!_
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
<div style="font-size: 12px; font-weight: bold; text-align: center;">
|
|
197
|
-
|
|
198
|
-
[Home](https://netwk.pro) | [Terms of Use](https://netwk.pro/terms-of-use)
|
|
199
|
-
[Privacy Policy](https://netwk.pro/privacy) | [Legal](https://netwk.pro/license)
|
|
200
|
-
|
|
201
|
-
</div>
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
<span style="font-size: 12px; text-align: center;">
|
|
206
|
-
|
|
207
|
-
Copyright © 2025
|
|
208
|
-
**[Network Pro Strategies](https://netwk.pro/)** (Network Pro™)
|
|
209
|
-
|
|
210
|
-
Network Pro™, the shield logo, and the "Locking Down Networks...™" slogan are [trademarks](https://netwk.pro/license#trademark) of Network Pro Strategies.
|
|
211
|
-
|
|
212
|
-
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, either version 3 of the License, or (at your option) any later version.
|
|
213
|
-
|
|
214
|
-
</span>
|