@networkpro/web 1.5.2 → 1.6.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/CODE_OF_CONDUCT.md +1 -0
- package/LICENSE.md +5 -39
- package/README.md +319 -39
- package/cspell.json +65 -0
- package/eslint.config.mjs +2 -1
- package/jsconfig.json +2 -1
- package/netlify-functions/cspReport.js +68 -0
- package/netlify.toml +17 -8
- package/package.json +52 -56
- package/playwright.config.js +21 -19
- package/postcss.config.mjs +1 -0
- package/scripts/auditScripts.js +1 -0
- package/scripts/bundleCss.js +1 -0
- package/scripts/checkEnv.js +1 -0
- package/scripts/checkNode.js +46 -19
- package/scripts/checkVersions.js +1 -0
- package/scripts/flattenHeaders.js +1 -0
- package/scripts/validateHeaders.js +1 -0
- package/src/app.d.ts +14 -3
- package/src/app.html +7 -49
- package/src/global.d.ts +1 -0
- package/src/hooks.client.ts +16 -7
- package/src/hooks.server.js +91 -0
- package/src/lib/components/Badges.svelte +1 -0
- package/src/lib/components/ContainerSection.svelte +1 -0
- package/src/lib/components/FullWidthSection.svelte +15 -1
- package/src/lib/components/LegalNav.svelte +1 -0
- package/src/lib/components/Logo.svelte +1 -0
- package/src/lib/components/MetaTags.svelte +1 -0
- package/src/lib/components/PWAInstallButton.svelte +1 -0
- package/src/lib/components/RedirectPage.svelte +20 -12
- package/src/lib/components/SocialMedia.svelte +1 -0
- package/src/lib/components/foss/FossFeatures.svelte +58 -4
- package/src/lib/components/foss/FossItemContent.svelte +2 -1
- package/src/lib/components/layout/Footer.svelte +4 -1
- package/src/lib/components/layout/HeaderDefault.svelte +2 -1
- package/src/lib/components/layout/HeaderHome.svelte +2 -1
- package/src/lib/data/fossData.js +271 -68
- package/src/lib/images.js +10 -1
- package/src/lib/img/logo-web.png +0 -0
- package/src/lib/img/logo-web.webp +0 -0
- package/src/lib/img/posts/eauth.png +0 -0
- package/src/lib/img/posts/eauth.webp +0 -0
- package/src/lib/index.js +1 -0
- package/src/lib/meta.js +1 -1
- package/src/lib/pages/AboutContent.svelte +1 -0
- package/src/lib/pages/FossContent.svelte +2 -1
- package/src/lib/pages/HomeContent.svelte +1 -0
- package/src/lib/pages/LicenseContent.svelte +33 -3
- package/src/lib/pages/PrivacyContent.svelte +33 -12
- package/src/lib/pages/TermsConditionsContent.svelte +3 -0
- package/src/lib/pages/TermsUseContent.svelte +3 -0
- package/src/lib/registerServiceWorker.js +35 -31
- package/src/lib/styles/css/default.css +1 -0
- package/src/lib/styles/css/global.css +1 -0
- package/src/lib/styles/css/normalize.css +1 -0
- package/src/lib/styles/css/offline.css +1 -0
- package/src/lib/styles/css/style.css +1 -0
- package/src/lib/styles/fa-global.css +1 -0
- package/src/lib/styles/global.min.css +1 -0
- package/src/lib/styles/index.js +2 -1
- package/src/lib/types/metadata.js +1 -0
- package/src/lib/unregisterServiceWorker.js +1 -0
- package/src/lib/utils/utm.js +1 -0
- package/src/routes/+error.svelte +1 -0
- package/src/routes/+layout.js +7 -1
- package/src/routes/+layout.svelte +8 -6
- package/src/routes/+page.server.js +1 -0
- package/src/routes/+page.svelte +1 -0
- package/src/routes/about/+page.server.js +1 -0
- package/src/routes/about/+page.svelte +1 -0
- package/src/routes/api/mock-csp/+server.js +22 -0
- package/src/routes/consultation/+page.svelte +1 -0
- package/src/routes/contact/+page.svelte +1 -0
- package/src/routes/foss-spotlight/+page.server.js +1 -0
- package/src/routes/foss-spotlight/+page.svelte +1 -0
- package/src/routes/license/+page.server.js +1 -0
- package/src/routes/license/+page.svelte +1 -0
- package/src/routes/privacy-policy/+page.server.js +1 -0
- package/src/routes/privacy-policy/+page.svelte +1 -0
- package/src/routes/privacy-rights/+page.svelte +1 -0
- package/src/routes/terms-conditions/+page.server.js +1 -0
- package/src/routes/terms-conditions/+page.svelte +1 -0
- package/src/routes/terms-of-use/+page.server.js +1 -0
- package/src/routes/terms-of-use/+page.svelte +1 -0
- package/src/service-worker.d.ts +8 -0
- package/src/service-worker.js +56 -28
- package/static/disableSw.js +12 -0
- package/static/docs/Home.md +63 -0
- package/static/docs/extensions.md +58 -0
- package/static/sitemap.xml +7 -7
- package/stylelint.config.js +4 -7
- package/svelte.config.js +1 -0
- package/tests/e2e/app.spec.js +59 -21
- package/tests/e2e/mobile.spec.js +50 -29
- package/tests/unit/auditScripts.test.js +1 -0
- package/tests/unit/checkEnv.test.js +1 -0
- package/tests/unit/checkVersions.test.js +1 -0
- package/tests/unit/cspReport.test.js +81 -0
- package/tests/unit/demo.test.js +1 -0
- package/tests/unit/routes/page.svelte.test.js +1 -0
- package/tests/unit/unregisterServiceWorker.test.js +1 -0
- package/tests/unit/utm.test.js +1 -0
- package/{tsconfig.custom.json → tsconfig.custom.jsonc} +2 -1
- package/vite.config.js +1 -0
- package/vitest.config.client.js +1 -0
- package/vitest.config.server.js +1 -0
- package/_headers +0 -9
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/lib/pages/PrivacyContent.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
7
8
|
|
|
9
|
+
<!-- cspell:ignore prights -->
|
|
10
|
+
|
|
8
11
|
<script>
|
|
9
12
|
import { base } from "$app/paths";
|
|
10
13
|
|
|
@@ -13,9 +16,11 @@ This file is part of Network Pro.
|
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* URL to the Privacy Rights Request Form redirect route, using the base path
|
|
19
|
+
* URL to the Contact Form redirect route, using the base path
|
|
16
20
|
* @type {string}
|
|
17
21
|
*/
|
|
18
22
|
const prightsLink = `${base}/privacy-rights`;
|
|
23
|
+
const contactLink = `${base}/contact`;
|
|
19
24
|
|
|
20
25
|
/**
|
|
21
26
|
* URL to the privacy policy in Markdown format
|
|
@@ -50,7 +55,7 @@ This file is part of Network Pro.
|
|
|
50
55
|
email: "support (at) neteng.pro",
|
|
51
56
|
secure: "contact (at) s.neteng.pro",
|
|
52
57
|
phone: "(623) 252-4350",
|
|
53
|
-
effectiveDate: "May
|
|
58
|
+
effectiveDate: "May 23, 2025",
|
|
54
59
|
};
|
|
55
60
|
|
|
56
61
|
/**
|
|
@@ -179,14 +184,23 @@ This file is part of Network Pro.
|
|
|
179
184
|
</p>
|
|
180
185
|
<ul>
|
|
181
186
|
<li
|
|
182
|
-
><strong>With Service Providers:</strong>
|
|
183
|
-
third-party vendors
|
|
187
|
+
><strong>With Service Providers:</strong> We may share your
|
|
188
|
+
information with carefully selected third-party vendors under
|
|
189
|
+
enforceable, contractual agreements. These providers support essential
|
|
190
|
+
aspects of our operations—including, but not limited to, payment
|
|
191
|
+
processing, data analytics, and customer support services. All such
|
|
192
|
+
partnerships are structured to uphold our core principles of
|
|
193
|
+
<em>transparency, self-hosting, and prioritizing user privacy</em> across
|
|
194
|
+
all infrastructure and data flows.</li>
|
|
184
195
|
<li
|
|
185
|
-
><strong>Legal Compliance:</strong>
|
|
186
|
-
|
|
196
|
+
><strong>Legal Compliance:</strong> We may disclose information if required
|
|
197
|
+
to do so by applicable law, regulation, legal process, or enforceable governmental
|
|
198
|
+
request, including subpoenas or court orders.</li>
|
|
187
199
|
<li
|
|
188
|
-
><strong>Business Transfers:</strong>
|
|
189
|
-
|
|
200
|
+
><strong>Business Transfers:</strong> In connection with a merger, acquisition,
|
|
201
|
+
asset sale, or similar corporate transaction, we may disclose or transfer
|
|
202
|
+
personal information, provided that reasonable steps are taken to ensure
|
|
203
|
+
continued confidentiality and compliance with applicable privacy laws.</li>
|
|
190
204
|
</ul>
|
|
191
205
|
{:else if link.id === "security"}
|
|
192
206
|
<p>
|
|
@@ -201,9 +215,11 @@ This file is part of Network Pro.
|
|
|
201
215
|
<p><strong>Your Rights and Choices</strong></p>
|
|
202
216
|
<ul>
|
|
203
217
|
<li
|
|
204
|
-
><strong>Access, update, or delete</strong> your personal information
|
|
218
|
+
><strong>Access, update, or delete</strong> your personal information,
|
|
219
|
+
subject to legal and contractual limitations.</li>
|
|
205
220
|
<li
|
|
206
|
-
><strong>Restrict or object to processing</strong> under certain conditions
|
|
221
|
+
><strong>Restrict or object to processing</strong> under certain conditions,
|
|
222
|
+
as permitted by law.</li>
|
|
207
223
|
<li><strong>Opt out of direct marketing</strong></li>
|
|
208
224
|
</ul>
|
|
209
225
|
<p>
|
|
@@ -222,7 +238,8 @@ This file is part of Network Pro.
|
|
|
222
238
|
<p>
|
|
223
239
|
Network Pro Strategies offers informational content as a public service.
|
|
224
240
|
No warranties are made regarding the accuracy or completeness of such
|
|
225
|
-
content. Consulting services are governed by separate contracts.
|
|
241
|
+
content. Consulting services are governed by separate contracts. We
|
|
242
|
+
disclaim liability for third-party services integrated or referenced.
|
|
226
243
|
</p>
|
|
227
244
|
{:else if link.id === "changes"}
|
|
228
245
|
<p>
|
|
@@ -230,11 +247,15 @@ This file is part of Network Pro.
|
|
|
230
247
|
posting.
|
|
231
248
|
</p>
|
|
232
249
|
{:else if link.id === "contact"}
|
|
233
|
-
<p
|
|
250
|
+
<p
|
|
251
|
+
>For questions, please utilize our <a
|
|
252
|
+
rel={constants.rel}
|
|
253
|
+
href={contactLink}
|
|
254
|
+
target={constants.targetSelf}>Contact Form</a> or contact us directly:</p>
|
|
234
255
|
<p>
|
|
235
256
|
<strong>{contactInfo.company}</strong><br />
|
|
236
257
|
📧 General Inquiries: <code>{contactInfo.email}</code><br />
|
|
237
|
-
🔐 Secure
|
|
258
|
+
🔐 Secure Email: <code>{contactInfo.secure}</code><br />
|
|
238
259
|
📞 Phone: {contactInfo.phone}
|
|
239
260
|
</p>
|
|
240
261
|
{/if}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/lib/pages/TermsConditionsContent.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
7
8
|
|
|
9
|
+
<!-- cspell:ignore tandc -->
|
|
10
|
+
|
|
8
11
|
<script>
|
|
9
12
|
import { base } from "$app/paths";
|
|
10
13
|
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/lib/pages/TermsUseContent.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
7
8
|
|
|
9
|
+
<!-- cspell:ignore tandc -->
|
|
10
|
+
|
|
8
11
|
<script>
|
|
9
12
|
import { base } from "$app/paths";
|
|
10
13
|
|
|
@@ -1,70 +1,72 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/lib/registerServiceWorker.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
7
8
|
|
|
9
|
+
// cspell:ignore nosw beforeinstallprompt
|
|
10
|
+
|
|
8
11
|
/**
|
|
9
|
-
* Registers the service worker and handles update lifecycle, install prompt,
|
|
10
|
-
* browser/environment compatibility checks. This supports offline usage
|
|
12
|
+
* Registers the service worker and handles update lifecycle, install prompt,
|
|
13
|
+
* and browser/environment compatibility checks. This supports offline usage
|
|
14
|
+
* and PWA behavior.
|
|
11
15
|
*/
|
|
12
16
|
export function registerServiceWorker() {
|
|
13
|
-
const disableSW =
|
|
14
|
-
window?.__DISABLE_SW__ || location.search.includes("nosw");
|
|
17
|
+
const disableSW = window?.__DISABLE_SW__ || location.search.includes("nosw");
|
|
15
18
|
|
|
16
19
|
if (disableSW) {
|
|
17
20
|
console.warn("⚠️ Service Worker registration disabled via diagnostic mode.");
|
|
18
21
|
|
|
19
|
-
if (
|
|
22
|
+
if ("serviceWorker" in navigator) {
|
|
20
23
|
navigator.serviceWorker.getRegistrations().then((registrations) => {
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
registrations.forEach((reg) =>
|
|
25
|
+
reg.unregister().then((success) => {
|
|
23
26
|
console.log("🧹 SW unregistered from registerServiceWorker.js:", success);
|
|
24
|
-
})
|
|
25
|
-
|
|
27
|
+
})
|
|
28
|
+
);
|
|
26
29
|
});
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
const isFirefox = navigator.userAgent.includes('Firefox');
|
|
35
|
+
if ("serviceWorker" in navigator) {
|
|
36
|
+
const isFirefox = navigator.userAgent.includes("Firefox");
|
|
35
37
|
const isDevelopment =
|
|
36
|
-
location.hostname ===
|
|
38
|
+
location.hostname === "localhost" || location.hostname === "127.0.0.1";
|
|
37
39
|
|
|
38
40
|
if (isFirefox && isDevelopment) {
|
|
39
|
-
console.log(
|
|
41
|
+
console.log("🛑 SW registration skipped in Firefox development mode");
|
|
40
42
|
return;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
window.addEventListener(
|
|
45
|
+
window.addEventListener("load", () => {
|
|
44
46
|
navigator.serviceWorker
|
|
45
|
-
.register(
|
|
47
|
+
.register("service-worker.js")
|
|
46
48
|
.then((registration) => {
|
|
47
|
-
console.log(
|
|
49
|
+
console.log("✅ Service Worker registered with scope:", registration.scope);
|
|
48
50
|
|
|
49
|
-
registration.addEventListener(
|
|
51
|
+
registration.addEventListener("updatefound", () => {
|
|
50
52
|
const newWorker = registration.installing;
|
|
51
|
-
console.log(
|
|
53
|
+
console.log("[SW-CLIENT] New service worker installing...");
|
|
52
54
|
|
|
53
55
|
if (!newWorker) return;
|
|
54
56
|
|
|
55
57
|
let updatePrompted = false;
|
|
56
58
|
|
|
57
|
-
newWorker.addEventListener(
|
|
58
|
-
console.log(
|
|
59
|
+
newWorker.addEventListener("statechange", () => {
|
|
60
|
+
console.log("[SW-CLIENT] New worker state:", newWorker.state);
|
|
59
61
|
|
|
60
62
|
if (
|
|
61
|
-
newWorker.state ===
|
|
63
|
+
newWorker.state === "installed" &&
|
|
62
64
|
navigator.serviceWorker.controller &&
|
|
63
65
|
!updatePrompted
|
|
64
66
|
) {
|
|
65
67
|
updatePrompted = true;
|
|
66
|
-
console.log(
|
|
67
|
-
if (confirm(
|
|
68
|
+
console.log("[SW-CLIENT] New SW installed. Prompting user to reload.");
|
|
69
|
+
if (confirm("New content is available. Reload to update?")) {
|
|
68
70
|
window.location.reload();
|
|
69
71
|
}
|
|
70
72
|
}
|
|
@@ -72,23 +74,25 @@ export function registerServiceWorker() {
|
|
|
72
74
|
});
|
|
73
75
|
})
|
|
74
76
|
.catch((error) => {
|
|
75
|
-
console.error(
|
|
77
|
+
console.error("❌ Service Worker registration failed:", error);
|
|
76
78
|
});
|
|
77
79
|
|
|
78
80
|
let refreshing = false;
|
|
79
|
-
navigator.serviceWorker.addEventListener(
|
|
80
|
-
console.log(
|
|
81
|
+
navigator.serviceWorker.addEventListener("controllerchange", () => {
|
|
82
|
+
console.log("[SW-CLIENT] Controller changed.");
|
|
81
83
|
if (!refreshing) {
|
|
82
84
|
refreshing = true;
|
|
83
85
|
window.location.reload();
|
|
84
86
|
}
|
|
85
87
|
});
|
|
86
88
|
|
|
87
|
-
window.addEventListener(
|
|
89
|
+
window.addEventListener("beforeinstallprompt", (e) => {
|
|
88
90
|
e.preventDefault();
|
|
89
|
-
window.dispatchEvent(
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
window.dispatchEvent(
|
|
92
|
+
new CustomEvent("pwa-install-available", {
|
|
93
|
+
detail: /** @type {BeforeInstallPromptEvent} */ (e),
|
|
94
|
+
}),
|
|
95
|
+
);
|
|
92
96
|
});
|
|
93
97
|
});
|
|
94
98
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/default.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/css/global.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/normalize.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
=========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/css/offline.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
=========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/style.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
=========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/fa-global.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
2
|
src/lib/styles/global.min.css
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
=========================================================================== */
|
package/src/lib/styles/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/lib/styles/index.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
7
8
|
|
|
8
|
-
// Import transformed and minified
|
|
9
|
+
// Import transformed and minified stylesheets
|
|
9
10
|
import "./global.min.css";
|
|
10
11
|
import "./fa-global.css";
|
|
11
12
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/lib/types/metadata.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/lib/unregisterServiceWorker.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
package/src/lib/utils/utm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/lib/utils/utm.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
package/src/routes/+error.svelte
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/+error.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
package/src/routes/+layout.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/+layout.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -11,6 +12,8 @@ This file is part of Network Pro.
|
|
|
11
12
|
* @property {string} description - The description of the page
|
|
12
13
|
*/
|
|
13
14
|
|
|
15
|
+
import { meta as routeMeta } from "$lib/meta.js"; // Import meta from $lib/meta.js and alias it
|
|
16
|
+
|
|
14
17
|
/**
|
|
15
18
|
* Fallback metadata to satisfy typing in +layout.svelte and +page.svelte.
|
|
16
19
|
* Actual meta content is provided per-route via +page.server.js.
|
|
@@ -31,8 +34,11 @@ export const trailingSlash = "never";
|
|
|
31
34
|
export function load({ url }) {
|
|
32
35
|
const normalizedPathname = url.pathname.replace(/\/+$/, "") || "/";
|
|
33
36
|
|
|
37
|
+
// Check if meta data for the route exists in `meta.js`, otherwise use the fallback
|
|
38
|
+
const currentMeta = routeMeta[normalizedPathname] || fallbackMeta;
|
|
39
|
+
|
|
34
40
|
return {
|
|
35
41
|
pathname: normalizedPathname,
|
|
36
|
-
meta:
|
|
42
|
+
meta: currentMeta, // Return the meta data (either from the route or the fallback)
|
|
37
43
|
};
|
|
38
44
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/+layout.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -24,10 +25,6 @@ This file is part of Network Pro.
|
|
|
24
25
|
import faviconSvg from "$lib/img/favicon.svg";
|
|
25
26
|
import appleTouchIcon from "$lib/img/icon-180x180.png";
|
|
26
27
|
|
|
27
|
-
onMount(() => {
|
|
28
|
-
registerServiceWorker();
|
|
29
|
-
});
|
|
30
|
-
|
|
31
28
|
if (browser) {
|
|
32
29
|
// Preload logo images
|
|
33
30
|
[logoPng, logoWbp].forEach((src) => {
|
|
@@ -35,10 +32,15 @@ This file is part of Network Pro.
|
|
|
35
32
|
img.src = src;
|
|
36
33
|
});
|
|
37
34
|
|
|
38
|
-
// Preload favicon SVG
|
|
39
|
-
const touchImg = new Image();
|
|
40
35
|
// Preload Apple Touch icon
|
|
36
|
+
const touchImg = new Image();
|
|
41
37
|
touchImg.src = appleTouchIcon;
|
|
38
|
+
|
|
39
|
+
// Register the service worker only in the browser
|
|
40
|
+
onMount(() => {
|
|
41
|
+
console.log("[APP] onMount triggered in +layout.svelte");
|
|
42
|
+
registerServiceWorker();
|
|
43
|
+
});
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
// fallback values if data.meta not set
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
package/src/routes/+page.svelte
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/about/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/about/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/routes/api/mock-csp/+server.js
|
|
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
|
+
/** @type {import('@sveltejs/kit').RequestHandler} */
|
|
10
|
+
export async function POST({ request }) {
|
|
11
|
+
console.log("🔶 [Mock CSP] Report received during dev/CI");
|
|
12
|
+
|
|
13
|
+
// Optional: read/validate body for debugging
|
|
14
|
+
try {
|
|
15
|
+
const data = await request.json();
|
|
16
|
+
console.log("🔶 [Mock CSP] Payload:", data);
|
|
17
|
+
} catch {
|
|
18
|
+
console.warn("⚠️ [Mock CSP] No JSON body provided.");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return new Response(null, { status: 204 });
|
|
22
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/consultation/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/contact/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/foss-spotlight/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/lib/pages/FossSpotlightContent.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/license/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/license/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/privacy-policy/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/privacy-policy/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/privacy-rights/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/terms-conditions/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/terms-conditions/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
2
|
src/routes/terms-of-use/+page.server.js
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!-- ==========================================================================
|
|
2
2
|
src/routes/terms-of-use/+page.svelte
|
|
3
3
|
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
5
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
6
|
This file is part of Network Pro.
|
|
6
7
|
========================================================================== -->
|
package/src/service-worker.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/service-worker.d.ts
|
|
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
|
+
|
|
1
9
|
/// <reference lib="webworker" />
|
|
2
10
|
|
|
3
11
|
// Give access to ServiceWorkerGlobalScope when using JSDoc
|