Skip to content

Commit 3b00fec

Browse files
authored
chore: Remove legacy store modules and add new API key and reporting services (#1536)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added developer CLI tools for toggling GraphQL sandbox and modal testing utilities. * Introduced a "Show Activation Modal" developer component for UI testing. * Added system initial setup detection and related GraphQL queries. * Enhanced login and welcome pages with dynamic server info and initial setup state. * Improved SSO button with internationalization and error handling. * Added internal CLI admin API key management service and internal GraphQL client service. * Introduced comprehensive API report generation service for system and service status. * Added CLI commands and GraphQL mutations/queries for plugin and SSO user management. * Added new modal target components and improved teleport target detection. * **Enhancements** * Refined modal dialog targeting and teleportation for flexible UI placement. * Updated modal components and stores for improved activation/welcome modal control. * Improved plugin and SSO user management via CLI through GraphQL API. * Refactored partner logo components to use props instead of store dependencies. * Enhanced styling and accessibility for buttons and modals. * Streamlined Tailwind CSS integration with shared styles and updated theme variables. * Improved GraphQL module configuration to avoid directive conflicts in tests. * Adjusted Vite config for better dependency handling in test mode. * Improved error handling and logging in CLI commands and services. * Reordered imports and refined component class bindings for UI consistency. * **Bug Fixes** * Resolved issues with duplicate script tags and component registration in the web UI. * Fixed modal close button visibility and activation modal state handling. * Added error handling and logging improvements across CLI commands and services. * Fixed newline issues in last-download-time fixture files. * **Chores** * Added and updated numerous tests for CLI commands, services, and UI components. * Updated translation files and localization resources for new UI messages. * Adjusted environment, configuration, and dependency files for improved development and test workflows. * Cleaned up unused imports and mocks in tests. * Reorganized exports and barrel files in shared and UI modules. * Added integration and dependency resolution tests for core modules. * **Removals & Refactoring** * Removed legacy Redux state management, configuration, and UPnP logic from the backend. * Eliminated deprecated GraphQL subscriptions and client code related to registration and mothership. * Removed direct store manipulation and replaced with service-based approaches in CLI commands. * Deleted unused or redundant test files and configuration listeners. * Refactored SSO user service to consolidate add/remove operations into a single update method. * Simplified API key services with new methods for automatic key management. * Replaced direct plugin and SSO user service calls with GraphQL client interactions in CLI commands. * Removed complex theme fallback and dark mode CSS rules, replacing with streamlined static theme variables. * Cleaned up Tailwind CSS configuration and removed deprecated local styles. * Removed multiple internal utility files and replaced with simplified or centralized implementations. * Removed deprecated local configuration and synchronization files and listeners. * Removed UPnP helper functions and job management classes. * Refactored server resolver to dynamically construct local server data internally. * Removed CORS handler and replaced with simplified or externalized logic. * Removed store synchronization and registration event pubsub handling. * Removed GraphQL client creation utilities for internal API communication. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 4ff6a1a commit 3b00fec

File tree

193 files changed

+7454
-4754
lines changed

Some content is hidden

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

193 files changed

+7454
-4754
lines changed

.claude/settings.json

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"# Development Commands",
5+
"Bash(pnpm install)",
6+
"Bash(pnpm dev)",
7+
"Bash(pnpm build)",
8+
"Bash(pnpm test)",
9+
"Bash(pnpm test:*)",
10+
"Bash(pnpm lint)",
11+
"Bash(pnpm lint:fix)",
12+
"Bash(pnpm type-check)",
13+
"Bash(pnpm codegen)",
14+
"Bash(pnpm storybook)",
15+
"Bash(pnpm --filter * dev)",
16+
"Bash(pnpm --filter * build)",
17+
"Bash(pnpm --filter * test)",
18+
"Bash(pnpm --filter * lint)",
19+
"Bash(pnpm --filter * codegen)",
20+
21+
"# Git Commands (read-only)",
22+
"Bash(git status)",
23+
"Bash(git diff)",
24+
"Bash(git log)",
25+
"Bash(git branch)",
26+
"Bash(git remote -v)",
27+
28+
"# Search Commands",
29+
"Bash(rg *)",
30+
31+
"# File System (read-only)",
32+
"Bash(ls)",
33+
"Bash(ls -la)",
34+
"Bash(pwd)",
35+
"Bash(find . -name)",
36+
"Bash(find . -type)",
37+
38+
"# Node/NPM Commands",
39+
"Bash(node --version)",
40+
"Bash(pnpm --version)",
41+
"Bash(npx --version)",
42+
43+
"# Environment Commands",
44+
"Bash(echo $*)",
45+
"Bash(which *)",
46+
47+
"# Process Commands",
48+
"Bash(ps aux | grep)",
49+
"Bash(lsof -i)",
50+
51+
"# Documentation Domains",
52+
"WebFetch(domain:tailwindcss.com)",
53+
"WebFetch(domain:github.com)",
54+
"WebFetch(domain:reka-ui.com)",
55+
"WebFetch(domain:nodejs.org)",
56+
"WebFetch(domain:pnpm.io)",
57+
"WebFetch(domain:vitejs.dev)",
58+
"WebFetch(domain:nuxt.com)",
59+
"WebFetch(domain:nestjs.com)",
60+
61+
"# IDE Integration",
62+
"mcp__ide__getDiagnostics",
63+
64+
"# Browser MCP (for testing)",
65+
"mcp__browsermcp__browser_navigate",
66+
"mcp__browsermcp__browser_click",
67+
"mcp__browsermcp__browser_screenshot"
68+
],
69+
"deny": [
70+
"# Dangerous Commands",
71+
"Bash(rm -rf)",
72+
"Bash(chmod 777)",
73+
"Bash(curl)",
74+
"Bash(wget)",
75+
"Bash(ssh)",
76+
"Bash(scp)",
77+
"Bash(sudo)",
78+
"Bash(su)",
79+
"Bash(pkill)",
80+
"Bash(kill)",
81+
"Bash(killall)",
82+
"Bash(python)",
83+
"Bash(python3)",
84+
"Bash(pip)",
85+
"Bash(npm)",
86+
"Bash(yarn)",
87+
"Bash(apt)",
88+
"Bash(brew)",
89+
"Bash(systemctl)",
90+
"Bash(service)",
91+
"Bash(docker)",
92+
"Bash(docker-compose)",
93+
94+
"# File Modification (use Edit/Write tools instead)",
95+
"Bash(sed)",
96+
"Bash(awk)",
97+
"Bash(perl)",
98+
"Bash(echo > *)",
99+
"Bash(echo >> *)",
100+
"Bash(cat > *)",
101+
"Bash(cat >> *)",
102+
"Bash(tee)",
103+
104+
"# Git Write Commands (require explicit user action)",
105+
"Bash(git add)",
106+
"Bash(git commit)",
107+
"Bash(git push)",
108+
"Bash(git pull)",
109+
"Bash(git merge)",
110+
"Bash(git rebase)",
111+
"Bash(git checkout)",
112+
"Bash(git reset)",
113+
"Bash(git clean)",
114+
115+
"# Package Management Write Commands",
116+
"Bash(pnpm add)",
117+
"Bash(pnpm remove)",
118+
"Bash(pnpm update)",
119+
"Bash(pnpm upgrade)"
120+
]
121+
},
122+
"enableAllProjectMcpServers": false
123+
}

