@networkpro/web 1.12.9 → 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.
Files changed (98) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +8 -8
  3. package/eslint.config.mjs +48 -48
  4. package/netlify/edge-functions/csp-report.js +31 -31
  5. package/package.json +1 -1
  6. package/playwright.config.js +14 -14
  7. package/postcss.config.mjs +1 -1
  8. package/scripts/auditScripts.js +16 -16
  9. package/scripts/bundleCss.js +5 -5
  10. package/scripts/checkEnv.js +6 -6
  11. package/scripts/checkNode.js +10 -10
  12. package/scripts/checkVersions.js +6 -6
  13. package/scripts/flattenHeaders.js +13 -13
  14. package/scripts/generateTest.js +5 -5
  15. package/scripts/openReport.js +3 -3
  16. package/scripts/validateHeaders.js +13 -13
  17. package/src/hooks.client.ts +1 -1
  18. package/src/hooks.server.js +31 -31
  19. package/src/lib/components/Badges.svelte +9 -9
  20. package/src/lib/components/CodeBlock.svelte +1 -1
  21. package/src/lib/components/ContainerSection.svelte +1 -1
  22. package/src/lib/components/FullWidthSection.svelte +3 -3
  23. package/src/lib/components/LegalNav.svelte +6 -6
  24. package/src/lib/components/Logo.svelte +9 -9
  25. package/src/lib/components/MetaTags.svelte +3 -3
  26. package/src/lib/components/PWAInstallButton.svelte +4 -4
  27. package/src/lib/components/RedirectPage.svelte +4 -4
  28. package/src/lib/components/SocialMedia.svelte +16 -16
  29. package/src/lib/components/foss/FossItemContent.svelte +18 -18
  30. package/src/lib/components/layout/Footer.svelte +17 -17
  31. package/src/lib/components/layout/HeaderDefault.svelte +16 -16
  32. package/src/lib/components/layout/HeaderHome.svelte +14 -14
  33. package/src/lib/images.js +34 -34
  34. package/src/lib/index.js +15 -15
  35. package/src/lib/meta.js +29 -29
  36. package/src/lib/pages/AboutContent.svelte +24 -24
  37. package/src/lib/pages/FossContent.svelte +12 -12
  38. package/src/lib/pages/HomeContent.svelte +6 -6
  39. package/src/lib/pages/LicenseContent.svelte +38 -38
  40. package/src/lib/pages/PGPContent.svelte +23 -23
  41. package/src/lib/pages/PrivacyContent.svelte +39 -39
  42. package/src/lib/pages/PrivacyDashboard.svelte +12 -12
  43. package/src/lib/pages/TermsConditionsContent.svelte +28 -28
  44. package/src/lib/pages/TermsUseContent.svelte +26 -26
  45. package/src/lib/registerServiceWorker.js +25 -25
  46. package/src/lib/stores/posthog.js +13 -13
  47. package/src/lib/stores/trackingPreferences.js +19 -19
  48. package/src/lib/unregisterServiceWorker.js +1 -1
  49. package/src/lib/utils/purify.js +4 -4
  50. package/src/lib/utils/utm.js +2 -2
  51. package/src/routes/+error.svelte +4 -4
  52. package/src/routes/+layout.js +6 -6
  53. package/src/routes/+layout.svelte +29 -29
  54. package/src/routes/+page.server.js +2 -2
  55. package/src/routes/+page.svelte +9 -9
  56. package/src/routes/about/+page.server.js +2 -2
  57. package/src/routes/about/+page.svelte +7 -7
  58. package/src/routes/api/mock-csp/+server.js +3 -3
  59. package/src/routes/consultation/+page.svelte +5 -5
  60. package/src/routes/contact/+page.svelte +5 -5
  61. package/src/routes/foss-spotlight/+page.server.js +2 -2
  62. package/src/routes/foss-spotlight/+page.svelte +7 -7
  63. package/src/routes/license/+page.server.js +2 -2
  64. package/src/routes/license/+page.svelte +7 -7
  65. package/src/routes/pgp/+page.server.js +2 -2
  66. package/src/routes/pgp/+page.svelte +7 -7
  67. package/src/routes/pgp/[key]/+server.js +9 -9
  68. package/src/routes/privacy/+page.server.js +2 -2
  69. package/src/routes/privacy/+page.svelte +7 -7
  70. package/src/routes/privacy-dashboard/+page.server.js +2 -2
  71. package/src/routes/privacy-dashboard/+page.svelte +8 -8
  72. package/src/routes/privacy-rights/+page.svelte +5 -5
  73. package/src/routes/status/+page.server.js +2 -2
  74. package/src/routes/terms-conditions/+page.server.js +2 -2
  75. package/src/routes/terms-conditions/+page.svelte +7 -7
  76. package/src/routes/terms-of-use/+page.server.js +2 -2
  77. package/src/routes/terms-of-use/+page.svelte +7 -7
  78. package/src/service-worker.js +86 -86
  79. package/static/disableSw.js +2 -2
  80. package/static/offline.html +7 -7
  81. package/stylelint.config.js +56 -56
  82. package/svelte.config.js +6 -6
  83. package/tests/e2e/app.spec.js +25 -25
  84. package/tests/e2e/mobile.spec.js +18 -18
  85. package/tests/e2e/shared/helpers.js +4 -4
  86. package/tests/internal/auditCoverage.test.js +24 -24
  87. package/tests/unit/checkEnv.test.js +10 -10
  88. package/tests/unit/checkVersions.test.js +4 -4
  89. package/tests/unit/csp-report.test.js +24 -24
  90. package/tests/unit/demo.test.js +3 -3
  91. package/tests/unit/lib/utils/purify.test.js +12 -12
  92. package/tests/unit/routes/page.svelte.test.js +10 -10
  93. package/tests/unit/unregisterServiceWorker.test.js +5 -5
  94. package/tests/unit/utm.test.js +13 -13
  95. package/vite.config.js +5 -5
  96. package/vitest-setup-client.js +4 -4
  97. package/vitest.config.client.js +15 -15
  98. package/vitest.config.server.js +13 -13
