@networkpro/web 1.12.8 → 1.13.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/CHANGELOG.md +64 -1
- package/README.md +8 -8
- package/cspell.json +1 -0
- package/eslint.config.mjs +48 -48
- package/jsconfig.template.jsonc +3 -1
- package/netlify/edge-functions/csp-report.js +31 -31
- package/package.json +6 -6
- 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/hooks.client.ts +1 -1
- package/src/hooks.server.js +31 -31
- package/src/lib/components/Badges.svelte +9 -9
- package/src/lib/components/CodeBlock.svelte +13 -0
- package/src/lib/components/ContainerSection.svelte +1 -1
- package/src/lib/components/FullWidthSection.svelte +3 -3
- package/src/lib/components/LegalNav.svelte +6 -6
- package/src/lib/components/Logo.svelte +9 -9
- package/src/lib/components/MetaTags.svelte +3 -3
- 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 +18 -18
- package/src/lib/components/layout/Footer.svelte +17 -17
- package/src/lib/components/layout/HeaderDefault.svelte +16 -16
- package/src/lib/components/layout/HeaderHome.svelte +14 -14
- package/src/lib/images.js +34 -34
- 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 +12 -12
- package/src/lib/pages/HomeContent.svelte +6 -6
- package/src/lib/pages/LicenseContent.svelte +38 -38
- package/src/lib/pages/PGPContent.svelte +61 -29
- package/src/lib/pages/PrivacyContent.svelte +39 -39
- package/src/lib/pages/PrivacyDashboard.svelte +12 -12
- package/src/lib/pages/TermsConditionsContent.svelte +28 -28
- 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 +5 -1
- package/src/lib/styles/global.min.css +1 -1
- 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 -85
- package/static/disableSw.js +2 -2
- package/static/img/powered-by-proton.svg +1 -0
- package/static/offline.html +7 -7
- package/static/sitemap.xml +64 -4
- package/stylelint.config.js +56 -56
- package/svelte.config.js +6 -6
- package/tests/e2e/app.spec.js +25 -25
- 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,8 +7,8 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import { onMount } from
|
|
11
|
-
import { fade } from
|
|
10
|
+
import { onMount } from 'svelte';
|
|
11
|
+
import { fade } from 'svelte/transition';
|
|
12
12
|
|
|
13
13
|
let show = false;
|
|
14
14
|
|
|
@@ -26,10 +26,10 @@ This file is part of Network Pro.
|
|
|
26
26
|
show = true;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
window.addEventListener(
|
|
29
|
+
window.addEventListener('pwa-install-available', handleInstallPrompt);
|
|
30
30
|
|
|
31
31
|
return () => {
|
|
32
|
-
window.removeEventListener(
|
|
32
|
+
window.removeEventListener('pwa-install-available', handleInstallPrompt);
|
|
33
33
|
};
|
|
34
34
|
});
|
|
35
35
|
|
|
@@ -7,19 +7,19 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import { onMount } from
|
|
11
|
-
import FullWidthSection from
|
|
10
|
+
import { onMount } from 'svelte';
|
|
11
|
+
import FullWidthSection from '$lib/components/FullWidthSection.svelte';
|
|
12
12
|
|
|
13
13
|
export let to;
|
|
14
14
|
export let delay = 3;
|
|
15
15
|
|
|
16
16
|
onMount(() => {
|
|
17
17
|
if (!to) {
|
|
18
|
-
console.warn(
|
|
18
|
+
console.warn('⛔ No redirect target provided');
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
console.log(
|
|
22
|
+
console.log('✅ Starting redirect to:', to);
|
|
23
23
|
|
|
24
24
|
setTimeout(() => {
|
|
25
25
|
window.location.href = to;
|
|
@@ -22,30 +22,30 @@ This file is part of Network Pro.
|
|
|
22
22
|
*/
|
|
23
23
|
const socialLinks = [
|
|
24
24
|
{
|
|
25
|
-
href:
|
|
26
|
-
label:
|
|
27
|
-
iconClass:
|
|
25
|
+
href: 'https://instagram.com/netwk_pro',
|
|
26
|
+
label: 'Instagram',
|
|
27
|
+
iconClass: 'fab fa-square-instagram fa-2x',
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
href:
|
|
31
|
-
label:
|
|
32
|
-
iconClass:
|
|
30
|
+
href: 'https://facebook.com/neteng.pro',
|
|
31
|
+
label: 'Facebook',
|
|
32
|
+
iconClass: 'fab fa-square-facebook fa-2x',
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
href:
|
|
36
|
-
label:
|
|
37
|
-
iconClass:
|
|
35
|
+
href: 'https://linkedin.com/company/netwk-pro',
|
|
36
|
+
label: 'LinkedIn',
|
|
37
|
+
iconClass: 'fab fa-linkedin fa-2x',
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
href:
|
|
41
|
-
label:
|
|
42
|
-
rel:
|
|
43
|
-
iconClass:
|
|
40
|
+
href: 'https://noc.social/@NetEng_Pro',
|
|
41
|
+
label: 'Mastodon',
|
|
42
|
+
rel: 'me noopener noreferrer', // Special rel attribute for Mastodon
|
|
43
|
+
iconClass: 'fab fa-mastodon fa-2x',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
href:
|
|
47
|
-
label:
|
|
48
|
-
iconClass:
|
|
46
|
+
href: 'https://github.com/netwk-pro/',
|
|
47
|
+
label: 'GitHub',
|
|
48
|
+
iconClass: 'fab fa-square-github fa-2x',
|
|
49
49
|
},
|
|
50
50
|
];
|
|
51
51
|
</script>
|
|
@@ -10,12 +10,12 @@ This file is part of Network Pro.
|
|
|
10
10
|
/* at-html is sanitized by DOMPurify */
|
|
11
11
|
/* eslint-disable svelte/no-at-html-tags */
|
|
12
12
|
|
|
13
|
-
import { onMount } from
|
|
14
|
-
import { sanitizeHtml } from
|
|
15
|
-
import FossFeatures from
|
|
13
|
+
import { onMount } from 'svelte';
|
|
14
|
+
import { sanitizeHtml } from '$lib/utils/purify.js';
|
|
15
|
+
import FossFeatures from '$lib/components/foss/FossFeatures.svelte';
|
|
16
16
|
// Import directly from $lib by way of image utility
|
|
17
|
-
import { obtainiumPng, obtainiumWbp } from
|
|
18
|
-
import { CONSTANTS } from
|
|
17
|
+
import { obtainiumPng, obtainiumWbp } from '$lib';
|
|
18
|
+
import { CONSTANTS } from '$lib';
|
|
19
19
|
|
|
20
20
|
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
21
21
|
|
|
@@ -23,13 +23,13 @@ This file is part of Network Pro.
|
|
|
23
23
|
|
|
24
24
|
/** @type {string} */
|
|
25
25
|
const obtainiumLink =
|
|
26
|
-
|
|
26
|
+
'https://apps.obtainium.imranr.dev/redirect.html?r=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%22%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%7D%22%7D';
|
|
27
27
|
|
|
28
28
|
/** @type {"async"} */
|
|
29
|
-
const decoding =
|
|
29
|
+
const decoding = 'async';
|
|
30
30
|
|
|
31
31
|
/** @type {"lazy"} */
|
|
32
|
-
const loading =
|
|
32
|
+
const loading = 'lazy';
|
|
33
33
|
|
|
34
34
|
/// <reference path="$lib/types/fossTypes.js" />
|
|
35
35
|
|
|
@@ -43,8 +43,8 @@ This file is part of Network Pro.
|
|
|
43
43
|
*/
|
|
44
44
|
export let isFirst = false;
|
|
45
45
|
|
|
46
|
-
let safeHeadlineDescription =
|
|
47
|
-
let safeDetailsDescription =
|
|
46
|
+
let safeHeadlineDescription = '';
|
|
47
|
+
let safeDetailsDescription = '';
|
|
48
48
|
/** @type {string[]} */
|
|
49
49
|
let safeNotes = [];
|
|
50
50
|
|
|
@@ -66,9 +66,9 @@ This file is part of Network Pro.
|
|
|
66
66
|
<picture>
|
|
67
67
|
<source srcset={fossItem.images.webp} type="image/webp" />
|
|
68
68
|
<img
|
|
69
|
-
decoding={isFirst ?
|
|
70
|
-
loading={isFirst ?
|
|
71
|
-
fetchpriority={isFirst ?
|
|
69
|
+
decoding={isFirst ? 'sync' : decoding}
|
|
70
|
+
loading={isFirst ? 'eager' : loading}
|
|
71
|
+
fetchpriority={isFirst ? 'high' : 'auto'}
|
|
72
72
|
src={fossItem.images.png}
|
|
73
73
|
alt={fossItem.imgAlt}
|
|
74
74
|
style="width: 50px; height: 50px" />
|
|
@@ -107,15 +107,15 @@ This file is part of Network Pro.
|
|
|
107
107
|
|
|
108
108
|
<div class="linksheet">
|
|
109
109
|
<!-- Special handling for LinkSheet's Obtainium link -->
|
|
110
|
-
{#if fossItem.id ===
|
|
110
|
+
{#if fossItem.id === 'linksheet'}
|
|
111
111
|
<div class="linksheet-entry">
|
|
112
112
|
<a rel={PAGE.REL} href={obtainiumLink} target={PAGE.BLANK}>
|
|
113
113
|
<picture>
|
|
114
114
|
<source srcset={obtainiumWbp} type="image/webp" />
|
|
115
115
|
<img
|
|
116
|
-
decoding={isFirst ?
|
|
117
|
-
loading={isFirst ?
|
|
118
|
-
fetchpriority={isFirst ?
|
|
116
|
+
decoding={isFirst ? 'sync' : decoding}
|
|
117
|
+
loading={isFirst ? 'eager' : loading}
|
|
118
|
+
fetchpriority={isFirst ? 'high' : 'auto'}
|
|
119
119
|
src={obtainiumPng}
|
|
120
120
|
alt="Obtainium"
|
|
121
121
|
style="width: 207px; height: 80px" />
|
|
@@ -140,7 +140,7 @@ This file is part of Network Pro.
|
|
|
140
140
|
<!-- Other links -->
|
|
141
141
|
{#each fossItem.links as { label, href, imgAlt, downloadText, downloadHref, hideLabels }, i}
|
|
142
142
|
<!-- Skip the first link for LinkSheet since we already handled it separately -->
|
|
143
|
-
{#if !(fossItem.id ===
|
|
143
|
+
{#if !(fossItem.id === 'linksheet' && i === 0)}
|
|
144
144
|
<div class="linksheet-entry">
|
|
145
145
|
{#if !hideLabels && label && href}
|
|
146
146
|
<strong>{label}:</strong>
|
|
@@ -9,10 +9,10 @@ This file is part of Network Pro.
|
|
|
9
9
|
<!-- cspell:ignore ccby gnugpl -->
|
|
10
10
|
|
|
11
11
|
<script>
|
|
12
|
-
import { base } from
|
|
12
|
+
import { base } from '$app/paths';
|
|
13
13
|
// Import icons for licenses
|
|
14
|
-
import { bySvg, ccSvg } from
|
|
15
|
-
import { CONSTANTS } from
|
|
14
|
+
import { bySvg, ccSvg } from '$lib';
|
|
15
|
+
import { CONSTANTS } from '$lib';
|
|
16
16
|
|
|
17
17
|
// Log the base path to verify its value
|
|
18
18
|
//console.log("Base path:", base);
|
|
@@ -27,10 +27,10 @@ This file is part of Network Pro.
|
|
|
27
27
|
const trademarkLink = `${base}/license#trademark`;
|
|
28
28
|
|
|
29
29
|
/** @type {string} */
|
|
30
|
-
const creatorUrl =
|
|
30
|
+
const creatorUrl = 'https://netwk.pro';
|
|
31
31
|
|
|
32
32
|
/** @type {string} */
|
|
33
|
-
const creatorSlogan =
|
|
33
|
+
const creatorSlogan = 'Locking Down Networks...';
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Icon used in a license object.
|
|
@@ -51,25 +51,25 @@ This file is part of Network Pro.
|
|
|
51
51
|
|
|
52
52
|
const licenses = [
|
|
53
53
|
{
|
|
54
|
-
type:
|
|
54
|
+
type: 'CC BY 4.0',
|
|
55
55
|
url: ccbyLink,
|
|
56
|
-
externalUrl:
|
|
56
|
+
externalUrl: 'https://creativecommons.org/licenses/by/4.0/',
|
|
57
57
|
icons: [
|
|
58
58
|
{
|
|
59
59
|
src: ccSvg,
|
|
60
|
-
alt:
|
|
60
|
+
alt: 'Creative Commons BY',
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
src: bySvg,
|
|
64
|
-
alt:
|
|
64
|
+
alt: 'Creative Commons BY',
|
|
65
65
|
},
|
|
66
66
|
],
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
type:
|
|
69
|
+
type: 'GNU GPL',
|
|
70
70
|
url: gnugplLink,
|
|
71
|
-
externalUrl:
|
|
72
|
-
description:
|
|
71
|
+
externalUrl: 'https://fsf.org',
|
|
72
|
+
description: 'Free Software Foundation',
|
|
73
73
|
},
|
|
74
74
|
];
|
|
75
75
|
|
|
@@ -78,15 +78,15 @@ This file is part of Network Pro.
|
|
|
78
78
|
* @type {Object}
|
|
79
79
|
*/
|
|
80
80
|
const namespaceAttributes = {
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
'xmlns:cc': 'http://creativecommons.org/ns#',
|
|
82
|
+
'xmlns:dct': 'http://purl.org/dc/terms/',
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* Relation attributes for license links.
|
|
87
87
|
* @type {string}
|
|
88
88
|
*/
|
|
89
|
-
const relLicense =
|
|
89
|
+
const relLicense = 'license noopener noreferrer';
|
|
90
90
|
</script>
|
|
91
91
|
|
|
92
92
|
<!-- BEGIN FOOTER -->
|
|
@@ -116,7 +116,7 @@ This file is part of Network Pro.
|
|
|
116
116
|
<p>
|
|
117
117
|
Licensed under
|
|
118
118
|
{#each licenses as license, index}
|
|
119
|
-
{#if license.type ===
|
|
119
|
+
{#if license.type === 'CC BY 4.0'}
|
|
120
120
|
<a
|
|
121
121
|
href={license.url}
|
|
122
122
|
target={PAGE.SELF}
|
|
@@ -155,7 +155,7 @@ This file is part of Network Pro.
|
|
|
155
155
|
>, either version 3 of the License or (at your option) any later
|
|
156
156
|
version.
|
|
157
157
|
{/if}
|
|
158
|
-
{index < licenses.length - 1 ?
|
|
158
|
+
{index < licenses.length - 1 ? ' and the ' : ''}
|
|
159
159
|
{/each}
|
|
160
160
|
</p>
|
|
161
161
|
</div>
|
|
@@ -7,15 +7,15 @@ 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
|
-
const homeLink = base ||
|
|
15
|
+
const homeLink = base || '/';
|
|
16
16
|
const aboutLink = `${base}/about`;
|
|
17
17
|
const fossLink = `${base}/foss-spotlight`;
|
|
18
|
-
const blogLink =
|
|
18
|
+
const blogLink = 'https://blog.netwk.pro';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Navigation link object.
|
|
@@ -31,25 +31,25 @@ This file is part of Network Pro.
|
|
|
31
31
|
* @type {NavItem[]}
|
|
32
32
|
*/
|
|
33
33
|
const nav = [
|
|
34
|
-
{ label:
|
|
35
|
-
{ label:
|
|
36
|
-
{ label:
|
|
34
|
+
{ label: 'home', href: homeLink, target: '_self', external: false },
|
|
35
|
+
{ label: 'about', href: aboutLink, target: '_self', external: false },
|
|
36
|
+
{ label: 'foss', href: fossLink, target: '_self', external: false },
|
|
37
37
|
{
|
|
38
|
-
label:
|
|
38
|
+
label: 'blog',
|
|
39
39
|
href: blogLink,
|
|
40
|
-
target:
|
|
40
|
+
target: '_self',
|
|
41
41
|
external: false,
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
label:
|
|
45
|
-
href:
|
|
46
|
-
target:
|
|
44
|
+
label: 'discussions',
|
|
45
|
+
href: 'https://github.com/netwk-pro/netwk-pro.github.io/discussions',
|
|
46
|
+
target: '_blank',
|
|
47
47
|
external: true,
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
label:
|
|
51
|
-
href:
|
|
52
|
-
target:
|
|
50
|
+
label: 'link hub',
|
|
51
|
+
href: 'https://linktr.ee/neteng_pro',
|
|
52
|
+
target: '_blank',
|
|
53
53
|
external: true,
|
|
54
54
|
},
|
|
55
55
|
];
|
|
@@ -58,7 +58,7 @@ This file is part of Network Pro.
|
|
|
58
58
|
* Relation attribute for external links.
|
|
59
59
|
* @type {string}
|
|
60
60
|
*/
|
|
61
|
-
const rel =
|
|
61
|
+
const rel = 'noopener noreferrer';
|
|
62
62
|
</script>
|
|
63
63
|
|
|
64
64
|
<!-- BEGIN DEFAULT HEADER -->
|
|
@@ -76,7 +76,7 @@ This file is part of Network Pro.
|
|
|
76
76
|
{/if}
|
|
77
77
|
<!-- Separator logic -->
|
|
78
78
|
{#if index < nav.length - 1}
|
|
79
|
-
{#if label ===
|
|
79
|
+
{#if label === 'blog'}
|
|
80
80
|
<br />
|
|
81
81
|
{:else}
|
|
82
82
|
<span class="goldseparator">|</span>
|
|
@@ -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/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 {
|
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
|
};
|