@amiable-dev/docusaurus-plugin-stentorosaur 0.21.5 → 0.21.8
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusDataProvider.d.ts","sourceRoot":"","sources":["../../src/context/StatusDataProvider.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,UAAU,cAAc;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1D,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,6CAA6C;IAC7C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;OAGG;IACH,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IACtD,mBAAmB;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAgID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"StatusDataProvider.d.ts","sourceRoot":"","sources":["../../src/context/StatusDataProvider.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,UAAU,cAAc;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1D,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,6CAA6C;IAC7C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;OAGG;IACH,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IACtD,mBAAmB;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAgID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAyL9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,sBAAsB,CAMtD;AAGD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -136,6 +136,7 @@ function StatusDataProvider({ baseUrl, children, }) {
|
|
|
136
136
|
* Fetch both data files in parallel
|
|
137
137
|
*/
|
|
138
138
|
const fetchData = (0, react_1.useCallback)(async () => {
|
|
139
|
+
console.log('[StatusDataProvider] Starting fetch from baseUrl:', baseUrl);
|
|
139
140
|
setLoading(true);
|
|
140
141
|
setError(null);
|
|
141
142
|
setSummaryFailed(false);
|
|
@@ -144,14 +145,23 @@ function StatusDataProvider({ baseUrl, children, }) {
|
|
|
144
145
|
let currentOk = false;
|
|
145
146
|
try {
|
|
146
147
|
// Fetch both files in parallel
|
|
148
|
+
const summaryUrl = `${baseUrl}/daily-summary.json`;
|
|
149
|
+
const currentUrl = `${baseUrl}/current.json`;
|
|
150
|
+
console.log('[StatusDataProvider] Fetching:', summaryUrl, currentUrl);
|
|
147
151
|
const [summaryResponse, currentResponse] = await Promise.all([
|
|
148
|
-
fetch(
|
|
149
|
-
fetch(
|
|
152
|
+
fetch(summaryUrl).catch((e) => { console.error('[StatusDataProvider] Summary fetch error:', e); return null; }),
|
|
153
|
+
fetch(currentUrl).catch((e) => { console.error('[StatusDataProvider] Current fetch error:', e); return null; }),
|
|
150
154
|
]);
|
|
151
155
|
// Handle summary response
|
|
156
|
+
console.log('[StatusDataProvider] Summary response:', summaryResponse?.ok, summaryResponse?.status);
|
|
152
157
|
if (summaryResponse?.ok) {
|
|
153
158
|
try {
|
|
154
159
|
const data = await summaryResponse.json();
|
|
160
|
+
console.log('[StatusDataProvider] Parsed daily-summary:', {
|
|
161
|
+
version: data.version,
|
|
162
|
+
lastUpdated: data.lastUpdated,
|
|
163
|
+
serviceKeys: data.services ? Object.keys(data.services) : 'no services',
|
|
164
|
+
});
|
|
155
165
|
setDailySummary(data);
|
|
156
166
|
summaryOk = true;
|
|
157
167
|
// Check for stale data
|
|
@@ -163,11 +173,13 @@ function StatusDataProvider({ baseUrl, children, }) {
|
|
|
163
173
|
}
|
|
164
174
|
}
|
|
165
175
|
}
|
|
166
|
-
catch {
|
|
176
|
+
catch (e) {
|
|
177
|
+
console.error('[StatusDataProvider] JSON parse error for summary:', e);
|
|
167
178
|
setSummaryFailed(true);
|
|
168
179
|
}
|
|
169
180
|
}
|
|
170
181
|
else {
|
|
182
|
+
console.warn('[StatusDataProvider] Summary fetch not ok:', summaryResponse?.status);
|
|
171
183
|
setSummaryFailed(true);
|
|
172
184
|
}
|
|
173
185
|
// Handle current response
|
|
@@ -188,17 +200,21 @@ function StatusDataProvider({ baseUrl, children, }) {
|
|
|
188
200
|
}
|
|
189
201
|
// Only set error if both files failed
|
|
190
202
|
if (!summaryOk && !currentOk) {
|
|
203
|
+
console.error('[StatusDataProvider] Both fetches failed');
|
|
191
204
|
setError(new Error('No data available'));
|
|
192
205
|
}
|
|
206
|
+
console.log('[StatusDataProvider] Fetch complete:', { summaryOk, currentOk });
|
|
193
207
|
setLoading(false);
|
|
194
208
|
}
|
|
195
209
|
catch (err) {
|
|
210
|
+
console.error('[StatusDataProvider] Unexpected error:', err);
|
|
196
211
|
setError(err instanceof Error ? err : new Error('Network error'));
|
|
197
212
|
setLoading(false);
|
|
198
213
|
}
|
|
199
214
|
}, [baseUrl]);
|
|
200
215
|
// Fetch data on mount
|
|
201
216
|
(0, react_1.useEffect)(() => {
|
|
217
|
+
console.log('[StatusDataProvider] useEffect triggered, calling fetchData');
|
|
202
218
|
fetchData();
|
|
203
219
|
}, [fetchData]);
|
|
204
220
|
/**
|
|
@@ -207,12 +223,18 @@ function StatusDataProvider({ baseUrl, children, }) {
|
|
|
207
223
|
const getMerged90Days = (0, react_1.useCallback)((serviceName) => {
|
|
208
224
|
// Return empty array if no data or unknown service
|
|
209
225
|
const lowerServiceName = serviceName.toLowerCase();
|
|
226
|
+
console.log('[getMerged90Days] Called for:', serviceName, {
|
|
227
|
+
hasDailySummary: !!dailySummary,
|
|
228
|
+
hasServices: !!dailySummary?.services,
|
|
229
|
+
availableServices: dailySummary?.services ? Object.keys(dailySummary.services) : [],
|
|
230
|
+
});
|
|
210
231
|
const entries = [];
|
|
211
232
|
const today = new Date().toISOString().split('T')[0];
|
|
212
233
|
// Get historical data from summary
|
|
213
234
|
const historicalEntries = dailySummary?.services?.[lowerServiceName] ||
|
|
214
235
|
dailySummary?.services?.[serviceName] ||
|
|
215
236
|
[];
|
|
237
|
+
console.log('[getMerged90Days] Historical entries:', historicalEntries.length);
|
|
216
238
|
// Get today's readings from current.json
|
|
217
239
|
const todayReadings = currentStatus?.readings
|
|
218
240
|
? groupReadingsByDate(currentStatus.readings, serviceName).get(today) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/UptimeBar/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAqE,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGjF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,IAAI,EAAE,YAAY,EAClB,IAAS,EACT,MAAW,EACX,GAAO,EACP,cAAqB,EACrB,cAAqB,EACrB,UAA+B,EAC/B,OAAe,EACf,KAAK,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/UptimeBar/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH,OAAO,KAAqE,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGjF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,IAAI,EAAE,YAAY,EAClB,IAAS,EACT,MAAW,EACX,GAAO,EACP,cAAqB,EACrB,cAAqB,EACrB,UAA+B,EAC/B,OAAe,EACf,KAAK,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA2MrC;AAGD,eAAe,SAAS,CAAC;AAGzB,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -82,9 +82,11 @@ function generateAriaLabel(serviceName, days, averageUptime) {
|
|
|
82
82
|
*/
|
|
83
83
|
function UptimeBar({ serviceName, data: providedData, days = 90, height = 34, gap = 2, showPercentage = true, showDateLabels = true, thresholds = DEFAULT_THRESHOLDS, loading = false, error, onRetry, ariaLabel, onDayClick, onDayHover, className, }) {
|
|
84
84
|
// Get data and loading state from context
|
|
85
|
-
const { getMerged90Days, loading: contextLoading, error: contextError } = (0, StatusDataProvider_1.useStatusData)();
|
|
85
|
+
const { getMerged90Days, loading: contextLoading, error: contextError, dailySummary } = (0, StatusDataProvider_1.useStatusData)();
|
|
86
86
|
// Use context loading/error if no data is provided (not using override props)
|
|
87
|
-
|
|
87
|
+
// Also consider loading if dailySummary hasn't been fetched yet (even if contextLoading is false)
|
|
88
|
+
const dataNotYetAvailable = !providedData && !dailySummary;
|
|
89
|
+
const isLoading = loading || contextLoading || dataNotYetAvailable;
|
|
88
90
|
const displayError = error || (!providedData && contextError);
|
|
89
91
|
// Roving tabindex state - track which day has focus
|
|
90
92
|
const [focusedIndex, setFocusedIndex] = (0, react_1.useState)(0);
|
|
@@ -168,8 +170,15 @@ function UptimeBar({ serviceName, data: providedData, days = 90, height = 34, ga
|
|
|
168
170
|
if (displayError) {
|
|
169
171
|
return ((0, jsx_runtime_1.jsxs)("div", { className: `${styles_module_css_1.default.uptimeBarContainer} ${styles_module_css_1.default.error} ${className || ''}`, children: [(0, jsx_runtime_1.jsx)("span", { className: styles_module_css_1.default.errorMessage, children: "Failed to load uptime data" }), onRetry && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: styles_module_css_1.default.retryButton, onClick: onRetry, "aria-label": "Retry loading uptime data", children: "Retry" }))] }));
|
|
170
172
|
}
|
|
171
|
-
// Empty state
|
|
173
|
+
// Empty state - add debug info
|
|
172
174
|
if (dayData.length === 0) {
|
|
175
|
+
// Log debug info
|
|
176
|
+
console.log('[UptimeBar] Empty state for', serviceName, {
|
|
177
|
+
contextLoading,
|
|
178
|
+
contextError: contextError?.message,
|
|
179
|
+
loading,
|
|
180
|
+
isLoading,
|
|
181
|
+
});
|
|
173
182
|
return ((0, jsx_runtime_1.jsx)("div", { className: `${styles_module_css_1.default.uptimeBarContainer} ${styles_module_css_1.default.empty} ${className || ''}`, role: "img", "aria-label": `No uptime data available for ${serviceName}`, children: (0, jsx_runtime_1.jsx)("span", { className: styles_module_css_1.default.emptyMessage, children: "No data available" }) }));
|
|
174
183
|
}
|
|
175
184
|
// Reverse for display (oldest first, newest last)
|
package/lib/version.d.ts
CHANGED
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amiable-dev/docusaurus-plugin-stentorosaur",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.8",
|
|
4
4
|
"description": "A Docusaurus plugin for displaying status monitoring dashboard powered by GitHub Issues and Actions, similar to Upptime",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "src/plugin-status.d.ts",
|