.claude/settings.local.json

Lines changed: 0 additions & 45 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,6 @@ plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/dat
109109

110110
# Config file that changes between versions
111111
api/dev/Unraid.net/myservers.cfg
112+
113+
# Claude local settings
114+
.claude/settings.local.json

.vscode/settings.json

Lines changed: 0 additions & 14 deletions
This file was deleted.

.vscode/sftp-template.json

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
@custom-variant dark (&:where(.dark, .dark *));
2+
3+
@layer utilities {
4+
:host {
5+
--tw-divide-y-reverse: 0;
6+
--tw-border-style: solid;
7+
--tw-font-weight: initial;
8+
--tw-tracking: initial;
9+
--tw-translate-x: 0;
10+
--tw-translate-y: 0;
11+
--tw-translate-z: 0;
12+
--tw-rotate-x: rotateX(0);
13+
--tw-rotate-y: rotateY(0);
14+
--tw-rotate-z: rotateZ(0);
15+
--tw-skew-x: skewX(0);
16+
--tw-skew-y: skewY(0);
17+
--tw-space-x-reverse: 0;
18+
--tw-gradient-position: initial;
19+
--tw-gradient-from: #0000;
20+
--tw-gradient-via: #0000;
21+
--tw-gradient-to: #0000;
22+
--tw-gradient-stops: initial;
23+
--tw-gradient-via-stops: initial;
24+
--tw-gradient-from-position: 0%;
25+
--tw-gradient-via-position: 50%;
26+
--tw-gradient-to-position: 100%;
27+
--tw-shadow: 0 0 #0000;
28+
--tw-shadow-color: initial;
29+
--tw-inset-shadow: 0 0 #0000;
30+
--tw-inset-shadow-color: initial;
31+
--tw-ring-color: initial;
32+
--tw-ring-shadow: 0 0 #0000;
33+
--tw-inset-ring-color: initial;
34+
--tw-inset-ring-shadow: 0 0 #0000;
35+
--tw-ring-inset: initial;
36+
--tw-ring-offset-width: 0px;
37+
--tw-ring-offset-color: #fff;
38+
--tw-ring-offset-shadow: 0 0 #0000;
39+
--tw-blur: initial;
40+
--tw-brightness: initial;
41+
--tw-contrast: initial;
42+
--tw-grayscale: initial;
43+
--tw-hue-rotate: initial;
44+
--tw-invert: initial;
45+
--tw-opacity: initial;
46+
--tw-saturate: initial;
47+
--tw-sepia: initial;
48+
--tw-drop-shadow: initial;
49+
--tw-duration: initial;
50+
--tw-ease: initial;
51+
}
52+
}
53+
54+
@layer base {
55+
*,
56+
::after,
57+
::before,
58+
::backdrop,
59+
::file-selector-button {
60+
border-color: hsl(var(--border));
61+
}
62+
63+
:root {
64+
--ui-primary: var(--color-primary-500);
65+
--ui-primary-hover: var(--color-primary-600);
66+
--ui-primary-active: var(--color-primary-700);
67+
}
68+
69+
.dark {
70+
--ui-primary: var(--color-primary-500);
71+
--ui-primary-hover: var(--color-primary-600);
72+
--ui-primary-active: var(--color-primary-700);
73+
}
74+
75+
body {
76+
--color-alpha: #1c1b1b;
77+
--color-beta: #f2f2f2;
78+
--color-gamma: #999999;
79+
--color-gamma-opaque: rgba(153, 153, 153, 0.5);
80+
--color-customgradient-start: rgba(242, 242, 242, 0);
81+
--color-customgradient-end: rgba(242, 242, 242, 0.85);
82+
--shadow-beta: 0 25px 50px -12px rgba(242, 242, 242, 0.15);
83+
--ring-offset-shadow: 0 0 var(--color-beta);
84+
--ring-shadow: 0 0 var(--color-beta);
85+
}
86+
87+
button:not(:disabled),
88+
[role='button']:not(:disabled) {
89+
cursor: pointer;
90+
}
91+
}

0 commit comments

Comments
 (0)