@networkpro/web 1.12.9 → 1.13.1
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/CHANGELOG.md +65 -1
- package/README.md +26 -18
- package/cspell.json +1 -0
- package/eslint.config.mjs +48 -48
- package/netlify/edge-functions/csp-report.js +31 -31
- package/package.json +3 -3
- package/playwright.config.js +14 -14
- package/postcss.config.mjs +1 -1
- package/scripts/auditScripts.js +16 -16
- package/scripts/bundleCss.js +5 -5
- package/scripts/checkEnv.js +6 -6
- package/scripts/checkNode.js +10 -10
- package/scripts/checkVersions.js +6 -6
- package/scripts/flattenHeaders.js +13 -13
- package/scripts/generateTest.js +5 -5
- package/scripts/openReport.js +3 -3
- package/scripts/validateHeaders.js +13 -13
- package/src/app.html +0 -9
- package/src/hooks.client.ts +1 -1
- package/src/hooks.server.js +31 -32
- package/src/lib/components/Badges.svelte +10 -10
- package/src/lib/components/CodeBlock.svelte +1 -1
- package/src/lib/components/ContainerSection.svelte +1 -1
- package/src/lib/components/FullWidthSection.svelte +3 -3
- package/src/lib/components/LegalNav.svelte +7 -7
- package/src/lib/components/Logo.svelte +9 -9
- package/src/lib/components/MetaTags.svelte +4 -4
- package/src/lib/components/PWAInstallButton.svelte +4 -4
- package/src/lib/components/RedirectPage.svelte +4 -4
- package/src/lib/components/SocialMedia.svelte +16 -16
- package/src/lib/components/foss/FossItemContent.svelte +27 -58
- package/src/lib/components/foss/ObtainiumBlock.svelte +64 -0
- package/src/lib/components/layout/Footer.svelte +18 -18
- package/src/lib/components/layout/HeaderDefault.svelte +16 -16
- package/src/lib/components/layout/HeaderHome.svelte +14 -14
- package/src/lib/data/fossData.js +22 -10
- package/src/lib/images.js +34 -34
- package/src/lib/img/obtainium.png +0 -0
- package/src/lib/img/obtainium.webp +0 -0
- package/src/lib/index.js +15 -15
- package/src/lib/meta.js +29 -29
- package/src/lib/pages/AboutContent.svelte +24 -24
- package/src/lib/pages/FossContent.svelte +13 -13
- package/src/lib/pages/HomeContent.svelte +7 -7
- package/src/lib/pages/LicenseContent.svelte +39 -39
- package/src/lib/pages/PGPContent.svelte +23 -23
- package/src/lib/pages/PrivacyContent.svelte +39 -39
- package/src/lib/pages/PrivacyDashboard.svelte +12 -12
- package/src/lib/pages/TermsConditionsContent.svelte +29 -29
- package/src/lib/pages/TermsUseContent.svelte +26 -26
- package/src/lib/registerServiceWorker.js +25 -25
- package/src/lib/stores/posthog.js +13 -13
- package/src/lib/stores/trackingPreferences.js +19 -19
- package/src/lib/styles/css/default.css +30 -0
- package/src/lib/styles/global.min.css +1 -1
- package/src/lib/types/fossTypes.js +9 -2
- package/src/lib/unregisterServiceWorker.js +1 -1
- package/src/lib/utils/purify.js +4 -4
- package/src/lib/utils/utm.js +2 -2
- package/src/routes/+error.svelte +4 -4
- package/src/routes/+layout.js +6 -6
- package/src/routes/+layout.svelte +29 -29
- package/src/routes/+page.server.js +2 -2
- package/src/routes/+page.svelte +9 -9
- package/src/routes/about/+page.server.js +2 -2
- package/src/routes/about/+page.svelte +7 -7
- package/src/routes/api/mock-csp/+server.js +3 -3
- package/src/routes/consultation/+page.svelte +5 -5
- package/src/routes/contact/+page.svelte +5 -5
- package/src/routes/foss-spotlight/+page.server.js +2 -2
- package/src/routes/foss-spotlight/+page.svelte +7 -7
- package/src/routes/license/+page.server.js +2 -2
- package/src/routes/license/+page.svelte +7 -7
- package/src/routes/pgp/+page.server.js +2 -2
- package/src/routes/pgp/+page.svelte +7 -7
- package/src/routes/pgp/[key]/+server.js +9 -9
- package/src/routes/privacy/+page.server.js +2 -2
- package/src/routes/privacy/+page.svelte +7 -7
- package/src/routes/privacy-dashboard/+page.server.js +2 -2
- package/src/routes/privacy-dashboard/+page.svelte +8 -8
- package/src/routes/privacy-rights/+page.svelte +5 -5
- package/src/routes/status/+page.server.js +2 -2
- package/src/routes/terms-conditions/+page.server.js +2 -2
- package/src/routes/terms-conditions/+page.svelte +7 -7
- package/src/routes/terms-of-use/+page.server.js +2 -2
- package/src/routes/terms-of-use/+page.svelte +7 -7
- package/src/service-worker.js +86 -86
- package/static/bin/heliboard.json +8 -0
- package/static/disableSw.js +2 -2
- package/static/offline.html +7 -7
- package/stylelint.config.js +56 -56
- package/svelte.config.js +6 -6
- package/tests/e2e/app.spec.js +27 -27
- package/tests/e2e/mobile.spec.js +18 -18
- package/tests/e2e/shared/helpers.js +4 -4
- package/tests/internal/auditCoverage.test.js +24 -24
- package/tests/unit/checkEnv.test.js +10 -10
- package/tests/unit/checkVersions.test.js +4 -4
- package/tests/unit/csp-report.test.js +24 -24
- package/tests/unit/demo.test.js +3 -3
- package/tests/unit/lib/utils/purify.test.js +12 -12
- package/tests/unit/routes/page.svelte.test.js +10 -10
- package/tests/unit/unregisterServiceWorker.test.js +5 -5
- package/tests/unit/utm.test.js +13 -13
- package/vite.config.js +5 -5
- package/vitest-setup-client.js +4 -4
- package/vitest.config.client.js +15 -15
- package/vitest.config.server.js +13 -13
|
@@ -7,14 +7,14 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import { base } from
|
|
10
|
+
import { base } from '$app/paths';
|
|
11
11
|
|
|
12
12
|
// Log the base path to verify its value
|
|
13
13
|
//console.log("Base path:", base);
|
|
14
14
|
|
|
15
15
|
const aboutLink = `${base}/about`;
|
|
16
16
|
const fossLink = `${base}/foss-spotlight`;
|
|
17
|
-
const blogLink =
|
|
17
|
+
const blogLink = 'https://blog.netwk.pro';
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Navigation link object.
|
|
@@ -30,24 +30,24 @@ This file is part of Network Pro.
|
|
|
30
30
|
* @type {NavItem[]}
|
|
31
31
|
*/
|
|
32
32
|
const nav = [
|
|
33
|
-
{ label:
|
|
34
|
-
{ label:
|
|
33
|
+
{ label: 'about', href: aboutLink, target: '_self', external: false },
|
|
34
|
+
{ label: 'foss', href: fossLink, target: '_self', external: false },
|
|
35
35
|
{
|
|
36
|
-
label:
|
|
36
|
+
label: 'blog',
|
|
37
37
|
href: blogLink,
|
|
38
|
-
target:
|
|
38
|
+
target: '_self',
|
|
39
39
|
external: false,
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
label:
|
|
43
|
-
href:
|
|
44
|
-
target:
|
|
42
|
+
label: 'discussions',
|
|
43
|
+
href: 'https://github.com/netwk-pro/netwk-pro.github.io/discussions',
|
|
44
|
+
target: '_blank',
|
|
45
45
|
external: true,
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
|
-
label:
|
|
49
|
-
href:
|
|
50
|
-
target:
|
|
48
|
+
label: 'link hub',
|
|
49
|
+
href: 'https://linktr.ee/neteng_pro',
|
|
50
|
+
target: '_blank',
|
|
51
51
|
external: true,
|
|
52
52
|
},
|
|
53
53
|
];
|
|
@@ -56,7 +56,7 @@ This file is part of Network Pro.
|
|
|
56
56
|
* Relation attribute for external links.
|
|
57
57
|
* @type {string}
|
|
58
58
|
*/
|
|
59
|
-
const rel =
|
|
59
|
+
const rel = 'noopener noreferrer';
|
|
60
60
|
</script>
|
|
61
61
|
|
|
62
62
|
<!-- BEGIN HOME HEADER -->
|
|
@@ -74,7 +74,7 @@ This file is part of Network Pro.
|
|
|
74
74
|
{/if}
|
|
75
75
|
<!-- Separator logic -->
|
|
76
76
|
{#if index < nav.length - 1}
|
|
77
|
-
{#if label ===
|
|
77
|
+
{#if label === 'blog'}
|
|
78
78
|
<br />
|
|
79
79
|
{:else}
|
|
80
80
|
<span class="goldseparator">|</span>
|
package/src/lib/data/fossData.js
CHANGED
|
@@ -7,14 +7,23 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== */
|
|
8
8
|
|
|
9
9
|
// Import FOSS images
|
|
10
|
-
import { base } from "$app/paths";
|
|
11
10
|
import { acodePng, acodeWbp, eauthPng, eauthWbp, hboardPng, hboardWbp, lsheetPng, lsheetWbp, pmxPng, pmxWbp, squirclePng, squircleWbp, tosPng, tosWbp, urlPng, urlWbp } from "$lib";
|
|
12
11
|
|
|
12
|
+
// cspell:disable
|
|
13
13
|
/**
|
|
14
|
-
* URL to
|
|
14
|
+
* External URL to add HeliBoard to Obtainium
|
|
15
15
|
* @type {string}
|
|
16
16
|
*/
|
|
17
|
-
const
|
|
17
|
+
const hboardLink = "obtainium://app/%7B%22id%22%3A%22helium314.keyboard%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FHelium314%2FHeliBoard%22%2C%22author%22%3A%22Helium314%22%2C%22name%22%3A%22HeliBoard%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22dontSortReleasesList%5C%22%3Afalse%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Atrue%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22release%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22HeliBoard%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22HeliBoard%20is%20a%20privacy-conscious%20and%20customizable%20open-source%20keyboard%2C%20based%20on%20AOSP%20%2F%20OpenBoard.%20Does%20not%20use%20internet%20permission%2C%20and%20thus%20is%20100%25%20offline.%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22Helium314%5C%22%7D%22%7D";
|
|
18
|
+
//cspell:enable
|
|
19
|
+
|
|
20
|
+
// cspell:disable
|
|
21
|
+
/**
|
|
22
|
+
* External URL to add LinkSheet Nightly to Obtainium
|
|
23
|
+
* @type {string}
|
|
24
|
+
*/
|
|
25
|
+
const lsheetLink = "obtainium://app/%7B%22id%22%3A%22fe.linksheet.nightly%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FLinkSheet%2Fnightly%22%2C%22author%22%3A%221fexd%22%2C%22name%22%3A%22LinkSheet%20Nightly%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Atrue%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22dontSortReleasesList%5C%22%3Afalse%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Afalse%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22LinkSheet.Nightly%5C%22%2C%5C%22invertAPKFilter%5C%22%3Atrue%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22LinkSheet%20Nightly%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22Restore%20link%20control%20on%20Android%2012%2B%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%221fexd%5C%22%7D%22%7D";
|
|
26
|
+
//cspell:enable
|
|
18
27
|
|
|
19
28
|
export const fossData = [
|
|
20
29
|
{
|
|
@@ -138,6 +147,11 @@ export const fossData = [
|
|
|
138
147
|
</p>
|
|
139
148
|
|
|
140
149
|
`,
|
|
150
|
+
obtainium: {
|
|
151
|
+
label: "Obtainium App Config",
|
|
152
|
+
href: hboardLink,
|
|
153
|
+
download: "/bin/heliboard.json"
|
|
154
|
+
},
|
|
141
155
|
links: [
|
|
142
156
|
{
|
|
143
157
|
label: "GitHub",
|
|
@@ -511,14 +525,12 @@ export const fossData = [
|
|
|
511
525
|
],
|
|
512
526
|
detailsDescription: `
|
|
513
527
|
`,
|
|
528
|
+
obtainium: {
|
|
529
|
+
label: "Obtainium App Config",
|
|
530
|
+
href: lsheetLink,
|
|
531
|
+
download: "/bin/linksheet.json"
|
|
532
|
+
},
|
|
514
533
|
links: [
|
|
515
|
-
{
|
|
516
|
-
imgAlt: "Obtainium",
|
|
517
|
-
hideLabels: true, // Special flag to control rendering
|
|
518
|
-
downloadText: "Obtainium App Config",
|
|
519
|
-
downloadHref:
|
|
520
|
-
{lsheetDl},
|
|
521
|
-
},
|
|
522
534
|
{
|
|
523
535
|
label: "GitHub",
|
|
524
536
|
href: "https://github.com/LinkSheet/LinkSheet",
|
package/src/lib/images.js
CHANGED
|
@@ -19,50 +19,50 @@ This file is part of Network Pro.
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
// Import favicon images
|
|
22
|
-
import faviconSvg from
|
|
23
|
-
import appleTouchIcon from
|
|
22
|
+
import faviconSvg from '$lib/img/favicon.svg';
|
|
23
|
+
import appleTouchIcon from '$lib/img/icon-180x180.png';
|
|
24
24
|
|
|
25
25
|
// Import logo image
|
|
26
|
-
import logoPng from
|
|
27
|
-
import logoWbp from
|
|
26
|
+
import logoPng from '$lib/img/logo-web.png';
|
|
27
|
+
import logoWbp from '$lib/img/logo-web.webp';
|
|
28
28
|
|
|
29
29
|
// Import badges
|
|
30
|
-
import ccBadge from
|
|
31
|
-
import gplBadge from
|
|
30
|
+
import ccBadge from '$lib/img/badges/cc-by-badge.png';
|
|
31
|
+
import gplBadge from '$lib/img/badges/gpl-badge.svg';
|
|
32
32
|
|
|
33
33
|
// Import general images
|
|
34
|
-
import bySvg from
|
|
35
|
-
import ccSvg from
|
|
36
|
-
import obtainiumPng from
|
|
37
|
-
import obtainiumWbp from
|
|
34
|
+
import bySvg from '$lib/img/by.svg';
|
|
35
|
+
import ccSvg from '$lib/img/cc.svg';
|
|
36
|
+
import obtainiumPng from '$lib/img/obtainium.png';
|
|
37
|
+
import obtainiumWbp from '$lib/img/obtainium.webp';
|
|
38
38
|
|
|
39
39
|
// Import images for posts
|
|
40
|
-
import acodePng from
|
|
41
|
-
import acodeWbp from
|
|
42
|
-
import eauthPng from
|
|
43
|
-
import eauthWbp from
|
|
44
|
-
import hboardPng from
|
|
45
|
-
import hboardWbp from
|
|
46
|
-
import lsheetPng from
|
|
47
|
-
import lsheetWbp from
|
|
48
|
-
import pmxPng from
|
|
49
|
-
import pmxWbp from
|
|
50
|
-
import squirclePng from
|
|
51
|
-
import squircleWbp from
|
|
52
|
-
import tosPng from
|
|
53
|
-
import tosWbp from
|
|
54
|
-
import urlPng from
|
|
55
|
-
import urlWbp from
|
|
40
|
+
import acodePng from '$lib/img/posts/acode.png';
|
|
41
|
+
import acodeWbp from '$lib/img/posts/acode.webp';
|
|
42
|
+
import eauthPng from '$lib/img/posts/eauth.png';
|
|
43
|
+
import eauthWbp from '$lib/img/posts/eauth.webp';
|
|
44
|
+
import hboardPng from '$lib/img/posts/hboard.png';
|
|
45
|
+
import hboardWbp from '$lib/img/posts/hboard.webp';
|
|
46
|
+
import lsheetPng from '$lib/img/posts/linksheet.png';
|
|
47
|
+
import lsheetWbp from '$lib/img/posts/linksheet.webp';
|
|
48
|
+
import pmxPng from '$lib/img/posts/pmx.png';
|
|
49
|
+
import pmxWbp from '$lib/img/posts/pmx.webp';
|
|
50
|
+
import squirclePng from '$lib/img/posts/squircle.png';
|
|
51
|
+
import squircleWbp from '$lib/img/posts/squircle.webp';
|
|
52
|
+
import tosPng from '$lib/img/posts/tosdr.png';
|
|
53
|
+
import tosWbp from '$lib/img/posts/tosdr.webp';
|
|
54
|
+
import urlPng from '$lib/img/posts/urlcheck.png';
|
|
55
|
+
import urlWbp from '$lib/img/posts/urlcheck.webp';
|
|
56
56
|
|
|
57
57
|
// Import QR code images
|
|
58
|
-
import pgpContactPng from
|
|
59
|
-
import pgpContactWbp from
|
|
60
|
-
import pgpSecurityPng from
|
|
61
|
-
import pgpSecurityWbp from
|
|
62
|
-
import pgpSupportPng from
|
|
63
|
-
import pgpSupportWbp from
|
|
64
|
-
import vcfPng from
|
|
65
|
-
import vcfWbp from
|
|
58
|
+
import pgpContactPng from '$lib/img/qr/pgp-contact.png';
|
|
59
|
+
import pgpContactWbp from '$lib/img/qr/pgp-contact.webp';
|
|
60
|
+
import pgpSecurityPng from '$lib/img/qr/pgp-security.png';
|
|
61
|
+
import pgpSecurityWbp from '$lib/img/qr/pgp-security.webp';
|
|
62
|
+
import pgpSupportPng from '$lib/img/qr/pgp-support.png';
|
|
63
|
+
import pgpSupportWbp from '$lib/img/qr/pgp-support.webp';
|
|
64
|
+
import vcfPng from '$lib/img/qr/vcard.png';
|
|
65
|
+
import vcfWbp from '$lib/img/qr/vcard.webp';
|
|
66
66
|
|
|
67
67
|
// Re-export all imports
|
|
68
68
|
export {
|
|
Binary file
|
|
Binary file
|
package/src/lib/index.js
CHANGED
|
@@ -18,7 +18,7 @@ This file is part of Network Pro.
|
|
|
18
18
|
|
|
19
19
|
// Re-export images from dedicated images.js file
|
|
20
20
|
// This maintains backward compatibility with existing imports
|
|
21
|
-
export * from
|
|
21
|
+
export * from './images.js';
|
|
22
22
|
|
|
23
23
|
// Export utility functions
|
|
24
24
|
// Uncomment and adjust these as needed for your project
|
|
@@ -38,27 +38,27 @@ export * from "./images.js";
|
|
|
38
38
|
/** @type {AppConstants} */
|
|
39
39
|
export const CONSTANTS = {
|
|
40
40
|
COMPANY_INFO: {
|
|
41
|
-
NAME:
|
|
42
|
-
APP_NAME:
|
|
43
|
-
YEAR:
|
|
41
|
+
NAME: 'Network Pro Strategies',
|
|
42
|
+
APP_NAME: 'Network Pro',
|
|
43
|
+
YEAR: '2025',
|
|
44
44
|
},
|
|
45
45
|
CONTACT: {
|
|
46
|
-
EMAIL:
|
|
47
|
-
SECURE:
|
|
48
|
-
PRIVACY:
|
|
49
|
-
PHONE:
|
|
46
|
+
EMAIL: 'support (at) neteng.pro',
|
|
47
|
+
SECURE: 'contact (at) s.neteng.pro',
|
|
48
|
+
PRIVACY: 'privacy (at) netwk.pro',
|
|
49
|
+
PHONE: '(623) 252-4350',
|
|
50
50
|
},
|
|
51
51
|
PAGE: {
|
|
52
|
-
BLANK:
|
|
53
|
-
REL:
|
|
54
|
-
SELF:
|
|
52
|
+
BLANK: '_blank',
|
|
53
|
+
REL: 'noopener noreferrer',
|
|
54
|
+
SELF: '_self',
|
|
55
55
|
},
|
|
56
56
|
NAV: {
|
|
57
|
-
BACKTOP:
|
|
58
|
-
HREFTOP:
|
|
57
|
+
BACKTOP: 'Back to top',
|
|
58
|
+
HREFTOP: '#top',
|
|
59
59
|
},
|
|
60
60
|
LINKS: {
|
|
61
|
-
HOME:
|
|
62
|
-
BLOG:
|
|
61
|
+
HOME: 'https://netwk.pro',
|
|
62
|
+
BLOG: 'https://blog.netwk.pro',
|
|
63
63
|
},
|
|
64
64
|
};
|
package/src/lib/meta.js
CHANGED
|
@@ -16,59 +16,59 @@ This file is part of Network Pro.
|
|
|
16
16
|
* @type {Record<string, MetaData>}
|
|
17
17
|
*/
|
|
18
18
|
const meta = {
|
|
19
|
-
|
|
19
|
+
'/': {
|
|
20
20
|
title:
|
|
21
|
-
|
|
21
|
+
'Security, Networking, Privacy — Network Pro Strategies',
|
|
22
22
|
description:
|
|
23
|
-
|
|
23
|
+
'Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro™',
|
|
24
24
|
},
|
|
25
|
-
|
|
26
|
-
title:
|
|
27
|
-
description:
|
|
25
|
+
'/about': {
|
|
26
|
+
title: 'About Us — Network Pro™',
|
|
27
|
+
description: 'About Us | Security, Networking, Privacy — Network Pro™',
|
|
28
28
|
},
|
|
29
|
-
|
|
30
|
-
title:
|
|
29
|
+
'/privacy': {
|
|
30
|
+
title: 'Privacy Policy — Network Pro™',
|
|
31
31
|
description:
|
|
32
|
-
|
|
32
|
+
'Privacy Policy | Security, Networking, Privacy — Network Pro™',
|
|
33
33
|
},
|
|
34
|
-
|
|
35
|
-
title:
|
|
34
|
+
'/terms-of-use': {
|
|
35
|
+
title: 'Website Terms of Use — Network Pro™',
|
|
36
36
|
description:
|
|
37
|
-
|
|
37
|
+
'Website Terms of Use | Security, Networking, Privacy — Network Pro™',
|
|
38
38
|
},
|
|
39
|
-
|
|
40
|
-
title:
|
|
39
|
+
'/license': {
|
|
40
|
+
title: 'Legal, Copyright, and Licensing — Network Pro™',
|
|
41
41
|
description:
|
|
42
|
-
|
|
42
|
+
'Legal, Copyright, and Licensing | Security, Networking, Privacy — Network Pro™',
|
|
43
43
|
},
|
|
44
|
-
|
|
45
|
-
title:
|
|
44
|
+
'/terms-conditions': {
|
|
45
|
+
title: 'Consulting Terms and Conditions — Network Pro™',
|
|
46
46
|
description:
|
|
47
|
-
|
|
47
|
+
'Terms and Conditions | Security, Networking, Privacy — Network Pro™',
|
|
48
48
|
},
|
|
49
|
-
|
|
50
|
-
title:
|
|
49
|
+
'/foss-spotlight': {
|
|
50
|
+
title: 'FOSS Spotlight — Network Pro™',
|
|
51
51
|
description:
|
|
52
|
-
|
|
52
|
+
'FOSS Spotlight | Security, Networking, Privacy — Network Pro™',
|
|
53
53
|
},
|
|
54
|
-
|
|
55
|
-
title:
|
|
54
|
+
'/privacy-dashboard': {
|
|
55
|
+
title: 'Privacy Dashboard — Network Pro™',
|
|
56
56
|
description:
|
|
57
|
-
|
|
57
|
+
'Privacy Dashboard | Security, Networking, Privacy — Network Pro™',
|
|
58
58
|
},
|
|
59
|
-
|
|
60
|
-
title:
|
|
59
|
+
'/pgp': {
|
|
60
|
+
title: 'Public PGP Keys — Network Pro™',
|
|
61
61
|
description:
|
|
62
|
-
|
|
62
|
+
'Public encryption keys for secure communication | Security, Networking, Privacy — Network Pro™',
|
|
63
63
|
},
|
|
64
64
|
// Excludes redirect-only routes like /contact, /consultation, /privacy-rights
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
/** @type {MetaData} */
|
|
68
68
|
const defaultMeta = {
|
|
69
|
-
title:
|
|
69
|
+
title: 'Loading... | Network Pro™',
|
|
70
70
|
description:
|
|
71
|
-
|
|
71
|
+
'Please wait while the content loads... | Security, Networking, Privacy — Network Pro™',
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
// Export values
|
|
@@ -14,9 +14,9 @@ This file is part of Network Pro.
|
|
|
14
14
|
pgpSupportWbp,
|
|
15
15
|
vcfPng,
|
|
16
16
|
vcfWbp,
|
|
17
|
-
} from
|
|
18
|
-
import { base } from
|
|
19
|
-
import { CONSTANTS } from
|
|
17
|
+
} from '$lib';
|
|
18
|
+
import { base } from '$app/paths';
|
|
19
|
+
import { CONSTANTS } from '$lib';
|
|
20
20
|
|
|
21
21
|
// Log the base path to verify its value
|
|
22
22
|
//console.log("Base path:", base);
|
|
@@ -41,19 +41,19 @@ This file is part of Network Pro.
|
|
|
41
41
|
* HTML attribute for async image decoding
|
|
42
42
|
* @type {"async" | "sync" | "auto"}
|
|
43
43
|
*/
|
|
44
|
-
const decoding =
|
|
44
|
+
const decoding = 'async';
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* HTML attribute for lazy loading images
|
|
48
48
|
* @type {"lazy" | "eager"}
|
|
49
49
|
*/
|
|
50
|
-
const loading =
|
|
50
|
+
const loading = 'lazy';
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* CSS class for styled horizontal rule
|
|
54
54
|
* @type {string}
|
|
55
55
|
*/
|
|
56
|
-
const hrStyle =
|
|
56
|
+
const hrStyle = 'hr-styled';
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* Navigation links for the page
|
|
@@ -66,15 +66,15 @@ This file is part of Network Pro.
|
|
|
66
66
|
*/
|
|
67
67
|
const navLinks = [
|
|
68
68
|
{
|
|
69
|
-
label:
|
|
70
|
-
href:
|
|
71
|
-
target:
|
|
72
|
-
text:
|
|
69
|
+
label: 'SPDX License Identifier',
|
|
70
|
+
href: 'https://spdx.dev/learn/handling-license-info',
|
|
71
|
+
target: '_blank',
|
|
72
|
+
text: 'CC-BY-4.0 OR GPL-3.0-or-later',
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
label:
|
|
76
|
-
href:
|
|
77
|
-
target:
|
|
75
|
+
label: 'Docs',
|
|
76
|
+
href: 'https://docs.netwk.pro',
|
|
77
|
+
target: '_self',
|
|
78
78
|
},
|
|
79
79
|
];
|
|
80
80
|
|
|
@@ -90,18 +90,18 @@ This file is part of Network Pro.
|
|
|
90
90
|
*/
|
|
91
91
|
const pgpKeys = [
|
|
92
92
|
{
|
|
93
|
-
label:
|
|
93
|
+
label: 'support@neteng.pro',
|
|
94
94
|
qrSrc: pgpSupportPng,
|
|
95
95
|
qrWbp: pgpSupportWbp,
|
|
96
|
-
keySearch:
|
|
97
|
-
fingerprint: [
|
|
96
|
+
keySearch: 'https://keys.openpgp.org/search?q=support%40neteng.pro',
|
|
97
|
+
fingerprint: ['6590B992E2E3EFF12738', '7BCE2AF093E9DEC61BA0'],
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
label:
|
|
100
|
+
label: 'contact@s.neteng.pro',
|
|
101
101
|
qrSrc: pgpContactPng,
|
|
102
102
|
qrWbp: pgpContactWbp,
|
|
103
|
-
keySearch:
|
|
104
|
-
fingerprint: [
|
|
103
|
+
keySearch: 'https://keys.openpgp.org/search?q=contact%40s.neteng.pro',
|
|
104
|
+
fingerprint: ['DF118BAA6C2D9DCDEBDC', '2DDCF99373499495F957'],
|
|
105
105
|
},
|
|
106
106
|
];
|
|
107
107
|
|
|
@@ -116,11 +116,11 @@ This file is part of Network Pro.
|
|
|
116
116
|
|
|
117
117
|
/** @type {ContactAssets} */
|
|
118
118
|
const contactAssets = {
|
|
119
|
-
vcf:
|
|
119
|
+
vcf: '/bin/contact.vcf',
|
|
120
120
|
qrSrc: vcfPng,
|
|
121
121
|
qrWbp: vcfWbp,
|
|
122
|
-
supportAsc:
|
|
123
|
-
contactAsc:
|
|
122
|
+
supportAsc: '/pgp/support@neteng.pro.asc',
|
|
123
|
+
contactAsc: '/pgp/contact@s.neteng.pro.asc',
|
|
124
124
|
};
|
|
125
125
|
</script>
|
|
126
126
|
|
|
@@ -269,7 +269,7 @@ This file is part of Network Pro.
|
|
|
269
269
|
<p
|
|
270
270
|
>Fingerprint:<br />
|
|
271
271
|
<span class="fingerprint">
|
|
272
|
-
{pgpKeys[0].fingerprint.join(
|
|
272
|
+
{pgpKeys[0].fingerprint.join('\n')}
|
|
273
273
|
</span>
|
|
274
274
|
</p>
|
|
275
275
|
</td>
|
|
@@ -294,7 +294,7 @@ This file is part of Network Pro.
|
|
|
294
294
|
<p
|
|
295
295
|
>Fingerprint:<br />
|
|
296
296
|
<span class="fingerprint">
|
|
297
|
-
{pgpKeys[1].fingerprint.join(
|
|
297
|
+
{pgpKeys[1].fingerprint.join('\n')}
|
|
298
298
|
</span>
|
|
299
299
|
</p>
|
|
300
300
|
</td>
|
|
@@ -7,11 +7,11 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import { fossData } from
|
|
11
|
-
import FossItemContent from
|
|
12
|
-
import { CONSTANTS } from
|
|
10
|
+
import { fossData } from '$lib/data/fossData.js';
|
|
11
|
+
import FossItemContent from '$lib/components/foss/FossItemContent.svelte';
|
|
12
|
+
import { CONSTANTS } from '$lib';
|
|
13
13
|
|
|
14
|
-
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
14
|
+
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
15
15
|
|
|
16
16
|
const { PAGE } = CONSTANTS;
|
|
17
17
|
|
|
@@ -32,12 +32,12 @@ This file is part of Network Pro.
|
|
|
32
32
|
|
|
33
33
|
// Now create a new object with all default values
|
|
34
34
|
return {
|
|
35
|
-
label: typedLink.label ||
|
|
36
|
-
href: typedLink.href ||
|
|
37
|
-
imgSrc: typedLink.imgSrc ||
|
|
38
|
-
imgAlt: typedLink.imgAlt ||
|
|
39
|
-
downloadText: typedLink.downloadText ||
|
|
40
|
-
downloadHref: typedLink.downloadHref ||
|
|
35
|
+
label: typedLink.label || 'Download',
|
|
36
|
+
href: typedLink.href || '#',
|
|
37
|
+
imgSrc: typedLink.imgSrc || '',
|
|
38
|
+
imgAlt: typedLink.imgAlt || '',
|
|
39
|
+
downloadText: typedLink.downloadText || '',
|
|
40
|
+
downloadHref: typedLink.downloadHref || '',
|
|
41
41
|
};
|
|
42
42
|
});
|
|
43
43
|
}
|
|
@@ -50,8 +50,8 @@ This file is part of Network Pro.
|
|
|
50
50
|
* @type {{title: string, lastUpdated: string}}
|
|
51
51
|
*/
|
|
52
52
|
const pageInfo = {
|
|
53
|
-
title:
|
|
54
|
-
lastUpdated:
|
|
53
|
+
title: 'FOSS Spotlight',
|
|
54
|
+
lastUpdated: 'June 12, 2025',
|
|
55
55
|
};
|
|
56
56
|
</script>
|
|
57
57
|
|
|
@@ -83,7 +83,7 @@ This file is part of Network Pro.
|
|
|
83
83
|
<h2>Table of Contents</h2>
|
|
84
84
|
<ul>
|
|
85
85
|
{#each processedFossData as { id, title }}
|
|
86
|
-
<li><a href={
|
|
86
|
+
<li><a href={'#' + id}>{title}</a></li>
|
|
87
87
|
{/each}
|
|
88
88
|
</ul>
|
|
89
89
|
</nav>
|
|
@@ -7,13 +7,13 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import { base } from
|
|
11
|
-
import { CONSTANTS } from
|
|
10
|
+
import { base } from '$app/paths';
|
|
11
|
+
import { CONSTANTS } from '$lib';
|
|
12
12
|
|
|
13
13
|
// Log the base path to verify its value
|
|
14
14
|
//console.log("Base path:", base);
|
|
15
15
|
|
|
16
|
-
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
16
|
+
//console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
17
17
|
|
|
18
18
|
const { COMPANY_INFO, PAGE, NAV } = CONSTANTS;
|
|
19
19
|
|
|
@@ -27,25 +27,25 @@ This file is part of Network Pro.
|
|
|
27
27
|
* URL to the external blog
|
|
28
28
|
* @type {string}
|
|
29
29
|
*/
|
|
30
|
-
const blogLink =
|
|
30
|
+
const blogLink = 'https://blog.netwk.pro';
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* CSS class for the index headings.
|
|
34
34
|
* @type {string}
|
|
35
35
|
*/
|
|
36
|
-
const classIndex =
|
|
36
|
+
const classIndex = 'index3';
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* CSS class for centered text.
|
|
40
40
|
* @type {string}
|
|
41
41
|
*/
|
|
42
|
-
const classCenter =
|
|
42
|
+
const classCenter = 'center-text';
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* CSS class for large centered text.
|
|
46
46
|
* @type {string}
|
|
47
47
|
*/
|
|
48
|
-
const classLarge =
|
|
48
|
+
const classLarge = 'large-text-center';
|
|
49
49
|
</script>
|
|
50
50
|
|
|
51
51
|
<!-- BEGIN HOME CONTENT -->
|