@networkpro/web 1.24.2 → 1.24.5
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/branch-guard.yml +37 -0
- package/.github/workflows/build-and-publish.yml +4 -0
- package/.github/workflows/probely-scan.yml +95 -0
- package/.github/workflows/secret-scan.yml +2 -0
- package/CHANGELOG.md +90 -2
- package/README.md +22 -2
- package/package.json +11 -5
- package/static/robots.txt +23 -1
- /package/static/{7cbb39ce-750b-43da-83b8-8980e5554d4d.txt.txt → 7cbb39ce-750b-43da-83b8-8980e5554d4d.txt} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# .github/workflows/branch-guard.yml
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro
|
|
6
|
+
#
|
|
7
|
+
# Warns if commits are pushed directly to master/main instead of via PR.
|
|
8
|
+
# Does NOT block the commit — it just posts a workflow summary and log warning.
|
|
9
|
+
|
|
10
|
+
name: Branch Guard
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- master
|
|
16
|
+
- main
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
warn-direct-commit:
|
|
23
|
+
runs-on: ubuntu-24.04
|
|
24
|
+
steps:
|
|
25
|
+
- name: Check commit source
|
|
26
|
+
run: |
|
|
27
|
+
# Only trigger warning if commit wasn't from a merge or bot
|
|
28
|
+
if [[ "${{ github.event.head_commit.message }}" != *"Merge pull request"* ]] && \
|
|
29
|
+
[[ "${{ github.actor }}" != "dependabot[bot]" ]]; then
|
|
30
|
+
echo "::warning ::⚠️ Direct commit to ${GITHUB_REF##*/} by $GITHUB_ACTOR."
|
|
31
|
+
echo "### ⚠️ Direct Commit Detected" >> $GITHUB_STEP_SUMMARY
|
|
32
|
+
echo "A commit was pushed directly to \`${GITHUB_REF##*/}\` by **${GITHUB_ACTOR}**." >> $GITHUB_STEP_SUMMARY
|
|
33
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
34
|
+
echo "💡 It's recommended to use pull requests for traceability and CI validation." >> $GITHUB_STEP_SUMMARY
|
|
35
|
+
else
|
|
36
|
+
echo "✅ Merge or bot commit detected — no action needed."
|
|
37
|
+
fi
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# .github/workflows/probely-scan.yml
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro
|
|
6
|
+
|
|
7
|
+
name: Weekly DAST Scan (Probely)
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
schedule:
|
|
11
|
+
- cron: '0 9 * * 2' # Every Tuesday, 9 AM UTC
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
dast-scan:
|
|
16
|
+
runs-on: ubuntu-24.04
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
actions: read
|
|
20
|
+
id-token: none
|
|
21
|
+
|
|
22
|
+
env:
|
|
23
|
+
PROBELY_API_KEY: ${{ secrets.PROBELY_API_KEY }}
|
|
24
|
+
TARGET_ID: 3by8xa6kzArN
|
|
25
|
+
API_BASE: https://api.probely.com/v2 # Always include /v2
|
|
26
|
+
MAX_WAIT_MINUTES: 60 # configurable
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Start Probely Scan
|
|
30
|
+
id: start-scan
|
|
31
|
+
run: |
|
|
32
|
+
echo "🧪 Triggering Probely scan for target $TARGET_ID ..."
|
|
33
|
+
response=$(curl -s -X POST "$API_BASE/targets/$TARGET_ID/scans/" \
|
|
34
|
+
-H "Authorization: JWT $PROBELY_API_KEY" \
|
|
35
|
+
-H "Content-Type: application/json" \
|
|
36
|
+
-d '{}')
|
|
37
|
+
|
|
38
|
+
echo "Raw API response:"
|
|
39
|
+
echo "$response" | jq .
|
|
40
|
+
|
|
41
|
+
scan_id=$(echo "$response" | jq -r '.id // empty')
|
|
42
|
+
|
|
43
|
+
if [ -z "$scan_id" ]; then
|
|
44
|
+
echo "::error ::Failed to start scan — check API key, target ID, or base URL."
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
echo "scan_id=$scan_id" >> $GITHUB_ENV
|
|
49
|
+
echo "✅ Scan started with ID: $scan_id"
|
|
50
|
+
|
|
51
|
+
- name: Wait for Scan Completion
|
|
52
|
+
run: |
|
|
53
|
+
echo "⏳ Waiting for scan $scan_id to complete..."
|
|
54
|
+
elapsed=0
|
|
55
|
+
while [ $elapsed -lt $((MAX_WAIT_MINUTES * 60)) ]; do
|
|
56
|
+
status=$(curl -s "$API_BASE/scans/$scan_id/" \
|
|
57
|
+
-H "Authorization: JWT $PROBELY_API_KEY" | jq -r '.status // empty')
|
|
58
|
+
|
|
59
|
+
echo "⏱️ Status: $status (elapsed $elapsed sec)"
|
|
60
|
+
|
|
61
|
+
if [ "$status" = "completed" ]; then
|
|
62
|
+
echo "✅ Scan completed successfully."
|
|
63
|
+
break
|
|
64
|
+
elif [ "$status" = "failed" ]; then
|
|
65
|
+
echo "::error ::Scan failed."
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
sleep 60
|
|
70
|
+
elapsed=$((elapsed + 60))
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
if [ "$status" != "completed" ]; then
|
|
74
|
+
echo "::error ::Scan did not complete in time ($MAX_WAIT_MINUTES min timeout)."
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
- name: Download Probely HTML Report
|
|
79
|
+
run: |
|
|
80
|
+
echo "📥 Downloading report for scan $scan_id ..."
|
|
81
|
+
curl -s "$API_BASE/scans/$scan_id/report/" \
|
|
82
|
+
-H "Authorization: JWT $PROBELY_API_KEY" \
|
|
83
|
+
-o probely-report.html
|
|
84
|
+
|
|
85
|
+
if [ ! -s probely-report.html ]; then
|
|
86
|
+
echo "::error ::Report file is empty or missing."
|
|
87
|
+
exit 1
|
|
88
|
+
fi
|
|
89
|
+
echo "✅ Report saved as probely-report.html"
|
|
90
|
+
|
|
91
|
+
- name: Upload report artifact
|
|
92
|
+
uses: actions/upload-artifact@v5
|
|
93
|
+
with:
|
|
94
|
+
name: probely-report
|
|
95
|
+
path: probely-report.html
|
|
@@ -19,6 +19,8 @@ jobs:
|
|
|
19
19
|
contents: read
|
|
20
20
|
security-events: write
|
|
21
21
|
issues: write
|
|
22
|
+
env:
|
|
23
|
+
CODEQL_ACTION_ANALYSIS_KEY: gitleaks
|
|
22
24
|
steps:
|
|
23
25
|
# ---------------------------------------------------------------------
|
|
24
26
|
# Checkout the full repo history (needed for Gitleaks to scan all commits)
|
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.24.5]
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Introduced **Branch Guard workflow** (`.github/workflows/branch-guard.yml`) to automatically enforce branch protection policies.
|
|
30
|
+
- Ensures consistent branch naming conventions.
|
|
31
|
+
- Blocks direct pushes to protected branches (e.g., `master`, `main`, and `release/*`).
|
|
32
|
+
- Provides early validation for pull requests and feature branches to maintain repository integrity.
|
|
33
|
+
- Introduced comprehensive pre-push checks for code consistency and style compliance.
|
|
34
|
+
- Added optional `simple-git-hooks` configuration to automate local linting before commits or pushes.
|
|
35
|
+
- Implemented `lint:all` script using `npm-run-all` for efficient, parallel execution of linters.
|
|
36
|
+
- Ensures **ESLint**, **Stylelint**, **Markdownlint**, and **Prettier** all run before code is committed, improving codebase hygiene and preventing formatting drift.
|
|
37
|
+
- Designed for **developer-side speed and reliability**, running linters in parallel while deferring `format` (Prettier) until after lint checks complete for safety.
|
|
38
|
+
- Added **hybrid linting configuration**:
|
|
39
|
+
- Parallel execution for static lint tasks (`eslint`, `stylelint`, `markdownlint`).
|
|
40
|
+
- Sequential Prettier formatting step for deterministic, race-free execution.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Reorganized local linting commands for clarity and consistency, consolidating redundant sequential scripts into the `lint:all` aggregator.
|
|
45
|
+
- Improved developer experience with faster pre-push validations and clearer script naming conventions.
|
|
46
|
+
- Bumped project version to `v1.24.5`.
|
|
47
|
+
|
|
48
|
+
### Developer Experience
|
|
49
|
+
|
|
50
|
+
- Enhanced local development workflow by introducing **fast, parallel linting** and **optional pre-commit hooks**, reducing turnaround time for style and quality checks.
|
|
51
|
+
- Simplified npm scripts for readability and maintainability by adopting `npm-run-all` as the central task runner.
|
|
52
|
+
|
|
53
|
+
### Notes
|
|
54
|
+
|
|
55
|
+
- For instructions on installing and configuring the new dependencies, please see the **[Editor Configuration](https://github.com/netwk-pro/netwk-pro.github.io/wiki/Editor-Configuration#automation)** section of the [Wiki](https://github.com/netwk-pro/netwk-pro.github.io/wiki).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## [1.24.4]
|
|
60
|
+
|
|
61
|
+
### Documentation
|
|
62
|
+
|
|
63
|
+
- Added a **Continuous Security & Dependency Checks** section to `README.md`, outlining the automated vulnerability and dependency analysis integrated into CI/CD workflows.
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- Introduced **non-blocking** `npm audit` **step** in the `build-and-publish.yml` workflow to automatically detect known vulnerabilities during dependency installation.
|
|
68
|
+
- Introduced **[Probely](https://probely.com/) Dynamic Application Security Testing (DAST)** integration via a new GitHub Actions workflow at `.github/workflows/probely-scan.yml`.
|
|
69
|
+
- Executes **weekly automated scans** of the `audit.netwk.pro` environment every Tuesday at 09:00 UTC.
|
|
70
|
+
- Authenticates securely using a scoped **API key** stored in GitHub Secrets (`PROBELY_API_KEY`).
|
|
71
|
+
- Polls the Probely API for scan completion and retrieves the full **HTML vulnerability report**.
|
|
72
|
+
- Uploads reports as workflow **artifacts** for maintainers to review.
|
|
73
|
+
- Includes a 60-minute timeout and supports manual triggering via `workflow_dispatch`.
|
|
74
|
+
- Configured for **read-only testing** against non-production environments to safely identify potential web and API vulnerabilities.
|
|
75
|
+
- Future updates will introduce automated issue creation and alerting for high-severity findings.
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
|
|
79
|
+
- Updated `static/robots.txt` to exclude redirect routes and sensitive/internal endpoints (e.g., `/api`, `/relay-*`, `/consultation`, `/contact`, `/status`, etc.) from automated crawlers and vulnerability scanners.
|
|
80
|
+
- Bumped project version to `v1.24.4`.
|
|
81
|
+
|
|
82
|
+
### Security
|
|
83
|
+
|
|
84
|
+
- Enhanced continuous security coverage through the addition of **Probely DAST** for dynamic web and API vulnerability testing.
|
|
85
|
+
- Maintained and improved **GitLeaks** secret scanning across pull requests and scheduled full-history scans.
|
|
86
|
+
- Together, these workflows now provide full-spectrum coverage across **SAST** (static analysis) and **DAST** (dynamic analysis) layers within the CI/CD pipeline.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## [1.24.3]
|
|
91
|
+
|
|
92
|
+
### Changed
|
|
93
|
+
|
|
94
|
+
- Bumped project version to `v1.24.3`.
|
|
95
|
+
- Updated `.github/workflows/secret-scan.yml` to utilize a unique `CODEQL_ACTION_ANALYSIS_KEY` to avoid conflicts with CodeQL.
|
|
96
|
+
- Updated `static/robots.txt` to disallow crawling of the `/api` route.
|
|
97
|
+
|
|
98
|
+
### Fixed
|
|
99
|
+
|
|
100
|
+
- Corrected naming of `static/7cbb39ce-750b-43da-83b8-8980e5554d4d.txt`.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
25
104
|
## [1.24.2]
|
|
26
105
|
|
|
27
106
|
### Added
|
|
@@ -88,6 +167,12 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
88
167
|
- `globals` `^16.4.0` → `^16.5.0`
|
|
89
168
|
- `posthog-js` `^1.282.0` → `^1.284.0`
|
|
90
169
|
|
|
170
|
+
### Security
|
|
171
|
+
|
|
172
|
+
- Added **automated SAST scanning** via GitLeaks to prevent secrets and credentials from being committed.
|
|
173
|
+
- Implemented **security event reporting** via GitHub’s Code Scanning interface (SARIF upload supported).
|
|
174
|
+
- Configured **automated notifications** for detected leaks via GitHub Issues and optional ntfy alerts.
|
|
175
|
+
|
|
91
176
|
---
|
|
92
177
|
|
|
93
178
|
## [1.23.0] - 2025-10-30
|
|
@@ -199,7 +284,7 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
199
284
|
- Updated the text of `ServicesContent.svelte`.
|
|
200
285
|
- Increased default Playwright test timeouts for navigation-sensitive suites (Desktop and Mobile) to improve stability under CI latency conditions.
|
|
201
286
|
- Implemented `Promise.all()` pattern for combined click and navigation waits, reducing flakiness in route transition tests.
|
|
202
|
-
- Updated the `
|
|
287
|
+
- Updated the `about` link navigation tests in both Desktop and Mobile scenarios to include:
|
|
203
288
|
- Explicit `page.waitForLoadState('domcontentloaded')` calls before assertions.
|
|
204
289
|
- Extended per-suite timeouts (`90s`) using `test.setTimeout(90000)` for reliability on slower environments.
|
|
205
290
|
- Added fallback `waitForURL('\*\*/about', { timeout: 60000 })` to ensure deterministic routing checks.
|
|
@@ -1430,7 +1515,10 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
|
|
|
1430
1515
|
|
|
1431
1516
|
<!-- Link references -->
|
|
1432
1517
|
|
|
1433
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.24.
|
|
1518
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.24.5...HEAD
|
|
1519
|
+
[1.24.5]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.5
|
|
1520
|
+
[1.24.4]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.4
|
|
1521
|
+
[1.24.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.3
|
|
1434
1522
|
[1.24.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.2
|
|
1435
1523
|
[1.24.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.1
|
|
1436
1524
|
[1.24.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.0
|
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ All infrastructure and data flows are designed with **maximum transparency, self
|
|
|
36
36
|
- [Repository Structure](#structure)
|
|
37
37
|
- [Getting Started](#getting-started)
|
|
38
38
|
- [Configuration](#configuration)
|
|
39
|
+
- [Security & Dependency Checks](#security)
|
|
39
40
|
- [Service Worker Utilities](#sw-utilities)
|
|
40
41
|
- [Debug Mode](#debug)
|
|
41
42
|
- [CSP Report Handler](#cspreport)
|
|
@@ -190,8 +191,6 @@ To implement a strict nonce-based CSP in the future:
|
|
|
190
191
|
|
|
191
192
|
Note: Strict CSP adoption may require restructuring third-party integrations and deeper framework coordination.
|
|
192
193
|
|
|
193
|
-
> 💡 The `[headers]` block in `netlify.toml` has been deprecated — all headers are now set dynamically from within SvelteKit.
|
|
194
|
-
|
|
195
194
|
|
|
196
195
|
|
|
197
196
|
### 🧭 `hooks.client.ts`
|
|
@@ -208,6 +207,27 @@ Client-side PWA logic (such as handling the `beforeinstallprompt` event, checkin
|
|
|
208
207
|
|
|
209
208
|
---
|
|
210
209
|
|
|
210
|
+
<section id="security">
|
|
211
|
+
|
|
212
|
+
## 🧩 Continuous Security & Dependency Checks
|
|
213
|
+
|
|
214
|
+
Network Pro™ automatically performs dependency and vulnerability checks as part of its CI/CD pipeline:
|
|
215
|
+
|
|
216
|
+
- **GitLeaks Secret Scanning** — detects potential secrets and credentials in commits, pull requests, and full-history scans.
|
|
217
|
+
- **CodeQL Analysis** — runs static code scanning to detect code-level vulnerabilities.
|
|
218
|
+
- **Probely DAST Scans** — executes weekly external scans on the audit deployment (`audit.netwk.pro`) to identify web application vulnerabilities.
|
|
219
|
+
- **npm Audit** — runs during the build phase to detect known vulnerabilities in installed dependencies (`npm audit --audit-level=moderate`).
|
|
220
|
+
- **Dependabot** — automatically monitors and updates outdated dependencies via pull requests.
|
|
221
|
+
- **ESLint, Prettier, etc. (Local)** — enforces code quality and consistency during local development before commits.
|
|
222
|
+
|
|
223
|
+
Each tool is configured to run in a safe, non-production environment to ensure reliability and protect sensitive data.
|
|
224
|
+
|
|
225
|
+
</section>
|
|
226
|
+
|
|
227
|
+
<sub>[Back to top](#top)</sub>
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
211
231
|
<section id="sw-utilities">
|
|
212
232
|
|
|
213
233
|
## ⚙️ Service Worker Utilities
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.24.
|
|
4
|
+
"version": "1.24.5",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advisory",
|
|
@@ -41,16 +41,16 @@
|
|
|
41
41
|
"build:vercel": "vercel build",
|
|
42
42
|
"preview": "vite preview",
|
|
43
43
|
"css:bundle": "node scripts/bundleCss.js",
|
|
44
|
-
"prepare": "svelte-kit sync || echo ''",
|
|
44
|
+
"prepare": "svelte-kit sync && npx simple-git-hooks || echo ''",
|
|
45
45
|
"check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
|
|
46
46
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
|
|
47
47
|
"type-check": "svelte-check --tsconfig ./jsconfig.json",
|
|
48
48
|
"lint:types": "npm run type-check",
|
|
49
49
|
"check:env": "node scripts/checkEnv.js",
|
|
50
50
|
"check:node": "node scripts/checkNode.js",
|
|
51
|
-
"checkout": "npm
|
|
51
|
+
"checkout": "npm-run-all check:node test:all lint:all check",
|
|
52
52
|
"verify": "npm run checkout",
|
|
53
|
-
"delete": "rm -rf
|
|
53
|
+
"delete": "rm -rf .svelte-kit node_modules package-lock.json",
|
|
54
54
|
"clean": "npm run delete && npm cache clean --force && npm install",
|
|
55
55
|
"upgrade": "ncu -u --format group --color",
|
|
56
56
|
"check:updates": "ncu --format group --color",
|
|
@@ -69,14 +69,18 @@
|
|
|
69
69
|
"lint:jsdoc": "eslint . --ext .js,.cjs,.mjs,.svelte --max-warnings=0",
|
|
70
70
|
"lint:css": "stylelint \"**/*.{css,svelte}\" --ignore-path .stylelintignore",
|
|
71
71
|
"lint:md": "npx markdownlint-cli2 \"**/*.{md,markdown}\" \"#node_modules/**\" \"#playwright-report/**\" \"#test-results/**\"",
|
|
72
|
-
"lint:all": "npm run lint && npm run lint:md && npm run lint:css && npm run format",
|
|
73
72
|
"format": "prettier --check .",
|
|
74
73
|
"format:fix": "prettier --write .",
|
|
74
|
+
"lint:all": "npm-run-all --parallel --print-label lint lint:md lint:css --sequential format",
|
|
75
75
|
"lhci": "lhci",
|
|
76
76
|
"lhci:run": "lhci autorun --config=.lighthouserc.cjs",
|
|
77
77
|
"audit:coverage": "vitest run tests/internal/auditCoverage.test.js",
|
|
78
78
|
"postinstall": "npm run check:node"
|
|
79
79
|
},
|
|
80
|
+
"simple-git-hooks": {
|
|
81
|
+
"pre-commit": "if [ \"$CI\" = \"true\" ]; then exit 0; else npm run lint:all; fi",
|
|
82
|
+
"pre-push": "if [ \"$CI\" = \"true\" ]; then exit 0; else npm run checkout; fi"
|
|
83
|
+
},
|
|
80
84
|
"dependencies": {
|
|
81
85
|
"dompurify": "^3.3.0",
|
|
82
86
|
"posthog-js": "^1.284.0",
|
|
@@ -105,10 +109,12 @@
|
|
|
105
109
|
"lightningcss": "^1.30.2",
|
|
106
110
|
"markdownlint": "^0.39.0",
|
|
107
111
|
"markdownlint-cli2": "^0.18.1",
|
|
112
|
+
"npm-run-all": "^4.1.5",
|
|
108
113
|
"playwright": "^1.56.1",
|
|
109
114
|
"postcss": "^8.5.6",
|
|
110
115
|
"prettier": "3.6.2",
|
|
111
116
|
"prettier-plugin-svelte": "^3.4.0",
|
|
117
|
+
"simple-git-hooks": "^2.13.1",
|
|
112
118
|
"stylelint": "^16.25.0",
|
|
113
119
|
"stylelint-config-html": "^1.1.0",
|
|
114
120
|
"stylelint-config-recommended": "^17.0.0",
|
package/static/robots.txt
CHANGED
|
@@ -17,12 +17,34 @@ Disallow: /coverage/
|
|
|
17
17
|
Disallow: /build/
|
|
18
18
|
Disallow: /.lighthouseci/
|
|
19
19
|
|
|
20
|
-
#
|
|
20
|
+
# --- Dynamic / redirect handlers
|
|
21
|
+
Disallow: /relay-
|
|
22
|
+
Disallow: /api/
|
|
23
|
+
Disallow: /api/mock-csp
|
|
24
|
+
|
|
25
|
+
# --- Stub and form routes
|
|
21
26
|
Disallow: /contact
|
|
22
27
|
Disallow: /privacy-rights
|
|
23
28
|
Disallow: /consultation
|
|
24
29
|
Disallow: /links
|
|
25
30
|
Disallow: /posts
|
|
31
|
+
Disallow: /privacy-rights
|
|
32
|
+
|
|
33
|
+
# --- Error / system routes
|
|
34
|
+
Disallow: /..404
|
|
35
|
+
Disallow: /status
|
|
36
|
+
|
|
37
|
+
# --- Optional: service utilities or PWA
|
|
38
|
+
Disallow: /service-worker
|
|
39
|
+
Disallow: /service-worker.js
|
|
40
|
+
Disallow: /service-worker.d.ts
|
|
41
|
+
|
|
42
|
+
# --- Futureproof catch-alls
|
|
43
|
+
Disallow: /admin
|
|
44
|
+
Disallow: /preview
|
|
45
|
+
Disallow: /redirect
|
|
46
|
+
Disallow: /mock-csp
|
|
47
|
+
Disallow: /csp
|
|
26
48
|
|
|
27
49
|
# Allow everything else
|
|
28
50
|
Allow: /
|
|
File without changes
|