@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.
- package/CHANGELOG.md +102 -2
- package/README.md +3 -10
- package/package.json +8 -8
- package/src/app.html +1 -12
- package/src/lib/components/Logo.svelte +2 -7
- package/src/lib/components/layout/HeaderDefault.svelte +2 -3
- package/src/lib/data/fossData.js +8 -0
- package/src/lib/data/pgpKeys.js +82 -0
- package/src/lib/images.js +46 -17
- package/src/lib/index.js +8 -2
- package/src/lib/pages/AboutContent.svelte +107 -111
- package/src/lib/pages/FossContent.svelte +1 -1
- package/src/lib/pages/HomeContent.svelte +11 -8
- package/src/lib/pages/LicenseContent.svelte +1 -1
- package/src/lib/pages/PGPContent.svelte +19 -40
- package/src/lib/pages/PrivacyContent.svelte +6 -3
- package/src/lib/pages/PrivacyDashboard.svelte +5 -2
- package/src/lib/pages/ServicesContent.svelte +7 -4
- package/src/lib/pages/TermsConditionsContent.svelte +1 -1
- package/src/lib/pages/TermsUseContent.svelte +3 -3
- package/src/lib/styles/css/default.css +1 -1
- package/src/lib/styles/global.min.css +1 -1
- package/src/lib/types/appConstants.js +6 -3
- package/src/service-worker.js +3 -11
- package/static/icon-about.png +0 -0
- package/static/manifest.json +17 -4
- package/static/pgp/support@netwk.pro.asc +77 -0
- package/static/sitemap.xml +5 -5
- package/tests/e2e/app.spec.js +8 -3
- package/tests/e2e/mobile.spec.js +12 -3
- package/src/lib/img/qr/pgp-github.png +0 -0
- package/src/lib/img/qr/pgp-github.webp +0 -0
- package/static/pgp/pgp-contact.png +0 -0
- package/static/pgp/pgp-contact.webp +0 -0
- package/static/pgp/pgp-github.png +0 -0
- package/static/pgp/pgp-github.webp +0 -0
- package/static/pgp/pgp-security.png +0 -0
- package/static/pgp/pgp-security.webp +0 -0
- package/static/pgp/pgp-support.png +0 -0
- package/static/pgp/pgp-support.webp +0 -0
- package/static/pgp/support@neteng.pro.asc +0 -47
- package/static/pgp/vcard.png +0 -0
- package/static/pgp/vcard.webp +0 -0
- /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}
|
|
28
|
-
* @property {string}
|
|
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
|
|
package/src/service-worker.js
CHANGED
|
@@ -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
|
package/static/manifest.json
CHANGED
|
@@ -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": "
|
|
72
|
+
"name": "On-Site Services",
|
|
73
73
|
"short_name": "Services",
|
|
74
|
-
"description": "Explore
|
|
75
|
-
"url": "/
|
|
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: 6590B992E2E3EFF127387BCE2AF093E9DEC61BA0
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
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
|
|
75
|
+
pOdVpYLVDQ==
|
|
76
|
+
=v4Zv
|
|
77
|
+
-----END PGP PUBLIC KEY BLOCK-----
|
package/static/sitemap.xml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!-- Sitemap last updated 2025-10-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
118
|
+
<lastmod>2025-10-20</lastmod>
|
|
119
119
|
|
|
120
120
|
<changefreq>monthly</changefreq>
|
|
121
121
|
|
package/tests/e2e/app.spec.js
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
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
|
package/tests/e2e/mobile.spec.js
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
66
|
-
await
|
|
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-----
|
package/static/pgp/vcard.png
DELETED
|
Binary file
|
package/static/pgp/vcard.webp
DELETED
|
Binary file
|
|
File without changes
|