pi-kiosk-shared 2.1.40 → 2.1.42

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 (56) hide show
  1. package/dist/analyticsApiTypes.d.ts +28 -0
  2. package/dist/analyticsApiTypes.d.ts.map +1 -0
  3. package/dist/analyticsApiTypes.js +29 -0
  4. package/dist/analyticsApiTypes.js.map +1 -0
  5. package/dist/analyticsConsentAllowlist.d.ts +4 -0
  6. package/dist/analyticsConsentAllowlist.d.ts.map +1 -0
  7. package/dist/analyticsConsentAllowlist.js +23 -0
  8. package/dist/analyticsConsentAllowlist.js.map +1 -0
  9. package/dist/analyticsDevLog.d.ts +2 -0
  10. package/dist/analyticsDevLog.d.ts.map +1 -0
  11. package/dist/analyticsDevLog.js +14 -0
  12. package/dist/analyticsDevLog.js.map +1 -0
  13. package/dist/analyticsEmitterManifest.d.ts +22 -0
  14. package/dist/analyticsEmitterManifest.d.ts.map +1 -0
  15. package/dist/analyticsEmitterManifest.js +68 -0
  16. package/dist/analyticsEmitterManifest.js.map +1 -0
  17. package/dist/analyticsEventDescriptions.d.ts +4 -0
  18. package/dist/analyticsEventDescriptions.d.ts.map +1 -0
  19. package/dist/analyticsEventDescriptions.js +166 -0
  20. package/dist/analyticsEventDescriptions.js.map +1 -0
  21. package/dist/api.d.ts +0 -2
  22. package/dist/api.d.ts.map +1 -1
  23. package/dist/api.js +0 -3
  24. package/dist/api.js.map +1 -1
  25. package/dist/auditEventDescriptions.d.ts +5 -0
  26. package/dist/auditEventDescriptions.d.ts.map +1 -0
  27. package/dist/auditEventDescriptions.js +164 -0
  28. package/dist/auditEventDescriptions.js.map +1 -0
  29. package/dist/auditEventLabels.d.ts +1 -1
  30. package/dist/auditEventLabels.d.ts.map +1 -1
  31. package/dist/auditEventLabels.js +159 -13
  32. package/dist/auditEventLabels.js.map +1 -1
  33. package/dist/auditMetadataDisplayFields.d.ts.map +1 -1
  34. package/dist/auditMetadataDisplayFields.js +2 -4
  35. package/dist/auditMetadataDisplayFields.js.map +1 -1
  36. package/dist/crossTab/CrossTabBus.d.ts +20 -0
  37. package/dist/crossTab/CrossTabBus.d.ts.map +1 -0
  38. package/dist/crossTab/CrossTabBus.js +115 -0
  39. package/dist/crossTab/CrossTabBus.js.map +1 -0
  40. package/dist/crossTab/index.d.ts +38 -0
  41. package/dist/crossTab/index.d.ts.map +1 -0
  42. package/dist/crossTab/index.js +8 -0
  43. package/dist/crossTab/index.js.map +1 -0
  44. package/dist/getAnalyticsEventDescription.d.ts +3 -0
  45. package/dist/getAnalyticsEventDescription.d.ts.map +1 -0
  46. package/dist/getAnalyticsEventDescription.js +9 -0
  47. package/dist/getAnalyticsEventDescription.js.map +1 -0
  48. package/dist/getAuditEventDescription.d.ts +3 -0
  49. package/dist/getAuditEventDescription.d.ts.map +1 -0
  50. package/dist/getAuditEventDescription.js +9 -0
  51. package/dist/getAuditEventDescription.js.map +1 -0
  52. package/dist/index.d.ts +5 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +5 -0
  55. package/dist/index.js.map +1 -1
  56. package/package.json +31 -1
