@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.
Files changed (282) hide show
  1. package/CODE_OF_CONDUCT.md +172 -0
  2. package/LICENSE.md +4 -4
  3. package/README.md +11 -10
  4. package/assets/bin/contact.vcf +13 -0
  5. package/assets/bin/contact@s.neteng.pro.aexpk +17 -0
  6. package/assets/bin/contact@s.neteng.pro.asc +17 -0
  7. package/assets/bin/github@sl.neteng.cc.aexpk +29 -0
  8. package/assets/bin/github@sl.neteng.cc.asc +29 -0
  9. package/assets/bin/linksheet.json +8 -0
  10. package/assets/bin/support@neteng.pro.aexpk +47 -0
  11. package/assets/bin/support@neteng.pro.asc +47 -0
  12. package/assets/consulting-terms.pdf +0 -0
  13. package/eslint.config.mjs +112 -0
  14. package/jsconfig.json +28 -0
  15. package/netlify.toml +13 -0
  16. package/package.json +64 -61
  17. package/playwright.config.js +79 -0
  18. package/postcss.config.mjs +14 -0
  19. package/scripts/bundleCss.js +40 -0
  20. package/src/app.d.ts +15 -0
  21. package/src/app.html +81 -0
  22. package/src/demo.spec.js +14 -0
  23. package/src/lib/components/Badges.svelte +74 -0
  24. package/src/lib/components/ContainerSection.svelte +19 -0
  25. package/src/lib/components/FullWidthSection.svelte +13 -0
  26. package/src/lib/components/LegalNav.svelte +75 -0
  27. package/src/lib/components/Logo.svelte +110 -0
  28. package/src/lib/components/SocialMedia.svelte +70 -0
  29. package/src/lib/components/foss/FossFeatures.svelte +24 -0
  30. package/src/lib/components/foss/FossItemContent.svelte +153 -0
  31. package/src/lib/components/layout/Footer.svelte +188 -0
  32. package/src/lib/components/layout/HeaderDefault.svelte +86 -0
  33. package/src/lib/components/layout/HeaderHome.svelte +84 -0
  34. package/src/lib/data/fossData.js +233 -0
  35. package/src/lib/images.js +77 -0
  36. package/src/lib/img/badges/cc-by-badge.png +0 -0
  37. package/src/lib/img/badges/gpl-badge.svg +1 -0
  38. package/src/lib/img/by.svg +1 -0
  39. package/src/lib/img/cc.svg +1 -0
  40. package/src/lib/img/logo-web.png +0 -0
  41. package/src/lib/img/logo-web.webp +0 -0
  42. package/src/lib/img/obtainium.webp +0 -0
  43. package/src/lib/img/posts/acode.png +0 -0
  44. package/src/lib/img/posts/acode.webp +0 -0
  45. package/src/lib/img/posts/linksheet.png +0 -0
  46. package/src/lib/img/posts/linksheet.webp +0 -0
  47. package/src/lib/img/posts/pmx.png +0 -0
  48. package/src/lib/img/posts/pmx.webp +0 -0
  49. package/src/lib/img/posts/tosdr.png +0 -0
  50. package/src/lib/img/posts/tosdr.webp +0 -0
  51. package/src/lib/img/posts/urlcheck.png +0 -0
  52. package/src/lib/img/posts/urlcheck.webp +0 -0
  53. package/src/lib/index.js +43 -0
  54. package/src/lib/pages/AboutContent.svelte +294 -0
  55. package/src/lib/pages/FossContent.svelte +109 -0
  56. package/src/lib/pages/HomeContent.svelte +120 -0
  57. package/src/lib/pages/LicenseContent.svelte +486 -0
  58. package/src/lib/pages/PrivacyContent.svelte +249 -0
  59. package/src/lib/pages/TermsConditionsContent.svelte +240 -0
  60. package/src/lib/pages/TermsUseContent.svelte +236 -0
  61. package/src/lib/registerServiceWorker.js +65 -0
  62. package/src/lib/styles/css/brands.css +76 -0
  63. package/src/lib/styles/css/brands.min.css +6 -0
  64. package/src/lib/styles/css/default.css +454 -0
  65. package/src/lib/styles/css/fontawesome.min.css +9 -0
  66. package/src/lib/styles/css/global.css +10 -0
  67. package/src/lib/styles/css/normalize.css +349 -0
  68. package/src/lib/styles/css/offline.css +120 -0
  69. package/src/lib/styles/css/solid.min.css +6 -0
  70. package/src/lib/styles/css/style.css +310 -0
  71. package/src/lib/styles/fa-global.css +10 -0
  72. package/src/lib/styles/global.min.css +9 -0
  73. package/src/lib/styles/index.js +11 -0
  74. package/src/lib/styles/webfonts/fa-brands-400.ttf +0 -0
  75. package/src/lib/styles/webfonts/fa-brands-400.woff2 +0 -0
  76. package/src/lib/styles/webfonts/fa-solid-900.ttf +0 -0
  77. package/src/lib/styles/webfonts/fa-solid-900.woff2 +0 -0
  78. package/src/routes/+error.svelte +43 -0
  79. package/src/routes/+layout.js +94 -0
  80. package/src/routes/+layout.svelte +110 -0
  81. package/src/routes/+page.svelte +77 -0
  82. package/src/routes/about/+page.svelte +61 -0
  83. package/src/routes/contact/+page.server.js +24 -0
  84. package/src/routes/example.svx +9 -0
  85. package/src/routes/foss-spotlight/+page.svelte +63 -0
  86. package/src/routes/license/+page.svelte +63 -0
  87. package/src/routes/page.svelte.test.js +18 -0
  88. package/src/routes/privacy-policy/+page.svelte +63 -0
  89. package/src/routes/privacy-rights/+page.server.js +24 -0
  90. package/src/routes/terms-conditions/+page.svelte +63 -0
  91. package/src/routes/terms-of-use/+page.svelte +63 -0
  92. package/src/service-worker.d.ts +4 -0
  93. package/src/service-worker.js +90 -0
  94. package/static/icon-512x512-maskable.png +0 -0
  95. package/static/icon-contact.png +0 -0
  96. package/static/icon-services.png +0 -0
  97. package/static/img/svelte.png +0 -0
  98. package/static/manifest.json +64 -0
  99. package/static/offline.html +79 -0
  100. package/static/offline.min.css +7 -0
  101. package/{robots.txt → static/robots.txt} +0 -2
  102. package/static/sitemap.xml +102 -0
  103. package/stylelint.config.js +118 -0
  104. package/svelte.config.js +56 -0
  105. package/tests/app.spec.js +67 -0
  106. package/tests/mobile.spec.js +58 -0
  107. package/tests-examples/demo-todo-app.spec.js +504 -0
  108. package/tsconfig.custom.json +39 -0
  109. package/vite.config.js +19 -0
  110. package/vitest-setup-client.js +33 -0
  111. package/vitest.config.client.js +34 -0
  112. package/vitest.config.server.js +30 -0
  113. package/404.html +0 -84
  114. package/about.html +0 -334
  115. package/about.html.br +0 -0
  116. package/about.html.gz +0 -0
  117. package/bundle-report.html +0 -39
  118. package/css/default.css +0 -1
  119. package/css/normalize.css +0 -1
  120. package/css/style.css +0 -1
  121. package/docs/404.html +0 -1187
  122. package/docs/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
  123. package/docs/assets/external/img.shields.io/badge/GitHub_Package_Registry-white.ed8def48.svg +0 -1
  124. package/docs/assets/external/img.shields.io/badge/npmjs-white.681714c1.svg +0 -1
  125. package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/by.svg +0 -20
  126. package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/cc.svg +0 -27
  127. package/docs/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +0 -2607
  128. package/docs/assets/images/favicon.png +0 -0
  129. package/docs/assets/javascripts/bundle.c8b220af.min.js +0 -16
  130. package/docs/assets/javascripts/bundle.c8b220af.min.js.map +0 -7
  131. package/docs/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
  132. package/docs/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
  133. package/docs/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
  134. package/docs/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
  135. package/docs/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
  136. package/docs/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
  137. package/docs/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
  138. package/docs/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
  139. package/docs/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
  140. package/docs/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
  141. package/docs/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
  142. package/docs/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
  143. package/docs/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
  144. package/docs/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
  145. package/docs/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
  146. package/docs/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
  147. package/docs/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
  148. package/docs/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
  149. package/docs/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
  150. package/docs/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
  151. package/docs/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
  152. package/docs/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
  153. package/docs/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
  154. package/docs/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
  155. package/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
  156. package/docs/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
  157. package/docs/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
  158. package/docs/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
  159. package/docs/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
  160. package/docs/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
  161. package/docs/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
  162. package/docs/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
  163. package/docs/assets/javascripts/lunr/tinyseg.js +0 -206
  164. package/docs/assets/javascripts/lunr/wordcut.js +0 -6708
  165. package/docs/assets/javascripts/workers/search.f8cc74c7.min.js +0 -42
  166. package/docs/assets/javascripts/workers/search.f8cc74c7.min.js.map +0 -7
  167. package/docs/assets/stylesheets/main.2afb09e1.min.css +0 -1
  168. package/docs/assets/stylesheets/main.2afb09e1.min.css.map +0 -1
  169. package/docs/assets/stylesheets/palette.06af60db.min.css +0 -1
  170. package/docs/assets/stylesheets/palette.06af60db.min.css.map +0 -1
  171. package/docs/blog/2015/01/04/secure-secure-shell/index.html +0 -1771
  172. package/docs/blog/2025/04/30/our-blog-is-live/index.html +0 -1436
  173. package/docs/blog/archive/2015/index.html +0 -1303
  174. package/docs/blog/archive/2025/index.html +0 -1291
  175. package/docs/blog/category/security/index.html +0 -1303
  176. package/docs/blog/index.html +0 -1350
  177. package/docs/conduct/index.html +0 -1509
  178. package/docs/feed_json_created.json +0 -1
  179. package/docs/feed_json_updated.json +0 -1
  180. package/docs/feed_rss_created.xml +0 -1
  181. package/docs/feed_rss_updated.xml +0 -1
  182. package/docs/fontawesome/LICENSE.txt +0 -165
  183. package/docs/fontawesome/brands/facebook.svg +0 -1
  184. package/docs/fontawesome/brands/instagram.svg +0 -1
  185. package/docs/fontawesome/brands/linkedin.svg +0 -1
  186. package/docs/fontawesome/brands/mastodon.svg +0 -1
  187. package/docs/fontawesome/solid/at.svg +0 -1
  188. package/docs/index.html +0 -1395
  189. package/docs/legal/index.html +0 -1740
  190. package/docs/privacy/index.html +0 -1615
  191. package/docs/search/search_index.json +0 -1
  192. package/docs/sitemap.xml +0 -55
  193. package/docs/sitemap.xml.gz +0 -0
  194. package/docs/tags/index.html +0 -2084
  195. package/docs/terms-conditions/index.html +0 -1655
  196. package/docs/terms-use/index.html +0 -1584
  197. package/favicon-192.png +0 -0
  198. package/favicon-512.png +0 -0
  199. package/favicon.svg.br +0 -0
  200. package/favicon.svg.gz +0 -0
  201. package/html/spotlight.html +0 -435
  202. package/html/spotlight.html.br +0 -0
  203. package/html/spotlight.html.gz +0 -0
  204. package/img/banner-1280x640.png +0 -0
  205. package/img/banner-1440.png +0 -0
  206. package/img/banner-og-1200x630.png +0 -0
  207. package/img/favicon-template.png +0 -0
  208. package/img/fb-cover.png +0 -0
  209. package/img/fb-cover2.png +0 -0
  210. package/img/fsf-member.png +0 -0
  211. package/img/gh-logo.png +0 -0
  212. package/img/gpl3-small.png +0 -0
  213. package/img/gpl3.png +0 -0
  214. package/img/linkedin-banner-new.png +0 -0
  215. package/img/linkedin-banner.png +0 -0
  216. package/img/linkedin-banner2.png +0 -0
  217. package/img/logo-1024x1024.png +0 -0
  218. package/img/logo-alt.png +0 -0
  219. package/img/logo-elevated.png +0 -0
  220. package/img/logo-light-elevated.png +0 -0
  221. package/img/logo-light-slogan.png +0 -0
  222. package/img/logo-light.png +0 -0
  223. package/img/logo-slogan.png +0 -0
  224. package/img/logo-transparent-black-small.png +0 -0
  225. package/img/logo-transparent-black.png +0 -0
  226. package/img/logo-transparent-elevated.png +0 -0
  227. package/img/logo-transparent-slogan.png +0 -0
  228. package/img/mastodon-banner.png +0 -0
  229. package/img/netpro-logo-transparent.png +0 -0
  230. package/img/posts/acode.png +0 -0
  231. package/img/posts/linksheet.png +0 -0
  232. package/img/posts/tosdr.png +0 -0
  233. package/img/posts/urlcheck.png +0 -0
  234. package/img/qr/pgp-github.png +0 -0
  235. package/img/qr/pgp-support.png +0 -0
  236. package/img/qr/vcard.png +0 -0
  237. package/img/sd311.png +0 -0
  238. package/img/shield.png +0 -0
  239. package/img/shield.svg +0 -1
  240. package/img/shield.svg.br +0 -0
  241. package/img/shield.svg.gz +0 -0
  242. package/img/shield2.png +0 -0
  243. package/img/shield3-2000x2000.png +0 -0
  244. package/img/shield3-black-1024x1024.png +0 -0
  245. package/img/shield3-black.png +0 -0
  246. package/img/shield3-white.png +0 -0
  247. package/img/trademark.jpg +0 -0
  248. package/index.html +0 -268
  249. package/index.html.br +0 -0
  250. package/index.html.gz +0 -0
  251. package/js/app.d544156ea2ba85a7d486.mjs +0 -1
  252. package/js/runtime.52b1ac291305b90de3df.mjs +0 -1
  253. package/js/vendor/.gitkeep +0 -0
  254. package/legal.html +0 -535
  255. package/legal.html.br +0 -0
  256. package/legal.html.gz +0 -0
  257. package/privacy.html +0 -404
  258. package/privacy.html.br +0 -0
  259. package/privacy.html.gz +0 -0
  260. package/site.webmanifest +0 -25
  261. package/sitemap.xml +0 -177
  262. package/terms-and-conditions.html +0 -409
  263. package/terms-and-conditions.html.br +0 -0
  264. package/terms-and-conditions.html.gz +0 -0
  265. package/terms-of-use.html +0 -380
  266. package/terms-of-use.html.br +0 -0
  267. package/terms-of-use.html.gz +0 -0
  268. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets → assets}/nsa-happy-dance.png +0 -0
  269. /package/{favicon.svg → src/lib/img/favicon.svg} +0 -0
  270. /package/{favicon-180.png → src/lib/img/icon-180x180.png} +0 -0
  271. /package/{img/badge_obtainium.png → src/lib/img/obtainium.png} +0 -0
  272. /package/{img → src/lib/img}/qr/pgp-contact.png +0 -0
  273. /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
  274. /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
  275. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/vcard.png +0 -0
  276. /package/{CNAME → static/CNAME} +0 -0
  277. /package/{favicon.ico → static/favicon.ico} +0 -0
  278. /package/{docs/img/favicon.png → static/icon-192x192.png} +0 -0
  279. /package/{docs/img/logo.png → static/icon-512x512.png} +0 -0
  280. /package/{favicon-splash.png → static/icon-splash.png} +0 -0
  281. /package/{img → static/img}/logo-transparent.png +0 -0
  282. /package/{img → static/img}/logo.png +0 -0
@@ -0,0 +1,172 @@
1
+ <!-- =========================================================================
2
+ CODE_OF_CONDUCT.md
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
+ <a name="top"></a>
9
+
10
+ [SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info):
11
+ `CC-BY-4.0 OR GPL-3.0-or-later`
12
+
13
+ # Contributor Covenant Code of Conduct
14
+
15
+ **Network Pro Strategies**
16
+ **Effective Date:** 3/21/2025
17
+
18
+ &nbsp;
19
+
20
+ ## Contents
21
+
22
+ - [Our Pledge](#pledge)
23
+ - [Our Standards](#standards)
24
+ - [Responsibilities](#response)
25
+ - [Scope](#scope)
26
+ - [Enforcement](#enforce)
27
+ - [Attribution](#attribute)
28
+
29
+ ---
30
+
31
+ <section id="pledge">
32
+
33
+ ## Our Pledge
34
+
35
+ We as members, contributors, and leaders pledge to make participation in our
36
+ community a harassment-free experience for everyone, regardless of age, body
37
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
38
+ identity and expression, level of experience, education, socio-economic status,
39
+ nationality, personal appearance, race, caste, color, religion, or sexual
40
+ identity and orientation.
41
+
42
+ We pledge to act and interact in ways that contribute to an open, welcoming,
43
+ diverse, inclusive, and healthy community.
44
+
45
+ </section>
46
+
47
+ <section id="standards">
48
+
49
+ ## Our Standards
50
+
51
+ Examples of behavior that contributes to a positive environment for our
52
+ community include:
53
+
54
+ - Demonstrating empathy and kindness toward other people
55
+ - Being respectful of differing opinions, viewpoints, and experiences
56
+ - Giving and gracefully accepting constructive feedback
57
+ - Accepting responsibility and apologizing to those affected by our mistakes,
58
+ and learning from the experience
59
+ - Focusing on what is best not just for us as individuals, but for the overall
60
+ community
61
+
62
+ Examples of unacceptable behavior include:
63
+
64
+ - The use of sexualized language or imagery, and sexual attention or advances of
65
+ any kind
66
+ - Trolling, insulting or derogatory comments, and personal or political attacks
67
+ - Public or private harassment
68
+ - Publishing others' private information, such as a physical or email address,
69
+ without their explicit permission
70
+ - Other conduct which could reasonably be considered inappropriate in a
71
+ professional setting
72
+
73
+ <sub>[Back to top](#top)</sub>
74
+
75
+ </section>
76
+
77
+ <section id="response">
78
+
79
+ ## Responsibilities
80
+
81
+ Company and community leaders are responsible for clarifying and enforcing our standards of
82
+ acceptable behavior and will take appropriate and fair corrective action in
83
+ response to any behavior that they deem inappropriate, threatening, offensive,
84
+ or harmful.
85
+
86
+ Company and community leaders have the right and responsibility to remove, edit, or reject
87
+ comments, commits, code, wiki edits, issues, and other contributions that are
88
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
89
+ decisions when appropriate.
90
+
91
+ Network Pro Strategies reserves the right, at its sole discretion, to remove, edit, or reject any contributions that are contrary to or detrimental to its business interests.
92
+
93
+ <sub>[Back to top](#top)</sub>
94
+
95
+ </section>
96
+
97
+ <section id="scope">
98
+
99
+ ## Scope
100
+
101
+ This Code of Conduct applies within all community spaces, and also applies when
102
+ an individual is officially representing the company or community in public spaces.
103
+ Examples of representing our company or community include using an official email address,
104
+ posting via an official social media account, or acting as an appointed
105
+ representative at an online or offline event.
106
+
107
+ <sub>[Back to top](#top)</sub>
108
+
109
+ </section>
110
+
111
+ <section id="enforce">
112
+
113
+ ## Enforcement
114
+
115
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the abuse team at [abuse@neteng.pro](mailto:abuse@neteng.pro). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.
116
+
117
+ The abuse team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
118
+
119
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.
120
+
121
+ <sub>[Back to top](#top)</sub>
122
+
123
+ </section>
124
+
125
+ <section id="attribute">
126
+
127
+ ## Attribution
128
+
129
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
130
+ version 2.1, available at
131
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
132
+
133
+ The **Enforcement** section is adapted from the
134
+ [Contributor Covenant][homepage],
135
+ version 1.4, available at
136
+ [https://www.contributor-covenant.org/version/1/4/code-of-conduct/][v1.4].
137
+
138
+ For answers to common questions about this code of conduct, see the FAQ at
139
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
140
+ [https://www.contributor-covenant.org/translations][translations].
141
+
142
+ [homepage]: https://www.contributor-covenant.org
143
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
144
+ [v1.4]: https://www.contributor-covenant.org/version/1/4/code-of-conduct/
145
+ [FAQ]: https://www.contributor-covenant.org/faq
146
+ [translations]: https://www.contributor-covenant.org/translations
147
+
148
+ <sub>[Back to top](#top)</sub>
149
+
150
+ </section>
151
+
152
+ ---
153
+
154
+ <div style="font-size: 12px; font-weight: bold; text-align: center;">
155
+
156
+ [Home](https://netwk.pro) &nbsp; | &nbsp; [Terms of Use](https://netwk.pro/terms-of-use)
157
+ [Privacy Policy](https://netwk.pro/privacy-policy) &nbsp; | &nbsp; [Legal](https://netwk.pro/legal)
158
+
159
+ </div>
160
+
161
+ &nbsp;
162
+
163
+ <span style="font-size: 12px; text-align: center;">
164
+
165
+ Copyright &copy; 2025
166
+ **[Network Pro Strategies](https://netwk.pro/)** (Network Pro&trade;)
167
+
168
+ Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are [trademarks](https://netwk.pro/legal#trademark) of Network Pro Strategies.
169
+
170
+ Licensed under **[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)** and the **[GNU GPL](https://spdx.org/licenses/GPL-3.0-or-later.html)**, as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
171
+
172
+ </span>
package/LICENSE.md CHANGED
@@ -51,7 +51,7 @@ Web: <https://bio.neteng.pro>
51
51
  # Legal, Copyright, and Licensing
52
52
 
53
53
  **Network Pro Strategies**
54
- **Effective Date:** April 21, 2025
54
+ **Effective Date:** May 8, 2025
55
55
 
56
56
  &nbsp;
57
57
 
@@ -78,7 +78,7 @@ Web: <https://bio.neteng.pro>
78
78
 
79
79
  ---
80
80
 
81
- **Formats Available:** [HTML](./legal.html) | Markdown
81
+ **Formats Available:** [HTML](./legal) | Markdown
82
82
 
83
83
  <a name="ownership"></a>
84
84
 
@@ -277,8 +277,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
277
277
 
278
278
  <div style="font-size: 12px; font-weight: bold; text-align: center;">
279
279
 
280
- [Home](./) &nbsp; | &nbsp; [Terms of Use](./terms-of-use.html)
281
- [Privacy Policy](./privacy.html) &nbsp; | &nbsp; Legal
280
+ [Home](./) &nbsp; | &nbsp; [Terms of Use](./terms-of-use)
281
+ [Privacy Policy](./privacy-policy) &nbsp; | &nbsp; Legal
282
282
 
283
283
  </div>
284
284
 
package/README.md CHANGED
@@ -46,14 +46,15 @@ Web: <https://bio.neteng.pro>
46
46
 
47
47
  <section id="top">
48
48
 
49
- [SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/): `CC-BY-4.0 OR GPL-3.0-or-later`
49
+ <sup>[SPDX-License-Identifier](https://spdx.dev/learn/handling-license-info/): `CC-BY-4.0 OR GPL-3.0-or-later`</sup>
50
50
 
51
51
  # Network Pro Strategies
52
52
 
53
53
  </section>
54
54
 
55
- [![Build/Test, Publish to Registries](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/build.yml) [![Deploy to GitHub Pages](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/upload.yml/badge.svg?branch=master)](https://github.com/netwk-pro/netwk-pro.github.io/actions/workflows/upload.yml)
56
- [![npm Version](https://img.shields.io/npm/v/%40networkpro%2Fweb?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat&logo=npm&logoSize=auto&labelColor=fffff&color=0c7ebe)](https://www.npmjs.com/package/@networkpro/web) [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat)](https://github.com/prettier/prettier) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/netwk-pro/netwk-pro.github.io/blob/master/CODE_OF_CONDUCT.md)
55
+ [![Netlify Status](https://api.netlify.com/api/v1/badges/94ec8cc0-4712-409a-b54e-2dfbe7024a42/deploy-status)](https://app.netlify.com/sites/networkpro/deploys) [![NPM Version](https://img.shields.io/npm/v/%40networkpro%2Fdev-sveltekit?registry_uri=https%3A%2F%2Fregistry.npmjs.com&style=flat&logo=npm&logoSize=auto&color=%23CB3837)](https://www.npmjs.com/package/@networkpro/dev-sveltekit) [![Build and Publish to Registries](https://github.com/netwk-pro/dev-sveltekit/actions/workflows/build-and-publish.yml/badge.svg)](https://github.com/netwk-pro/dev-sveltekit/actions/workflows/build-and-publish.yml)
56
+ [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat)](https://github.com/prettier/prettier) [![stylelint](https://img.shields.io/badge/stylelint-%23747474?style=flat&logo=stylelint&logoSize=auto&labelColor=%23263238)](https://stylelint.io/)
57
+ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/netwk-pro/netwk-pro.github.io/blob/master/CODE_OF_CONDUCT.md)
57
58
 
58
59
  ## Security That Respects You
59
60
 
@@ -85,10 +86,10 @@ We also believe education is a core pillar of real-world security. That’s why
85
86
 
86
87
  You can find our PGP keys and a vCard containing our contact information for your convenience below.
87
88
 
88
- | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-support.png" width="125px" height="125px" alt="PGP Key - support@neteng.pro"> | **[support@neteng.pro](https://keys.openpgp.org/search?q=support%40neteng.pro)**<br />**PGP Key (ed25519)**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.aexpk" type="application/pgp-keys">**aexpk**</a>&nbsp; **&#47;** &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.asc" type="application/pgp-keys">**asc**</a><br />&nbsp;<br />6590b992e2e3eff12738<br />7bce2af093e9dec61ba0 |
89
- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
90
- | **[contact@s.neteng.pro](https://keys.openpgp.org/search?q=contact%40s.neteng.pro)**<br />**PGP Key (ed25519)**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact@s.neteng.pro.aexpk" type="application/pgp-keys">**aexpk**</a>&nbsp; **&#47;** &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact@s.neteng.pro.asc" type="application/pgp-keys">**asc**</a><br />&nbsp;<br />**df118baa6c2d9dcdebdc**<br />**2ddcf99373499495f957** | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-contact.png" width="125px" height="125px" alt="PGP Key - contact@s.neteng.pro"> |
91
- | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/vcard.png" width="125px" height="125px" alt="vCard"> | **vCard**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact.vcf">**vcf**</a> |
89
+ | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-support.png" width="125px" height="125px" alt="PGP Key - support@neteng.pro"> | **[support@neteng.pro](https://keys.openpgp.org/search?q=support%40neteng.pro)**<br />**PGP Key (ed25519)**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.aexpk" download type="application/pgp-keys">**aexpk**</a>&nbsp; **&#47;** &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.asc" download type="application/pgp-keys">**asc**</a><br />&nbsp;<br />6590b992e2e3eff12738<br />7bce2af093e9dec61ba0 |
90
+ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
91
+ | **[contact@s.neteng.pro](https://keys.openpgp.org/search?q=contact%40s.neteng.pro)**<br />**PGP Key (ed25519)**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact@s.neteng.pro.aexpk" download type="application/pgp-keys">**aexpk**</a>&nbsp; **&#47;** &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact@s.neteng.pro.asc" download type="application/pgp-keys">**asc**</a><br />&nbsp;<br />**df118baa6c2d9dcdebdc**<br />**2ddcf99373499495f957** | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-contact.png" width="125px" height="125px" alt="PGP Key - contact@s.neteng.pro"> |
92
+ | <img decoding="async" loading="lazy" src="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/vcard.png" width="125px" height="125px" alt="vCard"> | **vCard**<br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact.vcf" download type="text/vcard">**vcf**</a> |
92
93
 
93
94
  <sub>[Back to top](#top)</sub>
94
95
 
@@ -96,8 +97,8 @@ You can find our PGP keys and a vCard containing our contact information for you
96
97
 
97
98
  <div style="font-size: 12px; font-weight: bold; text-align: center;">
98
99
 
99
- [Home](https://netwk.pro) &nbsp; | &nbsp; [Terms of Use](https://netwk.pro/terms-of-use.html)
100
- [Privacy Policy](https://netwk.pro/privacy.html) &nbsp; | &nbsp; [Legal](https://netwk.pro/legal.html)
100
+ [Home](https://netwk.pro) &nbsp; | &nbsp; [Terms of Use](https://netwk.pro/terms-of-use)
101
+ [Privacy Policy](https://netwk.pro/privacy-policy) &nbsp; | &nbsp; [Legal](https://netwk.pro/license)
101
102
 
102
103
  </div>
103
104
 
@@ -108,7 +109,7 @@ You can find our PGP keys and a vCard containing our contact information for you
108
109
  Copyright &copy; 2025
109
110
  **[Network Pro Strategies](https://netwk.pro/)** (Network Pro&trade;)
110
111
 
111
- Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are [trademarks](https://netwk.pro/legal.html#trademark) of Network Pro Strategies.
112
+ Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are [trademarks](https://netwk.pro/legal#trademark) of Network Pro Strategies.
112
113
 
113
114
  Licensed under **[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)** and the **[GNU GPL](https://spdx.org/licenses/GPL-3.0-or-later.html)**, as published by the [Free Software Foundation](https://fsf.org), either version 3 of the License, or (at your option) any later version.
114
115
 
@@ -0,0 +1,13 @@
1
+ BEGIN:VCARD
2
+ VERSION:3.0
3
+ FN:Scott Lopez
4
+ N:Lopez;Scott
5
+ TEL;TYPE=WORK,PREF=1:(623) 252-4350
6
+ EMAIL;TYPE=HOME:github@sl.neteng.cc
7
+ EMAIL;TYPE=WORK:support@neteng.pro
8
+ EMAIL;TYPE=Secure:business@s.neteng.pro
9
+ ADR;TYPE=WORK:;;Peoria\, AZ 85382\nUS
10
+ ORG:Network Pro Strategies
11
+ TITLE:Security Consultant
12
+ URL:https://netwk.pro
13
+ END:VCARD
@@ -0,0 +1,17 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+
3
+ xjMEaA9hQBYJKwYBBAHaRw8BAQdA0plJIVADzWGVQtDnYcjtokJN+xTURRDx
4
+ +bPQWsRCCMrNK2NvbnRhY3RAcy5uZXRlbmcucHJvIDxjb250YWN0QHMubmV0
5
+ ZW5nLnBybz7CwBEEExYKAIMFgmgPYUADCwkHCZD5k3NJlJX5V0UUAAAAAAAc
6
+ ACBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn7SJZvz9xzMXAz0AK0oap
7
+ 2J4yPfF5ITdHI3E4NrGhHiUDFQoIBBYAAgECGQECmwMCHgEWIQTfEYuqbC2d
8
+ zevcLdz5k3NJlJX5VwAA3lgBAPlvilH7QBDdourj+ndUWOlkN/UK5GVZFNdl
9
+ Wtz+yqO9AQDi6ZJvz4FXtnLpiDnrGLl+XtS9mpb9W1K6veAfq9EPDs44BGgP
10
+ YUASCisGAQQBl1UBBQEBB0CH4STLqhXPigKwiTqgROmO9+ZBwLULvQIr/opO
11
+ xkvFcgMBCAfCvgQYFgoAcAWCaA9hQAmQ+ZNzSZSV+VdFFAAAAAAAHAAgc2Fs
12
+ dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzQ5Pg7sTb37RQ0E0xHK7uw476sQ
13
+ 4ReUd+a+A2uSan3wApsMFiEE3xGLqmwtnc3r3C3c+ZNzSZSV+VcAALq5AQDJ
14
+ bhqyY8dg25WXFPtL8TgeK8BP+d4y5IaobKuZ2gHh2wD+MmeUZZBNiIM/QPMo
15
+ Pgm5czd9ckE/aknVqJZPLx7KJAQ=
16
+ =o5rM
17
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,17 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+
3
+ xjMEaA9hQBYJKwYBBAHaRw8BAQdA0plJIVADzWGVQtDnYcjtokJN+xTURRDx
4
+ +bPQWsRCCMrNK2NvbnRhY3RAcy5uZXRlbmcucHJvIDxjb250YWN0QHMubmV0
5
+ ZW5nLnBybz7CwBEEExYKAIMFgmgPYUADCwkHCZD5k3NJlJX5V0UUAAAAAAAc
6
+ ACBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn7SJZvz9xzMXAz0AK0oap
7
+ 2J4yPfF5ITdHI3E4NrGhHiUDFQoIBBYAAgECGQECmwMCHgEWIQTfEYuqbC2d
8
+ zevcLdz5k3NJlJX5VwAA3lgBAPlvilH7QBDdourj+ndUWOlkN/UK5GVZFNdl
9
+ Wtz+yqO9AQDi6ZJvz4FXtnLpiDnrGLl+XtS9mpb9W1K6veAfq9EPDs44BGgP
10
+ YUASCisGAQQBl1UBBQEBB0CH4STLqhXPigKwiTqgROmO9+ZBwLULvQIr/opO
11
+ xkvFcgMBCAfCvgQYFgoAcAWCaA9hQAmQ+ZNzSZSV+VdFFAAAAAAAHAAgc2Fs
12
+ dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzQ5Pg7sTb37RQ0E0xHK7uw476sQ
13
+ 4ReUd+a+A2uSan3wApsMFiEE3xGLqmwtnc3r3C3c+ZNzSZSV+VcAALq5AQDJ
14
+ bhqyY8dg25WXFPtL8TgeK8BP+d4y5IaobKuZ2gHh2wD+MmeUZZBNiIM/QPMo
15
+ Pgm5czd9ckE/aknVqJZPLx7KJAQ=
16
+ =o5rM
17
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,29 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: SunDevil311 <github@sl.neteng.cc>
3
+ Comment: Valid from: 1/7/24 2:11 AM
4
+ Comment: Valid until: 1/8/29 11:58 PM
5
+ Comment: Type: 255-bit EdDSA (secret key available)
6
+ Comment: Usage: Signing, Encryption, Certifying User IDs
7
+ Comment: Fingerprint: E8B4F1193B21601207B080BBAEBBB8F6D4BB723B
8
+
9
+
10
+ mDMEZZpquxYJKwYBBAHaRw8BAQdAk/oCPQnD4FIVgyVsugXB/Sq8Rp+b9Ahz31KY
11
+ EOTyuIW0IVN1bkRldmlsMzExIDxnaXRodWJAc2wubmV0ZW5nLmNjPoiWBBMWCAA+
12
+ AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7
13
+ cjsFAmeBrNgFCQlrKHgACgkQrru49tS7cjujpQEA9LtzB8R+5kwSnjM3mU+ZOK2X
14
+ 370iUAOrDOI41/Xzdi4BAJbImQxZCPHWpNEysPkpf5OYIQhBljYGBLyPlgbqKl8B
15
+ iHUEEBYKAB0WIQTzG0myNw5BdXuKqI/DoNSOqcFPXgUCZZpwcwAKCRDDoNSOqcFP
16
+ XrtIAQC4+QUJEFHFaW1hePdF0k8OMVm7YX6B2ReccN7JV6WIggD/SULjDjEa59/R
17
+ e3QovTnGE/+JQl7WnMG7wIWWt7AsyAyIkAQTFggAOBYhBOi08Rk7IWASB7CAu667
18
+ uPbUu3I7BQJlmmq7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEK67uPbU
19
+ u3I7V7cA/3VdMTkltx5d9mqOl8azXkXEeInblf/GHqp9gD/ziCRcAP4rifnkxfYp
20
+ z8Xkl/YtqWNUqMU/AbTqLXrNrj6Ld6L4CYiWBBMWCAA+AhsDBQsJCAcCBhUKCQgL
21
+ AgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAma5TVIFCQbC4ngA
22
+ CgkQrru49tS7cjsh+QEAzgTKYSbMAsJrgQrLZ+gTuZjtP2cf4LNplwVyyOW+ZBEB
23
+ AK99IZScLbf0QOJowg4XXds02yKG6pB/9BhTf0gfbq4JuDgEZZpquxIKKwYBBAGX
24
+ VQEFAQEHQPUDNJbixlUJE10/uCSaxUcly4+YB6aDP+qt6kYw+ExRAwEIB4h4BBgW
25
+ CAAgFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAmWaarsCGwwACgkQrru49tS7cjtS
26
+ 9AEA9bv6Zq/PcRL25QM4NlvJDsKjePihgaYav+4ekdk0tkoA/02QjSNlzIL/CpRF
27
+ 540gKvILQXFUuoPAKBL+sEggB+8D
28
+ =iL2v
29
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,29 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: SunDevil311 <github@sl.neteng.cc>
3
+ Comment: Valid from: 1/7/24 2:11 AM
4
+ Comment: Valid until: 1/8/29 11:58 PM
5
+ Comment: Type: 255-bit EdDSA (secret key available)
6
+ Comment: Usage: Signing, Encryption, Certifying User IDs
7
+ Comment: Fingerprint: E8B4F1193B21601207B080BBAEBBB8F6D4BB723B
8
+
9
+
10
+ mDMEZZpquxYJKwYBBAHaRw8BAQdAk/oCPQnD4FIVgyVsugXB/Sq8Rp+b9Ahz31KY
11
+ EOTyuIW0IVN1bkRldmlsMzExIDxnaXRodWJAc2wubmV0ZW5nLmNjPoiWBBMWCAA+
12
+ AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7
13
+ cjsFAmeBrNgFCQlrKHgACgkQrru49tS7cjujpQEA9LtzB8R+5kwSnjM3mU+ZOK2X
14
+ 370iUAOrDOI41/Xzdi4BAJbImQxZCPHWpNEysPkpf5OYIQhBljYGBLyPlgbqKl8B
15
+ iHUEEBYKAB0WIQTzG0myNw5BdXuKqI/DoNSOqcFPXgUCZZpwcwAKCRDDoNSOqcFP
16
+ XrtIAQC4+QUJEFHFaW1hePdF0k8OMVm7YX6B2ReccN7JV6WIggD/SULjDjEa59/R
17
+ e3QovTnGE/+JQl7WnMG7wIWWt7AsyAyIkAQTFggAOBYhBOi08Rk7IWASB7CAu667
18
+ uPbUu3I7BQJlmmq7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEK67uPbU
19
+ u3I7V7cA/3VdMTkltx5d9mqOl8azXkXEeInblf/GHqp9gD/ziCRcAP4rifnkxfYp
20
+ z8Xkl/YtqWNUqMU/AbTqLXrNrj6Ld6L4CYiWBBMWCAA+AhsDBQsJCAcCBhUKCQgL
21
+ AgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAma5TVIFCQbC4ngA
22
+ CgkQrru49tS7cjsh+QEAzgTKYSbMAsJrgQrLZ+gTuZjtP2cf4LNplwVyyOW+ZBEB
23
+ AK99IZScLbf0QOJowg4XXds02yKG6pB/9BhTf0gfbq4JuDgEZZpquxIKKwYBBAGX
24
+ VQEFAQEHQPUDNJbixlUJE10/uCSaxUcly4+YB6aDP+qt6kYw+ExRAwEIB4h4BBgW
25
+ CAAgFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAmWaarsCGwwACgkQrru49tS7cjtS
26
+ 9AEA9bv6Zq/PcRL25QM4NlvJDsKjePihgaYav+4ekdk0tkoA/02QjSNlzIL/CpRF
27
+ 540gKvILQXFUuoPAKBL+sEggB+8D
28
+ =iL2v
29
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "fe.linksheet.nightly",
3
+ "url": "https://github.com/LinkSheet/nightly",
4
+ "author": "1fexd",
5
+ "name": "LinkSheet Nightly",
6
+ "preferredApkIndex": 0,
7
+ "additionalSettings": "{\"includePrereleases\":true,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"dontSortReleasesList\":false,\"useLatestAssetDateAsReleaseDate\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":false,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"LinkSheet.Nightly\",\"invertAPKFilter\":true,\"autoApkFilterByArch\":true,\"appName\":\"LinkSheet Nightly\",\"shizukuPretendToBeGooglePlay\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"Restore link control on Android 12+\",\"appAuthor\":\"1fexd\"}"
8
+ }
@@ -0,0 +1,47 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: Network Pro Strategies <support@neteng.pro>
3
+ Comment: a.k.a.: Network Pro Strategies <contact@neteng.pro>
4
+ Comment: a.k.a.: Network Pro Strategies <github@neteng.pro>
5
+ Comment: a.k.a.: Network Pro Strategies <no-reply@neteng.pro>
6
+ Comment: a.k.a.: Network Pro Strategies <social@neteng.pro>
7
+ Comment: a.k.a.: Network Pro Strategies <website@neteng.pro>
8
+ Comment: Valid from: 3/28/25 5:16 PM
9
+ Comment: Valid until: 3/27/28 5:16 PM
10
+ Comment: Type: 255-bit EdDSA (secret key available)
11
+ Comment: Usage: Signing, Encryption, Certifying User IDs
12
+ Comment: Fingerprint: 6590B992E2E3EFF127387BCE2AF093E9DEC61BA0
13
+
14
+
15
+ mDMEZ+c71xYJKwYBBAHaRw8BAQdAXrXB9LKKHj7tgAzrCkheQe+yJ0KD50yVrHM7
16
+ yOopYuW0K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHN1cHBvcnRAbmV0ZW5nLnBy
17
+ bz6InAQTFgoARAIbAwUJBaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgBYh
18
+ BGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzLAhkBAAoJECrwk+nexhugp9UBAJ4O
19
+ J4aR6SBdYCInPri4DuRrLeLtMIT6yPN2XP0+aRH5AP4piPrWA5Qx22t7DZTF8S08
20
+ 6rhDtFuslGkMab4ITA+8AbQrTmV0d29yayBQcm8gU3RyYXRlZ2llcyA8Y29udGFj
21
+ dEBuZXRlbmcucHJvPoiZBBMWCgBBFiEEZZC5kuLj7/EnOHvOKvCT6d7GG6AFAmfn
22
+ PJgCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQKvCT6d7G
23
+ G6CBCgD/aC/WM7bOfQoTZitpluifrEQIjP6RelCpksULK7jcEzkA/iTuessO95fe
24
+ 72MtCRiOjFlcVXuXfgaap0PwNmwfMz0GtCpOZXR3b3JrIFBybyBTdHJhdGVnaWVz
25
+ IDxnaXRodWJAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/xJzh7zirwk+ne
26
+ xhugBQJn5zyiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJ
27
+ ECrwk+nexhug0tsBAKjrZMO7wfGUOiNQQr5IPzSEwOLYy0hkxq4SqOuMuPpVAP9/
28
+ b3sZ0BbmTaU/+gnuXyUbMRQHLDqHh7ESRxSgll3WDLQsTmV0d29yayBQcm8gU3Ry
29
+ YXRlZ2llcyA8bm8tcmVwbHlAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/x
30
+ Jzh7zirwk+nexhugBQJn5zywAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
31
+ Ah4HAheAAAoJECrwk+nexhugjAQA+gNrz3htQtHPTifyIps/p8CuA6LR/5F99jip
32
+ 5obARSaLAQDuodGbF3NIZ5b6C98aoNQ7adj/Neg53z6rgVRHkNuiCrQqTmV0d29y
33
+ ayBQcm8gU3RyYXRlZ2llcyA8c29jaWFsQG5ldGVuZy5wcm8+iJkEExYKAEEWIQRl
34
+ kLmS4uPv8Sc4e84q8JPp3sYboAUCZ+c8vAIbAwUJBaOagAULCQgHAgIiAgYVCgkI
35
+ CwIEFgIDAQIeBwIXgAAKCRAq8JPp3sYboE6hAQCLyAl45ty3muvvw7vpkJjhbkyp
36
+ daLVTIltW6x+cotifQEAqbXMngGnwAZPxiZH/r/NbopqD57YTT+HXx62thwefw+0
37
+ K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHdlYnNpdGVAbmV0ZW5nLnBybz6ImQQT
38
+ FgoAQRYhBGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzHAhsDBQkFo5qABQsJCAcC
39
+ AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECrwk+nexhugRUcA/RHfApSl1S+APoXN
40
+ jmTki5pUk8+AD1kveRymT9g49FIVAQCtX8+cbM+9jLrg9EyyJ6kvE9btGExOOufA
41
+ JNY15IdwBbg4BGfnO9cSCisGAQQBl1UBBQEBB0BiSu/MobXZljtB25Inf4cJwdoH
42
+ z+gqapJHs+5y9mNPCgMBCAeIfgQYFgoAJhYhBGWQuZLi4+/xJzh7zirwk+nexhug
43
+ BQJn5zvXAhsMBQkFo5qAAAoJECrwk+nexhugsXoA+QHr0FAorF0ZEgDA4wL/oZpB
44
+ oIARdo9kYzL+cTi/F3g6AQCtbupe/JymVJuwLUcq3AsxXe0DLyoodT7CpOdVpYLV
45
+ DQ==
46
+ =pBLp
47
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,47 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: Network Pro Strategies <support@neteng.pro>
3
+ Comment: a.k.a.: Network Pro Strategies <contact@neteng.pro>
4
+ Comment: a.k.a.: Network Pro Strategies <github@neteng.pro>
5
+ Comment: a.k.a.: Network Pro Strategies <no-reply@neteng.pro>
6
+ Comment: a.k.a.: Network Pro Strategies <social@neteng.pro>
7
+ Comment: a.k.a.: Network Pro Strategies <website@neteng.pro>
8
+ Comment: Valid from: 3/28/25 5:16 PM
9
+ Comment: Valid until: 3/27/28 5:16 PM
10
+ Comment: Type: 255-bit EdDSA (secret key available)
11
+ Comment: Usage: Signing, Encryption, Certifying User IDs
12
+ Comment: Fingerprint: 6590B992E2E3EFF127387BCE2AF093E9DEC61BA0
13
+
14
+
15
+ mDMEZ+c71xYJKwYBBAHaRw8BAQdAXrXB9LKKHj7tgAzrCkheQe+yJ0KD50yVrHM7
16
+ yOopYuW0K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHN1cHBvcnRAbmV0ZW5nLnBy
17
+ bz6InAQTFgoARAIbAwUJBaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgBYh
18
+ BGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzLAhkBAAoJECrwk+nexhugp9UBAJ4O
19
+ J4aR6SBdYCInPri4DuRrLeLtMIT6yPN2XP0+aRH5AP4piPrWA5Qx22t7DZTF8S08
20
+ 6rhDtFuslGkMab4ITA+8AbQrTmV0d29yayBQcm8gU3RyYXRlZ2llcyA8Y29udGFj
21
+ dEBuZXRlbmcucHJvPoiZBBMWCgBBFiEEZZC5kuLj7/EnOHvOKvCT6d7GG6AFAmfn
22
+ PJgCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQKvCT6d7G
23
+ G6CBCgD/aC/WM7bOfQoTZitpluifrEQIjP6RelCpksULK7jcEzkA/iTuessO95fe
24
+ 72MtCRiOjFlcVXuXfgaap0PwNmwfMz0GtCpOZXR3b3JrIFBybyBTdHJhdGVnaWVz
25
+ IDxnaXRodWJAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/xJzh7zirwk+ne
26
+ xhugBQJn5zyiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJ
27
+ ECrwk+nexhug0tsBAKjrZMO7wfGUOiNQQr5IPzSEwOLYy0hkxq4SqOuMuPpVAP9/
28
+ b3sZ0BbmTaU/+gnuXyUbMRQHLDqHh7ESRxSgll3WDLQsTmV0d29yayBQcm8gU3Ry
29
+ YXRlZ2llcyA8bm8tcmVwbHlAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/x
30
+ Jzh7zirwk+nexhugBQJn5zywAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
31
+ Ah4HAheAAAoJECrwk+nexhugjAQA+gNrz3htQtHPTifyIps/p8CuA6LR/5F99jip
32
+ 5obARSaLAQDuodGbF3NIZ5b6C98aoNQ7adj/Neg53z6rgVRHkNuiCrQqTmV0d29y
33
+ ayBQcm8gU3RyYXRlZ2llcyA8c29jaWFsQG5ldGVuZy5wcm8+iJkEExYKAEEWIQRl
34
+ kLmS4uPv8Sc4e84q8JPp3sYboAUCZ+c8vAIbAwUJBaOagAULCQgHAgIiAgYVCgkI
35
+ CwIEFgIDAQIeBwIXgAAKCRAq8JPp3sYboE6hAQCLyAl45ty3muvvw7vpkJjhbkyp
36
+ daLVTIltW6x+cotifQEAqbXMngGnwAZPxiZH/r/NbopqD57YTT+HXx62thwefw+0
37
+ K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHdlYnNpdGVAbmV0ZW5nLnBybz6ImQQT
38
+ FgoAQRYhBGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzHAhsDBQkFo5qABQsJCAcC
39
+ AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECrwk+nexhugRUcA/RHfApSl1S+APoXN
40
+ jmTki5pUk8+AD1kveRymT9g49FIVAQCtX8+cbM+9jLrg9EyyJ6kvE9btGExOOufA
41
+ JNY15IdwBbg4BGfnO9cSCisGAQQBl1UBBQEBB0BiSu/MobXZljtB25Inf4cJwdoH
42
+ z+gqapJHs+5y9mNPCgMBCAeIfgQYFgoAJhYhBGWQuZLi4+/xJzh7zirwk+nexhug
43
+ BQJn5zvXAhsMBQkFo5qAAAoJECrwk+nexhugsXoA+QHr0FAorF0ZEgDA4wL/oZpB
44
+ oIARdo9kYzL+cTi/F3g6AQCtbupe/JymVJuwLUcq3AsxXe0DLyoodT7CpOdVpYLV
45
+ DQ==
46
+ =pBLp
47
+ -----END PGP PUBLIC KEY BLOCK-----
Binary file
@@ -0,0 +1,112 @@
1
+ /* ==========================================================================
2
+ eslint.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 js from "@eslint/js"; // Provides ESLint core rules and recommended config
9
+ import eslintConfigPrettier from "eslint-config-prettier"; // Prettier config to disable conflicting ESLint rules
10
+ import jsdocPlugin from "eslint-plugin-jsdoc"; // JSDoc plugin
11
+ import sveltePlugin from "eslint-plugin-svelte"; // Svelte plugin
12
+ import globals from "globals";
13
+ import svelteParser from "svelte-eslint-parser"; // Svelte parser
14
+
15
+ const GLOBALS = {
16
+ ...globals.browser,
17
+ ...globals.node,
18
+ self: "readonly",
19
+ location: "readonly",
20
+ indexedDB: "readonly",
21
+ ...globals.vitest, // Add Vitest globals for test functions like afterEach, describe, etc.
22
+ };
23
+
24
+ // Define general ESLint rules (non-Svelte-specific)
25
+ const ESLINT_RULES = {
26
+ indent: "off", // Turn off the 'indent' rule, managed by Prettier
27
+ quotes: "off", // Turn off the 'quotes' rule, managed by Prettier
28
+ semi: "off", // Turn off the 'semi' rule, managed by Prettier
29
+ };
30
+
31
+ export default [
32
+ // Global ignores
33
+ {
34
+ ignores: [
35
+ ".*", // Hidden files
36
+ "*.xml", // XML files
37
+ "**/.cache/**", // Cache directories
38
+ "**/.vscode/**", // VSCode-specific files
39
+ "**/coverage/**", // Coverage reports
40
+ "**/build/**", // Distribution files
41
+ "package.json", // NPM package manifest
42
+ "package-lock.json", // NPM lockfile
43
+ "node_modules/", // Node.js dependencies
44
+ ".vite/", // Vite-specific cache directory
45
+ "*.lock", // Lock files
46
+ ".env*", // Environment files
47
+ ],
48
+ },
49
+
50
+ // General JavaScript/Node.js configuration
51
+ {
52
+ files: ["**/*.mjs", "**/*.js"],
53
+ languageOptions: {
54
+ globals: GLOBALS,
55
+ ecmaVersion: "latest",
56
+ sourceType: "module",
57
+ },
58
+ plugins: {
59
+ jsdoc: jsdocPlugin, // Include JSDoc plugin
60
+ },
61
+ rules: {
62
+ ...js.configs.recommended.rules, // ESLint's core recommended rules (scoped)
63
+ ...eslintConfigPrettier.rules, // Prettier config to disable conflicting ESLint rules (scoped)
64
+ ...ESLINT_RULES, // Additional custom rules
65
+ "no-unused-vars": ["error", { argsIgnorePattern: "^_" }], // Ignore unused variables starting with an underscore
66
+ "jsdoc/check-alignment": "warn", // Ensure JSDoc block tags are aligned
67
+ "jsdoc/check-param-names": "warn", // Checks parameter names in JSDoc
68
+ // Updated rule to allow the @updated tag
69
+ "jsdoc/check-tag-names": [
70
+ "warn",
71
+ {
72
+ definedTags: ["updated"],
73
+ },
74
+ ],
75
+ "jsdoc/check-types": "warn", // Checks if types in JSDoc are defined correctly
76
+ "jsdoc/require-param": "warn", // Requires @param in JSDoc
77
+ "jsdoc/require-returns": "warn", // Requires @returns in JSDoc
78
+ },
79
+ },
80
+
81
+ // Svelte-specific configuration
82
+ {
83
+ files: ["**/*.svelte"],
84
+ plugins: { svelte: sveltePlugin }, // Use imported Svelte plugin
85
+ languageOptions: {
86
+ parser: svelteParser, // Use imported Svelte parser
87
+ globals: GLOBALS, // Your global variables
88
+ ecmaVersion: "latest", // Use "latest" for Svelte to leverage modern features
89
+ sourceType: "module",
90
+ },
91
+ rules: {
92
+ ...sveltePlugin.configs.recommended.rules, // Svelte recommended rules
93
+ ...sveltePlugin.configs.prettier.rules, // Prettier compatibility for Svelte
94
+ "svelte/no-at-html-tags": "warn", // Warn on use of @html (security risk)
95
+ "svelte/require-optimized-style-attribute": "warn", // Recommend optimized style attributes
96
+ },
97
+ },
98
+
99
+ // Vitest-specific configuration
100
+ {
101
+ files: ["**/*.test.js", "**/*.spec.js", "**/vitest-setup-client.js"], // Test-related files
102
+ languageOptions: {
103
+ globals: {
104
+ ...GLOBALS,
105
+ afterEach: "readonly", // Explicitly declare afterEach as a global
106
+ },
107
+ },
108
+ rules: {
109
+ "no-undef": "off", // Turn off no-undef for test globals
110
+ },
111
+ },
112
+ ];
package/jsconfig.json ADDED
@@ -0,0 +1,28 @@
1
+ /* =========================================================================
2
+ jsconfig.json
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
+ "extends": "./.svelte-kit/tsconfig.json",
10
+ "compilerOptions": {
11
+ "allowJs": true,
12
+ "checkJs": true,
13
+ "esModuleInterop": true,
14
+ "forceConsistentCasingInFileNames": true,
15
+ "resolveJsonModule": true,
16
+ "skipLibCheck": true,
17
+ "sourceMap": true,
18
+ "strict": true,
19
+ "moduleResolution": "bundler"
20
+ },
21
+ "exclude": ["vite.config.js"] // Exclude the config file if needed
22
+
23
+ // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
24
+ // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
25
+
26
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
27
+ // from the referenced tsconfig.json - TypeScript does not merge them in
28
+ }
package/netlify.toml ADDED
@@ -0,0 +1,13 @@
1
+ [build]
2
+ command = "npm run build"
3
+ publish = "build"
4
+
5
+ [[plugins]]
6
+ package = "@netlify/plugin-sitemap"
7
+
8
+ [plugins.inputs]
9
+ buildDir = "build"
10
+ filePath = "static/sitemap.xml"
11
+ trailingSlash = true
12
+ changeFreq = "monthly"
13
+ priority = 0.5