@networkpro/web 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build-and-publish.yml +5 -4
- package/.github/workflows/lighthouse.yml +1 -1
- package/.github/workflows/meta-check.yml +1 -1
- package/.github/workflows/playwright.yml +1 -1
- package/.github/workflows/publish-test.yml +5 -4
- package/.github/workflows/templates/publish.template.yml +5 -4
- package/CHANGELOG.md +82 -1
- package/cspell.json +3 -0
- package/package.json +16 -16
- package/scripts/auditScripts.js +1 -1
- package/scripts/bundleCss.js +1 -1
- package/scripts/checkEnv.js +1 -1
- package/scripts/checkNode.js +1 -1
- package/scripts/checkVersions.js +1 -1
- package/scripts/generateTest.js +1 -1
- package/scripts/openReport.js +1 -1
- package/src/app.html +3 -6
- package/src/hooks.server.js +10 -7
- package/src/lib/components/ServiceSummaryTable.svelte +113 -0
- package/src/lib/components/index.js +2 -1
- package/src/lib/components/layout/HeaderDefault.svelte +3 -1
- package/src/lib/components/layout/HeaderHome.svelte +6 -5
- package/src/lib/images.js +1 -1
- package/src/lib/index.js +2 -2
- package/src/lib/meta.js +14 -9
- package/src/lib/pages/AboutContent.svelte +26 -10
- package/src/lib/pages/HomeContent.svelte +11 -1
- package/src/lib/pages/LicenseContent.svelte +3 -3
- package/src/lib/pages/PrivacyContent.svelte +31 -1
- package/src/lib/pages/ServicesContent.svelte +545 -0
- package/src/lib/pages/index.js +2 -1
- package/src/lib/stores/posthog.js +2 -1
- package/src/lib/styles/css/default.css +88 -0
- package/src/lib/styles/global.min.css +1 -3
- package/src/lib/types/appConstants.js +1 -1
- package/src/lib/types/fossTypes.js +1 -1
- package/src/lib/utils/getUTMParams.js +1 -1
- package/src/lib/utils/purify.js +1 -1
- package/src/lib/utils/redirect.js +1 -1
- package/src/lib/utils/utm.js +2 -2
- package/src/routes/+layout.svelte +0 -2
- package/src/routes/consultation/+page.svelte +1 -1
- package/src/routes/services/+page.server.js +18 -0
- package/src/routes/services/+page.svelte +65 -0
- package/src/routes/status/+page.server.js +1 -1
- package/src/service-worker.js +2 -2
- package/static/bin/contact.vcf +1 -2
- package/static/disableSw.js +1 -1
- package/static/sitemap.xml +17 -5
- package/tests/e2e/app.spec.js +1 -1
- package/tests/e2e/mobile.spec.js +1 -1
- package/tests/e2e/shared/helpers.js +1 -1
- package/tests/meta/meta.test.js +1 -1
- package/tests/unit/client/lib/PWAInstallButton.test.js +1 -1
- package/tests/unit/client/lib/utils/redirect.test.js +1 -1
- package/tests/unit/server/internal/auditCoverage.test.js +1 -1
- package/tests/unit/server/lib/utils/purify.test.js +1 -1
- package/tests/unit/server/meta.test.js +1 -1
- package/vercel.json +12 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/*! ==========================================================================
|
|
2
|
-
src/lib/styles/css/global.css
|
|
3
|
-
|
|
4
2
|
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
3
|
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
4
|
This file is part of Network Pro.
|
|
7
5
|
========================================================================== */
|
|
8
|
-
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}}.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}
|
|
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}
|
package/src/lib/utils/purify.js
CHANGED
|
@@ -11,7 +11,7 @@ This file is part of Network Pro.
|
|
|
11
11
|
* @description Universal DOMPurify instance for SSR + client with safe build support.
|
|
12
12
|
* Secures untrusted HTML before injecting it into the DOM.
|
|
13
13
|
* @module src/lib/utils/
|
|
14
|
-
* @author
|
|
14
|
+
* @author Scott Lopez
|
|
15
15
|
* @updated 2025-06-01
|
|
16
16
|
*/
|
|
17
17
|
|
package/src/lib/utils/utm.js
CHANGED
|
@@ -10,8 +10,8 @@ This file is part of Network Pro.
|
|
|
10
10
|
* @file utm.js
|
|
11
11
|
* @description Appends standardized UTM parameters to a given URL.
|
|
12
12
|
* @module src/lib/utils/
|
|
13
|
-
* @author
|
|
14
|
-
* @updated 2025-
|
|
13
|
+
* @author Scott Lopez
|
|
14
|
+
* @updated 2025-10-10
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { browser } from '$app/environment';
|
|
@@ -18,8 +18,6 @@ This file is part of Network Pro.
|
|
|
18
18
|
import { ContainerSection, PWAInstallButton } from '$lib/components';
|
|
19
19
|
import { Footer, HeaderDefault, HeaderHome } from '$lib/components/layout';
|
|
20
20
|
|
|
21
|
-
//import PWAInstallButton from '$lib/components/PWAInstallButton.svelte';
|
|
22
|
-
|
|
23
21
|
import '$lib/styles/global.min.css';
|
|
24
22
|
import '$lib/styles/fa-global.css';
|
|
25
23
|
|
|
@@ -7,7 +7,7 @@ This file is part of Network Pro.
|
|
|
7
7
|
========================================================================== -->
|
|
8
8
|
|
|
9
9
|
<script>
|
|
10
|
-
import RedirectPage from '$lib/components
|
|
10
|
+
import { RedirectPage } from '$lib/components';
|
|
11
11
|
import { appendUTM } from '$lib/utils/utm.js';
|
|
12
12
|
import { getUTMParams } from '$lib/utils/getUTMParams.js';
|
|
13
13
|
import { trackingEnabled } from '$lib/stores/trackingPreferences';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/routes/services/+page.server.js
|
|
3
|
+
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
|
+
This file is part of Network Pro.
|
|
7
|
+
========================================================================== */
|
|
8
|
+
|
|
9
|
+
import { defaultMeta, meta } from '$lib/meta.js';
|
|
10
|
+
|
|
11
|
+
export const prerender = false;
|
|
12
|
+
|
|
13
|
+
/** @type {import('./$types').PageServerLoad} */
|
|
14
|
+
export function load() {
|
|
15
|
+
return {
|
|
16
|
+
meta: meta['/services'] || defaultMeta,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/services/+page.svelte
|
|
3
|
+
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
|
+
This file is part of Network Pro.
|
|
7
|
+
========================================================================== -->
|
|
8
|
+
|
|
9
|
+
<script>
|
|
10
|
+
import {
|
|
11
|
+
Badges,
|
|
12
|
+
FullWidthSection,
|
|
13
|
+
LegalNav,
|
|
14
|
+
SocialMedia,
|
|
15
|
+
MetaTags,
|
|
16
|
+
} from '$lib/components';
|
|
17
|
+
import { ServicesContent } from '$lib/pages';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @type {string}
|
|
21
|
+
* Style class for the div element.
|
|
22
|
+
*/
|
|
23
|
+
const spaceStyle = 'spacer';
|
|
24
|
+
|
|
25
|
+
export let data;
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<MetaTags title={data.meta.title} description={data.meta.description} />
|
|
29
|
+
|
|
30
|
+
<link rel="canonical" href="https://netwk.pro/services" />
|
|
31
|
+
|
|
32
|
+
<section id="services">
|
|
33
|
+
<FullWidthSection>
|
|
34
|
+
<!-- BEGIN PRIVACY POLICY -->
|
|
35
|
+
<section id="main-content">
|
|
36
|
+
<ServicesContent />
|
|
37
|
+
</section>
|
|
38
|
+
<!-- END PRIVACY POLICY -->
|
|
39
|
+
|
|
40
|
+
<div class={spaceStyle}></div>
|
|
41
|
+
|
|
42
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
43
|
+
<section id="social-media">
|
|
44
|
+
<SocialMedia />
|
|
45
|
+
</section>
|
|
46
|
+
<!-- END SOCIAL MEDIA -->
|
|
47
|
+
|
|
48
|
+
<hr />
|
|
49
|
+
|
|
50
|
+
<div class={spaceStyle}></div>
|
|
51
|
+
|
|
52
|
+
<!-- BEGIN LEGAL -->
|
|
53
|
+
<section id="legal-nav">
|
|
54
|
+
<LegalNav />
|
|
55
|
+
</section>
|
|
56
|
+
<!-- END LEGAL -->
|
|
57
|
+
|
|
58
|
+
<div class={spaceStyle}></div>
|
|
59
|
+
|
|
60
|
+
<!-- BEGIN BADGES -->
|
|
61
|
+
<section id="badges">
|
|
62
|
+
<Badges />
|
|
63
|
+
</section>
|
|
64
|
+
</FullWidthSection>
|
|
65
|
+
</section>
|
package/src/service-worker.js
CHANGED
|
@@ -39,8 +39,6 @@ const IGNORE_PATHS = new Set([
|
|
|
39
39
|
'/pgp/github@sl.neteng.cc.asc',
|
|
40
40
|
'/pgp/security@s.neteng.pro.asc',
|
|
41
41
|
'/pgp/support@neteng.pro.asc',
|
|
42
|
-
'/pgp/vcard.png',
|
|
43
|
-
'/pgp/vcard.webp',
|
|
44
42
|
'/screenshots/desktop-foss.png',
|
|
45
43
|
'/webfonts/fa-brands-400.ttf',
|
|
46
44
|
'/webfonts/fa-solid-900.ttf',
|
|
@@ -96,6 +94,8 @@ const REQUIRED_ASSETS = [
|
|
|
96
94
|
'/pgp/pgp-security.webp',
|
|
97
95
|
'/pgp/pgp-support.png',
|
|
98
96
|
'/pgp/pgp-support.webp',
|
|
97
|
+
'/pgp/vcard.png',
|
|
98
|
+
'/pgp/vcard.webp',
|
|
99
99
|
'/manifest.json',
|
|
100
100
|
'/offline.html',
|
|
101
101
|
'/offline.min.css',
|
package/static/bin/contact.vcf
CHANGED
|
@@ -3,11 +3,10 @@ VERSION:3.0
|
|
|
3
3
|
FN:Scott Lopez
|
|
4
4
|
N:Lopez;Scott
|
|
5
5
|
TEL;TYPE=WORK,PREF=1:(623) 252-4350
|
|
6
|
-
EMAIL;TYPE=HOME:github@sl.neteng.cc
|
|
7
6
|
EMAIL;TYPE=WORK:support@neteng.pro
|
|
8
7
|
EMAIL;TYPE=Secure:business@s.neteng.pro
|
|
9
8
|
ADR;TYPE=WORK:;;Peoria\, AZ 85382\nUS
|
|
10
9
|
ORG:Network Pro Strategies
|
|
11
|
-
TITLE:
|
|
10
|
+
TITLE:Network Engineer
|
|
12
11
|
URL:https://netwk.pro
|
|
13
12
|
END:VCARD
|
package/static/disableSw.js
CHANGED
|
@@ -10,7 +10,7 @@ This file is part of Network Pro.
|
|
|
10
10
|
* @file disableSw.js
|
|
11
11
|
* @description Allows for Service Worker to be disabled for debugging by appending ?nosw to the path.
|
|
12
12
|
* @module static
|
|
13
|
-
* @author
|
|
13
|
+
* @author Scott Lopez
|
|
14
14
|
* @updated 2025-10-05
|
|
15
15
|
*/
|
|
16
16
|
|
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-17 -->
|
|
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-17</lastmod>
|
|
11
11
|
|
|
12
12
|
<changefreq>weekly</changefreq>
|
|
13
13
|
|
|
@@ -15,6 +15,18 @@
|
|
|
15
15
|
|
|
16
16
|
</url>
|
|
17
17
|
|
|
18
|
+
<url>
|
|
19
|
+
|
|
20
|
+
<loc>https://netwk.pro/services</loc>
|
|
21
|
+
|
|
22
|
+
<lastmod>2025-10-17</lastmod>
|
|
23
|
+
|
|
24
|
+
<changefreq>monthly</changefreq>
|
|
25
|
+
|
|
26
|
+
<priority>0.8</priority>
|
|
27
|
+
|
|
28
|
+
</url>
|
|
29
|
+
|
|
18
30
|
<url>
|
|
19
31
|
|
|
20
32
|
<loc>https://netwk.pro/foss-spotlight</loc>
|
|
@@ -31,7 +43,7 @@
|
|
|
31
43
|
|
|
32
44
|
<loc>https://netwk.pro/about</loc>
|
|
33
45
|
|
|
34
|
-
<lastmod>2025-10-
|
|
46
|
+
<lastmod>2025-10-17</lastmod>
|
|
35
47
|
|
|
36
48
|
<changefreq>monthly</changefreq>
|
|
37
49
|
|
|
@@ -55,7 +67,7 @@
|
|
|
55
67
|
|
|
56
68
|
<loc>https://netwk.pro/privacy</loc>
|
|
57
69
|
|
|
58
|
-
<lastmod>2025-
|
|
70
|
+
<lastmod>2025-10-17</lastmod>
|
|
59
71
|
|
|
60
72
|
<changefreq>monthly</changefreq>
|
|
61
73
|
|
|
@@ -67,7 +79,7 @@
|
|
|
67
79
|
|
|
68
80
|
<loc>https://netwk.pro/license</loc>
|
|
69
81
|
|
|
70
|
-
<lastmod>2025-
|
|
82
|
+
<lastmod>2025-10-09</lastmod>
|
|
71
83
|
|
|
72
84
|
<changefreq>monthly</changefreq>
|
|
73
85
|
|
package/tests/e2e/app.spec.js
CHANGED
package/tests/e2e/mobile.spec.js
CHANGED
package/tests/meta/meta.test.js
CHANGED
package/vercel.json
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
3
|
+
"version": 2,
|
|
2
4
|
"redirects": [
|
|
3
5
|
{
|
|
4
6
|
"source": "/privacy-policy",
|
|
@@ -30,5 +32,15 @@
|
|
|
30
32
|
"destination": "/foss-spotlight/:path*",
|
|
31
33
|
"permanent": true
|
|
32
34
|
}
|
|
35
|
+
],
|
|
36
|
+
"rewrites": [
|
|
37
|
+
{
|
|
38
|
+
"source": "/relay-MSR0/static/(.*)",
|
|
39
|
+
"destination": "https://us-assets.i.posthog.com/static/$1"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"source": "/relay-MSR0/(.*)",
|
|
43
|
+
"destination": "https://us.i.posthog.com/$1"
|
|
44
|
+
}
|
|
33
45
|
]
|
|
34
46
|
}
|