@stapel/chat-react 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/MODULE.md +118 -0
- package/README.md +126 -0
- package/dist/api/chatApi.d.ts +49 -0
- package/dist/api/chatApi.d.ts.map +1 -0
- package/dist/api/chatApi.js +46 -0
- package/dist/api/chatApi.js.map +1 -0
- package/dist/api/extensions.d.ts +19 -0
- package/dist/api/extensions.d.ts.map +1 -0
- package/dist/api/extensions.js +19 -0
- package/dist/api/extensions.js.map +1 -0
- package/dist/api/generated/schema.d.ts +547 -0
- package/dist/api/generated/schema.d.ts.map +1 -0
- package/dist/api/generated/schema.js +2 -0
- package/dist/api/generated/schema.js.map +1 -0
- package/dist/api/types.d.ts +75 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/default/ConversationListPanel.d.ts +22 -0
- package/dist/default/ConversationListPanel.d.ts.map +1 -0
- package/dist/default/ConversationListPanel.js +49 -0
- package/dist/default/ConversationListPanel.js.map +1 -0
- package/dist/default/ConversationThreadPanel.d.ts +21 -0
- package/dist/default/ConversationThreadPanel.d.ts.map +1 -0
- package/dist/default/ConversationThreadPanel.js +51 -0
- package/dist/default/ConversationThreadPanel.js.map +1 -0
- package/dist/default/ErrorAlert.d.ts +8 -0
- package/dist/default/ErrorAlert.d.ts.map +1 -0
- package/dist/default/ErrorAlert.js +26 -0
- package/dist/default/ErrorAlert.js.map +1 -0
- package/dist/default/StartChatButton.d.ts +17 -0
- package/dist/default/StartChatButton.d.ts.map +1 -0
- package/dist/default/StartChatButton.js +18 -0
- package/dist/default/StartChatButton.js.map +1 -0
- package/dist/default/index.d.ts +21 -0
- package/dist/default/index.d.ts.map +1 -0
- package/dist/default/index.js +18 -0
- package/dist/default/index.js.map +1 -0
- package/dist/flows/errors.d.ts +12 -0
- package/dist/flows/errors.d.ts.map +1 -0
- package/dist/flows/errors.js +13 -0
- package/dist/flows/errors.js.map +1 -0
- package/dist/flows/freshness.d.ts +69 -0
- package/dist/flows/freshness.d.ts.map +1 -0
- package/dist/flows/freshness.js +227 -0
- package/dist/flows/freshness.js.map +1 -0
- package/dist/flows/registry.d.ts +26 -0
- package/dist/flows/registry.d.ts.map +1 -0
- package/dist/flows/registry.js +24 -0
- package/dist/flows/registry.js.map +1 -0
- package/dist/headless/ChatProvider.d.ts +22 -0
- package/dist/headless/ChatProvider.d.ts.map +1 -0
- package/dist/headless/ChatProvider.js +18 -0
- package/dist/headless/ChatProvider.js.map +1 -0
- package/dist/headless/ConversationList.d.ts +51 -0
- package/dist/headless/ConversationList.d.ts.map +1 -0
- package/dist/headless/ConversationList.js +47 -0
- package/dist/headless/ConversationList.js.map +1 -0
- package/dist/headless/ConversationThread.d.ts +50 -0
- package/dist/headless/ConversationThread.d.ts.map +1 -0
- package/dist/headless/ConversationThread.js +64 -0
- package/dist/headless/ConversationThread.js.map +1 -0
- package/dist/headless/MessageComposer.d.ts +39 -0
- package/dist/headless/MessageComposer.d.ts.map +1 -0
- package/dist/headless/MessageComposer.js +45 -0
- package/dist/headless/MessageComposer.js.map +1 -0
- package/dist/headless/StartDirectChat.d.ts +40 -0
- package/dist/headless/StartDirectChat.d.ts.map +1 -0
- package/dist/headless/StartDirectChat.js +46 -0
- package/dist/headless/StartDirectChat.js.map +1 -0
- package/dist/i18n/errorsMap.d.ts +10 -0
- package/dist/i18n/errorsMap.d.ts.map +1 -0
- package/dist/i18n/errorsMap.js +20 -0
- package/dist/i18n/errorsMap.js.map +1 -0
- package/dist/i18n/es.d.ts +23 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +75 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/generated/errors.es.gen.d.ts +16 -0
- package/dist/i18n/generated/errors.es.gen.d.ts.map +1 -0
- package/dist/i18n/generated/errors.es.gen.js +58 -0
- package/dist/i18n/generated/errors.es.gen.js.map +1 -0
- package/dist/i18n/generated/errors.gen.d.ts +359 -0
- package/dist/i18n/generated/errors.gen.d.ts.map +1 -0
- package/dist/i18n/generated/errors.gen.js +183 -0
- package/dist/i18n/generated/errors.gen.js.map +1 -0
- package/dist/i18n/generated/errors.ru.gen.d.ts +16 -0
- package/dist/i18n/generated/errors.ru.gen.d.ts.map +1 -0
- package/dist/i18n/generated/errors.ru.gen.js +58 -0
- package/dist/i18n/generated/errors.ru.gen.js.map +1 -0
- package/dist/i18n/keys.d.ts +78 -0
- package/dist/i18n/keys.d.ts.map +1 -0
- package/dist/i18n/keys.js +130 -0
- package/dist/i18n/keys.js.map +1 -0
- package/dist/i18n/ru.d.ts +28 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/ru.js +80 -0
- package/dist/i18n/ru.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/model/context.d.ts +11 -0
- package/dist/model/context.d.ts.map +1 -0
- package/dist/model/context.js +16 -0
- package/dist/model/context.js.map +1 -0
- package/dist/model/limits.d.ts +12 -0
- package/dist/model/limits.d.ts.map +1 -0
- package/dist/model/limits.js +12 -0
- package/dist/model/limits.js.map +1 -0
- package/dist/model/mutations.d.ts +66 -0
- package/dist/model/mutations.d.ts.map +1 -0
- package/dist/model/mutations.js +156 -0
- package/dist/model/mutations.js.map +1 -0
- package/dist/model/queries.d.ts +33 -0
- package/dist/model/queries.d.ts.map +1 -0
- package/dist/model/queries.js +93 -0
- package/dist/model/queries.js.map +1 -0
- package/dist/model/queryKeys.d.ts +8 -0
- package/dist/model/queryKeys.d.ts.map +1 -0
- package/dist/model/queryKeys.js +26 -0
- package/dist/model/queryKeys.js.map +1 -0
- package/dist/model/readMarker.d.ts +25 -0
- package/dist/model/readMarker.d.ts.map +1 -0
- package/dist/model/readMarker.js +31 -0
- package/dist/model/readMarker.js.map +1 -0
- package/dist/model/runtime.d.ts +50 -0
- package/dist/model/runtime.d.ts.map +1 -0
- package/dist/model/runtime.js +27 -0
- package/dist/model/runtime.js.map +1 -0
- package/dist/model/threadWindow.d.ts +95 -0
- package/dist/model/threadWindow.d.ts.map +1 -0
- package/dist/model/threadWindow.js +100 -0
- package/dist/model/threadWindow.js.map +1 -0
- package/dist/nav/manifest.d.ts +23 -0
- package/dist/nav/manifest.d.ts.map +1 -0
- package/dist/nav/manifest.js +15 -0
- package/dist/nav/manifest.js.map +1 -0
- package/dist/realtime/chatSocket.d.ts +93 -0
- package/dist/realtime/chatSocket.d.ts.map +1 -0
- package/dist/realtime/chatSocket.js +199 -0
- package/dist/realtime/chatSocket.js.map +1 -0
- package/dist/realtime/frames.d.ts +123 -0
- package/dist/realtime/frames.d.ts.map +1 -0
- package/dist/realtime/frames.js +123 -0
- package/dist/realtime/frames.js.map +1 -0
- package/dist/realtime/streams.d.ts +49 -0
- package/dist/realtime/streams.d.ts.map +1 -0
- package/dist/realtime/streams.js +52 -0
- package/dist/realtime/streams.js.map +1 -0
- package/llms.txt +89 -0
- package/manifest.json +733 -0
- package/nav-manifest.json +25 -0
- package/package.json +114 -0
- package/src/analytics/generated/events.json +7 -0
- package/src/api/chatApi.ts +142 -0
- package/src/api/extensions.ts +18 -0
- package/src/api/generated/schema.ts +549 -0
- package/src/api/types.ts +87 -0
- package/src/default/ConversationListPanel.tsx +163 -0
- package/src/default/ConversationThreadPanel.tsx +245 -0
- package/src/default/ErrorAlert.tsx +43 -0
- package/src/default/StartChatButton.tsx +78 -0
- package/src/default/index.ts +20 -0
- package/src/flows/errors.ts +16 -0
- package/src/flows/freshness.ts +315 -0
- package/src/flows/registry.ts +36 -0
- package/src/headless/ChatProvider.tsx +23 -0
- package/src/headless/ConversationList.tsx +92 -0
- package/src/headless/ConversationThread.tsx +107 -0
- package/src/headless/MessageComposer.tsx +86 -0
- package/src/headless/StartDirectChat.tsx +75 -0
- package/src/i18n/errorsMap.ts +31 -0
- package/src/i18n/es.ts +95 -0
- package/src/i18n/generated/errors.es.gen.ts +64 -0
- package/src/i18n/generated/errors.gen.ts +214 -0
- package/src/i18n/generated/errors.json +408 -0
- package/src/i18n/generated/errors.ru.gen.ts +64 -0
- package/src/i18n/keys.ts +152 -0
- package/src/i18n/ru.ts +98 -0
- package/src/index.ts +189 -0
- package/src/model/context.tsx +25 -0
- package/src/model/limits.ts +11 -0
- package/src/model/mutations.ts +208 -0
- package/src/model/queries.ts +120 -0
- package/src/model/queryKeys.ts +32 -0
- package/src/model/readMarker.ts +32 -0
- package/src/model/runtime.ts +90 -0
- package/src/model/threadWindow.ts +173 -0
- package/src/nav/manifest.ts +36 -0
- package/src/realtime/chatSocket.ts +304 -0
- package/src/realtime/frames.ts +229 -0
- package/src/realtime/streams.ts +85 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remediation vocabulary (frontend-core-architecture §2.5). Declared by the
|
|
3
|
+
* backend on the error registry and consumed verbatim from its `errors.json`
|
|
4
|
+
* artifact. A host maps it to UX — retryable → "try again"; `wait_and_retry` →
|
|
5
|
+
* timer from `params.retry_after_minutes`; `verify` → the step-up seam;
|
|
6
|
+
* `fix_input` → highlight the offending field.
|
|
7
|
+
*/
|
|
8
|
+
export type Remediation = "retry" | "wait_and_retry" | "reauthenticate" | "verify" | "fix_input" | "contact_support" | "bug";
|
|
9
|
+
export interface ChatErrorSpec {
|
|
10
|
+
/** HTTP status the backend raises this key with. */
|
|
11
|
+
readonly status: number;
|
|
12
|
+
/** `{param}` interpolation slots present in the message. */
|
|
13
|
+
readonly params: readonly string[];
|
|
14
|
+
/** Remediation hint declared by the backend (see {@link Remediation}). */
|
|
15
|
+
readonly remediation: Remediation;
|
|
16
|
+
/** English fallback (source: stapel-auth errors.json). */
|
|
17
|
+
readonly en: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The CHAT_ERRORS map — every `error.*` key stapel-auth can raise, keyed by its
|
|
21
|
+
* canonical code. The single source of truth behind the en fallback bundle, the
|
|
22
|
+
* remediation lookup, and the manifest `errors` block.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CHAT_ERRORS: {
|
|
25
|
+
readonly "error.400.bad_request": {
|
|
26
|
+
readonly status: 400;
|
|
27
|
+
readonly params: readonly [];
|
|
28
|
+
readonly remediation: "fix_input";
|
|
29
|
+
readonly en: "Bad request";
|
|
30
|
+
};
|
|
31
|
+
readonly "error.400.captcha_invalid": {
|
|
32
|
+
readonly status: 400;
|
|
33
|
+
readonly params: readonly [];
|
|
34
|
+
readonly remediation: "retry";
|
|
35
|
+
readonly en: "Captcha verification failed. Please try again.";
|
|
36
|
+
};
|
|
37
|
+
readonly "error.400.captcha_required": {
|
|
38
|
+
readonly status: 400;
|
|
39
|
+
readonly params: readonly [];
|
|
40
|
+
readonly remediation: "retry";
|
|
41
|
+
readonly en: "Captcha token is required.";
|
|
42
|
+
};
|
|
43
|
+
readonly "error.400.chat_attachments_disabled": {
|
|
44
|
+
readonly status: 400;
|
|
45
|
+
readonly params: readonly [];
|
|
46
|
+
readonly remediation: "fix_input";
|
|
47
|
+
readonly en: "Attachments are not enabled in this deployment";
|
|
48
|
+
};
|
|
49
|
+
readonly "error.400.chat_body_too_long": {
|
|
50
|
+
readonly status: 400;
|
|
51
|
+
readonly params: readonly [];
|
|
52
|
+
readonly remediation: "fix_input";
|
|
53
|
+
readonly en: "Message body exceeds the maximum allowed length";
|
|
54
|
+
};
|
|
55
|
+
readonly "error.400.chat_empty_message": {
|
|
56
|
+
readonly status: 400;
|
|
57
|
+
readonly params: readonly [];
|
|
58
|
+
readonly remediation: "fix_input";
|
|
59
|
+
readonly en: "A message must carry a body or at least one attachment";
|
|
60
|
+
};
|
|
61
|
+
readonly "error.400.chat_invalid_direct": {
|
|
62
|
+
readonly status: 400;
|
|
63
|
+
readonly params: readonly [];
|
|
64
|
+
readonly remediation: "fix_input";
|
|
65
|
+
readonly en: "A direct conversation needs exactly one other participant";
|
|
66
|
+
};
|
|
67
|
+
readonly "error.400.chat_invalid_kind": {
|
|
68
|
+
readonly status: 400;
|
|
69
|
+
readonly params: readonly [];
|
|
70
|
+
readonly remediation: "fix_input";
|
|
71
|
+
readonly en: "Unknown conversation kind";
|
|
72
|
+
};
|
|
73
|
+
readonly "error.400.chat_invalid_reply": {
|
|
74
|
+
readonly status: 400;
|
|
75
|
+
readonly params: readonly [];
|
|
76
|
+
readonly remediation: "fix_input";
|
|
77
|
+
readonly en: "The replied-to message does not belong to this conversation";
|
|
78
|
+
};
|
|
79
|
+
readonly "error.400.chat_kind_disabled": {
|
|
80
|
+
readonly status: 400;
|
|
81
|
+
readonly params: readonly [];
|
|
82
|
+
readonly remediation: "fix_input";
|
|
83
|
+
readonly en: "This conversation kind is not enabled in this deployment";
|
|
84
|
+
};
|
|
85
|
+
readonly "error.400.chat_not_support": {
|
|
86
|
+
readonly status: 400;
|
|
87
|
+
readonly params: readonly [];
|
|
88
|
+
readonly remediation: "fix_input";
|
|
89
|
+
readonly en: "This operation applies only to support conversations";
|
|
90
|
+
};
|
|
91
|
+
readonly "error.400.expected_list": {
|
|
92
|
+
readonly status: 400;
|
|
93
|
+
readonly params: readonly [];
|
|
94
|
+
readonly remediation: "fix_input";
|
|
95
|
+
readonly en: "Expected a list of items";
|
|
96
|
+
};
|
|
97
|
+
readonly "error.400.field.blank": {
|
|
98
|
+
readonly status: 400;
|
|
99
|
+
readonly params: readonly ["field"];
|
|
100
|
+
readonly remediation: "fix_input";
|
|
101
|
+
readonly en: "{field} may not be blank";
|
|
102
|
+
};
|
|
103
|
+
readonly "error.400.field.does_not_exist": {
|
|
104
|
+
readonly status: 400;
|
|
105
|
+
readonly params: readonly ["field"];
|
|
106
|
+
readonly remediation: "fix_input";
|
|
107
|
+
readonly en: "{field} does not exist";
|
|
108
|
+
};
|
|
109
|
+
readonly "error.400.field.invalid": {
|
|
110
|
+
readonly status: 400;
|
|
111
|
+
readonly params: readonly ["field"];
|
|
112
|
+
readonly remediation: "fix_input";
|
|
113
|
+
readonly en: "{field} is invalid";
|
|
114
|
+
};
|
|
115
|
+
readonly "error.400.field.invalid_choice": {
|
|
116
|
+
readonly status: 400;
|
|
117
|
+
readonly params: readonly ["field"];
|
|
118
|
+
readonly remediation: "fix_input";
|
|
119
|
+
readonly en: "{field} is not a valid choice";
|
|
120
|
+
};
|
|
121
|
+
readonly "error.400.field.max_length": {
|
|
122
|
+
readonly status: 400;
|
|
123
|
+
readonly params: readonly ["field", "max_length"];
|
|
124
|
+
readonly remediation: "fix_input";
|
|
125
|
+
readonly en: "{field} must be at most {max_length} characters";
|
|
126
|
+
};
|
|
127
|
+
readonly "error.400.field.max_value": {
|
|
128
|
+
readonly status: 400;
|
|
129
|
+
readonly params: readonly ["field", "max_value"];
|
|
130
|
+
readonly remediation: "fix_input";
|
|
131
|
+
readonly en: "{field} must be at most {max_value}";
|
|
132
|
+
};
|
|
133
|
+
readonly "error.400.field.min_length": {
|
|
134
|
+
readonly status: 400;
|
|
135
|
+
readonly params: readonly ["field", "min_length"];
|
|
136
|
+
readonly remediation: "fix_input";
|
|
137
|
+
readonly en: "{field} must be at least {min_length} characters";
|
|
138
|
+
};
|
|
139
|
+
readonly "error.400.field.min_value": {
|
|
140
|
+
readonly status: 400;
|
|
141
|
+
readonly params: readonly ["field", "min_value"];
|
|
142
|
+
readonly remediation: "fix_input";
|
|
143
|
+
readonly en: "{field} must be at least {min_value}";
|
|
144
|
+
};
|
|
145
|
+
readonly "error.400.field.null": {
|
|
146
|
+
readonly status: 400;
|
|
147
|
+
readonly params: readonly ["field"];
|
|
148
|
+
readonly remediation: "fix_input";
|
|
149
|
+
readonly en: "{field} may not be null";
|
|
150
|
+
};
|
|
151
|
+
readonly "error.400.field.required": {
|
|
152
|
+
readonly status: 400;
|
|
153
|
+
readonly params: readonly ["field"];
|
|
154
|
+
readonly remediation: "fix_input";
|
|
155
|
+
readonly en: "{field} is required";
|
|
156
|
+
};
|
|
157
|
+
readonly "error.400.field.unique": {
|
|
158
|
+
readonly status: 400;
|
|
159
|
+
readonly params: readonly ["field"];
|
|
160
|
+
readonly remediation: "fix_input";
|
|
161
|
+
readonly en: "{field} must be unique";
|
|
162
|
+
};
|
|
163
|
+
readonly "error.400.invalid_ad_id": {
|
|
164
|
+
readonly status: 400;
|
|
165
|
+
readonly params: readonly [];
|
|
166
|
+
readonly remediation: "fix_input";
|
|
167
|
+
readonly en: "Invalid advertisement ID";
|
|
168
|
+
};
|
|
169
|
+
readonly "error.400.validation_error": {
|
|
170
|
+
readonly status: 400;
|
|
171
|
+
readonly params: readonly [];
|
|
172
|
+
readonly remediation: "fix_input";
|
|
173
|
+
readonly en: "Validation error";
|
|
174
|
+
};
|
|
175
|
+
readonly "error.400.verification_failed": {
|
|
176
|
+
readonly status: 400;
|
|
177
|
+
readonly params: readonly [];
|
|
178
|
+
readonly remediation: "verify";
|
|
179
|
+
readonly en: "Verification failed";
|
|
180
|
+
};
|
|
181
|
+
readonly "error.400.verification_invalid_factor": {
|
|
182
|
+
readonly status: 400;
|
|
183
|
+
readonly params: readonly [];
|
|
184
|
+
readonly remediation: "verify";
|
|
185
|
+
readonly en: "This verification factor is not available";
|
|
186
|
+
};
|
|
187
|
+
readonly "error.401.unauthorized": {
|
|
188
|
+
readonly status: 401;
|
|
189
|
+
readonly params: readonly [];
|
|
190
|
+
readonly remediation: "reauthenticate";
|
|
191
|
+
readonly en: "Authentication required";
|
|
192
|
+
};
|
|
193
|
+
readonly "error.402.payment_required": {
|
|
194
|
+
readonly status: 402;
|
|
195
|
+
readonly params: readonly [];
|
|
196
|
+
readonly remediation: "retry";
|
|
197
|
+
readonly en: "Payment required";
|
|
198
|
+
};
|
|
199
|
+
readonly "error.403.chat_not_operator": {
|
|
200
|
+
readonly status: 403;
|
|
201
|
+
readonly params: readonly [];
|
|
202
|
+
readonly remediation: "retry";
|
|
203
|
+
readonly en: "Only a support operator may perform this action";
|
|
204
|
+
};
|
|
205
|
+
readonly "error.403.chat_not_participant": {
|
|
206
|
+
readonly status: 403;
|
|
207
|
+
readonly params: readonly [];
|
|
208
|
+
readonly remediation: "retry";
|
|
209
|
+
readonly en: "You are not a participant of this conversation";
|
|
210
|
+
};
|
|
211
|
+
readonly "error.403.forbidden": {
|
|
212
|
+
readonly status: 403;
|
|
213
|
+
readonly params: readonly [];
|
|
214
|
+
readonly remediation: "retry";
|
|
215
|
+
readonly en: "You do not have permission to perform this action";
|
|
216
|
+
};
|
|
217
|
+
readonly "error.403.network_blocked": {
|
|
218
|
+
readonly status: 403;
|
|
219
|
+
readonly params: readonly [];
|
|
220
|
+
readonly remediation: "contact_support";
|
|
221
|
+
readonly en: "Requests from this network are not allowed";
|
|
222
|
+
};
|
|
223
|
+
readonly "error.403.verification_enrollment_required": {
|
|
224
|
+
readonly status: 403;
|
|
225
|
+
readonly params: readonly [];
|
|
226
|
+
readonly remediation: "verify";
|
|
227
|
+
readonly en: "Verification factor enrollment required";
|
|
228
|
+
};
|
|
229
|
+
readonly "error.403.verification_required": {
|
|
230
|
+
readonly status: 403;
|
|
231
|
+
readonly params: readonly [];
|
|
232
|
+
readonly remediation: "verify";
|
|
233
|
+
readonly en: "Additional verification required";
|
|
234
|
+
};
|
|
235
|
+
readonly "error.404.ad_not_found": {
|
|
236
|
+
readonly status: 404;
|
|
237
|
+
readonly params: readonly [];
|
|
238
|
+
readonly remediation: "retry";
|
|
239
|
+
readonly en: "Listing not found";
|
|
240
|
+
};
|
|
241
|
+
readonly "error.404.chat_conversation_not_found": {
|
|
242
|
+
readonly status: 404;
|
|
243
|
+
readonly params: readonly [];
|
|
244
|
+
readonly remediation: "retry";
|
|
245
|
+
readonly en: "Conversation not found";
|
|
246
|
+
};
|
|
247
|
+
readonly "error.404.not_found": {
|
|
248
|
+
readonly status: 404;
|
|
249
|
+
readonly params: readonly [];
|
|
250
|
+
readonly remediation: "retry";
|
|
251
|
+
readonly en: "Requested resource not found";
|
|
252
|
+
};
|
|
253
|
+
readonly "error.404.verification_challenge_not_found": {
|
|
254
|
+
readonly status: 404;
|
|
255
|
+
readonly params: readonly [];
|
|
256
|
+
readonly remediation: "verify";
|
|
257
|
+
readonly en: "Verification challenge not found or expired";
|
|
258
|
+
};
|
|
259
|
+
readonly "error.405.method_not_allowed": {
|
|
260
|
+
readonly status: 405;
|
|
261
|
+
readonly params: readonly [];
|
|
262
|
+
readonly remediation: "retry";
|
|
263
|
+
readonly en: "Method not allowed";
|
|
264
|
+
};
|
|
265
|
+
readonly "error.406.not_acceptable": {
|
|
266
|
+
readonly status: 406;
|
|
267
|
+
readonly params: readonly [];
|
|
268
|
+
readonly remediation: "retry";
|
|
269
|
+
readonly en: "Not acceptable";
|
|
270
|
+
};
|
|
271
|
+
readonly "error.408.request_timeout": {
|
|
272
|
+
readonly status: 408;
|
|
273
|
+
readonly params: readonly [];
|
|
274
|
+
readonly remediation: "retry";
|
|
275
|
+
readonly en: "Request timeout";
|
|
276
|
+
};
|
|
277
|
+
readonly "error.409.chat_already_assigned": {
|
|
278
|
+
readonly status: 409;
|
|
279
|
+
readonly params: readonly [];
|
|
280
|
+
readonly remediation: "fix_input";
|
|
281
|
+
readonly en: "This support conversation is already assigned";
|
|
282
|
+
};
|
|
283
|
+
readonly "error.409.conflict": {
|
|
284
|
+
readonly status: 409;
|
|
285
|
+
readonly params: readonly [];
|
|
286
|
+
readonly remediation: "fix_input";
|
|
287
|
+
readonly en: "Resource already exists";
|
|
288
|
+
};
|
|
289
|
+
readonly "error.410.gone": {
|
|
290
|
+
readonly status: 410;
|
|
291
|
+
readonly params: readonly [];
|
|
292
|
+
readonly remediation: "retry";
|
|
293
|
+
readonly en: "Resource has been permanently removed";
|
|
294
|
+
};
|
|
295
|
+
readonly "error.413.payload_too_large": {
|
|
296
|
+
readonly status: 413;
|
|
297
|
+
readonly params: readonly [];
|
|
298
|
+
readonly remediation: "retry";
|
|
299
|
+
readonly en: "Request body is too large";
|
|
300
|
+
};
|
|
301
|
+
readonly "error.415.unsupported_media_type": {
|
|
302
|
+
readonly status: 415;
|
|
303
|
+
readonly params: readonly [];
|
|
304
|
+
readonly remediation: "retry";
|
|
305
|
+
readonly en: "Unsupported media type";
|
|
306
|
+
};
|
|
307
|
+
readonly "error.422.unprocessable_entity": {
|
|
308
|
+
readonly status: 422;
|
|
309
|
+
readonly params: readonly [];
|
|
310
|
+
readonly remediation: "wait_and_retry";
|
|
311
|
+
readonly en: "Unprocessable entity";
|
|
312
|
+
};
|
|
313
|
+
readonly "error.423.locked": {
|
|
314
|
+
readonly status: 423;
|
|
315
|
+
readonly params: readonly [];
|
|
316
|
+
readonly remediation: "wait_and_retry";
|
|
317
|
+
readonly en: "Resource is locked";
|
|
318
|
+
};
|
|
319
|
+
readonly "error.423.verification_locked": {
|
|
320
|
+
readonly status: 423;
|
|
321
|
+
readonly params: readonly [];
|
|
322
|
+
readonly remediation: "wait_and_retry";
|
|
323
|
+
readonly en: "Too many failed attempts — verification locked";
|
|
324
|
+
};
|
|
325
|
+
readonly "error.429.rate_limit": {
|
|
326
|
+
readonly status: 429;
|
|
327
|
+
readonly params: readonly ["retry_after_minutes"];
|
|
328
|
+
readonly remediation: "wait_and_retry";
|
|
329
|
+
readonly en: "Too many attempts. Try again in {retry_after_minutes} minutes.";
|
|
330
|
+
};
|
|
331
|
+
readonly "error.429.too_many_requests": {
|
|
332
|
+
readonly status: 429;
|
|
333
|
+
readonly params: readonly [];
|
|
334
|
+
readonly remediation: "wait_and_retry";
|
|
335
|
+
readonly en: "Too many requests. Please try again later.";
|
|
336
|
+
};
|
|
337
|
+
readonly "error.500.internal": {
|
|
338
|
+
readonly status: 500;
|
|
339
|
+
readonly params: readonly [];
|
|
340
|
+
readonly remediation: "contact_support";
|
|
341
|
+
readonly en: "Something went wrong";
|
|
342
|
+
};
|
|
343
|
+
readonly "error.503.mandate_unavailable": {
|
|
344
|
+
readonly status: 503;
|
|
345
|
+
readonly params: readonly [];
|
|
346
|
+
readonly remediation: "retry";
|
|
347
|
+
readonly en: "Cannot verify workspace mandate right now";
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
export type ChatErrorCode = keyof typeof CHAT_ERRORS;
|
|
351
|
+
/** Every backend error code this module can surface, sorted. */
|
|
352
|
+
export declare const CHAT_ERROR_CODES: readonly ChatErrorCode[];
|
|
353
|
+
/**
|
|
354
|
+
* English fallback bundle — one string per backend key, so a `StapelApiError.code`
|
|
355
|
+
* never renders as a raw key. Merged UNDER the hand-polished UI copy in
|
|
356
|
+
* {@link authI18nBundleEn} (polish wins; this guarantees coverage).
|
|
357
|
+
*/
|
|
358
|
+
export declare const chatErrorBundleEn: Record<ChatErrorCode, string>;
|
|
359
|
+
//# sourceMappingURL=errors.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAuDpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAuD3D,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/gen-errors.mjs — do not edit by hand.
|
|
2
|
+
// Source: stapel-auth canonical errors.json (backend codegen artifact).
|
|
3
|
+
// Regenerate: pnpm gen:errors · Drift gate: pnpm gen:errors:check
|
|
4
|
+
/**
|
|
5
|
+
* The CHAT_ERRORS map — every `error.*` key stapel-auth can raise, keyed by its
|
|
6
|
+
* canonical code. The single source of truth behind the en fallback bundle, the
|
|
7
|
+
* remediation lookup, and the manifest `errors` block.
|
|
8
|
+
*/
|
|
9
|
+
export const CHAT_ERRORS = {
|
|
10
|
+
"error.400.bad_request": { status: 400, params: [], remediation: "fix_input", en: "Bad request" },
|
|
11
|
+
"error.400.captcha_invalid": { status: 400, params: [], remediation: "retry", en: "Captcha verification failed. Please try again." },
|
|
12
|
+
"error.400.captcha_required": { status: 400, params: [], remediation: "retry", en: "Captcha token is required." },
|
|
13
|
+
"error.400.chat_attachments_disabled": { status: 400, params: [], remediation: "fix_input", en: "Attachments are not enabled in this deployment" },
|
|
14
|
+
"error.400.chat_body_too_long": { status: 400, params: [], remediation: "fix_input", en: "Message body exceeds the maximum allowed length" },
|
|
15
|
+
"error.400.chat_empty_message": { status: 400, params: [], remediation: "fix_input", en: "A message must carry a body or at least one attachment" },
|
|
16
|
+
"error.400.chat_invalid_direct": { status: 400, params: [], remediation: "fix_input", en: "A direct conversation needs exactly one other participant" },
|
|
17
|
+
"error.400.chat_invalid_kind": { status: 400, params: [], remediation: "fix_input", en: "Unknown conversation kind" },
|
|
18
|
+
"error.400.chat_invalid_reply": { status: 400, params: [], remediation: "fix_input", en: "The replied-to message does not belong to this conversation" },
|
|
19
|
+
"error.400.chat_kind_disabled": { status: 400, params: [], remediation: "fix_input", en: "This conversation kind is not enabled in this deployment" },
|
|
20
|
+
"error.400.chat_not_support": { status: 400, params: [], remediation: "fix_input", en: "This operation applies only to support conversations" },
|
|
21
|
+
"error.400.expected_list": { status: 400, params: [], remediation: "fix_input", en: "Expected a list of items" },
|
|
22
|
+
"error.400.field.blank": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} may not be blank" },
|
|
23
|
+
"error.400.field.does_not_exist": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} does not exist" },
|
|
24
|
+
"error.400.field.invalid": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} is invalid" },
|
|
25
|
+
"error.400.field.invalid_choice": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} is not a valid choice" },
|
|
26
|
+
"error.400.field.max_length": { status: 400, params: ["field", "max_length"], remediation: "fix_input", en: "{field} must be at most {max_length} characters" },
|
|
27
|
+
"error.400.field.max_value": { status: 400, params: ["field", "max_value"], remediation: "fix_input", en: "{field} must be at most {max_value}" },
|
|
28
|
+
"error.400.field.min_length": { status: 400, params: ["field", "min_length"], remediation: "fix_input", en: "{field} must be at least {min_length} characters" },
|
|
29
|
+
"error.400.field.min_value": { status: 400, params: ["field", "min_value"], remediation: "fix_input", en: "{field} must be at least {min_value}" },
|
|
30
|
+
"error.400.field.null": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} may not be null" },
|
|
31
|
+
"error.400.field.required": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} is required" },
|
|
32
|
+
"error.400.field.unique": { status: 400, params: ["field"], remediation: "fix_input", en: "{field} must be unique" },
|
|
33
|
+
"error.400.invalid_ad_id": { status: 400, params: [], remediation: "fix_input", en: "Invalid advertisement ID" },
|
|
34
|
+
"error.400.validation_error": { status: 400, params: [], remediation: "fix_input", en: "Validation error" },
|
|
35
|
+
"error.400.verification_failed": { status: 400, params: [], remediation: "verify", en: "Verification failed" },
|
|
36
|
+
"error.400.verification_invalid_factor": { status: 400, params: [], remediation: "verify", en: "This verification factor is not available" },
|
|
37
|
+
"error.401.unauthorized": { status: 401, params: [], remediation: "reauthenticate", en: "Authentication required" },
|
|
38
|
+
"error.402.payment_required": { status: 402, params: [], remediation: "retry", en: "Payment required" },
|
|
39
|
+
"error.403.chat_not_operator": { status: 403, params: [], remediation: "retry", en: "Only a support operator may perform this action" },
|
|
40
|
+
"error.403.chat_not_participant": { status: 403, params: [], remediation: "retry", en: "You are not a participant of this conversation" },
|
|
41
|
+
"error.403.forbidden": { status: 403, params: [], remediation: "retry", en: "You do not have permission to perform this action" },
|
|
42
|
+
"error.403.network_blocked": { status: 403, params: [], remediation: "contact_support", en: "Requests from this network are not allowed" },
|
|
43
|
+
"error.403.verification_enrollment_required": { status: 403, params: [], remediation: "verify", en: "Verification factor enrollment required" },
|
|
44
|
+
"error.403.verification_required": { status: 403, params: [], remediation: "verify", en: "Additional verification required" },
|
|
45
|
+
"error.404.ad_not_found": { status: 404, params: [], remediation: "retry", en: "Listing not found" },
|
|
46
|
+
"error.404.chat_conversation_not_found": { status: 404, params: [], remediation: "retry", en: "Conversation not found" },
|
|
47
|
+
"error.404.not_found": { status: 404, params: [], remediation: "retry", en: "Requested resource not found" },
|
|
48
|
+
"error.404.verification_challenge_not_found": { status: 404, params: [], remediation: "verify", en: "Verification challenge not found or expired" },
|
|
49
|
+
"error.405.method_not_allowed": { status: 405, params: [], remediation: "retry", en: "Method not allowed" },
|
|
50
|
+
"error.406.not_acceptable": { status: 406, params: [], remediation: "retry", en: "Not acceptable" },
|
|
51
|
+
"error.408.request_timeout": { status: 408, params: [], remediation: "retry", en: "Request timeout" },
|
|
52
|
+
"error.409.chat_already_assigned": { status: 409, params: [], remediation: "fix_input", en: "This support conversation is already assigned" },
|
|
53
|
+
"error.409.conflict": { status: 409, params: [], remediation: "fix_input", en: "Resource already exists" },
|
|
54
|
+
"error.410.gone": { status: 410, params: [], remediation: "retry", en: "Resource has been permanently removed" },
|
|
55
|
+
"error.413.payload_too_large": { status: 413, params: [], remediation: "retry", en: "Request body is too large" },
|
|
56
|
+
"error.415.unsupported_media_type": { status: 415, params: [], remediation: "retry", en: "Unsupported media type" },
|
|
57
|
+
"error.422.unprocessable_entity": { status: 422, params: [], remediation: "wait_and_retry", en: "Unprocessable entity" },
|
|
58
|
+
"error.423.locked": { status: 423, params: [], remediation: "wait_and_retry", en: "Resource is locked" },
|
|
59
|
+
"error.423.verification_locked": { status: 423, params: [], remediation: "wait_and_retry", en: "Too many failed attempts — verification locked" },
|
|
60
|
+
"error.429.rate_limit": { status: 429, params: ["retry_after_minutes"], remediation: "wait_and_retry", en: "Too many attempts. Try again in {retry_after_minutes} minutes." },
|
|
61
|
+
"error.429.too_many_requests": { status: 429, params: [], remediation: "wait_and_retry", en: "Too many requests. Please try again later." },
|
|
62
|
+
"error.500.internal": { status: 500, params: [], remediation: "contact_support", en: "Something went wrong" },
|
|
63
|
+
"error.503.mandate_unavailable": { status: 503, params: [], remediation: "retry", en: "Cannot verify workspace mandate right now" },
|
|
64
|
+
};
|
|
65
|
+
/** Every backend error code this module can surface, sorted. */
|
|
66
|
+
export const CHAT_ERROR_CODES = [
|
|
67
|
+
"error.400.bad_request",
|
|
68
|
+
"error.400.captcha_invalid",
|
|
69
|
+
"error.400.captcha_required",
|
|
70
|
+
"error.400.chat_attachments_disabled",
|
|
71
|
+
"error.400.chat_body_too_long",
|
|
72
|
+
"error.400.chat_empty_message",
|
|
73
|
+
"error.400.chat_invalid_direct",
|
|
74
|
+
"error.400.chat_invalid_kind",
|
|
75
|
+
"error.400.chat_invalid_reply",
|
|
76
|
+
"error.400.chat_kind_disabled",
|
|
77
|
+
"error.400.chat_not_support",
|
|
78
|
+
"error.400.expected_list",
|
|
79
|
+
"error.400.field.blank",
|
|
80
|
+
"error.400.field.does_not_exist",
|
|
81
|
+
"error.400.field.invalid",
|
|
82
|
+
"error.400.field.invalid_choice",
|
|
83
|
+
"error.400.field.max_length",
|
|
84
|
+
"error.400.field.max_value",
|
|
85
|
+
"error.400.field.min_length",
|
|
86
|
+
"error.400.field.min_value",
|
|
87
|
+
"error.400.field.null",
|
|
88
|
+
"error.400.field.required",
|
|
89
|
+
"error.400.field.unique",
|
|
90
|
+
"error.400.invalid_ad_id",
|
|
91
|
+
"error.400.validation_error",
|
|
92
|
+
"error.400.verification_failed",
|
|
93
|
+
"error.400.verification_invalid_factor",
|
|
94
|
+
"error.401.unauthorized",
|
|
95
|
+
"error.402.payment_required",
|
|
96
|
+
"error.403.chat_not_operator",
|
|
97
|
+
"error.403.chat_not_participant",
|
|
98
|
+
"error.403.forbidden",
|
|
99
|
+
"error.403.network_blocked",
|
|
100
|
+
"error.403.verification_enrollment_required",
|
|
101
|
+
"error.403.verification_required",
|
|
102
|
+
"error.404.ad_not_found",
|
|
103
|
+
"error.404.chat_conversation_not_found",
|
|
104
|
+
"error.404.not_found",
|
|
105
|
+
"error.404.verification_challenge_not_found",
|
|
106
|
+
"error.405.method_not_allowed",
|
|
107
|
+
"error.406.not_acceptable",
|
|
108
|
+
"error.408.request_timeout",
|
|
109
|
+
"error.409.chat_already_assigned",
|
|
110
|
+
"error.409.conflict",
|
|
111
|
+
"error.410.gone",
|
|
112
|
+
"error.413.payload_too_large",
|
|
113
|
+
"error.415.unsupported_media_type",
|
|
114
|
+
"error.422.unprocessable_entity",
|
|
115
|
+
"error.423.locked",
|
|
116
|
+
"error.423.verification_locked",
|
|
117
|
+
"error.429.rate_limit",
|
|
118
|
+
"error.429.too_many_requests",
|
|
119
|
+
"error.500.internal",
|
|
120
|
+
"error.503.mandate_unavailable",
|
|
121
|
+
];
|
|
122
|
+
/**
|
|
123
|
+
* English fallback bundle — one string per backend key, so a `StapelApiError.code`
|
|
124
|
+
* never renders as a raw key. Merged UNDER the hand-polished UI copy in
|
|
125
|
+
* {@link authI18nBundleEn} (polish wins; this guarantees coverage).
|
|
126
|
+
*/
|
|
127
|
+
export const chatErrorBundleEn = {
|
|
128
|
+
"error.400.bad_request": "Bad request",
|
|
129
|
+
"error.400.captcha_invalid": "Captcha verification failed. Please try again.",
|
|
130
|
+
"error.400.captcha_required": "Captcha token is required.",
|
|
131
|
+
"error.400.chat_attachments_disabled": "Attachments are not enabled in this deployment",
|
|
132
|
+
"error.400.chat_body_too_long": "Message body exceeds the maximum allowed length",
|
|
133
|
+
"error.400.chat_empty_message": "A message must carry a body or at least one attachment",
|
|
134
|
+
"error.400.chat_invalid_direct": "A direct conversation needs exactly one other participant",
|
|
135
|
+
"error.400.chat_invalid_kind": "Unknown conversation kind",
|
|
136
|
+
"error.400.chat_invalid_reply": "The replied-to message does not belong to this conversation",
|
|
137
|
+
"error.400.chat_kind_disabled": "This conversation kind is not enabled in this deployment",
|
|
138
|
+
"error.400.chat_not_support": "This operation applies only to support conversations",
|
|
139
|
+
"error.400.expected_list": "Expected a list of items",
|
|
140
|
+
"error.400.field.blank": "{field} may not be blank",
|
|
141
|
+
"error.400.field.does_not_exist": "{field} does not exist",
|
|
142
|
+
"error.400.field.invalid": "{field} is invalid",
|
|
143
|
+
"error.400.field.invalid_choice": "{field} is not a valid choice",
|
|
144
|
+
"error.400.field.max_length": "{field} must be at most {max_length} characters",
|
|
145
|
+
"error.400.field.max_value": "{field} must be at most {max_value}",
|
|
146
|
+
"error.400.field.min_length": "{field} must be at least {min_length} characters",
|
|
147
|
+
"error.400.field.min_value": "{field} must be at least {min_value}",
|
|
148
|
+
"error.400.field.null": "{field} may not be null",
|
|
149
|
+
"error.400.field.required": "{field} is required",
|
|
150
|
+
"error.400.field.unique": "{field} must be unique",
|
|
151
|
+
"error.400.invalid_ad_id": "Invalid advertisement ID",
|
|
152
|
+
"error.400.validation_error": "Validation error",
|
|
153
|
+
"error.400.verification_failed": "Verification failed",
|
|
154
|
+
"error.400.verification_invalid_factor": "This verification factor is not available",
|
|
155
|
+
"error.401.unauthorized": "Authentication required",
|
|
156
|
+
"error.402.payment_required": "Payment required",
|
|
157
|
+
"error.403.chat_not_operator": "Only a support operator may perform this action",
|
|
158
|
+
"error.403.chat_not_participant": "You are not a participant of this conversation",
|
|
159
|
+
"error.403.forbidden": "You do not have permission to perform this action",
|
|
160
|
+
"error.403.network_blocked": "Requests from this network are not allowed",
|
|
161
|
+
"error.403.verification_enrollment_required": "Verification factor enrollment required",
|
|
162
|
+
"error.403.verification_required": "Additional verification required",
|
|
163
|
+
"error.404.ad_not_found": "Listing not found",
|
|
164
|
+
"error.404.chat_conversation_not_found": "Conversation not found",
|
|
165
|
+
"error.404.not_found": "Requested resource not found",
|
|
166
|
+
"error.404.verification_challenge_not_found": "Verification challenge not found or expired",
|
|
167
|
+
"error.405.method_not_allowed": "Method not allowed",
|
|
168
|
+
"error.406.not_acceptable": "Not acceptable",
|
|
169
|
+
"error.408.request_timeout": "Request timeout",
|
|
170
|
+
"error.409.chat_already_assigned": "This support conversation is already assigned",
|
|
171
|
+
"error.409.conflict": "Resource already exists",
|
|
172
|
+
"error.410.gone": "Resource has been permanently removed",
|
|
173
|
+
"error.413.payload_too_large": "Request body is too large",
|
|
174
|
+
"error.415.unsupported_media_type": "Unsupported media type",
|
|
175
|
+
"error.422.unprocessable_entity": "Unprocessable entity",
|
|
176
|
+
"error.423.locked": "Resource is locked",
|
|
177
|
+
"error.423.verification_locked": "Too many failed attempts — verification locked",
|
|
178
|
+
"error.429.rate_limit": "Too many attempts. Try again in {retry_after_minutes} minutes.",
|
|
179
|
+
"error.429.too_many_requests": "Too many requests. Please try again later.",
|
|
180
|
+
"error.500.internal": "Something went wrong",
|
|
181
|
+
"error.503.mandate_unavailable": "Cannot verify workspace mandate right now",
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=errors.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.gen.js","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ChatErrorCode } from "./errors.gen.js";
|
|
2
|
+
/**
|
|
3
|
+
* `ru` texts for the backend error codes this catalog carries.
|
|
4
|
+
*
|
|
5
|
+
* PARTIAL, and deliberately typed to say so: 12 key(s) owned by
|
|
6
|
+
* stapel_chat are absent, because that owner ships no locale catalog
|
|
7
|
+
* (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
|
|
8
|
+
* artifact via the en bundle; the pair layers its own authored `ru`
|
|
9
|
+
* strings over this one until upstream ships translations. `Partial` is what
|
|
10
|
+
* makes the gap visible to TypeScript instead of a silent English fallback.
|
|
11
|
+
*
|
|
12
|
+
* Import from the pair's `./i18n/ru` subpath, NOT the main entry, so
|
|
13
|
+
* the locale stays out of hosts that don't ship it.
|
|
14
|
+
*/
|
|
15
|
+
export declare const chatErrorBundleRu: Partial<Record<ChatErrorCode, string>>;
|
|
16
|
+
//# sourceMappingURL=errors.ru.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.ru.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.ru.gen.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CA2CpE,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ru` texts for the backend error codes this catalog carries.
|
|
3
|
+
*
|
|
4
|
+
* PARTIAL, and deliberately typed to say so: 12 key(s) owned by
|
|
5
|
+
* stapel_chat are absent, because that owner ships no locale catalog
|
|
6
|
+
* (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
|
|
7
|
+
* artifact via the en bundle; the pair layers its own authored `ru`
|
|
8
|
+
* strings over this one until upstream ships translations. `Partial` is what
|
|
9
|
+
* makes the gap visible to TypeScript instead of a silent English fallback.
|
|
10
|
+
*
|
|
11
|
+
* Import from the pair's `./i18n/ru` subpath, NOT the main entry, so
|
|
12
|
+
* the locale stays out of hosts that don't ship it.
|
|
13
|
+
*/
|
|
14
|
+
export const chatErrorBundleRu = {
|
|
15
|
+
"error.400.bad_request": "Некорректный запрос",
|
|
16
|
+
"error.400.captcha_invalid": "Проверка капчи не пройдена. Пожалуйста, попробуйте ещё раз.",
|
|
17
|
+
"error.400.captcha_required": "Требуется токен капчи.",
|
|
18
|
+
"error.400.expected_list": "Ожидался список элементов",
|
|
19
|
+
"error.400.field.blank": "Поле «{field}» не может быть пустым",
|
|
20
|
+
"error.400.field.does_not_exist": "«{field}» не существует",
|
|
21
|
+
"error.400.field.invalid": "Поле «{field}» содержит недопустимое значение",
|
|
22
|
+
"error.400.field.invalid_choice": "Недопустимый вариант для поля «{field}»",
|
|
23
|
+
"error.400.field.max_length": "Поле «{field}» должно содержать не более {max_length} символов",
|
|
24
|
+
"error.400.field.max_value": "Значение поля «{field}» должно быть не больше {max_value}",
|
|
25
|
+
"error.400.field.min_length": "Поле «{field}» должно содержать не менее {min_length} символов",
|
|
26
|
+
"error.400.field.min_value": "Значение поля «{field}» должно быть не меньше {min_value}",
|
|
27
|
+
"error.400.field.null": "Поле «{field}» не может быть null",
|
|
28
|
+
"error.400.field.required": "Поле «{field}» обязательно",
|
|
29
|
+
"error.400.field.unique": "Значение поля «{field}» должно быть уникальным",
|
|
30
|
+
"error.400.invalid_ad_id": "Недопустимый идентификатор объявления",
|
|
31
|
+
"error.400.validation_error": "Ошибка валидации",
|
|
32
|
+
"error.400.verification_failed": "Проверка не пройдена",
|
|
33
|
+
"error.400.verification_invalid_factor": "Этот способ подтверждения недоступен",
|
|
34
|
+
"error.401.unauthorized": "Требуется аутентификация",
|
|
35
|
+
"error.402.payment_required": "Требуется оплата",
|
|
36
|
+
"error.403.forbidden": "У вас нет прав для выполнения этого действия",
|
|
37
|
+
"error.403.network_blocked": "Запросы из этой сети не разрешены.",
|
|
38
|
+
"error.403.verification_enrollment_required": "Требуется регистрация фактора подтверждения.",
|
|
39
|
+
"error.403.verification_required": "Требуется дополнительная проверка",
|
|
40
|
+
"error.404.ad_not_found": "Объявление не найдено",
|
|
41
|
+
"error.404.not_found": "Запрошенный ресурс не найден",
|
|
42
|
+
"error.404.verification_challenge_not_found": "Запрос на подтверждение не найден или истёк",
|
|
43
|
+
"error.405.method_not_allowed": "Метод не разрешён",
|
|
44
|
+
"error.406.not_acceptable": "Недопустимый формат ответа",
|
|
45
|
+
"error.408.request_timeout": "Время ожидания запроса истекло",
|
|
46
|
+
"error.409.conflict": "Ресурс уже существует",
|
|
47
|
+
"error.410.gone": "Ресурс был безвозвратно удалён",
|
|
48
|
+
"error.413.payload_too_large": "Тело запроса слишком большое",
|
|
49
|
+
"error.415.unsupported_media_type": "Неподдерживаемый тип данных",
|
|
50
|
+
"error.422.unprocessable_entity": "Невозможно обработать данные запроса",
|
|
51
|
+
"error.423.locked": "Ресурс заблокирован",
|
|
52
|
+
"error.423.verification_locked": "Слишком много неудачных попыток — подтверждение заблокировано",
|
|
53
|
+
"error.429.rate_limit": "Слишком много попыток. Повторите попытку через {retry_after_minutes} мин.",
|
|
54
|
+
"error.429.too_many_requests": "Слишком много запросов. Пожалуйста, повторите попытку позже.",
|
|
55
|
+
"error.500.internal": "Что-то пошло не так",
|
|
56
|
+
"error.503.mandate_unavailable": "Не удалось проверить доступ к рабочему пространству",
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=errors.ru.gen.js.map
|