pi-kiosk-shared 2.1.0 → 2.1.2

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 (62) hide show
  1. package/README.md +85 -85
  2. package/dist/api.d.ts +11 -9
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +13 -9
  5. package/dist/api.js.map +1 -0
  6. package/dist/components/ErrorDisplay.d.ts +1 -0
  7. package/dist/components/ErrorDisplay.d.ts.map +1 -0
  8. package/dist/components/ErrorDisplay.js +1 -0
  9. package/dist/components/ErrorDisplay.js.map +1 -0
  10. package/dist/components/LoadingSpinner.d.ts +1 -0
  11. package/dist/components/LoadingSpinner.d.ts.map +1 -0
  12. package/dist/components/LoadingSpinner.js +1 -0
  13. package/dist/components/LoadingSpinner.js.map +1 -0
  14. package/dist/config/deployment.d.ts +1 -0
  15. package/dist/config/deployment.d.ts.map +1 -0
  16. package/dist/config/deployment.js +4 -3
  17. package/dist/config/deployment.js.map +1 -0
  18. package/dist/config/environments.d.ts +0 -1
  19. package/dist/config/environments.d.ts.map +1 -1
  20. package/dist/config/environments.js +35 -19
  21. package/dist/config/environments.js.map +1 -1
  22. package/dist/config/logger.d.ts +1 -0
  23. package/dist/config/logger.d.ts.map +1 -0
  24. package/dist/config/logger.js +3 -1
  25. package/dist/config/logger.js.map +1 -0
  26. package/dist/constants.d.ts +1 -0
  27. package/dist/constants.d.ts.map +1 -0
  28. package/dist/constants.js +1 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/errors.d.ts +13 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +28 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/hooks/useApi.d.ts +1 -0
  35. package/dist/hooks/useApi.d.ts.map +1 -0
  36. package/dist/hooks/useApi.js +1 -0
  37. package/dist/hooks/useApi.js.map +1 -0
  38. package/dist/hooks/useAsyncOperation.d.ts +1 -0
  39. package/dist/hooks/useAsyncOperation.d.ts.map +1 -0
  40. package/dist/hooks/useAsyncOperation.js +1 -0
  41. package/dist/hooks/useAsyncOperation.js.map +1 -0
  42. package/dist/hooks/useErrorHandler.d.ts +1 -0
  43. package/dist/hooks/useErrorHandler.d.ts.map +1 -0
  44. package/dist/hooks/useErrorHandler.js +1 -0
  45. package/dist/hooks/useErrorHandler.js.map +1 -0
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/types.d.ts +162 -17
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +18 -1
  53. package/dist/types.js.map +1 -0
  54. package/dist/utils.d.ts +7 -0
  55. package/dist/utils.d.ts.map +1 -0
  56. package/dist/utils.js +91 -25
  57. package/dist/utils.js.map +1 -0
  58. package/dist/validation.d.ts +16 -1
  59. package/dist/validation.d.ts.map +1 -0
  60. package/dist/validation.js +61 -1
  61. package/dist/validation.js.map +1 -0
  62. package/package.json +56 -56
package/dist/errors.js CHANGED
@@ -1,5 +1,8 @@
1
1
  // Shared error handling system
