pi-kiosk-shared 2.1.14 → 2.1.17
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/dist/api.d.ts +22 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +22 -1
- package/dist/api.js.map +1 -1
- package/dist/errors.d.ts +18 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +28 -9
- package/dist/errors.js.map +1 -1
- package/dist/hooks/useDatabaseHealth.d.ts +10 -5
- package/dist/hooks/useDatabaseHealth.d.ts.map +1 -1
- package/dist/hooks/useDatabaseHealth.js +43 -69
- package/dist/hooks/useDatabaseHealth.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared API Utilities
|
|
3
|
+
*
|
|
4
|
+
* API endpoints and HTTP client for communicating with backend
|
|
5
|
+
* Supports multi-tenant routing and authentication headers
|
|
6
|
+
*/
|
|
1
7
|
export declare const API_ENDPOINTS: {
|
|
2
8
|
readonly PRODUCTS: "/api/products";
|
|
3
9
|
readonly PRODUCT_CLICK: "/api/products/:id/click";
|
|
@@ -31,6 +37,14 @@ export declare const API_ENDPOINTS: {
|
|
|
31
37
|
readonly CHECK_TRANSACTIONS: "/api/check-new-transactions";
|
|
32
38
|
readonly EVENTS: "/events/:kioskId";
|
|
33
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Typed HTTP client for API communication
|
|
42
|
+
* Features:
|
|
43
|
+
* - Multi-tenant support (automatic path injection)
|
|
44
|
+
* - Kiosk secret authentication
|
|
45
|
+
* - Type-safe requests and responses
|
|
46
|
+
* - URL validation before requests
|
|
47
|
+
*/
|
|
34
48
|
export declare class APIClient {
|
|
35
49
|
private baseUrl;
|
|
36
50
|
private kioskSecret?;
|
|
@@ -39,9 +53,15 @@ export declare class APIClient {
|
|
|
39
53
|
private injectTenantIntoEndpoint;
|
|
40
54
|
private request;
|
|
41
55
|
get<T>(endpoint: string): Promise<T>;
|
|
42
|
-
post<T>(endpoint: string, data?:
|
|
43
|
-
put<T>(endpoint: string, data?:
|
|
56
|
+
post<T>(endpoint: string, data?: unknown): Promise<T>;
|
|
57
|
+
put<T>(endpoint: string, data?: unknown): Promise<T>;
|
|
44
58
|
delete<T>(endpoint: string): Promise<T>;
|
|
45
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Factory function to create API client
|
|
62
|
+
* @param baseUrl - Optional API base URL (defaults to localhost:3015)
|
|
63
|
+
* @param kioskSecret - Optional kiosk authentication secret
|
|
64
|
+
* @param tenantCode - Optional tenant code for multi-tenant routing
|
|
65
|
+
*/
|
|
46
66
|
export declare const createAPIClient: (baseUrl?: string, kioskSecret?: string, tenantCode?: string) => APIClient;
|
|
47
67
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ChB,CAAC;AAIX;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAStE,OAAO,CAAC,wBAAwB;YAalB,OAAO;IAyCf,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAOrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAOpD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,EAAE,aAAa,MAAM,KAAG,SAK7F,CAAC"}
|
package/dist/api.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shared API Utilities
|
|
3
|
+
*
|
|
4
|
+
* API endpoints and HTTP client for communicating with backend
|
|
5
|
+
* Supports multi-tenant routing and authentication headers
|
|
6
|
+
*/
|
|
7
|
+
// ===== API Endpoints =====
|
|
2
8
|
export const API_ENDPOINTS = {
|
|
3
9
|
// Product endpoints
|
|
4
10
|
PRODUCTS: '/api/products',
|
|
@@ -38,6 +44,15 @@ export const API_ENDPOINTS = {
|
|
|
38
44
|
CHECK_TRANSACTIONS: '/api/check-new-transactions',
|
|
39
45
|
EVENTS: '/events/:kioskId'
|
|
40
46
|
};
|
|
47
|
+
// ===== API Client =====
|
|
48
|
+
/**
|
|
49
|
+
* Typed HTTP client for API communication
|
|
50
|
+
* Features:
|
|
51
|
+
* - Multi-tenant support (automatic path injection)
|
|
52
|
+
* - Kiosk secret authentication
|
|
53
|
+
* - Type-safe requests and responses
|
|
54
|
+
* - URL validation before requests
|
|
55
|
+
*/
|
|
41
56
|
export class APIClient {
|
|
42
57
|
baseUrl;
|
|
43
58
|
kioskSecret;
|
|
@@ -112,6 +127,12 @@ export class APIClient {
|
|
|
112
127
|
return this.request(endpoint, { method: 'DELETE' });
|
|
113
128
|
}
|
|
114
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Factory function to create API client
|
|
132
|
+
* @param baseUrl - Optional API base URL (defaults to localhost:3015)
|
|
133
|
+
* @param kioskSecret - Optional kiosk authentication secret
|
|
134
|
+
* @param tenantCode - Optional tenant code for multi-tenant routing
|
|
135
|
+
*/
|
|
115
136
|
export const createAPIClient = (baseUrl, kioskSecret, tenantCode) => {
|
|
116
137
|
// Fallback to default if not provided
|
|
117
138
|
const url = baseUrl || 'http://localhost:3015';
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Error Handling System
|
|
3
|
+
*
|
|
4
|
+
* Centralized error definitions and utilities for consistent
|
|
5
|
+
* error handling across all applications
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base application error with code and status code
|
|
9
|
+
*/
|
|
1
10
|
export declare class AppError extends Error {
|
|
2
11
|
readonly code: string;
|
|
3
12
|
readonly statusCode: number;
|
|
@@ -34,9 +43,16 @@ export interface ErrorResponse {
|
|
|
34
43
|
code: string;
|
|
35
44
|
message: string;
|
|
36
45
|
timestamp: string;
|
|
37
|
-
details?:
|
|
46
|
+
details?: unknown;
|
|
38
47
|
};
|
|
39
48
|
}
|
|
40
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Format error for consistent API responses
|
|
51
|
+
*/
|
|
52
|
+
export declare const formatError: (error: Error | AppError, details?: unknown) => ErrorResponse;
|
|
53
|
+
/**
|
|
54
|
+
* Get user-friendly error message from error object
|
|
55
|
+
* Used in React components to display to users
|
|
56
|
+
*/
|
|
41
57
|
export declare const getErrorMessage: (error: Error | AppError) => string;
|
|
42
58
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAGrC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAwB,EAC9B,UAAU,GAAE,MAAY,EACxB,aAAa,GAAE,OAAc;CAWhC;AAID,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAI7C;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,GAAE,MAAoC;CAI1D;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,GAAE,MAAsC;CAI5D;AAED,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,QAAQ,GAAE,MAAgB;CAIvC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,GAAE,MAAsC;CAI5D;AAED,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,OAAO,GAAE,MAAiC;CAIvD;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,OAAO,GAAE,MAAmC;CAIzD;AAED,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,OAAO,GAAE,MAAyB;CAI/C;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,GAAG,QAAQ,EAAE,UAAU,OAAO,KAAG,aAiBxE,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,GAAG,QAAQ,KAAG,MA4BzD,CAAC"}
|
package/dist/errors.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shared Error Handling System
|
|
3
|
+
*
|
|
4
|
+
* Centralized error definitions and utilities for consistent
|
|
5
|
+
* error handling across all applications
|
|
6
|
+
*/
|
|
7
|
+
// ===== Base Error Classes =====
|
|
8
|
+
/**
|
|
9
|
+
* Base application error with code and status code
|
|
10
|
+
*/
|
|
2
11
|
export class AppError extends Error {
|
|
3
12
|
code;
|
|
4
13
|
statusCode;
|
|
@@ -13,7 +22,7 @@ export class AppError extends Error {
|
|
|
13
22
|
Error.captureStackTrace(this, this.constructor);
|
|
14
23
|
}
|
|
15
24
|
}
|
|
16
|
-
// Predefined
|
|
25
|
+
// ===== Predefined Error Types =====
|
|
17
26
|
export class ValidationError extends AppError {
|
|
18
27
|
constructor(message, _field) {
|
|
19
28
|
super(message, 'VALIDATION_ERROR', 400);
|
|
@@ -62,19 +71,29 @@ export class DatabaseError extends AppError {
|
|
|
62
71
|
this.name = 'DatabaseError';
|
|
63
72
|
}
|
|
64
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Format error for consistent API responses
|
|
76
|
+
*/
|
|
65
77
|
export const formatError = (error, details) => {
|
|
66
78
|
const isAppError = error instanceof AppError;
|
|
79
|
+
const errorObj = {
|
|
80
|
+
code: isAppError ? error.code : 'UNKNOWN_ERROR',
|
|
81
|
+
message: error.message || 'Došlo k neočekávané chybě',
|
|
82
|
+
timestamp: new Date().toISOString(),
|
|
83
|
+
};
|
|
84
|
+
if (details) {
|
|
85
|
+
errorObj.details = details;
|
|
86
|
+
}
|
|
67
87
|
return {
|
|
68
88
|
success: false,
|
|
69
|
-
error:
|
|
70
|
-
code: isAppError ? error.code : 'UNKNOWN_ERROR',
|
|
71
|
-
message: error.message || 'Došlo k neočekávané chybě',
|
|
72
|
-
timestamp: new Date().toISOString(),
|
|
73
|
-
...(details && { details })
|
|
74
|
-
}
|
|
89
|
+
error: errorObj
|
|
75
90
|
};
|
|
76
91
|
};
|
|
77
|
-
// Error
|
|
92
|
+
// ===== Error Messaging (Client-side) =====
|
|
93
|
+
/**
|
|
94
|
+
* Get user-friendly error message from error object
|
|
95
|
+
* Used in React components to display to users
|
|
96
|
+
*/
|
|
78
97
|
export const getErrorMessage = (error) => {
|
|
79
98
|
if (error instanceof NetworkError) {
|
|
80
99
|
return 'Problém s připojením. Zkuste to znovu.';
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Health Check Hook
|
|
3
|
+
*
|
|
4
|
+
* Polls backend health endpoint to determine database availability
|
|
5
|
+
* Features:
|
|
6
|
+
* - Exponential backoff on failures
|
|
7
|
+
* - Configurable poll intervals (defaults to 60s = 1 request/min)
|
|
8
|
+
* - Automatic retry with configurable max retries
|
|
9
|
+
* - Runtime config support for API URL detection
|
|
10
|
+
*/
|
|
1
11
|
interface UseDatabaseHealthOptions {
|
|
2
|
-
healthEndpoint?: string;
|
|
3
12
|
pollInterval?: number;
|
|
4
13
|
maxRetries?: number;
|
|
5
14
|
retryDelay?: number;
|
|
@@ -13,10 +22,6 @@ interface UseDatabaseHealthReturn {
|
|
|
13
22
|
error: Error | null;
|
|
14
23
|
checkHealth: () => Promise<void>;
|
|
15
24
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Hook to monitor database health via backend health endpoint
|
|
18
|
-
* Implements exponential backoff retry logic
|
|
19
|
-
*/
|
|
20
25
|
export declare function useDatabaseHealth(options?: UseDatabaseHealthOptions): UseDatabaseHealthReturn;
|
|
21
26
|
export {};
|
|
22
27
|
//# sourceMappingURL=useDatabaseHealth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatabaseHealth.d.ts","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDatabaseHealth.d.ts","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,UAAU,wBAAwB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CA6HzB"}
|
|
@@ -1,22 +1,37 @@
|
|
|
1
|
-
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Database Health Check Hook
|
|
3
|
+
*
|
|
4
|
+
* Polls backend health endpoint to determine database availability
|
|
5
|
+
* Features:
|
|
6
|
+
* - Exponential backoff on failures
|
|
7
|
+
* - Configurable poll intervals (defaults to 60s = 1 request/min)
|
|
8
|
+
* - Automatic retry with configurable max retries
|
|
9
|
+
* - Runtime config support for API URL detection
|
|
5
10
|
*/
|
|
11
|
+
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
6
12
|
export function useDatabaseHealth(options = {}) {
|
|
7
|
-
const {
|
|
8
|
-
|
|
9
|
-
enabled = true, } = options;
|
|
10
|
-
const [isDatabaseAvailable, setIsDatabaseAvailable] = useState(true); // Default to true initially
|
|
13
|
+
const { pollInterval = 60000, maxRetries = 5, retryDelay = 1000, enabled = true, } = options;
|
|
14
|
+
const [isDatabaseAvailable, setIsDatabaseAvailable] = useState(true);
|
|
11
15
|
const [isChecking, setIsChecking] = useState(false);
|
|
12
16
|
const [retryCount, setRetryCount] = useState(0);
|
|
13
17
|
const [nextRetryDelay, setNextRetryDelay] = useState(0);
|
|
14
18
|
const [error, setError] = useState(null);
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
const [healthEndpoint, setHealthEndpoint] = useState('http://localhost:3015/health');
|
|
20
|
+
// Initialize health endpoint URL from runtime config
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (typeof window !== 'undefined') {
|
|
23
|
+
const windowConfig = window.__RUNTIME_CONFIG__;
|
|
24
|
+
const apiUrl = windowConfig?.apiUrl;
|
|
25
|
+
if (apiUrl) {
|
|
26
|
+
setHealthEndpoint(`${apiUrl}/health`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}, []);
|
|
30
|
+
const retryCountRef = useRef(0);
|
|
18
31
|
const backoffMultiplierRef = useRef(2);
|
|
19
32
|
const currentDelayRef = useRef(retryDelay);
|
|
33
|
+
const pollTimeoutRef = useRef(null);
|
|
34
|
+
const retryTimeoutRef = useRef(null);
|
|
20
35
|
const checkHealth = useCallback(async () => {
|
|
21
36
|
if (!enabled)
|
|
22
37
|
return;
|
|
@@ -25,80 +40,45 @@ export function useDatabaseHealth(options = {}) {
|
|
|
25
40
|
try {
|
|
26
41
|
const response = await fetch(healthEndpoint, {
|
|
27
42
|
method: 'GET',
|
|
28
|
-
headers: {
|
|
29
|
-
'Content-Type': 'application/json',
|
|
30
|
-
},
|
|
31
|
-
// Add cache-busting to prevent stale responses
|
|
43
|
+
headers: { 'Content-Type': 'application/json' },
|
|
32
44
|
cache: 'no-cache',
|
|
33
45
|
});
|
|
34
46
|
if (!response.ok) {
|
|
35
47
|
throw new Error(`Health check failed: ${response.status} ${response.statusText}`);
|
|
36
48
|
}
|
|
49
|
+
const contentType = response.headers.get('content-type');
|
|
50
|
+
if (!contentType?.includes('application/json')) {
|
|
51
|
+
throw new Error(`Invalid response: expected JSON, got ${contentType}`);
|
|
52
|
+
}
|
|
37
53
|
const data = (await response.json());
|
|
38
|
-
|
|
39
|
-
console.log('[DatabaseHealth] Health check response:', { success: data.success, status: data.status, services: data.services });
|
|
40
|
-
// Check if database service is healthy
|
|
41
|
-
// The health endpoint returns success: true when healthy
|
|
42
|
-
const isDbHealthy = data.success === true;
|
|
43
|
-
if (isDbHealthy) {
|
|
44
|
-
// Database is available - reset retry state
|
|
54
|
+
if (data.success === true) {
|
|
45
55
|
setIsDatabaseAvailable(true);
|
|
46
56
|
setRetryCount(0);
|
|
47
57
|
setNextRetryDelay(0);
|
|
48
|
-
|
|
58
|
+
retryCountRef.current = 0;
|
|
49
59
|
currentDelayRef.current = retryDelay;
|
|
50
60
|
backoffMultiplierRef.current = 2;
|
|
51
61
|
}
|
|
52
62
|
else {
|
|
53
|
-
|
|
54
|
-
setIsDatabaseAvailable(false);
|
|
55
|
-
// Increment retry count
|
|
56
|
-
const newRetryCount = currentRetryCountRef.current + 1;
|
|
57
|
-
currentRetryCountRef.current = newRetryCount;
|
|
58
|
-
setRetryCount(newRetryCount);
|
|
59
|
-
if (newRetryCount < maxRetries) {
|
|
60
|
-
// Calculate next delay with exponential backoff
|
|
61
|
-
const nextDelay = Math.min(currentDelayRef.current * backoffMultiplierRef.current, retryDelay * 30 // Cap at 30x initial delay
|
|
62
|
-
);
|
|
63
|
-
currentDelayRef.current = nextDelay;
|
|
64
|
-
setNextRetryDelay(nextDelay);
|
|
65
|
-
// Schedule next retry
|
|
66
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
67
|
-
void checkHealth();
|
|
68
|
-
}, nextDelay);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
// Max retries reached - continue polling at regular interval
|
|
72
|
-
setNextRetryDelay(pollInterval);
|
|
73
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
74
|
-
void checkHealth();
|
|
75
|
-
}, pollInterval);
|
|
76
|
-
}
|
|
63
|
+
throw new Error('Database reported unhealthy status');
|
|
77
64
|
}
|
|
78
65
|
}
|
|
79
66
|
catch (err) {
|
|
80
|
-
|
|
81
|
-
const error = err instanceof Error ? err : new Error('Failed to check database health');
|
|
82
|
-
console.error('[DatabaseHealth] Health check error:', error);
|
|
67
|
+
const error = err instanceof Error ? err : new Error('Health check failed');
|
|
83
68
|
setError(error);
|
|
84
69
|
setIsDatabaseAvailable(false);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
currentRetryCountRef.current = newRetryCount;
|
|
70
|
+
const newRetryCount = retryCountRef.current + 1;
|
|
71
|
+
retryCountRef.current = newRetryCount;
|
|
88
72
|
setRetryCount(newRetryCount);
|
|
89
73
|
if (newRetryCount < maxRetries) {
|
|
90
|
-
|
|
91
|
-
const nextDelay = Math.min(currentDelayRef.current * backoffMultiplierRef.current, retryDelay * 30 // Cap at 30x initial delay
|
|
92
|
-
);
|
|
74
|
+
const nextDelay = Math.min(currentDelayRef.current * backoffMultiplierRef.current, retryDelay * 30);
|
|
93
75
|
currentDelayRef.current = nextDelay;
|
|
94
76
|
setNextRetryDelay(nextDelay);
|
|
95
|
-
// Schedule next retry
|
|
96
77
|
retryTimeoutRef.current = setTimeout(() => {
|
|
97
78
|
void checkHealth();
|
|
98
79
|
}, nextDelay);
|
|
99
80
|
}
|
|
100
81
|
else {
|
|
101
|
-
// Max retries reached - continue polling at regular interval
|
|
102
82
|
setNextRetryDelay(pollInterval);
|
|
103
83
|
retryTimeoutRef.current = setTimeout(() => {
|
|
104
84
|
void checkHealth();
|
|
@@ -109,34 +89,28 @@ export function useDatabaseHealth(options = {}) {
|
|
|
109
89
|
setIsChecking(false);
|
|
110
90
|
}
|
|
111
91
|
}, [enabled, healthEndpoint, maxRetries, retryDelay, pollInterval]);
|
|
112
|
-
// Initial health check and polling
|
|
113
92
|
useEffect(() => {
|
|
114
93
|
if (!enabled)
|
|
115
94
|
return;
|
|
116
95
|
// Initial check
|
|
117
96
|
void checkHealth();
|
|
118
|
-
//
|
|
97
|
+
// Polling
|
|
119
98
|
const startPolling = () => {
|
|
120
|
-
if (pollTimeoutRef.current)
|
|
99
|
+
if (pollTimeoutRef.current)
|
|
121
100
|
clearTimeout(pollTimeoutRef.current);
|
|
122
|
-
}
|
|
123
101
|
pollTimeoutRef.current = setTimeout(() => {
|
|
124
|
-
|
|
125
|
-
void checkHealth();
|
|
126
|
-
}
|
|
102
|
+
void checkHealth();
|
|
127
103
|
startPolling();
|
|
128
104
|
}, pollInterval);
|
|
129
105
|
};
|
|
130
106
|
startPolling();
|
|
131
107
|
return () => {
|
|
132
|
-
if (pollTimeoutRef.current)
|
|
108
|
+
if (pollTimeoutRef.current)
|
|
133
109
|
clearTimeout(pollTimeoutRef.current);
|
|
134
|
-
|
|
135
|
-
if (retryTimeoutRef.current) {
|
|
110
|
+
if (retryTimeoutRef.current)
|
|
136
111
|
clearTimeout(retryTimeoutRef.current);
|
|
137
|
-
}
|
|
138
112
|
};
|
|
139
|
-
}, [enabled, checkHealth,
|
|
113
|
+
}, [enabled, checkHealth, pollInterval]);
|
|
140
114
|
return {
|
|
141
115
|
isDatabaseAvailable,
|
|
142
116
|
isChecking,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatabaseHealth.js","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useDatabaseHealth.js","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Pi Kiosk Shared Package
|
|
3
|
+
*
|
|
4
|
+
* Exports shared types, API contracts, error classes, and utilities
|
|
5
|
+
* for use across kiosk, admin, and backend applications.
|
|
6
|
+
*/
|
|
3
7
|
export * from './types';
|
|
4
8
|
export * from './api';
|
|
5
9
|
export * from './errors';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shared Types
|
|
3
|
+
*
|
|
4
|
+
* Database models, API contracts, and type definitions
|
|
5
|
+
* used across kiosk, admin, and backend applications.
|
|
6
|
+
*/
|
|
7
|
+
// ===== Transaction & Receipt Status Enums =====
|
|
3
8
|
export var TransactionStatus;
|
|
4
9
|
(function (TransactionStatus) {
|
|
5
10
|
TransactionStatus["INITIATED"] = "INITIATED";
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AAEjD,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;AACrB,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B;AAED,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
|