Restructure: rename to Pulse and move app to root
- Renamed project from PSA-Utils to Pulse - Moved all app files from autotask-app/ to root - Updated package.json name to 'pulse' - Updated Docker container names to pulse-app and pulse-redis - Updated Docker network name to pulse-network
This commit is contained in:
parent
f429f3af54
commit
3c3124d8c9
117 changed files with 8433 additions and 239 deletions
163
.gitignore
vendored
163
.gitignore
vendored
|
|
@ -1,138 +1,41 @@
|
|||
# ───────────────────────────────
|
||||
# Node.js / npm / pnpm
|
||||
# ───────────────────────────────
|
||||
node_modules/
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.*
|
||||
.yarn/*
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/versions
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# next.js
|
||||
/.next/
|
||||
/out/
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json
|
||||
.pnpm-debug.log*
|
||||
.pnpm-store/
|
||||
|
||||
# ───────────────────────────────
|
||||
# Environment Files
|
||||
# ───────────────────────────────
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
# env files (can opt-in for committing if needed)
|
||||
.env*
|
||||
|
||||
# Example envs are safe to commit
|
||||
!.env.example
|
||||
|
||||
# ───────────────────────────────
|
||||
# Build Artifacts
|
||||
# ───────────────────────────────
|
||||
dist/
|
||||
build/
|
||||
.cache/
|
||||
.tmp/
|
||||
.next/
|
||||
out/
|
||||
coverage/
|
||||
logs/
|
||||
*.log
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# ───────────────────────────────
|
||||
# Docker
|
||||
# ───────────────────────────────
|
||||
docker-data/
|
||||
docker-redis/
|
||||
volumes/
|
||||
docker-compose.override.yml
|
||||
|
||||
# ───────────────────────────────
|
||||
# TypeScript
|
||||
# ───────────────────────────────
|
||||
*.tsbuildinfo
|
||||
tsconfig.tsbuildinfo
|
||||
*.d.ts.map
|
||||
|
||||
# ───────────────────────────────
|
||||
# shadcn / Tailwind / Next.js
|
||||
# ───────────────────────────────
|
||||
.next/
|
||||
.next/cache/
|
||||
.next/static/
|
||||
.next/server/
|
||||
.next/types/
|
||||
.next/output/
|
||||
public/build/
|
||||
.turbo/
|
||||
.turbopack/
|
||||
tailwind.config.js.timestamp*
|
||||
postcss.config.js.timestamp*
|
||||
*.vercel
|
||||
# vercel
|
||||
.vercel
|
||||
.storybook/
|
||||
.vitest/
|
||||
.vitest-temp/
|
||||
|
||||
# ───────────────────────────────
|
||||
# Redis dump and cache
|
||||
# ───────────────────────────────
|
||||
dump.rdb
|
||||
*.rdb
|
||||
*.aof
|
||||
|
||||
# ───────────────────────────────
|
||||
# Backend temporary files
|
||||
# ───────────────────────────────
|
||||
backend/node_modules/
|
||||
backend/npm-debug.log*
|
||||
backend/.env
|
||||
backend/.cache
|
||||
backend/.next
|
||||
backend/.turbo
|
||||
backend/dist/
|
||||
backend/build/
|
||||
|
||||
# ───────────────────────────────
|
||||
# Frontend temporary files
|
||||
# ───────────────────────────────
|
||||
frontend/node_modules/
|
||||
frontend/npm-debug.log*
|
||||
frontend/.env
|
||||
frontend/.cache
|
||||
frontend/.next
|
||||
frontend/.turbo
|
||||
frontend/dist/
|
||||
frontend/build/
|
||||
|
||||
# ───────────────────────────────
|
||||
# Editor / OS Specific
|
||||
# ───────────────────────────────
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# ───────────────────────────────
|
||||
# Coverage / Testing
|
||||
# ───────────────────────────────
|
||||
coverage/
|
||||
.nyc_output/
|
||||
jest-results/
|
||||
test-results/
|
||||
cypress/screenshots/
|
||||
cypress/videos/
|
||||
playwright-report/
|
||||
test-output/
|
||||
|
||||
# ───────────────────────────────
|
||||
# Miscellaneous
|
||||
# ───────────────────────────────
|
||||
*.bak
|
||||
*.tmp
|
||||
*.tgz
|
||||
*.orig
|
||||
*.rej
|
||||
*.local
|
||||
.envrc
|
||||
.envrc.bak
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
|
|
|||
BIN
1bffadaabf893a1e-s.7cd81963.woff2
Normal file
BIN
1bffadaabf893a1e-s.7cd81963.woff2
Normal file
Binary file not shown.
BIN
2bbe8d2671613f1f-s.76dcb0b2.woff2
Normal file
BIN
2bbe8d2671613f1f-s.76dcb0b2.woff2
Normal file
Binary file not shown.
BIN
2c55a0e60120577a-s.2a48534a.woff2
Normal file
BIN
2c55a0e60120577a-s.2a48534a.woff2
Normal file
Binary file not shown.
BIN
4fa387ec64143e14-s.c1fdd6c2.woff2
Normal file
BIN
4fa387ec64143e14-s.c1fdd6c2.woff2
Normal file
Binary file not shown.
BIN
5476f68d60460930-s.c995e352.woff2
Normal file
BIN
5476f68d60460930-s.c995e352.woff2
Normal file
Binary file not shown.
BIN
7178b3e590c64307-s.b97b3418.woff2
Normal file
BIN
7178b3e590c64307-s.b97b3418.woff2
Normal file
Binary file not shown.
BIN
797e433ab948586e-s.p.dbea232f.woff2
Normal file
BIN
797e433ab948586e-s.p.dbea232f.woff2
Normal file
Binary file not shown.
BIN
83afe278b6a6bb3c-s.p.3a6ba036.woff2
Normal file
BIN
83afe278b6a6bb3c-s.p.3a6ba036.woff2
Normal file
Binary file not shown.
BIN
8a480f0b521d4e75-s.8e0177b5.woff2
Normal file
BIN
8a480f0b521d4e75-s.8e0177b5.woff2
Normal file
Binary file not shown.
BIN
9c72aa0f40e4eef8-s.18a48cbc.woff2
Normal file
BIN
9c72aa0f40e4eef8-s.18a48cbc.woff2
Normal file
Binary file not shown.
1
_clientMiddlewareManifest.json
Normal file
1
_clientMiddlewareManifest.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
BIN
ad66f9afd8947f86-s.7a40eb73.woff2
Normal file
BIN
ad66f9afd8947f86-s.7a40eb73.woff2
Normal file
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
41
autotask-app/.gitignore
vendored
41
autotask-app/.gitignore
vendored
|
|
@ -1,41 +0,0 @@
|
|||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.*
|
||||
.yarn/*
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/versions
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# next.js
|
||||
/.next/
|
||||
/out/
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# env files (can opt-in for committing if needed)
|
||||
.env*
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
// Simple in-memory cache with TTL
|
||||
interface CacheEntry<T> {
|
||||
data: T;
|
||||
timestamp: number;
|
||||
ttl: number;
|
||||
}
|
||||
|
||||
class SimpleCache {
|
||||
private cache: Map<string, CacheEntry<any>> = new Map();
|
||||
|
||||
set<T>(key: string, data: T, ttlMinutes: number = 5): void {
|
||||
this.cache.set(key, {
|
||||
data,
|
||||
timestamp: Date.now(),
|
||||
ttl: ttlMinutes * 60 * 1000, // Convert to milliseconds
|
||||
});
|
||||
}
|
||||
|
||||
get<T>(key: string): T | null {
|
||||
const entry = this.cache.get(key);
|
||||
|
||||
if (!entry) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check if expired
|
||||
if (Date.now() - entry.timestamp > entry.ttl) {
|
||||
this.cache.delete(key);
|
||||
return null;
|
||||
}
|
||||
|
||||
return entry.data as T;
|
||||
}
|
||||
|
||||
delete(key: string): void {
|
||||
this.cache.delete(key);
|
||||
}
|
||||
|
||||
clear(): void {
|
||||
this.cache.clear();
|
||||
}
|
||||
|
||||
// Clean up expired entries
|
||||
cleanup(): void {
|
||||
const now = Date.now();
|
||||
for (const [key, entry] of this.cache.entries()) {
|
||||
if (now - entry.timestamp > entry.ttl) {
|
||||
this.cache.delete(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Global cache instance
|
||||
export const apiCache = new SimpleCache();
|
||||
|
||||
// Run cleanup every 5 minutes (server-side only)
|
||||
if (typeof window === 'undefined') {
|
||||
setInterval(() => {
|
||||
apiCache.cleanup();
|
||||
}, 5 * 60 * 1000);
|
||||
}
|
||||
BIN
bbc41e54d2fcbd21-s.799d8ef8.woff2
Normal file
BIN
bbc41e54d2fcbd21-s.799d8ef8.woff2
Normal file
Binary file not shown.
BIN
caa3a2e1cccd8315-s.p.853070df.woff2
Normal file
BIN
caa3a2e1cccd8315-s.p.853070df.woff2
Normal file
Binary file not shown.
|
|
@ -4,7 +4,7 @@ services:
|
|||
# Redis cache service on custom port 6380 (instead of default 6379)
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: psa-utils-redis
|
||||
container_name: pulse-redis
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "6380:6379"
|
||||
|
|
@ -22,7 +22,7 @@ services:
|
|||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: psa-utils-app
|
||||
container_name: pulse-app
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3100:3100"
|
||||
|
|
@ -64,4 +64,4 @@ volumes:
|
|||
|
||||
networks:
|
||||
default:
|
||||
name: psa-utils-network
|
||||
name: pulse-network
|
||||
BIN
favicon.0b3bf435.ico
Normal file
BIN
favicon.0b3bf435.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -54,9 +54,8 @@ class SimpleCache {
|
|||
// Global cache instance
|
||||
export const apiCache = new SimpleCache();
|
||||
|
||||
// Run cleanup every 5 minutes
|
||||
// Run cleanup every 5 minutes (server-side only)
|
||||
if (typeof window === 'undefined') {
|
||||
// Server-side only
|
||||
setInterval(() => {
|
||||
apiCache.cleanup();
|
||||
}, 5 * 60 * 1000);
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue