@networkpro/web 1.7.2 → 1.7.3

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 (35) hide show
  1. package/LICENSE.md +2 -2
  2. package/README.md +3 -3
  3. package/cspell.json +5 -0
  4. package/netlify-functions/cspReport.js +8 -0
  5. package/package.json +1 -1
  6. package/src/lib/components/foss/FossFeatures.svelte +0 -23
  7. package/src/lib/components/foss/FossItemContent.svelte +1 -2
  8. package/src/lib/pages/AboutContent.svelte +50 -32
  9. package/src/lib/pages/LicenseContent.svelte +18 -22
  10. package/src/lib/pages/TermsConditionsContent.svelte +1 -4
  11. package/src/lib/styles/css/default.css +25 -2
  12. package/src/lib/styles/global.min.css +1 -1
  13. package/static/assets/bin/contact.vcf +13 -0
  14. package/static/assets/bin/linksheet.json +8 -0
  15. package/static/assets/consulting-terms.pdf +0 -0
  16. package/static/assets/license/CC-BY-4.0-rdfa.xml +741 -0
  17. package/static/assets/license/CC-BY-4.0.html +884 -0
  18. package/static/assets/license/CC-BY-4.0.md +367 -0
  19. package/static/assets/license/CC-BY-4.0.txt +156 -0
  20. package/static/assets/license/CC-BY-4.0.xml +25 -0
  21. package/static/assets/license/COPYING-rdfa.xml +1187 -0
  22. package/static/assets/license/COPYING.html +1062 -0
  23. package/static/assets/license/COPYING.md +611 -0
  24. package/static/assets/license/COPYING.odt +0 -0
  25. package/static/assets/license/COPYING.txt +232 -0
  26. package/static/disableSw.js +8 -0
  27. package/static/offline.html +3 -0
  28. package/static/sitemap.xml +40 -4
  29. package/static/styles/brands.min.css +6 -0
  30. package/static/styles/fontawesome.min.css +9 -0
  31. package/static/styles/global.min.css +6 -0
  32. package/static/styles/solid.min.css +6 -0
  33. /package/{assets/bin/contact@s.neteng.pro.aexpk → static/assets/bin/contact@s.neteng.pro.asc} +0 -0
  34. /package/{assets/bin/github@sl.neteng.cc.aexpk → static/assets/bin/github@sl.neteng.cc.asc} +0 -0
  35. /package/{assets/bin/support@neteng.pro.aexpk → static/assets/bin/support@neteng.pro.asc} +0 -0
package/LICENSE.md CHANGED
@@ -112,7 +112,7 @@ This work is dual-licensed under:
112
112
 
113
113
  ## 7. Creative Commons License (CC BY 4.0)
114
114
 