@@ -0,0 +1,164 @@
1
+ /** Plain-language audit descriptions for operators (cs + en), 1–3 short sentences. */
2
+ export const AUDIT_EVENT_DESCRIPTIONS = {
3
+ 'auth.admin.login.success': {
4
+ en: 'Recorded when an administrator signs in successfully. One line per successful login. Passwords and full personal details are never stored in this log.',
5
+ cs: 'Zapíše se, když se administrátor úspěšně přihlásí. Jeden řádek za každé úspěšné přihlášení. Hesla ani plné osobní údaje se v tomto záznamu neukládají.',
6
+ },
7
+ 'auth.admin.login.failed': {
8
+ en: 'Recorded when a login attempt fails (wrong password or unknown user). One line per failed try. Only the username typed in is kept — not the password.',
9
+ cs: 'Zapíše se, když přihlášení nevyjde (špatné heslo nebo neznámý účet). Jeden řádek za neúspěšný pokus. Ukládá se jen zadané jméno — ne heslo.',
10
+ },
11
+ 'auth.admin.logout': {
12
+ en: 'Recorded when an administrator clicks sign out. One line per logout.',
13
+ cs: 'Zapíše se, když administrátor klikne na odhlášení. Jeden řádek za odhlášení.',
14
+ },
15
+ 'auth.admin.access.denied': {
16
+ en: 'Recorded when a signed-in administrator tries to open a page or action they are not allowed to use. One line per blocked attempt. Does not save what they typed in forms.',
17
+ cs: 'Zapíše se, když přihlášený administrátor zkusí otevřít stránku nebo akci, na kterou nemá právo. Jeden řádek za zamítnutý pokus. Neukládá to, co psal do formulářů.',
18
+ },
19
+ 'admin.invite.created': {
20
+ en: 'Recorded when a new administrator is invited by email and must set a password. One line per new invitation. The invitation link itself is not stored here.',
21
+ cs: 'Zapíše se, když se pozve nový administrátor e-mailem a musí si nastavit heslo. Jeden řádek za novou pozvánku. Odkaz z pozvánky se sem neukládá.',
22
+ },
23
+ 'admin.invite.resent': {
24
+ en: 'Recorded when the invitation email is sent again to someone who has not finished signing up. One line per resend.',
25
+ cs: 'Zapíše se, když se znovu pošle pozvánka tomu, kdo se ještě nedokončil zaregistrovat. Jeden řádek za opětovné odeslání.',
26
+ },
27
+ 'admin.invite.activated': {
28
+ en: 'Recorded when the invited person finishes setup and can sign in. One line per completed activation. Passwords are never stored.',
29
+ cs: 'Zapíše se, když pozvaný dokončí nastavení a může se přihlásit. Jeden řádek za dokončenou aktivaci. Hesla se neukládají.',
30
+ },
31
+ 'admin.account.username_changed': {
32
+ en: 'Recorded when an administrator changes their own sign-in name. One line per change. The old name is not kept in this log.',
33
+ cs: 'Zapíše se, když administrátor změní své přihlašovací jméno. Jeden řádek za změnu. Staré jméno se v záznamu neuchovává.',
34
+ },
35
+ 'admin.account.password_changed': {
36
+ en: 'Recorded when an administrator changes their own password successfully. One line per change. The password itself is never stored.',
37
+ cs: 'Zapíše se, když administrátor úspěšně změní své heslo. Jeden řádek za změnu. Samotné heslo se nikdy neukládá.',
38
+ },
39
+ 'admin.credentials.provider_secret.set': {
40
+ en: 'Recorded when payment provider connection details are first saved for your organization. One line per save. Secret keys are not copied into the audit text.',
41
+ cs: 'Zapíše se při prvním uložení připojení k platebnímu poskytovateli pro vaši organizaci. Jeden řádek za uložení. Tajné klíče se do textu auditu nekopírují.',
42
+ },
43
+ 'admin.credentials.provider_secret.rotated': {
44
+ en: 'Recorded when an existing payment provider secret is replaced with a new one. One line per replacement. The actual secret value is not shown.',
45
+ cs: 'Zapíše se, když se existující tajný klíč poskytovatele nahradí novým. Jeden řádek za výměnu. Skutečná hodnota klíče se nezobrazuje.',
46
+ },
47
+ 'admin.credentials.provider_secret.deleted': {
48
+ en: 'Recorded when payment provider connection details are removed. One line per removal.',
49
+ cs: 'Zapíše se, když se odstraní připojení k platebnímu poskytovateli. Jeden řádek za odstranění.',
50
+ },
51
+ 'admin.credentials.bank_secret.set': {
52
+ en: 'Recorded when bank transfer settings (account for incoming payments) are saved or updated. One line per save. Full account numbers are not repeated in the audit line.',
53
+ cs: 'Zapíše se při uložení nebo úpravě nastavení bankovního převodu (účet pro příchozí platby). Jeden řádek za uložení. Celá čísla účtů se v řádku auditu neopakují.',
54
+ },
55
+ 'admin.credentials.bank_secret.rotated': {
56
+ en: 'Recorded when bank payment settings are updated in a “rotation” step without deleting them first. One line when this happens. Account numbers stay private.',
57
+ cs: 'Zapíše se při aktualizaci bankovního nastavení ve kroku „rotace“ bez předchozího smazání. Jeden řádek při této akci. Čísla účtů zůstávají soukromá.',
58
+ },
59
+ 'admin.settings.updated': {
60
+ en: 'Recorded when important organization or admin settings are saved. One line per successful save when the system writes this event. Exact setting values are not listed in the audit text.',
61
+ cs: 'Zapíše se při uložení důležitých nastavení organizace nebo administrace. Jeden řádek za úspěšné uložení, pokud systém tuto událost zapisuje. Konkrétní hodnoty nastavení nejsou v textu auditu.',
62
+ },
63
+ 'admin.user.created': {
64
+ en: 'Recorded when a new administrator account is created for your organization (without email invite). One line per new user.',
65
+ cs: 'Zapíše se při vytvoření nového účtu administrátora pro vaši organizaci (bez e-mailové pozvánky). Jeden řádek za nového uživatele.',
66
+ },
67
+ 'admin.user.deactivated': {
68
+ en: 'Recorded when an administrator is blocked from signing in but their history is kept. One line per deactivation.',
69
+ cs: 'Zapíše se, když se administrátorovi zablokuje přihlášení, ale historie zůstane. Jeden řádek za deaktivaci.',
70
+ },
71
+ 'admin.user.reactivated': {
72
+ en: 'Recorded when a blocked administrator is allowed to sign in again. One line per reactivation.',
73
+ cs: 'Zapíše se, když se zablokovanému administrátorovi znovu povolí přihlášení. Jeden řádek za obnovení.',
74
+ },
75
+ 'admin.user.permanently_deleted': {
76
+ en: 'Recorded when an administrator account is deleted for good. One line per deletion. Other audit history stays.',
77
+ cs: 'Zapíše se, když je účet administrátora trvale smazán. Jeden řádek za smazání. Ostatní auditní historie zůstává.',
78
+ },
79
+ 'admin.product.deactivated': {
80
+ en: 'Recorded when a product is hidden and cannot be sold on kiosks until turned back on. One line per product. The product file is not erased.',
81
+ cs: 'Zapíše se, když je produkt skrytý a na kioscích se neprodává, dokud se znovu nezapne. Jeden řádek za produkt. Produkt se ze systému nesmaže.',
82
+ },
83
+ 'admin.product.reactivated': {
84
+ en: 'Recorded when a hidden product is made available for sale again. One line per product.',
85
+ cs: 'Zapíše se, když je skrytý produkt znovu zpřístupněn k prodeji. Jeden řádek za produkt.',
86
+ },
87
+ 'admin.product.permanently_deleted': {
88
+ en: 'Recorded when a product is deleted permanently and cannot be brought back. One line per product. Past sales records stay.',
89
+ cs: 'Zapíše se, když je produkt trvale smazán a nelze ho obnovit. Jeden řádek za produkt. Minulé prodeje zůstávají.',
90
+ },
91
+ 'admin.kiosk.deactivated': {
92
+ en: 'Recorded when a kiosk is turned off for customers. One line per kiosk. Payments already in progress are handled separately.',
93
+ cs: 'Zapíše se, když je kiosk vypnutý pro zákazníky. Jeden řádek za kiosk. Platby už rozjeté se řeší zvlášť.',
94
+ },
95
+ 'admin.kiosk.reactivated': {
96
+ en: 'Recorded when a turned-off kiosk is enabled again. One line per kiosk.',
97
+ cs: 'Zapíše se, když je vypnutý kiosk znovu zapnutý. Jeden řádek za kiosk.',
98
+ },
99
+ 'admin.kiosk.permanently_deleted': {
100
+ en: 'Recorded when a kiosk is removed from the system for good. One line per kiosk. Old payment and audit records stay for compliance.',
101
+ cs: 'Zapíše se, když je kiosk trvale odstraněn ze systému. Jeden řádek za kiosk. Staré platby a audit zůstávají kvůli evidenci.',
102
+ },
103
+ 'admin.tenant.deactivated': {
104
+ en: 'Recorded when an entire customer organization (tenant) is closed or suspended. One line per closure. Customer personal data is not copied into this line.',
105
+ cs: 'Zapíše se, když je celá zákaznická organizace (tenant) uzavřena nebo pozastavena. Jeden řádek za uzavření. Osobní údaje zákazníků se do řádku nekopírují.',
106
+ },
107
+ 'admin.tenant.permanently_deleted': {
108
+ en: 'Recorded when an organization is fully deleted from the system. One line per delete run. Summary counts may appear, not full customer lists.',
109
+ cs: 'Zapíše se, když je organizace kompletně smazána ze systému. Jeden řádek za běh mazání. Mohou být souhrnná čísla, ne celé seznamy zákazníků.',
110
+ },
111
+ 'admin.tenant.reactivated': {
112
+ en: 'Recorded when a closed organization is opened again. One line per reactivation.',
113
+ cs: 'Zapíše se, když je uzavřená organizace znovu otevřena. Jeden řádek za obnovení.',
114
+ },
115
+ 'admin.donation_template.created': {
116
+ en: 'Recorded when a new preset list of donation amounts is created. One line per new template.',
117
+ cs: 'Zapíše se při vytvoření nového seznamu přednastavených částek daru. Jeden řádek za novou šablonu.',
118
+ },
119
+ 'admin.donation_template.updated': {
120
+ en: 'Recorded when an existing donation amount list is edited. One line per saved change.',
121
+ cs: 'Zapíše se při úpravě existujícího seznamu částek daru. Jeden řádek za uloženou změnu.',
122
+ },
123
+ 'admin.donation_template.default_set': {
124
+ en: 'Recorded when one donation amount list is marked as the default for the organization. One line when the default changes.',
125
+ cs: 'Zapíše se, když je jeden seznam částek daru označen jako výchozí pro organizaci. Jeden řádek při změně výchozího.',
126
+ },
127
+ 'admin.kiosk.donation_projects.updated': {
128
+ en: 'Recorded when which charity projects appear on a kiosk is saved. One line per save. Project names are not all listed in the audit line.',
129
+ cs: 'Zapíše se při uložení toho, které dárkové projekty se na kiosku zobrazují. Jeden řádek za uložení. Názvy všech projektů nejsou v řádku auditu.',
130
+ },
131
+ 'admin.kiosk.donation_amounts.updated': {
132
+ en: 'Recorded when donation amount presets linked to a kiosk are updated. One line per save.',
133
+ cs: 'Zapíše se při aktualizaci přednastavených částek daru navázaných na kiosk. Jeden řádek za uložení.',
134
+ },
135
+ 'dev.tenant.created': {
136
+ en: 'Recorded when platform staff create a brand-new organization in the dev tools. One line per new organization. Invitation links and passwords are not stored here.',
137
+ cs: 'Zapíše se, když pracovníci platformy v dev nástrojích založí novou organizaci. Jeden řádek za novou organizaci. Odkazy z pozvánek a hesla se sem neukládají.',
138
+ },
139
+ 'dev.tenant.updated': {
140
+ en: 'Recorded when platform staff change an organization’s code or display name. One line per successful update.',
141
+ cs: 'Zapíše se, když pracovníci platformy změní kód nebo zobrazované jméno organizace. Jeden řádek za úspěšnou změnu.',
142
+ },
143
+ 'payment.transaction.state_changed': {
144
+ en: 'Recorded automatically when a payment moves to a new status (paid, cancelled, etc.). One line per status change. If writing the line fails, the payment still changes.',
145
+ cs: 'Zapíše se automaticky, když platba přejde do nového stavu (zaplaceno, zrušeno atd.). Jeden řádek za změnu stavu. Když se zápis nepovede, platba se stejně změní.',
146
+ },
147
+ 'reconciliation.transaction.refund_candidate.marked': {
148
+ en: 'Recorded when staff mark a bank payment as needing a possible refund check. One line per mark. Does not send money back by itself.',
149
+ cs: 'Zapíše se, když pracovník označí bankovní platbu k možné kontrole vrácení peněz. Jeden řádek za označení. Samo o sobě peníze nevrací.',
150
+ },
151
+ 'reconciliation.transaction.refund_candidate.unmarked': {
152
+ en: 'Recorded when staff remove the “needs refund check” flag from a payment. One line per removal.',
153
+ cs: 'Zapíše se, když pracovník zruší příznak „kontrola vrácení“ u platby. Jeden řádek za zrušení.',
154
+ },
155
+ 'export.analytics.explore.exported': {
156
+ en: 'Recorded when someone downloads a spreadsheet export from customer behavior analytics. One line per successful export. The spreadsheet contents are not copied into the audit line.',
157
+ cs: 'Zapíše se, když někdo stáhne export tabulky z analýzy chování zákazníků. Jeden řádek za úspěšný export. Obsah tabulky se do řádku auditu nekopíruje.',
158
+ },
159
+ 'gdpr.erasure.completed': {
160
+ en: 'Recorded when a confirmed GDPR erasure request is finished and personal data is removed or anonymized as required. One line per completed request. The person’s email is not stored in this line.',
161
+ cs: 'Zapíše se po dokončení potvrzené žádosti o výmaz podle GDPR a odstranění nebo anonymizaci údajů. Jeden řádek za dokončenou žádost. E-mail dotčené osoby se v řádku neukládá.',
162
+ },
163
+ };
164
+ //# sourceMappingURL=auditEventDescriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditEventDescriptions.js","sourceRoot":"","sources":["../src/auditEventDescriptions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { type AuditEventCode } from './auditEventCodes.js';
2
- import { type LocalizedLabel } from './labels/localizedLabel.js';
2
+ import type { LocalizedLabel } from './labels/localizedLabel.js';
3
3
  export declare const AUDIT_EVENT_LABELS: Record<AuditEventCode, LocalizedLabel>;