2
2
  export class AppError extends Error {
3
+ code;
4
+ statusCode;
5
+ isOperational;
3
6
  constructor(message, code = 'UNKNOWN_ERROR', statusCode = 500, isOperational = true) {
4
7
  super(message);
5
8
  this.name = 'AppError';
@@ -35,6 +38,30 @@ export class NotFoundError extends AppError {
35
38
  this.name = 'NotFoundError';
36
39
  }
37
40
  }
41
+ export class PaymentError extends AppError {
42
+ constructor(message = 'Chyba při zpracování platby') {
43
+ super(message, 'PAYMENT_ERROR', 400);
44
+ this.name = 'PaymentError';
45
+ }
46
+ }
47
+ export class InventoryError extends AppError {
48
+ constructor(message = 'Chyba při správě zásob') {
49
+ super(message, 'INVENTORY_ERROR', 400);
50
+ this.name = 'InventoryError';
51
+ }
52
+ }
53
+ export class KioskError extends AppError {
54
+ constructor(message = 'Chyba konfigurace kiosku') {
55
+ super(message, 'KIOSK_ERROR', 400);
56
+ this.name = 'KioskError';
57
+ }
58
+ }
59
+ export class DatabaseError extends AppError {
60
+ constructor(message = 'Chyba databáze') {
61
+ super(message, 'DATABASE_ERROR', 503);
62
+ this.name = 'DatabaseError';
63
+ }
64
+ }
38
65
  export const formatError = (error, details) => {
39
66
  const isAppError = error instanceof AppError;
40
67
  return {
@@ -71,3 +98,4 @@ export const getErrorMessage = (error) => {
71
98
  // Return original message if available, otherwise generic
72
99
  return error.message || 'Něco se pokazilo. Zkuste to znovu.';
73
100
  };
101
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -18,3 +18,4 @@ export declare function useApi<T = any>(_apiClient: APIClient): {
18
18
  loading: boolean;
19
19
  error: Error | null;
20
20
  };
21
+ //# sourceMappingURL=useApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,SAAS;uBAQxC,MAAM,OAAO,CAAC,CAAC,CAAC,YACf;QACR,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;;;;;;aAjBM,OAAO;WACT,KAAK,GAAG,IAAI;EAkEpB"}
@@ -49,3 +49,4 @@ export function useApi(_apiClient) {
49
49
  hasData: !!state.data
50
50
  };
51
51
  }
52
+ //# sourceMappingURL=useApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApi.js","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAQnD,MAAM,UAAU,MAAM,CAAU,UAAqB;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAc;QAC9C,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAC/B,OAAyB,EACzB,OAIC,EACD,EAAE;QACF,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAE7B,QAAQ,CAAC;gBACP,IAAI;gBACJ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,QAAQ;gBACxC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,YAAY,CAAC,kCAAkC,CAAC,CAAC;YAEzD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,GAAG,IAAI;gBACP,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC,CAAC;YAEJ,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,QAAQ,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC;YACP,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,GAAG,KAAK;QACR,OAAO;QACP,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;QACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC"}
@@ -19,3 +19,4 @@ export declare function useAsyncOperation<T = any>(options?: UseAsyncOperationOp
19
19
  error: Error | null;
20
20
  };
21
21
  export {};
22
+ //# sourceMappingURL=useAsyncOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncOperation.d.ts","sourceRoot":"","sources":["../../src/hooks/useAsyncOperation.ts"],"names":[],"mappings":"AASA,UAAU,wBAAwB,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,GAAE,wBAAwB,CAAC,CAAC,CAAM;yBAUrE,MAAM,OAAO,CAAC,CAAC,CAAC,YACjB,MAAM,KACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;;oBAuCe,CAAC;;;;;;aAhE3B,OAAO;WACT,KAAK,GAAG,IAAI;EA8EpB"}
@@ -56,3 +56,4 @@ export function useAsyncOperation(options = {}) {
56
56
  isIdle: !state.loading && !state.error && !state.data
57
57
  };
58
58
  }
59
+ //# sourceMappingURL=useAsyncOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncOperation.js","sourceRoot":"","sources":["../../src/hooks/useAsyncOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAU,UAAuC,EAAE;IAClF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyB;QACzD,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACjC,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAAC;IAE1C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAC/B,SAA2B,EAC3B,OAAgB,EACG,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YAEjC,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAE3E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,GAAG,IAAI;gBACP,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC,CAAC;YAEJ,WAAW,CAAC,QAAQ,EAAE,OAAO,IAAI,mBAAmB,CAAC,CAAC;YACtD,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;YAE5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACjC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,IAAO,EAAE,EAAE;QACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,GAAG,KAAK;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,sBAAsB;QACtB,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;QACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;QACrB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;KACtD,CAAC;AACJ,CAAC"}
@@ -12,3 +12,4 @@ export declare function useErrorHandler(): {
12
12
  clearError: () => void;
13
13
  retryAction: (action: () => Promise<void> | void) => void;
14
14
  };
15
+ //# sourceMappingURL=useErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErrorHandler.d.ts","sourceRoot":"","sources":["../../src/hooks/useErrorHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAgC,MAAM,WAAW,CAAC;AAEnE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe;;;;yBAOW,KAAK,GAAG,QAAQ,YAAY,MAAM;;0BA+BjC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;EAoBpE"}
@@ -52,3 +52,4 @@ export function useErrorHandler() {
52
52
  retryAction
53
53
  };
54
54
  }
