@networkpro/web 1.9.1 → 1.10.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/cspell.json +4 -0
- package/jsconfig.json +1 -0
- package/package.json +7 -7
- package/src/global.d.ts +0 -1
- package/src/lib/components/foss/FossItemContent.svelte +8 -6
- package/src/lib/components/layout/Footer.svelte +26 -54
- package/src/lib/index.js +52 -7
- package/src/lib/pages/AboutContent.svelte +20 -27
- package/src/lib/pages/FossContent.svelte +8 -13
- package/src/lib/pages/HomeContent.svelte +13 -25
- package/src/lib/pages/LicenseContent.svelte +69 -90
- package/src/lib/pages/PrivacyContent.svelte +110 -96
- package/src/lib/pages/PrivacyDashboard.svelte +57 -52
- package/src/lib/pages/TermsConditionsContent.svelte +15 -17
- package/src/lib/pages/TermsUseContent.svelte +17 -19
- package/src/lib/styles/css/default.css +9 -9
- package/src/lib/styles/global.min.css +1 -1
package/cspell.json
CHANGED
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
"anonymization",
|
|
7
7
|
"autocapture",
|
|
8
8
|
"autorun",
|
|
9
|
+
"BACKTOP",
|
|
9
10
|
"beforeinstallprompt",
|
|
10
11
|
"bootentry",
|
|
11
12
|
"ccby",
|
|
13
|
+
"CCPA",
|
|
14
|
+
"CPRA",
|
|
12
15
|
"Embedder",
|
|
13
16
|
"Ente",
|
|
14
17
|
"esbuild",
|
|
@@ -17,6 +20,7 @@
|
|
|
17
20
|
"geolocation",
|
|
18
21
|
"heliboard",
|
|
19
22
|
"homescreen",
|
|
23
|
+
"HREFTOP",
|
|
20
24
|
"Izzy",
|
|
21
25
|
"lhci",
|
|
22
26
|
"lifecycles",
|
package/jsconfig.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* =========================================================================
|
|
2
2
|
jsconfig.json
|
|
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/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./.netlify/shims.js"
|
|
6
6
|
],
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.10.1",
|
|
8
8
|
"description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"advisory",
|
|
@@ -78,9 +78,9 @@
|
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"dompurify": "^3.2.6",
|
|
81
|
-
"posthog-js": "^1.249.
|
|
81
|
+
"posthog-js": "^1.249.1",
|
|
82
82
|
"semver": "^7.7.2",
|
|
83
|
-
"svelte": "5.33.
|
|
83
|
+
"svelte": "5.33.14"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@eslint/compat": "^1.2.9",
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
"@sveltejs/vite-plugin-svelte": "5.0.3",
|
|
93
93
|
"@testing-library/jest-dom": "^6.6.3",
|
|
94
94
|
"@testing-library/svelte": "^5.2.8",
|
|
95
|
-
"@vitest/coverage-v8": "^3.
|
|
95
|
+
"@vitest/coverage-v8": "^3.2.0",
|
|
96
96
|
"autoprefixer": "^10.4.21",
|
|
97
97
|
"browserslist": "^4.25.0",
|
|
98
98
|
"eslint": "^9.28.0",
|
|
99
99
|
"eslint-config-prettier": "^10.1.5",
|
|
100
|
-
"eslint-plugin-jsdoc": "^50.7.
|
|
101
|
-
"eslint-plugin-svelte": "^3.9.
|
|
100
|
+
"eslint-plugin-jsdoc": "^50.7.1",
|
|
101
|
+
"eslint-plugin-svelte": "^3.9.1",
|
|
102
102
|
"globals": "^16.2.0",
|
|
103
103
|
"jsdom": "^26.1.0",
|
|
104
104
|
"lightningcss": "^1.30.1",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"typescript": "^5.8.3",
|
|
120
120
|
"vite": "^6.3.5",
|
|
121
121
|
"vite-plugin-lightningcss": "^0.0.5",
|
|
122
|
-
"vitest": "^3.
|
|
122
|
+
"vitest": "^3.2.0"
|
|
123
123
|
},
|
|
124
124
|
"overrides": {
|
|
125
125
|
"@sveltejs/kit": {
|
package/src/global.d.ts
CHANGED
|
@@ -15,9 +15,11 @@ This file is part of Network Pro.
|
|
|
15
15
|
import FossFeatures from "$lib/components/foss/FossFeatures.svelte";
|
|
16
16
|
// Import directly from $lib by way of image utility
|
|
17
17
|
import { obtainiumPng, obtainiumWbp } from "$lib";
|
|
18
|
+
import { CONSTANTS } from "$lib";
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
21
|
+
|
|
22
|
+
const { PAGE, NAV } = CONSTANTS;
|
|
21
23
|
|
|
22
24
|
/** @type {string} */
|
|
23
25
|
const obtainiumLink =
|
|
@@ -107,7 +109,7 @@ This file is part of Network Pro.
|
|
|
107
109
|
<!-- Special handling for LinkSheet's Obtainium link -->
|
|
108
110
|
{#if fossItem.id === "linksheet"}
|
|
109
111
|
<div class="linksheet-entry">
|
|
110
|
-
<a {
|
|
112
|
+
<a rel={PAGE.REL} href={obtainiumLink} target={PAGE.BLANK}>
|
|
111
113
|
<picture>
|
|
112
114
|
<source srcset={obtainiumWbp} type="image/webp" />
|
|
113
115
|
<img
|
|
@@ -125,8 +127,8 @@ This file is part of Network Pro.
|
|
|
125
127
|
></span>
|
|
126
128
|
<a
|
|
127
129
|
href="/assets/bin/linksheet.json"
|
|
128
|
-
download
|
|
129
130
|
type="application/json"
|
|
131
|
+
download
|
|
130
132
|
style="margin-left: 8px;"
|
|
131
133
|
target="_blank">
|
|
132
134
|
Obtainium App Config
|
|
@@ -142,7 +144,7 @@ This file is part of Network Pro.
|
|
|
142
144
|
<div class="linksheet-entry">
|
|
143
145
|
{#if !hideLabels && label && href}
|
|
144
146
|
<strong>{label}:</strong>
|
|
145
|
-
<a {
|
|
147
|
+
<a rel={PAGE.REL} {href} target={PAGE.BLANK}>{href}</a>
|
|
146
148
|
{/if}
|
|
147
149
|
</div>
|
|
148
150
|
{/if}
|
|
@@ -151,6 +153,6 @@ This file is part of Network Pro.
|
|
|
151
153
|
|
|
152
154
|
<div class="spacer"></div>
|
|
153
155
|
|
|
154
|
-
<span class="small-text"><a href=
|
|
156
|
+
<span class="small-text"><a href={NAV.HREFTOP}>{NAV.BACKTOP}</a></span>
|
|
155
157
|
</section>
|
|
156
158
|
<!-- END FOSS ITEMS -->
|
|
@@ -12,29 +12,31 @@ This file is part of Network Pro.
|
|
|
12
12
|
import { base } from "$app/paths";
|
|
13
13
|
// Import icons for licenses
|
|
14
14
|
import { bySvg, ccSvg } from "$lib";
|
|
15
|
+
import { CONSTANTS } from "$lib";
|
|
15
16
|
|
|
16
17
|
// Log the base path to verify its value
|
|
17
18
|
//console.log("Base path:", base);
|
|
18
19
|
|
|
20
|
+
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
21
|
+
|
|
22
|
+
const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS;
|
|
23
|
+
|
|
19
24
|
// Dynamic links for licensing and trademark
|
|
20
25
|
const ccbyLink = `${base}/license#cc-by`;
|
|
21
26
|
const gnugplLink = `${base}/license#gnu-gpl`;
|
|
22
27
|
const trademarkLink = `${base}/license#trademark`;
|
|
23
28
|
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* @property {string} trademark - The trademark name of the creator.
|
|
30
|
-
* @property {string} slogan - The slogan of the creator.
|
|
31
|
-
*/
|
|
29
|
+
/** @type {string} */
|
|
30
|
+
const creatorUrl = "https://netwk.pro";
|
|
31
|
+
|
|
32
|
+
/** @type {string} */
|
|
33
|
+
const creatorSlogan = "Locking Down Networks...";
|
|
32
34
|
|
|
33
35
|
/**
|
|
34
|
-
* Icon
|
|
36
|
+
* Icon used in a license object.
|
|
35
37
|
* @typedef {Object} Icon
|
|
36
|
-
* @property {string} src - The source
|
|
37
|
-
* @property {string} alt - The alt text for the
|
|
38
|
+
* @property {string} src - The image source path or URL.
|
|
39
|
+
* @property {string} alt - The alt text for the image.
|
|
38
40
|
*/
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -47,19 +49,6 @@ This file is part of Network Pro.
|
|
|
47
49
|
* @property {Icon[]} [icons] - An array of icon objects for representing the license visually.
|
|
48
50
|
*/
|
|
49
51
|
|
|
50
|
-
/**
|
|
51
|
-
* @type {Creator}
|
|
52
|
-
*/
|
|
53
|
-
const creator = {
|
|
54
|
-
name: "Network Pro Strategies",
|
|
55
|
-
url: "https://netwk.pro",
|
|
56
|
-
trademark: "Network Pro™",
|
|
57
|
-
slogan: "Locking Down Networks™",
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* @type {License[]}
|
|
62
|
-
*/
|
|
63
52
|
const licenses = [
|
|
64
53
|
{
|
|
65
54
|
type: "CC BY 4.0",
|
|
@@ -93,51 +82,34 @@ This file is part of Network Pro.
|
|
|
93
82
|
"xmlns:dct": "http://purl.org/dc/terms/",
|
|
94
83
|
};
|
|
95
84
|
|
|
96
|
-
/**
|
|
97
|
-
* Relation attributes for external links.
|
|
98
|
-
* @type {string}
|
|
99
|
-
*/
|
|
100
|
-
const rel = "noopener noreferrer";
|
|
101
|
-
|
|
102
85
|
/**
|
|
103
86
|
* Relation attributes for license links.
|
|
104
87
|
* @type {string}
|
|
105
88
|
*/
|
|
106
89
|
const relLicense = "license noopener noreferrer";
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Target attribute for opening links in the same tab.
|
|
110
|
-
* @type {string}
|
|
111
|
-
*/
|
|
112
|
-
const targetSelf = "_self";
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Target attribute for opening links in a new tab.
|
|
116
|
-
* @type {string}
|
|
117
|
-
*/
|
|
118
|
-
const targetBlank = "_blank";
|
|
119
90
|
</script>
|
|
120
91
|
|
|
121
92
|
<!-- BEGIN FOOTER -->
|
|
122
93
|
<div class="copyright" {...namespaceAttributes}>
|
|
123
94
|
<!-- Copyright Section -->
|
|
124
95
|
<p>
|
|
125
|
-
Copyright ©
|
|
96
|
+
Copyright © {COMPANY_INFO.YEAR}<br />
|
|
126
97
|
<a
|
|
127
98
|
rel="cc:attributionURL dct:creator"
|
|
128
99
|
property="cc:attributionName"
|
|
129
|
-
href={
|
|
130
|
-
target={
|
|
131
|
-
<strong>{
|
|
100
|
+
href={creatorUrl}
|
|
101
|
+
target={PAGE.BLANK}>
|
|
102
|
+
<strong>{COMPANY_INFO.NAME}</strong>
|
|
132
103
|
</a>
|
|
133
|
-
({
|
|
104
|
+
({COMPANY_INFO.APP_NAME}™)
|
|
134
105
|
</p>
|
|
135
106
|
|
|
136
107
|
<!-- Trademark Section -->
|
|
137
108
|
<p>
|
|
138
|
-
{
|
|
139
|
-
|
|
140
|
-
|
|
109
|
+
{COMPANY_INFO.APP_NAME}™, the shield logo, and the "{creatorSlogan}™"
|
|
110
|
+
slogan are
|
|
111
|
+
<a href={trademarkLink} target={PAGE.SELF}>trademarks</a>
|
|
112
|
+
of {COMPANY_INFO.NAME}.
|
|
141
113
|
</p>
|
|
142
114
|
|
|
143
115
|
<!-- Licensing Section -->
|
|
@@ -147,7 +119,7 @@ This file is part of Network Pro.
|
|
|
147
119
|
{#if license.type === "CC BY 4.0"}
|
|
148
120
|
<a
|
|
149
121
|
href={license.url}
|
|
150
|
-
target={
|
|
122
|
+
target={PAGE.SELF}
|
|
151
123
|
rel={relLicense}
|
|
152
124
|
style="display: inline-block">
|
|
153
125
|
<strong>{license.type}</strong>
|
|
@@ -156,7 +128,7 @@ This file is part of Network Pro.
|
|
|
156
128
|
{#each license.icons as icon}
|
|
157
129
|
<a
|
|
158
130
|
href={license.externalUrl}
|
|
159
|
-
target={
|
|
131
|
+
target={PAGE.BLANK}
|
|
160
132
|
rel={relLicense}
|
|
161
133
|
style="display: inline-block">
|
|
162
134
|
<img
|
|
@@ -175,11 +147,11 @@ This file is part of Network Pro.
|
|
|
175
147
|
{/each}
|
|
176
148
|
{/if}
|
|
177
149
|
{:else}
|
|
178
|
-
<a href={license.url} target={
|
|
150
|
+
<a href={license.url} target={PAGE.SELF} rel={relLicense}>
|
|
179
151
|
<strong>{license.type}</strong>
|
|
180
152
|
</a>
|
|
181
153
|
, as published by the
|
|
182
|
-
<a {
|
|
154
|
+
<a rel={PAGE.REL} href={license.externalUrl} target={PAGE.BLANK}
|
|
183
155
|
>{license.description}</a
|
|
184
156
|
>, either version 3 of the License, or (at your option) any later
|
|
185
157
|
version.
|
package/src/lib/index.js
CHANGED
|
@@ -13,7 +13,7 @@ This file is part of Network Pro.
|
|
|
13
13
|
* @description Main export point for library components, utilities, and assets
|
|
14
14
|
* @module src/lib
|
|
15
15
|
* @author SunDevil311
|
|
16
|
-
* @updated 2025-
|
|
16
|
+
* @updated 2025-06-02
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
// Re-export images from dedicated images.js file
|
|
@@ -33,13 +33,58 @@ export * from "./images.js";
|
|
|
33
33
|
// export { default as Card } from './components/Card.svelte';
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
36
|
+
* @typedef {{
|
|
37
|
+
* NAME: string,
|
|
38
|
+
* APP_NAME: string,
|
|
39
|
+
* YEAR: string
|
|
40
|
+
* }} CompanyInfo
|
|
38
41
|
*
|
|
39
|
-
* @
|
|
42
|
+
* @typedef {{
|
|
43
|
+
* EMAIL: string,
|
|
44
|
+
* SECURE: string,
|
|
45
|
+
* PRIVACY: string,
|
|
46
|
+
* PHONE: string
|
|
47
|
+
* }} ContactInfo
|
|
48
|
+
*
|
|
49
|
+
* @typedef {{
|
|
50
|
+
* BLANK: string,
|
|
51
|
+
* SELF: string,
|
|
52
|
+
* REL: string
|
|
53
|
+
* }} PageTargets
|
|
54
|
+
*
|
|
55
|
+
* @typedef {{
|
|
56
|
+
* BACKTOP: string,
|
|
57
|
+
* HREFTOP: string
|
|
58
|
+
* }} NavigationLabels
|
|
59
|
+
*
|
|
60
|
+
* @typedef {{
|
|
61
|
+
* COMPANY_INFO: CompanyInfo,
|
|
62
|
+
* CONTACT: ContactInfo,
|
|
63
|
+
* PAGE: PageTargets,
|
|
64
|
+
* NAV: NavigationLabels
|
|
65
|
+
* }} AppConstants
|
|
40
66
|
*/
|
|
67
|
+
|
|
68
|
+
/** @type {AppConstants} */
|
|
41
69
|
export const CONSTANTS = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
70
|
+
COMPANY_INFO: {
|
|
71
|
+
NAME: "Network Pro Strategies",
|
|
72
|
+
APP_NAME: "Network Pro",
|
|
73
|
+
YEAR: "2025",
|
|
74
|
+
},
|
|
75
|
+
CONTACT: {
|
|
76
|
+
EMAIL: "support (at) neteng.pro",
|
|
77
|
+
SECURE: "contact (at) s.neteng.pro",
|
|
78
|
+
PRIVACY: "privacy (at) netwk.pro",
|
|
79
|
+
PHONE: "(623) 252-4350",
|
|
80
|
+
},
|
|
81
|
+
PAGE: {
|
|
82
|
+
BLANK: "_blank",
|
|
83
|
+
REL: "noopener noreferrer",
|
|
84
|
+
SELF: "_self",
|
|
85
|
+
},
|
|
86
|
+
NAV: {
|
|
87
|
+
BACKTOP: "Back to top",
|
|
88
|
+
HREFTOP: "#top",
|
|
89
|
+
},
|
|
45
90
|
};
|
|
@@ -9,22 +9,21 @@ This file is part of Network Pro.
|
|
|
9
9
|
<script>
|
|
10
10
|
import { pgpContact, pgpSupport, vcfSrc } from "$lib";
|
|
11
11
|
import { base } from "$app/paths";
|
|
12
|
+
import { CONSTANTS } from "$lib";
|
|
12
13
|
|
|
13
14
|
// Log the base path to verify its value
|
|
14
15
|
//console.log("Base path:", base);
|
|
15
16
|
|
|
17
|
+
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
18
|
+
|
|
19
|
+
const { COMPANY_INFO, PAGE } = CONSTANTS;
|
|
20
|
+
|
|
16
21
|
/**
|
|
17
22
|
* URL to the Contact Form route, using the base path
|
|
18
23
|
* @type {string}
|
|
19
24
|
*/
|
|
20
25
|
const contactLink = `${base}/contact`;
|
|
21
26
|
|
|
22
|
-
/**
|
|
23
|
-
* Security attribute for external links
|
|
24
|
-
* @type {string}
|
|
25
|
-
*/
|
|
26
|
-
const rel = "noopener noreferrer";
|
|
27
|
-
|
|
28
27
|
/**
|
|
29
28
|
* HTML attribute for async image decoding
|
|
30
29
|
* @type {"async" | "sync" | "auto"}
|
|
@@ -43,12 +42,6 @@ This file is part of Network Pro.
|
|
|
43
42
|
*/
|
|
44
43
|
const hrStyle = "hr-styled";
|
|
45
44
|
|
|
46
|
-
/**
|
|
47
|
-
* Target attribute for opening links in new tab
|
|
48
|
-
* @type {string}
|
|
49
|
-
*/
|
|
50
|
-
const tgtBlank = "_blank";
|
|
51
|
-
|
|
52
45
|
/**
|
|
53
46
|
* Navigation links for the page
|
|
54
47
|
* @type {Array<{
|
|
@@ -116,16 +109,16 @@ This file is part of Network Pro.
|
|
|
116
109
|
<!-- BEGIN TITLE -->
|
|
117
110
|
<section id="top">
|
|
118
111
|
<span class="small-text">
|
|
119
|
-
<a {
|
|
112
|
+
<a rel={PAGE.REL} href={navLinks[0].href} target={navLinks[0].target}>
|
|
120
113
|
{navLinks[0].label}</a
|
|
121
114
|
>: <code>{navLinks[0].text}</code>
|
|
122
115
|
</span>
|
|
123
116
|
</section>
|
|
124
117
|
|
|
125
118
|
<section id="page-title">
|
|
126
|
-
<h1>About
|
|
119
|
+
<h1>About {COMPANY_INFO.APP_NAME}™</h1>
|
|
127
120
|
<p>
|
|
128
|
-
<strong>
|
|
121
|
+
<strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>
|
|
129
122
|
<br />
|
|
130
123
|
<em>Remote-First Cybersecurity & Privacy Consulting</em>
|
|
131
124
|
</p>
|
|
@@ -145,16 +138,16 @@ This file is part of Network Pro.
|
|
|
145
138
|
<sup>
|
|
146
139
|
<strong>Formats:</strong>
|
|
147
140
|
<span class="visited">HTML</span> |
|
|
148
|
-
<a href={navLinks[1].href} target={
|
|
141
|
+
<a href={navLinks[1].href} target={PAGE.BLANK}>{navLinks[1].label}</a>
|
|
149
142
|
</sup>
|
|
150
143
|
</p>
|
|
151
144
|
|
|
152
145
|
<p>
|
|
153
|
-
At <strong>
|
|
154
|
-
network security, cybersecurity, and digital privacy consulting with
|
|
155
|
-
credibility, and care. We believe that real security doesn't have to
|
|
156
|
-
the cost of user autonomy, and that privacy-minded solutions can be
|
|
157
|
-
practical and powerful.
|
|
146
|
+
At <strong>{COMPANY_INFO.NAME} ({COMPANY_INFO.APP_NAME}™)</strong>, we
|
|
147
|
+
deliver network security, cybersecurity, and digital privacy consulting with
|
|
148
|
+
clarity, credibility, and care. We believe that real security doesn't have to
|
|
149
|
+
come at the cost of user autonomy, and that privacy-minded solutions can be
|
|
150
|
+
both practical and powerful.
|
|
158
151
|
</p>
|
|
159
152
|
|
|
160
153
|
<p>
|
|
@@ -206,7 +199,7 @@ This file is part of Network Pro.
|
|
|
206
199
|
<div class="spacer"></div>
|
|
207
200
|
|
|
208
201
|
<p>
|
|
209
|
-
<a href={contactLink} target=
|
|
202
|
+
<a rel={PAGE.REL} href={contactLink} target={PAGE.BLANK}>Let's connect</a>
|
|
210
203
|
to discuss how we can help secure and strengthen your business today.
|
|
211
204
|
</p>
|
|
212
205
|
|
|
@@ -236,7 +229,7 @@ This file is part of Network Pro.
|
|
|
236
229
|
alt={`PGP Key - ${pgpKeys[0].label}`} />
|
|
237
230
|
</td>
|
|
238
231
|
<td class="pgp-col2">
|
|
239
|
-
<a {
|
|
232
|
+
<a rel={PAGE.REL} href={pgpKeys[0].keySearch} target={PAGE.BLANK}>
|
|
240
233
|
<strong>{pgpKeys[0].label}</strong>
|
|
241
234
|
</a>
|
|
242
235
|
<p
|
|
@@ -245,7 +238,7 @@ This file is part of Network Pro.
|
|
|
245
238
|
href={contactAssets.supportAsc}
|
|
246
239
|
type="application/pgp-keys"
|
|
247
240
|
download
|
|
248
|
-
target={
|
|
241
|
+
target={PAGE.BLANK}
|
|
249
242
|
>asc <span class="fas fa-file-arrow-down"></span></a
|
|
250
243
|
></strong>
|
|
251
244
|
</p>
|
|
@@ -261,7 +254,7 @@ This file is part of Network Pro.
|
|
|
261
254
|
<!-- Row 1 (Second row) has its columns swapped -->
|
|
262
255
|
<tr>
|
|
263
256
|
<td class="pgp-col1">
|
|
264
|
-
<a {
|
|
257
|
+
<a rel={PAGE.REL} href={pgpKeys[1].keySearch} target={PAGE.BLANK}>
|
|
265
258
|
<strong>{pgpKeys[1].label}</strong>
|
|
266
259
|
</a>
|
|
267
260
|
<p>
|
|
@@ -270,7 +263,7 @@ This file is part of Network Pro.
|
|
|
270
263
|
href={contactAssets.contactAsc}
|
|
271
264
|
type="application/pgp-keys"
|
|
272
265
|
download
|
|
273
|
-
target={
|
|
266
|
+
target={PAGE.BLANK}
|
|
274
267
|
>asc <span class="fas fa-file-arrow-down"></span></a
|
|
275
268
|
></strong>
|
|
276
269
|
</p>
|
|
@@ -308,7 +301,7 @@ This file is part of Network Pro.
|
|
|
308
301
|
href={contactAssets.vcf}
|
|
309
302
|
type="text/vcard"
|
|
310
303
|
download
|
|
311
|
-
target={
|
|
304
|
+
target={PAGE.BLANK}>
|
|
312
305
|
<strong
|
|
313
306
|
>vcf <span class="fas fa-file-arrow-down"></span></strong>
|
|
314
307
|
</a>
|
|
@@ -9,6 +9,11 @@ This file is part of Network Pro.
|
|
|
9
9
|
<script>
|
|
10
10
|
import { fossData } from "$lib/data/fossData.js";
|
|
11
11
|
import FossItemContent from "$lib/components/foss/FossItemContent.svelte";
|
|
12
|
+
import { CONSTANTS } from "$lib";
|
|
13
|
+
|
|
14
|
+
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
15
|
+
|
|
16
|
+
const { PAGE } = CONSTANTS;
|
|
12
17
|
|
|
13
18
|
/**
|
|
14
19
|
* Process the FOSS data
|
|
@@ -48,24 +53,14 @@ This file is part of Network Pro.
|
|
|
48
53
|
title: "FOSS Spotlight",
|
|
49
54
|
lastUpdated: "May 30, 2025",
|
|
50
55
|
};
|
|
51
|
-
|
|
52
|
-
/** @type {any} */
|
|
53
|
-
const constants = {
|
|
54
|
-
classSmall: "small-text",
|
|
55
|
-
rel: "noopener noreferrer",
|
|
56
|
-
backTop: "Back to top",
|
|
57
|
-
hrefTop: "#top",
|
|
58
|
-
targetSelf: "_self",
|
|
59
|
-
targetBlank: "_blank",
|
|
60
|
-
};
|
|
61
56
|
</script>
|
|
62
57
|
|
|
63
58
|
<section id="top">
|
|
64
|
-
<span class=
|
|
59
|
+
<span class="small-text">
|
|
65
60
|
<a
|
|
66
|
-
rel={
|
|
61
|
+
rel={PAGE.REL}
|
|
67
62
|
href="https://spdx.dev/learn/handling-license-info"
|
|
68
|
-
target={
|
|
63
|
+
target={PAGE.BLANK}>
|
|
69
64
|
SPDX License Identifier
|
|
70
65
|
</a>: <code>CC-BY-4.0 OR GPL-3.0-or-later</code>
|
|
71
66
|
</span>
|
|
@@ -8,10 +8,15 @@ This file is part of Network Pro.
|
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
10
|
import { base } from "$app/paths";
|
|
11
|
+
import { CONSTANTS } from "$lib";
|
|
11
12
|
|
|
12
13
|
// Log the base path to verify its value
|
|
13
14
|
//console.log("Base path:", base);
|
|
14
15
|
|
|
16
|
+
console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
|
|
17
|
+
|
|
18
|
+
const { COMPANY_INFO, PAGE, NAV } = CONSTANTS;
|
|
19
|
+
|
|
15
20
|
/**
|
|
16
21
|
* URL to the FOSS Spotlight page, using the base path
|
|
17
22
|
* @type {string}
|
|
@@ -41,31 +46,13 @@ This file is part of Network Pro.
|
|
|
41
46
|
* @type {string}
|
|
42
47
|
*/
|
|
43
48
|
const classLarge = "large-text-center";
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Relation attribute for external links.
|
|
47
|
-
* @type {string}
|
|
48
|
-
*/
|
|
49
|
-
const rel = "noopener noreferrer";
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Target attribute to open links in a new tab.
|
|
53
|
-
* @type {string}
|
|
54
|
-
*/
|
|
55
|
-
const targetBlank = "_blank";
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Target attribute to open links in the same tab.
|
|
59
|
-
* @type {string}
|
|
60
|
-
*/
|
|
61
|
-
const targetSelf = "_self";
|
|
62
49
|
</script>
|
|
63
50
|
|
|
64
51
|
<!-- BEGIN HOME CONTENT -->
|
|
65
52
|
<h3 class={classIndex}>🔒 Practical Cybersecurity. Trusted Expertise.</h3>
|
|
66
53
|
|
|
67
54
|
<p class={classCenter}>
|
|
68
|
-
At <strong>
|
|
55
|
+
At <strong>{COMPANY_INFO.NAME}</strong>, we specialize in network security,
|
|
69
56
|
cybersecurity, and digital privacy consulting that meets today's real-world
|
|
70
57
|
demands. Our remote-first approach combines technical depth with practical
|
|
71
58
|
solutions—leveraging a strategic mix of open source and proprietary
|
|
@@ -82,7 +69,7 @@ This file is part of Network Pro.
|
|
|
82
69
|
📡
|
|
83
70
|
<em>
|
|
84
71
|
<strong>Stay informed:</strong> Follow our
|
|
85
|
-
<a href={blogLink} target={
|
|
72
|
+
<a href={blogLink} target={PAGE.SELF}>blog</a>
|
|
86
73
|
and social channels for actionable insights, implementation guides, and the latest
|
|
87
74
|
cybersecurity developments.
|
|
88
75
|
</em>
|
|
@@ -94,13 +81,13 @@ This file is part of Network Pro.
|
|
|
94
81
|
|
|
95
82
|
<p class={classLarge}>
|
|
96
83
|
<strong>
|
|
97
|
-
<a href={blogLink} target={
|
|
84
|
+
<a href={blogLink} target={PAGE.SELF}>{COMPANY_INFO.APP_NAME} Blog</a>
|
|
98
85
|
</strong>
|
|
99
86
|
</p>
|
|
100
87
|
|
|
101
88
|
<p class={classLarge}>
|
|
102
89
|
<strong>
|
|
103
|
-
<a href={spotlightLink} target={
|
|
90
|
+
<a href={spotlightLink} target={PAGE.SELF}>FOSS Spotlight</a>
|
|
104
91
|
</strong>
|
|
105
92
|
</p>
|
|
106
93
|
|
|
@@ -109,12 +96,13 @@ This file is part of Network Pro.
|
|
|
109
96
|
<p class={classCenter}>
|
|
110
97
|
<em>
|
|
111
98
|
Join us on
|
|
112
|
-
<a {
|
|
99
|
+
<a rel={PAGE.REL} href="https://discord.neteng.pro" target={PAGE.BLANK}
|
|
100
|
+
>Discord</a>
|
|
113
101
|
or in
|
|
114
102
|
<a
|
|
115
|
-
{
|
|
103
|
+
rel={PAGE.REL}
|
|
116
104
|
href="https://github.com/netwk-pro/netwk-pro.github.io/discussions"
|
|
117
|
-
target={
|
|
105
|
+
target={PAGE.BLANK}>GitHub Discussions</a
|
|
118
106
|
>!
|
|
119
107
|
</em>
|
|
120
108
|
</p>
|