@networkpro/web 1.21.1 → 1.22.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +102 -2
  2. package/README.md +3 -10
  3. package/package.json +8 -8
  4. package/src/app.html +1 -12
  5. package/src/lib/components/Logo.svelte +2 -7
  6. package/src/lib/components/layout/HeaderDefault.svelte +2 -3
  7. package/src/lib/data/fossData.js +8 -0
  8. package/src/lib/data/pgpKeys.js +82 -0
  9. package/src/lib/images.js +46 -17
  10. package/src/lib/index.js +8 -2
  11. package/src/lib/pages/AboutContent.svelte +107 -111
  12. package/src/lib/pages/FossContent.svelte +1 -1
  13. package/src/lib/pages/HomeContent.svelte +11 -8
  14. package/src/lib/pages/LicenseContent.svelte +1 -1
  15. package/src/lib/pages/PGPContent.svelte +19 -40
  16. package/src/lib/pages/PrivacyContent.svelte +6 -3
  17. package/src/lib/pages/PrivacyDashboard.svelte +5 -2
  18. package/src/lib/pages/ServicesContent.svelte +7 -4
  19. package/src/lib/pages/TermsConditionsContent.svelte +1 -1
  20. package/src/lib/pages/TermsUseContent.svelte +3 -3
  21. package/src/lib/styles/css/default.css +1 -1
  22. package/src/lib/styles/global.min.css +1 -1
  23. package/src/lib/types/appConstants.js +6 -3
  24. package/src/service-worker.js +3 -11
  25. package/static/icon-about.png +0 -0
  26. package/static/manifest.json +17 -4
  27. package/static/pgp/support@netwk.pro.asc +77 -0
  28. package/static/sitemap.xml +5 -5
  29. package/tests/e2e/app.spec.js +8 -3
  30. package/tests/e2e/mobile.spec.js +12 -3
  31. package/src/lib/img/qr/pgp-github.png +0 -0
  32. package/src/lib/img/qr/pgp-github.webp +0 -0
  33. package/static/pgp/pgp-contact.png +0 -0
  34. package/static/pgp/pgp-contact.webp +0 -0
  35. package/static/pgp/pgp-github.png +0 -0
  36. package/static/pgp/pgp-github.webp +0 -0
  37. package/static/pgp/pgp-security.png +0 -0
  38. package/static/pgp/pgp-security.webp +0 -0
  39. package/static/pgp/pgp-support.png +0 -0
  40. package/static/pgp/pgp-support.webp +0 -0
  41. package/static/pgp/support@neteng.pro.asc +0 -47
  42. package/static/pgp/vcard.png +0 -0
  43. package/static/pgp/vcard.webp +0 -0
  44. /package/{static → src/lib}/img/powered-by-proton.svg +0 -0
@@ -3,4 +3,4 @@ Copyright © 2025 Network Pro Strategies (Network Pro™)
3
3
  SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
4
4
  This file is part of Network Pro.
5
5
  ========================================================================== */
