+21
.gitignore
+21
.gitignore
···
···
+63
lexicon/pet/nkp/uptime/check.json
+63
lexicon/pet/nkp/uptime/check.json
···
···+"description": "optional group or project name that multiple services belong to (e.g., 'wisp.place')",
+15
package.json
+15
package.json
···
···
+148
readme.md
+148
readme.md
···
···+**Important:** Use an app password, not your main account password. Generate one at: https://bsky.app/settings/app-passwords+To find your DID, visit: https://bsky.app/profile/[your-handle] and look in the URL or use the AT Protocol explorer.
+7
web/config.example.json
+7
web/config.example.json
+12
web/index.html
+12
web/index.html
···
···
+23
web/package.json
+23
web/package.json
···
···
+6
web/postcss.config.js
+6
web/postcss.config.js
+137
web/src/app.css
+137
web/src/app.css
···
···
+86
web/src/app.svelte
+86
web/src/app.svelte
···
···+class="px-4 py-2 bg-primary text-primary-foreground rounded-md text-sm font-medium hover:opacity-90 disabled:opacity-50 transition-opacity"+built by <a href="https://bsky.app/profile/nekomimi.pet" target="_blank" rel="noopener noreferrer" class="text-accent hover:underline">@nekomimi.pet</a>+· <a href="https://tangled.org/@nekomimi.pet/cute-monitor" target="_blank" rel="noopener noreferrer" class="text-accent hover:underline">source</a>
+51
web/src/lib/atproto.ts
+51
web/src/lib/atproto.ts
···
···
+15
web/src/lib/config.ts
+15
web/src/lib/config.ts
+33
web/src/lib/types.ts
+33
web/src/lib/types.ts
···
···
+129
web/src/lib/uptime-display.svelte
+129
web/src/lib/uptime-display.svelte
···
···+<h3 class="text-xl font-semibold text-foreground mb-4 pl-2 border-l-4 border-accent">{region}</h3>+class="w-3 h-3 rounded-sm cursor-pointer transition-transform hover:scale-150 {check.value.status === 'up' ? 'bg-chart-4' : 'bg-destructive'}"+title={`${check.value.status} - ${formatResponseTime(check.value.responseTime)} - ${formatTimestamp(check.indexedAt)}`}+<span class="px-2 py-1 rounded {serviceChecks[0].value.status === 'up' ? 'bg-chart-4/20 text-chart-4 font-semibold' : 'bg-destructive/20 text-destructive font-semibold'}">+<span class="text-muted-foreground ml-auto">checked {formatTimestamp(serviceChecks[0].indexedAt)}</span>
+9
web/src/main.ts
+9
web/src/main.ts
+5
web/svelte.config.js
+5
web/svelte.config.js
+18
web/tsconfig.json
+18
web/tsconfig.json
···
···
+16
web/vite.config.js
+16
web/vite.config.js
···
···
+39
worker/config.example.json
+39
worker/config.example.json
···
···
+17
worker/package.json
+17
worker/package.json
···
···
+113
worker/src/index.ts
+113
worker/src/index.ts
···
···
+69
worker/src/pinger.ts
+69
worker/src/pinger.ts
···
···
+41
worker/src/types.ts
+41
worker/src/types.ts
···
···
+17
worker/tsconfig.json
+17
worker/tsconfig.json
···
···