pi-kiosk-shared 2.1.4 → 2.1.7

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 (60) hide show
  1. package/README.md +80 -85
  2. package/dist/api.d.ts +5 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +36 -6
  5. package/dist/api.js.map +1 -1
  6. package/dist/index.d.ts +0 -10
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -11
  9. package/dist/index.js.map +1 -1
  10. package/dist/types.d.ts +11 -7
  11. package/dist/types.d.ts.map +1 -1
  12. package/package.json +7 -9
  13. package/dist/components/ErrorDisplay.d.ts +0 -13
  14. package/dist/components/ErrorDisplay.d.ts.map +0 -1
  15. package/dist/components/ErrorDisplay.js +0 -9
  16. package/dist/components/ErrorDisplay.js.map +0 -1
  17. package/dist/components/LoadingSpinner.d.ts +0 -9
  18. package/dist/components/LoadingSpinner.d.ts.map +0 -1
  19. package/dist/components/LoadingSpinner.js +0 -11
  20. package/dist/components/LoadingSpinner.js.map +0 -1
  21. package/dist/config/deployment.d.ts +0 -97
  22. package/dist/config/deployment.d.ts.map +0 -1
  23. package/dist/config/deployment.js +0 -154
  24. package/dist/config/deployment.js.map +0 -1
  25. package/dist/config/environments.d.ts +0 -42
  26. package/dist/config/environments.d.ts.map +0 -1
  27. package/dist/config/environments.js +0 -191
  28. package/dist/config/environments.js.map +0 -1
  29. package/dist/config/environments.test.d.ts +0 -1
  30. package/dist/config/environments.test.js +0 -49
  31. package/dist/config/logger.d.ts +0 -41
  32. package/dist/config/logger.d.ts.map +0 -1
  33. package/dist/config/logger.js +0 -119
  34. package/dist/config/logger.js.map +0 -1
  35. package/dist/constants.d.ts +0 -91
  36. package/dist/constants.d.ts.map +0 -1
  37. package/dist/constants.js +0 -113
  38. package/dist/constants.js.map +0 -1
  39. package/dist/hooks/useApi.d.ts +0 -21
  40. package/dist/hooks/useApi.d.ts.map +0 -1
  41. package/dist/hooks/useApi.js +0 -52
  42. package/dist/hooks/useApi.js.map +0 -1
  43. package/dist/hooks/useAsyncOperation.d.ts +0 -22
  44. package/dist/hooks/useAsyncOperation.d.ts.map +0 -1
  45. package/dist/hooks/useAsyncOperation.js +0 -59
  46. package/dist/hooks/useAsyncOperation.js.map +0 -1
  47. package/dist/hooks/useErrorHandler.d.ts +0 -15
  48. package/dist/hooks/useErrorHandler.d.ts.map +0 -1
  49. package/dist/hooks/useErrorHandler.js +0 -55
  50. package/dist/hooks/useErrorHandler.js.map +0 -1
  51. package/dist/utils/simple.test.d.ts +0 -1
  52. package/dist/utils/simple.test.js +0 -45
  53. package/dist/utils.d.ts +0 -24
  54. package/dist/utils.d.ts.map +0 -1
  55. package/dist/utils.js +0 -159
  56. package/dist/utils.js.map +0 -1
  57. package/dist/validation.d.ts +0 -46
  58. package/dist/validation.d.ts.map +0 -1
  59. package/dist/validation.js +0 -173
  60. package/dist/validation.js.map +0 -1
