@networkpro/web 1.10.1 → 1.12.2

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/CHANGELOG.md ADDED
@@ -0,0 +1,66 @@
1
+ # Changelog
2
+
3
+ <!-- markdownlint-disable MD024 -->
4
+
5
+ All notable changes to this project will be documented in this file.
6
+
7
+ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), though versioning and formatting may vary.
8
+
9
+ ---
10
+
11
+ ## [Unreleased]
12
+
13
+ ---
14
+
15
+ ## [1.12.2] – 2025-06-04
16
+
17
+ ### Changed
18
+
19
+ - `LicenseContent` component updated to reflect the correct "Effective Date."
20
+
21
+ ---
22
+
23
+ ## [1.12.1] – 2025-06-04
24
+
25
+ ### Added
26
+
27
+ - Standardized issue templates and contact links in `.github/ISSUE_TEMPLATE/config.yml` for consistent triage experience across repositories.
28
+ - Shared health files (`SUPPORT.md`, `CONTRIBUTING.md`, `SECURITY.md`) retained in `.github` for fallback visibility.
29
+ - Centralized issue submission and triage via main repository (`netwk-pro.github.io`) for all public projects.
30
+
31
+ ### Changed
32
+
33
+ - Updated `.github` structure to delegate issue creation to the main repository only, simplifying user flow and internal tracking.
34
+ - Reorganized public repositories to override the default `.github` issue config selectively as needed.
35
+
36
+ ### Removed
37
+
38
+ - Removed unused local issue templates from `.github` to prevent template duplication in dependent repositories.
39
+
40
+ ---
41
+
42
+ ## [1.12.0] – 2025-06-04
43
+
44
+ ### Added
45
+
46
+ - Initial scaffolding for tracking preferences store using SvelteKit writable stores.
47
+ - `PrivacyDashboard` and `PrivacyContent` components updated to bind to the reactive tracking store.
48
+ - Derived store for automatic re-consent prompts (`remindUserToReconsent`).
49
+ - Consent cookie logic added for first-time and returning users.
50
+ - First iteration of PostHog integration.
51
+ - `sr-only` utility class added to `global.min.css` for accessibility improvements.
52
+ - Support disclaimer added to Legal, Copyright,
53
+ and Licensing section.
54
+ - Privacy dashboard UI elements and opt-in interface.
55
+
56
+ ### Changed
57
+
58
+ - Migrated tracking preference logic from `utils/privacy.js` and `utils/trackingCookies.js` to a store-based architecture.
59
+ - Updated `posthog.js` to consume new `trackingPreferences` store.
60
+ - Improved inline documentation for Netlify `adapter-edge` settings.
61
+
62
+ ### Removed
63
+
64
+ - Deprecated `shouldTrackUser()` logic and legacy cookie checks.
65
+
66
+ ---
@@ -0,0 +1,63 @@
1
+ # Changelog
2
+
3
+ <!-- markdownlint-disable -->
4
+
5
+ All notable changes to this project will be documented in this file.
6
+
7
+ This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and uses [Semantic Versioning](https://semver.org/).
8
+
9
+ ---
10
+
11
+ ## [Unreleased]
12
+
13
+ ### Added
14
+
15
+ - _(Describe new features or significant additions)_
16
+
17
+ ### Changed
18
+
19
+ - _(Describe updates or breaking changes to existing behavior)_
20
+
21
+ ### Deprecated
22
+
23
+ - _(Note anything slated for removal in the future)_
24
+
25
+ ### Removed
26
+
27
+ - _(List features, APIs, or code that has been removed)_
28
+
29
+ ### Fixed
30
+
31
+ - _(Detail bug fixes or patches)_
32
+
33
+ ### Security
34
+
35
+ - _(Note any vulnerabilities addressed)_
36
+
37
+ ---
38
+
39
+ ## [x.y.z] – YYYY-MM-DD
40
+
41
+ ### Added
42
+
43
+ - ...
44
+
45
+ ### Changed
46
+
47
+ - ...
48
+
49
+ ### Deprecated
50
+
51
+ - ...
52
+
53
+ ### Removed
54
+
55
+ - ...
56
+
57
+ ### Fixed
58
+
59
+ - ...
60
+
61
+ ### Security
62
+
63
+ - ...
package/LICENSE.md CHANGED
@@ -38,9 +38,10 @@ This document is provided for convenience only. In the event of any discrepancy,
38
38
  9. [Third-Party Code and Licenses](#third-party)
39
39
  10. [Prohibited Uses](#prohibited-uses)
40
40
  11. [Modifications and Liability Disclaimer](#disclaimer)
41
- 12. [Authoritative Version Clause](#version)
42
- 13. [Revisions](#revisions)
43
- 14. [Contact](#contact)
41
+ 12. [Support Disclaimer](#support)
42
+ 13. [Authoritative Version Clause](#version)
43
+ 14. [Revisions](#revisions)
44
+ 15. [Contact](#contact)
44
45
 
45
46
  ---
46
47
 
@@ -192,9 +193,19 @@ Modifications, redistribution, or any use of the Licensed Material are performed
192
193
 
193
194
  <sub>[Back to top](#top)</sub>
194
195
 
196
+ <a name="support"></a>
197
+
198
+ ## 12. Support Disclaimer
199
+
200
+ All support provided—whether through email, GitHub, community forums, or other channels—is offered “as-is” and **does not constitute any warranty, express or implied**. The Company, its affiliates, owners, operators, and contributors make no guarantees regarding response time, resolution, availability, or fitness for any particular purpose.
201
+
202
+ Bug fixes, security patches, or other support actions—whether provided voluntarily or in response to reported issues—do not imply any ongoing obligation, representation of completeness, or the creation of a warranty. All assistance is provided at the sole discretion of the Company and may be modified, reduced, or discontinued at any time without notice.
203
+
204
+ <sub>[Back to top](#top)</sub>
205
+
195
206
  <a name="version"></a>
196
207
 
197
- ## 12. Authoritative Version Clause
208
+ ## 13. Authoritative Version Clause
198
209
 
199
210
  In the event of any discrepancy between different versions, formats, or distributions of any legal document issued by the Company&mdash;including but not limited to license terms, policies, notices, or agreements&mdash;the version published on the Company's primary website at [https://netwk.pro](https://netwk.pro) shall be deemed the official and controlling version.
200
211
 
@@ -204,7 +215,7 @@ It is your responsibility to review the most current version of any applicable l
204
215
 
205
216
  <a name="revisions"></a>
206
217
 
207
- ## 13. Revisions
218
+ ## 14. Revisions
208
219
 
209
220
  This legal page may be updated to comply with legal or operational changes. The current effective date is listed at the top of this document.
210
221
 
@@ -214,8 +225,8 @@ This legal page may be updated to comply with legal or operational changes. The
214
225
 
215
226
  ## 14. Contact
216
227
 
217
- The Company may be contacted via our [contact form](https://netwk.pro/contact) or by email at:
218
- 📧 `contact (at) s.neteng.pro`
228
+ The Company may be contacted via our [Contact Form](https://netwk.pro/contact) or by email at:
229
+ 📧 `support (at) neteng.pro`
219
230
 
220
231
  <sub>[Back to top](#top)</sub>
221
232
 
@@ -235,7 +246,7 @@ The Company may be contacted via our [contact form](https://netwk.pro/contact) o
235
246
  Copyright &copy; 2025
236
247
  **[Network Pro Strategies](https://netwk.pro/)** (Network Pro&trade;)
237
248
 
238
- Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are [trademarks](#trademark) of Network Pro Strategies.
249
+ Network Pro&trade;, the shield logo, and the "Locking Down Networks...&trade;" slogan are [trademarks](#trademark) of Network Pro Strategies.
239
250
 
240
251
  Licensed under **[CC BY 4.0](#cc-by)** and the **[GNU GPL](#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.
241
252
 
package/cspell.json CHANGED
@@ -30,6 +30,7 @@
30
30
  "linksheet",
31
31
  "Maricopa",
32
32
  "mdsvex",
33
+ "navigations",
33
34
  "neteng",
34
35
  "netpro",
35
36
  "netwk",
@@ -43,6 +44,8 @@
43
44
  "ntfy",
44
45
  "obtainium",
45
46
  "posthog",
47
+ "prefs",
48
+ "reconsent",
46
49
  "SIEM",
47
50
  "SPDY",
48
51
  "stylelintignore",
package/jsconfig.json CHANGED
@@ -1,11 +1,3 @@
1
- /* =========================================================================
2
- jsconfig.json
3
-
4
- Copyright © 2025 Network Pro Strategies (Network Pro™)
5
- SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
6
- This file is part of Network Pro.
7
- ========================================================================= */
8
-
9
1
  {
10
2
  "extends": "./.svelte-kit/tsconfig.json",
11
3
  "compilerOptions": {
@@ -19,12 +11,6 @@ This file is part of Network Pro.
19
11
  "strict": true,
20
12
  "moduleResolution": "bundler"
21
13
  },
22
- "exclude": ["vite.config.js"], // Exclude the config file if needed
14
+ "exclude": ["vite.config.js"],
23
15
  "include": ["src", "src/global.d.ts", "src/service-worker.js"]
24
-
25
- // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
26
- // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
27
-
28
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
29
- // from the referenced tsconfig.json - TypeScript does not merge them in
30
16
  }
@@ -0,0 +1,32 @@
1
+ /* =========================================================================
2
+ jsconfig.template.jsonc
3
+
4
+ NOTE: This file is for reference only and is not actively used by SvelteKit or tooling. SvelteKit uses the jsconfig.json file without comments for actual configuration.
5
+
6
+ Copyright © 2025 Network Pro Strategies (Network Pro™)
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
+ {
12
+ "extends": "./.svelte-kit/tsconfig.json",
13
+ "compilerOptions": {
14
+ "allowJs": true,
15
+ "checkJs": true,
16
+ "esModuleInterop": true,
17
+ "forceConsistentCasingInFileNames": true,
18
+ "resolveJsonModule": true,
19
+ "skipLibCheck": true,
20
+ "sourceMap": true,
21
+ "strict": true,
22
+ "moduleResolution": "bundler"
23
+ },
24
+ "exclude": ["vite.config.js"], // Exclude the config file if needed
25
+ "include": ["src", "src/global.d.ts", "src/service-worker.js"]
26
+
27
+ // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
28
+ // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
29
+
30
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
31
+ // from the referenced tsconfig.json - TypeScript does not merge them in
32
+ }
package/netlify.toml CHANGED
@@ -1,6 +1,5 @@
1
1
  [build]
2
2
  command = "npm run build"
3
- publish = "build"
4
3
 
5
4
  [build.environment]
6
5
  NODE_VERSION = "22"
package/package.json CHANGED
@@ -1,10 +1,7 @@
1
1
  {
2
2
  "name": "@networkpro/web",
3
3
  "private": false,
4
- "sideEffects": [
5
- "./.netlify/shims.js"
6
- ],
7
- "version": "1.10.1",
4
+ "version": "1.12.2",
8
5
  "description": "Locking Down Networks, Unlocking Confidence | Security, Networking, Privacy — Network Pro Strategies",
9
6
  "keywords": [
10
7
  "advisory",
@@ -47,6 +44,8 @@
47
44
  "prepare": "svelte-kit sync || echo ''",
48
45
  "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
49
46
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
47
+ "type-check": "svelte-check --tsconfig ./jsconfig.json",
48
+ "lint:types": "npm run type-check",
50
49
  "check:env": "node scripts/checkEnv.js",
51
50
  "check:node": "node scripts/checkNode.js",
52
51
  "checkout": "npm run check:node && npm run test:all && npm run lint:all && npm run check",
@@ -78,7 +77,7 @@
78
77
  },
79
78
  "dependencies": {
80
79
  "dompurify": "^3.2.6",
81
- "posthog-js": "^1.249.1",
80
+ "posthog-js": "^1.249.3",
82
81
  "semver": "^7.7.2",
83
82
  "svelte": "5.33.14"
84
83
  },
@@ -88,11 +87,11 @@
88
87
  "@lhci/cli": "^0.14.0",
89
88
  "@playwright/test": "^1.52.0",
90
89
  "@sveltejs/adapter-netlify": "^5.0.2",
91
- "@sveltejs/kit": "2.21.1",
92
- "@sveltejs/vite-plugin-svelte": "5.0.3",
90
+ "@sveltejs/kit": "2.21.2",
91
+ "@sveltejs/vite-plugin-svelte": "5.1.0",
93
92
  "@testing-library/jest-dom": "^6.6.3",
94
93
  "@testing-library/svelte": "^5.2.8",
95
- "@vitest/coverage-v8": "^3.2.0",
94
+ "@vitest/coverage-v8": "^3.2.1",
96
95
  "autoprefixer": "^10.4.21",
97
96
  "browserslist": "^4.25.0",
98
97
  "eslint": "^9.28.0",
@@ -119,7 +118,8 @@
119
118
  "typescript": "^5.8.3",
120
119
  "vite": "^6.3.5",
121
120
  "vite-plugin-lightningcss": "^0.0.5",
122
- "vitest": "^3.2.0"
121
+ "vite-tsconfig-paths": "^5.1.4",
122
+ "vitest": "^3.2.1"
123
123
  },
124
124
  "overrides": {
125
125
  "@sveltejs/kit": {
package/src/app.html CHANGED
@@ -72,7 +72,7 @@
72
72
  content="bx4ham0zkpvzztzu213bhpt76m9siq" />
73
73
  <!-- cspell:enable -->
74
74
 
75
- <meta name="generator" content="SvelteKit 2.21.1" />
75
+ <meta name="generator" content="SvelteKit 2.21.2" />
76
76
 
77
77
  <script src="/disableSw.js"></script>
78
78
 
@@ -91,3 +91,16 @@ export async function handle({ event, resolve }) {
91
91
 
92
92
  return response;
93
93
  }
94
+
95
+ /**
96
+ * SvelteKit server-side error handler to log SSR errors.
97
+ * @type {import('@sveltejs/kit').HandleServerError}
98
+ */
99
+ export function handleError({ error, event }) {
100
+ console.error("🔴 SSR Error in route:", event.url.pathname);
101
+ console.error(error);
102
+
103
+ return {
104
+ message: "A server-side error occurred",
105
+ };
106
+ }
@@ -10,10 +10,15 @@ This file is part of Network Pro.
10
10
  import { base } from "$app/paths";
11
11
  // Import badges for licenses
12
12
  import { ccBadge, gplBadge } from "$lib";
13
+ import { CONSTANTS } from "$lib";
13
14
 
14
15
  // Log the base path to verify its value
15
16
  //console.log("Base path:", base);
16
17
 
18
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
19
+
20
+ const { PAGE } = CONSTANTS;
21
+
17
22
  const ccbyLink = `${base}/license#cc-by`;
18
23
  const gplLink = `${base}/license#gnu-gpl`;
19
24
 
@@ -51,14 +56,13 @@ This file is part of Network Pro.
51
56
  </script>
52
57
 
53
58
  <!-- BEGIN BADGES -->
54
- <!-- Updated 2025-05-15 02:12:35 by SunDevil311 -->
55
59
  <div class="bnav2-wrap">
56
60
  <table class="bnav2">
57
61
  <tbody>
58
62
  <tr>
59
63
  {#each badges as badge}
60
64
  <td class="bnav2-nav">
61
- <a href={badge.href} target="_self">
65
+ <a href={badge.href} target={PAGE.SELF}>
62
66
  <img
63
67
  decoding="async"
64
68
  loading="lazy"
@@ -8,10 +8,15 @@ This file is part of Network Pro.
8
8
 
9
9
  <script>
10
10
  import { base } from "$app/paths";
11
+ import { CONSTANTS } from "$lib";
11
12
 
12
13
  // Log the base path to verify its value
13
14
  //console.log("Base path:", base);
14
15
 
16
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
17
+
18
+ const { PAGE } = CONSTANTS;
19
+
15
20
  const termsLink = `${base}/terms-of-use`;
16
21
  const privacyLink = `${base}/privacy`;
17
22
  const licenseLink = `${base}/license`;
@@ -62,7 +67,7 @@ This file is part of Network Pro.
62
67
  <tr>
63
68
  {#each row as link}
64
69
  <td class="bnav-cell" colspan={link.colspan || 1}>
65
- <a href={link.href} target="_self">
70
+ <a href={link.href} target={PAGE.SELF}>
66
71
  {link.text}
67
72
  </a>
68
73
  </td>
@@ -10,10 +10,16 @@ This file is part of Network Pro.
10
10
  export let title;
11
11
  export let description;
12
12
 
13
+ import { CONSTANTS } from "$lib";
14
+
15
+ console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
16
+
17
+ const { COMPANY_INFO, LINKS } = CONSTANTS;
18
+
13
19
  // Static shared values
14
- const ogUrl = "https://netwk.pro";
20
+ const ogUrl = LINKS.HOME;
15
21
  const ogImg = "/img/banner-og-1200x630.png";
16
- const companyName = "Network Pro Strategies";
22
+ const companyName = COMPANY_INFO.NAME;
17
23
  const twitterAct = "@NetEng_Pro";
18
24
  </script>
19
25
 
@@ -149,14 +149,13 @@ This file is part of Network Pro.
149
149
  {:else}
150
150
  <a href={license.url} target={PAGE.SELF} rel={relLicense}>
151
151
  <strong>{license.type}</strong>
152
- </a>
153
- , as published by the
152
+ </a>, as published by the
154
153
  <a rel={PAGE.REL} href={license.externalUrl} target={PAGE.BLANK}
155
154
  >{license.description}</a
156
- >, either version 3 of the License, or (at your option) any later
155
+ >, either version 3 of the License or (at your option) any later
157
156
  version.
158
157
  {/if}
159
- {index < licenses.length - 1 ? ", and the " : ""}
158
+ {index < licenses.length - 1 ? " and the " : ""}
160
159
  {/each}
161
160
  </p>
162
161
  </div>
package/src/lib/index.js CHANGED
@@ -13,7 +13,7 @@ This file is part of Network Pro.
13
13
  * @description Main export point for library components, utilities, and assets
14
14
  * @module src/lib
15
15
  * @author SunDevil311
16
- * @updated 2025-06-02
16
+ * @updated 2025-06-03
17
17
  */
18
18
 
19
19
  // Re-export images from dedicated images.js file
@@ -32,38 +32,8 @@ export * from "./images.js";
32
32
  // export { default as Button } from './components/Button.svelte';
33
33
  // export { default as Card } from './components/Card.svelte';
34
34
 
35
- /**
36
- * @typedef {{
37
- * NAME: string,
38
- * APP_NAME: string,
39
- * YEAR: string
40
- * }} CompanyInfo
41
- *
42
- * @typedef {{
43
- * EMAIL: string,
44
- * SECURE: string,
45
- * PRIVACY: string,
46
- * PHONE: string
47
- * }} ContactInfo
48
- *
49
- * @typedef {{
50
- * BLANK: string,
51
- * SELF: string,
52
- * REL: string
53
- * }} PageTargets
54
- *
55
- * @typedef {{
56
- * BACKTOP: string,
57
- * HREFTOP: string
58
- * }} NavigationLabels
59
- *
60
- * @typedef {{
61
- * COMPANY_INFO: CompanyInfo,
62
- * CONTACT: ContactInfo,
63
- * PAGE: PageTargets,
64
- * NAV: NavigationLabels
65
- * }} AppConstants
66
- */
35
+ /** @typedef {import('./types/appConstants.js').AppConstants} AppConstants */
36
+
67
37
 
68
38
  /** @type {AppConstants} */
69
39
  export const CONSTANTS = {
@@ -87,4 +57,8 @@ export const CONSTANTS = {
87
57
  BACKTOP: "Back to top",
88
58
  HREFTOP: "#top",
89
59
  },
60
+ LINKS: {
61
+ HOME: "https://netwk.pro",
62
+ BLOG: "https://blog.netwk.pro",
63
+ },
90
64
  };
@@ -18,7 +18,7 @@ This file is part of Network Pro.
18
18
 
19
19
  console.log(CONSTANTS.COMPANY_INFO.APP_NAME);
20
20
 
21
- const { COMPANY_INFO, CONTACT, PAGE, NAV } = CONSTANTS;
21
+ const { COMPANY_INFO, CONTACT, PAGE, LINKS, NAV } = CONSTANTS;
22
22
 
23
23
  /**
24
24
  * URLs using the base path
@@ -56,6 +56,7 @@ This file is part of Network Pro.
56
56
  { id: "third-party", text: "Third-Party Code and Licenses" },
57
57
  { id: "prohibited-uses", text: "Prohibited Uses" },
58
58
  { id: "disclaimer", text: "Modifications and Liability Disclaimer" },
59
+ { id: "support", text: "Support Disclaimer" },
59
60
  { id: "authoritative", text: "Authoritative Version Clause" },
60
61
  { id: "revisions", text: "Revisions" },
61
62
  { id: "contact", text: "Contact" },
@@ -66,7 +67,7 @@ This file is part of Network Pro.
66
67
  * @type {{ effectiveDate: string, classSmall: string }}
67
68
  */
68
69
  const constants = {
69
- effectiveDate: "May 28, 2025",
70
+ effectiveDate: "June 4, 2025",
70
71
  classSmall: "small-text",
71
72
  };
72
73
  </script>
@@ -447,6 +448,24 @@ This file is part of Network Pro.
447
448
  —including, without limitation, any claims or disputes brought by third parties,
448
449
  whether in contract, tort, or otherwise.
449
450
  </p>
451
+ {:else if link.id === "support"}
452
+ <p>
453
+ All support provided—whether through email, GitHub, community forums, or
454
+ other channels—is offered “as-is” and <strong
455
+ >does not constitute any warranty, express or implied</strong
456
+ >. The Company, its affiliates, owners, operators, and contributors make
457
+ no guarantees regarding response time, resolution, availability, or
458
+ fitness for any particular purpose.
459
+ </p>
460
+
461
+ <p>
462
+ Bug fixes, security patches, or other support actions—whether provided
463
+ voluntarily or in response to reported issues—do not imply any ongoing
464
+ obligation, representation of completeness, or the creation of a
465
+ warranty. All assistance is provided at the sole discretion of the
466
+ Company and may be modified, reduced, or discontinued at any time
467
+ without notice.
468
+ </p>
450
469
  {:else if link.id === "authoritative"}
451
470
  <p>
452
471
  In the event of any discrepancy between different versions, formats, or
@@ -455,7 +474,7 @@ This file is part of Network Pro.
455
474
  version published on the Company's primary website at <a
456
475
  rel={PAGE.REL}
457
476
  href={homeLink}
458
- target={PAGE.SELF}>https://netwk.pro</a>
477
+ target={PAGE.SELF}>{LINKS.HOME}</a>
459
478
  shall be deemed the official and controlling version.
460
479
  </p>
461
480