@networkpro/web 1.19.0 → 1.20.0
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 +5 -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 +5 -4
- package/.github/workflows/templates/publish.template.yml +5 -4
- package/CHANGELOG.md +82 -1
- package/cspell.json +3 -0
- package/package.json +16 -16
- package/scripts/auditScripts.js +1 -1
- package/scripts/bundleCss.js +1 -1
- package/scripts/checkEnv.js +1 -1
- package/scripts/checkNode.js +1 -1
- package/scripts/checkVersions.js +1 -1
- package/scripts/generateTest.js +1 -1
- package/scripts/openReport.js +1 -1
- package/src/app.html +3 -6
- package/src/hooks.server.js +10 -7
- package/src/lib/components/ServiceSummaryTable.svelte +113 -0
- package/src/lib/components/index.js +2 -1
- package/src/lib/components/layout/HeaderDefault.svelte +3 -1
- package/src/lib/components/layout/HeaderHome.svelte +6 -5
- package/src/lib/images.js +1 -1
- package/src/lib/index.js +2 -2
- package/src/lib/meta.js +14 -9
- package/src/lib/pages/AboutContent.svelte +26 -10
- package/src/lib/pages/HomeContent.svelte +11 -1
- package/src/lib/pages/LicenseContent.svelte +3 -3
- package/src/lib/pages/PrivacyContent.svelte +31 -1
- package/src/lib/pages/ServicesContent.svelte +545 -0
- package/src/lib/pages/index.js +2 -1
- package/src/lib/stores/posthog.js +2 -1
- package/src/lib/styles/css/default.css +88 -0
- package/src/lib/styles/global.min.css +1 -3
- package/src/lib/types/appConstants.js +1 -1
- package/src/lib/types/fossTypes.js +1 -1
- package/src/lib/utils/getUTMParams.js +1 -1
- package/src/lib/utils/purify.js +1 -1
- package/src/lib/utils/redirect.js +1 -1
- package/src/lib/utils/utm.js +2 -2
- package/src/routes/+layout.svelte +0 -2
- package/src/routes/consultation/+page.svelte +1 -1
- package/src/routes/services/+page.server.js +18 -0
- package/src/routes/services/+page.svelte +65 -0
- package/src/routes/status/+page.server.js +1 -1
- package/src/service-worker.js +2 -2
- package/static/bin/contact.vcf +1 -2
- package/static/disableSw.js +1 -1
- package/static/sitemap.xml +17 -5
- package/tests/e2e/app.spec.js +1 -1
- package/tests/e2e/mobile.spec.js +1 -1
- package/tests/e2e/shared/helpers.js +1 -1
- package/tests/meta/meta.test.js +1 -1
- package/tests/unit/client/lib/PWAInstallButton.test.js +1 -1
- package/tests/unit/client/lib/utils/redirect.test.js +1 -1
- package/tests/unit/server/internal/auditCoverage.test.js +1 -1
- package/tests/unit/server/lib/utils/purify.test.js +1 -1
- package/tests/unit/server/meta.test.js +1 -1
- package/vercel.json +12 -0
|
@@ -15,12 +15,12 @@ This file is part of Network Pro.
|
|
|
15
15
|
|
|
16
16
|
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
17
17
|
|
|
18
|
-
const { PAGE } = CONSTANTS;
|
|
18
|
+
const { PAGE, LINKS } = CONSTANTS;
|
|
19
19
|
|
|
20
20
|
const aboutLink = `${base}/about`;
|
|
21
21
|
const fossLink = `${base}/foss-spotlight`;
|
|
22
|
+
const servLink = `${base}/services`;
|
|
22
23
|
const lhubLink = `${base}/links`;
|
|
23
|
-
const blogLink = 'https://blog.netwk.pro';
|
|
24
24
|
const discussLink =
|
|
25
25
|
'https://github.com/netwk-pro/netwk-pro.github.io/discussions';
|
|
26
26
|
|
|
@@ -40,13 +40,14 @@ This file is part of Network Pro.
|
|
|
40
40
|
*/
|
|
41
41
|
const nav = [
|
|
42
42
|
{ label: 'about', href: aboutLink, target: PAGE.SELF, external: false },
|
|
43
|
-
{ label: '
|
|
43
|
+
{ label: 'services', href: servLink, target: PAGE.SELF, external: false },
|
|
44
44
|
{
|
|
45
45
|
label: 'blog',
|
|
46
|
-
href:
|
|
46
|
+
href: LINKS.BLOG,
|
|
47
47
|
target: PAGE.SELF,
|
|
48
48
|
external: false,
|
|
49
49
|
},
|
|
50
|
+
{ label: 'foss', href: fossLink, target: PAGE.SELF, external: false },
|
|
50
51
|
{
|
|
51
52
|
label: 'discussions',
|
|
52
53
|
href: discussLink,
|
|
@@ -95,4 +96,4 @@ This file is part of Network Pro.
|
|
|
95
96
|
</nav>
|
|
96
97
|
<!-- END HOME HEADER -->
|
|
97
98
|
|
|
98
|
-
<!-- cspell:ignore lhub -->
|
|
99
|
+
<!-- cspell:ignore lhub servLink -->
|
package/src/lib/images.js
CHANGED
package/src/lib/index.js
CHANGED
|
@@ -15,8 +15,8 @@ This file is part of Network Pro.
|
|
|
15
15
|
* Components, images, and utilities are organized in submodules
|
|
16
16
|
* and re-exported here for flat `$lib` imports.
|
|
17
17
|
* @module src/lib
|
|
18
|
-
* @author
|
|
19
|
-
* @updated 2025-10-
|
|
18
|
+
* @author Scott Lopez
|
|
19
|
+
* @updated 2025-10-10
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
// Re-export all images so they can be imported directly from `$lib`
|
package/src/lib/meta.js
CHANGED
|
@@ -20,46 +20,51 @@ const meta = {
|
|
|
20
20
|
title:
|
|
21
21
|
'Security, Networking, Privacy — Network Pro Strategies',
|
|
22
22
|
description:
|
|
23
|
-
'Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro
|
|
23
|
+
'Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies',
|
|
24
24
|
},
|
|
25
25
|
'/about': {
|
|
26
26
|
title: 'About Us — Network Pro™',
|
|
27
|
-
description: 'About Us | Security, Networking, Privacy — Network Pro
|
|
27
|
+
description: 'About Us | Security, Networking, Privacy — Network Pro Strategies',
|
|
28
28
|
},
|
|
29
29
|
'/privacy': {
|
|
30
30
|
title: 'Privacy Policy — Network Pro™',
|
|
31
31
|
description:
|
|
32
|
-
'Privacy Policy | Security, Networking, Privacy — Network Pro
|
|
32
|
+
'Privacy Policy | Security, Networking, Privacy — Network Pro Strategies',
|
|
33
33
|
},
|
|
34
34
|
'/terms-of-use': {
|
|
35
35
|
title: 'Website Terms of Use — Network Pro™',
|
|
36
36
|
description:
|
|
37
|
-
'Website Terms of Use | Security, Networking, Privacy — Network Pro
|
|
37
|
+
'Website Terms of Use | Security, Networking, Privacy — Network Pro Strategies',
|
|
38
38
|
},
|
|
39
39
|
'/license': {
|
|
40
40
|
title: 'Legal, Copyright, and Licensing — Network Pro™',
|
|
41
41
|
description:
|
|
42
|
-
'Legal, Copyright, and Licensing | Security, Networking, Privacy — Network Pro
|
|
42
|
+
'Legal, Copyright, and Licensing | Security, Networking, Privacy — Network Pro Strategies',
|
|
43
43
|
},
|
|
44
44
|
'/terms-conditions': {
|
|
45
45
|
title: 'Consulting Terms and Conditions — Network Pro™',
|
|
46
46
|
description:
|
|
47
|
-
'Terms and Conditions | Security, Networking, Privacy — Network Pro
|
|
47
|
+
'Terms and Conditions | Security, Networking, Privacy — Network Pro Strategies',
|
|
48
48
|
},
|
|
49
49
|
'/foss-spotlight': {
|
|
50
50
|
title: 'FOSS Spotlight — Network Pro™',
|
|
51
51
|
description:
|
|
52
|
-
'FOSS Spotlight | Security, Networking, Privacy — Network Pro
|
|
52
|
+
'FOSS Spotlight | Security, Networking, Privacy — Network Pro Strategies',
|
|
53
53
|
},
|
|
54
54
|
'/privacy-dashboard': {
|
|
55
55
|
title: 'Privacy Dashboard — Network Pro™',
|
|
56
56
|
description:
|
|
57
|
-
'Privacy Dashboard | Security, Networking, Privacy — Network Pro
|
|
57
|
+
'Privacy Dashboard | Security, Networking, Privacy — Network Pro Strategies',
|
|
58
58
|
},
|
|
59
59
|
'/pgp': {
|
|
60
60
|
title: 'Public PGP Keys — Network Pro™',
|
|
61
61
|
description:
|
|
62
|
-
'Public encryption keys for secure communication | Security, Networking, Privacy — Network Pro
|
|
62
|
+
'Public encryption keys for secure communication | Security, Networking, Privacy — Network Pro Strategies',
|
|
63
|
+
},
|
|
64
|
+
'/services': {
|
|
65
|
+
title: "On-Site Services - Network Pro™",
|
|
66
|
+
description:
|
|
67
|
+
'On-Site Services | Security, Networking, Privacy — Network Pro Strategies'
|
|
63
68
|
},
|
|
64
69
|
// Excludes redirect-only routes like /contact, /consultation, /privacy-rights
|
|
65
70
|
};
|
|
@@ -23,7 +23,7 @@ This file is part of Network Pro.
|
|
|
23
23
|
|
|
24
24
|
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
25
25
|
|
|
26
|
-
const { COMPANY_INFO, PAGE } = CONSTANTS;
|
|
26
|
+
const { COMPANY_INFO, CONTACT, PAGE } = CONSTANTS;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* URL to the Contact Form route, using the base path
|
|
@@ -31,6 +31,12 @@ This file is part of Network Pro.
|
|
|
31
31
|
*/
|
|
32
32
|
const contactLink = `${base}/contact`;
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* URL to the Consultation route, using the base path
|
|
36
|
+
* @type {string}
|
|
37
|
+
*/
|
|
38
|
+
const consultLink = `${base}/consultation`;
|
|
39
|
+
|
|
34
40
|
/**
|
|
35
41
|
* URL to the PGP route, using the base path
|
|
36
42
|
* @type {string}
|
|
@@ -142,7 +148,7 @@ This file is part of Network Pro.
|
|
|
142
148
|
</p>
|
|
143
149
|
</section>
|
|
144
150
|
|
|
145
|
-
|
|
151
|
+
|
|
146
152
|
|
|
147
153
|
<section id="subhead">
|
|
148
154
|
<h2>Security That Respects You</h2>
|
|
@@ -218,6 +224,7 @@ This file is part of Network Pro.
|
|
|
218
224
|
<li><strong>Network Troubleshooting</strong></li>
|
|
219
225
|
<li><strong>Network Security Review</strong></li>
|
|
220
226
|
<li><strong>Add a Wi-Fi Device</strong></li>
|
|
227
|
+
<li><strong>Add or Configure a Printer</strong></li>
|
|
221
228
|
</ul>
|
|
222
229
|
|
|
223
230
|
<p>
|
|
@@ -226,19 +233,28 @@ This file is part of Network Pro.
|
|
|
226
233
|
best practices in digital privacy, secure design, and threat mitigation.
|
|
227
234
|
</p>
|
|
228
235
|
|
|
236
|
+
<div class="spacer"></div>
|
|
237
|
+
|
|
229
238
|
<p>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
We don't just secure infrastructure. We secure confidence.
|
|
239
|
+
At {COMPANY_INFO.APP_NAME}™, we deliver robust, intentional solutions
|
|
240
|
+
for individuals and organizations that prioritize integrity — without
|
|
241
|
+
compromising agility or trust. We don't just protect infrastructure. We
|
|
242
|
+
protect peace of mind.
|
|
235
243
|
</p>
|
|
236
244
|
|
|
237
|
-
<
|
|
245
|
+
<p>
|
|
246
|
+
Ready to take the next step? <a href={contactLink} target={PAGE.BLANK}
|
|
247
|
+
>Let's connect</a>
|
|
248
|
+
to explore how we can help fortify your home or business.
|
|
249
|
+
<a href={consultLink} target={PAGE.BLANK}>Schedule a consultation</a> today and
|
|
250
|
+
discover what's possible.
|
|
251
|
+
</p>
|
|
238
252
|
|
|
239
253
|
<p>
|
|
240
|
-
<
|
|
241
|
-
|
|
254
|
+
<strong>{COMPANY_INFO.NAME}</strong><br />
|
|
255
|
+
📞 Phone: {CONTACT.PHONE}<br />
|
|
256
|
+
📧 General Inquiries: {CONTACT.EMAIL}<br />
|
|
257
|
+
🔐 Secure Email: {CONTACT.SECURE}
|
|
242
258
|
</p>
|
|
243
259
|
|
|
244
260
|
<div class="spacer"></div>
|
|
@@ -15,7 +15,7 @@ This file is part of Network Pro.
|
|
|
15
15
|
|
|
16
16
|
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
17
17
|
|
|
18
|
-
const { COMPANY_INFO, LINKS, PAGE, NAV } = CONSTANTS;
|
|
18
|
+
const { COMPANY_INFO, CONTACT, LINKS, PAGE, NAV } = CONSTANTS;
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* URL to the FOSS Spotlight page, using the base path
|
|
@@ -69,6 +69,16 @@ This file is part of Network Pro.
|
|
|
69
69
|
</em>
|
|
70
70
|
</p>
|
|
71
71
|
|
|
72
|
+
<p class={classCenter}>
|
|
73
|
+
<strong>{COMPANY_INFO.NAME}</strong><br />
|
|
74
|
+
📞 <strong>Phone:</strong>
|
|
75
|
+
{CONTACT.PHONE}<br />
|
|
76
|
+
📧 <strong>General Inquiries:</strong>
|
|
77
|
+
{CONTACT.EMAIL}<br />
|
|
78
|
+
🔐 <strong>Secure Email:</strong>
|
|
79
|
+
{CONTACT.SECURE}
|
|
80
|
+
</p>
|
|
81
|
+
|
|
72
82
|
|
|
73
83
|
|
|
74
84
|
<h3 class="index4">Featured</h3>
|
|
@@ -6,8 +6,6 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
|
6
6
|
This file is part of Network Pro.
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
|
-
<!-- cspell:ignore lmaterial lterms dlnotes -->
|
|
10
|
-
|
|
11
9
|
<script>
|
|
12
10
|
import { base } from '$app/paths';
|
|
13
11
|
import { ccSvg, bySvg } from '$lib';
|
|
@@ -128,7 +126,7 @@ This file is part of Network Pro.
|
|
|
128
126
|
<p>
|
|
129
127
|
All content—including text, software, logos, graphics, documentation,
|
|
130
128
|
and other materials—provided by
|
|
131
|
-
<strong>{COMPANY_INFO.NAME}</strong> ("{COMPANY_INFO.APP_NAME}",
|
|
129
|
+
<strong>{COMPANY_INFO.NAME}</strong> ("{COMPANY_INFO.APP_NAME}™",
|
|
132
130
|
"Company", "Licensor") is protected by U.S. and international copyright
|
|
133
131
|
laws.
|
|
134
132
|
</p>
|
|
@@ -490,3 +488,5 @@ This file is part of Network Pro.
|
|
|
490
488
|
{/each}
|
|
491
489
|
<!-- END POLICY SECTIONS -->
|
|
492
490
|
<!-- END LEGAL, LICENSING, AND COPYRIGHT -->
|
|
491
|
+
|
|
492
|
+
<!-- cspell:ignore lmaterial lterms dlnotes -->
|
|
@@ -42,6 +42,7 @@ This file is part of Network Pro.
|
|
|
42
42
|
{ id: 'intro', text: 'Introduction' },
|
|
43
43
|
{ id: 'collect', text: 'Information We Collect' },
|
|
44
44
|
{ id: 'tracking', text: 'Web Analytics and Tracking' },
|
|
45
|
+
{ id: 'hcaptcha', text: 'Security & Anti-Abuse Measures (hCaptcha)' },
|
|
45
46
|
{ id: 'payment', text: 'Payment Information' },
|
|
46
47
|
{ id: 'use', text: 'Use of Information' },
|
|
47
48
|
{ id: 'legal', text: 'Legal Requests and Data Disclosure' },
|
|
@@ -54,7 +55,7 @@ This file is part of Network Pro.
|
|
|
54
55
|
];
|
|
55
56
|
|
|
56
57
|
/** @type {string} */
|
|
57
|
-
const effectiveDate = '
|
|
58
|
+
const effectiveDate = 'October 10, 2025';
|
|
58
59
|
|
|
59
60
|
/** @type {string} */
|
|
60
61
|
const classSmall = 'small-text';
|
|
@@ -291,6 +292,35 @@ This file is part of Network Pro.
|
|
|
291
292
|
target={PAGE.BLANK}>PostHog's Privacy Policy</a
|
|
292
293
|
>.
|
|
293
294
|
</p>
|
|
295
|
+
<p>
|
|
296
|
+
In addition to analytics tools, we also use security measures to protect
|
|
297
|
+
our site from spam and abuse.
|
|
298
|
+
</p>
|
|
299
|
+
{:else if link.id === 'hcaptcha'}
|
|
300
|
+
<p>
|
|
301
|
+
We use the hCaptcha security service on certain forms and interactive
|
|
302
|
+
features to protect our website from spam and automated abuse. When
|
|
303
|
+
hCaptcha is active, it may collect information such as your IP address,
|
|
304
|
+
browser characteristics, and user interaction data (for example, mouse
|
|
305
|
+
movements or keystrokes) to distinguish human visitors from bots.
|
|
306
|
+
</p>
|
|
307
|
+
<p>
|
|
308
|
+
This information is sent to Intuition Machines, Inc., the provider of
|
|
309
|
+
hCaptcha, and is processed in accordance with their <a
|
|
310
|
+
rel={PAGE.REL}
|
|
311
|
+
href="https://www.hcaptcha.com/privacy"
|
|
312
|
+
target={PAGE.BLANK}>Privacy Policy</a>
|
|
313
|
+
and
|
|
314
|
+
<a
|
|
315
|
+
rel={PAGE.REL}
|
|
316
|
+
href="https://www.hcaptcha.com/terms"
|
|
317
|
+
target={PAGE.BLANK}>Terms of Service</a
|
|
318
|
+
>.
|
|
319
|
+
</p>
|
|
320
|
+
<p>
|
|
321
|
+
The use of hCaptcha is necessary to maintain the security, integrity,
|
|
322
|
+
and availability of our services.
|
|
323
|
+
</p>
|
|
294
324
|
{:else if link.id === 'payment'}
|
|
295
325
|
<p>
|
|
296
326
|
When processing payments, we may collect credit card details and billing
|