6
- html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#111;background-color:#ffc627}a:visited,a:visited:hover{color:#cba557}a:visited:focus,a:visited:focus-visible{color:#111!important}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{break-inside:avoid;border:1px solid #999}tr,img{break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}#service-summary{color:#e6e6e6;margin-top:2rem;margin-bottom:2.5rem}.service-table{color:#e6e6e6;border-collapse:collapse;background-color:#191919;width:100%;font-size:.95rem}.service-table th,.service-table td{text-align:left;vertical-align:top;border-bottom:1px solid #333;padding:.75rem 1rem}.service-table th{color:#ffc627;text-transform:uppercase;background-color:#222;font-size:.85rem;font-weight:600}.service-table a{color:#ffc627;font-weight:500;text-decoration:none}.service-table a:hover{text-decoration:underline}.service-table tr:hover{background-color:#222;transition:background-color .3s,box-shadow .3s;box-shadow:0 0 10px 2px #ffc62740}.service-table tr.selected{background-color:#222;border-left:4px solid #ffc627;transition:background-color .3s,border-left-color .3s}.service-table tr.selected:hover{background-color:#252525;box-shadow:0 0 12px 3px #ffc62759}@media (width<=768px){.service-table{font-size:.9rem}.service-table th,.service-table td{padding:.5rem}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#cba557}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{overflow-wrap:break-word;resize:none;white-space:normal;word-break:normal;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-family:monospace;font-size:.875rem;line-height:1.125rem}.full-width-section.centered{flex-direction:column;justify-content:center;min-height:80vh;display:flex}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pgp-entry{flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.pgp-text{flex:2;min-width:250px}.pgp-qr{flex:1;min-width:150px}.obtainium-direct-label{margin:.25rem 0 .75rem;font-weight:700}.obtainium-manual-label{margin-top:.75rem;font-weight:700}.obtainium-img{width:185px;height:55px;margin-bottom:.25rem}.obtainium-margin{margin-left:4px}.obtainium-fa-down{color:#ffc627;margin-left:4px}.obtainium-icon{width:50px;height:50px}.proton-img{width:168px;height:24px}.redirect-text{text-align:center;margin-top:4rem}.redirect-content{text-align:center;margin-top:2rem;font-family:system-ui,sans-serif}.loading-spinner{border:4px solid #ddd;border-top-color:#ffc627;border-radius:50%;width:48px;height:48px;margin:2rem auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cc-link{text-decoration:none}.cc-img{vertical-align:text-bottom;margin-left:3px;display:inline-block;height:18px!important}#toc ul{padding-left:1.5rem;list-style-type:disc}#toc a{color:var(--color-primary,#ffc627);text-decoration:none}#toc a:hover{text-decoration:underline}
6
+ html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#111;background-color:#ffc627}a:visited,a:visited:hover{color:#cba557}a:visited:focus,a:visited:focus-visible{color:#111!important}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{break-inside:avoid;border:1px solid #999}tr,img{break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}#service-summary{color:#e6e6e6;margin-top:2rem;margin-bottom:2.5rem}.service-table{color:#e6e6e6;border-collapse:collapse;background-color:#191919;width:100%;font-size:.95rem}.service-table th,.service-table td{text-align:left;vertical-align:top;border-bottom:1px solid #333;padding:.75rem 1rem}.service-table th{color:#ffc627;text-transform:uppercase;background-color:#222;font-size:.85rem;font-weight:600}.service-table a{color:#ffc627;font-weight:500;text-decoration:none}.service-table a:hover{text-decoration:underline}.service-table tr:hover{background-color:#222;transition:background-color .3s,box-shadow .3s;box-shadow:0 0 10px 2px #ffc62740}.service-table tr.selected{background-color:#222;border-left:4px solid #ffc627;transition:background-color .3s,border-left-color .3s}.service-table tr.selected:hover{background-color:#252525;box-shadow:0 0 12px 3px #ffc62759}@media (width<=768px){.service-table{font-size:.9rem}.service-table th,.service-table td{padding:.5rem}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#cba557}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{overflow-wrap:break-word;resize:none;white-space:normal;word-break:normal;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-family:monospace;font-size:.875rem;line-height:1.125rem}.full-width-section.centered{flex-direction:column;justify-content:center;min-height:80vh;display:flex}.fingerprint{white-space:pre-line;font-family:monospace;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pgp-entry{flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.pgp-text{flex:2;min-width:250px}.pgp-qr{flex:1;min-width:150px}.obtainium-direct-label{margin:.25rem 0 .75rem;font-weight:700}.obtainium-manual-label{margin-top:.75rem;font-weight:700}.obtainium-img{width:185px;height:55px;margin-bottom:.25rem}.obtainium-margin{margin-left:4px}.obtainium-fa-down{color:#ffc627;margin-left:4px}.obtainium-icon{width:50px;height:50px}.proton-img{width:168px;height:24px}.redirect-text{text-align:center;margin-top:4rem}.redirect-content{text-align:center;margin-top:2rem;font-family:system-ui,sans-serif}.loading-spinner{border:4px solid #ddd;border-top-color:#ffc627;border-radius:50%;width:48px;height:48px;margin:2rem auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cc-link{text-decoration:none}.cc-img{vertical-align:text-bottom;margin-left:3px;display:inline-block;height:18px!important}#toc ul{padding-left:1.5rem;list-style-type:disc}#toc a{color:var(--color-primary,#ffc627);text-decoration:none}#toc a:hover{text-decoration:underline}
@@ -23,9 +23,12 @@ This file is part of Network Pro.
23
23
 
