Skip to content

Commit 762ad47

Browse files
committed
init
0 parents  commit 762ad47

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+15138
-0
lines changed

.github/dependabot.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
version: 2
2+
updates:
3+
# npm dependencies
4+
- package-ecosystem: "npm"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
open-pull-requests-limit: 10
10+
labels:
11+
- "dependencies"
12+
- "automated"
13+
groups:
14+
dev-dependencies:
15+
dependency-type: "development"
16+
update-types:
17+
- "minor"
18+
- "patch"
19+
production-dependencies:
20+
dependency-type: "production"
21+
update-types:
22+
- "patch"
23+
24+
# GitHub Actions
25+
- package-ecosystem: "github-actions"
26+
directory: "/"
27+
schedule:
28+
interval: "weekly"
29+
day: "monday"
30+
open-pull-requests-limit: 5
31+
labels:
32+
- "ci"
33+
- "automated"

.github/workflows/auto-merge.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Auto Merge Dependabot
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
11+
jobs:
12+
auto-merge:
13+
name: Auto Merge
14+
runs-on: ubuntu-latest
15+
if: github.actor == 'dependabot[bot]'
16+
steps:
17+
- name: Fetch Dependabot metadata
18+
id: metadata
19+
uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7 # v2.3.0
20+
with:
21+
github-token: ${{ secrets.GITHUB_TOKEN }}
22+
23+
- name: Wait for CI checks
24+
uses: lewagon/wait-on-check-action@ccfb013c15c8afb7bf2b7c028fb74dc5a068cccc # v1.3.4
25+
with:
26+
ref: ${{ github.event.pull_request.head.sha }}
27+
running-workflow-name: "Auto Merge"
28+
check-regexp: "^(Lint & Typecheck|Test|Build|Security Scan|CodeQL Analysis|License Compliance)$"
29+
repo-token: ${{ secrets.GITHUB_TOKEN }}
30+
wait-interval: 30
31+
32+
- name: Auto-merge patch and minor updates
33+
if: steps.metadata.outputs.update-type != 'version-update:semver-major'
34+
run: gh pr merge --auto --squash "$PR_URL"
35+
env:
36+
PR_URL: ${{ github.event.pull_request.html_url }}
37+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/ci.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
lint-and-typecheck:
15+
name: Lint & Typecheck
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19+
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
20+
with:
21+
version: 9
22+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
23+
with:
24+
node-version: 20
25+
cache: "pnpm"
26+
- run: pnpm install --frozen-lockfile
27+
- run: pnpm lint
28+
- run: pnpm typecheck
29+
30+
test:
31+
name: Test
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
35+
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
36+
with:
37+
version: 9
38+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
39+
with:
40+
node-version: 20
41+
cache: "pnpm"
42+
- run: pnpm install --frozen-lockfile
43+
- run: pnpm test
44+
45+
build:
46+
name: Build
47+
runs-on: ubuntu-latest
48+
needs: [lint-and-typecheck, test]
49+
steps:
50+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
51+
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
52+
with:
53+
version: 9
54+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
55+
with:
56+
node-version: 20
57+
cache: "pnpm"
58+
- run: pnpm install --frozen-lockfile
59+
- run: pnpm build
60+
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
61+
with:
62+
name: extension-build
63+
path: .output/chrome-mv3/
64+
65+
security:
66+
name: Security Scan
67+
runs-on: ubuntu-latest
68+
permissions:
69+
security-events: write
70+
steps:
71+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
72+
- name: Run gitleaks
73+
uses: gitleaks/gitleaks-action@ff98106e4c7b2bc287b24eaf42907196329070c7 # v2.3.9
74+
env:
75+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76+
77+
codeql:
78+
name: CodeQL Analysis
79+
runs-on: ubuntu-latest
80+
permissions:
81+
security-events: write
82+
steps:
83+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
84+
- name: Initialize CodeQL
85+
uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
86+
with:
87+
languages: javascript-typescript
88+
- name: Autobuild
89+
uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
90+
- name: Perform CodeQL Analysis
91+
uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0

.github/workflows/compliance.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: License Compliance
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "**/package.json"
7+
- "**/pnpm-lock.yaml"
8+
9+
jobs:
10+
license-check:
11+
name: License Compliance
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
15+
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
16+
with:
17+
version: 9
18+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
19+
with:
20+
node-version: 20
21+
cache: "pnpm"
22+
- run: pnpm install --frozen-lockfile
23+
- name: Install license checker
24+
run: pnpm add -g license-checker
25+
- name: Check licenses
26+
run: |
27+
license-checker --onlyAllow "MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC0-1.0;CC-BY-3.0;CC-BY-4.0;Unlicense;BlueOak-1.0.0;Python-2.0" --excludePrivatePackages
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Dependency Audit
2+
3+
on:
4+
schedule:
5+
- cron: "0 9 * * 1" # Every Monday at 9am UTC
6+
workflow_dispatch:
7+
8+
jobs:
9+
audit:
10+
name: Audit Dependencies
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
14+
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
15+
with:
16+
version: 9
17+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
18+
with:
19+
node-version: 20
20+
cache: "pnpm"
21+
- run: pnpm install --frozen-lockfile
22+
- run: pnpm audit --audit-level=moderate

.gitignore

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Dependencies
2+
node_modules/
3+
.pnpm-store/
4+
5+
# Build outputs
6+
dist/
7+
build/
8+
.output/
9+
.svelte-kit/
10+
.wxt/
11+
12+
# Extension build
13+
*.crx
14+
*.xpi
15+
*.zip
16+
17+
# Environment
18+
.env
19+
.env.local
20+
.env.production
21+
.env.*.local
22+
23+
# IDE
24+
.vscode/
25+
.idea/
26+
*.swp
27+
*.swo
28+
*~
29+
30+
# OS
31+
.DS_Store
32+
Thumbs.db
33+
34+
# Testing
35+
coverage/
36+
.nyc_output/
37+
38+
# Logs
39+
*.log
40+
npm-debug.log*
41+
42+
# Docker
43+
docker-compose.override.yml
44+
45+
# Database
46+
*.db
47+
*.sqlite
48+
49+
# Temp
50+
tmp/
51+
.tmp/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Happy Hacking Space
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)