pi-kiosk-shared 2.3.0 → 2.3.3

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 (100) hide show
  1. package/README.md +21 -6
  2. package/dist/components/DatabaseUnavailable.d.ts +12 -7
  3. package/dist/components/DatabaseUnavailable.d.ts.map +1 -1
  4. package/dist/components/DatabaseUnavailable.js +58 -48
  5. package/dist/components/DatabaseUnavailable.js.map +1 -1
  6. package/dist/hooks/databaseHealthCoordinator.d.ts +1 -0
  7. package/dist/hooks/databaseHealthCoordinator.d.ts.map +1 -1
  8. package/dist/hooks/databaseHealthCoordinator.js +7 -0
  9. package/dist/hooks/databaseHealthCoordinator.js.map +1 -1
  10. package/dist/hooks/useDatabaseHealth.d.ts +1 -1
  11. package/dist/hooks/useDatabaseHealth.d.ts.map +1 -1
  12. package/dist/hooks/useDatabaseHealth.js +2 -0
  13. package/dist/hooks/useDatabaseHealth.js.map +1 -1
  14. package/dist/sentry/initSentry.d.ts.map +1 -1
  15. package/dist/sentry/initSentry.js +5 -5
  16. package/dist/sentry/initSentry.js.map +1 -1
  17. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.d.ts +9 -0
  18. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.d.ts.map +1 -1
  19. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.js +42 -2
  20. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.js.map +1 -1
  21. package/dist/tenant-entitlements/index.d.ts +1 -1
  22. package/dist/tenant-entitlements/index.d.ts.map +1 -1
  23. package/dist/tenant-entitlements/index.js +1 -1
  24. package/dist/tenant-entitlements/index.js.map +1 -1
  25. package/dist/ui/index.d.ts +1 -1
  26. package/dist/ui/index.d.ts.map +1 -1
  27. package/dist/ui/index.js +1 -1
  28. package/dist/ui/index.js.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/analyticsPiiTags.d.ts +0 -6
  31. package/dist/analyticsPiiTags.d.ts.map +0 -1
  32. package/dist/api.d.ts +0 -129
  33. package/dist/api.d.ts.map +0 -1
  34. package/dist/api.js +0 -305
  35. package/dist/api.js.map +0 -1
  36. package/dist/auditEventCodes.d.ts +0 -8
  37. package/dist/auditEventCodes.d.ts.map +0 -1
  38. package/dist/auditEventCodes.js +0 -180
  39. package/dist/auditEventCodes.js.map +0 -1
  40. package/dist/auditEventDescriptions.d.ts +0 -5
  41. package/dist/auditEventDescriptions.d.ts.map +0 -1
  42. package/dist/auditEventDescriptions.js +0 -849
  43. package/dist/auditEventDescriptions.js.map +0 -1
  44. package/dist/auditEventLabels.d.ts +0 -4
  45. package/dist/auditEventLabels.d.ts.map +0 -1
  46. package/dist/auditEventLabels.js +0 -858
  47. package/dist/auditEventLabels.js.map +0 -1
  48. package/dist/auditMetadataDisplayFields.d.ts +0 -9
  49. package/dist/auditMetadataDisplayFields.d.ts.map +0 -1
  50. package/dist/auditMetadataDisplayFields.js +0 -273
  51. package/dist/auditMetadataDisplayFields.js.map +0 -1
  52. package/dist/barcode/normalizeScanPayload.d.ts +0 -17
  53. package/dist/barcode/normalizeScanPayload.d.ts.map +0 -1
  54. package/dist/barcode/normalizeScanPayload.js +0 -100
  55. package/dist/barcode/normalizeScanPayload.js.map +0 -1
  56. package/dist/checkout/sessionMetadataV3.d.ts +0 -36
  57. package/dist/checkout/sessionMetadataV3.d.ts.map +0 -1
  58. package/dist/checkout/sessionMetadataV3.js +0 -6
  59. package/dist/checkout/sessionMetadataV3.js.map +0 -1
  60. package/dist/checkout/sessionMetadataV4.d.ts +0 -19
  61. package/dist/checkout/sessionMetadataV4.d.ts.map +0 -1
  62. package/dist/checkout/sessionMetadataV4.js +0 -33
  63. package/dist/checkout/sessionMetadataV4.js.map +0 -1
  64. package/dist/checkout/sessionMetadataV5.d.ts +0 -46
  65. package/dist/checkout/sessionMetadataV5.d.ts.map +0 -1
  66. package/dist/checkout/sessionMetadataV5.js +0 -40
  67. package/dist/checkout/sessionMetadataV5.js.map +0 -1
  68. package/dist/errors/pickLocalizedApiMessage.d.ts +0 -6
  69. package/dist/errors/pickLocalizedApiMessage.d.ts.map +0 -1
  70. package/dist/errors/pickLocalizedApiMessage.js +0 -31
  71. package/dist/errors/pickLocalizedApiMessage.js.map +0 -1
  72. package/dist/hooks/scannerCameraConstraints.d.ts +0 -57
  73. package/dist/hooks/scannerCameraConstraints.d.ts.map +0 -1
  74. package/dist/hooks/scannerCameraConstraints.js +0 -195
  75. package/dist/hooks/scannerCameraConstraints.js.map +0 -1
  76. package/dist/hooks/scannerFormats.d.ts +0 -11
  77. package/dist/hooks/scannerFormats.d.ts.map +0 -1
  78. package/dist/hooks/scannerFormats.js +0 -39
  79. package/dist/hooks/scannerFormats.js.map +0 -1
  80. package/dist/hooks/scannerNativeTypes.d.ts +0 -18
  81. package/dist/hooks/scannerNativeTypes.d.ts.map +0 -1
  82. package/dist/hooks/scannerNativeTypes.js +0 -2
  83. package/dist/hooks/scannerNativeTypes.js.map +0 -1
  84. package/dist/hooks/scannerPlatformProfile.d.ts +0 -23
  85. package/dist/hooks/scannerPlatformProfile.d.ts.map +0 -1
  86. package/dist/hooks/scannerPlatformProfile.js +0 -86
  87. package/dist/hooks/scannerPlatformProfile.js.map +0 -1
  88. package/dist/hooks/scannerScanPasses.d.ts +0 -23
  89. package/dist/hooks/scannerScanPasses.d.ts.map +0 -1
  90. package/dist/hooks/scannerScanPasses.js +0 -66
  91. package/dist/hooks/scannerScanPasses.js.map +0 -1
  92. package/dist/hooks/selectEngine.d.ts +0 -14
  93. package/dist/hooks/selectEngine.d.ts.map +0 -1
  94. package/dist/hooks/selectEngine.js +0 -2
  95. package/dist/hooks/selectEngine.js.map +0 -1
  96. package/dist/hooks/zxingJsSensitiveDecode.d.ts +0 -13
  97. package/dist/hooks/zxingJsSensitiveDecode.d.ts.map +0 -1
  98. package/dist/hooks/zxingJsSensitiveDecode.js +0 -54
  99. package/dist/hooks/zxingJsSensitiveDecode.js.map +0 -1
  100. package/dist/labels/localizedNameMap.d.ts +0 -37
