@networkpro/web 1.26.3 → 1.26.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/build-and-publish.yml +3 -3
- package/.github/workflows/check-security-txt-expiry.yml +1 -1
- package/.github/workflows/deploy-audit-netlify.yml +38 -0
- package/.github/workflows/lighthouse.yml +2 -2
- package/.github/workflows/playwright.yml +2 -2
- package/.github/workflows/publish-test.yml +15 -15
- package/.github/workflows/secret-scan.yml +1 -1
- package/.github/workflows/templates/publish.template.yml +3 -3
- package/.vscode/settings.json +1 -1
- package/AGENTS.md +182 -0
- package/CHANGELOG.md +51 -1
- package/CLAUDE.md +2 -0
- package/package.json +13 -13
- package/scripts/hooks/pre-push.sh +18 -0
- package/src/app.html +1 -1
- package/static/sitemap.xml +2 -2
- package/tests/e2e/app.spec.js +4 -1
- package/tests/e2e/shared/helpers.js +13 -11
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
- name: Upgrade npm
|
|
46
46
|
run: |
|
|
47
47
|
corepack enable
|
|
48
|
-
npm install -g npm@11.
|
|
48
|
+
npm install -g npm@11.8.0
|
|
49
49
|
|
|
50
50
|
- name: Install Node.js dependencies
|
|
51
51
|
run: npm ci
|
|
@@ -130,7 +130,7 @@ jobs:
|
|
|
130
130
|
- name: Upgrade npm
|
|
131
131
|
run: |
|
|
132
132
|
corepack enable
|
|
133
|
-
npm install -g npm@11.
|
|
133
|
+
npm install -g npm@11.8.0
|
|
134
134
|
|
|
135
135
|
- name: Install Node.js dependencies
|
|
136
136
|
run: npm ci
|
|
@@ -186,7 +186,7 @@ jobs:
|
|
|
186
186
|
- name: Upgrade npm
|
|
187
187
|
run: |
|
|
188
188
|
corepack enable
|
|
189
|
-
npm install -g npm@11.
|
|
189
|
+
npm install -g npm@11.8.0
|
|
190
190
|
|
|
191
191
|
- name: Install Node.js dependencies
|
|
192
192
|
run: npm ci
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# .github/workflows/deploy-audit-netlify.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: Deploy Audit to Netlify
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- audit-netlify
|
|
13
|
+
workflow_dispatch: {}
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
deploy:
|
|
20
|
+
runs-on: ubuntu-24.04
|
|
21
|
+
env:
|
|
22
|
+
ENV_MODE: audit
|
|
23
|
+
PUBLIC_ENV_MODE: audit
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
|
|
28
|
+
- uses: actions/setup-node@v6
|
|
29
|
+
with:
|
|
30
|
+
node-version: 22
|
|
31
|
+
cache: npm
|
|
32
|
+
cache-dependency-path: package-lock.json
|
|
33
|
+
|
|
34
|
+
- name: Install Dependencies
|
|
35
|
+
run: npm ci
|
|
36
|
+
|
|
37
|
+
- name: Build in Audit Mode
|
|
38
|
+
run: npm run build:audit
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
- name: Upgrade npm
|
|
50
50
|
run: |
|
|
51
51
|
corepack enable
|
|
52
|
-
npm install -g npm@11.
|
|
52
|
+
npm install -g npm@11.8.0
|
|
53
53
|
|
|
54
54
|
- name: Clean previous Lighthouse reports
|
|
55
55
|
run: |
|
|
@@ -152,7 +152,7 @@ jobs:
|
|
|
152
152
|
run: ls -al .lighthouseci
|
|
153
153
|
|
|
154
154
|
- name: Upload full .lighthouseci output
|
|
155
|
-
uses: actions/upload-artifact@
|
|
155
|
+
uses: actions/upload-artifact@v6
|
|
156
156
|
with:
|
|
157
157
|
name: lighthouse-reports
|
|
158
158
|
path: .lighthouseci/
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
- name: Upgrade npm
|
|
42
42
|
run: |
|
|
43
43
|
corepack enable
|
|
44
|
-
npm install -g npm@11.
|
|
44
|
+
npm install -g npm@11.8.0
|
|
45
45
|
|
|
46
46
|
- name: Install Node.js dependencies
|
|
47
47
|
run: npm ci
|
|
@@ -57,7 +57,7 @@ jobs:
|
|
|
57
57
|
|
|
58
58
|
- name: Upload Playwright report
|
|
59
59
|
if: always()
|
|
60
|
-
uses: actions/upload-artifact@
|
|
60
|
+
uses: actions/upload-artifact@v6
|
|
61
61
|
with:
|
|
62
62
|
name: playwright-report
|
|
63
63
|
path: playwright-report/
|
|
@@ -40,15 +40,15 @@ jobs:
|
|
|
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: |
|
|
50
50
|
corepack enable
|
|
51
|
-
npm install -g npm@11.
|
|
51
|
+
npm install -g npm@11.8.0
|
|
52
52
|
|
|
53
53
|
- name: Install Node.js dependencies
|
|
54
54
|
run: npm ci
|
|
@@ -126,15 +126,15 @@ jobs:
|
|
|
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: |
|
|
136
136
|
corepack enable
|
|
137
|
-
npm install -g npm@11.
|
|
137
|
+
npm install -g npm@11.8.0
|
|
138
138
|
|
|
139
139
|
- name: Install Node.js dependencies
|
|
140
140
|
run: npm ci
|
|
@@ -187,15 +187,15 @@ jobs:
|
|
|
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: |
|
|
197
197
|
corepack enable
|
|
198
|
-
npm install -g npm@11.
|
|
198
|
+
npm install -g npm@11.8.0
|
|
199
199
|
|
|
200
200
|
- name: Install Node.js dependencies
|
|
201
201
|
run: npm ci
|
|
@@ -96,7 +96,7 @@ jobs:
|
|
|
96
96
|
# ---------------------------------------------------------------------
|
|
97
97
|
- name: Create issue for detected secrets
|
|
98
98
|
if: failure() && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
|
|
99
|
-
uses: actions/github-script@
|
|
99
|
+
uses: actions/github-script@v8
|
|
100
100
|
with:
|
|
101
101
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
102
102
|
script: |
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
- name: Upgrade npm
|
|
54
54
|
run: |
|
|
55
55
|
corepack enable
|
|
56
|
-
npm install -g npm@11.
|
|
56
|
+
npm install -g npm@11.8.0
|
|
57
57
|
|
|
58
58
|
- name: Install Node.js dependencies
|
|
59
59
|
run: npm ci
|
|
@@ -134,7 +134,7 @@ jobs:
|
|
|
134
134
|
- name: Upgrade npm
|
|
135
135
|
run: |
|
|
136
136
|
corepack enable
|
|
137
|
-
npm install -g npm@11.
|
|
137
|
+
npm install -g npm@11.8.0
|
|
138
138
|
|
|
139
139
|
- name: Install Node.js dependencies
|
|
140
140
|
run: npm ci
|
|
@@ -190,7 +190,7 @@ jobs:
|
|
|
190
190
|
- name: Upgrade npm
|
|
191
191
|
run: |
|
|
192
192
|
corepack enable
|
|
193
|
-
npm install -g npm@11.
|
|
193
|
+
npm install -g npm@11.8.0
|
|
194
194
|
|
|
195
195
|
- name: Install Node.js dependencies
|
|
196
196
|
run: npm ci
|
package/.vscode/settings.json
CHANGED
package/AGENTS.md
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This file defines **operational guidance for automated agents** (e.g., Codex,
|
|
4
|
+
Claude Code, CI bots) working in this repository. It is intentionally
|
|
5
|
+
tool-neutral.
|
|
6
|
+
|
|
7
|
+
For deeper project context, architecture notes, and AI-specific guidance, see
|
|
8
|
+
`CLAUDE.md`.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Agents are welcome here to accelerate development, testing, and maintenance —
|
|
15
|
+
**without compromising security, privacy, or deployment correctness**.
|
|
16
|
+
|
|
17
|
+
This repo has intentionally strict security controls (CSP, audit mode behavior,
|
|
18
|
+
analytics gating) and a multi-environment deployment model. Agents must treat
|
|
19
|
+
these as **invariants** unless a human explicitly approves changes.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Agent workflow (persona)
|
|
24
|
+
|
|
25
|
+
- Prefer minimal diffs; avoid sweeping refactors unless requested.
|
|
26
|
+
- Be explicit about tradeoffs and risks; don’t guess about CI/deploy behavior.
|
|
27
|
+
- Preserve behavior by default; if a change alters behavior, call it out explicitly.
|
|
28
|
+
- Preserve invariants: env detection, CSP, audit-mode guarantees, analytics gating.
|
|
29
|
+
- If unsure, ask a single targeted question or leave a TODO rather than inventing.
|
|
30
|
+
- Optimize for reproducibility: commands that work locally and in CI.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Quick Commands
|
|
35
|
+
|
|
36
|
+
Use these commands as the “happy path” for local and CI-like validation:
|
|
37
|
+
|
|
38
|
+
### Development
|
|
39
|
+
|
|
40
|
+
- `npm run dev` — start dev server
|
|
41
|
+
- `npm run dev:audit` — dev server in audit mode (hardened CSP, no analytics)
|
|
42
|
+
- `npm run preview` — preview production build locally
|
|
43
|
+
|
|
44
|
+
### Build
|
|
45
|
+
|
|
46
|
+
- `npm run build` — production build
|
|
47
|
+
- `npm run build:audit` — audit build (hardened CSP)
|
|
48
|
+
|
|
49
|
+
### Tests
|
|
50
|
+
|
|
51
|
+
- `npm run test:all` — unit tests (client + server)
|
|
52
|
+
- `npm run test:e2e` — Playwright E2E tests (with 1 retry)
|
|
53
|
+
- `npm run lhci:run` — Lighthouse CI audits
|
|
54
|
+
|
|
55
|
+
### Lint / Format
|
|
56
|
+
|
|
57
|
+
- `npm run lint:all`
|
|
58
|
+
- `npm run lint:fix`
|
|
59
|
+
- `npm run format:fix`
|
|
60
|
+
|
|
61
|
+
### Full Verification
|
|
62
|
+
|
|
63
|
+
- `npm run checkout` (alias: `npm run verify`)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Guardrails (Strict, but Practical)
|
|
68
|
+
|
|
69
|
+
### Environment and security invariants
|
|
70
|
+
|
|
71
|
+
Agents MUST NOT change the following without explicit human approval:
|
|
72
|
+
|
|
73
|
+
- **Environment detection logic** (notably `src/lib/utils/env.js`) or introduce
|
|
74
|
+
new environment modes.
|
|
75
|
+
- **Content Security Policy** generation/behavior (`src/hooks.server.js`) in a
|
|
76
|
+
way that weakens enforcement.
|
|
77
|
+
- **Audit-mode guarantees**: audit must remain hardened (no analytics, no
|
|
78
|
+
external reporting, strict CSP).
|
|
79
|
+
- **Analytics gating**: tracking must remain consent-based and
|
|
80
|
+
environment-aware.
|
|
81
|
+
- **Service worker exclusions**: analytics domains must not be cached; SW bypass
|
|
82
|
+
behavior must remain intact.
|
|
83
|
+
|
|
84
|
+
If a task requires touching any of the above, stop and ask for confirmation.
|
|
85
|
+
|
|
86
|
+
### Deployment and CI/CD accuracy
|
|
87
|
+
|
|
88
|
+
Agents MUST NOT invent deployment behavior. The current model is:
|
|
89
|
+
|
|
90
|
+
- **Production**: Vercel builds/deploys on merges to `master` (Vercel-managed).
|
|
91
|
+
- **Audit**: Netlify deploy driven by a branch-scoped GitHub Actions workflow
|
|
92
|
+
(`audit-netlify` branch only).
|
|
93
|
+
|
|
94
|
+
If a change would affect build/deploy behavior, document assumptions and ask for
|
|
95
|
+
confirmation.
|
|
96
|
+
|
|
97
|
+
If referencing a workflow/config, point to the exact file path and branch it lives on.
|
|
98
|
+
|
|
99
|
+
### Secrets and sensitive data
|
|
100
|
+
|
|
101
|
+
- Do **not** commit secrets, tokens, keys, or credentials.
|
|
102
|
+
- `.env*` files must remain purpose-separated. Only non-sensitive, commit-safe
|
|
103
|
+
env files belong in git.
|
|
104
|
+
- If secrets are required for a task, request them via the tool’s secret
|
|
105
|
+
mechanism and use placeholders in committed files.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Allowed Agent Work
|
|
110
|
+
|
|
111
|
+
Agents MAY do the following without additional approval (assuming guardrails are
|
|
112
|
+
respected):
|
|
113
|
+
|
|
114
|
+
- Explain code and architecture; summarize behavior and risks.
|
|
115
|
+
- Implement **incremental** features or routes that follow existing patterns.
|
|
116
|
+
- Fix bugs and reduce flakiness in tests using minimal, targeted changes.
|
|
117
|
+
- For SPA E2E tests, prefer URL polling + page-ready assertions over navigation lifecycle waits.
|
|
118
|
+
- Add/extend unit tests or E2E tests consistent with current test architecture.
|
|
119
|
+
- Refactor for clarity **without changing behavior** (especially in security/env
|
|
120
|
+
paths).
|
|
121
|
+
- Improve documentation, comments, and JSDoc.
|
|
122
|
+
- Propose dependency updates, with a short rationale and any expected impact.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Sensitive Areas (Ask Before Major Changes)
|
|
127
|
+
|
|
128
|
+
These areas are high-impact. Changes are allowed, but require extra care and
|
|
129
|
+
usually a quick human check:
|
|
130
|
+
|
|
131
|
+
- `src/lib/utils/env.js` (environment resolution)
|
|
132
|
+
- `src/hooks.server.js` (CSP / security headers)
|
|
133
|
+
- `src/service-worker.js` and SW registration logic
|
|
134
|
+
- `src/lib/stores/posthog.js` and analytics init/gating
|
|
135
|
+
- Auth, redirects, proxy/relay routes under `src/routes/relay-*`
|
|
136
|
+
- Build tooling (`vite.config.js`, `svelte.config.js`, CI workflows, deploy
|
|
137
|
+
scripts)
|
|
138
|
+
|
|
139
|
+
When editing these, prefer:
|
|
140
|
+
|
|
141
|
+
- minimal diffs
|
|
142
|
+
- explicit control flow
|
|
143
|
+
- comments describing intent and risk
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## What “Done” Means for Agent Work
|
|
148
|
+
|
|
149
|
+
Before claiming a task is complete, agents should:
|
|
150
|
+
|
|
151
|
+
1. Ensure changes are minimal and aligned with existing patterns.
|
|
152
|
+
2. Run (or at least recommend running) appropriate checks:
|
|
153
|
+
- `npm run lint:all`
|
|
154
|
+
- `npm run test:all`
|
|
155
|
+
- `npm run test:e2e` (if UI/routes are affected)
|
|
156
|
+
- `npm run build` (if build/runtime behavior is affected)
|
|
157
|
+
3. Include a short summary:
|
|
158
|
+
- what changed
|
|
159
|
+
- why it changed
|
|
160
|
+
- risk/impact (especially CSP/env/analytics)
|
|
161
|
+
- any follow-ups or TODOs
|
|
162
|
+
|
|
163
|
+
If tests are flaky, call it out explicitly and propose stabilization steps
|
|
164
|
+
rather than masking failures.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Notes for Cloud / Ephemeral Runners
|
|
169
|
+
|
|
170
|
+
Many agents run in ephemeral environments. To keep builds reproducible:
|
|
171
|
+
|
|
172
|
+
- Do not assume local files exist unless they are committed.
|
|
173
|
+
- Prefer deterministic commands (`npm ci` when appropriate to lockfile policy).
|
|
174
|
+
- Avoid relying on interactive prompts.
|
|
175
|
+
- If environment variables are required, document them and provide safe defaults
|
|
176
|
+
where possible.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## References
|
|
181
|
+
|
|
182
|
+
- `CLAUDE.md` — authoritative AI guidance and deeper repository context.
|
package/CHANGELOG.md
CHANGED
|
@@ -24,6 +24,54 @@ version increments reflecting both user-visible and operational impact.
|
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
+
## [1.26.5]
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- `scripts/hooks/pre-push.sh`: `simple-git-hooks` pre-push guard to prevent accidental pushes directly to `master`/`main` while preserving the existing `npm run checkout` pre-push behavior.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `.github/workflows/deploy-audit-netlify.yml`: Added `workflow_dispatch` so the audit Netlify deployment can be triggered manually (e.g., when `audit-netlify` is already in sync and no new push occurs).
|
|
36
|
+
- `package.json`: Updated `simple-git-hooks` configuration to run `bash scripts/hooks/pre-push.sh` on `pre-push` (alongside the existing `pre-commit` hook).
|
|
37
|
+
- Bumped project version to `v1.26.5`.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## [1.26.4] - 2026-01-24
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- Added `AGENTS.md` to provide operational, tool-neutral guidance for automated agents.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- **Workflow tooling updates** to keep CI aligned with upstream releases:
|
|
50
|
+
- `npm` upgraded to `11.8.0` across build/test/publish workflows.
|
|
51
|
+
- `actions/checkout` `v5` → `v6`, `actions/upload-artifact` `v4` → `v6`, and `actions/github-script` `v7` → `v8`.
|
|
52
|
+
- Restored Node.js/npm version logging in `publish-test` workflow jobs.
|
|
53
|
+
- **Documentation note added** in `CLAUDE.md` to point automation tools to `AGENTS.md`.
|
|
54
|
+
- **Playwright E2E stabilization** (Firefox + SvelteKit SPA navigation):
|
|
55
|
+
- Updated the shared navigation helper (`tests/e2e/shared/helpers.js`) to prefer SPA-safe URL-change waiting (polling assertions) over navigation lifecycle events, improving Firefox stability.
|
|
56
|
+
- Strengthened the desktop “About link” test (`tests/e2e/app.spec.js`) with a stable `/about` page marker assertion (`"Security, with Intent"`) to reduce intermittent flakes.
|
|
57
|
+
- Refreshed timestamp for root route in `static/sitemap.xml`.
|
|
58
|
+
- Updated generator metadata in `src/app.html` to reflect **SvelteKit 2.50.1**.
|
|
59
|
+
- **Project version bumped** to `v1.26.4`.
|
|
60
|
+
- Updated dependencies:
|
|
61
|
+
- `@sveltejs/adapter-vercel` `^6.3.0` → `^6.3.1`
|
|
62
|
+
- `@sveltejs/kit` `2.50.0` → `2.50.1`
|
|
63
|
+
- `@vitest/coverage-v8` `4.0.17` → `4.0.18`
|
|
64
|
+
- `svelte` `5.48.0` → `5.48.2`
|
|
65
|
+
- `vite-tsconfig-paths` `^6.0.4` → `^6.0.5`
|
|
66
|
+
- `vitest` `4.0.17` → `4.0.18`
|
|
67
|
+
- `@playwright/test` `^1.57.0` → `^1.58.0`
|
|
68
|
+
- `eslint-plugin-jsdoc` `^62.3.0` → `^62.4.1`
|
|
69
|
+
- `globals` `^17.0.0` → `^17.1.0`
|
|
70
|
+
- `playwright` `^1.57.0` → `^1.58.0`
|
|
71
|
+
- `posthog-js` `^1.334.0` → `^1.335.2`
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
27
75
|
## [1.26.3] - 2026-01-21
|
|
28
76
|
|
|
29
77
|
### Added
|
|
@@ -2277,7 +2325,9 @@ This enables analytics filtering and CSP hardening for the audit environment.
|
|
|
2277
2325
|
|
|
2278
2326
|
<!-- Link references -->
|
|
2279
2327
|
|
|
2280
|
-
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.26.
|
|
2328
|
+
[Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.26.5...HEAD
|
|
2329
|
+
[1.26.5]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.5
|
|
2330
|
+
[1.26.4]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.4
|
|
2281
2331
|
[1.26.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.3
|
|
2282
2332
|
[1.26.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.2
|
|
2283
2333
|
[1.26.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.26.1
|
package/CLAUDE.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
4
|
|
|
5
|
+
For tool-neutral operational guidance for automated agents (e.g., Codex, CI bots), see `AGENTS.md`.
|
|
6
|
+
|
|
5
7
|
<!-- markdownlint-disable -->
|
|
6
8
|
|
|
7
9
|
## Project Overview
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.26.
|
|
4
|
+
"version": "1.26.5",
|
|
5
5
|
"description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"advocacy",
|
|
@@ -86,40 +86,40 @@
|
|
|
86
86
|
},
|
|
87
87
|
"simple-git-hooks": {
|
|
88
88
|
"pre-commit": "if [ \"$CI\" = \"true\" ]; then exit 0; else npm run lint:all; fi",
|
|
89
|
-
"pre-push": "
|
|
89
|
+
"pre-push": "bash scripts/hooks/pre-push.sh"
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
92
|
"dompurify": "^3.3.1",
|
|
93
|
-
"posthog-js": "^1.
|
|
93
|
+
"posthog-js": "^1.335.2",
|
|
94
94
|
"semver": "^7.7.3",
|
|
95
|
-
"svelte": "5.48.
|
|
95
|
+
"svelte": "5.48.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
98
|
"@eslint/compat": "^2.0.1",
|
|
99
99
|
"@eslint/js": "^9.39.2",
|
|
100
100
|
"@lhci/cli": "^0.15.1",
|
|
101
|
-
"@playwright/test": "^1.
|
|
101
|
+
"@playwright/test": "^1.58.0",
|
|
102
102
|
"@sveltejs/adapter-netlify": "^5.2.4",
|
|
103
|
-
"@sveltejs/adapter-vercel": "^6.3.
|
|
104
|
-
"@sveltejs/kit": "2.50.
|
|
103
|
+
"@sveltejs/adapter-vercel": "^6.3.1",
|
|
104
|
+
"@sveltejs/kit": "2.50.1",
|
|
105
105
|
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
106
106
|
"@testing-library/jest-dom": "^6.9.1",
|
|
107
107
|
"@testing-library/svelte": "^5.3.1",
|
|
108
|
-
"@vitest/coverage-v8": "4.0.
|
|
108
|
+
"@vitest/coverage-v8": "4.0.18",
|
|
109
109
|
"autoprefixer": "^10.4.23",
|
|
110
110
|
"browserslist": "^4.28.1",
|
|
111
111
|
"eslint": "^9.39.2",
|
|
112
112
|
"eslint-config-prettier": "^10.1.8",
|
|
113
|
-
"eslint-plugin-jsdoc": "^62.
|
|
113
|
+
"eslint-plugin-jsdoc": "^62.4.1",
|
|
114
114
|
"eslint-plugin-svelte": "^3.14.0",
|
|
115
|
-
"globals": "^17.
|
|
115
|
+
"globals": "^17.1.0",
|
|
116
116
|
"globby": "^16.1.0",
|
|
117
117
|
"jsdom": "27.4.0",
|
|
118
118
|
"lightningcss": "^1.31.1",
|
|
119
119
|
"markdownlint": "^0.40.0",
|
|
120
120
|
"markdownlint-cli2": "0.20.0",
|
|
121
121
|
"npm-run-all": "^4.1.5",
|
|
122
|
-
"playwright": "^1.
|
|
122
|
+
"playwright": "^1.58.0",
|
|
123
123
|
"postcss": "^8.5.6",
|
|
124
124
|
"prettier": "3.8.1",
|
|
125
125
|
"prettier-plugin-svelte": "^3.4.1",
|
|
@@ -135,8 +135,8 @@
|
|
|
135
135
|
"vite": "^7.3.1",
|
|
136
136
|
"vite-plugin-devtools-json": "^1.0.0",
|
|
137
137
|
"vite-plugin-lightningcss": "^0.0.5",
|
|
138
|
-
"vite-tsconfig-paths": "^6.0.
|
|
139
|
-
"vitest": "4.0.
|
|
138
|
+
"vite-tsconfig-paths": "^6.0.5",
|
|
139
|
+
"vitest": "4.0.18"
|
|
140
140
|
},
|
|
141
141
|
"overrides": {
|
|
142
142
|
"cookie": "^1.0.0",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025-2026 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
|
+
set -e
|
|
7
|
+
|
|
8
|
+
# Don't run local hooks in CI
|
|
9
|
+
[ "${CI:-}" = "true" ] && exit 0
|
|
10
|
+
|
|
11
|
+
branch="$(git rev-parse --abbrev-ref HEAD)"
|
|
12
|
+
if [[ "$branch" == "master" || "$branch" == "main" ]]; then
|
|
13
|
+
echo "❌ Refusing to push directly to $branch (use a PR)."
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# Existing behavior
|
|
18
|
+
npm run checkout
|
package/src/app.html
CHANGED
package/static/sitemap.xml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!-- Sitemap last updated 2026-01-
|
|
2
|
+
<!-- Sitemap last updated 2026-01-24 -->
|
|
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>2026-01-
|
|
10
|
+
<lastmod>2026-01-24</lastmod>
|
|
11
11
|
|
|
12
12
|
<changefreq>weekly</changefreq>
|
|
13
13
|
|
package/tests/e2e/app.spec.js
CHANGED
|
@@ -69,7 +69,10 @@ test.describe('Desktop Tests', () => {
|
|
|
69
69
|
timeout: 60000,
|
|
70
70
|
});
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
// ✅ “ready” assertion to eliminate flake (SPA + Firefox)
|
|
73
|
+
await expect(
|
|
74
|
+
page.getByRole('heading', { name: 'Security, with Intent' }),
|
|
75
|
+
).toBeVisible();
|
|
73
76
|
});
|
|
74
77
|
}); // End Desktop Tests
|
|
75
78
|
|
|
@@ -14,6 +14,8 @@ This file is part of Network Pro.
|
|
|
14
14
|
* @updated 2025-11-12
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { expect } from '@playwright/test';
|
|
18
|
+
|
|
17
19
|
const DEBUG_LOGS = false; // set to true to enable console logs
|
|
18
20
|
|
|
19
21
|
/**
|
|
@@ -88,28 +90,28 @@ export function getFooter(page) {
|
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
/**
|
|
91
|
-
*
|
|
93
|
+
* Clicks a locator and waits for a URL change (SPA-safe).
|
|
94
|
+
* This avoids relying on navigation lifecycle events (load/domcontentloaded),
|
|
95
|
+
* which can be flaky or aborted in SPA routing (notably in Firefox).
|
|
92
96
|
*
|
|
93
97
|
* @param {import('@playwright/test').Page} page
|
|
94
98
|
* @param {import('@playwright/test').Locator} locator
|
|
95
|
-
* @param {{ urlPattern?:
|
|
99
|
+
* @param {{ urlPattern?: RegExp, timeout?: number }} [options]
|
|
100
|
+
* @returns {Promise<void>}
|
|
96
101
|
*/
|
|
97
102
|
export async function clickAndWaitForNavigation(page, locator, options = {}) {
|
|
98
103
|
const { urlPattern = /\/.*/, timeout = 60000 } = options;
|
|
99
104
|
|
|
100
105
|
await locator.scrollIntoViewIfNeeded();
|
|
101
|
-
await locator.waitFor({ state: 'visible', timeout
|
|
106
|
+
await locator.waitFor({ state: 'visible', timeout });
|
|
102
107
|
|
|
103
108
|
const previousURL = page.url();
|
|
104
109
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
{ timeout },
|
|
110
|
-
),
|
|
111
|
-
locator.click().then(() => page.url()),
|
|
112
|
-
]);
|
|
110
|
+
await locator.click();
|
|
111
|
+
|
|
112
|
+
// SPA-stable URL wait (polling) — does not depend on navigation lifecycle
|
|
113
|
+
await expect(page).toHaveURL(urlPattern, { timeout });
|
|
113
114
|
|
|
115
|
+
const newURL = page.url();
|
|
114
116
|
console.log(`✅ Navigation from ${previousURL} → ${newURL}`);
|
|
115
117
|
}
|