@@ -14,9 +14,9 @@ This file is part of Network Pro.
14
14
  pgpSupportWbp,
15
15
  vcfPng,
16
16
  vcfWbp,
17
- } from "$lib";
18
- import { base } from "$app/paths";
19
- import { CONSTANTS } from "$lib";
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 = "async";
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 = "lazy";
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 = "hr-styled";
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: "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",
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: "Docs",
76
- href: "https://docs.netwk.pro",
77
- target: "_self",
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: "support@neteng.pro",
93
+ label: 'support@neteng.pro',
94
94
  qrSrc: pgpSupportPng,
95
95
  qrWbp: pgpSupportWbp,
96
- keySearch: "https://keys.openpgp.org/search?q=support%40neteng.pro",
97
- fingerprint: ["6590B992E2E3EFF12738", "7BCE2AF093E9DEC61BA0"],
96
+ keySearch: 'https://keys.openpgp.org/search?q=support%40neteng.pro',
97
+ fingerprint: ['6590B992E2E3EFF12738', '7BCE2AF093E9DEC61BA0'],
98
98
  },
99
99
  {
100
- label: "contact@s.neteng.pro",
100
+ label: 'contact@s.neteng.pro',
101
101
  qrSrc: pgpContactPng,
102
102
  qrWbp: pgpContactWbp,
103
- keySearch: "https://keys.openpgp.org/search?q=contact%40s.neteng.pro",
104
- fingerprint: ["DF118BAA6C2D9DCDEBDC", "2DDCF99373499495F957"],
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: "/bin/contact.vcf",
119
+ vcf: '/bin/contact.vcf',
120
120
  qrSrc: vcfPng,
121
121
  qrWbp: vcfWbp,
122
- supportAsc: "/pgp/support@neteng.pro.asc",
123
- contactAsc: "/pgp/contact@s.neteng.pro.asc",
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("\n")}
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("\n")}
297
+ {pgpKeys[1].fingerprint.join('\n')}
298
298
  </span>
299
299
  </p>
300
300
  </td>
