@necrolab/dashboard 0.4.56 → 0.4.57
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/README.md +21 -21
- package/artwork/image.png +0 -0
- package/package.json +1 -1
- package/src/components/Tasks/Task.vue +1 -1
- package/src/stores/utils.js +1 -1
- package/src/views/Tasks.vue +1 -1
- package/switch-branch.sh +41 -0
- package/.claude/settings.local.json +0 -60
package/README.md
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./artwork/image.png" alt="Dashboard" width="400">
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
# 🎫 Dashboard
|
|
2
6
|
|
|
3
7
|
A sophisticated PWA dashboard for managing ticket purchasing automation across multiple platforms. Built with Vue 3 and real-time WebSocket communication.
|
|
4
8
|
|
|
@@ -20,34 +24,32 @@ Visit `http://localhost:5173` and you're live.
|
|
|
20
24
|
| `npm run build` | Production build with PWA |
|
|
21
25
|
| `npm run lint` | Code formatting |
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
### 🧱 Frontend Stack
|
|
24
28
|
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
+
- Vue 3 + Composition API
|
|
30
|
+
- Pinia state management
|
|
31
|
+
- TailwindCSS + SCSS
|
|
32
|
+
- PWA with offline support
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
### 🛠 Backend Stack
|
|
31
35
|
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
+
- Express.js with WebSockets
|
|
37
|
+
- MessagePack serialization
|
|
38
|
+
- Real-time message batching
|
|
39
|
+
- Platform abstraction layer
|
|
36
40
|
|
|
37
41
|
## 📱 PWA Support
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
- 📶 Offline functionality
|
|
44
|
-
- 🎨 Native app feel
|
|
43
|
+
- 📲 Install to home screen
|
|
44
|
+
- 🔄 Background sync
|
|
45
|
+
- 📶 Offline functionality
|
|
46
|
+
- 🎨 Native app feel
|
|
45
47
|
|
|
46
48
|
## 🛠️ Development
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
Runs in mock mode by default. Backend simulates bot operations; frontend provides full UI functionality.
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
### 🗂️ File Structure
|
|
51
53
|
|
|
52
54
|
```
|
|
53
55
|
src/
|
|
@@ -61,5 +63,3 @@ backend/
|
|
|
61
63
|
├─ mock-data.js # Development data
|
|
62
64
|
└─ endpoints.js # API route definitions
|
|
63
65
|
```
|
|
64
|
-
|
|
65
|
-
---
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -504,7 +504,7 @@ const openInBrowser = (debug) => {
|
|
|
504
504
|
if (!props.task.openerLink) return;
|
|
505
505
|
ui.showSuccess(`Opening in browser ${debug ? "(debug)" : ""}`);
|
|
506
506
|
const input = props.task.openerLink;
|
|
507
|
-
const data = JSON.parse(atob(input.split("://")
|
|
507
|
+
const data = JSON.parse(atob(input.split("://").pop()));
|
|
508
508
|
data.config.debug = debug;
|
|
509
509
|
const out = "necro://" + btoa(JSON.stringify(data));
|
|
510
510
|
openInNewTab(out);
|
package/src/stores/utils.js
CHANGED
|
@@ -398,7 +398,7 @@ const parseTmEventUrl = (url) => {
|
|
|
398
398
|
};
|
|
399
399
|
};
|
|
400
400
|
|
|
401
|
-
const isEU = (siteId) => !["US", "AU", "UK", "
|
|
401
|
+
const isEU = (siteId) => !["US", "AU", "UK", "CA", "NZ", "IE"].includes(siteId.split("_")?.[1] || siteId);
|
|
402
402
|
|
|
403
403
|
const removeDuplicates = (arr) => [...new Set(arr)];
|
|
404
404
|
|
package/src/views/Tasks.vue
CHANGED
|
@@ -209,7 +209,7 @@ const uniqEventIds = computed(() => {
|
|
|
209
209
|
const ids = [
|
|
210
210
|
...new Set(
|
|
211
211
|
Object.values(ui.tasks)
|
|
212
|
-
.filter((t) => t.siteId === ui.currentCountry.siteId && !t.eventId
|
|
212
|
+
.filter((t) => t.siteId === ui.currentCountry.siteId && !t.eventId?.includes("@"))
|
|
213
213
|
.map((v) => `${v.eventName} (${v.eventId})`)
|
|
214
214
|
),
|
|
215
215
|
];
|
package/switch-branch.sh
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# USAGE: ./git-force-switch.sh target-branch-name
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
TARGET_BRANCH="$1"
|
|
8
|
+
|
|
9
|
+
if [ -z "$TARGET_BRANCH" ]; then
|
|
10
|
+
echo "❌ Usage: $0 <branch-name>"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "🔧 Forcing checkout to '$TARGET_BRANCH'..."
|
|
15
|
+
|
|
16
|
+
# Step 1: Make sure Git respects case differences
|
|
17
|
+
git config core.ignoreCase false
|
|
18
|
+
|
|
19
|
+
# Step 2: Try checkout to see if it fails and capture errors
|
|
20
|
+
ERROR_OUTPUT=$(git checkout "$TARGET_BRANCH" 2>&1) || true
|
|
21
|
+
|
|
22
|
+
# Step 3: Check if it failed due to untracked files
|
|
23
|
+
if echo "$ERROR_OUTPUT" | grep -q "would be overwritten by checkout"; then
|
|
24
|
+
echo "⚠️ Conflicting untracked files detected. Cleaning them up..."
|
|
25
|
+
|
|
26
|
+
# Extract file paths and delete them
|
|
27
|
+
echo "$ERROR_OUTPUT" |
|
|
28
|
+
grep "^\s" |
|
|
29
|
+
sed 's/^[ \t]*//' |
|
|
30
|
+
while read -r FILE; do
|
|
31
|
+
if [ -f "$FILE" ] || [ -d "$FILE" ]; then
|
|
32
|
+
echo "🗑️ Removing $FILE"
|
|
33
|
+
rm -rf "$FILE"
|
|
34
|
+
fi
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
echo "🔁 Retrying checkout..."
|
|
38
|
+
git checkout "$TARGET_BRANCH"
|
|
39
|
+
else
|
|
40
|
+
echo "✅ Switched to $TARGET_BRANCH successfully."
|
|
41
|
+
fi
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(npm run lint)",
|
|
5
|
-
"Bash(find:*)",
|
|
6
|
-
"Bash(ls:*)",
|
|
7
|
-
"Bash(grep:*)",
|
|
8
|
-
"Bash(npm run build:*)",
|
|
9
|
-
"Bash(npm view:*)",
|
|
10
|
-
"Bash(npm run dev:*)",
|
|
11
|
-
"Bash(sudo rm:*)",
|
|
12
|
-
"Bash(rm:*)",
|
|
13
|
-
"Bash(rg:*)",
|
|
14
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"const DEBUG\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/views/)",
|
|
15
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"border-2 border-dark-550\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
16
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"bg-dark-500\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
17
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"flex items-center justify-center\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
18
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"col-span.*flex.*items-center.*justify-center\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
19
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"button.*flex.*items-center.*justify-center.*gap\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
20
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"import.*useUIStore\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
21
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"const.*ref\\(\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
22
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"button-default.*bg-dark-400.*w-48.*text-xs.*flex.*items-center.*justify-center.*gap-x-2\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
23
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"const DEBUG.*window\\.location\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
24
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -A5 -B5 \"input-incrementer\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/components/Tasks/CreateTaskTM.vue)",
|
|
25
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -A2 -B2 \"label-override\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/assets/css/main.scss)",
|
|
26
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"MultiDropdown\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
27
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"ant-select.*multiple\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
28
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"multiple.*true\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
29
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"a-select\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
30
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"Select\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
31
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -A5 -B5 \"mode.*multiple\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/components/Tasks/)",
|
|
32
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -A10 -B5 \"a-select\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/components/Tasks/CreateTaskTM.vue)",
|
|
33
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"CountryChooser\\|currentCountry\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/views/Tasks.vue)",
|
|
34
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"currentModule\\|CountryChooser\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/components/ui/Navbar.vue)",
|
|
35
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -l \"CountryChooser\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/)",
|
|
36
|
-
"Bash(/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg -n \"bg-dark-400.*button\\|button.*bg-dark-400\" /Users/luca/Documents/GitHub/Necro/Dashboard/src/views/Tasks.vue)",
|
|
37
|
-
"Bash(npm install:*)",
|
|
38
|
-
"Bash(sudo chown:*)",
|
|
39
|
-
"Bash(sudo npm install:*)",
|
|
40
|
-
"Bash(node:*)",
|
|
41
|
-
"Bash(git checkout:*)",
|
|
42
|
-
"Bash(npx vue-tsc:*)",
|
|
43
|
-
"Bash(npx vite build:*)",
|
|
44
|
-
"Bash(npx eslint:*)",
|
|
45
|
-
"Bash(cp:*)",
|
|
46
|
-
"Bash(sed:*)",
|
|
47
|
-
"Bash(true)",
|
|
48
|
-
"Bash(./run build)",
|
|
49
|
-
"Bash(mv:*)",
|
|
50
|
-
"Bash(chown:*)",
|
|
51
|
-
"Bash(chmod:*)",
|
|
52
|
-
"Bash(timeout 10s npm run dev)",
|
|
53
|
-
"Bash(gtimeout:*)",
|
|
54
|
-
"Bash(echo $SHELL)",
|
|
55
|
-
"Bash(mkdir:*)",
|
|
56
|
-
"Bash(base64:*)"
|
|
57
|
-
],
|
|
58
|
-
"deny": []
|
|
59
|
-
}
|
|
60
|
-
}
|