package/README.md CHANGED
@@ -9,7 +9,7 @@ Shared types, API contracts, and error classes for the Pi Kiosk system.
9
9
 
10
10
  ## Temporary retention
11
11
 
12
- `up-backend` keeps production `react` / `react-dom` until cold/start paths consume a Node-safe published or overlaid main barrel. Do **not** drop those deps until that consume path is proven on the version actually installed (registry tarball from `npm view`, or monorepo overlay of sibling `../shared` **2.2.100**). Same caveat as `up-backend/docs/DEPLOYMENT/DEPLOY_SEPARATE_REPOS.md`.
12
+ `up-backend` keeps production `react` / `react-dom` until cold/start paths consume a Node-safe published or overlaid main barrel. Do **not** drop those deps until that consume path is proven on the version actually installed (registry tarball from `npm view`, or monorepo overlay of sibling `../shared` **2.3.2**). Same caveat as `up-backend/docs/DEPLOYMENT/DEPLOY_SEPARATE_REPOS.md`.
13
13
 
14
14
  ## Installation
15
15
 
@@ -74,14 +74,29 @@ Frontends import React modules from `/ui`. The **target** main barrel (local ove
74
74
 
75
75
  ## Local monorepo overlay
76
76
 
77
- **Honesty (SSOT):** Live monorepo source is `shared/package.json` **2.2.100** (ZBar WASM primary + still-image snap). Camera consumers (`admin-app`, `rpapp-customer`, `rpapp-pickup`) pin **`^2.2.100`**; `rpapp-kiosk` pins **`^2.2.100`** for contract sync (HID wedge only — no camera hook). `up-backend` may lag registry until next publish — overlay via `ensureDist.mjs` when sibling `../shared` exists.
77
+ **Honesty (SSOT):** Live monorepo source is `shared/package.json` **2.3.2** (service-unavailable UX, ZBar WASM primary + still-image snap). All consumers pin **`^2.3.2`** in `package.json`. Lockfiles currently resolve **registry** `https://registry.npmjs.org/pi-kiosk-shared/-/pi-kiosk-shared-2.3.2.tgz` — the rewrite ships when that tarball is published **or** when monorepo overlay / local tarball bootstrap is used (below).
78
+
79
+ ### Distribution paths (pick one per checkout)
80
+
81
+ | Path | When | How UI rewrite reaches `node_modules` |
82
+ |------|------|----------------------------------------|
83
+ | **A — Monorepo overlay (local dev)** | Sibling `../shared` present | `npm install` / `npm ci` → `overlaySharedIfPresent.mjs` → `ensureDist.mjs` copies `shared/dist` into `node_modules/pi-kiosk-shared`. Vite alias reads sibling `dist` when present. |
84
+ | **B — Registry `^2.3.2` (default locks)** | App-only clone / Railway | `npm ci` installs published tarball. **Requires** `npm view pi-kiosk-shared@2.3.2` to include the rewrite (publish after `shared` bump). |
85
+ | **C — File tarball bootstrap (CI strict `npm ci`)** | Locks pinned to `file:../shared/pi-kiosk-shared-2.3.2.tgz` | Run `node scripts/workspace/bootstrap-pi-kiosk-shared-tarball.mjs` (repack + ephemeral integrity patch), then consumer `npm ci`. Tarball is **gitignored** — not in VCS. |
86
+
87
+ Verify local pack contents after `cd shared && npm run publish:local`:
88
+
89
+ ```powershell
90
+ tar -tf pi-kiosk-shared-2.3.2.tgz | Select-String DatabaseUnavailable
91
+ # dist/components/DatabaseUnavailable.js must contain "Aplikace teď není dostupná"
92
+ ```
78
93
 
79
94
  ### Consumer lock tarball bootstrap (Strategy A — optional)
80
95
 
81
- When frontends use a **file tarball** pin (instead of registry `^2.2.100`):
96
+ When frontends use a **file tarball** pin (instead of registry `^2.3.2`):
82
97
 
83
98
  ```json
84
- "pi-kiosk-shared": "file:../shared/pi-kiosk-shared-2.2.100.tgz"
99
+ "pi-kiosk-shared": "file:../shared/pi-kiosk-shared-2.3.2.tgz"
85
100
  ```
86
101
 
87
102
  The tarball is **gitignored** (`*.tgz` in repo root `.gitignore`) and is **not** in VCS. A fresh clone has no pack file until you build it:
@@ -114,7 +129,7 @@ npm ci
114
129
 
115
130
  **Local dev (preferred):** sibling `../shared` + `postinstall`/`prepare` overlay via `ensureDist.mjs` — tarball optional when the monorepo layout is complete and overlay runs on install.
116
131
 
117
- **Registry-only / Railway app-only clones:** with **registry `^2.2.100` pins** (current monorepo `package.json`/locks), bare **`npm ci` succeeds** on app-only checkouts — no sibling tarball required. If you use **monorepo `file:` tarball pins** instead, bare `npm ci` **fails** on app-only clones (missing pack file). **`prebuildShared.mjs` runs on `predev` / `prebuild` only** — npm has already finished `install`/`ci` by then, and the script does **not** rewrite `package.json` or `package-lock.json` (it side-installs `pi-kiosk-shared` into `node_modules` with `--no-save`, which does **not** make a later strict `npm ci` succeed on `file:` pins). App-only options for `file:` pins: **(a)** run `cd shared && npm run publish:local` and ensure `../shared/pi-kiosk-shared-<version>.tgz` exists on disk before consumer `npm ci` (see [Consumer lock tarball bootstrap](#consumer-lock-tarball-bootstrap)), or **(b)** commit app-only `package.json`/lock with registry pins (same as current monorepo). Confirm with `npm view pi-kiosk-shared version` at deploy time.
132
+ **Registry-only / Railway app-only clones:** with **registry `^2.3.2` pins** (current monorepo `package.json`/locks), bare **`npm ci` succeeds** on app-only checkouts — no sibling tarball required. If you use **monorepo `file:` tarball pins** instead, bare `npm ci` **fails** on app-only clones (missing pack file). **`prebuildShared.mjs` runs on `predev` / `prebuild` only** — npm has already finished `install`/`ci` by then, and the script does **not** rewrite `package.json` or `package-lock.json` (it side-installs `pi-kiosk-shared` into `node_modules` with `--no-save`, which does **not** make a later strict `npm ci` succeed on `file:` pins). App-only options for `file:` pins: **(a)** run `cd shared && npm run publish:local` and ensure `../shared/pi-kiosk-shared-<version>.tgz` exists on disk before consumer `npm ci` (see [Consumer lock tarball bootstrap](#consumer-lock-tarball-bootstrap)), or **(b)** commit app-only `package.json`/lock with registry pins (same as current monorepo). Confirm with `npm view pi-kiosk-shared version` at deploy time.
118
133
 
119
134
  **Documented cold path (monorepo):** `npm ci` / `npm install` in each app runs lifecycle hooks → `scripts/overlaySharedIfPresent.mjs` → `shared/scripts/ensureDist.mjs` when sibling `../shared` exists:
120
135
 
@@ -151,7 +166,7 @@ npm run gate:main-barrel-node-safe
151
166
 
152
167
  From `shared/`, prove the documented cold path:
153
168
 
154
- 1. **DIAGNOSTIC** — `npm pack` a known Node-safe registry tarball (`COLD_VERSION` in `prove-pi-kiosk-shared-cold-overlay.mjs`, currently `2.2.82` — intentional historical diagnostic fixture, not the live pin) in a temp dir and assert COLD_BAD markers (never installs into a consumer with `--ignore-scripts`). Live monorepo source is `shared/package.json` **2.2.100**.
169
+ 1. **DIAGNOSTIC** — `npm pack` a known Node-safe registry tarball (`COLD_VERSION` in `prove-pi-kiosk-shared-cold-overlay.mjs`, currently `2.2.82` — intentional historical diagnostic fixture, not the live pin) in a temp dir and assert COLD_BAD markers (never installs into a consumer with `--ignore-scripts`). Live monorepo source is `shared/package.json` **2.3.2**.
155
170
  2. **PASS** — wipe that consumer’s `node_modules/pi-kiosk-shared`, then `npm install` with **scripts on** (no package args) so `prepare` / `postinstall` overlays during install; assert Node-safe barrel + `NODE_IMPORT_OK`.
156
171
 
157
172
  ```bash
@@ -1,14 +1,19 @@
1
- interface DatabaseUnavailableProps {
2
- retryCount?: number;
3
- maxRetries?: number;
1
+ type ButtonSurface = 'admin' | 'kiosk' | 'customer' | 'pickup';
2
+ export interface DatabaseUnavailableProps {
4
3
  nextRetryDelay?: number;
4
+ isChecking?: boolean;
5
5
  onRetry?: () => void;
6
+ /** Button styling — admin gate should pass `admin`, kiosk passes `kiosk`. */
7
+ surface?: ButtonSurface;
6
8
  }
7
9
  /**
8
- * Database Unavailable Screen
9
- * Shows when the backend database is unavailable
10
- * Displays exponential backoff retry information
10
+ * Shown when the backend /health check fails (API unreachable or not ready).
11
+ * Copy is intentionally non-technical — end users, not operators.
11
12
  */
12
- export declare function DatabaseUnavailable({ retryCount, maxRetries, nextRetryDelay, onRetry, }: DatabaseUnavailableProps): JSX.Element;
13
+ export declare function DatabaseUnavailable({ nextRetryDelay, isChecking, onRetry, surface, }: DatabaseUnavailableProps): JSX.Element;
14
+ /** Minimal boot splash while the first /health check is in flight. */
15
+ export declare function ServiceHealthBootScreen({ label, }: {
16
+ readonly label?: string;
17
+ }): JSX.Element;
13
18
  export {};
14
19
  //# sourceMappingURL=DatabaseUnavailable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseUnavailable.d.ts","sourceRoot":"","sources":["../../src/components/DatabaseUnavailable.tsx"],"names":[],"mappings":"AAGA,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,UAAc,EACd,UAAc,EACd,cAAkB,EAClB,OAAO,GACR,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CA0JxC"}
1
+ {"version":3,"file":"DatabaseUnavailable.d.ts","sourceRoot":"","sources":["../../src/components/DatabaseUnavailable.tsx"],"names":[],"mappings":"AAMA,KAAK,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,cAAkB,EAClB,UAAkB,EAClB,OAAO,EACP,OAAoB,GACrB,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAkKxC;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,EACtC,KAAmB,GACpB,EAAE;IACD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,GAAG,CAAC,OAAO,CAkBd"}
@@ -1,49 +1,38 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { Button } from '../ui/Button/Button.js';
4
+ import { Icon } from '../ui/Icon/Icon.js';
5
+ import { Hourglass } from '../ui/Icon/lucide.js';
6
+ import { Loader } from '../ui/Loader/Loader.js';
7
+ const HEADLINE = 'Aplikace teď není dostupná';
4
8
  /**
5
- * Database Unavailable Screen
6
- * Shows when the backend database is unavailable
7
- * Displays exponential backoff retry information
9
+ * Shown when the backend /health check fails (API unreachable or not ready).
10
+ * Copy is intentionally non-technical — end users, not operators.
8
11
  */
9
- export function DatabaseUnavailable({ retryCount = 0, maxRetries = 5, nextRetryDelay = 0, onRetry, }) {
10
- const [countdown, setCountdown] = useState(Math.ceil(nextRetryDelay / 1000));
11
- // Update countdown every second
12
+ export function DatabaseUnavailable({ nextRetryDelay = 0, isChecking = false, onRetry, surface = 'customer', }) {
13
+ const headingRef = useRef(null);
14
+ const [remainingMs, setRemainingMs] = useState(nextRetryDelay);
12
15
  useEffect(() => {
13
- if (nextRetryDelay <= 0)
16
+ headingRef.current?.focus();
17
+ }, []);
18
+ useEffect(() => {
19
+ if (nextRetryDelay <= 0) {
20
+ setRemainingMs(0);
14
21
  return;
15
- const interval = setInterval(() => {
16
- setCountdown((prev) => {
17
- const newCount = prev - 1;
18
- return newCount > 0 ? newCount : 0;
19
- });
20
- }, 1000);
22
+ }
23
+ const deadline = Date.now() + nextRetryDelay;
24
+ const tick = () => {
25
+ setRemainingMs(Math.max(0, deadline - Date.now()));
26
+ };
27
+ tick();
28
+ const interval = setInterval(tick, 250);
21
29
  return () => clearInterval(interval);
22
30
  }, [nextRetryDelay]);
23
- // Reset countdown when nextRetryDelay changes
24
- useEffect(() => {
25
- setCountdown(Math.ceil(nextRetryDelay / 1000));
26
- }, [nextRetryDelay]);
27
- const formatDelay = (ms) => {
28
- const seconds = Math.ceil(ms / 1000);
29
- const formatSeconds = (n) => {
30
- if (n === 1)
31
- return '1 sekundu';
32
- if (n >= 2 && n <= 4)
33
- return `${n} sekundy`;
34
- return `${n} sekund`;
35
- };
36
- if (seconds < 60) {
37
- return formatSeconds(seconds);
38
- }
39
- const minutes = Math.floor(seconds / 60);
40
- const remainingSeconds = seconds % 60;
41
- const minuteLabel = minutes === 1 ? 'minuta' : minutes < 5 ? 'minuty' : 'minut';
42
- if (remainingSeconds === 0) {
43
- return `${minutes} ${minuteLabel}`;
44
- }
45
- return `${minutes} ${minuteLabel} ${formatSeconds(remainingSeconds)}`;
46
- };
31
+ const autoRetryScheduled = nextRetryDelay > 0;
32
+ const countdownSeconds = Math.max(0, Math.ceil(remainingMs / 1000));
33
+ const bodyCopy = autoRetryScheduled
34
+ ? 'Obsah teď nejde načíst. Zkuste to prosím za chvíli znovu — nebo počkejte, zkusíme to obnovit automaticky.'
35
+ : 'Obsah teď nejde načíst. Zkuste to prosím za chvíli znovu, nebo klepněte na tlačítko níže.';
47
36
  return (_jsx("div", { style: {
48
37
  display: 'flex',
49
38
  flexDirection: 'column',
@@ -53,39 +42,60 @@ export function DatabaseUnavailable({ retryCount = 0, maxRetries = 5, nextRetryD
53
42
  padding: '2rem',
54
43
  backgroundColor: '#f5f5f5',
55
44
  textAlign: 'center',
56
- }, role: "alert", "aria-live": "assertive", children: _jsxs("div", { style: {
45
+ }, "data-testid": "service-unavailable", children: _jsxs("div", { style: {
57
46
  maxWidth: '600px',
58
47
  backgroundColor: 'white',
59
48
  padding: '3rem',
60
49
  borderRadius: '8px',
61
50
  boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
62
- }, children: [_jsx("div", { style: { fontSize: '4rem', marginBottom: '1rem' }, children: "\uD83D\uDDC4\uFE0F" }), _jsx("h1", { style: {
51
+ }, children: [_jsx("div", { style: {
52
+ marginBottom: '1rem',
53
+ display: 'flex',
54
+ justifyContent: 'center',
55
+ color: '#666',
56
+ }, "aria-hidden": "true", children: _jsx(Icon, { icon: Hourglass, size: 48, strokeWidth: 1.75 }) }), _jsx("h1", { ref: headingRef, tabIndex: -1, style: {
63
57
  fontSize: '2rem',
64
58
  fontWeight: 'bold',
65
59
  marginBottom: '1rem',
66
60
  color: '#333',
67
- }, children: "Datab\u00E1ze nen\u00ED dostupn\u00E1" }), _jsxs("p", { style: {
61
+ outline: 'none',
62
+ }, role: "alert", children: HEADLINE }), _jsx("p", { style: {
68
63
  fontSize: '1.1rem',
69
64
  color: '#666',
70
65
  marginBottom: '2rem',
71
66
  lineHeight: '1.6',
72
- }, children: ["Server se znovu p\u0159ipojuje k datab\u00E1zi s postupn\u011B del\u0161\u00EDmi prodlevami mezi pokusy.", _jsx("br", {}), "Aplikace se automaticky znovu p\u0159ipoj\u00ED, jakmile bude datab\u00E1ze dostupn\u00E1."] }), _jsxs("div", { style: {
67
+ }, children: bodyCopy }), autoRetryScheduled && (_jsxs("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", style: {
73
68
  backgroundColor: '#f8f9fa',
74
69
  padding: '1.5rem',
75
70
  borderRadius: '6px',
76
71
  marginBottom: '2rem',
77
72
  border: '1px solid #dee2e6',
78
- }, children: [_jsxs("div", { style: { marginBottom: '0.5rem' }, children: [_jsx("strong", { children: "Pokus:" }), " ", retryCount, " / ", maxRetries] }), nextRetryDelay > 0 && (_jsxs("div", { children: [_jsx("strong", { children: "Dal\u0161\u00ED pokus za:" }), ' ', _jsx("span", { style: { color: '#007bff', fontWeight: 'bold' }, children: countdown > 0 ? `${countdown} s` : 'právě teď…' })] })), retryCount > 0 && (_jsxs("div", { style: { marginTop: '0.5rem', fontSize: '0.9rem', color: '#666' }, children: ["Prodleva: ", formatDelay(nextRetryDelay)] }))] }), onRetry && (_jsx(Button, { type: "button", intent: "primary", size: "md", onClick: onRetry, children: "Zkusit znovu" })), _jsxs("div", { style: {
73
+ fontSize: '1rem',
74
+ color: '#444',
75
+ }, children: [_jsxs("span", { "aria-hidden": "true", children: ["Automaticky to zkus\u00EDme znovu za", ' ', _jsx("span", { style: { color: '#007bff', fontWeight: 'bold' }, children: countdownSeconds > 0 ? `${countdownSeconds} s` : 'právě teď…' })] }), _jsx("span", { className: "sr-only", children: countdownSeconds > 0
76
+ ? `Automatické opakování za ${countdownSeconds} sekund`
77
+ : 'Automatické opakování právě probíhá' })] })), onRetry && (_jsx(Button, { type: "button", intent: "primary", size: "md", surface: surface, loading: isChecking, disabled: isChecking, onClick: onRetry, children: "Zkusit znovu" })), _jsxs("div", { style: {
79
78
  marginTop: '2rem',
80
79
  paddingTop: '2rem',
81
80
  borderTop: '1px solid #dee2e6',
82
- fontSize: '0.9rem',
83
- color: '#999',
84
- }, children: [_jsx("p", { style: { margin: 0 }, children: "Pokud probl\u00E9m p\u0159etrv\u00E1v\u00E1, zkontrolujte:" }), _jsxs("ul", { style: {
81
+ fontSize: '0.95rem',
82
+ color: '#555',
83
+ }, children: [_jsx("p", { style: { margin: 0, marginBottom: '0.75rem' }, children: "Co m\u016F\u017Eete zkusit:" }), _jsxs("ul", { style: {
85
84
  textAlign: 'left',
86
85
  display: 'inline-block',
87
- marginTop: '0.5rem',
86
+ margin: 0,
88
87
  paddingLeft: '1.5rem',
89
- }, children: [_jsx("li", { children: "zda b\u011B\u017E\u00ED datab\u00E1zov\u00FD server" }), _jsx("li", { children: "zda je spr\u00E1vn\u011B nastaven\u00E1 DATABASE_URL" }), _jsx("li", { children: "zda je dostupn\u00E9 s\u00ED\u0165ov\u00E9 p\u0159ipojen\u00ED" }), _jsx("li", { children: "zda firewall neblokuje p\u0159ipojen\u00ED" })] })] })] }) }));
88
+ lineHeight: 1.7,
89
+ }, children: [_jsx("li", { children: "Zkontrolujte, zda funguje internet" }), _jsx("li", { children: "Obnovte str\u00E1nku v prohl\u00ED\u017Ee\u010Di" }), _jsx("li", { children: "Pokud probl\u00E9m trv\u00E1 d\u00E9le ne\u017E p\u00E1r minut, kontaktujte provozovatele nebo podporu" })] })] })] }) }));
90
+ }
91
+ /** Minimal boot splash while the first /health check is in flight. */
92
+ export function ServiceHealthBootScreen({ label = 'Načítání…', }) {
93
+ return (_jsx("div", { style: {
94
+ display: 'flex',
95
+ minHeight: '100vh',
96
+ alignItems: 'center',
97
+ justifyContent: 'center',
98
+ backgroundColor: '#f5f5f5',
99
+ }, "data-testid": "health-check-boot", role: "status", "aria-live": "polite", "aria-busy": "true", children: _jsx(Loader, { size: "lg", label: label, testId: "health-check-boot-loader" }) }));
90
100
  }
91
101
  //# sourceMappingURL=DatabaseUnavailable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseUnavailable.js","sourceRoot":"","sources":["../../src/components/DatabaseUnavailable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseUnavailable.js","sourceRoot":"","sources":["../../src/components/DatabaseUnavailable.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  export interface HealthCoordinatorSnapshot {
12
12
  readonly isDatabaseAvailable: boolean;
13
13
  readonly isChecking: boolean;
14
+ readonly hasResolvedInitialCheck: boolean;
14
15
  readonly retryCount: number;
15
16
  readonly nextRetryDelay: number;
16
17
  readonly error: Error | null;
@@ -1 +1 @@
1
- {"version":3,"file":"databaseHealthCoordinator.d.ts","sourceRoot":"","sources":["../../src/hooks/databaseHealthCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AA+WD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,EACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GACtD,MAAM,IAAI,CAwBZ;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CActD;AAED,sBAAsB;AACtB,wBAAgB,sCAAsC,IAAI,IAAI,CAO7D"}
1
+ {"version":3,"file":"databaseHealthCoordinator.d.ts","sourceRoot":"","sources":["../../src/hooks/databaseHealthCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAsXD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,EACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GACtD,MAAM,IAAI,CAwBZ;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CActD;AAED,sBAAsB;AACtB,wBAAgB,sCAAsC,IAAI,IAAI,CAO7D"}
@@ -27,6 +27,7 @@ function emptySnapshot() {
27
27
  return {
28
28
  isDatabaseAvailable: true,
29
29
  isChecking: false,
30
+ hasResolvedInitialCheck: false,
30
31
  retryCount: 0,
31
32
  nextRetryDelay: 0,
32
33
  error: null,
@@ -72,6 +73,7 @@ function applyRemoteResult(endpoint, available, errorMessage, checkedAt) {
72
73
  patchSnapshot(state, {
73
74
  isDatabaseAvailable: available,
74
75
  isChecking: false,
76
+ hasResolvedInitialCheck: true,
75
77
  error: errorMessage ? new Error(errorMessage) : null,
76
78
  retryCount: available ? 0 : state.retryCount,
77
79
  nextRetryDelay: available ? 0 : state.snapshot.nextRetryDelay,
@@ -144,10 +146,13 @@ async function performHealthFetch(state) {
144
146
  cache: 'no-store',
145
147
  });
146
148
  if (response.status === 429) {
149
+ // Product intent: 429 is transport throttling, not an outage — keep the last known
150
+ // isDatabaseAvailable value so the full-screen gate does not flash during backoff.
147
151
  const retryMs = parseRetryAfterMs(response) ?? state.pollIntervalMs;
148
152
  state.lastCheckAt = Date.now();
149
153
  patchSnapshot(state, {
150
154
  isChecking: false,
155
+ hasResolvedInitialCheck: true,
151
156
  error: new Error('Health check rate-limited; backing off'),
152
157
  });
153
158
  scheduleNextPoll(state, retryMs);
@@ -170,6 +175,7 @@ async function performHealthFetch(state) {
170
175
  patchSnapshot(state, {
171
176
  isDatabaseAvailable: true,
172
177
  isChecking: false,
178
+ hasResolvedInitialCheck: true,
173
179
  retryCount: 0,
174
180
  nextRetryDelay: 0,
175
181
  error: null,
@@ -195,6 +201,7 @@ async function performHealthFetch(state) {
195
201
  patchSnapshot(state, {
196
202
  isDatabaseAvailable: false,
197
203
  isChecking: false,
204
+ hasResolvedInitialCheck: true,
198
205
  retryCount: state.retryCount,
199
206
  nextRetryDelay: delayMs,
200
207
  error,
@@ -1 +1 @@
1
- {"version":3,"file":"databaseHealthCoordinator.js","sourceRoot":"","sources":["../../src/hooks/databaseHealthCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databaseHealthCoordinator.js","sourceRoot":"","sources":["../../src/hooks/databaseHealthCoordinator.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,12 @@
7
7
  interface UseDatabaseHealthOptions {
8
8
  pollInterval?: number;
9
9
  maxRetries?: number;
10
- retryDelay?: number;
11
10
  enabled?: boolean;
12
11
  }
13
12
  interface UseDatabaseHealthReturn {
14
13
  isDatabaseAvailable: boolean;
15
14
  isChecking: boolean;
15
+ hasResolvedInitialCheck: boolean;
16
16
  retryCount: number;
17
17
  nextRetryDelay: number;
18
18
  error: Error | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useDatabaseHealth.d.ts","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,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,CAoCzB"}
1
+ {"version":3,"file":"useDatabaseHealth.d.ts","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,UAAU,wBAAwB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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,uBAAuB,EAAE,OAAO,CAAC;IACjC,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,CAsCzB"}
@@ -12,6 +12,7 @@ export function useDatabaseHealth(options = {}) {
12
12
  const [snapshot, setSnapshot] = useState({
13
13
  isDatabaseAvailable: true,
14
14
  isChecking: false,
15
+ hasResolvedInitialCheck: false,
15
16
  retryCount: 0,
16
17
  nextRetryDelay: 0,
17
18
  error: null,
@@ -26,6 +27,7 @@ export function useDatabaseHealth(options = {}) {
26
27
  return {
27
28
  isDatabaseAvailable: snapshot.isDatabaseAvailable,
28
29
  isChecking: snapshot.isChecking,
30
+ hasResolvedInitialCheck: snapshot.hasResolvedInitialCheck,
29
31
  retryCount: snapshot.retryCount,
30
32
  nextRetryDelay: snapshot.nextRetryDelay,
31
33
  error: snapshot.error,
@@ -1 +1 @@
1
- {"version":3,"file":"useDatabaseHealth.js","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAEL,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAkBxC,MAAM,UAAU,iBAAiB,CAC/B,UAAoC,EAAE;IAEtC,MAAM,EACJ,YAAY,GAAG,OAAO,EACtB,UAAU,GAAG,CAAC,EACd,OAAO,GAAG,IAAI,GACf,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B;QAClE,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,OAAO,uBAAuB,CAC5B,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAC/C,WAAW,CACZ,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;QACxD,MAAM,0BAA0B,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useDatabaseHealth.js","sourceRoot":"","sources":["../../src/hooks/useDatabaseHealth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAEL,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAkBxC,MAAM,UAAU,iBAAiB,CAC/B,UAAoC,EAAE;IAEtC,MAAM,EACJ,YAAY,GAAG,OAAO,EACtB,UAAU,GAAG,CAAC,EACd,OAAO,GAAG,IAAI,GACf,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B;QAClE,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,KAAK;QACjB,uBAAuB,EAAE,KAAK;QAC9B,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,OAAO,uBAAuB,CAC5B,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAC/C,WAAW,CACZ,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;QACxD,MAAM,0BAA0B,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB;QACzD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"initSentry.d.ts","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAoBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAoC3D;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAgB7E"}
1
+ {"version":3,"file":"initSentry.d.ts","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAoBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAoC3D;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAgB7E"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared Sentry browser init for admin, kiosk, and customer PWAs.
3
3
  */
4
- import * as Sentry from '@sentry/react';
4
+ import { captureException as sentryCaptureException, init as sentryInit, setTag as sentrySetTag, } from '@sentry/react';
5
5
  import { redactClientLogMeta, redactStringSecrets } from '../clientLogRedaction.js';
6
6
  import { registerSentryCorrelationTagger } from './correlationTagBridge.js';
7
7
  export { setSentryCorrelationId } from './correlationTagBridge.js';
@@ -31,7 +31,7 @@ export function initSentry(options) {
31
31
  return;
32
32
  }
33
33
  try {
34
- Sentry.init({
34
+ sentryInit({
35
35
  dsn,
36
36
  environment: options.environment ?? 'development',
37
37
  release: options.release,
@@ -52,7 +52,7 @@ export function initSentry(options) {
52
52
  },
53
53
  });
54
54
  registerSentryCorrelationTagger((corrId) => {
55
- Sentry.setTag('correlationId', corrId);
55
+ sentrySetTag('correlationId', corrId);
56
56
  });
57
57
  initialized = true;
58
58
  }
@@ -67,7 +67,7 @@ export function captureException(error, context) {
67
67
  const extra = context !== undefined
68
68
  ? redactClientLogMeta(context)
69
69
  : undefined;
70
- Sentry.captureException(error, extra !== undefined ? { extra } : undefined);
70
+ sentryCaptureException(error, extra !== undefined ? { extra } : undefined);
71
71
  }
72
72
  export function captureBoundaryError(error, errorInfo) {
73
73
  if (!initialized) {
@@ -77,7 +77,7 @@ export function captureBoundaryError(error, errorInfo) {
77
77
  const componentStack = rawStack !== undefined && rawStack !== null
78
78
  ? redactStringSecrets(rawStack)
79
79
  : undefined;
80
- Sentry.captureException(error, {
80
+ sentryCaptureException(error, {
81
81
  contexts: {
82
82
  react: {
83
83
  componentStack,
@@ -1 +1 @@
1
- {"version":3,"file":"initSentry.js","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initSentry.js","sourceRoot":"","sources":["../../src/sentry/initSentry.ts"],"names":[],"mappings":"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"}
@@ -28,4 +28,13 @@ export declare function stripAxisControlledSimpleStates(states: Partial<Record<E
28
28
  export declare function applyTenantScopeToSimpleStates(allowedPurposes: TenantAllowedPurposes, surfaceScope: TenantSurfaceScope, current?: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>): Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>;
29
29
  export declare function inferAllowedPurposesFromSimpleStates(states: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>): TenantAllowedPurposes;
30
30
  export declare function inferSurfaceScopeFromSimpleStates(states: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>): TenantSurfaceScope;
31
+ /** Blocks whose explicit inactive SIMPLE values must survive axis strip + scope resolve (save/draft rebuild). */
32
+ export declare const EXPLICIT_INACTIVE_REINJECT_BLOCK_KEYS: readonly ["donation", "analytics_overview", "analytics_explore"];
33
+ /**
34
+ * Re-applies explicit off/hardOff from source after axis-controlled keys are stripped.
35
+ * Mirrors donation on BOTH save path; analytics use the same contract since 2.3.1.
36
+ */
37
+ export declare function reinjectExplicitInactiveSimpleStates(scopeBase: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>, sourceStates: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>, blockKeys?: readonly EntitlementBlockKey[]): Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>;
38
+ /** Preserve hardOff when dependency implications soften to off (UI Tvrdé vypnutí must stick). */
39
+ export declare function preserveHardOffSimpleStates(implied: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>, sourceStates: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>, blockKeys?: readonly EntitlementBlockKey[]): Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>;
31
40
  //# sourceMappingURL=applyTenantScopeToSimpleStates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyTenantScopeToSimpleStates.d.ts","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMvF,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,0CAGQ,CAAC;AAEpD,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,gDAGQ,CAAC;AAEpD,mHAAmH;AACnH,eAAO,MAAM,iCAAiC,+EAGK,CAAC;AAEpD,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9F,uFAAuF;AACvF,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAExG;AAED,sFAAsF;AACtF,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CA2B9G;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,4BAA4B,CAExH;AAaD,qGAAqG;AACrG,eAAO,MAAM,wCAAwC,mCAEF,CAAC;AAEpD,MAAM,MAAM,kCAAkC,GAC5C,CAAC,OAAO,wCAAwC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAExF;AAsBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAgBT;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACpE,KAAK,CAAC,EAAE;IACN,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC3C,GACA,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAyED,4FAA4F;AAC5F,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,qBAAqB,EACtC,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,qBAAqB,CAavB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,kBAAkB,CAapB"}
1
+ {"version":3,"file":"applyTenantScopeToSimpleStates.d.ts","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMvF,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,0CAGQ,CAAC;AAEpD,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,gDAGQ,CAAC;AAEpD,mHAAmH;AACnH,eAAO,MAAM,iCAAiC,+EAGK,CAAC;AAEpD,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9F,uFAAuF;AACvF,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAExG;AAED,sFAAsF;AACtF,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CA2B9G;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,4BAA4B,CAExH;AAaD,qGAAqG;AACrG,eAAO,MAAM,wCAAwC,mCAEF,CAAC;AAEpD,MAAM,MAAM,kCAAkC,GAC5C,CAAC,OAAO,wCAAwC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAExF;AAsBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAgBT;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACpE,KAAK,CAAC,EAAE;IACN,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC3C,GACA,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAuFD,4FAA4F;AAC5F,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,qBAAqB,EACtC,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,qBAAqB,CAavB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,kBAAkB,CAapB;AAED,iHAAiH;AACjH,eAAO,MAAM,qCAAqC,kEAIC,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACvE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EAC1E,SAAS,GAAE,SAAS,mBAAmB,EAA0C,GAChF,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAS9D;AAED,iGAAiG;AACjG,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACrE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EAC1E,SAAS,GAAE,SAAS,mBAAmB,EAA0C,GAChF,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D"}
@@ -147,8 +147,18 @@ function applyAllowedPurposesToStates(allowedPurposes, states) {
147
147
  if (states.donation === undefined || states.donation === 'on' || states.donation === 'softOffVisible' || states.donation === 'softOffHidden') {
148
148
  result.donation = ON;
149
149
  }
150
- result.analytics_overview = ON;
151
- result.analytics_explore = ON;
150
+ if (states.analytics_overview === undefined ||
151
+ states.analytics_overview === 'on' ||
152
+ states.analytics_overview === 'softOffVisible' ||
153
+ states.analytics_overview === 'softOffHidden') {
154
+ result.analytics_overview = ON;
155
+ }
156
+ if (states.analytics_explore === undefined ||
157
+ states.analytics_explore === 'on' ||
158
+ states.analytics_explore === 'softOffVisible' ||
159
+ states.analytics_explore === 'softOffHidden') {
160
+ result.analytics_explore = ON;
161
+ }
152
162
  result.pickup_points = ON;
153
163
  result.inventory_management = ON;
154
164
  break;
@@ -219,4 +229,34 @@ export function inferSurfaceScopeFromSimpleStates(states) {
219
229
  }
220
230
  return 'BOTH';
221
231
  }
232
+ /** Blocks whose explicit inactive SIMPLE values must survive axis strip + scope resolve (save/draft rebuild). */
233
+ export const EXPLICIT_INACTIVE_REINJECT_BLOCK_KEYS = [
234
+ 'donation',
235
+ 'analytics_overview',
236
+ 'analytics_explore',
237
+ ];
238
+ /**
239
+ * Re-applies explicit off/hardOff from source after axis-controlled keys are stripped.
240
+ * Mirrors donation on BOTH save path; analytics use the same contract since 2.3.1.
241
+ */
242
+ export function reinjectExplicitInactiveSimpleStates(scopeBase, sourceStates, blockKeys = EXPLICIT_INACTIVE_REINJECT_BLOCK_KEYS) {
243
+ const result = { ...scopeBase };
244
+ for (const blockKey of blockKeys) {
245
+ const explicit = sourceStates[blockKey];
246
+ if (explicit !== undefined && !isRuntimeActiveSimpleEntitlementState(explicit)) {
247
+ result[blockKey] = explicit;
248
+ }
249
+ }
250
+ return result;
251
+ }
252
+ /** Preserve hardOff when dependency implications soften to off (UI Tvrdé vypnutí must stick). */
253
+ export function preserveHardOffSimpleStates(implied, sourceStates, blockKeys = EXPLICIT_INACTIVE_REINJECT_BLOCK_KEYS) {
254
+ let result = implied;
255
+ for (const blockKey of blockKeys) {
256
+ if (sourceStates[blockKey] === 'hardOff' && result[blockKey] === 'off') {
257
+ result = { ...result, [blockKey]: 'hardOff' };
258
+ }
259
+ }
260
+ return result;
261
+ }
222
262
  //# sourceMappingURL=applyTenantScopeToSimpleStates.js.map