pi-kiosk-shared 2.1.3 → 2.1.5
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/README.md +27 -32
- package/dist/api.d.ts +2 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +17 -2
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -11
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +11 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -7
- package/dist/components/ErrorDisplay.d.ts +0 -13
- package/dist/components/ErrorDisplay.d.ts.map +0 -1
- package/dist/components/ErrorDisplay.js +0 -9
- package/dist/components/ErrorDisplay.js.map +0 -1
- package/dist/components/LoadingSpinner.d.ts +0 -9
- package/dist/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/components/LoadingSpinner.js +0 -11
- package/dist/components/LoadingSpinner.js.map +0 -1
- package/dist/config/deployment.d.ts +0 -97
- package/dist/config/deployment.d.ts.map +0 -1
- package/dist/config/deployment.js +0 -154
- package/dist/config/deployment.js.map +0 -1
- package/dist/config/environments.d.ts +0 -37
- package/dist/config/environments.d.ts.map +0 -1
- package/dist/config/environments.js +0 -172
- package/dist/config/environments.js.map +0 -1
- package/dist/config/environments.test.d.ts +0 -1
- package/dist/config/environments.test.js +0 -49
- package/dist/config/logger.d.ts +0 -41
- package/dist/config/logger.d.ts.map +0 -1
- package/dist/config/logger.js +0 -119
- package/dist/config/logger.js.map +0 -1
- package/dist/constants.d.ts +0 -91
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -113
- package/dist/constants.js.map +0 -1
- package/dist/hooks/useApi.d.ts +0 -21
- package/dist/hooks/useApi.d.ts.map +0 -1
- package/dist/hooks/useApi.js +0 -52
- package/dist/hooks/useApi.js.map +0 -1
- package/dist/hooks/useAsyncOperation.d.ts +0 -22
- package/dist/hooks/useAsyncOperation.d.ts.map +0 -1
- package/dist/hooks/useAsyncOperation.js +0 -59
- package/dist/hooks/useAsyncOperation.js.map +0 -1
- package/dist/hooks/useErrorHandler.d.ts +0 -15
- package/dist/hooks/useErrorHandler.d.ts.map +0 -1
- package/dist/hooks/useErrorHandler.js +0 -55
- package/dist/hooks/useErrorHandler.js.map +0 -1
- package/dist/utils/simple.test.d.ts +0 -1
- package/dist/utils/simple.test.js +0 -45
- package/dist/utils.d.ts +0 -24
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -159
- package/dist/utils.js.map +0 -1
- package/dist/validation.d.ts +0 -46
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -173
- package/dist/validation.js.map +0 -1
package/dist/validation.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export interface ValidationResult {
|
|
2
|
-
isValid: boolean;
|
|
3
|
-
errors: Record<string, string>;
|
|
4
|
-
}
|
|
5
|
-
export declare const validators: {
|
|
6
|
-
required: (value: any) => string | null;
|
|
7
|
-
email: (value: string) => string | null;
|
|
8
|
-
minLength: (value: string, min: number, fieldName: string) => string | null;
|
|
9
|
-
maxLength: (value: string, max: number, fieldName: string) => string | null;
|
|
10
|
-
positiveNumber: (value: number, fieldName: string) => string | null;
|
|
11
|
-
username: (value: string) => string | null;
|
|
12
|
-
password: (value: string) => string | null;
|
|
13
|
-
kioskId: (value: number) => string | null;
|
|
14
|
-
quantity: (value: number, fieldName?: string) => string | null;
|
|
15
|
-
price: (value: number, fieldName?: string) => string | null;
|
|
16
|
-
};
|
|
17
|
-
export interface ValidationSchema {
|
|
18
|
-
[field: string]: Array<(value: any) => string | null>;
|
|
19
|
-
}
|
|
20
|
-
export declare const validateSchema: (data: Record<string, any>, schema: ValidationSchema) => ValidationResult;
|
|
21
|
-
export declare const validationSchemas: {
|
|
22
|
-
login: {
|
|
23
|
-
username: ((value: string) => string | null)[];
|
|
24
|
-
password: ((value: string) => string | null)[];
|
|
25
|
-
};
|
|
26
|
-
customerEmail: {
|
|
27
|
-
email: ((value: string) => string | null)[];
|
|
28
|
-
};
|
|
29
|
-
product: {
|
|
30
|
-
name: ((value: any) => string | null)[];
|
|
31
|
-
price: ((value: number, fieldName?: string) => string | null)[];
|
|
32
|
-
description: ((value: any) => string | null)[];
|
|
33
|
-
};
|
|
34
|
-
kioskId: {
|
|
35
|
-
kioskId: ((value: number) => string | null)[];
|
|
36
|
-
};
|
|
37
|
-
inventory: {
|
|
38
|
-
quantityInStock: ((value: number, fieldName?: string) => string | null)[];
|
|
39
|
-
};
|
|
40
|
-
payment: {
|
|
41
|
-
productId: ((value: any) => string | null)[];
|
|
42
|
-
kioskId: ((value: number) => string | null)[];
|
|
43
|
-
amount: ((value: number, fieldName?: string) => string | null)[];
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=validation.d.ts.map
|
package/dist/validation.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,UAAU;sBACH,GAAG,KAAG,MAAM,GAAG,IAAI;mBAOtB,MAAM,KAAG,MAAM,GAAG,IAAI;uBAUlB,MAAM,OAAO,MAAM,aAAa,MAAM,KAAG,MAAM,GAAG,IAAI;uBAStD,MAAM,OAAO,MAAM,aAAa,MAAM,KAAG,MAAM,GAAG,IAAI;4BASjD,MAAM,aAAa,MAAM,KAAG,MAAM,GAAG,IAAI;sBAS/C,MAAM,KAAG,MAAM,GAAG,IAAI;sBActB,MAAM,KAAG,MAAM,GAAG,IAAI;qBAUvB,MAAM,KAAG,MAAM,GAAG,IAAI;sBAUrB,MAAM,cAAa,MAAM,KAAgB,MAAM,GAAG,IAAI;mBAUzD,MAAM,cAAa,MAAM,KAAY,MAAM,GAAG,IAAI;CAoBlE,CAAC;AAGF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,gBAAgB,KAAG,gBAmBpF,CAAC;AAGF,eAAO,MAAM,iBAAiB;;2BA7FV,MAAM,KAAG,MAAM,GAAG,IAAI;2BActB,MAAM,KAAG,MAAM,GAAG,IAAI;;;wBAnDzB,MAAM,KAAG,MAAM,GAAG,IAAI;;;uBAuJzB,GAAG;wBAtEA,MAAM,cAAa,MAAM,KAAY,MAAM,GAAG,IAAI;8BA+ErD,GAAG;;;0BAnGE,MAAM,KAAG,MAAM,GAAG,IAAI;;;kCAUrB,MAAM,cAAa,MAAM,KAAgB,MAAM,GAAG,IAAI;;;4BA6G5D,GAAG;0BAvHE,MAAM,KAAG,MAAM,GAAG,IAAI;yBAoBxB,MAAM,cAAa,MAAM,KAAY,MAAM,GAAG,IAAI;;CA+GlE,CAAC"}
|
package/dist/validation.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
// Shared validation utilities
|
|
2
|
-
// ValidationError is imported but not used directly in this file
|
|
3
|
-
import { APP_CONFIG, UI_MESSAGES } from './constants';
|
|
4
|
-
export const validators = {
|
|
5
|
-
required: (value) => {
|
|
6
|
-
if (value === null || value === undefined || value === '') {
|
|
7
|
-
return UI_MESSAGES.REQUIRED_FIELD;
|
|
8
|
-
}
|
|
9
|
-
return null;
|
|
10
|
-
},
|
|
11
|
-
email: (value) => {
|
|
12
|
-
if (!value)
|
|
13
|
-
return null; // Let required validator handle empty values
|
|
14
|
-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
15
|
-
if (!emailRegex.test(value)) {
|
|
16
|
-
return UI_MESSAGES.INVALID_EMAIL;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
},
|
|
20
|
-
minLength: (value, min, fieldName) => {
|
|
21
|
-
if (!value)
|
|
22
|
-
return null; // Let required validator handle empty values
|
|
23
|
-
if (value.length < min) {
|
|
24
|
-
return `${fieldName} musí mít alespoň ${min} znaků`;
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
},
|
|
28
|
-
maxLength: (value, max, fieldName) => {
|
|
29
|
-
if (!value)
|
|
30
|
-
return null;
|
|
31
|
-
if (value.length > max) {
|
|
32
|
-
return `${fieldName} může mít maximálně ${max} znaků`;
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
},
|
|
36
|
-
positiveNumber: (value, fieldName) => {
|
|
37
|
-
if (value === null || value === undefined)
|
|
38
|
-
return null;
|
|
39
|
-
if (value <= 0) {
|
|
40
|
-
return `${fieldName} musí být větší než 0`;
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
},
|
|
44
|
-
username: (value) => {
|
|
45
|
-
if (!value)
|
|
46
|
-
return null;
|
|
47
|
-
if (value.length < APP_CONFIG.MIN_USERNAME_LENGTH) {
|
|
48
|
-
return `Uživatelské jméno musí mít alespoň ${APP_CONFIG.MIN_USERNAME_LENGTH} znaky`;
|
|
49
|
-
}
|
|
50
|
-
if (!/^[a-zA-Z0-9_]+$/.test(value)) {
|
|
51
|
-
return 'Uživatelské jméno může obsahovat pouze písmena, číslice a podtržítka';
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
},
|
|
55
|
-
password: (value) => {
|
|
56
|
-
if (!value)
|
|
57
|
-
return null;
|
|
58
|
-
if (value.length < APP_CONFIG.MIN_PASSWORD_LENGTH) {
|
|
59
|
-
return `Heslo musí mít alespoň ${APP_CONFIG.MIN_PASSWORD_LENGTH} znaků`;
|
|
60
|
-
}
|
|
61
|
-
return null;
|
|
62
|
-
},
|
|
63
|
-
kioskId: (value) => {
|
|
64
|
-
if (value === null || value === undefined)
|
|
65
|
-
return null;
|
|
66
|
-
if (!Number.isInteger(value) || value <= 0) {
|
|
67
|
-
return 'Kiosk ID musí být kladné celé číslo';
|
|
68
|
-
}
|
|
69
|
-
return null;
|
|
70
|
-
},
|
|
71
|
-
quantity: (value, fieldName = 'Množství') => {
|
|
72
|
-
if (value === null || value === undefined)
|
|
73
|
-
return null;
|
|
74
|
-
if (!Number.isInteger(value) || value < 0) {
|
|
75
|
-
return `${fieldName} musí být nezáporné celé číslo`;
|
|
76
|
-
}
|
|
77
|
-
return null;
|
|
78
|
-
},
|
|
79
|
-
price: (value, fieldName = 'Cena') => {
|
|
80
|
-
if (value === null || value === undefined)
|
|
81
|
-
return null;
|
|
82
|
-
if (isNaN(value) || value <= 0) {
|
|
83
|
-
return `${fieldName} musí být kladné číslo`;
|
|
84
|
-
}
|
|
85
|
-
// Check for reasonable price range (0.01 to 999999.99)
|
|
86
|
-
if (value < 0.01 || value > 999999.99) {
|
|
87
|
-
return `${fieldName} musí být v rozsahu 0,01 - 999 999,99 Kč`;
|
|
88
|
-
}
|
|
89
|
-
// Check for precision (max 2 decimal places)
|
|
90
|
-
const rounded = Math.round(value * 100) / 100;
|
|
91
|
-
if (Math.abs(value - rounded) > 0.001) {
|
|
92
|
-
return `${fieldName} může mít maximálně 2 desetinná místa`;
|
|
93
|
-
}
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
export const validateSchema = (data, schema) => {
|
|
98
|
-
const errors = {};
|
|
99
|
-
for (const [field, validatorFunctions] of Object.entries(schema)) {
|
|
100
|
-
const value = data[field];
|
|
101
|
-
for (const validator of validatorFunctions) {
|
|
102
|
-
const error = validator(value);
|
|
103
|
-
if (error) {
|
|
104
|
-
errors[field] = error;
|
|
105
|
-
break; // Stop at first error for this field
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
isValid: Object.keys(errors).length === 0,
|
|
111
|
-
errors
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
// Common validation schemas
|
|
115
|
-
export const validationSchemas = {
|
|
116
|
-
login: {
|
|
117
|
-
username: [
|
|
118
|
-
(value) => validators.required(value),
|
|
119
|
-
validators.username
|
|
120
|
-
],
|
|
121
|
-
password: [
|
|
122
|
-
(value) => validators.required(value),
|
|
123
|
-
validators.password
|
|
124
|
-
]
|
|
125
|
-
},
|
|
126
|
-
customerEmail: {
|
|
127
|
-
email: [
|
|
128
|
-
(value) => validators.required(value),
|
|
129
|
-
validators.email
|
|
130
|
-
]
|
|
131
|
-
},
|
|
132
|
-
product: {
|
|
133
|
-
name: [
|
|
134
|
-
(value) => validators.required(value),
|
|
135
|
-
(value) => validators.minLength(value, 2, 'Název produktu'),
|
|
136
|
-
(value) => validators.maxLength(value, APP_CONFIG.MAX_PRODUCT_NAME_LENGTH, 'Název produktu')
|
|
137
|
-
],
|
|
138
|
-
price: [
|
|
139
|
-
(value) => validators.required(value),
|
|
140
|
-
validators.price
|
|
141
|
-
],
|
|
142
|
-
description: [
|
|
143
|
-
(value) => validators.maxLength(value, APP_CONFIG.MAX_DESCRIPTION_LENGTH, 'Popis')
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
kioskId: {
|
|
147
|
-
kioskId: [
|
|
148
|
-
(value) => validators.required(value),
|
|
149
|
-
validators.kioskId
|
|
150
|
-
]
|
|
151
|
-
},
|
|
152
|
-
inventory: {
|
|
153
|
-
quantityInStock: [
|
|
154
|
-
(value) => validators.required(value),
|
|
155
|
-
validators.quantity
|
|
156
|
-
]
|
|
157
|
-
},
|
|
158
|
-
payment: {
|
|
159
|
-
productId: [
|
|
160
|
-
(value) => validators.required(value),
|
|
161
|
-
(value) => validators.positiveNumber(value, 'ID produktu')
|
|
162
|
-
],
|
|
163
|
-
kioskId: [
|
|
164
|
-
(value) => validators.required(value),
|
|
165
|
-
validators.kioskId
|
|
166
|
-
],
|
|
167
|
-
amount: [
|
|
168
|
-
(value) => validators.required(value),
|
|
169
|
-
validators.price
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
//# sourceMappingURL=validation.js.map
|
package/dist/validation.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|