55
+ //# sourceMappingURL=useErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErrorHandler.js","sourceRoot":"","sources":["../../src/hooks/useErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAY,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQnE,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAa;QACvD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAuB,EAAE,OAAgB,EAAE,EAAE;QAC5E,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,IAAI,iBAAiB,GAAG,EAAE,KAAK,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAE3C,aAAa,CAAC;YACZ,KAAK;YACL,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,kCAAkC;QAClC,UAAU,CAAC,GAAG,EAAE;YACd,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,2CAA2C;QAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,aAAa,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,MAAkC,EAAE,EAAE;QACrE,UAAU,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;YACxB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9B,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,YAAY,EAAE,UAAU,CAAC,OAAO;QAChC,cAAc,EAAE,UAAU,CAAC,SAAS;QACpC,WAAW;QACX,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,3 +11,4 @@ export * from './components/LoadingSpinner';
11
11
  export * from './components/ErrorDisplay';
12
12
  export * from './config/environments';
13
13
  export * from './config/logger';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAExB,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -13,3 +13,4 @@ export * from './components/LoadingSpinner';
13
13
  export * from './components/ErrorDisplay';
14
14
  export * from './config/environments';
15
15
  export * from './config/logger';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,4EAA4E;AAC5E,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,17 @@
