@networkpro/web 0.13.1 → 1.0.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/CODE_OF_CONDUCT.md +172 -0
- package/LICENSE.md +4 -4
- package/README.md +11 -10
- package/assets/bin/contact.vcf +13 -0
- package/assets/bin/contact@s.neteng.pro.aexpk +17 -0
- package/assets/bin/contact@s.neteng.pro.asc +17 -0
- package/assets/bin/github@sl.neteng.cc.aexpk +29 -0
- package/assets/bin/github@sl.neteng.cc.asc +29 -0
- package/assets/bin/linksheet.json +8 -0
- package/assets/bin/support@neteng.pro.aexpk +47 -0
- package/assets/bin/support@neteng.pro.asc +47 -0
- package/assets/consulting-terms.pdf +0 -0
- package/eslint.config.mjs +112 -0
- package/jsconfig.json +28 -0
- package/netlify.toml +13 -0
- package/package.json +64 -61
- package/playwright.config.js +79 -0
- package/postcss.config.mjs +14 -0
- package/scripts/bundleCss.js +40 -0
- package/src/app.d.ts +15 -0
- package/src/app.html +81 -0
- package/src/demo.spec.js +14 -0
- package/src/lib/components/Badges.svelte +74 -0
- package/src/lib/components/ContainerSection.svelte +19 -0
- package/src/lib/components/FullWidthSection.svelte +13 -0
- package/src/lib/components/LegalNav.svelte +75 -0
- package/src/lib/components/Logo.svelte +110 -0
- package/src/lib/components/SocialMedia.svelte +70 -0
- package/src/lib/components/foss/FossFeatures.svelte +24 -0
- package/src/lib/components/foss/FossItemContent.svelte +153 -0
- package/src/lib/components/layout/Footer.svelte +188 -0
- package/src/lib/components/layout/HeaderDefault.svelte +86 -0
- package/src/lib/components/layout/HeaderHome.svelte +84 -0
- package/src/lib/data/fossData.js +233 -0
- package/src/lib/images.js +77 -0
- package/src/lib/img/badges/cc-by-badge.png +0 -0
- package/src/lib/img/badges/gpl-badge.svg +1 -0
- package/src/lib/img/by.svg +1 -0
- package/src/lib/img/cc.svg +1 -0
- package/src/lib/img/logo-web.png +0 -0
- package/src/lib/img/logo-web.webp +0 -0
- package/src/lib/img/obtainium.webp +0 -0
- package/src/lib/img/posts/acode.png +0 -0
- package/src/lib/img/posts/acode.webp +0 -0
- package/src/lib/img/posts/linksheet.png +0 -0
- package/src/lib/img/posts/linksheet.webp +0 -0
- package/src/lib/img/posts/pmx.png +0 -0
- package/src/lib/img/posts/pmx.webp +0 -0
- package/src/lib/img/posts/tosdr.png +0 -0
- package/src/lib/img/posts/tosdr.webp +0 -0
- package/src/lib/img/posts/urlcheck.png +0 -0
- package/src/lib/img/posts/urlcheck.webp +0 -0
- package/src/lib/index.js +43 -0
- package/src/lib/pages/AboutContent.svelte +294 -0
- package/src/lib/pages/FossContent.svelte +109 -0
- package/src/lib/pages/HomeContent.svelte +120 -0
- package/src/lib/pages/LicenseContent.svelte +486 -0
- package/src/lib/pages/PrivacyContent.svelte +249 -0
- package/src/lib/pages/TermsConditionsContent.svelte +240 -0
- package/src/lib/pages/TermsUseContent.svelte +236 -0
- package/src/lib/registerServiceWorker.js +65 -0
- package/src/lib/styles/css/brands.css +76 -0
- package/src/lib/styles/css/brands.min.css +6 -0
- package/src/lib/styles/css/default.css +454 -0
- package/src/lib/styles/css/fontawesome.min.css +9 -0
- package/src/lib/styles/css/global.css +10 -0
- package/src/lib/styles/css/normalize.css +349 -0
- package/src/lib/styles/css/offline.css +120 -0
- package/src/lib/styles/css/solid.min.css +6 -0
- package/src/lib/styles/css/style.css +310 -0
- package/src/lib/styles/fa-global.css +10 -0
- package/src/lib/styles/global.min.css +9 -0
- package/src/lib/styles/index.js +11 -0
- package/src/lib/styles/webfonts/fa-brands-400.ttf +0 -0
- package/src/lib/styles/webfonts/fa-brands-400.woff2 +0 -0
- package/src/lib/styles/webfonts/fa-solid-900.ttf +0 -0
- package/src/lib/styles/webfonts/fa-solid-900.woff2 +0 -0
- package/src/routes/+error.svelte +43 -0
- package/src/routes/+layout.js +94 -0
- package/src/routes/+layout.svelte +110 -0
- package/src/routes/+page.svelte +77 -0
- package/src/routes/about/+page.svelte +61 -0
- package/src/routes/contact/+page.server.js +24 -0
- package/src/routes/example.svx +9 -0
- package/src/routes/foss-spotlight/+page.svelte +63 -0
- package/src/routes/license/+page.svelte +63 -0
- package/src/routes/page.svelte.test.js +18 -0
- package/src/routes/privacy-policy/+page.svelte +63 -0
- package/src/routes/privacy-rights/+page.server.js +24 -0
- package/src/routes/terms-conditions/+page.svelte +63 -0
- package/src/routes/terms-of-use/+page.svelte +63 -0
- package/src/service-worker.d.ts +4 -0
- package/src/service-worker.js +90 -0
- package/static/icon-512x512-maskable.png +0 -0
- package/static/icon-contact.png +0 -0
- package/static/icon-services.png +0 -0
- package/static/img/svelte.png +0 -0
- package/static/manifest.json +64 -0
- package/static/offline.html +79 -0
- package/static/offline.min.css +7 -0
- package/{robots.txt → static/robots.txt} +0 -2
- package/static/sitemap.xml +102 -0
- package/stylelint.config.js +118 -0
- package/svelte.config.js +56 -0
- package/tests/app.spec.js +67 -0
- package/tests/mobile.spec.js +58 -0
- package/tests-examples/demo-todo-app.spec.js +504 -0
- package/tsconfig.custom.json +39 -0
- package/vite.config.js +19 -0
- package/vitest-setup-client.js +33 -0
- package/vitest.config.client.js +34 -0
- package/vitest.config.server.js +30 -0
- package/404.html +0 -84
- package/about.html +0 -334
- package/about.html.br +0 -0
- package/about.html.gz +0 -0
- package/bundle-report.html +0 -39
- package/css/default.css +0 -1
- package/css/normalize.css +0 -1
- package/css/style.css +0 -1
- package/docs/404.html +0 -1187
- package/docs/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
- package/docs/assets/external/img.shields.io/badge/GitHub_Package_Registry-white.ed8def48.svg +0 -1
- package/docs/assets/external/img.shields.io/badge/npmjs-white.681714c1.svg +0 -1
- package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/by.svg +0 -20
- package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/cc.svg +0 -27
- package/docs/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +0 -2607
- package/docs/assets/images/favicon.png +0 -0
- package/docs/assets/javascripts/bundle.c8b220af.min.js +0 -16
- package/docs/assets/javascripts/bundle.c8b220af.min.js.map +0 -7
- package/docs/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
- package/docs/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
- package/docs/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
- package/docs/assets/javascripts/lunr/tinyseg.js +0 -206
- package/docs/assets/javascripts/lunr/wordcut.js +0 -6708
- package/docs/assets/javascripts/workers/search.f8cc74c7.min.js +0 -42
- package/docs/assets/javascripts/workers/search.f8cc74c7.min.js.map +0 -7
- package/docs/assets/stylesheets/main.2afb09e1.min.css +0 -1
- package/docs/assets/stylesheets/main.2afb09e1.min.css.map +0 -1
- package/docs/assets/stylesheets/palette.06af60db.min.css +0 -1
- package/docs/assets/stylesheets/palette.06af60db.min.css.map +0 -1
- package/docs/blog/2015/01/04/secure-secure-shell/index.html +0 -1771
- package/docs/blog/2025/04/30/our-blog-is-live/index.html +0 -1436
- package/docs/blog/archive/2015/index.html +0 -1303
- package/docs/blog/archive/2025/index.html +0 -1291
- package/docs/blog/category/security/index.html +0 -1303
- package/docs/blog/index.html +0 -1350
- package/docs/conduct/index.html +0 -1509
- package/docs/feed_json_created.json +0 -1
- package/docs/feed_json_updated.json +0 -1
- package/docs/feed_rss_created.xml +0 -1
- package/docs/feed_rss_updated.xml +0 -1
- package/docs/fontawesome/LICENSE.txt +0 -165
- package/docs/fontawesome/brands/facebook.svg +0 -1
- package/docs/fontawesome/brands/instagram.svg +0 -1
- package/docs/fontawesome/brands/linkedin.svg +0 -1
- package/docs/fontawesome/brands/mastodon.svg +0 -1
- package/docs/fontawesome/solid/at.svg +0 -1
- package/docs/index.html +0 -1395
- package/docs/legal/index.html +0 -1740
- package/docs/privacy/index.html +0 -1615
- package/docs/search/search_index.json +0 -1
- package/docs/sitemap.xml +0 -55
- package/docs/sitemap.xml.gz +0 -0
- package/docs/tags/index.html +0 -2084
- package/docs/terms-conditions/index.html +0 -1655
- package/docs/terms-use/index.html +0 -1584
- package/favicon-192.png +0 -0
- package/favicon-512.png +0 -0
- package/favicon.svg.br +0 -0
- package/favicon.svg.gz +0 -0
- package/html/spotlight.html +0 -435
- package/html/spotlight.html.br +0 -0
- package/html/spotlight.html.gz +0 -0
- package/img/banner-1280x640.png +0 -0
- package/img/banner-1440.png +0 -0
- package/img/banner-og-1200x630.png +0 -0
- package/img/favicon-template.png +0 -0
- package/img/fb-cover.png +0 -0
- package/img/fb-cover2.png +0 -0
- package/img/fsf-member.png +0 -0
- package/img/gh-logo.png +0 -0
- package/img/gpl3-small.png +0 -0
- package/img/gpl3.png +0 -0
- package/img/linkedin-banner-new.png +0 -0
- package/img/linkedin-banner.png +0 -0
- package/img/linkedin-banner2.png +0 -0
- package/img/logo-1024x1024.png +0 -0
- package/img/logo-alt.png +0 -0
- package/img/logo-elevated.png +0 -0
- package/img/logo-light-elevated.png +0 -0
- package/img/logo-light-slogan.png +0 -0
- package/img/logo-light.png +0 -0
- package/img/logo-slogan.png +0 -0
- package/img/logo-transparent-black-small.png +0 -0
- package/img/logo-transparent-black.png +0 -0
- package/img/logo-transparent-elevated.png +0 -0
- package/img/logo-transparent-slogan.png +0 -0
- package/img/mastodon-banner.png +0 -0
- package/img/netpro-logo-transparent.png +0 -0
- package/img/posts/acode.png +0 -0
- package/img/posts/linksheet.png +0 -0
- package/img/posts/tosdr.png +0 -0
- package/img/posts/urlcheck.png +0 -0
- package/img/qr/pgp-github.png +0 -0
- package/img/qr/pgp-support.png +0 -0
- package/img/qr/vcard.png +0 -0
- package/img/sd311.png +0 -0
- package/img/shield.png +0 -0
- package/img/shield.svg +0 -1
- package/img/shield.svg.br +0 -0
- package/img/shield.svg.gz +0 -0
- package/img/shield2.png +0 -0
- package/img/shield3-2000x2000.png +0 -0
- package/img/shield3-black-1024x1024.png +0 -0
- package/img/shield3-black.png +0 -0
- package/img/shield3-white.png +0 -0
- package/img/trademark.jpg +0 -0
- package/index.html +0 -268
- package/index.html.br +0 -0
- package/index.html.gz +0 -0
- package/js/app.d544156ea2ba85a7d486.mjs +0 -1
- package/js/runtime.52b1ac291305b90de3df.mjs +0 -1
- package/js/vendor/.gitkeep +0 -0
- package/legal.html +0 -535
- package/legal.html.br +0 -0
- package/legal.html.gz +0 -0
- package/privacy.html +0 -404
- package/privacy.html.br +0 -0
- package/privacy.html.gz +0 -0
- package/site.webmanifest +0 -25
- package/sitemap.xml +0 -177
- package/terms-and-conditions.html +0 -409
- package/terms-and-conditions.html.br +0 -0
- package/terms-and-conditions.html.gz +0 -0
- package/terms-of-use.html +0 -380
- package/terms-of-use.html.br +0 -0
- package/terms-of-use.html.gz +0 -0
- /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets → assets}/nsa-happy-dance.png +0 -0
- /package/{favicon.svg → src/lib/img/favicon.svg} +0 -0
- /package/{favicon-180.png → src/lib/img/icon-180x180.png} +0 -0
- /package/{img/badge_obtainium.png → src/lib/img/obtainium.png} +0 -0
- /package/{img → src/lib/img}/qr/pgp-contact.png +0 -0
- /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/pgp-github.png +0 -0
- /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/pgp-support.png +0 -0
- /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/vcard.png +0 -0
- /package/{CNAME → static/CNAME} +0 -0
- /package/{favicon.ico → static/favicon.ico} +0 -0
- /package/{docs/img/favicon.png → static/icon-192x192.png} +0 -0
- /package/{docs/img/logo.png → static/icon-512x512.png} +0 -0
- /package/{favicon-splash.png → static/icon-splash.png} +0 -0
- /package/{img → static/img}/logo-transparent.png +0 -0
- /package/{img → static/img}/logo.png +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/about/+page.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import AboutContent from "$lib/pages/AboutContent.svelte";
|
|
10
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
11
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/about" />
|
|
29
|
+
|
|
30
|
+
<section id="about">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN MAIN CONTENT -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<AboutContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END MAIN CONTENT -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
|
|
45
|
+
<hr class={hrStyle} />
|
|
46
|
+
|
|
47
|
+
<div class={spaceStyle}></div>
|
|
48
|
+
|
|
49
|
+
<!-- LEGAL NAVIGATION -->
|
|
50
|
+
<section id="legal-nav">
|
|
51
|
+
<LegalNav />
|
|
52
|
+
</section>
|
|
53
|
+
|
|
54
|
+
<div class={spaceStyle}></div>
|
|
55
|
+
|
|
56
|
+
<!-- BADGES -->
|
|
57
|
+
<section id="badges">
|
|
58
|
+
<Badges />
|
|
59
|
+
</section>
|
|
60
|
+
</FullWidthSection>
|
|
61
|
+
</section>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/routes/contact/+page.server.js
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
import { redirect } from "@sveltejs/kit";
|
|
9
|
+
|
|
10
|
+
export const prerender = false;
|
|
11
|
+
|
|
12
|
+
/** @type {import('./$types').PageServerLoad} */
|
|
13
|
+
export function load({ url }) {
|
|
14
|
+
const utmSource = url.searchParams.get("utm_source");
|
|
15
|
+
|
|
16
|
+
// Set target to your actual contact page path
|
|
17
|
+
const target =
|
|
18
|
+
"https://cloud.neteng.pro/index.php/apps/forms/s/nyWEq9fdE7kWAjqMtMySLqJc";
|
|
19
|
+
|
|
20
|
+
// Preserve the tracking parameter
|
|
21
|
+
const redirectTo = utmSource ? `${target}?utm_source=${utmSource}` : target;
|
|
22
|
+
|
|
23
|
+
throw redirect(302, redirectTo);
|
|
24
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/pages/FossSpotlightContent.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
10
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
11
|
+
import FossContent from "$lib/pages/FossContent.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/foss-spotlight" />
|
|
29
|
+
|
|
30
|
+
<section id="license">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN FOSS SPOTLIGHT -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<FossContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END FOSS SPOTLIGHT -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
<!-- END SOCIAL MEDIA -->
|
|
45
|
+
|
|
46
|
+
<hr class={hrStyle} />
|
|
47
|
+
|
|
48
|
+
<div class={spaceStyle}></div>
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN LEGAL -->
|
|
51
|
+
<section id="legal-nav">
|
|
52
|
+
<LegalNav />
|
|
53
|
+
</section>
|
|
54
|
+
<!-- END LEGAL -->
|
|
55
|
+
|
|
56
|
+
<div class={spaceStyle}></div>
|
|
57
|
+
|
|
58
|
+
<!-- BEGIN BADGES -->
|
|
59
|
+
<section id="badges">
|
|
60
|
+
<Badges />
|
|
61
|
+
</section>
|
|
62
|
+
</FullWidthSection>
|
|
63
|
+
</section>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/license/+page.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
10
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
11
|
+
import LicenseContent from "$lib/pages/LicenseContent.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/license" />
|
|
29
|
+
|
|
30
|
+
<section id="license">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN LEGAL, COPYRIGHT, AND LICENSING -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<LicenseContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END LEGAL, COPYRIGHT, AND LICENSING -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
<!-- END SOCIAL MEDIA -->
|
|
45
|
+
|
|
46
|
+
<hr class={hrStyle} />
|
|
47
|
+
|
|
48
|
+
<div class={spaceStyle}></div>
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN LEGAL -->
|
|
51
|
+
<section id="legal-nav">
|
|
52
|
+
<LegalNav />
|
|
53
|
+
</section>
|
|
54
|
+
<!-- END LEGAL -->
|
|
55
|
+
|
|
56
|
+
<div class={spaceStyle}></div>
|
|
57
|
+
|
|
58
|
+
<!-- BEGIN BADGES -->
|
|
59
|
+
<section id="badges">
|
|
60
|
+
<Badges />
|
|
61
|
+
</section>
|
|
62
|
+
</FullWidthSection>
|
|
63
|
+
</section>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/lib/page.svelte.test.js
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
import "@testing-library/jest-dom/vitest";
|
|
9
|
+
import { render, screen } from "@testing-library/svelte";
|
|
10
|
+
import { describe, expect, test } from "vitest";
|
|
11
|
+
import Page from "./+page.svelte";
|
|
12
|
+
|
|
13
|
+
describe("/+page.svelte", () => {
|
|
14
|
+
test("should render the home page section", () => {
|
|
15
|
+
render(Page);
|
|
16
|
+
expect(screen.getByTestId("home-page")).toBeInTheDocument();
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/privacy-policy/+page.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
10
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
11
|
+
import PrivacyContent from "$lib/pages/PrivacyContent.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/privacy-policy" />
|
|
29
|
+
|
|
30
|
+
<section id="privacy-policy">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN PRIVACY POLICY -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<PrivacyContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END PRIVACY POLICY -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
<!-- END SOCIAL MEDIA -->
|
|
45
|
+
|
|
46
|
+
<hr class={hrStyle} />
|
|
47
|
+
|
|
48
|
+
<div class={spaceStyle}></div>
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN LEGAL -->
|
|
51
|
+
<section id="legal-nav">
|
|
52
|
+
<LegalNav />
|
|
53
|
+
</section>
|
|
54
|
+
<!-- END LEGAL -->
|
|
55
|
+
|
|
56
|
+
<div class={spaceStyle}></div>
|
|
57
|
+
|
|
58
|
+
<!-- BEGIN BADGES -->
|
|
59
|
+
<section id="badges">
|
|
60
|
+
<Badges />
|
|
61
|
+
</section>
|
|
62
|
+
</FullWidthSection>
|
|
63
|
+
</section>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/routes/privacy-rights/+page.server.js
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
import { redirect } from "@sveltejs/kit";
|
|
9
|
+
|
|
10
|
+
export const prerender = false;
|
|
11
|
+
|
|
12
|
+
/** @type {import('./$types').PageServerLoad} */
|
|
13
|
+
export function load({ url }) {
|
|
14
|
+
const utmSource = url.searchParams.get("utm_source");
|
|
15
|
+
|
|
16
|
+
// Set target to your actual privacy rights form path
|
|
17
|
+
const target =
|
|
18
|
+
"https://cloud.neteng.pro/index.php/apps/forms/s/6HpZKZCaLwb6TXYL99nLQM8t";
|
|
19
|
+
|
|
20
|
+
// Preserve the tracking parameter
|
|
21
|
+
const redirectTo = utmSource ? `${target}?utm_source=${utmSource}` : target;
|
|
22
|
+
|
|
23
|
+
throw redirect(302, redirectTo);
|
|
24
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/terms-conditions/+page.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
10
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
11
|
+
import TermsConditionsContent from "$lib/pages/TermsConditionsContent.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/terms-conditions" />
|
|
29
|
+
|
|
30
|
+
<section id="terms-conditions">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN TERMS AND CONDITIONS -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<TermsConditionsContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END TERMS AND CONDITIONS -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
<!-- END SOCIAL MEDIA -->
|
|
45
|
+
|
|
46
|
+
<hr class={hrStyle} />
|
|
47
|
+
|
|
48
|
+
<div class={spaceStyle}></div>
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN LEGAL -->
|
|
51
|
+
<section id="legal-nav">
|
|
52
|
+
<LegalNav />
|
|
53
|
+
</section>
|
|
54
|
+
<!-- END LEGAL -->
|
|
55
|
+
|
|
56
|
+
<div class={spaceStyle}></div>
|
|
57
|
+
|
|
58
|
+
<!-- BEGIN BADGES -->
|
|
59
|
+
<section id="badges">
|
|
60
|
+
<Badges />
|
|
61
|
+
</section>
|
|
62
|
+
</FullWidthSection>
|
|
63
|
+
</section>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/routes/terms-of-use/+page.svelte
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== -->
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import Badges from "$lib/components/Badges.svelte";
|
|
10
|
+
import FullWidthSection from "$lib/components/FullWidthSection.svelte";
|
|
11
|
+
import TermsUseContent from "$lib/pages/TermsUseContent.svelte";
|
|
12
|
+
import LegalNav from "$lib/components/LegalNav.svelte";
|
|
13
|
+
import SocialMedia from "$lib/components/SocialMedia.svelte";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {string}
|
|
17
|
+
* Style class for the horizontal rule element.
|
|
18
|
+
*/
|
|
19
|
+
const hrStyle = "hr-styled";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @type {string}
|
|
23
|
+
* Style class for the div element.
|
|
24
|
+
*/
|
|
25
|
+
const spaceStyle = "spacer";
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<link rel="canonical" href="https://netwk.pro/terms-of-use" />
|
|
29
|
+
|
|
30
|
+
<section id="terms-of-use">
|
|
31
|
+
<FullWidthSection>
|
|
32
|
+
<!-- BEGIN TERMS OF USE -->
|
|
33
|
+
<section id="main-content">
|
|
34
|
+
<TermsUseContent />
|
|
35
|
+
</section>
|
|
36
|
+
<!-- END TERMS OF USE -->
|
|
37
|
+
|
|
38
|
+
<div class={spaceStyle}></div>
|
|
39
|
+
|
|
40
|
+
<!-- BEGIN SOCIAL MEDIA -->
|
|
41
|
+
<section id="social-media">
|
|
42
|
+
<SocialMedia />
|
|
43
|
+
</section>
|
|
44
|
+
<!-- END SOCIAL MEDIA -->
|
|
45
|
+
|
|
46
|
+
<hr class={hrStyle} />
|
|
47
|
+
|
|
48
|
+
<div class={spaceStyle}></div>
|
|
49
|
+
|
|
50
|
+
<!-- BEGIN LEGAL -->
|
|
51
|
+
<section id="legal-nav">
|
|
52
|
+
<LegalNav />
|
|
53
|
+
</section>
|
|
54
|
+
<!-- END LEGAL -->
|
|
55
|
+
|
|
56
|
+
<div class={spaceStyle}></div>
|
|
57
|
+
|
|
58
|
+
<!-- BEGIN BADGES -->
|
|
59
|
+
<section id="badges">
|
|
60
|
+
<Badges />
|
|
61
|
+
</section>
|
|
62
|
+
</FullWidthSection>
|
|
63
|
+
</section>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/service-worker.js
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
This file is part of Network Pro.
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
/** @type {ServiceWorkerGlobalScope} */
|
|
9
|
+
const sw = self;
|
|
10
|
+
|
|
11
|
+
import { build, files, version } from "$service-worker";
|
|
12
|
+
|
|
13
|
+
/** @type {string} */
|
|
14
|
+
const CACHE = `cache-${version}`;
|
|
15
|
+
|
|
16
|
+
/** @type {string[]} */
|
|
17
|
+
const ASSETS = Array.from(new Set([...build, ...files, "/offline.html"]));
|
|
18
|
+
|
|
19
|
+
console.log("[SW] Assets to cache:", ASSETS); // Helps debug duplicates
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @param {ExtendableEvent} event
|
|
23
|
+
*/
|
|
24
|
+
sw.addEventListener("install", (event) => {
|
|
25
|
+
/** @type {ExtendableEvent} */ (event).waitUntil(
|
|
26
|
+
caches
|
|
27
|
+
.open(CACHE)
|
|
28
|
+
.then((cache) => cache.addAll(ASSETS))
|
|
29
|
+
.then(() => sw.skipWaiting()),
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {ExtendableEvent} event
|
|
35
|
+
*/
|
|
36
|
+
sw.addEventListener("activate", (event) => {
|
|
37
|
+
/** @type {ExtendableEvent} */ (event).waitUntil(
|
|
38
|
+
(async () => {
|
|
39
|
+
const tasks = [];
|
|
40
|
+
|
|
41
|
+
if (sw.registration.navigationPreload) {
|
|
42
|
+
tasks.push(sw.registration.navigationPreload.enable());
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
tasks.push(
|
|
46
|
+
caches.keys().then((keys) =>
|
|
47
|
+
Promise.all(
|
|
48
|
+
keys.map((key) => {
|
|
49
|
+
if (key !== CACHE) return caches.delete(key);
|
|
50
|
+
}),
|
|
51
|
+
),
|
|
52
|
+
),
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
await Promise.all(tasks);
|
|
56
|
+
await sw.clients.claim();
|
|
57
|
+
})(),
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @param {FetchEvent} event
|
|
63
|
+
*/
|
|
64
|
+
sw.addEventListener("fetch", (event) => {
|
|
65
|
+
/** @type {FetchEvent} */ (event).respondWith(
|
|
66
|
+
(async () => {
|
|
67
|
+
const cached = await caches.match(event.request);
|
|
68
|
+
if (cached) return cached;
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
if (event.request.mode === "navigate") {
|
|
72
|
+
const preloadResponse = await event.preloadResponse;
|
|
73
|
+
if (preloadResponse) return preloadResponse;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return await fetch(event.request);
|
|
77
|
+
} catch {
|
|
78
|
+
if (event.request.mode === "navigate") {
|
|
79
|
+
const offline = await caches.match("/offline.html");
|
|
80
|
+
if (offline) return offline;
|
|
81
|
+
return new Response("<h1>Offline</h1>", {
|
|
82
|
+
headers: { "Content-Type": "text/html" },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return Response.error();
|
|
87
|
+
}
|
|
88
|
+
})(),
|
|
89
|
+
);
|
|
90
|
+
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Network Pro Strategies",
|
|
3
|
+
"short_name": "Network Pro",
|
|
4
|
+
"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.",
|
|
5
|
+
"start_url": "/?utm_source=homescreen",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"display_override": ["window-controls-overlay", "minimal-ui"],
|
|
8
|
+
"background_color": "#191919",
|
|
9
|
+
"theme_color": "#ffc627",
|
|
10
|
+
"icons": [
|
|
11
|
+
{
|
|
12
|
+
"src": "/icon-192x192.png",
|
|
13
|
+
"type": "image/png",
|
|
14
|
+
"sizes": "192x192"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"src": "/icon-512x512.png",
|
|
18
|
+
"type": "image/png",
|
|
19
|
+
"sizes": "512x512"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"src": "/icon-512x512-maskable.png",
|
|
23
|
+
"type": "image/png",
|
|
24
|
+
"sizes": "512x512",
|
|
25
|
+
"purpose": "maskable"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"src": "/icon-splash.png",
|
|
29
|
+
"type": "image/png",
|
|
30
|
+
"sizes": "512x512"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"orientation": "any",
|
|
34
|
+
"scope": "/",
|
|
35
|
+
"categories": ["business", "security", "technology", "network", "privacy"],
|
|
36
|
+
"shortcuts": [
|
|
37
|
+
{
|
|
38
|
+
"name": "Consulting Services",
|
|
39
|
+
"short_name": "Services",
|
|
40
|
+
"description": "Explore our cybersecurity services",
|
|
41
|
+
"url": "/about?utm_source=shortcut",
|
|
42
|
+
"icons": [
|
|
43
|
+
{
|
|
44
|
+
"src": "/icon-services.png",
|
|
45
|
+
"sizes": "96x96",
|
|
46
|
+
"type": "image/png"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "Contact Us",
|
|
52
|
+
"short_name": "Contact",
|
|
53
|
+
"description": "Connect with a cybersecurity specialist",
|
|
54
|
+
"url": "/contact?utm_source=shortcut",
|
|
55
|
+
"icons": [
|
|
56
|
+
{
|
|
57
|
+
"src": "/icon-contact.png",
|
|
58
|
+
"sizes": "96x96",
|
|
59
|
+
"type": "image/png"
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|