@lilaquadrat/chat 0.1.17 → 0.1.18

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 (68) hide show
  1. package/dist/wc/lilaquadrat-studio-chat.js +5 -5
  2. package/dist/wc/lilaquadrat-studio-chat.umd.cjs +1 -1
  3. package/package.json +24 -23
  4. package/dist/app/assets/de-BPWT8j6E.js +0 -1
  5. package/dist/app/assets/loadFonts-DmNZ8tPj.js +0 -1
  6. package/dist/app/assets/main-B18LDkun.js +0 -2
  7. package/dist/app/assets/preload-helper-OSX1TyOM.js +0 -1
  8. package/dist/app/assets/support-DgYHnicF.js +0 -2
  9. package/dist/app/assets/support-agent-CTl6KCJE.js +0 -1
  10. package/dist/app/assets/web-component-BANWBXIc.js +0 -1
  11. package/dist/app/index.html +0 -37
  12. package/dist/app/support/index.html +0 -43
  13. package/dist/studio-chat-module.js +0 -0
  14. package/dist/studio-chat-module.umd.cjs +0 -1
  15. package/dist/types/src/bot/botClient.d.ts +0 -40
  16. package/dist/types/src/bot/botManager.d.ts +0 -3
  17. package/dist/types/src/composables/useChatBootstrap.d.ts +0 -27
  18. package/dist/types/src/composables/useChatVisibility.d.ts +0 -18
  19. package/dist/types/src/composables/useTriggerEvent.d.ts +0 -10
  20. package/dist/types/src/composables/useWebSocket.d.ts +0 -11
  21. package/dist/types/src/config/auth.d.ts +0 -19
  22. package/dist/types/src/config/bootstrap.agent.d.ts +0 -86
  23. package/dist/types/src/config/bootstrap.d.ts +0 -10
  24. package/dist/types/src/config/chatConfig.d.ts +0 -83
  25. package/dist/types/src/config/components.shared.d.ts +0 -18
  26. package/dist/types/src/config/users.d.ts +0 -27
  27. package/dist/types/src/helpers/date.d.ts +0 -7
  28. package/dist/types/src/helpers/handleMessages.d.ts +0 -2
  29. package/dist/types/src/helpers/loadComponents.d.ts +0 -10
  30. package/dist/types/src/helpers/participants.d.ts +0 -50
  31. package/dist/types/src/helpers/rights.d.ts +0 -19
  32. package/dist/types/src/helpers/sdkOptions.d.ts +0 -17
  33. package/dist/types/src/helpers/sounds.d.ts +0 -8
  34. package/dist/types/src/helpers/supportStatus.d.ts +0 -15
  35. package/dist/types/src/interfaces/Conversation.d.ts +0 -44
  36. package/dist/types/src/interfaces/ConversationSla.d.ts +0 -9
  37. package/dist/types/src/interfaces/IncomingFrame.d.ts +0 -71
  38. package/dist/types/src/interfaces/Message.d.ts +0 -18
  39. package/dist/types/src/interfaces/ParticipantDocument.d.ts +0 -13
  40. package/dist/types/src/libs/StudioSDK.d.ts +0 -148
  41. package/dist/types/src/libs/chatSession.d.ts +0 -113
  42. package/dist/types/src/libs/resize.d.ts +0 -79
  43. package/dist/types/src/libs/websocketManager.d.ts +0 -54
  44. package/dist/types/src/locales/de.d.ts +0 -115
  45. package/dist/types/src/locales/en.d.ts +0 -115
  46. package/dist/types/src/main.d.ts +0 -1
  47. package/dist/types/src/mixins/groupMessages.d.ts +0 -14
  48. package/dist/types/src/mixins/hardCopy.d.ts +0 -2
  49. package/dist/types/src/mixins/logger.d.ts +0 -8
  50. package/dist/types/src/mixins/traceable.d.ts +0 -11
  51. package/dist/types/src/plugins/i18n.d.ts +0 -124
  52. package/dist/types/src/standalone/auth.d.ts +0 -26
  53. package/dist/types/src/standalone/main.d.ts +0 -1
  54. package/dist/types/src/standalone/settings.d.ts +0 -63
  55. package/dist/types/src/standalone-support/main.d.ts +0 -1
  56. package/dist/types/src/stores/bots.store.d.ts +0 -69
  57. package/dist/types/src/stores/calls.store.d.ts +0 -14
  58. package/dist/types/src/stores/contacts.store.d.ts +0 -87
  59. package/dist/types/src/stores/conversations.store.d.ts +0 -2228
  60. package/dist/types/src/stores/main.store.d.ts +0 -184
  61. package/dist/types/src/stores/supportConversations.store.d.ts +0 -65
  62. package/dist/types/src/stores/user.store.d.ts +0 -8
  63. package/dist/types/src/stores/usersCache.store.d.ts +0 -31
  64. package/dist/types/src/styles/loadFonts.d.ts +0 -15
  65. package/dist/types/src/support-agent.d.ts +0 -18
  66. package/dist/types/tsconfig.build.tsbuildinfo +0 -1
  67. package/dist/wc-support/lilaquadrat-studio-support.js +0 -9
  68. package/dist/wc-support/lilaquadrat-studio-support.umd.cjs +0 -1