@@ -7,9 +7,9 @@ This file is part of Network Pro.
7
7
  ========================================================================== -->
8
8
 
9
9
  <script>
10
- import { fossData } from "$lib/data/fossData.js";
11
- import FossItemContent from "$lib/components/foss/FossItemContent.svelte";
12
- import { CONSTANTS } from "$lib";
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
14
  console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
15
15
 
@@ -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 || "Download",
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: "FOSS Spotlight",
54
- lastUpdated: "June 8, 2025",
53
+ title: 'FOSS Spotlight',
54
+ lastUpdated: 'June 8, 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={"#" + id}>{title}</a></li>
86
+ <li><a href={'#' + id}>{title}</a></li>
87
87
  {/each}
88
88
  </ul>
89
89
  </nav>
@@ -7,8 +7,8 @@ This file is part of Network Pro.
7
7
  ========================================================================== -->
8
8
 
9
9
  <script>
10
- import { base } from "$app/paths";
11
- import { CONSTANTS } from "$lib";
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);
@@ -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 = "https://blog.netwk.pro";
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 = "index3";
36
+ const classIndex = 'index3';
37
37
 
38
38
  /**
39
39
  * CSS class for centered text.
40
40
  * @type {string}
41
41
  */
42
- const classCenter = "center-text";
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 = "large-text-center";
48
+ const classLarge = 'large-text-center';
49
49
  </script>
50
50
 
51
51
  <!-- BEGIN HOME CONTENT -->
@@ -9,9 +9,9 @@ This file is part of Network Pro.
9
9
  <!-- cspell:ignore lmaterial lterms dlnotes -->
10
10
 
11
11
  <script>
12
- import { base } from "$app/paths";
13
- import { ccSvg, bySvg } from "$lib";
14
- import { CONSTANTS } from "$lib";
12
+ import { base } from '$app/paths';
13
+ import { ccSvg, bySvg } from '$lib';
14
+ import { CONSTANTS } from '$lib';
15
15
 
16
16
  // Log the base path to verify its value
17
17
  //console.log("Base path:", base);
@@ -24,7 +24,7 @@ This file is part of Network Pro.
24
24
  * URLs using the base path
25
25
  * @type {string}
26
26
  */
27
- const homeLink = base || "/";
27
+ const homeLink = base || '/';
28
28
  const contactLink = `${base}/contact`;
29
29
 
30
30
  /**
@@ -38,28 +38,28 @@ This file is part of Network Pro.
38
38
  * URL to the internal MkDocs documentation
39
39
  * @type {string}
40
40
  */
41
- const legalLink = "https://docs.netwk.pro/legal";
41
+ const legalLink = 'https://docs.netwk.pro/legal';
42
42
 
43
43
  /**
44
44
  * Table of Contents Links
45
45
  * @type {{ id: string, text: string }[]}
46
46
  */
47
47
  const tocLinks = [
48
- { id: "copyright", text: "Copyright" },
49
- { id: "trademark", text: "Trademark Ownership" },
50
- { id: "branding", text: "Restrictions on Branding and Graphics" },
51
- { id: "lmaterial", text: "Licensed Material Definition" },
52
- { id: "lterms", text: "License Terms" },
53
- { id: "dlnotes", text: "Dual Licensing Notes" },
54
- { id: "cc-by", text: "Creative Commons License (CC BY 4.0)" },
55
- { id: "gnu-gpl", text: "GNU General Public License (GPL)" },
56
- { id: "third-party", text: "Third-Party Code and Licenses" },
57
- { id: "prohibited-uses", text: "Prohibited Uses" },
58
- { id: "disclaimer", text: "Modifications and Liability Disclaimer" },
59
- { id: "support", text: "Support Disclaimer" },
60
- { id: "authoritative", text: "Authoritative Version Clause" },
61
- { id: "revisions", text: "Revisions" },
62
- { id: "contact", text: "Contact" },
48
+ { id: 'copyright', text: 'Copyright' },
49
+ { id: 'trademark', text: 'Trademark Ownership' },
50
+ { id: 'branding', text: 'Restrictions on Branding and Graphics' },
51
+ { id: 'lmaterial', text: 'Licensed Material Definition' },
52
+ { id: 'lterms', text: 'License Terms' },
53
+ { id: 'dlnotes', text: 'Dual Licensing Notes' },
54
+ { id: 'cc-by', text: 'Creative Commons License (CC BY 4.0)' },
55
+ { id: 'gnu-gpl', text: 'GNU General Public License (GPL)' },
56
+ { id: 'third-party', text: 'Third-Party Code and Licenses' },
57
+ { id: 'prohibited-uses', text: 'Prohibited Uses' },
58
+ { id: 'disclaimer', text: 'Modifications and Liability Disclaimer' },
59
+ { id: 'support', text: 'Support Disclaimer' },
60
+ { id: 'authoritative', text: 'Authoritative Version Clause' },
61
+ { id: 'revisions', text: 'Revisions' },
62
+ { id: 'contact', text: 'Contact' },
63
63
  ];
