@networkpro/web 1.13.7 → 1.14.1
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/.browserslistrc +5 -0
- package/.editorconfig +65 -0
- package/.env.template +18 -0
- package/.gitattributes +212 -0
- package/.github/COMMIT_GUIDE.md +31 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +74 -0
- package/.github/ISSUE_TEMPLATE/config.yml +32 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +35 -0
- package/.github/ISSUE_TEMPLATE/legal_review.yml +53 -0
- package/.github/workflows/auto-assign.yml +36 -0
- package/.github/workflows/backup-branch.yml +40 -0
- package/.github/workflows/build-and-publish.yml +202 -0
- package/.github/workflows/check-codeql.yml +40 -0
- package/.github/workflows/check-security-txt-expirty.yml +46 -0
- package/.github/workflows/dependency-review.yml +22 -0
- package/.github/workflows/lighthouse.yml +163 -0
- package/.github/workflows/playwright.yml +66 -0
- package/.github/workflows/publish-test.yml +215 -0
- package/.github/workflows/templates/check-codeql.template.yml +47 -0
- package/.lighthouserc.cjs +37 -0
- package/.markdownlint.mjs +31 -0
- package/.md-smart-quotes.js +31 -0
- package/.node-version +1 -0
- package/.nvmrc +1 -0
- package/.prettierignore +55 -0
- package/.prettierrc +35 -0
- package/.stylelintignore +43 -0
- package/.svelte-kit/tsconfig.json +49 -0
- package/.vscode/customData.json +73 -0
- package/.vscode/extensions.json +13 -0
- package/.vscode/extensions.jsonc +24 -0
- package/.vscode/settings.json +80 -0
- package/CHANGELOG.md +56 -2
- package/cspell.json +4 -0
- package/package.json +3 -3
- package/src/app.html +1 -1
- package/src/lib/components/ui/.gitkeep +0 -0
- package/src/lib/data/fossData.js +82 -2
- package/src/lib/images.js +6 -4
- package/src/lib/img/posts/cryptomator.png +0 -0
- package/src/lib/img/posts/cryptomator.webp +0 -0
- package/src/routes/...404/+page.svelte +26 -0
- package/static/.well-known/dnt-policy.txt +218 -0
- package/static/.well-known/gpc.json +4 -0
- package/static/.well-known/humans.txt +21 -0
- package/static/.well-known/security.txt +12 -0
- package/static/.well-known/security.txt.sig +7 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# .github/workflows/publish-test.yml
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro
|
|
6
|
+
|
|
7
|
+
name: Test Publishing to Registries
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
# Allow one concurrent deployment
|
|
13
|
+
concurrency:
|
|
14
|
+
group: 'build-and-publish'
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
actions: read
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
check-codeql:
|
|
23
|
+
uses: ./.github/workflows/check-codeql.yml
|
|
24
|
+
|
|
25
|
+
build:
|
|
26
|
+
needs: check-codeql
|
|
27
|
+
runs-on: ubuntu-24.04
|
|
28
|
+
env:
|
|
29
|
+
ENV_MODE: ci
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- name: Checkout repository
|
|
33
|
+
uses: actions/checkout@v4
|
|
34
|
+
|
|
35
|
+
- name: Set up Node.js
|
|
36
|
+
uses: actions/setup-node@v4
|
|
37
|
+
with:
|
|
38
|
+
node-version: 24
|
|
39
|
+
cache: npm
|
|
40
|
+
cache-dependency-path: package-lock.json
|
|
41
|
+
|
|
42
|
+
- name: Show Node.js and npm versions
|
|
43
|
+
run: |
|
|
44
|
+
echo "Node.js version: $(node -v)"
|
|
45
|
+
echo "npm version: $(npm -v)"
|
|
46
|
+
|
|
47
|
+
- name: Upgrade npm
|
|
48
|
+
run: |
|
|
49
|
+
corepack enable
|
|
50
|
+
npm install -g npm@11.4.1
|
|
51
|
+
|
|
52
|
+
- name: Install Node.js dependencies
|
|
53
|
+
run: npm ci
|
|
54
|
+
|
|
55
|
+
- name: Install jq
|
|
56
|
+
run: sudo apt-get install -y jq
|
|
57
|
+
|
|
58
|
+
- name: Run JSDoc lint check
|
|
59
|
+
id: jsdoc_lint
|
|
60
|
+
continue-on-error: true
|
|
61
|
+
run: |
|
|
62
|
+
set -e
|
|
63
|
+
output=$(npm run lint:jsdoc || true)
|
|
64
|
+
echo "$output"
|
|
65
|
+
|
|
66
|
+
count=$(echo "$output" | wc -l)
|
|
67
|
+
echo "jsdoc_count=$count" >> "$GITHUB_OUTPUT"
|
|
68
|
+
|
|
69
|
+
- name: ✅ Pass
|
|
70
|
+
if: steps.jsdoc_lint.outputs.jsdoc_count == '0'
|
|
71
|
+
run: echo "JSDoc lint passed successfully!"
|
|
72
|
+
|
|
73
|
+
- name: ⚠️ JSDoc violations detected (non-blocking)
|
|
74
|
+
if: steps.jsdoc_lint.outputs.jsdoc_count != '0'
|
|
75
|
+
run: echo "⚠️ JSDoc lint check failed with ${{ steps.jsdoc_lint.outputs.jsdoc_count }} violations (non-blocking)"
|
|
76
|
+
|
|
77
|
+
# Test to ensure the package is working
|
|
78
|
+
- name: Build Node.js project
|
|
79
|
+
run: npm run build
|
|
80
|
+
|
|
81
|
+
# Create Git archive of version-controlled files
|
|
82
|
+
- name: Create clean source archive
|
|
83
|
+
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
84
|
+
|
|
85
|
+
- name: Upload source archive
|
|
86
|
+
uses: actions/upload-artifact@v4
|
|
87
|
+
with:
|
|
88
|
+
name: clean-source
|
|
89
|
+
path: clean-source.tar.gz
|
|
90
|
+
|
|
91
|
+
publish-npmjs:
|
|
92
|
+
needs: build
|
|
93
|
+
runs-on: ubuntu-24.04
|
|
94
|
+
env:
|
|
95
|
+
ENV_MODE: ci
|
|
96
|
+
|
|
97
|
+
steps:
|
|
98
|
+
- name: Download clean source archive
|
|
99
|
+
uses: actions/download-artifact@v4
|
|
100
|
+
with:
|
|
101
|
+
name: clean-source
|
|
102
|
+
path: ./
|
|
103
|
+
|
|
104
|
+
- name: Extract source archive
|
|
105
|
+
run: tar -xzf clean-source.tar.gz
|
|
106
|
+
|
|
107
|
+
- name: Remove extracted source archive
|
|
108
|
+
run: rm clean-source.tar.gz
|
|
109
|
+
|
|
110
|
+
- name: Set up Node.js for npmjs
|
|
111
|
+
uses: actions/setup-node@v4
|
|
112
|
+
with:
|
|
113
|
+
node-version: 24
|
|
114
|
+
registry-url: https://registry.npmjs.org/
|
|
115
|
+
cache: npm
|
|
116
|
+
cache-dependency-path: package-lock.json
|
|
117
|
+
|
|
118
|
+
- name: Show Node.js and npm versions
|
|
119
|
+
run: |
|
|
120
|
+
echo "Node.js version: $(node -v)"
|
|
121
|
+
echo "npm version: $(npm -v)"
|
|
122
|
+
|
|
123
|
+
- name: Upgrade npm
|
|
124
|
+
run: |
|
|
125
|
+
corepack enable
|
|
126
|
+
npm install -g npm@11.4.1
|
|
127
|
+
|
|
128
|
+
- name: Install Node.js dependencies
|
|
129
|
+
run: npm ci
|
|
130
|
+
|
|
131
|
+
- name: Set up Git user
|
|
132
|
+
run: |
|
|
133
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
134
|
+
git config --global user.name "SunDevil311"
|
|
135
|
+
|
|
136
|
+
- name: Verify version not already published
|
|
137
|
+
run: |
|
|
138
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
139
|
+
PACKAGE_VERSION=$(node -p "require('./package.json').version")
|
|
140
|
+
echo "Checking if $PACKAGE_NAME@$PACKAGE_VERSION is already published..."
|
|
141
|
+
|
|
142
|
+
npm view $PACKAGE_NAME@$PACKAGE_VERSION > /dev/null && {
|
|
143
|
+
echo "❌ Version $PACKAGE_VERSION already exists on npm. Exiting..."
|
|
144
|
+
exit 1
|
|
145
|
+
} || echo "✅ Version is new. Proceeding with publish."
|
|
146
|
+
|
|
147
|
+
- name: Simulate publish package to npmjs
|
|
148
|
+
run: npm publish --dry-run
|
|
149
|
+
env:
|
|
150
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_NETPRO }}
|
|
151
|
+
|
|
152
|
+
publish-gpr:
|
|
153
|
+
needs: build
|
|
154
|
+
runs-on: ubuntu-24.04
|
|
155
|
+
env:
|
|
156
|
+
ENV_MODE: ci
|
|
157
|
+
|
|
158
|
+
steps:
|
|
159
|
+
- name: Download clean source archive
|
|
160
|
+
uses: actions/download-artifact@v4
|
|
161
|
+
with:
|
|
162
|
+
name: clean-source
|
|
163
|
+
path: ./
|
|
164
|
+
|
|
165
|
+
- name: Extract source archive
|
|
166
|
+
run: tar -xzf clean-source.tar.gz
|
|
167
|
+
|
|
168
|
+
- name: Remove extracted source archive
|
|
169
|
+
run: rm clean-source.tar.gz
|
|
170
|
+
|
|
171
|
+
- name: Set up Node.js for GPR
|
|
172
|
+
uses: actions/setup-node@v4
|
|
173
|
+
with:
|
|
174
|
+
node-version: 24
|
|
175
|
+
registry-url: https://npm.pkg.github.com/
|
|
176
|
+
cache: npm
|
|
177
|
+
cache-dependency-path: package-lock.json
|
|
178
|
+
|
|
179
|
+
- name: Show Node.js and npm versions
|
|
180
|
+
run: |
|
|
181
|
+
echo "Node.js version: $(node -v)"
|
|
182
|
+
echo "npm version: $(npm -v)"
|
|
183
|
+
|
|
184
|
+
- name: Upgrade npm
|
|
185
|
+
run: |
|
|
186
|
+
corepack enable
|
|
187
|
+
npm install -g npm@11.4.1
|
|
188
|
+
|
|
189
|
+
- name: Install Node.js dependencies
|
|
190
|
+
run: npm ci
|
|
191
|
+
|
|
192
|
+
- name: Set up Git user
|
|
193
|
+
run: |
|
|
194
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
195
|
+
git config --global user.name "SunDevil311"
|
|
196
|
+
|
|
197
|
+
- name: Update package name for GPR
|
|
198
|
+
run: |
|
|
199
|
+
sed -i 's/"name": ".*"/"name": "@netwk-pro\/web"/' package.json
|
|
200
|
+
|
|
201
|
+
- name: Verify version not already published
|
|
202
|
+
run: |
|
|
203
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
204
|
+
PACKAGE_VERSION=$(node -p "require('./package.json').version")
|
|
205
|
+
echo "Checking if $PACKAGE_NAME@$PACKAGE_VERSION is already published..."
|
|
206
|
+
|
|
207
|
+
npm view $PACKAGE_NAME@$PACKAGE_VERSION > /dev/null && {
|
|
208
|
+
echo "❌ Version $PACKAGE_VERSION already exists on npm. Exiting..."
|
|
209
|
+
exit 1
|
|
210
|
+
} || echo "✅ Version is new. Proceeding with publish."
|
|
211
|
+
|
|
212
|
+
- name: Simulate publish package to GPR
|
|
213
|
+
run: npm publish --dry-run
|
|
214
|
+
env:
|
|
215
|
+
NODE_AUTH_TOKEN: ${{ secrets.NWPRO_GPR }}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# check-codeql.template.yml
|
|
2
|
+
#
|
|
3
|
+
# Reusable GitHub Actions workflow to enforce that the latest CodeQL scan
|
|
4
|
+
# has completed successfully.
|
|
5
|
+
#
|
|
6
|
+
# Version: v1.0.0
|
|
7
|
+
# Maintainer: Scott Lopez <support@neteng.pro>
|
|
8
|
+
# Usage: Copy to `.github/workflows/check-codeql.yml` in your repo or reference directly if shared centrally.
|
|
9
|
+
#
|
|
10
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
11
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
12
|
+
# This file is part of Network Pro
|
|
13
|
+
|
|
14
|
+
name: Reusable CodeQL Status Check
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
actions: read
|
|
18
|
+
contents: read
|
|
19
|
+
|
|
20
|
+
on:
|
|
21
|
+
workflow_call:
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
check:
|
|
25
|
+
name: Check CodeQL Status
|
|
26
|
+
runs-on: ubuntu-24.04
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Check CodeQL Workflow
|
|
30
|
+
env:
|
|
31
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
32
|
+
run: |
|
|
33
|
+
gh --version
|
|
34
|
+
|
|
35
|
+
if ! gh run list --repo "${GITHUB_REPOSITORY}" --workflow "CodeQL" --limit 1 --json conclusion --jq '.[0].conclusion' > codeql_status.txt; then
|
|
36
|
+
echo "::error title=CodeQL Check Failed::Could not retrieve CodeQL run status. Blocking deployment."
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
CODEQL_STATUS=$(cat codeql_status.txt)
|
|
41
|
+
echo "CodeQL status: $CODEQL_STATUS"
|
|
42
|
+
if [[ "$CODEQL_STATUS" != "success" ]]; then
|
|
43
|
+
echo "::error title=CodeQL Check Failed::Latest CodeQL run did not succeed. Blocking deployment."
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
rm -f codeql_status.txt
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.lighthouserc.cjs
|
|
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
|
+
module.exports = {
|
|
10
|
+
ci: {
|
|
11
|
+
collect: {
|
|
12
|
+
url: ['https://netwk.pro'],
|
|
13
|
+
numberOfRuns: 1,
|
|
14
|
+
settings: {
|
|
15
|
+
onlyCategories: [
|
|
16
|
+
'performance',
|
|
17
|
+
'accessibility',
|
|
18
|
+
'best-practices',
|
|
19
|
+
'seo',
|
|
20
|
+
],
|
|
21
|
+
disableFullPageScreenshot: true,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
assert: {
|
|
25
|
+
preset: 'none',
|
|
26
|
+
assertions: {
|
|
27
|
+
// Add budget checks by asserting that "resource-summary" does not exceed budget
|
|
28
|
+
'resource-summary': ['error', { budgetPath: 'budget.json' }],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
upload: {
|
|
32
|
+
target: 'filesystem',
|
|
33
|
+
outputDir: './.lighthouseci',
|
|
34
|
+
reporter: ['html', 'json'],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.markdownlint.mjs
|
|
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
|
+
import noSmartQuotes from './.md-smart-quotes.js'; // adjust path as needed
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
// Enable all default rules, then override below
|
|
13
|
+
default: true,
|
|
14
|
+
|
|
15
|
+
// Custom rule: disallow curly (smart) quotes
|
|
16
|
+
customRules: [noSmartQuotes],
|
|
17
|
+
|
|
18
|
+
// Rule exceptions
|
|
19
|
+
MD041: false, // First line in file should be a top-level header
|
|
20
|
+
MD033: false, // Allow inline HTML
|
|
21
|
+
MD013: false, // Ignore line length
|
|
22
|
+
|
|
23
|
+
// Additional parser options
|
|
24
|
+
options: {
|
|
25
|
+
frontMatter: '^---\\n[\\s\\S]*?\\n---', // YAML front matter regex
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
// Rule-specific configurations
|
|
29
|
+
MD007: { indent: 2 }, // Set consistent unordered list indentation (e.g., 2 spaces)
|
|
30
|
+
MD029: { style: 'ordered' }, // Enforce consistent ordered list numbering
|
|
31
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.md-smart-quotes.js
|
|
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
|
+
export default {
|
|
10
|
+
names: ['no-smart-quotes'],
|
|
11
|
+
description: 'Disallow smart quotes (curly quotes)',
|
|
12
|
+
information: new URL('https://github.com/DavidAnson/markdownlint'),
|
|
13
|
+
tags: ['quotes', 'style'],
|
|
14
|
+
function(params, onError) {
|
|
15
|
+
const smartQuoteRegex = /[“”‘’]/g;
|
|
16
|
+
|
|
17
|
+
params.tokens.forEach((token) => {
|
|
18
|
+
if (token.type === 'inline' && smartQuoteRegex.test(token.content)) {
|
|
19
|
+
const matches = [...token.content.matchAll(smartQuoteRegex)];
|
|
20
|
+
matches.forEach((match) => {
|
|
21
|
+
const index = match.index;
|
|
22
|
+
onError({
|
|
23
|
+
lineNumber: token.lineNumber,
|
|
24
|
+
detail: `Smart quote (${match[0]}) detected`,
|
|
25
|
+
range: [index + 1, 1],
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
};
|
package/.node-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
24.2.0
|
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
24.2.0
|
package/.prettierignore
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# .prettierignore
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro.
|
|
6
|
+
|
|
7
|
+
# Custom ignores
|
|
8
|
+
.markdownlint.jsonc
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Licenses
|
|
12
|
+
static/bin/license
|
|
13
|
+
|
|
14
|
+
# Minified CSS
|
|
15
|
+
*.min.css
|
|
16
|
+
|
|
17
|
+
# SvelteKit
|
|
18
|
+
.svelte-kit/*
|
|
19
|
+
src/lib/styles
|
|
20
|
+
src/lib/*.js
|
|
21
|
+
src/lib/data/*.js
|
|
22
|
+
|
|
23
|
+
# Node.js dependencies
|
|
24
|
+
node_modules
|
|
25
|
+
|
|
26
|
+
# Build artifacts
|
|
27
|
+
build
|
|
28
|
+
.vite
|
|
29
|
+
.cache
|
|
30
|
+
coverage
|
|
31
|
+
|
|
32
|
+
# Temporary files
|
|
33
|
+
*.lock
|
|
34
|
+
*.tmp
|
|
35
|
+
*.swp
|
|
36
|
+
*.bak
|
|
37
|
+
|
|
38
|
+
# Static assets
|
|
39
|
+
**/*.png
|
|
40
|
+
**/*.jpg
|
|
41
|
+
**/*.jpeg
|
|
42
|
+
**/*.gif
|
|
43
|
+
**/*.svg
|
|
44
|
+
**/*.woff
|
|
45
|
+
**/*.woff2
|
|
46
|
+
**/*.ttf
|
|
47
|
+
**/*.eot
|
|
48
|
+
|
|
49
|
+
# Generated files
|
|
50
|
+
**/*.d.ts
|
|
51
|
+
**/generated/*
|
|
52
|
+
|
|
53
|
+
# Configuration files
|
|
54
|
+
package.json
|
|
55
|
+
package-lock.json
|
package/.prettierrc
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"printWidth": 80,
|
|
3
|
+
"tabWidth": 2,
|
|
4
|
+
"useTabs": false,
|
|
5
|
+
"semi": true,
|
|
6
|
+
"singleQuote": true,
|
|
7
|
+
"quoteProps": "as-needed",
|
|
8
|
+
"jsxSingleQuote": true,
|
|
9
|
+
"trailingComma": "all",
|
|
10
|
+
"bracketSpacing": true,
|
|
11
|
+
"objectWrap": "preserve",
|
|
12
|
+
"bracketSameLine": true,
|
|
13
|
+
"arrowParens": "always",
|
|
14
|
+
"requirePragma": false,
|
|
15
|
+
"insertPragma": false,
|
|
16
|
+
"proseWrap": "preserve",
|
|
17
|
+
"htmlWhitespaceSensitivity": "strict",
|
|
18
|
+
"endOfLine": "lf",
|
|
19
|
+
"singleAttributePerLine": false,
|
|
20
|
+
"plugins": ["prettier-plugin-svelte"],
|
|
21
|
+
"overrides": [
|
|
22
|
+
{
|
|
23
|
+
"files": "*.svelte",
|
|
24
|
+
"options": {
|
|
25
|
+
"parser": "svelte"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"files": "*.jsonc",
|
|
30
|
+
"options": {
|
|
31
|
+
"trailingComma": "none"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
package/.stylelintignore
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# .stylelintignore
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro.
|
|
6
|
+
|
|
7
|
+
# Report files and test results
|
|
8
|
+
playwright-report
|
|
9
|
+
test-results
|
|
10
|
+
|
|
11
|
+
# Node.js dependencies
|
|
12
|
+
node_modules
|
|
13
|
+
|
|
14
|
+
# Build artifacts
|
|
15
|
+
build
|
|
16
|
+
.vite
|
|
17
|
+
.cache
|
|
18
|
+
coverage
|
|
19
|
+
|
|
20
|
+
# Temporary files
|
|
21
|
+
*.lock
|
|
22
|
+
*.tmp
|
|
23
|
+
*.swp
|
|
24
|
+
*.bak
|
|
25
|
+
|
|
26
|
+
# Static assets
|
|
27
|
+
**/*.png
|
|
28
|
+
**/*.jpg
|
|
29
|
+
**/*.jpeg
|
|
30
|
+
**/*.gif
|
|
31
|
+
**/*.svg
|
|
32
|
+
**/*.woff
|
|
33
|
+
**/*.woff2
|
|
34
|
+
**/*.ttf
|
|
35
|
+
**/*.eot
|
|
36
|
+
|
|
37
|
+
# Generated files
|
|
38
|
+
**/*.d.ts
|
|
39
|
+
**/generated/*
|
|
40
|
+
|
|
41
|
+
# Configuration files
|
|
42
|
+
package.json
|
|
43
|
+
package-lock.json
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"paths": {
|
|
4
|
+
"$lib": [
|
|
5
|
+
"../src/lib"
|
|
6
|
+
],
|
|
7
|
+
"$lib/*": [
|
|
8
|
+
"../src/lib/*"
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"rootDirs": [
|
|
12
|
+
"..",
|
|
13
|
+
"./types"
|
|
14
|
+
],
|
|
15
|
+
"verbatimModuleSyntax": true,
|
|
16
|
+
"isolatedModules": true,
|
|
17
|
+
"lib": [
|
|
18
|
+
"esnext",
|
|
19
|
+
"DOM",
|
|
20
|
+
"DOM.Iterable"
|
|
21
|
+
],
|
|
22
|
+
"moduleResolution": "bundler",
|
|
23
|
+
"module": "esnext",
|
|
24
|
+
"noEmit": true,
|
|
25
|
+
"target": "esnext"
|
|
26
|
+
},
|
|
27
|
+
"include": [
|
|
28
|
+
"ambient.d.ts",
|
|
29
|
+
"non-ambient.d.ts",
|
|
30
|
+
"./types/**/$types.d.ts",
|
|
31
|
+
"../vite.config.js",
|
|
32
|
+
"../vite.config.ts",
|
|
33
|
+
"../src/**/*.js",
|
|
34
|
+
"../src/**/*.ts",
|
|
35
|
+
"../src/**/*.svelte",
|
|
36
|
+
"../tests/**/*.js",
|
|
37
|
+
"../tests/**/*.ts",
|
|
38
|
+
"../tests/**/*.svelte"
|
|
39
|
+
],
|
|
40
|
+
"exclude": [
|
|
41
|
+
"../node_modules/**",
|
|
42
|
+
"../src/service-worker.js",
|
|
43
|
+
"../src/service-worker/**/*.js",
|
|
44
|
+
"../src/service-worker.ts",
|
|
45
|
+
"../src/service-worker/**/*.ts",
|
|
46
|
+
"../src/service-worker.d.ts",
|
|
47
|
+
"../src/service-worker/**/*.d.ts"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"selectors": [
|
|
4
|
+
{
|
|
5
|
+
"name": ".fas",
|
|
6
|
+
"description": "FontAwesome v6 solid icon class"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": ".fa-solid",
|
|
10
|
+
"description": "FontAwesome old solid icon class"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": ".fab",
|
|
14
|
+
"description": "FontAwesome v6 brand icon class"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": ".fa-brands",
|
|
18
|
+
"description": "FontAwsome old brand icon class"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": ".fa-square-instagram",
|
|
22
|
+
"description": "FontAwesome brands Instagram icon class"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": ".fa-square-github",
|
|
26
|
+
"description": "FontAwesome brands GitHub icon class"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": ".fa-linkedin",
|
|
30
|
+
"description": "FontAwesome brands LinkedIn icon class"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": ".fa-square-facebook",
|
|
34
|
+
"description": "FontAwesome brands Facebook icon class"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": ".fa-mastodon",
|
|
38
|
+
"description": "FontAwesome brands Pinterest icon class"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": ".fa-arrow-up-right",
|
|
42
|
+
"description": "FontAwesome arrow up right icon class"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": ".fa-arrow-up-right-from-square",
|
|
46
|
+
"description": "FontAwesome arrow up right from square icon class"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": ".fa-file-arrow-down",
|
|
50
|
+
"description": "FontAwesome download file icon class"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": ".fa-2x",
|
|
54
|
+
"description": "FontAwesome 2x extra large icon size class"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": ".fa-lg",
|
|
58
|
+
"description": "FontAwesome large icon size class"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": ".fa-sm",
|
|
62
|
+
"description": "FontAwesome small icon size class"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": ".fa-xs",
|
|
66
|
+
"description": "FontAwesome extra small icon size class"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": ".fa-2xs",
|
|
70
|
+
"description": "FontAwesome 2x extra small icon size class"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"recommendations": [
|
|
3
|
+
"svelte.svelte-vscode",
|
|
4
|
+
"esbenp.prettier-vscode",
|
|
5
|
+
"dbaeumer.vscode-eslint",
|
|
6
|
+
"stylelint.vscode-stylelint",
|
|
7
|
+
"DavidAnson.vscode-markdownlint",
|
|
8
|
+
"editorconfig.editorconfig",
|
|
9
|
+
"ms-playwright.playwright",
|
|
10
|
+
"vitest.explorer",
|
|
11
|
+
"streetsidesoftware.code-spell-checker"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
extensions.jsonc
|
|
3
|
+
|
|
4
|
+
NOTE: This file is for reference only and is not actively used by VS Code.
|
|
5
|
+
VS Code uses the extensions.json file without comments for actual configuration.
|
|
6
|
+
|
|
7
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
8
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
9
|
+
This file is part of Network Pro.
|
|
10
|
+
========================================================================== */
|
|
11
|
+
|
|
12
|
+
{
|
|
13
|
+
"recommendations": [
|
|
14
|
+
"svelte.svelte-vscode", // Svelte language support
|
|
15
|
+
"esbenp.prettier-vscode", // Prettier formatting
|
|
16
|
+
"dbaeumer.vscode-eslint", // JavaScript/TypeScript linting
|
|
17
|
+
"stylelint.vscode-stylelint", // CSS/SASS/Svelte linting
|
|
18
|
+
"DavidAnson.vscode-markdownlint", // Markdown linting
|
|
19
|
+
"editorconfig.editorconfig", // Respect .editorconfig rules
|
|
20
|
+
"ms-playwright.playwright", // E2E testing with Playwright
|
|
21
|
+
"vitest.explorer", // Vitest test explorer panel
|
|
22
|
+
"streetsidesoftware.code-spell-checker" // Inline spell checking (comments, Markdown, etc.)
|
|
23
|
+
]
|
|
24
|
+
}
|