4
4
  //# sourceMappingURL=auditEventLabels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auditEventLabels.d.ts","sourceRoot":"","sources":["../src/auditEventLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA2BrF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,CAAsB,CAAC"}
1
+ {"version":3,"file":"auditEventLabels.d.ts","sourceRoot":"","sources":["../src/auditEventLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA8KjE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,CAAsB,CAAC"}
@@ -1,25 +1,171 @@
1
1
  import { AUDIT_EVENT_CODES } from './auditEventCodes.js';
2
- import { dotNotationToLabel } from './labels/localizedLabel.js';
3
- /** Operator-facing audit event labels (cs + en). */
2
+ /** Operator-facing audit event labels — every catalog code has distinct cs + en. */
4
3
  const AUDIT_LABEL_OVERRIDES = {
5
- 'auth.admin.login.success': { en: 'Admin login succeeded', cs: 'Přihlášení administrátora úspěšné' },
6
- 'auth.admin.login.failed': { en: 'Admin login failed', cs: 'Přihlášení administrátora selhalo' },
7
- 'auth.admin.logout': { en: 'Admin logout', cs: 'Odhlášení administrátora' },
8
- 'auth.admin.access.denied': { en: 'Access denied', cs: 'Přístup odepřen' },
9
- 'gdpr.erasure.completed': { en: 'GDPR erasure completed', cs: 'GDPR výmaz dokončen' },
10
- 'export.analytics.explore.exported': {
11
- en: 'Analytics explore export',
12
- cs: 'Export průzkumu analytiky',
4
+ 'auth.admin.login.success': {
5
+ en: 'Admin login succeeded',
6
+ cs: 'Přihlášení administrátora úspěšné',
7
+ },
8
+ 'auth.admin.login.failed': {
9
+ en: 'Admin login failed',
10
+ cs: 'Přihlášení administrátora selhalo',
11
+ },
12
+ 'auth.admin.logout': {
13
+ en: 'Admin logout',
14
+ cs: 'Odhlášení administrátora',
15
+ },
16
+ 'auth.admin.access.denied': {
17
+ en: 'Access denied',
18
+ cs: 'Přístup odepřen',
19
+ },
20
+ 'admin.invite.created': {
21
+ en: 'Admin invite created',
22
+ cs: 'Pozvánka administrátora vytvořena',
23
+ },
24
+ 'admin.invite.resent': {
25
+ en: 'Admin invite resent',
26
+ cs: 'Pozvánka administrátora znovu odeslána',
27
+ },
28
+ 'admin.invite.activated': {
29
+ en: 'Admin invite activated',
30
+ cs: 'Pozvánka administrátora aktivována',
31
+ },
32
+ 'admin.account.username_changed': {
33
+ en: 'Admin username changed',
34
+ cs: 'Změna přihlašovacího jména',
35
+ },
36
+ 'admin.account.password_changed': {
37
+ en: 'Admin password changed',
38
+ cs: 'Změna hesla administrátora',
39
+ },
40
+ 'admin.credentials.provider_secret.set': {
41
+ en: 'Payment provider secret set',
42
+ cs: 'Nastavení klíče platebního poskytovatele',
43
+ },
44
+ 'admin.credentials.provider_secret.rotated': {
45
+ en: 'Payment provider secret rotated',
46
+ cs: 'Výměna klíče platebního poskytovatele',
47
+ },
48
+ 'admin.credentials.provider_secret.deleted': {
49
+ en: 'Payment provider secret deleted',
50
+ cs: 'Smazání klíče platebního poskytovatele',
51
+ },
52
+ 'admin.credentials.bank_secret.set': {
53
+ en: 'Bank transfer settings saved',
54
+ cs: 'Uložení nastavení bankovního převodu',
55
+ },
56
+ 'admin.credentials.bank_secret.rotated': {
57
+ en: 'Bank transfer settings updated',
58
+ cs: 'Aktualizace nastavení bankovního převodu',
59
+ },
60
+ 'admin.settings.updated': {
61
+ en: 'Settings updated',
62
+ cs: 'Nastavení změněna',
63
+ },
64
+ 'admin.user.created': {
65
+ en: 'Admin user created',
66
+ cs: 'Administrátor vytvořen',
67
+ },
68
+ 'admin.user.deactivated': {
69
+ en: 'Admin user deactivated',
70
+ cs: 'Administrátor deaktivován',
71
+ },
72
+ 'admin.user.reactivated': {
73
+ en: 'Admin user reactivated',
74
+ cs: 'Administrátor znovu aktivován',
75
+ },
76
+ 'admin.user.permanently_deleted': {
77
+ en: 'Admin user permanently deleted',
78
+ cs: 'Administrátor trvale smazán',
79
+ },
80
+ 'admin.product.deactivated': {
81
+ en: 'Product deactivated',
82
+ cs: 'Produkt deaktivován',
83
+ },
84
+ 'admin.product.reactivated': {
85
+ en: 'Product reactivated',
86
+ cs: 'Produkt znovu aktivován',
87
+ },
88
+ 'admin.product.permanently_deleted': {
89
+ en: 'Product permanently deleted',
90
+ cs: 'Produkt trvale smazán',
91
+ },
92
+ 'admin.kiosk.deactivated': {
93
+ en: 'Kiosk deactivated',
94
+ cs: 'Kiosk deaktivován',
95
+ },
96
+ 'admin.kiosk.reactivated': {
97
+ en: 'Kiosk reactivated',
98
+ cs: 'Kiosk znovu aktivován',
99
+ },
100
+ 'admin.kiosk.permanently_deleted': {
101
+ en: 'Kiosk permanently deleted',
102
+ cs: 'Kiosk trvale smazán',
103
+ },
104
+ 'admin.tenant.deactivated': {
105
+ en: 'Organization deactivated',
106
+ cs: 'Organizace deaktivována',
107
+ },
108
+ 'admin.tenant.permanently_deleted': {
109
+ en: 'Organization permanently deleted',
110
+ cs: 'Organizace trvale smazána',
111
+ },
112
+ 'admin.tenant.reactivated': {
113
+ en: 'Organization reactivated',
114
+ cs: 'Organizace znovu aktivována',
115
+ },
116
+ 'admin.donation_template.created': {
117
+ en: 'Donation amount template created',
118
+ cs: 'Šablona částek daru vytvořena',
119
+ },
120
+ 'admin.donation_template.updated': {
121
+ en: 'Donation amount template updated',
122
+ cs: 'Šablona částek daru upravena',
123
+ },
124
+ 'admin.donation_template.default_set': {
125
+ en: 'Default donation template set',
126
+ cs: 'Výchozí šablona daru nastavena',
127
+ },
128
+ 'admin.kiosk.donation_projects.updated': {
129
+ en: 'Kiosk donation projects updated',
130
+ cs: 'Projekty daru na kiosku upraveny',
131
+ },
132
+ 'admin.kiosk.donation_amounts.updated': {
133
+ en: 'Kiosk donation amounts updated',
134
+ cs: 'Částky daru na kiosku upraveny',
135
+ },
136
+ 'dev.tenant.created': {
137
+ en: 'Organization created (platform)',
138
+ cs: 'Organizace založena (platforma)',
139
+ },
140
+ 'dev.tenant.updated': {
141
+ en: 'Organization updated (platform)',
142
+ cs: 'Organizace upravena (platforma)',
13
143
  },
14
144
  'payment.transaction.state_changed': {
15
- en: 'Payment transaction state changed',
16
- cs: 'Změna stavu platební transakce',
145
+ en: 'Payment status changed',
146
+ cs: 'Změna stavu platby',
147
+ },
148
+ 'reconciliation.transaction.refund_candidate.marked': {
149
+ en: 'Refund check marked',
150
+ cs: 'Označeno ke kontrole vrácení',
151
+ },
152
+ 'reconciliation.transaction.refund_candidate.unmarked': {
153
+ en: 'Refund check cleared',
154
+ cs: 'Zrušeno označení vrácení',
155
+ },
156
+ 'export.analytics.explore.exported': {
157
+ en: 'Customer behavior export',
158
+ cs: 'Export chování zákazníků',
159
+ },
160
+ 'gdpr.erasure.completed': {
161
+ en: 'GDPR erasure completed',
162
+ cs: 'GDPR výmaz dokončen',
17
163
  },
18
164
  };
19
165
  function buildAuditLabels() {
20
166
  const labels = {};
21
167
  for (const code of AUDIT_EVENT_CODES) {
22
- labels[code] = AUDIT_LABEL_OVERRIDES[code] ?? dotNotationToLabel(code);
168
+ labels[code] = AUDIT_LABEL_OVERRIDES[code];
23
169
  }
24
170
  return labels;
25
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auditEventLabels.js","sourceRoot":"","sources":["../src/auditEventLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAuB,MAAM,4BAA4B,CAAC;AAErF,oDAAoD;AACpD,MAAM,qBAAqB,GAAoD;IAC7E,0BAA0B,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,mCAAmC,EAAE;IACpG,yBAAyB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,mCAAmC,EAAE;IAChG,mBAAmB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,0BAA0B,EAAE;IAC3E,0BAA0B,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE;IAC1E,wBAAwB,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,qBAAqB,EAAE;IACrF,mCAAmC,EAAE;QACnC,EAAE,EAAE,0BAA0B;QAC9B,EAAE,EAAE,2BAA2B;KAChC;IACD,mCAAmC,EAAE;QACnC,EAAE,EAAE,mCAAmC;QACvC,EAAE,EAAE,gCAAgC;KACrC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,EAA4C,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA2C,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"auditEventLabels.js","sourceRoot":"","sources":["../src/auditEventLabels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auditMetadataDisplayFields.d.ts","sourceRoot":"","sources":["../src/auditMetadataDisplayFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,EAAE,OAAO,CACjD,MAAM,CAAC,cAAc,EAAE,SAAS,yBAAyB,EAAE,CAAC,CAqB7D,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAChB,SAAS,yBAAyB,EAAE,CAEtC"}
1
+ {"version":3,"file":"auditMetadataDisplayFields.d.ts","sourceRoot":"","sources":["../src/auditMetadataDisplayFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,EAAE,OAAO,CACjD,MAAM,CAAC,cAAc,EAAE,SAAS,yBAAyB,EAAE,CAAC,CAmB7D,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAChB,SAAS,yBAAyB,EAAE,CAEtC"}
@@ -1,13 +1,13 @@
1
1
  /** Drawer highlight fields per event code (AUTH + GDPR minimum for Phase 2). */
2
2
  export const AUDIT_METADATA_DISPLAY_FIELDS = {
3
3
  'auth.admin.login.success': [
4
- { key: 'authMethod', labelKey: 'compliance.audit.metadata.authMethod' },
4
+ { key: 'authChannel', labelKey: 'compliance.audit.metadata.authChannel' },
5
5
  ],
6
6
  'auth.admin.login.failed': [
7
7
  { key: 'attemptedUsername', labelKey: 'compliance.audit.metadata.attemptedUsername' },
8
8
  ],
9
9
  'auth.admin.logout': [
10
- { key: 'authMethod', labelKey: 'compliance.audit.metadata.authMethod' },
10
+ { key: 'authChannel', labelKey: 'compliance.audit.metadata.authChannel' },
11
11
  ],
12
12
  'auth.admin.access.denied': [
13
13
  { key: 'capability', labelKey: 'compliance.audit.metadata.capability' },
@@ -16,8 +16,6 @@ export const AUDIT_METADATA_DISPLAY_FIELDS = {
16
16
  'gdpr.erasure.completed': [
17
17
  { key: 'dataSubjectRequestId', labelKey: 'compliance.audit.metadata.dataSubjectRequestId' },
18
18
  { key: 'customersAnonymized', labelKey: 'compliance.audit.metadata.customersAnonymized' },
19
- { key: 'marketingConsentsDeleted', labelKey: 'compliance.audit.metadata.marketingConsentsDeleted' },
20
- { key: 'analyticsConsentsDeleted', labelKey: 'compliance.audit.metadata.analyticsConsentsDeleted' },
21
19
  ],
22
20
  };
23
21
  export function getAuditMetadataDisplayFields(eventCode) {
@@ -1 +1 @@
1
- {"version":3,"file":"auditMetadataDisplayFields.js","sourceRoot":"","sources":["../src/auditMetadataDisplayFields.ts"],"names":[],"mappings":"AAOA,gFAAgF;AAChF,MAAM,CAAC,MAAM,6BAA6B,GAEtC;IACF,0BAA0B,EAAE;QAC1B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,sCAAsC,EAAE;KACxE;IACD,yBAAyB,EAAE;QACzB,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6CAA6C,EAAE;KACtF;IACD,mBAAmB,EAAE;QACnB,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,sCAAsC,EAAE;KACxE;IACD,0BAA0B,EAAE;QAC1B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,sCAAsC,EAAE;QACvE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,iCAAiC,EAAE;KAC9D;IACD,wBAAwB,EAAE;QACxB,EAAE,GAAG,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gDAAgD,EAAE;QAC3F,EAAE,GAAG,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+CAA+C,EAAE;QACzF,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,oDAAoD,EAAE;QACnG,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,oDAAoD,EAAE;KACpG;CACF,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAC3C,SAAiB;IAEjB,OAAO,6BAA6B,CAAC,SAA2B,CAAC,IAAI,EAAE,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"auditMetadataDisplayFields.js","sourceRoot":"","sources":["../src/auditMetadataDisplayFields.ts"],"names":[],"mappings":"AAOA,gFAAgF;AAChF,MAAM,CAAC,MAAM,6BAA6B,GAEtC;IACF,0BAA0B,EAAE;QAC1B,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,uCAAuC,EAAE;KAC1E;IACD,yBAAyB,EAAE;QACzB,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6CAA6C,EAAE;KACtF;IACD,mBAAmB,EAAE;QACnB,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,uCAAuC,EAAE;KAC1E;IACD,0BAA0B,EAAE;QAC1B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,sCAAsC,EAAE;QACvE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,iCAAiC,EAAE;KAC9D;IACD,wBAAwB,EAAE;QACxB,EAAE,GAAG,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gDAAgD,EAAE;QAC3F,EAAE,GAAG,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+CAA+C,EAAE;KAC1F;CACF,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAC3C,SAAiB;IAEjB,OAAO,6BAA6B,CAAC,SAA2B,CAAC,IAAI,EAAE,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cross-tab messaging bus — BroadcastChannel with localStorage fallback.
3
+ * No secrets on the wire; payloads must be non-sensitive sync signals only.
4
+ */
5
+ export interface CrossTabBus<TMessage extends {
6
+ type: string;
7
+ }> {
8
+ publish(message: TMessage): void;
9
+ subscribe(handler: (msg: TMessage) => void): () => void;
10
+ close(): void;
11
+ }
12
+ interface CrossTabBusOptions {
13
+ readonly channelName: string;
14
+ readonly debounceMs?: number;
15
+ }
16
+ export declare function createCrossTabBus<TMessage extends {
17
+ type: string;
18
+ }>(options: CrossTabBusOptions): CrossTabBus<TMessage>;
19
+ export {};
20
+ //# sourceMappingURL=CrossTabBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrossTabBus.d.ts","sourceRoot":"","sources":["../../src/crossTab/CrossTabBus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IAC5D,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACxD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACjE,OAAO,EAAE,kBAAkB,GAC1B,WAAW,CAAC,QAAQ,CAAC,CA2GvB"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Cross-tab messaging bus — BroadcastChannel with localStorage fallback.
3
+ * No secrets on the wire; payloads must be non-sensitive sync signals only.
4
+ */
5
+ const STORAGE_PREFIX = 'rpapp-crosstab:';
6
+ const STORAGE_DEBOUNCE_MS = 50;
7
+ function isBrowser() {
8
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
9
+ }
10
+ export function createCrossTabBus(options) {
11
+ const { channelName, debounceMs = STORAGE_DEBOUNCE_MS } = options;
12
+ const subscribers = new Set();
13
+ let closed = false;
14
+ let broadcast = null;
15
+ let storageTimer = null;
16
+ let pendingStoragePayload = null;
17
+ const notify = (msg) => {
18
+ if (closed) {
19
+ return;
20
+ }
21
+ for (const handler of subscribers) {
22
+ handler(msg);
23
+ }
24
+ };
25
+ const flushStorage = () => {
26
+ storageTimer = null;
27
+ if (!isBrowser() || pendingStoragePayload === null) {
28
+ return;
29
+ }
30
+ try {
31
+ const key = `${STORAGE_PREFIX}${channelName}`;
32
+ window.localStorage.setItem(key, pendingStoragePayload);
33
+ window.localStorage.removeItem(key);
34
+ }
35
+ catch {
36
+ // ignore quota / private mode
37
+ }
38
+ pendingStoragePayload = null;
39
+ };
40
+ const scheduleStoragePublish = (payload) => {
41
+ pendingStoragePayload = payload;
42
+ if (storageTimer !== null) {
43
+ return;
44
+ }
45
+ storageTimer = setTimeout(flushStorage, debounceMs);
46
+ };
47
+ if (isBrowser() && typeof BroadcastChannel !== 'undefined') {
48
+ try {
49
+ broadcast = new BroadcastChannel(channelName);
50
+ broadcast.onmessage = (event) => {
51
+ const data = event.data;
52
+ if (data && typeof data === 'object' && typeof data.type === 'string') {
53
+ notify(data);
54
+ }
55
+ };
56
+ }
57
+ catch {
58
+ broadcast = null;
59
+ }
60
+ }
61
+ let onStorage = null;
62
+ if (isBrowser()) {
63
+ onStorage = (event) => {
64
+ if (event.key !== `${STORAGE_PREFIX}${channelName}` || !event.newValue) {
65
+ return;
66
+ }
67
+ try {
68
+ const parsed = JSON.parse(event.newValue);
69
+ if (parsed && typeof parsed.type === 'string') {
70
+ notify(parsed);
71
+ }
72
+ }
73
+ catch {
74
+ // ignore malformed payloads
75
+ }
76
+ };
77
+ window.addEventListener('storage', onStorage);
78
+ }
79
+ return {
80
+ publish(message) {
81
+ if (closed) {
82
+ return;
83
+ }
84
+ notify(message);
85
+ const payload = JSON.stringify(message);
86
+ if (broadcast) {
87
+ broadcast.postMessage(message);
88
+ }
89
+ if (isBrowser()) {
90
+ scheduleStoragePublish(payload);
91
+ }
92
+ },
93
+ subscribe(handler) {
94
+ subscribers.add(handler);
95
+ return () => {
96
+ subscribers.delete(handler);
97
+ };
98
+ },
99
+ close() {
100
+ closed = true;
101
+ if (storageTimer !== null) {
102
+ clearTimeout(storageTimer);
103
+ storageTimer = null;
104
+ }
105
+ if (onStorage && isBrowser()) {
106
+ window.removeEventListener('storage', onStorage);
107
+ onStorage = null;
108
+ }
109
+ broadcast?.close();
110
+ broadcast = null;
111
+ subscribers.clear();
112
+ },
113
+ };
114
+ }
115
+ //# sourceMappingURL=CrossTabBus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrossTabBus.js","sourceRoot":"","sources":["../../src/crossTab/CrossTabBus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export { createCrossTabBus, type CrossTabBus } from './CrossTabBus.js';
2
+ export type CustomerAuthCrossTabMessage = {
3
+ type: 'login';
4
+ } | {
5
+ type: 'logout';
6
+ } | {
7
+ type: 'session-refreshed';
8
+ };
9
+ export type CustomerConsentCrossTabMessage = {
10
+ type: 'consent-updated';
11
+ };
12
+ export type KioskTabCrossTabMessage = {
13
+ type: 'kiosk-reset';
14
+ } | {
15
+ type: 'session-rotate';
16
+ } | {
17
+ type: 'kiosk-customer-session-changed';
18
+ };
19
+ export type AdminAuthCrossTabMessage = {
20
+ type: 'login';
21
+ } | {
22
+ type: 'logout';
23
+ };
24
+ export type AdminTenantCrossTabMessage = {
25
+ type: 'tenant-changed';
26
+ tenantCode: string;
27
+ };
28
+ export type AdminCacheCrossTabMessage = {
29
+ type: 'cache-invalidate';
30
+ scope: string;
31
+ };
32
+ export declare const CUSTOMER_AUTH_CHANNEL = "rpapp-customer-auth";
33
+ export declare const CUSTOMER_CONSENT_CHANNEL = "rpapp-customer-consent";
34
+ export declare const KIOSK_TAB_CHANNEL = "rpapp-kiosk-tab";
35
+ export declare const ADMIN_AUTH_CHANNEL = "rpapp-admin-auth";
36
+ export declare const ADMIN_TENANT_CHANNEL = "rpapp-admin-tenant";
37
+ export declare const ADMIN_CACHE_CHANNEL = "rpapp-admin-cache";
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crossTab/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,MAAM,2BAA2B,GACnC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElC,MAAM,MAAM,8BAA8B,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gCAAgC,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,MAAM,MAAM,0BAA0B,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,yBAAyB,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AACjE,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { createCrossTabBus } from './CrossTabBus.js';
2
+ export const CUSTOMER_AUTH_CHANNEL = 'rpapp-customer-auth';
3
+ export const CUSTOMER_CONSENT_CHANNEL = 'rpapp-customer-consent';
4
+ export const KIOSK_TAB_CHANNEL = 'rpapp-kiosk-tab';
5
+ export const ADMIN_AUTH_CHANNEL = 'rpapp-admin-auth';
6
+ export const ADMIN_TENANT_CHANNEL = 'rpapp-admin-tenant';
7
+ export const ADMIN_CACHE_CHANNEL = 'rpapp-admin-cache';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crossTab/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,kBAAkB,CAAC;AAsBvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LabelAudience, LabelLocale } from './labels/localizedLabel.js';
2
+ export declare function getAnalyticsEventDescription(name: string, locale: LabelLocale, _audience?: LabelAudience): string;
3
+ //# sourceMappingURL=getAnalyticsEventDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAnalyticsEventDescription.d.ts","sourceRoot":"","sources":["../src/getAnalyticsEventDescription.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE7E,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,aAA0B,GACpC,MAAM,CAKR"}