64
64
 
65
65
  /**
@@ -67,8 +67,8 @@ This file is part of Network Pro.
67
67
  * @type {{ effectiveDate: string, classSmall: string }}
68
68
  */
69
69
  const constants = {
70
- effectiveDate: "June 4, 2025",
71
- classSmall: "small-text",
70
+ effectiveDate: 'June 4, 2025',
71
+ classSmall: 'small-text',
72
72
  };
73
73
  </script>
74
74
 
@@ -101,7 +101,7 @@ This file is part of Network Pro.
101
101
  <h3>Table of Contents</h3>
102
102
  <ol>
103
103
  {#each tocLinks as link}
104
- <li><a href={"#" + link.id}>{link.text}</a></li>
104
+ <li><a href={'#' + link.id}>{link.text}</a></li>
105
105
  {/each}
106
106
  </ol>
107
107
  </nav>
@@ -124,7 +124,7 @@ This file is part of Network Pro.
124
124
  <section id={link.id}>
125
125
  <h2>{i + 1}. {link.text}</h2>
126
126
 
127
- {#if link.id === "copyright"}
127
+ {#if link.id === 'copyright'}
128
128
  <p>
129
129
  All content—including text, software, logos, graphics, documentation,
130
130
  and other materials—provided by
@@ -139,7 +139,7 @@ This file is part of Network Pro.
139
139
  </strong>
140
140
  ({COMPANY_INFO.APP_NAME}&trade;)
141
141
  </p>
142
- {:else if link.id === "trademark"}
142
+ {:else if link.id === 'trademark'}
143
143
  <p>The following trademarks are the exclusive property of the Company:</p>
144
144
  <ul>
145
145
  <li><strong>Brand Name:</strong> {COMPANY_INFO.APP_NAME}&trade;</li>
@@ -152,7 +152,7 @@ This file is part of Network Pro.
152
152
  <p
153
153
  >Unauthorized use—including use likely to cause confusion,
154
154
  misrepresentation, or disparagement—is strictly prohibited.</p>
155
- {:else if link.id === "branding"}
155
+ {:else if link.id === 'branding'}
156
156
  <p>
157
157
  Licensing under CC BY 4.0 or the GNU GPL <strong
158
158
  >expressly excludes</strong> any rights to use the Company's trademarks,
@@ -166,7 +166,7 @@ This file is part of Network Pro.
166
166
  content—requires the Company's
167
167
  <strong>prior written consent</strong>.
168
168
  </p>
169
- {:else if link.id === "lmaterial"}
169
+ {:else if link.id === 'lmaterial'}
170
170
  <p>
171
171
  "Licensed Material" refers solely to the publicly available code and
172
172
  documentation distributed through the Company's open repositories and
@@ -179,7 +179,7 @@ This file is part of Network Pro.
179
179
  the terms of the open-source or content licenses described in this
180
180
  document.
181
181
  </p>
182
- {:else if link.id === "lterms"}
182
+ {:else if link.id === 'lterms'}
183
183
  <p>This work is dual-licensed under:</p>
184
184
  <ul>
185
185
  <li>
@@ -191,7 +191,7 @@ This file is part of Network Pro.
191
191
  >GNU General Public License v3.0 or later (GNU GPL)</a>
192
192
  </li>
193
193
  </ul>
194
- {:else if link.id === "dlnotes"}
194
+ {:else if link.id === 'dlnotes'}
195
195
  <ul>
196
196
  <li>
197
197
  You may choose to use the work under either license, or both where
@@ -216,7 +216,7 @@ This file is part of Network Pro.
216
216
  </a>
217
217
  </li>
218
218
  </ul>
219
- {:else if link.id === "cc-by"}
219
+ {:else if link.id === 'cc-by'}
220
220
  <p class={constants.classSmall}>
221
221
  View / Download:
222
222
  <a href="/bin/license/CC-BY-4.0.html" target={PAGE.BLANK}>HTML</a>
@@ -309,7 +309,7 @@ This file is part of Network Pro.
309
309
  </a>
310
310
  </p>
311
311
  </code>
312
- {:else if link.id === "gnu-gpl"}
312
+ {:else if link.id === 'gnu-gpl'}
313
313
  <p class={constants.classSmall}>
314
314
  View / Download:
315
315
  <a href="/bin/license/COPYING.html" target={PAGE.BLANK}>HTML</a>
@@ -366,7 +366,7 @@ This file is part of Network Pro.
366
366
  </a>
367
367
  </p>
368
368
  </code>
369
- {:else if link.id === "third-party"}
369
+ {:else if link.id === 'third-party'}
370
370
  <p>
371
371
  Some components of the Licensed Material may include or interface with
372
372
  third-party libraries, frameworks, or assets.
@@ -389,7 +389,7 @@ This file is part of Network Pro.
389
389
  comply with all applicable third-party licenses before use, modification,
390
390
  or distribution.
391
391
  </p>
392
- {:else if link.id === "prohibited-uses"}
392
+ {:else if link.id === 'prohibited-uses'}
393
393
  <p>
394
394
  <strong>
395
395
  The following activities are strictly prohibited and may constitute
@@ -416,7 +416,7 @@ This file is part of Network Pro.
416
416
  derivative works or redistributed content
417
417
  </li>
418
418
  </ul>
419
- {:else if link.id === "disclaimer"}
419
+ {:else if link.id === 'disclaimer'}
420
420
  <p>
421
421
  Modifications, redistribution, or any use of the Licensed Material are
422
422
  performed entirely at your own risk.
@@ -442,7 +442,7 @@ This file is part of Network Pro.
442
442
  —including, without limitation, any claims or disputes brought by third parties,
443
443
  whether in contract, tort, or otherwise.
444
444
  </p>
445
- {:else if link.id === "support"}
445
+ {:else if link.id === 'support'}
446
446
  <p>
447
447
  All support provided—whether through email, GitHub, community forums, or
448
448
  other channels—is offered “as-is” and <strong
@@ -460,7 +460,7 @@ This file is part of Network Pro.
460
460
  Company and may be modified, reduced, or discontinued at any time
461
461
  without notice.
462
462
  </p>
463
- {:else if link.id === "authoritative"}
463
+ {:else if link.id === 'authoritative'}
464
464
  <p>
465
465
  In the event of any discrepancy between different versions, formats, or
466
466
  distributions of any legal document issued by the Company—including but
@@ -478,13 +478,13 @@ This file is part of Network Pro.
478
478
  of the Company's materials, services, or Licensed Material constitutes
479
479
  acceptance of the most current version then in effect.
480
480
  </p>
481
- {:else if link.id === "revisions"}
481
+ {:else if link.id === 'revisions'}
482
482
  <p>
483
483
  This legal page may be updated to comply with legal or operational
484
484
  changes. The current effective date is listed at the top of this
485
485
  document.
486
486
  </p>
487
- {:else if link.id === "contact"}
487
+ {:else if link.id === 'contact'}
488
488
  <p>
489
489
  The Company can be contacted via our
490
490
  <a rel={PAGE.REL} href={contactLink} target={PAGE.BLANK}
@@ -7,9 +7,9 @@ This file is part of Network Pro.
7
7
  ========================================================================== -->
8
8
 
9
9
  <script>
10
- import CodeBlock from "$lib/components/CodeBlock.svelte";
11
- import { base } from "$app/paths";
12
- import { CONSTANTS } from "$lib";
10
+ import CodeBlock from '$lib/components/CodeBlock.svelte';
11
+ import { base } from '$app/paths';
12
+ import { CONSTANTS } from '$lib';
13
13
 
14
14
  // Log the base path to verify its value
15
15
  //console.log("Base path:", base);
@@ -20,28 +20,28 @@ This file is part of Network Pro.
20
20
 
21
21
  const keys = [
22
22
  {
23
- name: "General Contact & Support",
24
- email: "support (at) neteng.pro",
25
- fingerprint: "6590 B992 E2E3 EFF1 2738 7BCE 2AF0 93E9 DEC6 1BA0",
26
- opgp: "https://keys.openpgp.org/search?q=support%40neteng.pro",
27
- file: "/pgp/support@neteng.pro.asc",
28
- img: "pgp-support",
23
+ name: 'General Contact & Support',
24
+ email: 'support (at) neteng.pro',
25
+ fingerprint: '6590 B992 E2E3 EFF1 2738 7BCE 2AF0 93E9 DEC6 1BA0',
26
+ opgp: 'https://keys.openpgp.org/search?q=support%40neteng.pro',
27
+ file: '/pgp/support@neteng.pro.asc',
28
+ img: 'pgp-support',
29
29
  },
30
30
  {
31
- name: "Secure Email",
32
- email: "contact (at) s.neteng.pro",
33
- fingerprint: "DF11 8BAA 6C2D 9DCD EBDC 2DDC F993 7349 9495 F957",
34
- opgp: "https://keys.openpgp.org/search?q=contact%40s.neteng.pro",
35
- file: "/pgp/contact@s.neteng.pro.asc",
36
- img: "pgp-contact",
31
+ name: 'Secure Email',
32
+ email: 'contact (at) s.neteng.pro',
33
+ fingerprint: 'DF11 8BAA 6C2D 9DCD EBDC 2DDC F993 7349 9495 F957',
34
+ opgp: 'https://keys.openpgp.org/search?q=contact%40s.neteng.pro',
35
+ file: '/pgp/contact@s.neteng.pro.asc',
36
+ img: 'pgp-contact',
37
37
  },
38
38
  {
39
- name: "Security Contact",
40
- email: "security (at) s.neteng.pro",
41
- fingerprint: "B7FE 1D4E 6CAB 3E71 4A9F DF6E 48CB 7290 C00D 0DA5",
42
- opgp: "https://keys.openpgp.org/search?q=security%40s.neteng.pro",
43
- file: "/pgp/security@s.neteng.pro.asc",
44
- img: "pgp-security",
39
+ name: 'Security Contact',
40
+ email: 'security (at) s.neteng.pro',
41
+ fingerprint: 'B7FE 1D4E 6CAB 3E71 4A9F DF6E 48CB 7290 C00D 0DA5',
42
+ opgp: 'https://keys.openpgp.org/search?q=security%40s.neteng.pro',
43
+ file: '/pgp/security@s.neteng.pro.asc',
44
+ img: 'pgp-security',
45
45
  },
46
46
  ];
47
47
 
@@ -69,7 +69,7 @@ This file is part of Network Pro.
69
69
  */
70
70
  function copy(text) {
71
71
  navigator.clipboard.writeText(text).catch((err) => {
72
- console.error("Clipboard copy failed:", err);
72
+ console.error('Clipboard copy failed:', err);
73
73
  });
74
74
  }
75
75
  </script>
@@ -112,7 +112,7 @@ This file is part of Network Pro.
112
112
  on:click={() => handleCopy(key)}
113
113
  aria-label={`Copy PGP fingerprint for ${key.name}`}
114
114
  title="Copy fingerprint to clipboard">
115
- {copiedKey === key.email ? "Copied!" : "Copy fingerprint"}
115
+ {copiedKey === key.email ? 'Copied!' : 'Copy fingerprint'}
116
116
  </button>
117
117
  </p>
118
118
  <p>