@uptime.link/statuspage 1.0.74 → 1.1.0

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.
Files changed (95) hide show
  1. package/dist_bundle/bundle.js +4096 -504
  2. package/dist_bundle/bundle.js.map +4 -4
  3. package/dist_ts_web/00_commitinfo_data.js +2 -2
  4. package/dist_ts_web/elements/index.d.ts +3 -0
  5. package/dist_ts_web/elements/index.js +6 -1
  6. package/dist_ts_web/elements/internal/uplinternal-miniheading.d.ts +1 -0
  7. package/dist_ts_web/elements/internal/uplinternal-miniheading.js +78 -28
  8. package/dist_ts_web/elements/upl-statuspage-assetsselector.d.ts +14 -0
  9. package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.d.ts +1 -0
  10. package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.js +575 -0
  11. package/dist_ts_web/elements/upl-statuspage-assetsselector.js +605 -43
  12. package/dist_ts_web/elements/upl-statuspage-footer.d.ts +46 -2
  13. package/dist_ts_web/elements/upl-statuspage-footer.demo.d.ts +1 -0
  14. package/dist_ts_web/elements/upl-statuspage-footer.demo.js +679 -0
  15. package/dist_ts_web/elements/upl-statuspage-footer.js +792 -61
  16. package/dist_ts_web/elements/upl-statuspage-header.d.ts +5 -1
  17. package/dist_ts_web/elements/upl-statuspage-header.demo.d.ts +1 -0
  18. package/dist_ts_web/elements/upl-statuspage-header.demo.js +220 -0
  19. package/dist_ts_web/elements/upl-statuspage-header.js +313 -86
  20. package/dist_ts_web/elements/upl-statuspage-incidents.d.ts +22 -4
  21. package/dist_ts_web/elements/upl-statuspage-incidents.demo.d.ts +1 -0
  22. package/dist_ts_web/elements/upl-statuspage-incidents.demo.js +1147 -0
  23. package/dist_ts_web/elements/upl-statuspage-incidents.js +750 -74
  24. package/dist_ts_web/elements/upl-statuspage-pagetitle.d.ts +15 -0
  25. package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.d.ts +1 -0
  26. package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.js +25 -0
  27. package/dist_ts_web/elements/upl-statuspage-pagetitle.js +148 -0
  28. package/dist_ts_web/elements/upl-statuspage-statsgrid.d.ts +23 -0
  29. package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.d.ts +1 -0
  30. package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.js +295 -0
  31. package/dist_ts_web/elements/upl-statuspage-statsgrid.js +374 -0
  32. package/dist_ts_web/elements/upl-statuspage-statusbar.d.ts +4 -0
  33. package/dist_ts_web/elements/upl-statuspage-statusbar.demo.d.ts +1 -0
  34. package/dist_ts_web/elements/upl-statuspage-statusbar.demo.js +365 -0
  35. package/dist_ts_web/elements/upl-statuspage-statusbar.js +357 -44
  36. package/dist_ts_web/elements/upl-statuspage-statusdetails.d.ts +14 -0
  37. package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.d.ts +1 -0
  38. package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.js +706 -0
  39. package/dist_ts_web/elements/upl-statuspage-statusdetails.js +373 -63
  40. package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +15 -0
  41. package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.d.ts +1 -0
  42. package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.js +798 -0
  43. package/dist_ts_web/elements/upl-statuspage-statusmonth.js +474 -100
  44. package/dist_ts_web/interfaces/index.d.ts +84 -0
  45. package/dist_ts_web/interfaces/index.js +4 -0
  46. package/dist_ts_web/pages/index.d.ts +4 -1
  47. package/dist_ts_web/pages/index.js +5 -2
  48. package/dist_ts_web/pages/statuspage-allgreen.d.ts +1 -0
  49. package/dist_ts_web/pages/statuspage-allgreen.js +386 -0
  50. package/dist_ts_web/pages/statuspage-demo.d.ts +1 -0
  51. package/dist_ts_web/pages/statuspage-demo.js +616 -0
  52. package/dist_ts_web/pages/statuspage-maintenance.d.ts +1 -0
  53. package/dist_ts_web/pages/statuspage-maintenance.js +544 -0
  54. package/dist_ts_web/pages/statuspage-outage.d.ts +1 -0
  55. package/dist_ts_web/pages/statuspage-outage.js +543 -0
  56. package/dist_ts_web/styles/shared.styles.d.ts +80 -0
  57. package/dist_ts_web/styles/shared.styles.js +351 -0
  58. package/dist_watch/bundle.js +51691 -32432
  59. package/dist_watch/bundle.js.map +4 -4
  60. package/npmextra.json +9 -3
  61. package/package.json +19 -19
  62. package/readme.hints.md +292 -0
  63. package/readme.md +326 -149
  64. package/readme.plan.md +261 -0
  65. package/ts_web/00_commitinfo_data.ts +1 -1
  66. package/ts_web/elements/index.ts +6 -0
  67. package/ts_web/elements/internal/uplinternal-miniheading.ts +24 -17
  68. package/ts_web/elements/upl-statuspage-assetsselector.demo.ts +607 -0
  69. package/ts_web/elements/upl-statuspage-assetsselector.ts +526 -18
  70. package/ts_web/elements/upl-statuspage-footer.demo.ts +744 -0
  71. package/ts_web/elements/upl-statuspage-footer.ts +608 -30
  72. package/ts_web/elements/upl-statuspage-header.demo.ts +241 -0
  73. package/ts_web/elements/upl-statuspage-header.ts +220 -52
  74. package/ts_web/elements/upl-statuspage-incidents.demo.ts +1216 -0
  75. package/ts_web/elements/upl-statuspage-incidents.ts +649 -26
  76. package/ts_web/elements/upl-statuspage-pagetitle.demo.ts +25 -0
  77. package/ts_web/elements/upl-statuspage-pagetitle.ts +89 -0
  78. package/ts_web/elements/upl-statuspage-statsgrid.demo.ts +315 -0
  79. package/ts_web/elements/upl-statuspage-statsgrid.ts +306 -0
  80. package/ts_web/elements/upl-statuspage-statusbar.demo.ts +393 -0
  81. package/ts_web/elements/upl-statuspage-statusbar.ts +281 -20
  82. package/ts_web/elements/upl-statuspage-statusdetails.demo.ts +754 -0
  83. package/ts_web/elements/upl-statuspage-statusdetails.ts +297 -38
  84. package/ts_web/elements/upl-statuspage-statusmonth.demo.ts +876 -0
  85. package/ts_web/elements/upl-statuspage-statusmonth.ts +397 -76
  86. package/ts_web/interfaces/index.ts +95 -0
  87. package/ts_web/pages/index.ts +4 -1
  88. package/ts_web/pages/statuspage-allgreen.ts +412 -0
  89. package/ts_web/pages/statuspage-demo.ts +653 -0
  90. package/ts_web/pages/statuspage-maintenance.ts +570 -0
  91. package/ts_web/pages/statuspage-outage.ts +568 -0
  92. package/ts_web/styles/shared.styles.ts +367 -0
  93. package/dist_ts_web/pages/page1.d.ts +0 -1
  94. package/dist_ts_web/pages/page1.js +0 -11
  95. package/ts_web/pages/page1.ts +0 -11
