@networkpro/web 1.25.21 → 1.25.23

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.
@@ -14,10 +14,10 @@ on:
14
14
 
15
15
  jobs:
16
16
  gitleaks-scan:
17
+ if: github.actor != 'dependabot[bot]'
17
18
  runs-on: ubuntu-24.04
18
19
  permissions:
19
20
  contents: read
20
- security-events: write
21
21
  issues: write
22
22
  env:
23
23
  CODEQL_ACTION_ANALYSIS_KEY: gitleaks
@@ -49,7 +49,7 @@ jobs:
49
49
  # (either not a PR, or a PR from the same repo)
50
50
  # ---------------------------------------------------------------------
51
51
  - name: Upload Gitleaks Report
52
- if: always() && (github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request')
52
+ if: always() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
53
53
  uses: actions/upload-artifact@v6
54
54
  with:
55
55
  name: gitleaks-report
@@ -59,6 +59,10 @@ jobs:
59
59
  # LAYER 1: Output redaction
60
60
  # Public-safe summary – shows only secret descriptions, hides file paths.
61
61
  # ---------------------------------------------------------------------
62
+ - name: Ensure jq is installed
63
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
64
+ run: sudo apt-get update && sudo apt-get install -y jq
65
+
62
66
  - name: Post Gitleaks summary
63
67
  if: always()
64
68
  run: |
@@ -91,7 +95,7 @@ jobs:
91
95
  # Create issue only in trusted repo context (avoids using tokens on forks)
92
96
  # ---------------------------------------------------------------------
93
97
  - name: Create issue for detected secrets
94
- if: failure() && (github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request')
98
+ if: failure() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
95
99
  uses: actions/github-script@v7
96
100
  with:
97
101
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -111,7 +115,7 @@ jobs:
111
115
  # Send ntfy alert only for trusted repo context.
112
116
  # ---------------------------------------------------------------------
113
117
  - name: Send ntfy notification
114
- if: failure() && (github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request')
118
+ if: failure() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
115
119
  run: |
116
120
  curl -d "🚨 Gitleaks found secrets in repo: $GITHUB_REPOSITORY on commit $GITHUB_SHA" \
117
- https://ntfy.neteng.pro/${{ secrets.NTFY_TOPIC }}
121
+ https://ntfy.neteng.pro/${{ secrets.NTFY_TOPIC }}
package/CHANGELOG.md CHANGED
@@ -24,6 +24,47 @@ version increments reflecting both user-visible and operational impact.
24
24
 
25
25
  ---
26
26
 
27
+ ## [1.25.23] - 2026-01-04
28
+
29
+ ### Changed
30
+
31
+ - Updated `README.md` to accurately reflect hosting.
32
+ - Updated timestamp in `static/.well-known/security.txt` and created a new detached signature.
33
+ - Bumped project version to `v1.25.23`.
34
+
35
+ ---
36
+
37
+ ## [1.25.22] - 2026-01-01
38
+
39
+ ### Added
40
+
41
+ - Conditional guards to ensure artifacts, issues, and external notifications are only created when workflows run in a trusted context (non-PR runs or PRs originating from the same repository).
42
+ - Redacted, public-safe Gitleaks scan summaries in GitHub Actions step output to prevent accidental exposure of sensitive file paths or values.
43
+ - Optional installation of `jq` gated to trusted execution contexts to support future structured output (e.g., SARIF) while preserving fork safety.
44
+
45
+ ### Changed
46
+
47
+ - Updated the Gitleaks secret scanning workflow to explicitly exclude Dependabot pull requests, avoiding failures caused by unavailable organization secrets in bot-triggered PRs.
48
+ - Refined workflow trust boundaries to distinguish between forked pull requests and trusted repository contexts.
49
+ - Updated `.gitignore` to stop tracking generated `.svelte-kit` files.
50
+ - Bumped project version to `v1.25.22`.
51
+ - Updated dependencies:
52
+ - `stylelint-order` `^7.0.0` → `^7.0.1`
53
+ - `posthog-js` `^1.310.1` → `^1.313.0`
54
+ - `globals` `^16.5.0` → `^17.0.0`
55
+
56
+ ### Removed
57
+
58
+ - Removed Mastodon verification in `src/routes/posts/+page.svelte`, as it was not functioning properly. This route will remain unverified.
59
+
60
+ ### Security
61
+
62
+ - Hardened secret-handling logic in CI by preventing the use of organization-level secrets, write permissions, and external notifications in untrusted pull request contexts.
63
+ - Ensured Gitleaks license usage is restricted to safe execution paths, eliminating false-negative or false-positive failures caused by GitHub Actions secret scoping rules.
64
+ - Added transitive dependency override for `qs` to `^6.14.1`, in order to address CVE-2025-15284.
65
+
66
+ ---
67
+
27
68
  ## [1.25.21] - 2025-12-27
28
69
 
29
70
  ### Added
@@ -2090,7 +2131,7 @@ This enables analytics filtering and CSP hardening for the audit environment.
2090
2131
 
2091
2132
  ---
2092
2133
 
2093
- ## 1.12.0 – 2025-06-04
2134
+ ## [1.12.0] – 2025-06-04
2094
2135
 
2095
2136
  ### Added
2096
2137
 
@@ -2118,7 +2159,9 @@ This enables analytics filtering and CSP hardening for the audit environment.
2118
2159
 
2119
2160
  <!-- Link references -->
2120
2161
 
2121
- [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.25.21...HEAD
2162
+ [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.25.23...HEAD
2163
+ [1.25.23]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.23
2164
+ [1.25.22]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.22
2122
2165
  [1.25.21]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.21
2123
2166
  [1.25.20]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.20
2124
2167
  [1.25.19]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.25.19
@@ -2190,5 +2233,6 @@ This enables analytics filtering and CSP hardening for the audit environment.
2190
2233
  [1.12.4]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.4
2191
2234
  [1.12.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.3
2192
2235
  [1.12.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.1
2236
+ [1.12.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.12.0
2193
2237
 
2194
2238
  <!-- cspell:ignore qrcode cryptom otphelp domcontentloaded -->
package/README.md CHANGED
@@ -24,7 +24,7 @@ This file is part of Network Pro.
24
24
  This GitHub repository powers the official web presence of **[Network Pro Strategies](https://netwk.pro/about)** — a research- and infrastructure-focused technology initiative working across cybersecurity, digital systems, and privacy. Our work spans applied research and development, experimental infrastructure, educational tools and publications, and public advocacy for security- and privacy-respecting technology.
25
25
 
26
26
  Built with [SvelteKit](https://kit.svelte.dev/) and deployed via [Vercel](https://vercel.com/).
27
- [Blog](https://github.com/netwk-pro/blog) and [documentation](https://github.com/netwk-pro/docs) subsites built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) and deployed via [Vercel](https://vercel.com/) and [Netlify](https://netlify.com/).
27
+ [Blog](https://github.com/netwk-pro/blog) and [documentation](https://github.com/netwk-pro/docs) subsites built with [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) and deployed via [Vercel](https://vercel.com/).
28
28
 
29
29
  All infrastructure and data flows are designed with **maximum transparency, self-hosting, and user privacy** in mind.
30
30
 
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@networkpro/web",
3
3
  "private": false,
4
- "version": "1.25.21",
4
+ "version": "1.25.23",
5
5
  "description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
6
6
  "keywords": [
7
+ "advocacy",
7
8
  "consulting",
8
9
  "cybersecurity",
10
+ "education",
9
11
  "networking",
12
+ "policy",
10
13
  "privacy",
11
14
  "pwa",
12
15
  "security",
@@ -85,7 +88,7 @@
85
88
  },
86
89
  "dependencies": {
87
90
  "dompurify": "^3.3.1",
88
- "posthog-js": "^1.310.1",
91
+ "posthog-js": "^1.313.0",
89
92
  "semver": "^7.7.3",
90
93
  "svelte": "5.46.1"
91
94
  },
@@ -107,7 +110,7 @@
107
110
  "eslint-config-prettier": "^10.1.8",
108
111
  "eslint-plugin-jsdoc": "^61.5.0",
109
112
  "eslint-plugin-svelte": "^3.13.1",
110
- "globals": "^16.5.0",
113
+ "globals": "^17.0.0",
111
114
  "globby": "^16.1.0",
112
115
  "jsdom": "27.4.0",
113
116
  "lightningcss": "^1.30.2",
@@ -122,7 +125,7 @@
122
125
  "stylelint": "^16.26.1",
123
126
  "stylelint-config-html": "^1.1.0",
124
127
  "stylelint-config-recommended": "^17.0.0",
125
- "stylelint-order": "^7.0.0",
128
+ "stylelint-order": "^7.0.1",
126
129
  "svelte-check": "^4.3.5",
127
130
  "svelte-eslint-parser": "^1.4.1",
128
131
  "svelte-preprocess": "^6.0.3",
@@ -137,7 +140,8 @@
137
140
  "cookie": "^1.0.0",
138
141
  "glob": "^11.1.0",
139
142
  "js-yaml": "^4.1.1",
140
- "tar": ">=7.5.2",
141
- "tmp": ">=0.2.4"
143
+ "qs": "^6.14.1",
144
+ "tar": "^7.5.2",
145
+ "tmp": "^0.2.4"
142
146
  }
143
147
  }
@@ -45,13 +45,6 @@ This file is part of Network Pro.
45
45
  });
46
46
  </script>
47
47
 
48
- <svelte:head>
49
- <a
50
- rel="me"
51
- href="https://noc.social/@neteng_pro"
52
- aria-label="Mastodon profile"></a>
53
- </svelte:head>
54
-
55
48
  {#if show && target}
56
49
  <RedirectPage to={target} rel={PAGE.REL} />
57
50
  {:else}
@@ -9,4 +9,4 @@ Canonical: https://netwk.pro/.well-known/security.txt
9
9
  Signature: https://netwk.pro/.well-known/security.txt.sig
10
10
  # This file is authenticated using a detached GPG signature:
11
11
  # https://netwk.pro/.well-known/security.txt.sig
12
- Expires: 2025-12-31T23:59:59Z
12
+ Expires: 2026-12-31T23:59:59Z
@@ -0,0 +1,7 @@
1
+ -----BEGIN PGP SIGNATURE-----
2
+
3
+ iHUEARYKAB0WIQS3/h1ObKs+cUqf325Iy3KQwA0NpQUCaVpH3AAKCRBIy3KQwA0N
4
+ paX5AQDUKoVbYdfuhOuE6d3f9LOzJaClIpLlit0fyWd1TKqNmAEAgRpH8Z22O4vf
5
+ K6gOVLSo5QngPPXqN7kQCcN8oeydzg8=
6
+ =WWvf
7
+ -----END PGP SIGNATURE-----
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Sitemap last updated 2025-12-27 -->
2
+ <!-- Sitemap last updated 2026-01-01 -->
3
3
 
4
4
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
5
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <loc>https://netwk.pro</loc>
9
9
 
10
- <lastmod>2025-12-25</lastmod>
10
+ <lastmod>2026-01-01</lastmod>
11
11
 
12
12
  <changefreq>weekly</changefreq>
13
13
 
@@ -1,52 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "paths": {
4
- "$lib": [
5
- "../src/lib"
6
- ],
7
- "$lib/*": [
8
- "../src/lib/*"
9
- ],
10
- "$app/types": [
11
- "./types/index.d.ts"
12
- ]
13
- },
14
- "rootDirs": [
15
- "..",
16
- "./types"
17
- ],
18
- "verbatimModuleSyntax": true,
19
- "isolatedModules": true,
20
- "lib": [
21
- "esnext",
22
- "DOM",
23
- "DOM.Iterable"
24
- ],
25
- "moduleResolution": "bundler",
26
- "module": "esnext",
27
- "noEmit": true,
28
- "target": "esnext"
29
- },
30
- "include": [
31
- "ambient.d.ts",
32
- "non-ambient.d.ts",
33
- "./types/**/$types.d.ts",
34
- "../vite.config.js",
35
- "../vite.config.ts",
36
- "../src/**/*.js",
37
- "../src/**/*.ts",
38
- "../src/**/*.svelte",
39
- "../tests/**/*.js",
40
- "../tests/**/*.ts",
41
- "../tests/**/*.svelte"
42
- ],
43
- "exclude": [
44
- "../node_modules/**",
45
- "../src/service-worker.js",
46
- "../src/service-worker/**/*.js",
47
- "../src/service-worker.ts",
48
- "../src/service-worker/**/*.ts",
49
- "../src/service-worker.d.ts",
50
- "../src/service-worker/**/*.d.ts"
51
- ]
52
- }
@@ -1,7 +0,0 @@
1
- -----BEGIN PGP SIGNATURE-----
2
-
3
- iIwEABYKADQWIQS3/h1ObKs+cUqf325Iy3KQwA0NpQUCaEyxUhYcc2VjdXJpdHlA
4
- cy5uZXRlbmcucHJvAAoJEEjLcpDADQ2lPAgA/0rNLm+HpBmlYn2ETD0jyX7jDdPB
5
- YSX2AifNCEV+AW63AQDTyKq0E0sw45eOjqZnLCxByuRWcNwj8wazWR1p+2ptDw==
6
- =ybGE
7
- -----END PGP SIGNATURE-----