115
- <sup>Formats: [HTML](https://legal.netwk.pro/html/CC-BY-4.0.html) | [Markdown](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0.md) | [Text](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0.txt) | [RDFa](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0-rdfa.xml) | [XMP](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0.xml)</sup>
115
+ <sup>Formats: [HTML](https://netwk.pro/assets/license/CC-BY-4.0.html) | [Markdown](https://netwk.pro/assets/license/CC-BY-4.0.md) | [Text](https://netwk.pro/assets/license/CC-BY-4.0.txt) | [RDFa](https://netwk.pro/assets/license/CC-BY-4.0-rdfa.xml) | [XMP](https://netwk.pro/assets/license/CC-BY-4.0.xml)</sup>
116
116
 
117
117
  Network Pro&trade; (the "Licensed Material") is licensed under **Creative
118
118
  Commons Attribution 4.0 International** (CC BY 4.0)
@@ -138,7 +138,7 @@ Permissions beyond the scope of this License—or instead of those permitted by
138
138
 
139
139
  ## 8. GNU General Public License (GPL)
140
140
 
141
- <sup>Formats: [HTML](https://legal.netwk.pro/html/COPYING.html) | [Markdown](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/COPYING.md) | [Text](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/COPYING.txt) | [RDFa](https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/COPYING-rdfa.xml) | [ODT](https://github.com/netwk-pro/netwk-pro-legal/raw/refs/heads/master/assets/license/COPYING.odt)</sup>
141
+ <sup>Formats: [HTML](https://netwk.pro/assets/license/COPYING.html) | [Markdown](https://netwk.pro/assets/license/COPYING.md) | [Text](https://netwk.pro/assets/license/COPYING.txt) | [RDFa](https://netwk.pro/assets/license/COPYING-rdfa.xml) | [ODT](https://netwk.pro/assets/license/COPYING.odt)</sup>
142
142
 
143
143
  Network Pro&trade; is free software: you can redistribute it and/or modify it under the terms of the **GNU General Public License** (GNU GPL) as published by the [Free Software Foundation](https://www.fsf.org/), either version 3 of the License, or (at your option) any later version.
144
144
 
package/README.md CHANGED
@@ -226,15 +226,15 @@ Located at `src/hooks.client.ts`, it is automatically used by the SvelteKit runt
226
226
  To receive and inspect CSP violation reports in development or production, the repo includes a Netlify-compatible function at:
227
227
 
228
228
  ```bash
229
- netlify-functions/csp-report.js
229
+ netlify-functions/cspReport.js
230
230
  ```
231
231
 
232
- This function receives reports sent to `/functions/csp-report` and logs them to the console. You can later integrate with logging tools or alerts (e.g., via email, Slack, or SIEM ingestion).
232
+ This function receives reports sent to `/functions/cspReport` and logs them to the console. You can later integrate with logging tools or alerts (e.g., via email, Slack, or SIEM ingestion).
233
233
 
234
234
  Make sure to include the `report-uri` directive in your CSP header:
235
235
 
236
236
  ```bash
237
- Content-Security-Policy: ...; report-uri /.netlify/functions/csp-report;
237
+ Content-Security-Policy: ...; report-uri /.netlify/functions/cspReport;
238
238
  ```
239
239
 
240
240
  &nbsp;
package/cspell.json CHANGED
@@ -3,6 +3,7 @@
3
3
  "language": "en",
4
4
  "words": [
5
5
  "acode",
6
+ "anonymization",
6
7
  "autocapture",
7
8
  "autorun",
8
9
  "beforeinstallprompt",
@@ -30,12 +31,16 @@
30
31
  "noreferrer",
31
32
  "nosniff",
32
33
  "nosw",
34
+ "npmjs",
33
35
  "obtainium",
34
36
  "posthog",
35
37
  "SIEM",
38
+ "SPDY",
36
39
  "stylelintignore",
37
40
  "Subsite",
38
41
  "subsites",
42
+ "Supercookie",
43
+ "supercookies",
39
44
  "urlcheck",
40
45
  "vcard",
41
46
  "vite",
@@ -6,6 +6,14 @@ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
6
6
  This file is part of Network Pro.
7
7
  ========================================================================== */
8
8
 
9
+ /**
10
+ * @file cspReport.js
11
+ * @description Sets up a CSP reporting endpoint with email notifications, to be deployed as a Netlify function.
12
+ * @module netlify-functions
13
+ * @author SunDevil311
14
+ * @updated 2025-05-29
15
+ */
16
+
9
17
  import nodemailer from "nodemailer";
10
18
 
11
19
  /**
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "sideEffects": [
5
5
  "./.netlify/shims.js"
6
6
  ],
7
- "version": "1.7.2",
7
+ "version": "1.7.3",
8
8
  "description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
9
9
  "keywords": [
10
10
  "advisory",
@@ -52,27 +52,4 @@ This file is part of Network Pro.
52
52
  font-weight: 600;
53
53
  margin-bottom: 0.5em;
54
54
  }
55
-
56
- .emoji {
57
- margin-right: 8px;
58
- }
59
-
60
- .headline {
61
- display: block; /* Ensure it is on its own line */
62
- font-weight: bold; /* Keep the first item bold */
63
- font-style: italic; /* Only make the first item italic */
64
- margin-bottom: 4px; /* Add space between headline and the rest */
65
- }
66
-
67
- .label {
68
- font-weight: bold; /* Keep the label bold */
69
- font-family: inherit; /* Ensure it uses the same font-family as normal text */
70
- }
71
-
72
- .description {
73
- display: inline; /* Keep description inline */
74
- font-weight: normal; /* Ensure the description is normal (not bold) */
75
- font-family: inherit; /* Ensure it uses the same font-family as normal text */
76
- font-style: normal; /* Remove italic for the description */
77
- }
78
55
  </style>
@@ -126,8 +126,7 @@ This file is part of Network Pro.
126
126
  ><i class="fas fa-file-arrow-down" style="margin-left: 8px;"></i
127
127
  ></span>
128
128
  <a
129
- {rel}
130
- href="https://raw.githubusercontent.com/netwk-pro/dev-sveltekit/refs/heads/master/assets/bin/linksheet.json"
129
+ href="/assets/bin/linksheet.json"
131
130
  download
132
131
  type="application/json"
133
132
  style="margin-left: 8px;"
@@ -76,26 +76,30 @@ This file is part of Network Pro.
76
76
  label: "support@neteng.pro",
77
77
  qrSrc: pgpSupport,
78
78
  keySearch: "https://keys.openpgp.org/search?q=support%40neteng.pro",
79
- fingerprint: ["6590b992e2e3eff12738", "7bce2af093e9dec61ba0"],
79
+ fingerprint: ["6590B992E2E3EFF12738", "7BCE2AF093E9DEC61BA0"],
80
80
  },
81
81
  {
82
82
  label: "contact@s.neteng.pro",
83
83
  qrSrc: pgpContact,
84
84
  keySearch: "https://keys.openpgp.org/search?q=contact%40s.neteng.pro",
85
- fingerprint: ["df118baa6c2d9dcdebdc", "2ddcf99373499495f957"],
85
+ fingerprint: ["DF118BAA6C2D9DCDEBDC", "2DDCF99373499495F957"],
86
86
  },
87
87
  ];
88
88
 
89
89
  /**
90
- * vCard information for contact details
91
- * @type {{
92
- * qrSrc: string,
93
- * vcf: string
94
- * }}
90
+ * @typedef {Object} ContactAssets
91
+ * @property {string} vcf - Path to the contact vCard (.vcf file)
92
+ * @property {string} qrSrc - Path to QR image for contact info
93
+ * @property {string} supportAsc - Support PGP public key file (.asc)
94
+ * @property {string} contactAsc - Contact PGP public key file (.asc)
95
95
  */
96
- const vCard = {
96
+
97
+ /** @type {ContactAssets} */
98
+ const contactAssets = {
99
+ vcf: "/assets/bin/contact.vcf",
97
100
  qrSrc: vcfSrc,
98
- vcf: "https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact.vcf",
101
+ supportAsc: "/assets/bin/support@neteng.pro.asc",
102
+ contactAsc: "/assets/bin/contact@s.neteng.pro.asc",
99
103
  };
100
104
  </script>
101
105
 
@@ -192,7 +196,7 @@ This file is part of Network Pro.
192
196
  <div class="spacer"></div>
193
197
 
194
198
  <p>
195
- <a {rel} href="https://netwk.pro/contact" target="_blank">Let's connect</a>
199
+ <a href="https://netwk.pro/contact" target="_self">Let's connect</a>
196
200
  to discuss how we can help secure and strengthen your business today.
197
201
  </p>
198
202
 
@@ -222,17 +226,25 @@ This file is part of Network Pro.
222
226
  alt={`PGP Key - ${pgpKeys[0].label}`} />
223
227
  </td>
224
228
  <td class="pgp-col2">
225
- <a
226
- {rel}
227
- href={pgpKeys[0].keySearch}
228
- download
229
- type="application/pgp-keys"
230
- target={tgtBlank}>
229
+ <a {rel} href={pgpKeys[0].keySearch} target={tgtBlank}>
231
230
  <strong>{pgpKeys[0].label}</strong>
232
231
  </a>
233
- <p>Fingerprint:</p>
234
- <p class="fingerprint">
235
- {pgpKeys[0].fingerprint.join("\n")}
232
+ <p
233
+ ><strong
234
+ ><a
235
+ href={contactAssets.supportAsc}
236
+ type="application/pgp-keys"
237
+ download
238
+ target={tgtBlank}
239
+ >asc
240
+ <span class="fas fa-file-arrow-down"></span></a
241
+ ></strong>
242
+ </p>
243
+ <p
244
+ >Fingerprint:<br />
245
+ <span class="fingerprint">
246
+ {pgpKeys[0].fingerprint.join("\n")}
247
+ </span>
236
248
  </p>
237
249
  </td>
238
250
  </tr>
@@ -240,17 +252,24 @@ This file is part of Network Pro.
240
252
  <!-- Row 1 (Second row) has its columns swapped -->
241
253
  <tr>
242
254
  <td class="pgp-col1">
243
- <a
244
- {rel}
245
- href={pgpKeys[1].keySearch}
246
- download
247
- type="application/pgp-keys"
248
- target={tgtBlank}>
255
+ <a {rel} href={pgpKeys[1].keySearch} target={tgtBlank}>
249
256
  <strong>{pgpKeys[1].label}</strong>
250
257
  </a>
251
- <p>Fingerprint:</p>
252
- <p class="fingerprint">
253
- {pgpKeys[1].fingerprint.join("\n")}
258
+ <p>
259
+ <strong
260
+ ><a
261
+ href={contactAssets.contactAsc}
262
+ type="application/pgp-keys"
263
+ download
264
+ target={tgtBlank}
265
+ >asc <span class="fas fa-file-arrow-down"></span></a
266
+ ></strong>
267
+ </p>
268
+ <p
269
+ >Fingerprint:<br />
270
+ <span class="fingerprint">
271
+ {pgpKeys[1].fingerprint.join("\n")}
272
+ </span>
254
273
  </p>
255
274
  </td>
256
275
  <td class="pgp-col2">
@@ -269,7 +288,7 @@ This file is part of Network Pro.
269
288
  <img
270
289
  {decoding}
271
290
  {loading}
272
- src={vCard.qrSrc}
291
+ src={contactAssets.qrSrc}
273
292
  class="pgp-image"
274
293
  alt="vCard" />
275
294
  </td>
@@ -277,10 +296,9 @@ This file is part of Network Pro.
277
296
  <strong>vCard</strong>
278
297
  <p>
279
298
  <a
280
- {rel}
281
- href={vCard.vcf}
282
- download
299
+ href={contactAssets.vcf}
283
300
  type="text/vcard"
301
+ download
284
302
  target={tgtBlank}>
285
303
  <strong>vcf</strong>
286
304
  </a>
@@ -220,30 +220,28 @@ This file is part of Network Pro.
220
220
  <p class={constants.classSmall}>
221
221
  Formats:
222
222
  <a
223
- rel={constants.rel}
224
- href="https://legal.netwk.pro/html/CC-BY-4.0.html"
225
- target={constants.targetSelf}>HTML</a>
223
+ href="/assets/license/CC-BY-4.0.html"
224
+ download
225
+ target={constants.targetBlank}>HTML</a>
226
226
  |
227
227
  <a
228
- rel={constants.rel}
229
- href="https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0.md"
228
+ href="/assets/license/CC-BY-4.0.md"
229
+ download
230
230
  target={constants.targetBlank}>Markdown</a>
231
231
  |
232
232
  <a
233
- rel={constants.rel}
234
- href="https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/CC-BY-4.0.txt"
233
+ href="/assets/license/CC-BY-4.0.txt"
234
+ download
235
235
  target={constants.targetBlank}>Text</a>
236
236
  |
237
237
  <a
238
- rel={constants.rel}
238
+ href="/assets/license/CC-BY-4.0-rdfa.xml"
239
239
  download
240
- href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/CC-BY-4.0-rdfa.xml"
241
240
  target={constants.targetBlank}>RDFa</a>
242
241
  |
243
242
  <a
244
- rel={constants.rel}
243
+ href="/assets/license/CC-BY-4.0.xml"
245
244
  download
246
- href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/CC-BY-4.0.xml"
247
245
  target={constants.targetBlank}>XMP</a>
248
246
  </p>
249
247
 
@@ -325,30 +323,28 @@ This file is part of Network Pro.
325
323
  <p class={constants.classSmall}>
326
324
  Formats:
327
325
  <a
328
- rel={constants.rel}
329
- href="https://legal.netwk.pro/html/COPYING.html"
330
- target={constants.targetSelf}>HTML</a>
326
+ href="/assets/license/COPYING.html"
327
+ download
328
+ target={constants.targetBlank}>HTML</a>
331
329
  |
332
330
  <a
333
- rel={constants.rel}
334
- href="https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/COPYING.md"
331
+ href="/assets/license/COPYING.md"
332
+ download
335
333
  target={constants.targetBlank}>Markdown</a>
336
334
  |
337
335
  <a
338
- rel={constants.rel}
339
- href="https://github.com/netwk-pro/netwk-pro-legal/blob/master/assets/license/COPYING.txt"
336
+ href="/assets/license/COPYING.txt"
337
+ download
340
338
  target={constants.targetBlank}>Text</a>
341
339
  |
342
340
  <a
343
- rel={constants.rel}
341
+ href="/assets/license/COPYING-rdfa.xml"
344
342
  download
345
- href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/COPYING-rdfa.xml"
346
343
  target={constants.targetBlank}>RDFa</a>
347
344
  |
348
345
  <a
349
- rel={constants.rel}
346
+ href="/assets/license/COPYING.odt"
350
347
  download
351
- href="https://raw.githubusercontent.com/netwk-pro/netwk-pro-legal/refs/heads/master/assets/license/COPYING.odt"
352
348
  target={constants.targetBlank}>ODT</a>
353
349
  </p>
354
350
 
@@ -114,10 +114,7 @@ This file is part of Network Pro.
114
114
  |
115
115
  <a href={tandcLink} target={constants.targetSelf}>Docs</a>
116
116
  |
117
- <a
118
- rel={constants.rel}
119
- href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/consulting-terms.pdf"
120
- target={constants.targetBlank}>
117
+ <a href="/assets/consulting-terms.pdf" target={constants.targetBlank}>
121
118
  PDF <span class="fas fa-file-arrow-down"></span>
122
119
  </a>
123
120
  </sup>
@@ -463,8 +463,8 @@ footer .container {
463
463
  }
464
464
 
465
465
  .pgp-image {
466
- width: 125px;
467
- height: 125px;
466
+ width: 150px;
467
+ height: 150px;
468
468
  }
469
469
 
470
470
  .spacer {
@@ -474,3 +474,26 @@ footer .container {
474
474
  .separator {
475
475
  margin: 0 0.5rem;
476
476
  }
477
+
478
+ .emoji {
479
+ margin-right: 8px;
480
+ }
481
+
482
+ .headline {
483
+ display: block; /* Ensure it is on its own line */
484
+ font-weight: bold; /* Keep the first item bold */
485
+ font-style: italic; /* Only make the first item italic */
486
+ margin-bottom: 4px; /* Add space between headline and the rest */
487
+ }
488
+
489
+ .label {
490
+ font-weight: bold; /* Keep the label bold */
491
+ font-family: inherit; /* Ensure it uses the same font-family as normal text */
492
+ }
493
+
494
+ .description {
495
+ display: inline; /* Keep description inline */
496
+ font-weight: normal; /* Ensure the description is normal (not bold) */
497
+ font-family: inherit; /* Ensure it uses the same font-family as normal text */
498
+ font-style: normal; /* Remove italic for the description */
499
+ }
@@ -3,4 +3,4 @@ Copyright © 2025 Network Pro Strategies (Network Pro™)
3
3
  SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
4
4
  This file is part of Network Pro.
5
5
  ========================================================================== */
6
- html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#191919;background-color:#ffc627}a:visited,a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.visited{color:#7f6227}.center-nav{text-align:center;padding:5px;font-size:.875rem;line-height:1.125rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:125px;height:125px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}
6
+ html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#191919;background-color:#ffc627}a:visited,a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.visited{color:#7f6227}.center-nav{text-align:center;padding:5px;font-size:.875rem;line-height:1.125rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}
@@ -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,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
+ }