@networkpro/web 0.13.2 → 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/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 -516
- 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/pmx.png +0 -0
- package/img/posts/tosdr.png +0 -0
- package/img/posts/urlcheck.png +0 -0
- package/img/qr/pgp-contact.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/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/pgp-contact.png +0 -0
- /package/{img → 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
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@networkpro/web",
|
|
3
|
-
"sideEffects": false,
|
|
4
|
-
"version": "0.13.2",
|
|
5
3
|
"private": false,
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"version": "1.0.0",
|
|
6
6
|
"description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"security",
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
"advisory",
|
|
13
13
|
"consulting",
|
|
14
14
|
"android",
|
|
15
|
-
"linux"
|
|
16
|
-
"blog"
|
|
15
|
+
"linux"
|
|
17
16
|
],
|
|
18
17
|
"homepage": "https://netwk.pro",
|
|
19
18
|
"bugs": {
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
},
|
|
22
21
|
"repository": {
|
|
23
22
|
"type": "git",
|
|
24
|
-
"url": "git+https://github.com/netwk-pro/
|
|
23
|
+
"url": "git+https://github.com/netwk-pro/dev-sveltekit.git"
|
|
25
24
|
},
|
|
26
25
|
"license": "CC-BY-4.0 OR GPL-3.0-or-later",
|
|
27
26
|
"author": {
|
|
@@ -30,73 +29,77 @@
|
|
|
30
29
|
"url": "https://bio.neteng.pro"
|
|
31
30
|
},
|
|
32
31
|
"type": "module",
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
"test": "test"
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=22"
|
|
36
34
|
},
|
|
35
|
+
"main": "src/app.html",
|
|
36
|
+
"style": "src/lib/styles/global.min.css",
|
|
37
37
|
"scripts": {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
38
|
+
"upgrade": "npx npm-check-updates -u",
|
|
39
|
+
"dev": "vite dev",
|
|
40
|
+
"build": "vite build",
|
|
41
|
+
"build:netlify": "netlify build",
|
|
42
|
+
"preview": "vite preview",
|
|
43
|
+
"prepare": "svelte-kit sync || echo ''",
|
|
44
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
|
|
45
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
|
|
46
|
+
"clean": "rm -rf build/* node_modules package-lock.json && npm install",
|
|
43
47
|
"format": "prettier --check .",
|
|
44
48
|
"format:fix": "prettier --write .",
|
|
45
|
-
"lint": "eslint --ext .mjs,.js,.
|
|
46
|
-
"lint:fix": "eslint --ext .mjs,.js,.
|
|
47
|
-
"lint:md": "npx markdownlint-cli2 \"**/*.{md,markdown}\" \"#node_modules/**\" \"#
|
|
48
|
-
"lint:css": "stylelint
|
|
49
|
+
"lint": "eslint --ext .mjs,.js,.svelte --config eslint.config.mjs .",
|
|
50
|
+
"lint:fix": "eslint --ext .mjs,.js,.svelte --config eslint.config.mjs . --fix",
|
|
51
|
+
"lint:md": "npx markdownlint-cli2 \"**/*.{md,markdown}\" \"#node_modules/**\" \"#build/**\"",
|
|
52
|
+
"lint:css": "stylelint \"**/*.{css,svelte}\" --ignore-path .stylelintignore",
|
|
49
53
|
"lint:all": "npm run lint && npm run lint:md && npm run lint:css && npm run format",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"safe-stable-stringify": "^2.5.0"
|
|
54
|
+
"test": "npm run test:all",
|
|
55
|
+
"test:all": "npm run test:client -- --run && npm run test:server -- --run",
|
|
56
|
+
"test:client": "vitest --config vitest.config.client.js",
|
|
57
|
+
"test:server": "vitest --config vitest.config.server.js",
|
|
58
|
+
"test:watch": "vitest --config vitest.config.client.js --watch",
|
|
59
|
+
"test:coverage": "npm run test:client -- --run --coverage && npm run test:server -- --run --coverage",
|
|
60
|
+
"css:bundle": "node scripts/bundleCss.js",
|
|
61
|
+
"checkout": "npm run test:all && npm run lint:all && npm run check"
|
|
59
62
|
},
|
|
60
63
|
"devDependencies": {
|
|
61
|
-
"@
|
|
62
|
-
"@
|
|
63
|
-
"@
|
|
64
|
-
"@
|
|
65
|
-
"@
|
|
66
|
-
"
|
|
67
|
-
"
|
|
64
|
+
"@eslint/compat": "^1.2.9",
|
|
65
|
+
"@eslint/js": "^9.27.0",
|
|
66
|
+
"@netlify/plugin-sitemap": "^0.8.1",
|
|
67
|
+
"@playwright/test": "^1.52.0",
|
|
68
|
+
"@sveltejs/adapter-netlify": "^5.0.2",
|
|
69
|
+
"@sveltejs/kit": "^2.21.0",
|
|
70
|
+
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
|
71
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
72
|
+
"@testing-library/svelte": "^5.2.7",
|
|
73
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
68
74
|
"autoprefixer": "^10.4.21",
|
|
69
|
-
"babel-loader": "^9.2.1",
|
|
70
75
|
"browserslist": "^4.24.5",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"markdownlint": "^0.37.4",
|
|
84
|
-
"markdownlint-cli2": "^0.17.2",
|
|
85
|
-
"mini-css-extract-plugin": "^2.9.2",
|
|
86
|
-
"mocha": "^11.0.1",
|
|
76
|
+
"eslint": "^9.27.0",
|
|
77
|
+
"eslint-config-prettier": "^10.1.5",
|
|
78
|
+
"eslint-plugin-jsdoc": "^50.6.17",
|
|
79
|
+
"eslint-plugin-svelte": "^3.8.1",
|
|
80
|
+
"globals": "^16.1.0",
|
|
81
|
+
"jsdom": "^26.1.0",
|
|
82
|
+
"lightningcss": "^1.30.1",
|
|
83
|
+
"lightningcss-cli": "^1.30.1",
|
|
84
|
+
"markdownlint": "^0.38.0",
|
|
85
|
+
"markdownlint-cli2": "^0.18.1",
|
|
86
|
+
"mdsvex": "^0.12.6",
|
|
87
|
+
"normalize.css": "^8.0.1",
|
|
87
88
|
"postcss": "^8.5.3",
|
|
88
89
|
"postcss-html": "^1.8.0",
|
|
89
|
-
"
|
|
90
|
-
"prettier": "^3.4.
|
|
91
|
-
"
|
|
92
|
-
"stylelint": "^
|
|
93
|
-
"stylelint-config-alphabetical-order": "^1.0.0",
|
|
90
|
+
"prettier": "^3.5.3",
|
|
91
|
+
"prettier-plugin-svelte": "^3.4.0",
|
|
92
|
+
"stylelint": "^16.19.1",
|
|
93
|
+
"stylelint-config-html": "^1.1.0",
|
|
94
94
|
"stylelint-config-recommended": "^16.0.0",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
95
|
+
"stylelint-order": "^7.0.0",
|
|
96
|
+
"svelte": "^5.30.2",
|
|
97
|
+
"svelte-check": "^4.2.1",
|
|
98
|
+
"svelte-eslint-parser": "^1.2.0",
|
|
99
|
+
"svelte-preprocess": "^6.0.3",
|
|
100
|
+
"typescript": "^5.8.3",
|
|
101
|
+
"vite": "^6.3.5",
|
|
102
|
+
"vite-plugin-lightningcss": "^0.0.5",
|
|
103
|
+
"vitest": "^3.1.3"
|
|
101
104
|
}
|
|
102
105
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { defineConfig, devices } from "@playwright/test";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @see https://playwright.dev/docs/test-configuration
|
|
6
|
+
*/
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
testDir: "./tests",
|
|
9
|
+
|
|
10
|
+
/* Run tests in files in parallel */
|
|
11
|
+
fullyParallel: true,
|
|
12
|
+
|
|
13
|
+
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
|
14
|
+
forbidOnly: !!process.env.CI,
|
|
15
|
+
|
|
16
|
+
/* Retry on CI only */
|
|
17
|
+
retries: process.env.CI ? 2 : 0,
|
|
18
|
+
|
|
19
|
+
/* Opt out of parallel tests on CI. */
|
|
20
|
+
workers: process.env.CI ? 1 : undefined,
|
|
21
|
+
|
|
22
|
+
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
|
|
23
|
+
reporter: "html",
|
|
24
|
+
|
|
25
|
+
/* Shared settings for all projects */
|
|
26
|
+
use: {
|
|
27
|
+
/* Base URL to use in actions like `await page.goto('/')`. */
|
|
28
|
+
baseURL: "http://localhost:5173",
|
|
29
|
+
|
|
30
|
+
/* Collect trace when retrying the failed test. */
|
|
31
|
+
trace: "on-first-retry",
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
/* Configure projects */
|
|
35
|
+
projects: [
|
|
36
|
+
// Desktop Browsers
|
|
37
|
+
{
|
|
38
|
+
name: "chromium",
|
|
39
|
+
use: {
|
|
40
|
+
browserName: "chromium", // Use Chromium browser
|
|
41
|
+
headless: true, // Enable true headless mode
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "firefox",
|
|
46
|
+
use: {
|
|
47
|
+
...devices["Desktop Firefox"], // Use default Firefox settings
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "webkit",
|
|
52
|
+
use: {
|
|
53
|
+
...devices["Desktop Safari"], // Use default WebKit settings
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
// Mobile Browsers
|
|
58
|
+
{
|
|
59
|
+
name: "Mobile Chrome",
|
|
60
|
+
use: {
|
|
61
|
+
...devices["Galaxy S9+"], // Use the Galaxy S9+ device profile
|
|
62
|
+
headless: true, // Enable true headless mode
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Mobile Safari",
|
|
67
|
+
use: {
|
|
68
|
+
...devices["iPhone 14"], // Use the iPhone 14 device profile
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
|
|
73
|
+
/* Run your local dev server before starting the tests */
|
|
74
|
+
webServer: {
|
|
75
|
+
command: "npm run dev",
|
|
76
|
+
url: "http://localhost:5173",
|
|
77
|
+
reuseExistingServer: !process.env.CI,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
postcss.config.mjs
|
|
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 autoprefixer from "autoprefixer";
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
plugins: [
|
|
12
|
+
autoprefixer(), // Useful for compatibility
|
|
13
|
+
],
|
|
14
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
scripts/bundleCss.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
|
+
/**
|
|
9
|
+
* LightningCSS transform and minification utility
|
|
10
|
+
* Transforms and minifies CSS files using LightningCSS (single file)
|
|
11
|
+
*
|
|
12
|
+
* @module scripts/
|
|
13
|
+
* @author SunDevil311
|
|
14
|
+
* @updated 2025-05-16
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import fs from "fs";
|
|
18
|
+
import { bundle } from "lightningcss";
|
|
19
|
+
import path from "path";
|
|
20
|
+
|
|
21
|
+
// Define the path to your input CSS file
|
|
22
|
+
const inputFilePath = path.resolve("src/lib/styles/css/offline.css");
|
|
23
|
+
|
|
24
|
+
// Define the path for the output CSS file
|
|
25
|
+
const outputFilePath = path.resolve("static/offline.min.css");
|
|
26
|
+
|
|
27
|
+
// Bundle and minify the CSS
|
|
28
|
+
const { code, map } = bundle({
|
|
29
|
+
filename: inputFilePath,
|
|
30
|
+
minify: true,
|
|
31
|
+
sourceMap: true,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Write the bundled CSS to the output file
|
|
35
|
+
fs.writeFileSync(outputFilePath, code);
|
|
36
|
+
|
|
37
|
+
// Only write the source map if it exists
|
|
38
|
+
if (map) {
|
|
39
|
+
fs.writeFileSync(`${outputFilePath}.map`, map);
|
|
40
|
+
}
|
package/src/app.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="svelte" />
|
|
2
|
+
// See https://svelte.dev/docs/kit/types#app.d.ts
|
|
3
|
+
// for information about these interfaces
|
|
4
|
+
declare global {
|
|
5
|
+
namespace App {
|
|
6
|
+
// interface Error {}
|
|
7
|
+
// interface Locals {}
|
|
8
|
+
// interface PageData {}
|
|
9
|
+
// interface PageState {}
|
|
10
|
+
// interface Platform {}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { };
|
|
15
|
+
|
package/src/app.html
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
|
|
6
|
+
<!-- =====================================================================
|
|
7
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
8
|
+
This file is part of Network Pro.
|
|
9
|
+
===================================================================== -->
|
|
10
|
+
|
|
11
|
+
<title>%sveltekit.title%</title>
|
|
12
|
+
<meta name="description" content="%sveltekit.description%" />
|
|
13
|
+
|
|
14
|
+
<!-- Preconnect optimizations for LinkedIn -->
|
|
15
|
+
<link rel="preconnect" href="https://snap.licdn.com" crossorigin />
|
|
16
|
+
<link rel="preconnect" href="https://px.ads.linkedin.com" crossorigin />
|
|
17
|
+
|
|
18
|
+
<!-- FontAwesome is self-hosted, so its preconnect has been removed -->
|
|
19
|
+
|
|
20
|
+
<!-- Keep only the ICO favicon for maximum compatibility -->
|
|
21
|
+
<link
|
|
22
|
+
rel="icon"
|
|
23
|
+
href="%sveltekit.assets%/favicon.ico"
|
|
24
|
+
sizes="any"
|
|
25
|
+
type="image/x-icon" />
|
|
26
|
+
|
|
27
|
+
<!-- SVG and PNG favicons will be added by the layout component -->
|
|
28
|
+
|
|
29
|
+
<link rel="manifest" href="manifest.json" />
|
|
30
|
+
<meta name="theme-color" content="#ffc627" />
|
|
31
|
+
|
|
32
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
33
|
+
|
|
34
|
+
<meta name="author" content="Network Pro Strategies" />
|
|
35
|
+
<meta
|
|
36
|
+
name="robots"
|
|
37
|
+
content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
|
|
38
|
+
|
|
39
|
+
%sveltekit.head%
|
|
40
|
+
</head>
|
|
41
|
+
<body>
|
|
42
|
+
<div id="svelte">%sveltekit.body%</div>
|
|
43
|
+
|
|
44
|
+
<!-- LinkedIn Insight Tag - Added 2025-05-14 10:05:06 by SunDevil311 -->
|
|
45
|
+
<!-- Load LinkedIn script only after page content is fully loaded -->
|
|
46
|
+
<script type="text/javascript">
|
|
47
|
+
// Wait for window load event for optimal performance
|
|
48
|
+
window.addEventListener("load", function () {
|
|
49
|
+
// LinkedIn Partner ID
|
|
50
|
+
window._linkedin_partner_id = "7223748";
|
|
51
|
+
window._linkedin_data_partner_ids =
|
|
52
|
+
window._linkedin_data_partner_ids || [];
|
|
53
|
+
window._linkedin_data_partner_ids.push(window._linkedin_partner_id);
|
|
54
|
+
|
|
55
|
+
// Initialize lintrk if not already initialized
|
|
56
|
+
if (!window.lintrk) {
|
|
57
|
+
window.lintrk = function (a, b) {
|
|
58
|
+
window.lintrk.q.push([a, b]);
|
|
59
|
+
};
|
|
60
|
+
window.lintrk.q = [];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Create and insert script element
|
|
64
|
+
var s = document.getElementsByTagName("script")[0];
|
|
65
|
+
var b = document.createElement("script");
|
|
66
|
+
b.type = "text/javascript";
|
|
67
|
+
b.async = true;
|
|
68
|
+
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
|
|
69
|
+
s.parentNode.insertBefore(b, s);
|
|
70
|
+
});
|
|
71
|
+
</script>
|
|
72
|
+
<noscript>
|
|
73
|
+
<img
|
|
74
|
+
height="1"
|
|
75
|
+
width="1"
|
|
76
|
+
style="display: none"
|
|
77
|
+
alt=""
|
|
78
|
+
src="https://px.ads.linkedin.com/collect/?pid=7223748&fmt=gif" />
|
|
79
|
+
</noscript>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
package/src/demo.spec.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
src/demo.spec.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 { describe, expect, it } from "vitest";
|
|
9
|
+
|
|
10
|
+
describe("sum test", () => {
|
|
11
|
+
it("adds 1 + 2 to equal 3", () => {
|
|
12
|
+
expect(1 + 2).toBe(3);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/components/Badges.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 { base } from "$app/paths";
|
|
10
|
+
// Import badges for licenses
|
|
11
|
+
import { ccBadge, gplBadge } from "$lib";
|
|
12
|
+
|
|
13
|
+
// Log the base path to verify its value
|
|
14
|
+
//console.log("Base path:", base);
|
|
15
|
+
|
|
16
|
+
const ccbyLink = `${base}/license#cc-by`;
|
|
17
|
+
const gplLink = `${base}/license#gnu-gpl`;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Badge link object.
|
|
21
|
+
* @typedef {Object} Badge
|
|
22
|
+
* @property {string} href - The URL the badge links to.
|
|
23
|
+
* @property {string} src - The source URL of the badge image.
|
|
24
|
+
* @property {string} alt - The alt text for the badge image.
|
|
25
|
+
* @property {string} [class] - The CSS class for styling the badge (optional).
|
|
26
|
+
* @property {string} width - The width of the badge (CSS value).
|
|
27
|
+
* @property {string} height - The height of the badge (CSS value).
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Array of badges with their properties.
|
|
32
|
+
* @type {Badge[]}
|
|
33
|
+
*/
|
|
34
|
+
const badges = [
|
|
35
|
+
{
|
|
36
|
+
href: ccbyLink,
|
|
37
|
+
src: ccBadge,
|
|
38
|
+
alt: "Creative Commons BY",
|
|
39
|
+
width: "160px",
|
|
40
|
+
height: "24px",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
href: gplLink,
|
|
44
|
+
src: gplBadge,
|
|
45
|
+
alt: "GPL 3.0 or Later",
|
|
46
|
+
width: "120px",
|
|
47
|
+
height: "24px",
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<!-- BEGIN BADGES -->
|
|
53
|
+
<!-- Updated 2025-05-15 02:12:35 by SunDevil311 -->
|
|
54
|
+
<div class="bnav2-wrap">
|
|
55
|
+
<table class="bnav2">
|
|
56
|
+
<tbody>
|
|
57
|
+
<tr>
|
|
58
|
+
{#each badges as badge}
|
|
59
|
+
<td class="bnav2-nav">
|
|
60
|
+
<a href={badge.href} target="_self">
|
|
61
|
+
<img
|
|
62
|
+
decoding="async"
|
|
63
|
+
loading="lazy"
|
|
64
|
+
src={badge.src}
|
|
65
|
+
alt={badge.alt}
|
|
66
|
+
style="width: {badge.width}; height: {badge.height};" />
|
|
67
|
+
</a>
|
|
68
|
+
</td>
|
|
69
|
+
{/each}
|
|
70
|
+
</tr>
|
|
71
|
+
</tbody>
|
|
72
|
+
</table>
|
|
73
|
+
</div>
|
|
74
|
+
<!-- END BADGES -->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/components/ContainerSection.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
|
+
/**
|
|
10
|
+
* Optional: Allows passing additional classes to the container.
|
|
11
|
+
* @type {string}
|
|
12
|
+
*/
|
|
13
|
+
export let className = "";
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div class={`container ${className}`}>
|
|
17
|
+
<slot></slot>
|
|
18
|
+
<!-- Slot to allow child content -->
|
|
19
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/components/FullWidthSection.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
|
+
<div class="full-width-section">
|
|
9
|
+
<div class="container">
|
|
10
|
+
<slot></slot>
|
|
11
|
+
<!-- Slot to allow child content -->
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<!-- ==========================================================================
|
|
2
|
+
src/lib/components/LegalNav.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 { base } from "$app/paths";
|
|
10
|
+
|
|
11
|
+
// Log the base path to verify its value
|
|
12
|
+
//console.log("Base path:", base);
|
|
13
|
+
|
|
14
|
+
const termsLink = `${base}/terms-of-use`;
|
|
15
|
+
const privacyLink = `${base}/privacy-policy`;
|
|
16
|
+
const licenseLink = `${base}/license`;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Navigation link object.
|
|
20
|
+
* @typedef {Object} NavLink
|
|
21
|
+
* @property {string} href - The URL the link points to.
|
|
22
|
+
* @property {string} text - The text displayed for the link.
|
|
23
|
+
* @property {string} target - Specifies where to open the link (e.g., "_self" or "_blank").
|
|
24
|
+
* @property {number} [colspan] - Optional property to specify column span for the table cell.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Rows of navigation links, where each row is an array of NavLink objects.
|
|
29
|
+
* @type {NavLink[][]}
|
|
30
|
+
*/
|
|
31
|
+
const rows = [
|
|
32
|
+
[
|
|
33
|
+
{
|
|
34
|
+
href: termsLink,
|
|
35
|
+
text: "Terms of Use",
|
|
36
|
+
target: "_self",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
href: privacyLink,
|
|
40
|
+
text: "Privacy Policy",
|
|
41
|
+
target: "_self",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
{
|
|
46
|
+
href: licenseLink,
|
|
47
|
+
text: "Legal",
|
|
48
|
+
target: "_self",
|
|
49
|
+
colspan: 2,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
];
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<!-- BEGIN LEGAL NAVIGATION -->
|
|
56
|
+
<div class="bnav-wrap">
|
|
57
|
+
<table class="bnav">
|
|
58
|
+
<tbody>
|
|
59
|
+
{#each rows as row}
|
|
60
|
+
<tr>
|
|
61
|
+
{#each row as link}
|
|
62
|
+
<td
|
|
63
|
+
class={link.colspan ? "bnav-cell" : "bnav-nav"}
|
|
64
|
+
colspan={link.colspan || 1}>
|
|
65
|
+
<a href={link.href} target={link.target}>
|
|
66
|
+
{link.text}
|
|
67
|
+
</a>
|
|
68
|
+
</td>
|
|
69
|
+
{/each}
|
|
70
|
+
</tr>
|
|
71
|
+
{/each}
|
|
72
|
+
</tbody>
|
|
73
|
+
</table>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- END LEGAL NAVIGATION -->
|