1
+ export declare enum TransactionStatus {
2
+ INITIATED = "INITIATED",
3
+ PENDING = "PENDING",
4
+ PROCESSING = "PROCESSING",
5
+ COMPLETED = "COMPLETED",
6
+ FAILED = "FAILED",
7
+ CANCELLED = "CANCELLED",
8
+ TIMEOUT = "TIMEOUT"
9
+ }
10
+ export declare enum ReceiptType {
11
+ PLAIN = "PLAIN",
12
+ INVOICE = "INVOICE",
13
+ PROFORMA = "PROFORMA"
14
+ }
1
15
  export interface Product {
2
16
  id: number;
3
17
  name: string;
@@ -5,12 +19,69 @@ export interface Product {
5
19
  description: string;
6
20
  image?: string;
7
21
  imageUrl?: string;
22
+ clickedOn: number;
23
+ qrCodesGenerated: number;
24
+ numberOfPurchases: number;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ }
28
+ export interface KioskProduct extends Product {
29
+ quantityInStock: number;
30
+ kioskClickedOn: number;
31
+ kioskNumberOfPurchases: number;
32
+ }
33
+ export interface Kiosk {
34
+ id: number;
35
+ name: string;
36
+ location: string;
37
+ description?: string;
38
+ isActive: boolean;
39
+ createdAt: string;
40
+ updatedAt: string;
41
+ }
42
+ export interface Customer {
43
+ id: number;
44
+ email: string;
45
+ name?: string;
46
+ firstContactAt: string;
47
+ purchasesRequested: number;
48
+ purchasesCompleted: number;
49
+ totalSpent: number;
50
+ }
51
+ export interface KioskInventory {
52
+ id: number;
53
+ kioskId: number;
54
+ productId: number;
8
55
  quantityInStock: number;
56
+ active: boolean;
9
57
  clickedOn: number;
58
+ qrCodesGenerated: number;
10
59
  numberOfPurchases: number;
60
+ lastRestocked?: string;
61
+ createdAt: string;
62
+ updatedAt: string;
63
+ }
64
+ export interface Transaction {
65
+ id: number;
66
+ kioskId: number;
67
+ customerId: number;
68
+ productId?: number;
69
+ requestedAt: string;
70
+ completedAt?: string;
71
+ status: TransactionStatus;
72
+ amount: number;
73
+ paymentId?: string;
74
+ qrCodeData?: string;
75
+ variableSymbol?: string;
76
+ receiptType: ReceiptType;
77
+ fioTransactionId?: string;
78
+ lastFioCheckAt?: string;
79
+ fioCheckCount: number;
80
+ createdAt: string;
81
+ updatedAt: string;
11
82
  }
12
83
  export interface CartItem {
13
- product: Product;
84
+ product: KioskProduct;
14
85
  quantity: number;
15
86
  }
16
87
  export interface Cart {
@@ -25,6 +96,7 @@ export interface PaymentData {
25
96
  customerEmail: string;
26
97
  qrCode: string;
27
98
  paymentId: string;
99
+ status?: TransactionStatus;
28
100
  }
29
101
  export interface MultiProductPaymentData {
30
102
  items: CartItem[];
@@ -32,19 +104,9 @@ export interface MultiProductPaymentData {
32
104
  customerEmail: string;
33
105
  qrCode: string;
34
106
  paymentId: string;
107
+ status?: TransactionStatus;
35
108
  }
36
- export interface AdminProduct {
37
- id: number;
38
- name: string;
39
- price: number;
40
- description: string;
41
- image: string;
42
- imageUrl?: string;
43
- clickedOn: number;
44
- qrCodesGenerated: number;
45
- numberOfPurchases: number;
46
- createdAt: string;
47
- updatedAt: string;
109
+ export interface AdminProduct extends Product {
48
110
  quantityInStock?: number;
49
111
  active?: boolean;
50
112
  }
@@ -62,11 +124,94 @@ export interface KioskStatus {
62
124
  lastSeen: Date;
63
125
  salesToday: number;
64
126
  }
65
- export interface WebSocketMessage {
127
+ export type WebSocketMessage = {
66
128
  type: string;
67
- updateType?: string;
68
- data?: any;
69
129
  kioskId?: number;
70
130
  timestamp?: string;
71
- }
131
+ [key: string]: any;
132
+ };
72
133
  export type ScreenType = 'products' | 'payment' | 'confirmation' | 'admin-login' | 'admin-dashboard';
134
+ export interface CreateQRPaymentRequest {
135
+ productId: number;
136
+ customerEmail: string;
137
+ kioskId: number;
138
+ }
139
+ export interface CreateQRPaymentResponse {
140
+ paymentId: string;
141
+ qrCodeData: string;
142
+ amount: number;
143
+ customerEmail: string;
144
+ variableSymbol: string;
145
+ }
146
+ export interface CreateMultiQRPaymentRequest {
147
+ items: Array<{
148
+ productId: number;
149
+ quantity: number;
150
+ }>;
151
+ totalAmount: number;
152
+ customerEmail: string;
153
+ kioskId: number;
154
+ }
155
+ export interface CreateMultiQRPaymentResponse {
156
+ paymentId: string;
157
+ qrCodeData: string;
158
+ amount: number;
159
+ customerEmail: string;
160
+ variableSymbol: string;
161
+ }
162
+ export interface PaymentStatusResponse {
163
+ paymentId: string;
164
+ status: TransactionStatus;
165
+ amount: number;
166
+ customerEmail: string;
167
+ requestedAt: string;
168
+ completedAt?: string;
169
+ }
170
+ export interface StartMonitoringRequest {
171
+ paymentId: string;
172
+ }
173
+ export interface StartMonitoringResponse {
174
+ paymentId: string;
175
+ status: string;
176
+ monitoringStartTime?: number;
177
+ }
178
+ export interface ThePayCreateRequest {
179
+ items: Array<{
180
+ productId: number;
181
+ quantity: number;
182
+ price: number;
183
+ }>;
184
+ totalAmount: number;
185
+ customerEmail: string;
186
+ kioskId: number;
187
+ }
188
+ export interface ThePayCreateResponse {
189
+ paymentId: string;
190
+ thepayPaymentId: string;
191
+ paymentUrl: string;
192
+ amount: number;
193
+ customerEmail: string;
194
+ kioskId: number;
195
+ }
196
+ export interface ThePayStatusResponse {
197
+ paymentId: string;
198
+ status: string;
199
+ amount: number;
200
+ customerEmail: string;
201
+ }
202
+ export interface ThePayMethodsResponse {
203
+ methods: Array<{
204
+ name: string;
205
+ enabled: boolean;
206
+ }>;
207
+ }
208
+ export interface InventoryUpdateRequest {
209
+ quantityInStock: number;
210
+ }
211
+ export interface VisibilityToggleRequest {
212
+ visible: boolean;
213
+ }
214
+ export interface ProductClickRequest {
215
+ kioskId: number;
216
+ }
217
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,2 +1,19 @@
1
1
  // Shared types across all packages
2
- export {};
2
+ // Enums matching backend Prisma schema
3
+ export var TransactionStatus;
4
+ (function (TransactionStatus) {
5
+ TransactionStatus["INITIATED"] = "INITIATED";
6
+ TransactionStatus["PENDING"] = "PENDING";
7
+ TransactionStatus["PROCESSING"] = "PROCESSING";
8
+ TransactionStatus["COMPLETED"] = "COMPLETED";
9
+ TransactionStatus["FAILED"] = "FAILED";
10
+ TransactionStatus["CANCELLED"] = "CANCELLED";
11
+ TransactionStatus["TIMEOUT"] = "TIMEOUT";
12
+ })(TransactionStatus || (TransactionStatus = {}));
13
+ export var ReceiptType;
14
+ (function (ReceiptType) {
15
+ ReceiptType["PLAIN"] = "PLAIN";
16
+ ReceiptType["INVOICE"] = "INVOICE";
17
+ ReceiptType["PROFORMA"] = "PROFORMA";
18
+ })(ReceiptType || (ReceiptType = {}));
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC,uCAAuC;AACvC,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"}
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export declare const validateEmail: (email: string) => boolean;
2
2
  export declare const formatPrice: (price: number) => string;
3
+ export declare const PRICE_PRECISION = 2;
4
+ export declare const roundPrice: (price: number) => number;
5
+ export declare const parsePrice: (value: string | number) => number;
6
+ export declare const validatePrice: (price: number) => boolean;
7
+ export declare const priceToString: (price: number) => string;
8
+ export declare const stringToPrice: (priceStr: string) => number;
3
9
  export declare const getKioskIdFromUrl: () => number;
4
10
  export declare const getKioskSecretFromUrl: () => string | undefined;
5
11
  export declare const formatDate: (date: Date | string) => string;
@@ -15,3 +21,4 @@ export declare const addToCart: (cart: any, product: any, quantity?: number) =>
15
21
  export declare const removeFromCart: (cart: any, productId: number) => any;
16
22
  export declare const updateCartItemQuantity: (cart: any, productId: number, quantity: number) => any;
17
23
  export declare const clearCart: (cart: any) => any;
24
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAK7C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAO3C,CAAC;AAGF,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,GAAG,MAAM,KAAG,MAGnD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAE7C,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAE7C,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAEhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAcpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,MAAM,GAAG,SAGjD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,GAAG,MAAM,KAAG,MAShD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,MAAM,CAAC,EACP,OAAO,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAOnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAEpC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,KAAG,OAEjD,CAAC;AAGF,eAAO,MAAM,eAAe;;;;CAI1B,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,EAAE,SAAS,GAAG,EAAE,WAAU,MAAU,QA6BtE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,EAAE,WAAW,MAAM,QAe1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,GAAG,EAAE,WAAW,MAAM,EAAE,UAAU,MAAM,QA6BpF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,QAQlC,CAAC"}
package/dist/utils.js CHANGED
@@ -7,7 +7,32 @@ export const validateEmail = (email) => {
7
7
  return emailRegex.test(email);
8
8
  };
9
9
  export const formatPrice = (price) => {
10
- return `${price} Kč`;
10
+ return new Intl.NumberFormat('cs-CZ', {
11
+ style: 'currency',
12
+ currency: 'CZK',
13
+ minimumFractionDigits: 2,
14
+ maximumFractionDigits: 2
15
+ }).format(price);
16
+ };
17
+ // Price precision handling utilities
18
+ export const PRICE_PRECISION = 2; // 2 decimal places for CZK
19
+ export const roundPrice = (price) => {
20
+ return Math.round(price * 100) / 100;
21
+ };
22
+ export const parsePrice = (value) => {
23
+ const num = typeof value === 'string' ? parseFloat(value) : value;
24
+ return roundPrice(num);
25
+ };
26
+ export const validatePrice = (price) => {
27
+ return !isNaN(price) && price > 0 && price <= 999999.99;
28
+ };
29
+ // Convert decimal to string for API calls to avoid precision issues
30
+ export const priceToString = (price) => {
31
+ return price.toFixed(PRICE_PRECISION);
32
+ };
33
+ // Convert string back to number for calculations
34
+ export const stringToPrice = (priceStr) => {
35
+ return parseFloat(priceStr);
11
36
  };
12
37
  export const getKioskIdFromUrl = () => {
13
38
  const urlParams = new URLSearchParams(window.location.search);
@@ -55,39 +80,80 @@ export const createEmptyCart = () => ({
55
80
  totalItems: 0
56
81
  });
57
82
  export const addToCart = (cart, product, quantity = 1) => {
58
- const existingItem = cart.items.find((item) => item.product.id === product.id);
59
- if (existingItem) {
60
- existingItem.quantity += quantity;
83
+ const existingItemIndex = cart.items.findIndex((item) => item.product.id === product.id);
84
+ // Create a new items array
85
+ const newItems = [...cart.items];
86
+ if (existingItemIndex !== -1) {
87
+ // Create a new item object with updated quantity (immutable update)
88
+ const existingItem = cart.items[existingItemIndex];
89
+ newItems[existingItemIndex] = {
90
+ ...existingItem,
91
+ quantity: existingItem.quantity + quantity
92
+ };
61
93
  }
62
94
  else {
63
- cart.items.push({ product, quantity });
95
+ // Add new item to the array
96
+ newItems.push({ product, quantity });
64
97
  }
65
- cart.totalAmount = cart.items.reduce((sum, item) => sum + (item.product.price * item.quantity), 0);
66
- cart.totalItems = cart.items.reduce((sum, item) => sum + item.quantity, 0);
67
- return cart;
98
+ // Calculate totals
99
+ const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
100
+ const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
101
+ // Return a new cart object (immutable)
102
+ return {
103
+ ...cart,
104
+ items: newItems,
105
+ totalAmount,
106
+ totalItems
107
+ };
68
108
  };
69
109
  export const removeFromCart = (cart, productId) => {
70
- cart.items = cart.items.filter((item) => item.product.id !== productId);
71
- cart.totalAmount = cart.items.reduce((sum, item) => sum + (item.product.price * item.quantity), 0);
72
- cart.totalItems = cart.items.reduce((sum, item) => sum + item.quantity, 0);
73
- return cart;
110
+ // Create a new items array (immutable)
111
+ const newItems = cart.items.filter((item) => item.product.id !== productId);
112
+ // Calculate totals
113
+ const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
114
+ const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
115
+ // Return a new cart object (immutable)
116
+ return {
117
+ ...cart,
118
+ items: newItems,
119
+ totalAmount,
120
+ totalItems
121
+ };
74
122
  };
75
123
  export const updateCartItemQuantity = (cart, productId, quantity) => {
76
- const item = cart.items.find((item) => item.product.id === productId);
77
- if (item) {
78
- if (quantity <= 0) {
79
- return removeFromCart(cart, productId);
80
- }
81
- item.quantity = quantity;
82
- cart.totalAmount = cart.items.reduce((sum, item) => sum + (item.product.price * item.quantity), 0);
83
- cart.totalItems = cart.items.reduce((sum, item) => sum + item.quantity, 0);
124
+ if (quantity <= 0) {
125
+ return removeFromCart(cart, productId);
126
+ }
127
+ const itemIndex = cart.items.findIndex((item) => item.product.id === productId);
128
+ if (itemIndex === -1) {
129
+ return cart;
84
130
  }
85
- return cart;
131
+ // Create a new items array with updated item (immutable)
132
+ const newItems = [...cart.items];
133
+ const existingItem = cart.items[itemIndex];
134
+ newItems[itemIndex] = {
135
+ ...existingItem,
136
+ quantity
137
+ };
138
+ // Calculate totals
139
+ const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
140
+ const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
141
+ // Return a new cart object (immutable)
142
+ return {
143
+ ...cart,
144
+ items: newItems,
145
+ totalAmount,
146
+ totalItems
147
+ };
86
148
  };
87
149
  export const clearCart = (cart) => {
88
- cart.items = [];
89
- cart.totalAmount = 0;
90
- cart.totalItems = 0;
91
- return cart;
150
+ // Return a new cart object (immutable)
151
+ return {
152
+ ...cart,
153
+ items: [],
154
+ totalAmount: 0,
155
+ totalItems: 0
156
+ };
92
157
  };
93
158
  // Note: getErrorMessage is now exported from ./errors.ts instead
159
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE;IACtD,MAAM,UAAU,GAAG,4BAA4B,CAAC;IAChD,0DAA0D;IAC1D,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE;IACnD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QACpC,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,KAAK;QACf,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;KACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,CAAC,2BAA2B;AAE7D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC3D,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE;IACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC;AAC1D,CAAC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAU,EAAE;IACxD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,uCAAuC,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAuB,EAAE;IAC5D,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAU,EAAE;IACxD,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACnC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAO,EACP,KAAa,EACuB,EAAE;IACtC,IAAI,SAAyB,CAAC;IAE9B,OAAO,CAAC,GAAG,IAAmB,EAAE,EAAE;QAChC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAW,EAAE;IAC1D,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,OAAY,EAAE,WAAmB,CAAC,EAAE,EAAE;IACzE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9F,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACnD,QAAQ,CAAC,iBAAiB,CAAC,GAAG;YAC5B,GAAG,YAAY;YACf,QAAQ,EAAE,YAAY,CAAC,QAAQ,GAAG,QAAQ;SAC3C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEvF,uCAAuC;IACvC,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,QAAQ;QACf,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,SAAiB,EAAE,EAAE;IAC7D,uCAAuC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAEjF,mBAAmB;IACnB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEvF,uCAAuC;IACvC,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,QAAQ;QACf,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAS,EAAE,SAAiB,EAAE,QAAgB,EAAE,EAAE;IACvF,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACrF,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,GAAG;QACpB,GAAG,YAAY;QACf,QAAQ;KACT,CAAC;IAEF,mBAAmB;IACnB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEvF,uCAAuC;IACvC,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,QAAQ;QACf,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,EAAE;IACrC,uCAAuC;IACvC,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,iEAAiE"}
@@ -10,6 +10,9 @@ export declare const validators: {
10
10
  positiveNumber: (value: number, fieldName: string) => string | null;
11
11
  username: (value: string) => string | null;
12
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;
13
16
  };
14
17
  export interface ValidationSchema {
15
18
  [field: string]: Array<(value: any) => string | null>;
@@ -25,7 +28,19 @@ export declare const validationSchemas: {
25
28
  };
26
29
  product: {
27
30
  name: ((value: any) => string | null)[];
28
- price: ((value: any) => string | null)[];
31
+ price: ((value: number, fieldName?: string) => string | null)[];
29
32
  description: ((value: any) => string | null)[];
30
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
+ };
31
45
  };
46
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
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"}