24
24
  /**
25
25
  * @typedef {object} ContactInfo
26
- * @property {string} EMAIL - Primary contact email
27
- * @property {string} SECURE - Secure contact email
28
- * @property {string} PRIVACY - Privacy policy email
26
+ * @property {string} EMAIL - Primary contact email (human-readable form)
27
+ * @property {string} EMAIL_LINK - Primary contact email (clickable address)
28
+ * @property {string} SECURE - Secure contact email (human-readable form)
29
+ * @property {string} SECURE_LINK - Secure contact email (clickable address)
30
+ * @property {string} PRIVACY - Privacy contact email (human-readable form)
31
+ * @property {string} PRIVACY_LINK - Privacy contact email (clickable address)
29
32
  * @property {string} PHONE - Support phone number
30
33
  */
31
34
 
@@ -30,11 +30,11 @@ const excludedAssets = [];
30
30
  const IGNORE_PATHS = new Set([
31
31
  '/.well-known/security.txt.sig',
32
32
  '/img/banner-1280x640.png',
33
+ '/img/banner-og-1200x630.png',
34
+ '/img/fb-banner.png',
33
35
  '/img/logo-transparent.png',
34
36
  '/img/logo.png',
35
37
  '/img/svelte.png',
36
- '/pgp/pgp-github.png',
37
- '/pgp/pgp-github.webp',
38
38
  '/pgp/contact@s.neteng.pro.asc',
39
39
  '/pgp/github@sl.neteng.cc.asc',
40
40
  '/pgp/security@s.neteng.pro.asc',
@@ -84,18 +84,10 @@ const REQUIRED_ASSETS = [
84
84
  '/icon-192x192.png',
85
85
  '/icon-512x512-maskable.png',
86
86
  '/icon-512x512.png',
87
+ '/icon-about.png',
87
88
  '/icon-contact.png',
88
89
  '/icon-services.png',
89
90
  '/icon-splash.png',
90
- '/img/banner-og-1200x630.png',
91
- '/pgp/pgp-contact.png',
92
- '/pgp/pgp-contact.webp',
93
- '/pgp/pgp-security.png',
94
- '/pgp/pgp-security.webp',
95
- '/pgp/pgp-support.png',
96
- '/pgp/pgp-support.webp',
97
- '/pgp/vcard.png',
98
- '/pgp/vcard.webp',
99
91
  '/manifest.json',
100
92
  '/offline.html',
101
93
  '/offline.min.css',
Binary file
@@ -3,7 +3,7 @@
3
3
  "start_url": "/?utm_source=homescreen",
4
4
  "scope": "/",
5
5
  "name": "Network Pro Strategies",
6
- "short_name": "Network Pro",
6
+ "short_name": "Network Pro",
7
7
  "description": "Access our expert cybersecurity services anytime, anywhere with our streamlined Progressive Web App. Optimized for speed, security, and mobile use, this app offers a seamless experience to explore our solutions, view project highlights, and get in touch—all in one place.",
8
8
  "lang": "en-US",
9
9
  "dir": "ltr",
@@ -69,10 +69,10 @@
69
69
  ],
70
70
  "shortcuts": [
71
71
  {
72
- "name": "Consulting Services",
72
+ "name": "On-Site Services",
73
73
  "short_name": "Services",
74
- "description": "Explore our cybersecurity services",
75
- "url": "/about?utm_source=shortcut",
74
+ "description": "Explore the services we offer",
75
+ "url": "/services?utm_source=shortcut",
76
76
  "icons": [
77
77
  {
78
78
  "src": "/icon-services.png",
@@ -81,6 +81,19 @@
81
81
  }
82
82
  ]
83
83
  },
84
+ {
85
+ "name": "About Us",
86
+ "short_name": "About",
87
+ "description": "Learn more about Network Pro™",
88
+ "url": "/about?utm_source=shortcut",
89
+ "icons": [
90
+ {
91
+ "src": "/icon-about.png",
92
+ "sizes": "96x96",
93
+ "type": "image/png"
94
+ }
95
+ ]
96
+ },
84
97
  {
85
98
  "name": "Contact Us",
86
99
  "short_name": "Contact",
@@ -0,0 +1,77 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: Network Pro Strategies <support@neteng.pro>
3
+ Comment: a.k.a.: Network Pro Strategies <contact@neteng.pro>
4
+ Comment: a.k.a.: Network Pro Strategies <github@neteng.pro>
5
+ Comment: a.k.a.: Network Pro Strategies <no-reply@neteng.pro>
6
+ Comment: a.k.a.: Network Pro Strategies <social@neteng.pro>
7
+ Comment: a.k.a.: Network Pro Strategies <website@neteng.pro>
8
+ Comment: a.k.a.: Network Pro Strategies <privacy@netwk.pro>
9
+ Comment: a.k.a.: Network Pro Strategies <support@netwk.pro>
10
+ Comment: Valid from: 3/28/2025 5:16 PM
11
+ Comment: Valid until: 3/27/2028 5:16 PM
12
+ Comment: Type: 255-bit EdDSA (secret key available)
13
+ Comment: Usage: Signing, Encryption, Certifying User IDs
14
+ Comment: Fingerprint: 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
75
+ pOdVpYLVDQ==
76
+ =v4Zv
77
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Sitemap last updated 2025-10-17 -->
2
+ <!-- Sitemap last updated 2025-10-20 -->
3
3
 
4
4
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
5
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <loc>https://netwk.pro</loc>
9
9
 
10
- <lastmod>2025-10-17</lastmod>
10
+ <lastmod>2025-10-20</lastmod>
11
11
 
12
12
  <changefreq>weekly</changefreq>
13
13
 
@@ -19,7 +19,7 @@
19
19
 
20
20
  <loc>https://netwk.pro/services</loc>
21
21
 
22
- <lastmod>2025-10-17</lastmod>
22
+ <lastmod>2025-10-20</lastmod>
23
23
 
24
24
  <changefreq>monthly</changefreq>
25
25
 
@@ -43,7 +43,7 @@
43
43
 
44
44
  <loc>https://netwk.pro/about</loc>
45
45
 
46
- <lastmod>2025-10-17</lastmod>
46
+ <lastmod>2025-10-20</lastmod>
47
47
 
48
48
  <changefreq>monthly</changefreq>
49
49
 
@@ -115,7 +115,7 @@
115
115
 
116
116
  <loc>https://netwk.pro/pgp</loc>
117
117
 
118
- <lastmod>2025-06-11</lastmod>
118
+ <lastmod>2025-10-20</lastmod>
119
119
 
120
120
  <changefreq>monthly</changefreq>
121
121
 
@@ -11,7 +11,7 @@ This file is part of Network Pro.
11
11
  * @description Runs Playwright E2E tests with desktop and root route assertions.
12
12
  * @module tests/e2e
13
13
  * @author Scott Lopez
14
- * @updated 2025-09-17
14
+ * @updated 2025-10-21
15
15
  */
16
16
 
17
17
  import { expect, test } from '@playwright/test';
@@ -24,6 +24,8 @@ import {
24
24
 
25
25
  // Root route should display nav bar and about link
26
26
  test.describe('Desktop Tests', () => {
27
+ test.setTimeout(90_000); // increase timeout for all desktop tests
28
+
27
29
  test("should display the navigation bar and 'about' link", async ({
28
30
  page,
29
31
  }) => {
@@ -67,12 +69,15 @@ test.describe('Desktop Tests', () => {
67
69
  await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
68
70
 
69
71
  const nav = await getVisibleNav(page);
70
-
71
72
  const aboutLink = nav.getByRole('link', { name: 'about' });
72
73
  await expect(aboutLink).toBeVisible();
73
74
  await aboutLink.click();
74
75
 
75
- await page.waitForURL('/about', { timeout: 60000 });
76
+ // safer wait pattern with load state
77
+ await Promise.all([
78
+ page.waitForLoadState('load'),
79
+ page.waitForURL('**/about', { timeout: 60000 }),
80
+ ]);
76
81
  await expect(page).toHaveURL(/\/about/);
77
82
  });
78
83
  }); // End Desktop Tests
@@ -11,7 +11,7 @@ This file is part of Network Pro.
11
11
  * @description Runs Playwright E2E tests with mobile assertions.
12
12
  * @module tests/e2e
13
13
  * @author Scott Lopez
14
- * @updated 2025-09-17
14
+ * @updated 2025-10-21
15
15
  */
16
16
 
17
17
  import { expect, test } from '@playwright/test';
@@ -19,6 +19,8 @@ import { getFooter, getVisibleNav, setMobileView } from './shared/helpers.js';
19
19
 
20
20
  // Mobile viewport smoke tests for the root route
21
21
  test.describe('Mobile Tests', () => {
22
+ test.setTimeout(90_000); // increase timeout for all desktop tests
23
+
22
24
  test('should display the main description text on mobile', async ({
23
25
  page,
24
26
  browserName,
@@ -57,13 +59,20 @@ test.describe('Mobile Tests', () => {
57
59
 
58
60
  await setMobileView(page);
59
61
  await page.goto('/');
62
+ await page.waitForLoadState('domcontentloaded', { timeout: 60000 });
60
63
 
61
64
  const nav = await getVisibleNav(page);
62
65
  const aboutLink = nav.getByRole('link', { name: 'about' });
63
66
  await expect(aboutLink).toBeVisible();
64
67
 
65
- await aboutLink.click();
66
- await expect(page).toHaveURL(/\/about/, { timeout: 60000 });
68
+ // combine click + wait in a Promise.all to ensure navigation completes
69
+ await Promise.all([
70
+ page.waitForLoadState('load'),
71
+ page.waitForURL('**/about', { timeout: 60000 }),
72
+ aboutLink.click(),
73
+ ]);
74
+
75
+ await expect(page).toHaveURL(/\/about/);
67
76
  });
68
77
 
69
78
  test('should display the footer on /about (mobile)', async ({
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,47 +0,0 @@
1
- -----BEGIN PGP PUBLIC KEY BLOCK-----
2
- Comment: User ID: Network Pro Strategies <support@neteng.pro>
3
- Comment: a.k.a.: Network Pro Strategies <contact@neteng.pro>
4
- Comment: a.k.a.: Network Pro Strategies <github@neteng.pro>
5
- Comment: a.k.a.: Network Pro Strategies <no-reply@neteng.pro>
6
- Comment: a.k.a.: Network Pro Strategies <social@neteng.pro>
7
- Comment: a.k.a.: Network Pro Strategies <website@neteng.pro>
8
- Comment: Valid from: 3/28/25 5:16 PM
9
- Comment: Valid until: 3/27/28 5:16 PM
10
- Comment: Type: 255-bit EdDSA (secret key available)
11
- Comment: Usage: Signing, Encryption, Certifying User IDs
12
- Comment: Fingerprint: 6590B992E2E3EFF127387BCE2AF093E9DEC61BA0
13
-
14
-
15
- mDMEZ+c71xYJKwYBBAHaRw8BAQdAXrXB9LKKHj7tgAzrCkheQe+yJ0KD50yVrHM7
16
- yOopYuW0K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHN1cHBvcnRAbmV0ZW5nLnBy
17
- bz6InAQTFgoARAIbAwUJBaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgBYh
18
- BGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzLAhkBAAoJECrwk+nexhugp9UBAJ4O
19
- J4aR6SBdYCInPri4DuRrLeLtMIT6yPN2XP0+aRH5AP4piPrWA5Qx22t7DZTF8S08
20
- 6rhDtFuslGkMab4ITA+8AbQrTmV0d29yayBQcm8gU3RyYXRlZ2llcyA8Y29udGFj
21
- dEBuZXRlbmcucHJvPoiZBBMWCgBBFiEEZZC5kuLj7/EnOHvOKvCT6d7GG6AFAmfn
22
- PJgCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQKvCT6d7G
23
- G6CBCgD/aC/WM7bOfQoTZitpluifrEQIjP6RelCpksULK7jcEzkA/iTuessO95fe
24
- 72MtCRiOjFlcVXuXfgaap0PwNmwfMz0GtCpOZXR3b3JrIFBybyBTdHJhdGVnaWVz
25
- IDxnaXRodWJAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/xJzh7zirwk+ne
26
- xhugBQJn5zyiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJ
27
- ECrwk+nexhug0tsBAKjrZMO7wfGUOiNQQr5IPzSEwOLYy0hkxq4SqOuMuPpVAP9/
28
- b3sZ0BbmTaU/+gnuXyUbMRQHLDqHh7ESRxSgll3WDLQsTmV0d29yayBQcm8gU3Ry
29
- YXRlZ2llcyA8bm8tcmVwbHlAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/x
30
- Jzh7zirwk+nexhugBQJn5zywAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
31
- Ah4HAheAAAoJECrwk+nexhugjAQA+gNrz3htQtHPTifyIps/p8CuA6LR/5F99jip
32
- 5obARSaLAQDuodGbF3NIZ5b6C98aoNQ7adj/Neg53z6rgVRHkNuiCrQqTmV0d29y
33
- ayBQcm8gU3RyYXRlZ2llcyA8c29jaWFsQG5ldGVuZy5wcm8+iJkEExYKAEEWIQRl
34
- kLmS4uPv8Sc4e84q8JPp3sYboAUCZ+c8vAIbAwUJBaOagAULCQgHAgIiAgYVCgkI
35
- CwIEFgIDAQIeBwIXgAAKCRAq8JPp3sYboE6hAQCLyAl45ty3muvvw7vpkJjhbkyp
36
- daLVTIltW6x+cotifQEAqbXMngGnwAZPxiZH/r/NbopqD57YTT+HXx62thwefw+0
37
- K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHdlYnNpdGVAbmV0ZW5nLnBybz6ImQQT
38
- FgoAQRYhBGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzHAhsDBQkFo5qABQsJCAcC
39
- AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECrwk+nexhugRUcA/RHfApSl1S+APoXN
40
- jmTki5pUk8+AD1kveRymT9g49FIVAQCtX8+cbM+9jLrg9EyyJ6kvE9btGExOOufA
41
- JNY15IdwBbg4BGfnO9cSCisGAQQBl1UBBQEBB0BiSu/MobXZljtB25Inf4cJwdoH
42
- z+gqapJHs+5y9mNPCgMBCAeIfgQYFgoAJhYhBGWQuZLi4+/xJzh7zirwk+nexhug
43
- BQJn5zvXAhsMBQkFo5qAAAoJECrwk+nexhugsXoA+QHr0FAorF0ZEgDA4wL/oZpB
44
- oIARdo9kYzL+cTi/F3g6AQCtbupe/JymVJuwLUcq3AsxXe0DLyoodT7CpOdVpYLV
45
- DQ==
46
- =pBLp
47
- -----END PGP PUBLIC KEY BLOCK-----
Binary file
Binary file
File without changes