@@ -0,0 +1,544 @@
1
+ import { html, cssManager } from "@design.estate/dees-element";
2
+ export const statuspageMaintenance = () => html `
3
+ <style>
4
+ .demo-page-wrapper {
5
+ min-height: 100vh;
6
+ background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};
7
+ }
8
+ .demo-page-wrapper > dees-demowrapper {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 24px;
12
+ }
13
+ </style>
14
+
15
+ <div class="demo-page-wrapper">
16
+
17
+ <dees-demowrapper
18
+ .runAfterRender=${async (wrapperElement) => {
19
+ const header = wrapperElement.querySelector('upl-statuspage-header');
20
+ const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar');
21
+ const statsGrid = wrapperElement.querySelector('upl-statuspage-statsgrid');
22
+ const assetsSelector = wrapperElement.querySelector('upl-statuspage-assetsselector');
23
+ const statusDetails = wrapperElement.querySelector('upl-statuspage-statusdetails');
24
+ const statusMonth = wrapperElement.querySelector('upl-statuspage-statusmonth');
25
+ const incidents = wrapperElement.querySelector('upl-statuspage-incidents');
26
+ const footer = wrapperElement.querySelector('upl-statuspage-footer');
27
+ // Configure Header
28
+ header.pageTitle = 'SecureVault';
29
+ header.showReportButton = true;
30
+ header.showSubscribeButton = true;
31
+ header.logoUrl = 'https://via.placeholder.com/150x50/2196F3/ffffff?text=SV';
32
+ // Configure Overall Status - Maintenance
33
+ statusBar.overallStatus = {
34
+ status: 'maintenance',
35
+ message: 'Scheduled maintenance in progress - Expected completion: 2:00 AM UTC',
36
+ lastUpdated: Date.now(),
37
+ affectedServices: 5,
38
+ totalServices: 14
39
+ };
40
+ // Configure Services - Mix of maintenance and operational
41
+ const services = [
42
+ // Core Services - Some under maintenance
43
+ {
44
+ id: 'web-app',
45
+ name: 'web-app',
46
+ displayName: 'Web Application',
47
+ description: 'Customer portal',
48
+ currentStatus: 'operational',
49
+ lastChecked: Date.now(),
50
+ uptime30d: 99.92,
51
+ uptime90d: 99.89,
52
+ responseTime: 45,
53
+ category: 'Frontend',
54
+ selected: true
55
+ },
56
+ {
57
+ id: 'mobile-api',
58
+ name: 'mobile-api',
59
+ displayName: 'Mobile API',
60
+ description: 'Mobile app backend',
61
+ currentStatus: 'operational',
62
+ lastChecked: Date.now(),
63
+ uptime30d: 99.88,
64
+ uptime90d: 99.85,
65
+ responseTime: 62,
66
+ category: 'Frontend',
67
+ selected: true
68
+ },
69
+ {
70
+ id: 'auth-service',
71
+ name: 'auth-service',
72
+ displayName: 'Authentication Service',
73
+ description: 'User authentication',
74
+ currentStatus: 'maintenance',
75
+ lastChecked: Date.now(),
76
+ uptime30d: 99.5,
77
+ uptime90d: 99.7,
78
+ responseTime: 0,
79
+ category: 'Core Services',
80
+ selected: true
81
+ },
82
+ {
83
+ id: 'api-gateway',
84
+ name: 'api-gateway',
85
+ displayName: 'API Gateway',
86
+ description: 'Main API endpoint',
87
+ currentStatus: 'degraded',
88
+ lastChecked: Date.now(),
89
+ uptime30d: 99.2,
90
+ uptime90d: 99.4,
91
+ responseTime: 125,
92
+ category: 'Core Services',
93
+ selected: true
94
+ },
95
+ // Database Services
96
+ {
97
+ id: 'primary-db',
98
+ name: 'primary-db',
99
+ displayName: 'Primary Database',
100
+ description: 'Main database cluster',
101
+ currentStatus: 'maintenance',
102
+ lastChecked: Date.now(),
103
+ uptime30d: 99.6,
104
+ uptime90d: 99.7,
105
+ responseTime: 0,
106
+ category: 'Data Storage',
107
+ selected: true
108
+ },
109
+ {
110
+ id: 'replica-db',
111
+ name: 'replica-db',
112
+ displayName: 'Database Replicas',
113
+ description: 'Read replicas (read-only mode)',
114
+ currentStatus: 'degraded',
115
+ lastChecked: Date.now(),
116
+ uptime30d: 99.7,
117
+ uptime90d: 99.8,
118
+ responseTime: 85,
119
+ category: 'Data Storage',
120
+ selected: true
121
+ },
122
+ {
123
+ id: 'cache',
124
+ name: 'cache',
125
+ displayName: 'Cache Service',
126
+ description: 'Redis cache layer',
127
+ currentStatus: 'operational',
128
+ lastChecked: Date.now(),
129
+ uptime30d: 99.95,
130
+ uptime90d: 99.93,
131
+ responseTime: 8,
132
+ category: 'Data Storage',
133
+ selected: false
134
+ },
135
+ // Backup and Storage
136
+ {
137
+ id: 'backup-service',
138
+ name: 'backup-service',
139
+ displayName: 'Backup Service',
140
+ description: 'Automated backups',
141
+ currentStatus: 'maintenance',
142
+ lastChecked: Date.now(),
143
+ uptime30d: 99.8,
144
+ uptime90d: 99.85,
145
+ responseTime: 0,
146
+ category: 'Operations',
147
+ selected: true
148
+ },
149
+ {
150
+ id: 'file-storage',
151
+ name: 'file-storage',
152
+ displayName: 'File Storage',
153
+ description: 'Object storage service',
154
+ currentStatus: 'operational',
155
+ lastChecked: Date.now(),
156
+ uptime30d: 99.99,
157
+ uptime90d: 99.98,
158
+ responseTime: 42,
159
+ category: 'Operations',
160
+ selected: false
161
+ },
162
+ // Monitoring and Support
163
+ {
164
+ id: 'monitoring',
165
+ name: 'monitoring',
166
+ displayName: 'Monitoring System',
167
+ description: 'System monitoring',
168
+ currentStatus: 'operational',
169
+ lastChecked: Date.now(),
170
+ uptime30d: 99.9,
171
+ uptime90d: 99.88,
172
+ responseTime: 32,
173
+ category: 'Support',
174
+ selected: true
175
+ },
176
+ {
177
+ id: 'logging',
178
+ name: 'logging',
179
+ displayName: 'Logging Service',
180
+ description: 'Centralized logs',
181
+ currentStatus: 'maintenance',
182
+ lastChecked: Date.now(),
183
+ uptime30d: 99.7,
184
+ uptime90d: 99.75,
185
+ responseTime: 0,
186
+ category: 'Support',
187
+ selected: false
188
+ },
189
+ {
190
+ id: 'alerting',
191
+ name: 'alerting',
192
+ displayName: 'Alerting System',
193
+ description: 'Alert notifications',
194
+ currentStatus: 'operational',
195
+ lastChecked: Date.now(),
196
+ uptime30d: 99.85,
197
+ uptime90d: 99.82,
198
+ responseTime: 28,
199
+ category: 'Support',
200
+ selected: false
201
+ },
202
+ // Communication Services
203
+ {
204
+ id: 'email',
205
+ name: 'email',
206
+ displayName: 'Email Service',
207
+ description: 'Transactional emails',
208
+ currentStatus: 'operational',
209
+ lastChecked: Date.now(),
210
+ uptime30d: 99.6,
211
+ uptime90d: 99.55,
212
+ responseTime: 142,
213
+ category: 'Communication',
214
+ selected: true
215
+ },
216
+ {
217
+ id: 'webhooks',
218
+ name: 'webhooks',
219
+ displayName: 'Webhook Delivery',
220
+ description: 'Webhook notifications',
221
+ currentStatus: 'maintenance',
222
+ lastChecked: Date.now(),
223
+ uptime30d: 99.4,
224
+ uptime90d: 99.45,
225
+ responseTime: 0,
226
+ category: 'Communication',
227
+ selected: false
228
+ }
229
+ ];
230
+ assetsSelector.services = services;
231
+ // Configure Stats Grid - Maintenance mode metrics
232
+ const operationalCount = services.filter(s => s.currentStatus === 'operational').length;
233
+ const avgResponseTime = services.reduce((sum, s) => sum + (s.responseTime || 0), 0) / services.length;
234
+ const avgUptime = services.reduce((sum, s) => sum + (s.uptime30d || 0), 0) / services.length;
235
+ statsGrid.currentStatus = 'maintenance';
236
+ statsGrid.uptime = avgUptime;
237
+ statsGrid.avgResponseTime = Math.round(avgResponseTime);
238
+ statsGrid.totalIncidents = 1; // Just the maintenance
239
+ statsGrid.affectedServices = services.filter(s => s.currentStatus === 'maintenance').length;
240
+ statsGrid.totalServices = services.length;
241
+ statsGrid.timePeriod = '30 days';
242
+ // Configure Status Details - Showing maintenance period
243
+ const generateStatusDetails = () => {
244
+ const details = [];
245
+ const now = new Date();
246
+ const maintenanceStarted = 2; // 2 hours ago
247
+ for (let i = 47; i >= 0; i--) {
248
+ const date = new Date(now);
249
+ date.setMinutes(0, 0, 0);
250
+ date.setHours(date.getHours() - i);
251
+ let status = 'operational';
252
+ let value = 100;
253
+ let responseTime = 25;
254
+ // Maintenance window
255
+ if (i <= maintenanceStarted) {
256
+ status = 'degraded';
257
+ value = 60;
258
+ responseTime = 0;
259
+ }
260
+ else if (i <= maintenanceStarted + 2) {
261
+ // Pre-maintenance prep
262
+ status = 'degraded';
263
+ value = 85;
264
+ responseTime = 80;
265
+ }
266
+ details.push({
267
+ timestamp: date.getTime(),
268
+ status,
269
+ responseTime
270
+ });
271
+ }
272
+ return details;
273
+ };
274
+ statusDetails.dataPoints = generateStatusDetails();
275
+ statusDetails.serviceId = 'primary-db';
276
+ statusDetails.serviceName = 'Primary Database';
277
+ // Configure Monthly Status - Good uptime with scheduled maintenance windows
278
+ const generateMonthlyData = () => {
279
+ const months = [];
280
+ const now = new Date();
281
+ for (let m = 4; m >= 0; m--) {
282
+ const monthDate = new Date(now.getFullYear(), now.getMonth() - m, 1);
283
+ const daysInMonth = new Date(monthDate.getFullYear(), monthDate.getMonth() + 1, 0).getDate();
284
+ const monthKey = monthDate.toISOString().slice(0, 7);
285
+ const days = [];
286
+ let totalUptime = 0;
287
+ let incidents = 0;
288
+ for (let d = 1; d <= daysInMonth; d++) {
289
+ const dayDate = new Date(monthDate.getFullYear(), monthDate.getMonth(), d);
290
+ const isToday = dayDate.toDateString() === now.toDateString();
291
+ const isFuture = dayDate > now;
292
+ const isFirstSunday = dayDate.getDay() === 0 && d <= 7;
293
+ if (isFuture)
294
+ continue;
295
+ let status = 'operational';
296
+ let uptime = 100;
297
+ let dayIncidents = 0;
298
+ // Today - maintenance
299
+ if (isToday) {
300
+ status = 'degraded';
301
+ uptime = 92; // 2 hours of maintenance = 8% downtime
302
+ dayIncidents = 0; // Maintenance is not an incident
303
+ }
304
+ else if (isFirstSunday) {
305
+ // Monthly maintenance on first Sunday
306
+ status = 'degraded';
307
+ uptime = 96; // 1 hour maintenance
308
+ dayIncidents = 0;
309
+ }
310
+ else if (Math.random() > 0.95) {
311
+ // Occasional issues
312
+ status = 'degraded';
313
+ uptime = 98 + Math.random() * 2;
314
+ dayIncidents = 1;
315
+ }
316
+ days.push({
317
+ date: dayDate.toISOString().slice(0, 10),
318
+ status,
319
+ uptime,
320
+ incidents: dayIncidents,
321
+ totalDowntime: Math.round((100 - uptime) * 14.4)
322
+ });
323
+ totalUptime += uptime;
324
+ incidents += dayIncidents;
325
+ }
326
+ months.push({
327
+ month: monthKey,
328
+ days,
329
+ overallUptime: totalUptime / days.length,
330
+ totalIncidents: incidents
331
+ });
332
+ }
333
+ return months;
334
+ };
335
+ statusMonth.monthlyData = generateMonthlyData();
336
+ statusMonth.serviceId = 'all-services';
337
+ statusMonth.serviceName = 'All Services';
338
+ // Configure Incidents - Current maintenance
339
+ const currentIncidents = [
340
+ {
341
+ id: 'maint-2024-001',
342
+ title: 'Scheduled Database Maintenance',
343
+ impact: 'Database will be in read-only mode. Some features may be temporarily unavailable.',
344
+ severity: 'minor',
345
+ status: 'monitoring',
346
+ startTime: Date.now() - 2 * 60 * 60 * 1000,
347
+ affectedServices: ['Primary Database', 'Authentication Service', 'Backup Service', 'Logging Service', 'Webhook Delivery'],
348
+ updates: [
349
+ {
350
+ id: 'update-1',
351
+ timestamp: Date.now() - 7 * 24 * 60 * 60 * 1000,
352
+ status: 'investigating',
353
+ message: 'Scheduled maintenance has been announced for database upgrades and security patches.',
354
+ author: 'Operations Team'
355
+ },
356
+ {
357
+ id: 'update-2',
358
+ timestamp: Date.now() - 24 * 60 * 60 * 1000,
359
+ status: 'investigating',
360
+ message: 'Reminder: Database maintenance scheduled for tomorrow at 12:00 AM UTC.',
361
+ author: 'Operations Team'
362
+ },
363
+ {
364
+ id: 'update-3',
365
+ timestamp: Date.now() - 2 * 60 * 60 * 1000,
366
+ status: 'monitoring',
367
+ message: 'Maintenance window has begun. Database is now in read-only mode.',
368
+ author: 'Database Team'
369
+ },
370
+ {
371
+ id: 'update-4',
372
+ timestamp: Date.now() - 1.5 * 60 * 60 * 1000,
373
+ status: 'monitoring',
374
+ message: 'Security patches applied successfully. Beginning database schema updates.',
375
+ author: 'Database Team'
376
+ },
377
+ {
378
+ id: 'update-5',
379
+ timestamp: Date.now() - 1 * 60 * 60 * 1000,
380
+ status: 'monitoring',
381
+ message: 'Schema updates 50% complete. Everything proceeding as planned.',
382
+ author: 'Database Team'
383
+ },
384
+ {
385
+ id: 'update-6',
386
+ timestamp: Date.now() - 30 * 60 * 1000,
387
+ status: 'monitoring',
388
+ message: 'Final testing phase. Services will begin coming back online shortly.',
389
+ author: 'Operations Team'
390
+ }
391
+ ]
392
+ }
393
+ ];
394
+ const pastIncidents = [
395
+ {
396
+ id: 'maint-2024-prev-001',
397
+ title: 'Previous Monthly Maintenance',
398
+ impact: 'Services were in maintenance mode for 1 hour',
399
+ severity: 'minor',
400
+ status: 'resolved',
401
+ startTime: Date.now() - 30 * 24 * 60 * 60 * 1000,
402
+ endTime: Date.now() - 30 * 24 * 60 * 60 * 1000 + 60 * 60 * 1000,
403
+ affectedServices: ['Primary Database', 'Backup Service'],
404
+ rootCause: 'Scheduled monthly maintenance for security updates.',
405
+ resolution: 'Maintenance completed successfully with all updates applied.',
406
+ updates: [
407
+ {
408
+ id: 'update-7',
409
+ timestamp: Date.now() - 30 * 24 * 60 * 60 * 1000,
410
+ status: 'monitoring',
411
+ message: 'Monthly maintenance started.',
412
+ author: 'Operations Team'
413
+ },
414
+ {
415
+ id: 'update-8',
416
+ timestamp: Date.now() - 30 * 24 * 60 * 60 * 1000 + 60 * 60 * 1000,
417
+ status: 'resolved',
418
+ message: 'Maintenance completed successfully.',
419
+ author: 'Operations Team'
420
+ }
421
+ ]
422
+ },
423
+ {
424
+ id: 'inc-2024-001',
425
+ title: 'API Gateway Performance Issues',
426
+ impact: 'Slow API responses for some users',
427
+ severity: 'minor',
428
+ status: 'resolved',
429
+ startTime: Date.now() - 15 * 24 * 60 * 60 * 1000,
430
+ endTime: Date.now() - 15 * 24 * 60 * 60 * 1000 + 45 * 60 * 1000,
431
+ affectedServices: ['API Gateway'],
432
+ rootCause: 'Memory leak in API Gateway service.',
433
+ resolution: 'Service restarted and patch applied.',
434
+ updates: [
435
+ {
436
+ id: 'update-9',
437
+ timestamp: Date.now() - 15 * 24 * 60 * 60 * 1000,
438
+ status: 'investigating',
439
+ message: 'Investigating reports of slow API responses.',
440
+ author: 'API Team'
441
+ },
442
+ {
443
+ id: 'update-10',
444
+ timestamp: Date.now() - 15 * 24 * 60 * 60 * 1000 + 30 * 60 * 1000,
445
+ status: 'identified',
446
+ message: 'Memory leak identified. Preparing fix.',
447
+ author: 'API Team'
448
+ },
449
+ {
450
+ id: 'update-11',
451
+ timestamp: Date.now() - 15 * 24 * 60 * 60 * 1000 + 45 * 60 * 1000,
452
+ status: 'resolved',
453
+ message: 'Fix applied. Performance back to normal.',
454
+ author: 'API Team'
455
+ }
456
+ ]
457
+ },
458
+ {
459
+ id: 'maint-2023-012',
460
+ title: 'Year-End Infrastructure Upgrade',
461
+ impact: 'Planned downtime for major infrastructure improvements',
462
+ severity: 'major',
463
+ status: 'resolved',
464
+ startTime: Date.now() - 60 * 24 * 60 * 60 * 1000,
465
+ endTime: Date.now() - 60 * 24 * 60 * 60 * 1000 + 4 * 60 * 60 * 1000,
466
+ affectedServices: ['All Services'],
467
+ rootCause: 'Annual infrastructure upgrade and capacity expansion.',
468
+ resolution: 'All upgrades completed successfully. System capacity increased by 50%.',
469
+ updates: [
470
+ {
471
+ id: 'update-12',
472
+ timestamp: Date.now() - 67 * 24 * 60 * 60 * 1000,
473
+ status: 'investigating',
474
+ message: 'Year-end maintenance scheduled for next week.',
475
+ author: 'CTO'
476
+ },
477
+ {
478
+ id: 'update-13',
479
+ timestamp: Date.now() - 60 * 24 * 60 * 60 * 1000,
480
+ status: 'monitoring',
481
+ message: 'Maintenance window started. All services going offline.',
482
+ author: 'Operations Team'
483
+ },
484
+ {
485
+ id: 'update-14',
486
+ timestamp: Date.now() - 60 * 24 * 60 * 60 * 1000 + 2 * 60 * 60 * 1000,
487
+ status: 'monitoring',
488
+ message: 'Hardware upgrades complete. Software updates in progress.',
489
+ author: 'Infrastructure Team'
490
+ },
491
+ {
492
+ id: 'update-15',
493
+ timestamp: Date.now() - 60 * 24 * 60 * 60 * 1000 + 4 * 60 * 60 * 1000,
494
+ status: 'resolved',
495
+ message: 'All systems back online. Performance improvements confirmed.',
496
+ author: 'Operations Team'
497
+ },
498
+ {
499
+ id: 'update-16',
500
+ timestamp: Date.now() - 59 * 24 * 60 * 60 * 1000,
501
+ status: 'postmortem',
502
+ message: 'Maintenance report published. 50% capacity increase achieved.',
503
+ author: 'Engineering Team'
504
+ }
505
+ ]
506
+ }
507
+ ];
508
+ incidents.currentIncidents = currentIncidents;
509
+ incidents.pastIncidents = pastIncidents;
510
+ // Configure Footer
511
+ footer.companyName = 'SecureVault Infrastructure';
512
+ footer.legalUrl = 'https://securevault.example.com/legal';
513
+ footer.supportEmail = 'support@securevault.example.com';
514
+ footer.statusPageUrl = 'https://status.securevault.example.com';
515
+ footer.lastUpdated = Date.now();
516
+ footer.currentYear = new Date().getFullYear();
517
+ footer.socialLinks = [
518
+ { platform: 'twitter', url: 'https://twitter.com/securevault' },
519
+ { platform: 'linkedin', url: 'https://linkedin.com/company/securevault' }
520
+ ];
521
+ footer.rssFeedUrl = 'https://status.securevault.example.com/rss';
522
+ footer.apiStatusUrl = 'https://api.securevault.example.com/v1/status';
523
+ footer.enableSubscribe = true;
524
+ footer.subscriberCount = 3892;
525
+ footer.additionalLinks = [
526
+ { label: 'Maintenance Schedule', url: 'https://securevault.example.com/maintenance' },
527
+ { label: 'API Documentation', url: 'https://docs.securevault.example.com' },
528
+ { label: 'Support Portal', url: 'https://support.securevault.example.com' }
529
+ ];
530
+ footer.latestStatusUpdate = 'Database maintenance 50% complete - On track for 2:00 AM UTC completion';
531
+ }}
532
+ >
533
+ <upl-statuspage-header></upl-statuspage-header>
534
+ <upl-statuspage-statusbar></upl-statuspage-statusbar>
535
+ <upl-statuspage-statsgrid></upl-statuspage-statsgrid>
536
+ <upl-statuspage-assetsselector></upl-statuspage-assetsselector>
537
+ <upl-statuspage-statusdetails></upl-statuspage-statusdetails>
538
+ <upl-statuspage-statusmonth></upl-statuspage-statusmonth>
539
+ <upl-statuspage-incidents></upl-statuspage-incidents>
540
+ <upl-statuspage-footer></upl-statuspage-footer>
541
+ </dees-demowrapper>
542
+ </div>
543
+ `;
544
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzcGFnZS1tYWludGVuYW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9wYWdlcy9zdGF0dXNwYWdlLW1haW50ZW5hbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7O29CQUkzQixVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7OztzQkFZdEMsS0FBSyxFQUFFLGNBQW1CLEVBQUUsRUFBRTtJQUM5QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFRLENBQUM7SUFDNUUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBUSxDQUFDO0lBQ2xGLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQVEsQ0FBQztJQUNsRixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFRLENBQUM7SUFDNUYsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBUSxDQUFDO0lBQzFGLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQVEsQ0FBQztJQUN0RixNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFRLENBQUM7SUFDbEYsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBUSxDQUFDO0lBRTVFLG1CQUFtQjtJQUNuQixNQUFNLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztJQUNqQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFD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
@@ -0,0 +1 @@
1
+ export declare const statuspageOutage: () => import("@design.estate/dees-element").TemplateResult<1>;