@bernierllc/backoff-retry 0.1.1 → 0.3.1
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/CHANGELOG.md +13 -0
- package/README.md +110 -0
- package/dist/enhancement-manager.d.ts +205 -0
- package/dist/enhancement-manager.d.ts.map +1 -0
- package/dist/enhancement-manager.js +533 -0
- package/dist/enhancement-manager.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/memory-protection.js +1 -1
- package/dist/memory-protection.js.map +1 -1
- package/dist/neveradmin/components/RetryAnalyticsPage.d.ts +15 -0
- package/dist/neveradmin/components/RetryAnalyticsPage.d.ts.map +1 -0
- package/dist/neveradmin/components/RetryAnalyticsPage.js +28 -0
- package/dist/neveradmin/components/RetryAnalyticsPage.js.map +1 -0
- package/dist/neveradmin/components/RetryConfigurationPage.d.ts +15 -0
- package/dist/neveradmin/components/RetryConfigurationPage.d.ts.map +1 -0
- package/dist/neveradmin/components/RetryConfigurationPage.js +28 -0
- package/dist/neveradmin/components/RetryConfigurationPage.js.map +1 -0
- package/dist/neveradmin/components/RetryEnhancementsPage.d.ts +15 -0
- package/dist/neveradmin/components/RetryEnhancementsPage.d.ts.map +1 -0
- package/dist/neveradmin/components/RetryEnhancementsPage.js +28 -0
- package/dist/neveradmin/components/RetryEnhancementsPage.js.map +1 -0
- package/dist/neveradmin/components/RetryOperationsPage.d.ts +15 -0
- package/dist/neveradmin/components/RetryOperationsPage.d.ts.map +1 -0
- package/dist/neveradmin/components/RetryOperationsPage.js +28 -0
- package/dist/neveradmin/components/RetryOperationsPage.js.map +1 -0
- package/dist/neveradmin/components/RetryOverviewPage.d.ts +15 -0
- package/dist/neveradmin/components/RetryOverviewPage.d.ts.map +1 -0
- package/dist/neveradmin/components/RetryOverviewPage.js +28 -0
- package/dist/neveradmin/components/RetryOverviewPage.js.map +1 -0
- package/dist/neveradmin/components/index.d.ts +7 -0
- package/dist/neveradmin/components/index.d.ts.map +1 -0
- package/dist/neveradmin/components/index.js +32 -0
- package/dist/neveradmin/components/index.js.map +1 -0
- package/dist/neveradmin/components/types.d.ts +64 -0
- package/dist/neveradmin/components/types.d.ts.map +1 -0
- package/dist/neveradmin/components/types.js +10 -0
- package/dist/neveradmin/components/types.js.map +1 -0
- package/dist/neveradmin/hooks/index.d.ts +5 -0
- package/dist/neveradmin/hooks/index.d.ts.map +1 -0
- package/dist/neveradmin/hooks/index.js +28 -0
- package/dist/neveradmin/hooks/index.js.map +1 -0
- package/dist/neveradmin/hooks/useRetryConfiguration.d.ts +23 -0
- package/dist/neveradmin/hooks/useRetryConfiguration.d.ts.map +1 -0
- package/dist/neveradmin/hooks/useRetryConfiguration.js +162 -0
- package/dist/neveradmin/hooks/useRetryConfiguration.js.map +1 -0
- package/dist/neveradmin/hooks/useRetryEnhancements.d.ts +39 -0
- package/dist/neveradmin/hooks/useRetryEnhancements.d.ts.map +1 -0
- package/dist/neveradmin/hooks/useRetryEnhancements.js +197 -0
- package/dist/neveradmin/hooks/useRetryEnhancements.js.map +1 -0
- package/dist/neveradmin/hooks/useRetryOperations.d.ts +28 -0
- package/dist/neveradmin/hooks/useRetryOperations.d.ts.map +1 -0
- package/dist/neveradmin/hooks/useRetryOperations.js +166 -0
- package/dist/neveradmin/hooks/useRetryOperations.js.map +1 -0
- package/dist/neveradmin/hooks/useRetryStats.d.ts +19 -0
- package/dist/neveradmin/hooks/useRetryStats.d.ts.map +1 -0
- package/dist/neveradmin/hooks/useRetryStats.js +81 -0
- package/dist/neveradmin/hooks/useRetryStats.js.map +1 -0
- package/dist/neveradmin/index.d.ts +6 -0
- package/dist/neveradmin/index.d.ts.map +1 -0
- package/dist/neveradmin/index.js +29 -0
- package/dist/neveradmin/index.js.map +1 -0
- package/dist/neveradmin/registration.d.ts +33 -0
- package/dist/neveradmin/registration.d.ts.map +1 -0
- package/dist/neveradmin/registration.js +96 -0
- package/dist/neveradmin/registration.js.map +1 -0
- package/dist/neveradmin/types.d.ts +88 -0
- package/dist/neveradmin/types.d.ts.map +1 -0
- package/dist/neveradmin/types.js +10 -0
- package/dist/neveradmin/types.js.map +1 -0
- package/dist/neveradmin/utils/formatting.d.ts +41 -0
- package/dist/neveradmin/utils/formatting.d.ts.map +1 -0
- package/dist/neveradmin/utils/formatting.js +142 -0
- package/dist/neveradmin/utils/formatting.js.map +1 -0
- package/dist/neveradmin/utils/index.d.ts +4 -0
- package/dist/neveradmin/utils/index.d.ts.map +1 -0
- package/dist/neveradmin/utils/index.js +27 -0
- package/dist/neveradmin/utils/index.js.map +1 -0
- package/dist/neveradmin/utils/permissions.d.ts +74 -0
- package/dist/neveradmin/utils/permissions.d.ts.map +1 -0
- package/dist/neveradmin/utils/permissions.js +152 -0
- package/dist/neveradmin/utils/permissions.js.map +1 -0
- package/dist/neveradmin/utils/validation.d.ts +38 -0
- package/dist/neveradmin/utils/validation.d.ts.map +1 -0
- package/dist/neveradmin/utils/validation.js +142 -0
- package/dist/neveradmin/utils/validation.js.map +1 -0
- package/dist/retry-manager.d.ts +32 -11
- package/dist/retry-manager.d.ts.map +1 -1
- package/dist/retry-manager.js +128 -82
- package/dist/retry-manager.js.map +1 -1
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +26 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/secure-storage.d.ts +61 -0
- package/dist/security/secure-storage.d.ts.map +1 -0
- package/dist/security/secure-storage.js +418 -0
- package/dist/security/secure-storage.js.map +1 -0
- package/dist/security/security-manager.d.ts +172 -0
- package/dist/security/security-manager.d.ts.map +1 -0
- package/dist/security/security-manager.js +417 -0
- package/dist/security/security-manager.js.map +1 -0
- package/dist/storage/backend-selector.d.ts +96 -0
- package/dist/storage/backend-selector.d.ts.map +1 -0
- package/dist/storage/backend-selector.js +466 -0
- package/dist/storage/backend-selector.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +30 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/memory-storage.d.ts +55 -0
- package/dist/storage/memory-storage.d.ts.map +1 -0
- package/dist/storage/memory-storage.js +106 -0
- package/dist/storage/memory-storage.js.map +1 -0
- package/dist/storage/postgresql-storage.d.ts +77 -0
- package/dist/storage/postgresql-storage.d.ts.map +1 -0
- package/dist/storage/postgresql-storage.js +314 -0
- package/dist/storage/postgresql-storage.js.map +1 -0
- package/dist/storage/redis-cluster-storage.d.ts +88 -0
- package/dist/storage/redis-cluster-storage.d.ts.map +1 -0
- package/dist/storage/redis-cluster-storage.js +414 -0
- package/dist/storage/redis-cluster-storage.js.map +1 -0
- package/dist/storage/redis-storage.d.ts +67 -0
- package/dist/storage/redis-storage.d.ts.map +1 -0
- package/dist/storage/redis-storage.js +236 -0
- package/dist/storage/redis-storage.js.map +1 -0
- package/dist/storage/types.d.ts +55 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +10 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/types.d.ts +7 -32
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +16 -3
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.useRetryEnhancements = useRetryEnhancements;
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
/**
|
|
13
|
+
* Hook for managing retry enhancements in NeverAdmin
|
|
14
|
+
*/
|
|
15
|
+
function useRetryEnhancements(enhancementManager, options = {}) {
|
|
16
|
+
const { refreshInterval = 5000, autoRefresh = true } = options;
|
|
17
|
+
const [enhancements, setEnhancements] = (0, react_1.useState)([]);
|
|
18
|
+
const [recommendations, setRecommendations] = (0, react_1.useState)([]);
|
|
19
|
+
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
20
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
21
|
+
const [lastUpdated, setLastUpdated] = (0, react_1.useState)(null);
|
|
22
|
+
const fetchEnhancements = (0, react_1.useCallback)(async () => {
|
|
23
|
+
try {
|
|
24
|
+
setLoading(true);
|
|
25
|
+
setError(null);
|
|
26
|
+
// Get active enhancements
|
|
27
|
+
const activeEnhancements = enhancementManager.getActiveEnhancements();
|
|
28
|
+
const metrics = enhancementManager.getMetrics();
|
|
29
|
+
const storageConfig = enhancementManager.getEnhancementConfig('storage');
|
|
30
|
+
const notificationsConfig = enhancementManager.getEnhancementConfig('notifications');
|
|
31
|
+
const analyticsConfig = enhancementManager.getEnhancementConfig('memoryProtection');
|
|
32
|
+
const mlConfig = enhancementManager.getEnhancementConfig('ml');
|
|
33
|
+
// Build enhancement status list
|
|
34
|
+
const enhancementStatuses = [
|
|
35
|
+
{
|
|
36
|
+
id: 'storage',
|
|
37
|
+
name: 'Storage Enhancement',
|
|
38
|
+
enabled: storageConfig?.enabled || false,
|
|
39
|
+
status: storageConfig?.enabled ? 'active' : 'inactive',
|
|
40
|
+
description: 'Enhanced storage backend with auto-upgrade capabilities',
|
|
41
|
+
config: {
|
|
42
|
+
type: storageConfig?.type || 'memory',
|
|
43
|
+
autoUpgrade: storageConfig?.autoUpgrade || false,
|
|
44
|
+
thresholdNotifications: storageConfig?.thresholdNotifications || false,
|
|
45
|
+
memoryThreshold: storageConfig?.memoryThreshold || 80
|
|
46
|
+
},
|
|
47
|
+
lastUpdated: new Date()
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 'notifications',
|
|
51
|
+
name: 'Notification System',
|
|
52
|
+
enabled: notificationsConfig?.enabled || false,
|
|
53
|
+
status: notificationsConfig?.enabled ? 'active' : 'inactive',
|
|
54
|
+
description: 'Advanced notification system with multiple channels',
|
|
55
|
+
config: {
|
|
56
|
+
email: false, // Default values since we can't access nested properties
|
|
57
|
+
webhook: false,
|
|
58
|
+
slack: false,
|
|
59
|
+
pagerduty: false
|
|
60
|
+
},
|
|
61
|
+
lastUpdated: new Date()
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'analytics',
|
|
65
|
+
name: 'Advanced Analytics',
|
|
66
|
+
enabled: analyticsConfig?.enabled || false,
|
|
67
|
+
status: analyticsConfig?.enabled ? 'active' : 'inactive',
|
|
68
|
+
description: 'Advanced analytics and performance monitoring',
|
|
69
|
+
config: {
|
|
70
|
+
predictiveForecasting: analyticsConfig?.predictiveForecasting || false,
|
|
71
|
+
leakDetection: analyticsConfig?.leakDetection || false,
|
|
72
|
+
autoAdjustment: analyticsConfig?.autoAdjustment || false
|
|
73
|
+
},
|
|
74
|
+
lastUpdated: new Date()
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'ml',
|
|
78
|
+
name: 'Machine Learning',
|
|
79
|
+
enabled: mlConfig?.enabled || false,
|
|
80
|
+
status: mlConfig?.enabled ? 'active' : 'inactive',
|
|
81
|
+
description: 'ML-powered retry optimization and error classification',
|
|
82
|
+
config: {
|
|
83
|
+
predictiveRetry: mlConfig?.predictiveRetry || false,
|
|
84
|
+
errorClassification: mlConfig?.errorClassification || false,
|
|
85
|
+
performanceOptimization: mlConfig?.performanceOptimization || false
|
|
86
|
+
},
|
|
87
|
+
lastUpdated: new Date()
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
setEnhancements(enhancementStatuses);
|
|
91
|
+
// Get recommendations
|
|
92
|
+
const rawRecommendations = enhancementManager.getRecommendations();
|
|
93
|
+
const enhancementRecommendations = rawRecommendations.map(rec => {
|
|
94
|
+
// Parse recommendation text to extract structured data
|
|
95
|
+
if (rec.includes('memory usage')) {
|
|
96
|
+
return {
|
|
97
|
+
id: 'upgrade-storage',
|
|
98
|
+
title: 'Upgrade Storage Backend',
|
|
99
|
+
description: rec,
|
|
100
|
+
priority: 'high',
|
|
101
|
+
impact: 'Improved performance and scalability',
|
|
102
|
+
action: 'Enable Redis or PostgreSQL storage',
|
|
103
|
+
estimatedTime: '5 minutes'
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
else if (rec.includes('performance')) {
|
|
107
|
+
return {
|
|
108
|
+
id: 'enable-analytics',
|
|
109
|
+
title: 'Enable Advanced Analytics',
|
|
110
|
+
description: rec,
|
|
111
|
+
priority: 'medium',
|
|
112
|
+
impact: 'Better monitoring and optimization',
|
|
113
|
+
action: 'Enable analytics enhancement',
|
|
114
|
+
estimatedTime: '2 minutes'
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return {
|
|
119
|
+
id: 'general-optimization',
|
|
120
|
+
title: 'General Optimization',
|
|
121
|
+
description: rec,
|
|
122
|
+
priority: 'low',
|
|
123
|
+
impact: 'Improved system efficiency',
|
|
124
|
+
action: 'Review and apply recommendations',
|
|
125
|
+
estimatedTime: '10 minutes'
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
setRecommendations(enhancementRecommendations);
|
|
130
|
+
setLastUpdated(new Date());
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
setError(err instanceof Error ? err.message : 'Failed to fetch enhancements');
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
setLoading(false);
|
|
137
|
+
}
|
|
138
|
+
}, [enhancementManager]);
|
|
139
|
+
const enableEnhancement = (0, react_1.useCallback)(async (id, config) => {
|
|
140
|
+
try {
|
|
141
|
+
enhancementManager.enableEnhancement(id, config);
|
|
142
|
+
await fetchEnhancements();
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
setError(err instanceof Error ? err.message : `Failed to enable enhancement: ${id}`);
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}, [enhancementManager, fetchEnhancements]);
|
|
150
|
+
const disableEnhancement = (0, react_1.useCallback)(async (id) => {
|
|
151
|
+
try {
|
|
152
|
+
enhancementManager.disableEnhancement(id);
|
|
153
|
+
await fetchEnhancements();
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
setError(err instanceof Error ? err.message : `Failed to disable enhancement: ${id}`);
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
}, [enhancementManager, fetchEnhancements]);
|
|
161
|
+
const updateEnhancementConfig = (0, react_1.useCallback)(async (id, config) => {
|
|
162
|
+
try {
|
|
163
|
+
// This would need to be implemented in EnhancementManager
|
|
164
|
+
// const result = enhancementManager.updateEnhancementConfig(id, config);
|
|
165
|
+
// For now, we'll just refresh the enhancements
|
|
166
|
+
await fetchEnhancements();
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
setError(err instanceof Error ? err.message : `Failed to update enhancement config: ${id}`);
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
}, [fetchEnhancements]);
|
|
174
|
+
// Initial fetch
|
|
175
|
+
(0, react_1.useEffect)(() => {
|
|
176
|
+
fetchEnhancements();
|
|
177
|
+
}, [fetchEnhancements]);
|
|
178
|
+
// Auto-refresh
|
|
179
|
+
(0, react_1.useEffect)(() => {
|
|
180
|
+
if (!autoRefresh)
|
|
181
|
+
return;
|
|
182
|
+
const interval = setInterval(fetchEnhancements, refreshInterval);
|
|
183
|
+
return () => clearInterval(interval);
|
|
184
|
+
}, [fetchEnhancements, refreshInterval, autoRefresh]);
|
|
185
|
+
return {
|
|
186
|
+
enhancements,
|
|
187
|
+
recommendations,
|
|
188
|
+
loading,
|
|
189
|
+
error,
|
|
190
|
+
refresh: fetchEnhancements,
|
|
191
|
+
enableEnhancement,
|
|
192
|
+
disableEnhancement,
|
|
193
|
+
updateEnhancementConfig,
|
|
194
|
+
lastUpdated
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=useRetryEnhancements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetryEnhancements.js","sourceRoot":"","sources":["../../../src/neveradmin/hooks/useRetryEnhancements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { RetryManager } from '../../retry-manager';
|
|
2
|
+
import { RetryOperation, RetryFilterOptions, RetryBulkAction } from '../types';
|
|
3
|
+
export interface UseRetryOperationsOptions {
|
|
4
|
+
refreshInterval?: number;
|
|
5
|
+
autoRefresh?: boolean;
|
|
6
|
+
defaultFilters?: RetryFilterOptions;
|
|
7
|
+
}
|
|
8
|
+
export interface UseRetryOperationsReturn {
|
|
9
|
+
operations: RetryOperation[];
|
|
10
|
+
loading: boolean;
|
|
11
|
+
error: string | null;
|
|
12
|
+
refresh: () => Promise<void>;
|
|
13
|
+
filter: (options: RetryFilterOptions) => Promise<void>;
|
|
14
|
+
cancelRetry: (retryId: string) => Promise<boolean>;
|
|
15
|
+
retryOperation: (retryId: string) => Promise<boolean>;
|
|
16
|
+
bulkAction: (action: RetryBulkAction) => Promise<{
|
|
17
|
+
success: string[];
|
|
18
|
+
failed: string[];
|
|
19
|
+
}>;
|
|
20
|
+
lastUpdated: Date | null;
|
|
21
|
+
totalCount: number;
|
|
22
|
+
filteredCount: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook for managing retry operations in NeverAdmin
|
|
26
|
+
*/
|
|
27
|
+
export declare function useRetryOperations(retryManager: RetryManager, options?: UseRetryOperationsOptions): UseRetryOperationsReturn;
|
|
28
|
+
//# sourceMappingURL=useRetryOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetryOperations.d.ts","sourceRoot":"","sources":["../../../src/neveradmin/hooks/useRetryOperations.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE/E,MAAM,WAAW,yBAAyB;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1F,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CA4K1B"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.useRetryOperations = useRetryOperations;
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
/**
|
|
13
|
+
* Hook for managing retry operations in NeverAdmin
|
|
14
|
+
*/
|
|
15
|
+
function useRetryOperations(retryManager, options = {}) {
|
|
16
|
+
const { refreshInterval = 5000, autoRefresh = true, defaultFilters = {} } = options;
|
|
17
|
+
const [operations, setOperations] = (0, react_1.useState)([]);
|
|
18
|
+
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
19
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
20
|
+
const [lastUpdated, setLastUpdated] = (0, react_1.useState)(null);
|
|
21
|
+
const [currentFilters, setCurrentFilters] = (0, react_1.useState)(defaultFilters);
|
|
22
|
+
const [totalCount, setTotalCount] = (0, react_1.useState)(0);
|
|
23
|
+
const [filteredCount, setFilteredCount] = (0, react_1.useState)(0);
|
|
24
|
+
const fetchOperations = (0, react_1.useCallback)(async (filters = {}) => {
|
|
25
|
+
try {
|
|
26
|
+
setLoading(true);
|
|
27
|
+
setError(null);
|
|
28
|
+
// Get all retry states from RetryManager
|
|
29
|
+
const retryStates = await retryManager.listRetryStates();
|
|
30
|
+
// Convert to RetryOperation format
|
|
31
|
+
const allOperations = retryStates.map((state) => ({
|
|
32
|
+
id: state.id,
|
|
33
|
+
status: state.status,
|
|
34
|
+
operation: state.operation,
|
|
35
|
+
attempts: state.attempts,
|
|
36
|
+
maxAttempts: state.maxAttempts,
|
|
37
|
+
lastAttempt: new Date(state.lastAttempt),
|
|
38
|
+
nextRetry: state.nextRetry ? new Date(state.nextRetry) : undefined,
|
|
39
|
+
totalTime: state.totalTime,
|
|
40
|
+
error: state.error?.message,
|
|
41
|
+
metadata: state.metadata
|
|
42
|
+
}));
|
|
43
|
+
setTotalCount(allOperations.length);
|
|
44
|
+
// Apply filters
|
|
45
|
+
let filteredOperations = allOperations;
|
|
46
|
+
if (filters.status && filters.status.length > 0) {
|
|
47
|
+
filteredOperations = filteredOperations.filter(op => filters.status.includes(op.status));
|
|
48
|
+
}
|
|
49
|
+
if (filters.operation) {
|
|
50
|
+
filteredOperations = filteredOperations.filter(op => op.operation.toLowerCase().includes(filters.operation.toLowerCase()));
|
|
51
|
+
}
|
|
52
|
+
if (filters.dateRange) {
|
|
53
|
+
filteredOperations = filteredOperations.filter(op => {
|
|
54
|
+
const lastAttempt = op.lastAttempt;
|
|
55
|
+
return lastAttempt >= filters.dateRange.start && lastAttempt <= filters.dateRange.end;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// Apply pagination
|
|
59
|
+
if (filters.limit || filters.offset) {
|
|
60
|
+
const offset = filters.offset || 0;
|
|
61
|
+
const limit = filters.limit || filteredOperations.length;
|
|
62
|
+
filteredOperations = filteredOperations.slice(offset, offset + limit);
|
|
63
|
+
}
|
|
64
|
+
setOperations(filteredOperations);
|
|
65
|
+
setFilteredCount(filteredOperations.length);
|
|
66
|
+
setLastUpdated(new Date());
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
setError(err instanceof Error ? err.message : 'Failed to fetch retry operations');
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
setLoading(false);
|
|
73
|
+
}
|
|
74
|
+
}, [retryManager]);
|
|
75
|
+
const filter = (0, react_1.useCallback)(async (options) => {
|
|
76
|
+
setCurrentFilters(options);
|
|
77
|
+
await fetchOperations(options);
|
|
78
|
+
}, [fetchOperations]);
|
|
79
|
+
const cancelRetry = (0, react_1.useCallback)(async (retryId) => {
|
|
80
|
+
try {
|
|
81
|
+
await retryManager.cancelRetry(retryId);
|
|
82
|
+
// Refresh operations after cancellation
|
|
83
|
+
await fetchOperations(currentFilters);
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
setError(err instanceof Error ? err.message : 'Failed to cancel retry');
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}, [retryManager, fetchOperations, currentFilters]);
|
|
91
|
+
const retryOperation = (0, react_1.useCallback)(async (retryId) => {
|
|
92
|
+
try {
|
|
93
|
+
// Find the operation and retry it
|
|
94
|
+
const operation = operations.find(op => op.id === retryId);
|
|
95
|
+
if (!operation) {
|
|
96
|
+
throw new Error('Operation not found');
|
|
97
|
+
}
|
|
98
|
+
// This would need to be implemented in RetryManager
|
|
99
|
+
// For now, we'll just refresh the operations
|
|
100
|
+
await fetchOperations(currentFilters);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
setError(err instanceof Error ? err.message : 'Failed to retry operation');
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}, [operations, fetchOperations, currentFilters]);
|
|
108
|
+
const bulkAction = (0, react_1.useCallback)(async (action) => {
|
|
109
|
+
const success = [];
|
|
110
|
+
const failed = [];
|
|
111
|
+
for (const retryId of action.retryIds) {
|
|
112
|
+
try {
|
|
113
|
+
let result = false;
|
|
114
|
+
switch (action.action) {
|
|
115
|
+
case 'cancel':
|
|
116
|
+
result = await cancelRetry(retryId);
|
|
117
|
+
break;
|
|
118
|
+
case 'retry':
|
|
119
|
+
result = await retryOperation(retryId);
|
|
120
|
+
break;
|
|
121
|
+
case 'delete':
|
|
122
|
+
// This would need to be implemented in RetryManager
|
|
123
|
+
result = true;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
if (result) {
|
|
127
|
+
success.push(retryId);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
failed.push(retryId);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
failed.push(retryId);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Refresh operations after bulk action
|
|
138
|
+
await fetchOperations(currentFilters);
|
|
139
|
+
return { success, failed };
|
|
140
|
+
}, [cancelRetry, retryOperation, fetchOperations, currentFilters]);
|
|
141
|
+
// Initial fetch
|
|
142
|
+
(0, react_1.useEffect)(() => {
|
|
143
|
+
fetchOperations(currentFilters);
|
|
144
|
+
}, [fetchOperations, currentFilters]);
|
|
145
|
+
// Auto-refresh
|
|
146
|
+
(0, react_1.useEffect)(() => {
|
|
147
|
+
if (!autoRefresh)
|
|
148
|
+
return;
|
|
149
|
+
const interval = setInterval(() => fetchOperations(currentFilters), refreshInterval);
|
|
150
|
+
return () => clearInterval(interval);
|
|
151
|
+
}, [fetchOperations, currentFilters, refreshInterval, autoRefresh]);
|
|
152
|
+
return {
|
|
153
|
+
operations,
|
|
154
|
+
loading,
|
|
155
|
+
error,
|
|
156
|
+
refresh: () => fetchOperations(currentFilters),
|
|
157
|
+
filter,
|
|
158
|
+
cancelRetry,
|
|
159
|
+
retryOperation,
|
|
160
|
+
bulkAction,
|
|
161
|
+
lastUpdated,
|
|
162
|
+
totalCount,
|
|
163
|
+
filteredCount
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=useRetryOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetryOperations.js","sourceRoot":"","sources":["../../../src/neveradmin/hooks/useRetryOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RetryManager } from '../../retry-manager';
|
|
2
|
+
import { EnhancementManager } from '../../enhancement-manager';
|
|
3
|
+
import { RetryOverviewStats } from '../types';
|
|
4
|
+
export interface UseRetryStatsOptions {
|
|
5
|
+
refreshInterval?: number;
|
|
6
|
+
autoRefresh?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface UseRetryStatsReturn {
|
|
9
|
+
stats: RetryOverviewStats | null;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
error: string | null;
|
|
12
|
+
refresh: () => Promise<void>;
|
|
13
|
+
lastUpdated: Date | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Hook for managing retry statistics in NeverAdmin
|
|
17
|
+
*/
|
|
18
|
+
export declare function useRetryStats(retryManager: RetryManager, enhancementManager: EnhancementManager, options?: UseRetryStatsOptions): UseRetryStatsReturn;
|
|
19
|
+
//# sourceMappingURL=useRetryStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetryStats.d.ts","sourceRoot":"","sources":["../../../src/neveradmin/hooks/useRetryStats.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA6ErB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.useRetryStats = useRetryStats;
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
/**
|
|
13
|
+
* Hook for managing retry statistics in NeverAdmin
|
|
14
|
+
*/
|
|
15
|
+
function useRetryStats(retryManager, enhancementManager, options = {}) {
|
|
16
|
+
const { refreshInterval = 5000, autoRefresh = true } = options;
|
|
17
|
+
const [stats, setStats] = (0, react_1.useState)(null);
|
|
18
|
+
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
19
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
20
|
+
const [lastUpdated, setLastUpdated] = (0, react_1.useState)(null);
|
|
21
|
+
const fetchStats = (0, react_1.useCallback)(async () => {
|
|
22
|
+
try {
|
|
23
|
+
setLoading(true);
|
|
24
|
+
setError(null);
|
|
25
|
+
// Get retry metrics from RetryManager
|
|
26
|
+
const retryMetrics = retryManager.getMetrics();
|
|
27
|
+
// Get enhancement metrics from EnhancementManager
|
|
28
|
+
const enhancementMetrics = enhancementManager.getMetrics();
|
|
29
|
+
// Get memory protection stats
|
|
30
|
+
const memoryProtection = retryManager.getMemoryStats();
|
|
31
|
+
// Calculate success rate
|
|
32
|
+
const totalRetries = retryMetrics.totalRetries;
|
|
33
|
+
const successfulRetries = retryMetrics.successfulRetries;
|
|
34
|
+
const successRate = totalRetries > 0 ? (successfulRetries / totalRetries) * 100 : 0;
|
|
35
|
+
// Get active retries
|
|
36
|
+
const retryStates = await retryManager.listRetryStates();
|
|
37
|
+
const activeRetries = retryStates.filter((state) => state.status === 'pending' || state.status === 'retrying').length;
|
|
38
|
+
const statsData = {
|
|
39
|
+
totalRetries,
|
|
40
|
+
successfulRetries,
|
|
41
|
+
failedRetries: retryMetrics.failedRetries,
|
|
42
|
+
successRate,
|
|
43
|
+
averageRetryTime: retryMetrics.averageRetryTime,
|
|
44
|
+
activeRetries,
|
|
45
|
+
memoryUsage: {
|
|
46
|
+
current: memoryProtection.currentUsage,
|
|
47
|
+
max: memoryProtection.maxUsage,
|
|
48
|
+
percentage: memoryProtection.usagePercentage
|
|
49
|
+
},
|
|
50
|
+
performanceScore: enhancementMetrics.performanceScore
|
|
51
|
+
};
|
|
52
|
+
setStats(statsData);
|
|
53
|
+
setLastUpdated(new Date());
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
setError(err instanceof Error ? err.message : 'Failed to fetch retry stats');
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
setLoading(false);
|
|
60
|
+
}
|
|
61
|
+
}, [retryManager, enhancementManager]);
|
|
62
|
+
// Initial fetch
|
|
63
|
+
(0, react_1.useEffect)(() => {
|
|
64
|
+
fetchStats();
|
|
65
|
+
}, [fetchStats]);
|
|
66
|
+
// Auto-refresh
|
|
67
|
+
(0, react_1.useEffect)(() => {
|
|
68
|
+
if (!autoRefresh)
|
|
69
|
+
return;
|
|
70
|
+
const interval = setInterval(fetchStats, refreshInterval);
|
|
71
|
+
return () => clearInterval(interval);
|
|
72
|
+
}, [fetchStats, refreshInterval, autoRefresh]);
|
|
73
|
+
return {
|
|
74
|
+
stats,
|
|
75
|
+
loading,
|
|
76
|
+
error,
|
|
77
|
+
refresh: fetchStats,
|
|
78
|
+
lastUpdated
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=useRetryStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetryStats.js","sourceRoot":"","sources":["../../../src/neveradmin/hooks/useRetryStats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/neveradmin/index.ts"],"names":[],"mappings":"AAQA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
21
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
__exportStar(require("./components"), exports);
|
|
25
|
+
__exportStar(require("./hooks"), exports);
|
|
26
|
+
__exportStar(require("./types"), exports);
|
|
27
|
+
__exportStar(require("./utils"), exports);
|
|
28
|
+
__exportStar(require("./registration"), exports);
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/neveradmin/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;;;;;;;;;;;;;;AAEF,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB;AACxB,iDAA+B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RetryManager } from '../retry-manager';
|
|
2
|
+
import { EnhancementManager } from '../enhancement-manager';
|
|
3
|
+
export interface NeverAdminUtilityRegistration {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
description: string;
|
|
8
|
+
icon?: string;
|
|
9
|
+
permissions: string[];
|
|
10
|
+
pages: NeverAdminPageRegistration[];
|
|
11
|
+
hooks: string[];
|
|
12
|
+
config: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
export interface NeverAdminPageRegistration {
|
|
15
|
+
path: string;
|
|
16
|
+
title: string;
|
|
17
|
+
component: string;
|
|
18
|
+
permissions: string[];
|
|
19
|
+
icon?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Registers the backoff-retry utility with NeverAdmin
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerBackoffRetryUtility(retryManager: RetryManager, enhancementManager: EnhancementManager): NeverAdminUtilityRegistration;
|
|
26
|
+
/**
|
|
27
|
+
* Creates the NeverAdmin context for backoff-retry
|
|
28
|
+
*/
|
|
29
|
+
export declare function createRetryAdminContext(retryManager: RetryManager, enhancementManager: EnhancementManager): {
|
|
30
|
+
retryManager: RetryManager;
|
|
31
|
+
enhancementManager: EnhancementManager;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/neveradmin/registration.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,GACrC,6BAA6B,CAsE/B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB;;;EAOvC"}
|