@@ -1,113 +0,0 @@
1
- import type { UseWebSocketOptions } from '@/libs/websocketManager';
2
- import { type IncomingFrame } from '@/interfaces/IncomingFrame';
3
- /**
4
- * Session layer on top of the raw websocket transport.
5
- *
6
- * The transport (WebSocketManager) only knows about sockets; the server additionally
7
- * keeps a per-user client registry that a connection joins via `authenticate`. That
8
- * registry entry can die while the socket stays open (eviction by a second connection
9
- * of the same user, server-side cleanup, expired token) — the server then answers
10
- * everything except ping with UNKNOWN_CLIENT: the "silent disconnect" where ping/pong
11
- * keeps flowing but no chat traffic works. This layer owns that session lifecycle:
12
- *
13
- * - authenticates on every (re)connect with a freshly resolved token
14
- * - detects a dead session (UNKNOWN_CLIENT, AUTH_FAILED, periodic probe) and
15
- * re-authenticates, escalating to a hard reconnect when that keeps failing
16
- * - queues outbound frames while the session is not ready and tracks message /
17
- * conversation-start sends until the server echo confirms them, so nothing is
18
- * silently lost across a session loss
19
- * - reports one session state to the UI and signals restore points for resyncs
20
- */
21
- export type SessionState = 'connecting' | 'authenticating' | 'ready' | 'disconnected';
22
- /** the minimal transport surface the session needs (fulfilled by WebSocketManager) */
23
- export interface SessionTransport {
24
- isConnected: boolean;
25
- connect(_options: UseWebSocketOptions): void;
26
- send(_message: object): boolean;
27
- reconnect(): void;
28
- }
29
- export interface ChatSessionOptions {
30
- url: string;
31
- /** fallback when no host getToken is registered (static token / dev user id) */
32
- fallbackToken?: () => string | undefined;
33
- /** the current user id — used to recognize server echoes of own messages */
34
- ownUserId?: () => string | undefined;
35
- /** domain frames (messages, conversation events) — session frames are filtered out */
36
- onMessage?: (_frame: IncomingFrame) => void;
37
- onStateChange?: (_state: SessionState) => void;
38
- /** the session became ready again after a loss — the moment to resync missed data */
39
- onSessionRestored?: () => void;
40
- }
41
- export interface SendOptions {
42
- /** keep the frame while the session is not ready and send it once it is */
43
- queue?: boolean;
44
- /** track the frame until a server echo confirms it; resent after a session loss */
45
- track?: boolean;
46
- /** a queued frame replaces any queued frame with the same key (e.g. lastRead per conversation) */
47
- replaceKey?: string;
48
- }
49
- interface OutboundEntry extends SendOptions {
50
- payload: Record<string, unknown> & {
51
- type: string;
52
- };
53
- sentAt?: number;
54
- }
55
- export declare class ChatSession {
56
- private transport;
57
- private options;
58
- private state;
59
- private everReady;
60
- private lostSinceReady;
61
- private reauthAttempts;
62
- private lastAuthSentAt;
63
- private reauthTimerId;
64
- private forceRefreshOnReauth;
65
- private authAckTimeoutId;
66
- /** backlog waiting for the session to become ready */
67
- private queue;
68
- /** sent but not yet confirmed by a server echo */
69
- private pending;
70
- private probeIntervalId;
71
- constructor(transport: SessionTransport);
72
- get sessionState(): SessionState;
73
- start(options: ChatSessionOptions): void;
74
- /**
75
- * Send a frame through the session. Returns false only for unqueued frames that could
76
- * not be sent right now; queued frames always succeed eventually or expire.
77
- */
78
- send(payload: OutboundEntry['payload'], sendOptions?: SendOptions): boolean;
79
- /** teardown (tests / HMR) — the socket itself is refcounted by the transport */
80
- destroy(): void;
81
- private handleOpen;
82
- private handleClose;
83
- private authenticate;
84
- private setReady;
85
- private setState;
86
- private handleFrame;
87
- private handleError;
88
- private handleSessionLost;
89
- private handleAuthFailed;
90
- private hardReconnect;
91
- private scheduleReauth;
92
- private clearReauthTimer;
93
- private clearAuthAckTimeout;
94
- /** server echoes settle tracked sends: own message echo / conversation:new with our client id */
95
- private confirmEcho;
96
- private settleRejected;
97
- private dispatch;
98
- private enqueue;
99
- /** unconfirmed sends from before the loss go to the front of the backlog for resend */
100
- private requeuePending;
101
- private flushQueue;
102
- private installProbe;
103
- private probeNow;
104
- private onVisibilityChange;
105
- /**
106
- * the registry entry can die without any local traffic (eviction, server cleanup) and
107
- * an idle client would never notice — it just stops receiving messages. the periodic
108
- * probe forces the server to reveal a dead session via UNKNOWN_CLIENT.
109
- */
110
- private probe;
111
- }
112
- declare const chatSession: ChatSession;
113
- export default chatSession;
@@ -1,79 +0,0 @@
1
- /**
2
- * Tracks the width the chat is rendered at. Not the viewport: the module runs as a custom
3
- * element that can sit in a sidebar, so a matchMedia/viewport based breakpoint would report a
4
- * size the UI never has. realWidth therefore measures the host element, falling back to
5
- * window.innerWidth only when no selector is given (or it matched nothing).
6
- *
7
- * Consumers watch `realWidth`. It is rounded, so sub-pixel jitter does not wake watchers, and
8
- * it is committed at most once per animation frame — no debounce delay, because the value comes
9
- * from a ResizeObserver that already reports post-layout sizes once per frame.
10
- */
11
- declare class Resize {
12
- /** rounded width of the measured target; watch this to react to resizes */
13
- realWidth: import("vue").Ref<number, number>;
14
- realHeight: import("vue").Ref<number, number>;
15
- /** timestamp of the last commit, for consumers that need a signal rather than a value */
16
- resized: import("vue").Ref<number, number>;
17
- private installed;
18
- /** element realWidth is measured against; null = fall back to window.innerWidth */
19
- private widthTarget;
20
- /** kept so a detached target can be resolved again, see resolveTarget */
21
- private widthSelector;
22
- private warnedMissingTarget;
23
- private resizeObserver;
24
- private frame;
25
- /** bound handler kept so removeEventListener can detach it */
26
- private onResize;
27
- private get safeWindow();
28
- /**
29
- * attach listeners and take the first measurement.
30
- *
31
- * calling it again re-targets when the element changed: the custom element can be removed and
32
- * re-added (or a second one mounted), and a widthTarget left pointing at a detached node
33
- * measures 0 — which would pin the view mode to mobile forever.
34
- */
35
- init(selector?: string): void;
36
- /** detach listeners. call on teardown/HMR dispose to avoid leaks. */
37
- destroy(): void;
38
- private queryTarget;
39
- /**
40
- * an element can resize without a window resize (layout/content changes) and its first laid
41
- * out size only exists after mount — observe() delivers that initial size for us.
42
- */
43
- private observe;
44
- /**
45
- * the custom element can be detached and re-attached without configureApp (and therefore
46
- * init) running again. A detached node measures 0, which would pin the view mode to mobile
47
- * for good, so re-resolve the selector whenever the target went away.
48
- */
49
- private resolveTarget;
50
- /**
51
- * rounded on purpose: widths are fractional, and an unrounded value changes on virtually
52
- * every frame of a drag — every watcher would re-run for a third of a pixel.
53
- */
54
- private measureWidth;
55
- /**
56
- * coalesce to one commit per frame. The observer already batches per layout pass; the frame
57
- * hop additionally keeps the commit out of the observer callback, so a view mode that changes
58
- * the observed element's size cannot trip a ResizeObserver loop.
59
- */
60
- private schedule;
61
- /** read the current size into the refs. safe to call directly for an immediate re-measure. */
62
- measure(): void;
63
- /** force an immediate re-read, bypassing the frame hop */
64
- trigger(): void;
65
- }
66
- declare const resize: Resize;
67
- declare const plugin: {
68
- install: (_app: unknown, options?: {
69
- selector?: string;
70
- }) => void;
71
- };
72
- declare function useResize(): {
73
- realHeight: import("vue").Ref<number, number>;
74
- realWidth: import("vue").Ref<number, number>;
75
- resized: import("vue").Ref<number, number>;
76
- plugin: Resize;
77
- };
78
- export default plugin;
79
- export { useResize, resize };
@@ -1,54 +0,0 @@
1
- export interface UseWebSocketOptions {
2
- url: string;
3
- maxRetries: number;
4
- maxRetryDelay: number;
5
- onMessage?: (_data: string) => void;
6
- onOpen?: () => void;
7
- onClose?: (_ev?: CloseEvent) => void;
8
- onError?: (_error: Event) => void;
9
- heartbeatIntervalMs?: number;
10
- inactivityTimeoutMs?: number;
11
- connectTimeoutMs?: number;
12
- buildPingMessage?: () => object;
13
- }
14
- export declare class WebSocketManager {
15
- private static instance;
16
- private socket;
17
- private currentOptions;
18
- private retryCount;
19
- private retryDelay;
20
- private retryTimeoutId;
21
- private connectTimeoutId;
22
- private refCount;
23
- onConnectionChange?: (_isConnected: boolean) => void;
24
- private heartbeatIntervalId;
25
- private lastActivity;
26
- private recoveryListenersInstalled;
27
- private closeNotified;
28
- private constructor();
29
- static getInstance(): WebSocketManager;
30
- get isConnected(): boolean;
31
- get options(): UseWebSocketOptions;
32
- /** Acquire a reference. Must be paired with release(). */
33
- acquire(): void;
34
- /** Release a reference; only close when nobody is using the socket. */
35
- release(): void;
36
- connect(options: UseWebSocketOptions): void;
37
- private detachHandlers;
38
- private clearConnectTimeout;
39
- /**
40
- * after wake/offline the retry chain may be exhausted or dead — coming back online or
41
- * refocusing the tab is the moment to start over with a fresh socket
42
- */
43
- private installRecoveryListeners;
44
- private recover;
45
- private startHeartbeat;
46
- private stopHeartbeat;
47
- private attemptReconnect;
48
- private calculateRetryDelay;
49
- private notifyClose;
50
- reconnect(): void;
51
- disconnect(): void;
52
- private _teardownSocket;
53
- send(message: object): boolean;
54
- }
@@ -1,115 +0,0 @@
1
- declare const _default: {
2
- status: {
3
- connected: string;
4
- disconnected: string;
5
- };
6
- retry: string;
7
- 'new chat': string;
8
- conversations: string;
9
- 'no conversations yet': string;
10
- 'contact support': string;
11
- support: string;
12
- customer: string;
13
- customers: string;
14
- agents: string;
15
- 'load more': string;
16
- supportStatus: {
17
- label: string;
18
- filter: string;
19
- all: string;
20
- awaiting_agent: string;
21
- awaiting_customer: string;
22
- resolved: string;
23
- };
24
- sla: {
25
- due: string;
26
- overdue: string;
27
- };
28
- options: string;
29
- actions: string;
30
- mute: string;
31
- unmute: string;
32
- muted: string;
33
- delete: string;
34
- leave: string;
35
- 'leave now': string;
36
- 'delete now': string;
37
- 'select contacts': string;
38
- 'conversation options': string;
39
- 'save edits': string;
40
- 'cancel edits': string;
41
- abandon: string;
42
- close: string;
43
- rights: string;
44
- members: string;
45
- 'user details': string;
46
- 'first name': string;
47
- 'last name': string;
48
- email: string;
49
- online: string;
50
- offline: string;
51
- 'last seen': string;
52
- back: string;
53
- 'update members': string;
54
- read: string;
55
- write: string;
56
- rename: string;
57
- save: string;
58
- 'conversation name': string;
59
- 'you left this conversation': string;
60
- participants: string;
61
- 'filter members': string;
62
- 'filter contacts': string;
63
- 'member count': string;
64
- 'created at': string;
65
- 'last activity': string;
66
- messages: string;
67
- 'no messages yet': string;
68
- message: string;
69
- 'abandon draft': string;
70
- 'chat already exists': string;
71
- 'this is a draft': string;
72
- 'jump to chat': string;
73
- new: string;
74
- 'group chat': string;
75
- 'select participants': string;
76
- writing: string;
77
- accept: string;
78
- decline: string;
79
- 'confirm action': string;
80
- block: string;
81
- unblock: string;
82
- dismiss: string;
83
- errors: {
84
- unknown: string;
85
- RATE_LIMIT_EXCEEDED: string;
86
- NOT_ALLOWED: string;
87
- FORBIDDEN: string;
88
- UNAUTHORIZED: string;
89
- ACTION_NOT_ALLOWED: string;
90
- NOT_A_CONTACT: string;
91
- CONVERSATION_NOT_FOUND: string;
92
- CONVERSATION_ALREADY_EXISTS: string;
93
- MIN_PARTICIPANTS: string;
94
- SUPPORT_UNAVAILABLE: string;
95
- CONTACT_NOT_FOUND: string;
96
- CANNOT_BLOCK_SELF: string;
97
- UNKNOWN_MESSAGE_TYPE: string;
98
- INVALID_LAST_READ_ID: string;
99
- INTERNAL_ERROR: string;
100
- };
101
- system: {
102
- renamed: string;
103
- created: string;
104
- left: string;
105
- blocked: string;
106
- unblocked: string;
107
- participants: {
108
- addedAndRemoved: string;
109
- added: string;
110
- removed: string;
111
- updated: string;
112
- };
113
- };
114
- };
115
- export default _default;
@@ -1,115 +0,0 @@
1
- declare const _default: {
2
- status: {
3
- connected: string;
4
- disconnected: string;
5
- };
6
- retry: string;
7
- 'new chat': string;
8
- conversations: string;
9
- 'no conversations yet': string;
10
- 'contact support': string;
11
- support: string;
12
- customer: string;
13
- customers: string;
14
- agents: string;
15
- 'load more': string;
16
- supportStatus: {
17
- label: string;
18
- filter: string;
19
- all: string;
20
- awaiting_agent: string;
21
- awaiting_customer: string;
22
- resolved: string;
23
- };
24
- sla: {
25
- due: string;
26
- overdue: string;
27
- };
28
- options: string;
29
- actions: string;
30
- mute: string;
31
- unmute: string;
32
- muted: string;
33
- delete: string;
34
- leave: string;
35
- 'leave now': string;
36
- 'delete now': string;
37
- 'select contacts': string;
38
- 'conversation options': string;
39
- 'save edits': string;
40
- 'cancel edits': string;
41
- abandon: string;
42
- close: string;
43
- rights: string;
44
- members: string;
45
- 'user details': string;
46
- 'first name': string;
47
- 'last name': string;
48
- email: string;
49
- online: string;
50
- offline: string;
51
- 'last seen': string;
52
- back: string;
53
- 'update members': string;
54
- read: string;
55
- write: string;
56
- rename: string;
57
- save: string;
58
- 'conversation name': string;
59
- 'you left this conversation': string;
60
- participants: string;
61
- 'filter members': string;
62
- 'filter contacts': string;
63
- 'member count': string;
64
- 'created at': string;
65
- 'last activity': string;
66
- messages: string;
67
- 'no messages yet': string;
68
- message: string;
69
- 'abandon draft': string;
70
- 'chat already exists': string;
71
- 'this is a draft': string;
72
- 'jump to chat': string;
73
- new: string;
74
- 'group chat': string;
75
- 'select participants': string;
76
- writing: string;
77
- accept: string;
78
- decline: string;
79
- 'confirm action': string;
80
- block: string;
81
- unblock: string;
82
- dismiss: string;
83
- errors: {
84
- unknown: string;
85
- RATE_LIMIT_EXCEEDED: string;
86
- NOT_ALLOWED: string;
87
- FORBIDDEN: string;
88
- UNAUTHORIZED: string;
89
- ACTION_NOT_ALLOWED: string;
90
- NOT_A_CONTACT: string;
91
- CONVERSATION_NOT_FOUND: string;
92
- CONVERSATION_ALREADY_EXISTS: string;
93
- MIN_PARTICIPANTS: string;
94
- SUPPORT_UNAVAILABLE: string;
95
- CONTACT_NOT_FOUND: string;
96
- CANNOT_BLOCK_SELF: string;
97
- UNKNOWN_MESSAGE_TYPE: string;
98
- INVALID_LAST_READ_ID: string;
99
- INTERNAL_ERROR: string;
100
- };
101
- system: {
102
- renamed: string;
103
- created: string;
104
- left: string;
105
- blocked: string;
106
- unblocked: string;
107
- participants: {
108
- addedAndRemoved: string;
109
- added: string;
110
- removed: string;
111
- updated: string;
112
- };
113
- };
114
- };
115
- export default _default;
@@ -1 +0,0 @@
1
- export {};
@@ -1,14 +0,0 @@
1
- import type { Message } from '@/interfaces/Message';
2
- type MessageGroup = {
3
- user?: string;
4
- origin: Message['origin'];
5
- time: string;
6
- isUser: boolean;
7
- messages: Message[];
8
- };
9
- type MessageDateGroup = {
10
- date: string;
11
- userTimeGroups: MessageGroup[];
12
- };
13
- export default function groupMessages(messages: Message[], user: string | undefined): MessageDateGroup[];
14
- export {};
@@ -1,2 +0,0 @@
1
- declare const _default: <T>(obj: T) => T;
2
- export default _default;
@@ -1,8 +0,0 @@
1
- interface LoggerFunction {
2
- (_message: string, _color?: string): void;
3
- }
4
- interface Logger {
5
- [key: string]: LoggerFunction;
6
- }
7
- declare const logger: Logger;
8
- export default logger;
@@ -1,11 +0,0 @@
1
- import type { Ref } from 'vue';
2
- declare const plugin: {
3
- install: () => void;
4
- };
5
- declare const useTraceable: () => {
6
- traceable: <T>(promise: Promise<T>, traceId?: Ref<string | undefined>, options?: {
7
- time: number;
8
- }) => Promise<T>;
9
- };
10
- export default plugin;
11
- export { useTraceable };
@@ -1,124 +0,0 @@
1
- export declare const DEFAULT_LOCALE = "en";
2
- export declare const SUPPORTED_LOCALES: readonly ["en", "de"];
3
- export type AppLocale = typeof SUPPORTED_LOCALES[number];
4
- declare const i18n: import("vue-i18n").I18n<{
5
- en: {
6
- status: {
7
- connected: string;
8
- disconnected: string;
9
- };
10
- retry: string;
11
- 'new chat': string;
12
- conversations: string;
13
- 'no conversations yet': string;
14
- 'contact support': string;
15
- support: string;
16
- customer: string;
17
- customers: string;
18
- agents: string;
19
- 'load more': string;
20
- supportStatus: {
21
- label: string;
22
- filter: string;
23
- all: string;
24
- awaiting_agent: string;
25
- awaiting_customer: string;
26
- resolved: string;
27
- };
28
- sla: {
29
- due: string;
30
- overdue: string;
31
- };
32
- options: string;
33
- actions: string;
34
- mute: string;
35
- unmute: string;
36
- muted: string;
37
- delete: string;
38
- leave: string;
39
- 'leave now': string;
40
- 'delete now': string;
41
- 'select contacts': string;
42
- 'conversation options': string;
43
- 'save edits': string;
44
- 'cancel edits': string;
45
- abandon: string;
46
- close: string;
47
- rights: string;
48
- members: string;
49
- 'user details': string;
50
- 'first name': string;
51
- 'last name': string;
52
- email: string;
53
- online: string;
54
- offline: string;
55
- 'last seen': string;
56
- back: string;
57
- 'update members': string;
58
- read: string;
59
- write: string;
60
- rename: string;
61
- save: string;
62
- 'conversation name': string;
63
- 'you left this conversation': string;
64
- participants: string;
65
- 'filter members': string;
66
- 'filter contacts': string;
67
- 'member count': string;
68
- 'created at': string;
69
- 'last activity': string;
70
- messages: string;
71
- 'no messages yet': string;
72
- message: string;
73
- 'abandon draft': string;
74
- 'chat already exists': string;
75
- 'this is a draft': string;
76
- 'jump to chat': string;
77
- new: string;
78
- 'group chat': string;
79
- 'select participants': string;
80
- writing: string;
81
- accept: string;
82
- decline: string;
83
- 'confirm action': string;
84
- block: string;
85
- unblock: string;
86
- dismiss: string;
87
- errors: {
88
- unknown: string;
89
- RATE_LIMIT_EXCEEDED: string;
90
- NOT_ALLOWED: string;
91
- FORBIDDEN: string;
92
- UNAUTHORIZED: string;
93
- ACTION_NOT_ALLOWED: string;
94
- NOT_A_CONTACT: string;
95
- CONVERSATION_NOT_FOUND: string;
96
- CONVERSATION_ALREADY_EXISTS: string;
97
- MIN_PARTICIPANTS: string;
98
- SUPPORT_UNAVAILABLE: string;
99
- CONTACT_NOT_FOUND: string;
100
- CANNOT_BLOCK_SELF: string;
101
- UNKNOWN_MESSAGE_TYPE: string;
102
- INVALID_LAST_READ_ID: string;
103
- INTERNAL_ERROR: string;
104
- };
105
- system: {
106
- renamed: string;
107
- created: string;
108
- left: string;
109
- blocked: string;
110
- unblocked: string;
111
- participants: {
112
- addedAndRemoved: string;
113
- added: string;
114
- removed: string;
115
- updated: string;
116
- };
117
- };
118
- };
119
- }, {}, {}, "en" | "de", false>;
120
- /**
121
- * Lazy load locale messages and switch locale.
122
- */
123
- export declare function loadLocale(locale: AppLocale): Promise<AppLocale>;
124
- export default i18n;
@@ -1,26 +0,0 @@
1
- import type { ParticipantUser } from '@/helpers/participants';
2
- import type { StandaloneSettings } from './settings';
3
- /** Keep post-login navigation on this deployment's origin. */
4
- export declare function resolveDestination(target?: string): string;
5
- export declare class StandaloneAuth {
6
- private client?;
7
- private dev;
8
- private devToken?;
9
- private profile?;
10
- private refreshPromise?;
11
- private refreshForced;
12
- private get origin();
13
- private get keycloak();
14
- /** Bring the page into an authenticated Keycloak session. */
15
- init(settings: StandaloneSettings): Promise<boolean>;
16
- /** Refresh the access token, sharing one Keycloak request between concurrent callers. */
17
- refreshToken(force?: boolean): Promise<string>;
18
- /** Resolve a valid access token; Keycloak refreshes it when it expires within 30 seconds. */
19
- getToken(force?: boolean): Promise<string>;
20
- getProfile(): ParticipantUser | undefined;
21
- private loadProfile;
22
- private restoreLoginTarget;
23
- logout(): void;
24
- }
25
- declare const _default: StandaloneAuth;
26
- export default _default;
@@ -1 +0,0 @@
1
- export {};