@@ -1,154 +0,0 @@
1
- // Deployment configuration for different modes and platforms
2
- export const deploymentConfig = {
3
- railway: {
4
- testService: 'kiosk-test',
5
- stagingService: 'kiosk-staging',
6
- productionService: 'kiosk-production'
7
- },
8
- environmentVariables: {
9
- test: {
10
- 'NODE_ENV': 'test',
11
- 'REACT_APP_ENVIRONMENT': 'test',
12
- 'REACT_APP_API_URL': 'https://kiosk-test.railway.app',
13
- 'REACT_APP_WS_URL': 'wss://kiosk-test.railway.app',
14
- 'REACT_APP_PAYMENT_MODE': 'mock',
15
- 'REACT_APP_ENABLE_MOCK_PAYMENTS': 'true',
16
- 'REACT_APP_SHOW_DEBUG_INFO': 'true',
17
- 'REACT_APP_LOG_LEVEL': 'debug'
18
- },
19
- staging: {
20
- 'NODE_ENV': 'production',
21
- 'REACT_APP_ENVIRONMENT': 'staging',
22
- 'REACT_APP_API_URL': 'https://kiosk-staging.railway.app',
23
- 'REACT_APP_WS_URL': 'wss://kiosk-staging.railway.app',
24
- 'REACT_APP_PAYMENT_MODE': 'sandbox',
25
- 'REACT_APP_ENABLE_MOCK_PAYMENTS': 'false',
26
- 'REACT_APP_SHOW_DEBUG_INFO': 'false',
27
- 'REACT_APP_LOG_LEVEL': 'info',
28
- 'REACT_APP_ENABLE_ERROR_REPORTING': 'true'
29
- },
30
- production: {
31
- 'NODE_ENV': 'production',
32
- 'REACT_APP_ENVIRONMENT': 'production',
33
- 'REACT_APP_API_URL': 'https://rpapp-bckend-production.up.railway.app',
34
- 'REACT_APP_WS_URL': 'wss://rpapp-bckend-production.up.railway.app',
35
- 'REACT_APP_PAYMENT_MODE': 'production',
36
- 'REACT_APP_ENABLE_MOCK_PAYMENTS': 'false',
37
- 'REACT_APP_SHOW_DEBUG_INFO': 'false',
38
- 'REACT_APP_LOG_LEVEL': 'warn',
39
- 'REACT_APP_ENABLE_ERROR_REPORTING': 'true'
40
- }
41
- },
42
- database: {
43
- test: 'postgresql://test_user:test_pass@localhost:5432/kiosk_test',
44
- staging: '${DATABASE_URL}', // Railway provides this
45
- production: '${DATABASE_URL}' // Railway provides this
46
- }
47
- };
48
- // Railway deployment configuration files
49
- export const railwayConfigs = {
50
- test: {
51
- build: {
52
- builder: 'NIXPACKS'
53
- },
54
- deploy: {
55
- healthcheckPath: '/health',
56
- healthcheckTimeout: 300,
57
- restartPolicyType: 'ON_FAILURE'
58
- },
59
- services: [
60
- {
61
- name: 'kiosk-backend-test',
62
- source: './packages/backend',
63
- env: {
64
- ...deploymentConfig.environmentVariables.test,
65
- PORT: '3000',
66
- FIO_API_MODE: 'test'
67
- }
68
- },
69
- {
70
- name: 'kiosk-frontend-test',
71
- source: './packages/kiosk-app',
72
- buildCommand: 'npm run build',
73
- startCommand: 'npx serve -s dist -l 5173',
74
- env: deploymentConfig.environmentVariables.test
75
- },
76
- {
77
- name: 'admin-frontend-test',
78
- source: './packages/admin-app',
79
- buildCommand: 'npm run build',
80
- startCommand: 'npx serve -s dist -l 5174',
81
- env: deploymentConfig.environmentVariables.test
82
- }
83
- ]
84
- },
85
- staging: {
86
- build: {
87
- builder: 'NIXPACKS'
88
- },
89
- deploy: {
90
- healthcheckPath: '/health',
91
- healthcheckTimeout: 300,
92
- restartPolicyType: 'ON_FAILURE'
93
- },
94
- services: [
95
- {
96
- name: 'kiosk-backend-staging',
97
- source: './packages/backend',
98
- env: {
99
- ...deploymentConfig.environmentVariables.staging,
100
- PORT: '3000'
101
- }
102
- },
103
- {
104
- name: 'kiosk-frontend-staging',
105
- source: './packages/kiosk-app',
106
- buildCommand: 'npm run build',
107
- startCommand: 'npx serve -s dist -l 5173',
108
- env: deploymentConfig.environmentVariables.staging
109
- },
110
- {
111
- name: 'admin-frontend-staging',
112
- source: './packages/admin-app',
113
- buildCommand: 'npm run build',
114
- startCommand: 'npx serve -s dist -l 5174',
115
- env: deploymentConfig.environmentVariables.staging
116
- }
117
- ]
118
- },
119
- production: {
120
- build: {
121
- builder: 'NIXPACKS'
122
- },
123
- deploy: {
124
- healthcheckPath: '/health',
125
- healthcheckTimeout: 300,
126
- restartPolicyType: 'ON_FAILURE'
127
- },
128
- services: [
129
- {
130
- name: 'kiosk-backend-prod',
131
- source: './packages/backend',
132
- env: {
133
- ...deploymentConfig.environmentVariables.production,
134
- PORT: '3015'
135
- }
136
- },
137
- {
138
- name: 'kiosk-frontend-prod',
139
- source: './packages/kiosk-app',
140
- buildCommand: 'npm run build',
141
- startCommand: 'npx serve -s dist -l 5173',
142
- env: deploymentConfig.environmentVariables.production
143
- },
144
- {
145
- name: 'admin-frontend-prod',
146
- source: './packages/admin-app',
147
- buildCommand: 'npm run build',
148
- startCommand: 'npx serve -s dist -l 5174',
149
- env: deploymentConfig.environmentVariables.production
150
- }
151
- ]
152
- }
153
- };
154
- //# sourceMappingURL=deployment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/config/deployment.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- export type Environment = 'development' | 'production';
2
- export interface EnvironmentConfig {
3
- apiUrl: string;
4
- wsUrl: string;
5
- enableMockPayments: boolean;
6
- paymentAccountNumber: string;
7
- paymentMode: 'mock' | 'sandbox' | 'production';
8
- showDebugInfo: boolean;
9
- logLevel: 'debug' | 'info' | 'warn' | 'error';
10
- kioskUrl: string;
11
- adminUrl: string;
12
- backendUrl: string;
13
- sseHealthCheckInitialInterval: number;
14
- sseHealthCheckBackoffMultiplier: number;
15
- sseHealthCheckMaxInterval: number;
16
- sseHealthCheckMaxAttempts: number;
17
- sseHealthCheckMaxTotalTime: number;
18
- }
19
- declare global {
20
- interface Window {
21
- __RUNTIME_CONFIG__?: Partial<EnvironmentConfig>;
22
- }
23
- }
24
- export declare const getCurrentEnvironment: () => Environment;
25
- export declare const getEnvironmentConfig: () => EnvironmentConfig;
26
- export declare const isDevelopment: () => boolean;
27
- export declare const isProduction: () => boolean;
28
- export declare const getBackendUrl: () => string;
29
- export declare const getKioskUrl: () => string;
30
- export declare const getAdminUrl: () => string;
31
- export declare const getApiUrl: () => string;
32
- export declare const getWsUrl: () => string;
33
- export declare const getPaymentConfig: () => {
34
- enableMockPayments: boolean;
35
- paymentAccountNumber: string;
36
- paymentMode: "production" | "mock" | "sandbox";
37
- };
38
- export declare const getUIConfig: () => {
39
- showDebugInfo: boolean;
40
- logLevel: "debug" | "info" | "warn" | "error";
41
- };
42
- //# sourceMappingURL=environments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/config/environments.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAEhC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAGd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IAG/C,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAG9C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAGnB,6BAA6B,EAAE,MAAM,CAAC;IACtC,+BAA+B,EAAE,MAAM,CAAC;IACxC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;KACjD;CACF;AA+HD,eAAO,MAAM,qBAAqB,QAAO,WA4CxC,CAAC;AAGF,eAAO,MAAM,oBAAoB,QAAO,iBAavC,CAAC;AAGF,eAAO,MAAM,aAAa,eAAkD,CAAC;AAC7E,eAAO,MAAM,YAAY,eAAiD,CAAC;AAG3E,eAAO,MAAM,aAAa,cAA0C,CAAC;AACrE,eAAO,MAAM,WAAW,cAAwC,CAAC;AACjE,eAAO,MAAM,WAAW,cAAwC,CAAC;AACjE,eAAO,MAAM,SAAS,cAAsC,CAAC;AAC7D,eAAO,MAAM,QAAQ,cAAqC,CAAC;AAG3D,eAAO,MAAM,gBAAgB;;;;CAO5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;CAMvB,CAAC"}
@@ -1,191 +0,0 @@
1
- // Centralized environment configuration for all services
2
- // This ensures consistency across backend, kiosk, and admin apps
3
- // Simplified environment variable helper
4
- function getEnvVar(key, defaultValue) {
5
- // Check for process.env (Node.js environment)
6
- if (typeof process !== 'undefined' && process.env) {
7
- return process.env[key] || defaultValue;
8
- }
9
- // Check for import.meta.env (Vite environment)
10
- if (typeof window !== 'undefined') {
11
- try {
12
- // @ts-ignore - Vite environment
13
- const meta = globalThis.import?.meta;
14
- if (meta && meta.env) {
15
- return meta.env[key] || defaultValue;
16
- }
17
- }
18
- catch (e) {
19
- // Fallback for test environments
20
- }
21
- }
22
- return defaultValue;
23
- }
24
- function getEnvBool(key, defaultValue) {
25
- const value = getEnvVar(key, defaultValue.toString());
26
- return value === 'true';
27
- }
28
- function getEnvNumber(key, defaultValue) {
29
- const value = getEnvVar(key, defaultValue.toString());
30
- const parsed = parseInt(value, 10);
31
- return isNaN(parsed) ? defaultValue : parsed;
32
- }
33
- // Centralized service URLs configuration
34
- const SERVICE_URLS = {
35
- development: {
36
- backend: 'http://localhost:3015',
37
- kiosk: 'http://localhost:3000',
38
- admin: 'http://localhost:3001',
39
- },
40
- production: {
41
- backend: 'https://rpapp-bckend-production.up.railway.app',
42
- kiosk: 'https://rpapp-kiosk-production.up.railway.app',
43
- admin: 'https://extraordinary-healing-production-88f4.up.railway.app',
44
- }
45
- };
46
- function getRuntimeConfigOverride() {
47
- if (typeof globalThis === 'undefined') {
48
- return undefined;
49
- }
50
- const maybeWindow = globalThis;
51
- const runtimeConfig = maybeWindow.__RUNTIME_CONFIG__;
52
- if (!runtimeConfig || typeof runtimeConfig !== 'object') {
53
- return undefined;
54
- }
55
- return runtimeConfig;
56
- }
57
- // Get environment configuration dynamically
58
- function getConfigForEnvironment(env) {
59
- const urls = SERVICE_URLS[env];
60
- if (env === 'development') {
61
- return {
62
- // API Configuration
63
- apiUrl: getEnvVar('REACT_APP_API_URL', urls.backend),
64
- wsUrl: getEnvVar('REACT_APP_WS_URL', urls.backend.replace('http', 'ws')),
65
- // Payment Configuration
66
- enableMockPayments: getEnvBool('REACT_APP_ENABLE_MOCK_PAYMENTS', true),
67
- paymentAccountNumber: getEnvVar('REACT_APP_PAYMENT_ACCOUNT', '1234567890'),
68
- paymentMode: getEnvVar('REACT_APP_PAYMENT_MODE', 'mock'),
69
- // UI Configuration
70
- showDebugInfo: getEnvBool('REACT_APP_SHOW_DEBUG_INFO', true),
71
- logLevel: getEnvVar('REACT_APP_LOG_LEVEL', 'debug'),
72
- // Service URLs
73
- kioskUrl: getEnvVar('REACT_APP_KIOSK_URL', urls.kiosk),
74
- adminUrl: getEnvVar('REACT_APP_ADMIN_URL', urls.admin),
75
- backendUrl: getEnvVar('REACT_APP_BACKEND_URL', urls.backend),
76
- // SSE Health Check Configuration
77
- sseHealthCheckInitialInterval: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_INITIAL_INTERVAL', 300000), // 5 minutes
78
- sseHealthCheckBackoffMultiplier: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_BACKOFF_MULTIPLIER', 2),
79
- sseHealthCheckMaxInterval: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_INTERVAL', 900000), // 15 minutes
80
- sseHealthCheckMaxAttempts: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_ATTEMPTS', 8),
81
- sseHealthCheckMaxTotalTime: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_TOTAL_TIME', 1800000), // 30 minutes
82
- };
83
- }
84
- else {
85
- return {
86
- // API Configuration
87
- apiUrl: getEnvVar('REACT_APP_API_URL', urls.backend),
88
- wsUrl: getEnvVar('REACT_APP_WS_URL', urls.backend.replace('https', 'wss')),
89
- // Payment Configuration
90
- enableMockPayments: getEnvBool('REACT_APP_ENABLE_MOCK_PAYMENTS', false),
91
- paymentAccountNumber: getEnvVar('REACT_APP_PAYMENT_ACCOUNT', '1234567890'),
92
- paymentMode: getEnvVar('REACT_APP_PAYMENT_MODE', 'production'),
93
- // UI Configuration
94
- showDebugInfo: getEnvBool('REACT_APP_SHOW_DEBUG_INFO', false),
95
- logLevel: getEnvVar('REACT_APP_LOG_LEVEL', 'warn'),
96
- // Service URLs
97
- kioskUrl: getEnvVar('REACT_APP_KIOSK_URL', urls.kiosk),
98
- adminUrl: getEnvVar('REACT_APP_ADMIN_URL', urls.admin),
99
- backendUrl: getEnvVar('REACT_APP_BACKEND_URL', urls.backend),
100
- // SSE Health Check Configuration
101
- sseHealthCheckInitialInterval: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_INITIAL_INTERVAL', 300000), // 5 minutes
102
- sseHealthCheckBackoffMultiplier: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_BACKOFF_MULTIPLIER', 2),
103
- sseHealthCheckMaxInterval: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_INTERVAL', 900000), // 15 minutes
104
- sseHealthCheckMaxAttempts: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_ATTEMPTS', 8),
105
- sseHealthCheckMaxTotalTime: getEnvNumber('REACT_APP_SSE_HEALTH_CHECK_MAX_TOTAL_TIME', 1800000), // 30 minutes
106
- };
107
- }
108
- }
109
- // Simplified environment detection
110
- export const getCurrentEnvironment = () => {
111
- // Check for process.env (Node.js environment)
112
- if (typeof process !== 'undefined' && process.env) {
113
- return process.env.NODE_ENV === 'production' ? 'production' : 'development';
114
- }
115
- // Check if we're on Railway domain (most reliable for production detection)
116
- if (typeof window !== 'undefined' && window.location) {
117
- if (window.location.hostname.includes('railway.app') ||
118
- window.location.hostname.includes('up.railway.app')) {
119
- return 'production';
120
- }
121
- }
122
- // Check for import.meta.env (Vite environment)
123
- if (typeof window !== 'undefined') {
124
- try {
125
- // @ts-ignore - Vite environment
126
- const meta = globalThis.import?.meta;
127
- if (meta && meta.env) {
128
- return meta.env.MODE === 'production' ? 'production' : 'development';
129
- }
130
- }
131
- catch (e) {
132
- // Ignore errors
133
- }
134
- }
135
- // Additional fallback: check for production URLs in environment variables
136
- if (typeof window !== 'undefined') {
137
- try {
138
- // @ts-ignore - Vite environment
139
- const meta = globalThis.import?.meta;
140
- if (meta && meta.env) {
141
- const apiUrl = meta.env.VITE_API_URL || meta.env.REACT_APP_API_URL;
142
- if (apiUrl && apiUrl.includes('railway.app')) {
143
- return 'production';
144
- }
145
- }
146
- }
147
- catch (e) {
148
- // Ignore errors
149
- }
150
- }
151
- return 'development';
152
- };
153
- // Get current environment configuration
154
- export const getEnvironmentConfig = () => {
155
- const env = getCurrentEnvironment();
156
- const baseConfig = getConfigForEnvironment(env);
157
- const runtimeOverride = getRuntimeConfigOverride();
158
- if (!runtimeOverride) {
159
- return baseConfig;
160
- }
161
- return {
162
- ...baseConfig,
163
- ...runtimeOverride,
164
- };
165
- };
166
- // Simple environment checks
167
- export const isDevelopment = () => getCurrentEnvironment() === 'development';
168
- export const isProduction = () => getCurrentEnvironment() === 'production';
169
- // Utility functions for easy access to service URLs
170
- export const getBackendUrl = () => getEnvironmentConfig().backendUrl;
171
- export const getKioskUrl = () => getEnvironmentConfig().kioskUrl;
172
- export const getAdminUrl = () => getEnvironmentConfig().adminUrl;
173
- export const getApiUrl = () => getEnvironmentConfig().apiUrl;
174
- export const getWsUrl = () => getEnvironmentConfig().wsUrl;
175
- // Service-specific configuration helpers
176
- export const getPaymentConfig = () => {
177
- const config = getEnvironmentConfig();
178
- return {
179
- enableMockPayments: config.enableMockPayments,
180
- paymentAccountNumber: config.paymentAccountNumber,
181
- paymentMode: config.paymentMode,
182
- };
183
- };
184
- export const getUIConfig = () => {
185
- const config = getEnvironmentConfig();
186
- return {
187
- showDebugInfo: config.showDebugInfo,
188
- logLevel: config.logLevel,
189
- };
190
- };
191
- //# sourceMappingURL=environments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/config/environments.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
1
- // Tests for environment configuration
2
- import { getCurrentEnvironment, getEnvironmentConfig, isDevelopment, isProduction } from './environments';
3
- describe('Environment Configuration', () => {
4
- const originalEnv = process.env.NODE_ENV;
5
- afterEach(() => {
6
- process.env.NODE_ENV = originalEnv;
7
- });
8
- describe('getCurrentEnvironment', () => {
9
- test('returns development for non-production environments', () => {
10
- process.env.NODE_ENV = 'development';
11
- expect(getCurrentEnvironment()).toBe('development');
12
- process.env.NODE_ENV = 'test';
13
- expect(getCurrentEnvironment()).toBe('development');
14
- delete process.env.NODE_ENV;
15
- expect(getCurrentEnvironment()).toBe('development');
16
- });
17
- test('returns production for production environment', () => {
18
- process.env.NODE_ENV = 'production';
19
- expect(getCurrentEnvironment()).toBe('production');
20
- });
21
- });
22
- describe('getEnvironmentConfig', () => {
23
- test('returns development config by default', () => {
24
- process.env.NODE_ENV = 'development';
25
- const config = getEnvironmentConfig();
26
- expect(config.apiUrl).toBe('http://localhost:3015');
27
- expect(config.enableMockPayments).toBe(true);
28
- expect(config.showDebugInfo).toBe(true);
29
- });
30
- test('returns production config for production', () => {
31
- process.env.NODE_ENV = 'production';
32
- const config = getEnvironmentConfig();
33
- expect(config.enableMockPayments).toBe(false);
34
- expect(config.showDebugInfo).toBe(false);
35
- });
36
- });
37
- describe('environment checks', () => {
38
- test('isDevelopment works correctly', () => {
39
- process.env.NODE_ENV = 'development';
40
- expect(isDevelopment()).toBe(true);
41
- expect(isProduction()).toBe(false);
42
- });
43
- test('isProduction works correctly', () => {
44
- process.env.NODE_ENV = 'production';
45
- expect(isDevelopment()).toBe(false);
46
- expect(isProduction()).toBe(true);
47
- });
48
- });
49
- });
@@ -1,41 +0,0 @@
1
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
- export interface LogEntry {
3
- level: LogLevel;
4
- message: string;
5
- context?: string;
6
- data?: any;
7
- timestamp: string;
8
- environment: string;
9
- sessionId: string;
10
- }
11
- declare class Logger {
12
- private sessionId;
13
- private config;
14
- constructor();
15
- private shouldLog;
16
- private formatMessage;
17
- private log;
18
- private sendToExternalService;
19
- private storeLogEntry;
20
- debug(message: string, context?: string, data?: any): void;
21
- info(message: string, context?: string, data?: any): void;
22
- warn(message: string, context?: string, data?: any): void;
23
- error(message: string, context?: string, data?: any): void;
24
- kioskAction(action: string, kioskId: number, data?: any): void;
25
- paymentEvent(event: string, paymentId: string, data?: any): void;
26
- apiCall(method: string, endpoint: string, duration?: number, error?: Error): void;
27
- getLogs(): LogEntry[];
28
- clearLogs(): void;
29
- }
30
- export declare const logger: Logger;
31
- export declare const log: {
32
- debug: (message: string, context?: string, data?: any) => void;
33
- info: (message: string, context?: string, data?: any) => void;
34
- warn: (message: string, context?: string, data?: any) => void;
35
- error: (message: string, context?: string, data?: any) => void;
36
- kioskAction: (action: string, kioskId: number, data?: any) => void;
37
- paymentEvent: (event: string, paymentId: string, data?: any) => void;
38
- apiCall: (method: string, endpoint: string, duration?: number, error?: Error) => void;
39
- };
40
- export {};
41
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/config/logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAA0B;;IAMxC,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,GAAG;IAuBX,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,aAAa;IAYrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI1D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAK1D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI9D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIhE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAWjF,OAAO,IAAI,QAAQ,EAAE;IASrB,SAAS,IAAI,IAAI;CAGlB;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,eAAO,MAAM,GAAG;qBACG,MAAM,YAAY,MAAM,SAAS,GAAG;oBACrC,MAAM,YAAY,MAAM,SAAS,GAAG;oBACpC,MAAM,YAAY,MAAM,SAAS,GAAG;qBACnC,MAAM,YAAY,MAAM,SAAS,GAAG;0BAC/B,MAAM,WAAW,MAAM,SAAS,GAAG;0BACnC,MAAM,aAAa,MAAM,SAAS,GAAG;sBACzC,MAAM,YAAY,MAAM,aAAa,MAAM,UAAU,KAAK;CAC7E,CAAC"}
@@ -1,119 +0,0 @@
1
- // Centralized logging system with environment-aware configuration
2
- import { getEnvironmentConfig, getCurrentEnvironment } from './environments';
3
- class Logger {
4
- sessionId;
5
- config = getEnvironmentConfig();
6
- constructor() {
7
- this.sessionId = `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
8
- }
9
- shouldLog(level) {
10
- const levels = {
11
- debug: 0,
12
- info: 1,
13
- warn: 2,
14
- error: 3
15
- };
16
- // Default to 'info' level if not specified in config
17
- const configLevel = this.config.showDebugInfo ? 'debug' : 'info';
18
- return levels[level] >= levels[configLevel];
19
- }
20
- formatMessage(level, message, context, data) {
21
- return {
22
- level,
23
- message,
24
- context,
25
- data,
26
- timestamp: new Date().toISOString(),
27
- environment: getCurrentEnvironment(),
28
- sessionId: this.sessionId
29
- };
30
- }
31
- log(level, message, context, data) {
32
- if (!this.shouldLog(level))
33
- return;
34
- const logEntry = this.formatMessage(level, message, context, data);
35
- // Console logging with appropriate method
36
- const consoleMethod = level === 'debug' ? 'log' : level;
37
- const prefix = `[${level.toUpperCase()}] ${logEntry.timestamp}`;
38
- const contextStr = context ? ` [${context}]` : '';
39
- console[consoleMethod](`${prefix}${contextStr}: ${message}`, data || '');
40
- // Send to external logging service in production
41
- if (!this.config.showDebugInfo && (level === 'error' || level === 'warn')) {
42
- this.sendToExternalService(logEntry);
43
- }
44
- // Store in local storage for debugging (development only)
45
- if (this.config.showDebugInfo) {
46
- this.storeLogEntry(logEntry);
47
- }
48
- }
49
- sendToExternalService(logEntry) {
50
- // TODO: Integrate with Sentry, LogRocket, or other monitoring service
51
- // For now, just log to console in production
52
- console.warn('External logging not implemented yet:', logEntry);
53
- }
54
- storeLogEntry(logEntry) {
55
- try {
56
- const storageKey = 'kiosk-logs';
57
- const existingLogs = JSON.parse(localStorage.getItem(storageKey) || '[]');
58
- const updatedLogs = [...existingLogs.slice(-99), logEntry]; // Keep last 100 entries
59
- localStorage.setItem(storageKey, JSON.stringify(updatedLogs));
60
- }
61
- catch (error) {
62
- console.warn('Failed to store log entry:', error);
63
- }
64
- }
65
- debug(message, context, data) {
66
- this.log('debug', message, context, data);
67
- }
68
- info(message, context, data) {
69
- this.log('info', message, context, data);
70
- }
71
- warn(message, context, data) {
72
- this.log('warn', message, context, data);
73
- }
74
- error(message, context, data) {
75
- this.log('error', message, context, data);
76
- }
77
- // Kiosk-specific logging methods
78
- kioskAction(action, kioskId, data) {
79
- this.info(`Kiosk action: ${action}`, `kiosk-${kioskId}`, data);
80
- }
81
- paymentEvent(event, paymentId, data) {
82
- this.info(`Payment event: ${event}`, `payment-${paymentId}`, data);
83
- }
84
- apiCall(method, endpoint, duration, error) {
85
- const message = `API ${method} ${endpoint}${duration ? ` (${duration}ms)` : ''}`;
86
- if (error) {
87
- this.error(message, 'api-client', { error: error.message, stack: error.stack });
88
- }
89
- else {
90
- this.debug(message, 'api-client');
91
- }
92
- }
93
- // Get logs for debugging
94
- getLogs() {
95
- try {
96
- return JSON.parse(localStorage.getItem('kiosk-logs') || '[]');
97
- }
98
- catch {
99
- return [];
100
- }
101
- }
102
- // Clear stored logs
103
- clearLogs() {
104
- localStorage.removeItem('kiosk-logs');
105
- }
106
- }
107
- // Export singleton instance
108
- export const logger = new Logger();
109
- // Export convenience functions
110
- export const log = {
111
- debug: (message, context, data) => logger.debug(message, context, data),
112
- info: (message, context, data) => logger.info(message, context, data),
113
- warn: (message, context, data) => logger.warn(message, context, data),
114
- error: (message, context, data) => logger.error(message, context, data),
115
- kioskAction: (action, kioskId, data) => logger.kioskAction(action, kioskId, data),
116
- paymentEvent: (event, paymentId, data) => logger.paymentEvent(event, paymentId, data),
117
- apiCall: (method, endpoint, duration, error) => logger.apiCall(method, endpoint, duration, error),
118
- };
119
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/config/logger.ts"],"names":[],"mappings":"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"}