@webzaytsev/support-sdk 0.1.0 → 0.1.1
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/README.md +230 -0
- package/dist/client.gen.d.mts +14 -0
- package/dist/client.gen.d.ts +6 -5
- package/dist/client.gen.js +785 -6
- package/dist/client.gen.js.map +1 -1
- package/dist/client.gen.mjs +784 -0
- package/dist/client.gen.mjs.map +1 -0
- package/dist/index.d.mts +58 -0
- package/dist/index.d.ts +58 -3
- package/dist/index.js +878 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +869 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types.gen-DHi9F3K-.d.mts +670 -0
- package/dist/types.gen-DHi9F3K-.d.ts +670 -0
- package/dist/zod.gen.d.mts +267 -0
- package/dist/zod.gen.d.ts +34 -32
- package/dist/zod.gen.js +170 -177
- package/dist/zod.gen.js.map +1 -1
- package/dist/zod.gen.mjs +119 -0
- package/dist/zod.gen.mjs.map +1 -0
- package/package.json +16 -8
- package/dist/client/client.gen.d.ts +0 -3
- package/dist/client/client.gen.d.ts.map +0 -1
- package/dist/client/client.gen.js +0 -221
- package/dist/client/client.gen.js.map +0 -1
- package/dist/client/index.d.ts +0 -9
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -18
- package/dist/client/index.js.map +0 -1
- package/dist/client/types.gen.d.ts +0 -121
- package/dist/client/types.gen.d.ts.map +0 -1
- package/dist/client/types.gen.js +0 -4
- package/dist/client/types.gen.js.map +0 -1
- package/dist/client/utils.gen.d.ts +0 -38
- package/dist/client/utils.gen.d.ts.map +0 -1
- package/dist/client/utils.gen.js +0 -242
- package/dist/client/utils.gen.js.map +0 -1
- package/dist/client.gen.d.ts.map +0 -1
- package/dist/core/auth.gen.d.ts +0 -19
- package/dist/core/auth.gen.d.ts.map +0 -1
- package/dist/core/auth.gen.js +0 -19
- package/dist/core/auth.gen.js.map +0 -1
- package/dist/core/bodySerializer.gen.d.ts +0 -26
- package/dist/core/bodySerializer.gen.d.ts.map +0 -1
- package/dist/core/bodySerializer.gen.js +0 -61
- package/dist/core/bodySerializer.gen.js.map +0 -1
- package/dist/core/params.gen.d.ts +0 -44
- package/dist/core/params.gen.d.ts.map +0 -1
- package/dist/core/params.gen.js +0 -105
- package/dist/core/params.gen.js.map +0 -1
- package/dist/core/pathSerializer.gen.d.ts +0 -34
- package/dist/core/pathSerializer.gen.d.ts.map +0 -1
- package/dist/core/pathSerializer.gen.js +0 -116
- package/dist/core/pathSerializer.gen.js.map +0 -1
- package/dist/core/queryKeySerializer.gen.d.ts +0 -19
- package/dist/core/queryKeySerializer.gen.d.ts.map +0 -1
- package/dist/core/queryKeySerializer.gen.js +0 -99
- package/dist/core/queryKeySerializer.gen.js.map +0 -1
- package/dist/core/serverSentEvents.gen.d.ts +0 -72
- package/dist/core/serverSentEvents.gen.d.ts.map +0 -1
- package/dist/core/serverSentEvents.gen.js +0 -136
- package/dist/core/serverSentEvents.gen.js.map +0 -1
- package/dist/core/types.gen.d.ts +0 -79
- package/dist/core/types.gen.d.ts.map +0 -1
- package/dist/core/types.gen.js +0 -4
- package/dist/core/types.gen.js.map +0 -1
- package/dist/core/utils.gen.d.ts +0 -20
- package/dist/core/utils.gen.d.ts.map +0 -1
- package/dist/core/utils.gen.js +0 -94
- package/dist/core/utils.gen.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/sdk.gen.d.ts +0 -56
- package/dist/sdk.gen.d.ts.map +0 -1
- package/dist/sdk.gen.js +0 -105
- package/dist/sdk.gen.js.map +0 -1
- package/dist/types.gen.d.ts +0 -355
- package/dist/types.gen.d.ts.map +0 -1
- package/dist/types.gen.js +0 -4
- package/dist/types.gen.js.map +0 -1
- package/dist/zod.gen.d.ts.map +0 -1
|
@@ -0,0 +1,670 @@
|
|
|
1
|
+
type AuthToken = string | undefined;
|
|
2
|
+
interface Auth {
|
|
3
|
+
/**
|
|
4
|
+
* Which part of the request do we use to send the auth?
|
|
5
|
+
*
|
|
6
|
+
* @default 'header'
|
|
7
|
+
*/
|
|
8
|
+
in?: 'header' | 'query' | 'cookie';
|
|
9
|
+
/**
|
|
10
|
+
* Header or query parameter name.
|
|
11
|
+
*
|
|
12
|
+
* @default 'Authorization'
|
|
13
|
+
*/
|
|
14
|
+
name?: string;
|
|
15
|
+
scheme?: 'basic' | 'bearer';
|
|
16
|
+
type: 'apiKey' | 'http';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface SerializerOptions<T> {
|
|
20
|
+
/**
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
explode: boolean;
|
|
24
|
+
style: T;
|
|
25
|
+
}
|
|
26
|
+
type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';
|
|
27
|
+
type ObjectStyle = 'form' | 'deepObject';
|
|
28
|
+
|
|
29
|
+
type QuerySerializer = (query: Record<string, unknown>) => string;
|
|
30
|
+
type BodySerializer = (body: unknown) => unknown;
|
|
31
|
+
type QuerySerializerOptionsObject = {
|
|
32
|
+
allowReserved?: boolean;
|
|
33
|
+
array?: Partial<SerializerOptions<ArrayStyle>>;
|
|
34
|
+
object?: Partial<SerializerOptions<ObjectStyle>>;
|
|
35
|
+
};
|
|
36
|
+
type QuerySerializerOptions = QuerySerializerOptionsObject & {
|
|
37
|
+
/**
|
|
38
|
+
* Per-parameter serialization overrides. When provided, these settings
|
|
39
|
+
* override the global array/object settings for specific parameter names.
|
|
40
|
+
*/
|
|
41
|
+
parameters?: Record<string, QuerySerializerOptionsObject>;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type HttpMethod = 'connect' | 'delete' | 'get' | 'head' | 'options' | 'patch' | 'post' | 'put' | 'trace';
|
|
45
|
+
type Client$1<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never, SseFn = never> = {
|
|
46
|
+
/**
|
|
47
|
+
* Returns the final request URL.
|
|
48
|
+
*/
|
|
49
|
+
buildUrl: BuildUrlFn;
|
|
50
|
+
getConfig: () => Config;
|
|
51
|
+
request: RequestFn;
|
|
52
|
+
setConfig: (config: Config) => Config;
|
|
53
|
+
} & {
|
|
54
|
+
[K in HttpMethod]: MethodFn;
|
|
55
|
+
} & ([SseFn] extends [never] ? {
|
|
56
|
+
sse?: never;
|
|
57
|
+
} : {
|
|
58
|
+
sse: {
|
|
59
|
+
[K in HttpMethod]: SseFn;
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
interface Config$1 {
|
|
63
|
+
/**
|
|
64
|
+
* Auth token or a function returning auth token. The resolved value will be
|
|
65
|
+
* added to the request payload as defined by its `security` array.
|
|
66
|
+
*/
|
|
67
|
+
auth?: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken;
|
|
68
|
+
/**
|
|
69
|
+
* A function for serializing request body parameter. By default,
|
|
70
|
+
* {@link JSON.stringify()} will be used.
|
|
71
|
+
*/
|
|
72
|
+
bodySerializer?: BodySerializer | null;
|
|
73
|
+
/**
|
|
74
|
+
* An object containing any HTTP headers that you want to pre-populate your
|
|
75
|
+
* `Headers` object with.
|
|
76
|
+
*
|
|
77
|
+
* {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
|
|
78
|
+
*/
|
|
79
|
+
headers?: RequestInit['headers'] | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
|
|
80
|
+
/**
|
|
81
|
+
* The request method.
|
|
82
|
+
*
|
|
83
|
+
* {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
|
|
84
|
+
*/
|
|
85
|
+
method?: Uppercase<HttpMethod>;
|
|
86
|
+
/**
|
|
87
|
+
* A function for serializing request query parameters. By default, arrays
|
|
88
|
+
* will be exploded in form style, objects will be exploded in deepObject
|
|
89
|
+
* style, and reserved characters are percent-encoded.
|
|
90
|
+
*
|
|
91
|
+
* This method will have no effect if the native `paramsSerializer()` Axios
|
|
92
|
+
* API function is used.
|
|
93
|
+
*
|
|
94
|
+
* {@link https://swagger.io/docs/specification/serialization/#query View examples}
|
|
95
|
+
*/
|
|
96
|
+
querySerializer?: QuerySerializer | QuerySerializerOptions;
|
|
97
|
+
/**
|
|
98
|
+
* A function validating request data. This is useful if you want to ensure
|
|
99
|
+
* the request conforms to the desired shape, so it can be safely sent to
|
|
100
|
+
* the server.
|
|
101
|
+
*/
|
|
102
|
+
requestValidator?: (data: unknown) => Promise<unknown>;
|
|
103
|
+
/**
|
|
104
|
+
* A function transforming response data before it's returned. This is useful
|
|
105
|
+
* for post-processing data, e.g., converting ISO strings into Date objects.
|
|
106
|
+
*/
|
|
107
|
+
responseTransformer?: (data: unknown) => Promise<unknown>;
|
|
108
|
+
/**
|
|
109
|
+
* A function validating response data. This is useful if you want to ensure
|
|
110
|
+
* the response conforms to the desired shape, so it can be safely passed to
|
|
111
|
+
* the transformers and returned to the user.
|
|
112
|
+
*/
|
|
113
|
+
responseValidator?: (data: unknown) => Promise<unknown>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> & Pick<Config$1, 'method' | 'responseTransformer' | 'responseValidator'> & {
|
|
117
|
+
/**
|
|
118
|
+
* Fetch API implementation. You can use this option to provide a custom
|
|
119
|
+
* fetch instance.
|
|
120
|
+
*
|
|
121
|
+
* @default globalThis.fetch
|
|
122
|
+
*/
|
|
123
|
+
fetch?: typeof fetch;
|
|
124
|
+
/**
|
|
125
|
+
* Implementing clients can call request interceptors inside this hook.
|
|
126
|
+
*/
|
|
127
|
+
onRequest?: (url: string, init: RequestInit) => Promise<Request>;
|
|
128
|
+
/**
|
|
129
|
+
* Callback invoked when a network or parsing error occurs during streaming.
|
|
130
|
+
*
|
|
131
|
+
* This option applies only if the endpoint returns a stream of events.
|
|
132
|
+
*
|
|
133
|
+
* @param error The error that occurred.
|
|
134
|
+
*/
|
|
135
|
+
onSseError?: (error: unknown) => void;
|
|
136
|
+
/**
|
|
137
|
+
* Callback invoked when an event is streamed from the server.
|
|
138
|
+
*
|
|
139
|
+
* This option applies only if the endpoint returns a stream of events.
|
|
140
|
+
*
|
|
141
|
+
* @param event Event streamed from the server.
|
|
142
|
+
* @returns Nothing (void).
|
|
143
|
+
*/
|
|
144
|
+
onSseEvent?: (event: StreamEvent<TData>) => void;
|
|
145
|
+
serializedBody?: RequestInit['body'];
|
|
146
|
+
/**
|
|
147
|
+
* Default retry delay in milliseconds.
|
|
148
|
+
*
|
|
149
|
+
* This option applies only if the endpoint returns a stream of events.
|
|
150
|
+
*
|
|
151
|
+
* @default 3000
|
|
152
|
+
*/
|
|
153
|
+
sseDefaultRetryDelay?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Maximum number of retry attempts before giving up.
|
|
156
|
+
*/
|
|
157
|
+
sseMaxRetryAttempts?: number;
|
|
158
|
+
/**
|
|
159
|
+
* Maximum retry delay in milliseconds.
|
|
160
|
+
*
|
|
161
|
+
* Applies only when exponential backoff is used.
|
|
162
|
+
*
|
|
163
|
+
* This option applies only if the endpoint returns a stream of events.
|
|
164
|
+
*
|
|
165
|
+
* @default 30000
|
|
166
|
+
*/
|
|
167
|
+
sseMaxRetryDelay?: number;
|
|
168
|
+
/**
|
|
169
|
+
* Optional sleep function for retry backoff.
|
|
170
|
+
*
|
|
171
|
+
* Defaults to using `setTimeout`.
|
|
172
|
+
*/
|
|
173
|
+
sseSleepFn?: (ms: number) => Promise<void>;
|
|
174
|
+
url: string;
|
|
175
|
+
};
|
|
176
|
+
interface StreamEvent<TData = unknown> {
|
|
177
|
+
data: TData;
|
|
178
|
+
event?: string;
|
|
179
|
+
id?: string;
|
|
180
|
+
retry?: number;
|
|
181
|
+
}
|
|
182
|
+
type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {
|
|
183
|
+
stream: AsyncGenerator<TData extends Record<string, unknown> ? TData[keyof TData] : TData, TReturn, TNext>;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
type ErrInterceptor<Err, Res, Req, Options> = (error: Err,
|
|
187
|
+
/** response may be undefined due to a network error where no response object is produced */
|
|
188
|
+
response: Res | undefined,
|
|
189
|
+
/** request may be undefined, because error may be from building the request object itself */
|
|
190
|
+
request: Req | undefined, options: Options) => Err | Promise<Err>;
|
|
191
|
+
type ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;
|
|
192
|
+
type ResInterceptor<Res, Req, Options> = (response: Res, request: Req, options: Options) => Res | Promise<Res>;
|
|
193
|
+
declare class Interceptors<Interceptor> {
|
|
194
|
+
fns: Array<Interceptor | null>;
|
|
195
|
+
clear(): void;
|
|
196
|
+
eject(id: number | Interceptor): void;
|
|
197
|
+
exists(id: number | Interceptor): boolean;
|
|
198
|
+
getInterceptorIndex(id: number | Interceptor): number;
|
|
199
|
+
update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false;
|
|
200
|
+
use(fn: Interceptor): number;
|
|
201
|
+
}
|
|
202
|
+
interface Middleware<Req, Res, Err, Options> {
|
|
203
|
+
error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;
|
|
204
|
+
request: Interceptors<ReqInterceptor<Req, Options>>;
|
|
205
|
+
response: Interceptors<ResInterceptor<Res, Req, Options>>;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
type ResponseStyle = 'data' | 'fields';
|
|
209
|
+
interface Config<T extends ClientOptions$1 = ClientOptions$1> extends Omit<RequestInit, 'body' | 'headers' | 'method'>, Config$1 {
|
|
210
|
+
/**
|
|
211
|
+
* Base URL for all requests made by this client.
|
|
212
|
+
*/
|
|
213
|
+
baseUrl?: T['baseUrl'];
|
|
214
|
+
/**
|
|
215
|
+
* Fetch API implementation. You can use this option to provide a custom
|
|
216
|
+
* fetch instance.
|
|
217
|
+
*
|
|
218
|
+
* @default globalThis.fetch
|
|
219
|
+
*/
|
|
220
|
+
fetch?: typeof fetch;
|
|
221
|
+
/**
|
|
222
|
+
* Please don't use the Fetch client for Next.js applications. The `next`
|
|
223
|
+
* options won't have any effect.
|
|
224
|
+
*
|
|
225
|
+
* Install {@link https://www.npmjs.com/package/@hey-api/client-next `@hey-api/client-next`} instead.
|
|
226
|
+
*/
|
|
227
|
+
next?: never;
|
|
228
|
+
/**
|
|
229
|
+
* Return the response data parsed in a specified format. By default, `auto`
|
|
230
|
+
* will infer the appropriate method from the `Content-Type` response header.
|
|
231
|
+
* You can override this behavior with any of the {@link Body} methods.
|
|
232
|
+
* Select `stream` if you don't want to parse response data at all.
|
|
233
|
+
*
|
|
234
|
+
* @default 'auto'
|
|
235
|
+
*/
|
|
236
|
+
parseAs?: 'arrayBuffer' | 'auto' | 'blob' | 'formData' | 'json' | 'stream' | 'text';
|
|
237
|
+
/**
|
|
238
|
+
* Should we return only data or multiple fields (data, error, response, etc.)?
|
|
239
|
+
*
|
|
240
|
+
* @default 'fields'
|
|
241
|
+
*/
|
|
242
|
+
responseStyle?: ResponseStyle;
|
|
243
|
+
/**
|
|
244
|
+
* Throw an error instead of returning it in the response?
|
|
245
|
+
*
|
|
246
|
+
* @default false
|
|
247
|
+
*/
|
|
248
|
+
throwOnError?: T['throwOnError'];
|
|
249
|
+
}
|
|
250
|
+
interface RequestOptions<TData = unknown, TResponseStyle extends ResponseStyle = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends Config<{
|
|
251
|
+
responseStyle: TResponseStyle;
|
|
252
|
+
throwOnError: ThrowOnError;
|
|
253
|
+
}>, Pick<ServerSentEventsOptions<TData>, 'onRequest' | 'onSseError' | 'onSseEvent' | 'sseDefaultRetryDelay' | 'sseMaxRetryAttempts' | 'sseMaxRetryDelay'> {
|
|
254
|
+
/**
|
|
255
|
+
* Any body that you want to add to your request.
|
|
256
|
+
*
|
|
257
|
+
* {@link https://developer.mozilla.org/docs/Web/API/fetch#body}
|
|
258
|
+
*/
|
|
259
|
+
body?: unknown;
|
|
260
|
+
path?: Record<string, unknown>;
|
|
261
|
+
query?: Record<string, unknown>;
|
|
262
|
+
/**
|
|
263
|
+
* Security mechanism(s) to use for the request.
|
|
264
|
+
*/
|
|
265
|
+
security?: ReadonlyArray<Auth>;
|
|
266
|
+
url: Url;
|
|
267
|
+
}
|
|
268
|
+
interface ResolvedRequestOptions<TResponseStyle extends ResponseStyle = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends RequestOptions<unknown, TResponseStyle, ThrowOnError, Url> {
|
|
269
|
+
headers: Headers;
|
|
270
|
+
serializedBody?: string;
|
|
271
|
+
}
|
|
272
|
+
type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = 'fields'> = ThrowOnError extends true ? Promise<TResponseStyle extends 'data' ? TData extends Record<string, unknown> ? TData[keyof TData] : TData : {
|
|
273
|
+
data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
|
|
274
|
+
request: Request;
|
|
275
|
+
response: Response;
|
|
276
|
+
}> : Promise<TResponseStyle extends 'data' ? (TData extends Record<string, unknown> ? TData[keyof TData] : TData) | undefined : ({
|
|
277
|
+
data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
|
|
278
|
+
error: undefined;
|
|
279
|
+
} | {
|
|
280
|
+
data: undefined;
|
|
281
|
+
error: TError extends Record<string, unknown> ? TError[keyof TError] : TError;
|
|
282
|
+
}) & {
|
|
283
|
+
/** request may be undefined, because error may be from building the request object itself */
|
|
284
|
+
request?: Request;
|
|
285
|
+
/** response may be undefined, because error may be from building the request object itself or from a network error */
|
|
286
|
+
response?: Response;
|
|
287
|
+
}>;
|
|
288
|
+
interface ClientOptions$1 {
|
|
289
|
+
baseUrl?: string;
|
|
290
|
+
responseStyle?: ResponseStyle;
|
|
291
|
+
throwOnError?: boolean;
|
|
292
|
+
}
|
|
293
|
+
type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
|
|
294
|
+
type SseFn = <TData = unknown, _TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>) => Promise<ServerSentEventsResult<TData>>;
|
|
295
|
+
type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'> & Pick<Required<RequestOptions<TData, TResponseStyle, ThrowOnError>>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
|
|
296
|
+
type BuildUrlFn = <TData extends {
|
|
297
|
+
body?: unknown;
|
|
298
|
+
path?: Record<string, unknown>;
|
|
299
|
+
query?: Record<string, unknown>;
|
|
300
|
+
url: string;
|
|
301
|
+
}>(options: TData & Options<TData>) => string;
|
|
302
|
+
type Client = Client$1<RequestFn, Config, MethodFn, BuildUrlFn, SseFn> & {
|
|
303
|
+
interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions>;
|
|
304
|
+
};
|
|
305
|
+
interface TDataShape {
|
|
306
|
+
body?: unknown;
|
|
307
|
+
headers?: unknown;
|
|
308
|
+
path?: unknown;
|
|
309
|
+
query?: unknown;
|
|
310
|
+
url: string;
|
|
311
|
+
}
|
|
312
|
+
type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
313
|
+
type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
|
|
314
|
+
|
|
315
|
+
type ClientOptions = {
|
|
316
|
+
baseUrl: string;
|
|
317
|
+
};
|
|
318
|
+
type WebProfileDto = {
|
|
319
|
+
/**
|
|
320
|
+
* Display name (≤120 chars)
|
|
321
|
+
*/
|
|
322
|
+
name: string;
|
|
323
|
+
/**
|
|
324
|
+
* User email
|
|
325
|
+
*/
|
|
326
|
+
email?: string;
|
|
327
|
+
/**
|
|
328
|
+
* URL to user profile in admin panel
|
|
329
|
+
*/
|
|
330
|
+
profileUrl?: string;
|
|
331
|
+
/**
|
|
332
|
+
* Key-value pairs (≤32 keys, key ≤64, value ≤512). Read by plugins (e.g. Remnawave reads userId).
|
|
333
|
+
*/
|
|
334
|
+
extra?: {
|
|
335
|
+
[key: string]: string;
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
type IssueTokenDto = {
|
|
339
|
+
/**
|
|
340
|
+
* External user ID from your backend database
|
|
341
|
+
*/
|
|
342
|
+
userId: string;
|
|
343
|
+
/**
|
|
344
|
+
* User profile snapshot passed from your backend
|
|
345
|
+
*/
|
|
346
|
+
userProfile: WebProfileDto;
|
|
347
|
+
/**
|
|
348
|
+
* JWT TTL in seconds (max 3600, default 900)
|
|
349
|
+
*/
|
|
350
|
+
ttlSec?: number;
|
|
351
|
+
};
|
|
352
|
+
type IssueTokenResponseDto = {
|
|
353
|
+
/**
|
|
354
|
+
* Short-lived JWT for widget authentication
|
|
355
|
+
*/
|
|
356
|
+
token: string;
|
|
357
|
+
/**
|
|
358
|
+
* ISO timestamp when the token expires
|
|
359
|
+
*/
|
|
360
|
+
expiresAt: string;
|
|
361
|
+
};
|
|
362
|
+
type WebSseEventDataDto = {
|
|
363
|
+
/**
|
|
364
|
+
* Message ID (for 'message' events)
|
|
365
|
+
*/
|
|
366
|
+
messageId?: number;
|
|
367
|
+
/**
|
|
368
|
+
* Message text
|
|
369
|
+
*/
|
|
370
|
+
text?: string;
|
|
371
|
+
/**
|
|
372
|
+
* Attachment upload IDs
|
|
373
|
+
*/
|
|
374
|
+
attachmentIds?: Array<string>;
|
|
375
|
+
/**
|
|
376
|
+
* Message ID that triggered escalation ('escalation_ack' event)
|
|
377
|
+
*/
|
|
378
|
+
escalatableMessageId?: number;
|
|
379
|
+
/**
|
|
380
|
+
* Escalation source
|
|
381
|
+
*/
|
|
382
|
+
source?: string;
|
|
383
|
+
/**
|
|
384
|
+
* ISO timestamp of the event
|
|
385
|
+
*/
|
|
386
|
+
createdAt?: string;
|
|
387
|
+
/**
|
|
388
|
+
* Human-readable message for system events
|
|
389
|
+
*/
|
|
390
|
+
message?: string;
|
|
391
|
+
};
|
|
392
|
+
type WebSseEventDto = {
|
|
393
|
+
/**
|
|
394
|
+
* Event type
|
|
395
|
+
*/
|
|
396
|
+
type: 'message' | 'resolved' | 'closed' | 'escalation_ack' | 'reopened' | 'heartbeat';
|
|
397
|
+
/**
|
|
398
|
+
* Ticket ID this event belongs to
|
|
399
|
+
*/
|
|
400
|
+
ticketId: number;
|
|
401
|
+
/**
|
|
402
|
+
* Event payload (absent for heartbeat)
|
|
403
|
+
*/
|
|
404
|
+
data?: WebSseEventDataDto;
|
|
405
|
+
};
|
|
406
|
+
type SendMessageDto = {
|
|
407
|
+
/**
|
|
408
|
+
* Message text
|
|
409
|
+
*/
|
|
410
|
+
text: string;
|
|
411
|
+
/**
|
|
412
|
+
* Upload IDs returned by POST /web/uploads
|
|
413
|
+
*/
|
|
414
|
+
attachmentIds?: Array<string>;
|
|
415
|
+
};
|
|
416
|
+
type SendMessageResponseDto = {
|
|
417
|
+
/**
|
|
418
|
+
* Ticket ID (created or existing)
|
|
419
|
+
*/
|
|
420
|
+
ticketId: number;
|
|
421
|
+
/**
|
|
422
|
+
* ID of the recorded message
|
|
423
|
+
*/
|
|
424
|
+
messageId: number;
|
|
425
|
+
/**
|
|
426
|
+
* ISO timestamp when the message was created
|
|
427
|
+
*/
|
|
428
|
+
createdAt: string;
|
|
429
|
+
};
|
|
430
|
+
type TicketInfoDto = {
|
|
431
|
+
/**
|
|
432
|
+
* Ticket ID
|
|
433
|
+
*/
|
|
434
|
+
id: number;
|
|
435
|
+
/**
|
|
436
|
+
* Ticket status
|
|
437
|
+
*/
|
|
438
|
+
status: 'open' | 'closed';
|
|
439
|
+
/**
|
|
440
|
+
* ISO timestamp when ticket was created
|
|
441
|
+
*/
|
|
442
|
+
createdAt: string;
|
|
443
|
+
/**
|
|
444
|
+
* ISO timestamp of last update
|
|
445
|
+
*/
|
|
446
|
+
updatedAt: string;
|
|
447
|
+
};
|
|
448
|
+
type MessageDto = {
|
|
449
|
+
/**
|
|
450
|
+
* Message ID
|
|
451
|
+
*/
|
|
452
|
+
id: number;
|
|
453
|
+
/**
|
|
454
|
+
* Message author role
|
|
455
|
+
*/
|
|
456
|
+
role: 'user' | 'moderator' | 'bot' | 'system';
|
|
457
|
+
/**
|
|
458
|
+
* Text content of the message
|
|
459
|
+
*/
|
|
460
|
+
content: {
|
|
461
|
+
[key: string]: unknown;
|
|
462
|
+
} | null;
|
|
463
|
+
/**
|
|
464
|
+
* Upload IDs of attached images
|
|
465
|
+
*/
|
|
466
|
+
webAttachmentIds: Array<string> | null;
|
|
467
|
+
/**
|
|
468
|
+
* ISO timestamp when the message was created
|
|
469
|
+
*/
|
|
470
|
+
createdAt: string;
|
|
471
|
+
};
|
|
472
|
+
type CurrentTicketResponseDto = {
|
|
473
|
+
/**
|
|
474
|
+
* Current open ticket, null if none
|
|
475
|
+
*/
|
|
476
|
+
ticket: TicketInfoDto | null;
|
|
477
|
+
/**
|
|
478
|
+
* Messages in chronological order (oldest first, max 50)
|
|
479
|
+
*/
|
|
480
|
+
messages: Array<MessageDto>;
|
|
481
|
+
};
|
|
482
|
+
type MessagesResponseDto = {
|
|
483
|
+
/**
|
|
484
|
+
* Messages in chronological order (oldest first)
|
|
485
|
+
*/
|
|
486
|
+
messages: Array<MessageDto>;
|
|
487
|
+
/**
|
|
488
|
+
* Pass as ?since= in the next poll request. Null when no messages returned.
|
|
489
|
+
*/
|
|
490
|
+
nextCursor: {
|
|
491
|
+
[key: string]: unknown;
|
|
492
|
+
} | null;
|
|
493
|
+
};
|
|
494
|
+
type UploadResponseDto = {
|
|
495
|
+
/**
|
|
496
|
+
* Upload ID to use in attachmentIds when sending a message
|
|
497
|
+
*/
|
|
498
|
+
uploadId: string;
|
|
499
|
+
/**
|
|
500
|
+
* MIME type of the uploaded file
|
|
501
|
+
*/
|
|
502
|
+
mimeType: string;
|
|
503
|
+
/**
|
|
504
|
+
* File size in bytes
|
|
505
|
+
*/
|
|
506
|
+
sizeBytes: number;
|
|
507
|
+
};
|
|
508
|
+
type WebAuthControllerIssueTokenData = {
|
|
509
|
+
body: IssueTokenDto;
|
|
510
|
+
path?: never;
|
|
511
|
+
query?: never;
|
|
512
|
+
url: '/web/auth/token';
|
|
513
|
+
};
|
|
514
|
+
type WebAuthControllerIssueTokenResponses = {
|
|
515
|
+
/**
|
|
516
|
+
* Short-lived JWT issued
|
|
517
|
+
*/
|
|
518
|
+
200: IssueTokenResponseDto;
|
|
519
|
+
};
|
|
520
|
+
type WebAuthControllerIssueTokenResponse = WebAuthControllerIssueTokenResponses[keyof WebAuthControllerIssueTokenResponses];
|
|
521
|
+
type WebTicketsControllerSendMessageData = {
|
|
522
|
+
body: SendMessageDto;
|
|
523
|
+
path?: never;
|
|
524
|
+
query?: never;
|
|
525
|
+
url: '/web/messages';
|
|
526
|
+
};
|
|
527
|
+
type WebTicketsControllerSendMessageResponses = {
|
|
528
|
+
/**
|
|
529
|
+
* Message recorded
|
|
530
|
+
*/
|
|
531
|
+
200: SendMessageResponseDto;
|
|
532
|
+
};
|
|
533
|
+
type WebTicketsControllerSendMessageResponse = WebTicketsControllerSendMessageResponses[keyof WebTicketsControllerSendMessageResponses];
|
|
534
|
+
type WebTicketsControllerGetCurrentTicketData = {
|
|
535
|
+
body?: never;
|
|
536
|
+
path?: never;
|
|
537
|
+
query?: never;
|
|
538
|
+
url: '/web/tickets/current';
|
|
539
|
+
};
|
|
540
|
+
type WebTicketsControllerGetCurrentTicketResponses = {
|
|
541
|
+
/**
|
|
542
|
+
* Current ticket state
|
|
543
|
+
*/
|
|
544
|
+
200: CurrentTicketResponseDto;
|
|
545
|
+
};
|
|
546
|
+
type WebTicketsControllerGetCurrentTicketResponse = WebTicketsControllerGetCurrentTicketResponses[keyof WebTicketsControllerGetCurrentTicketResponses];
|
|
547
|
+
type WebTicketsControllerGetMessagesData = {
|
|
548
|
+
body?: never;
|
|
549
|
+
path: {
|
|
550
|
+
/**
|
|
551
|
+
* Ticket ID
|
|
552
|
+
*/
|
|
553
|
+
id: number;
|
|
554
|
+
};
|
|
555
|
+
query?: {
|
|
556
|
+
/**
|
|
557
|
+
* ISO timestamp cursor from previous response nextCursor
|
|
558
|
+
*/
|
|
559
|
+
since?: string;
|
|
560
|
+
/**
|
|
561
|
+
* Max messages to return (1–100, default 50)
|
|
562
|
+
*/
|
|
563
|
+
limit?: string;
|
|
564
|
+
};
|
|
565
|
+
url: '/web/tickets/{id}/messages';
|
|
566
|
+
};
|
|
567
|
+
type WebTicketsControllerGetMessagesResponses = {
|
|
568
|
+
/**
|
|
569
|
+
* Messages since cursor
|
|
570
|
+
*/
|
|
571
|
+
200: MessagesResponseDto;
|
|
572
|
+
};
|
|
573
|
+
type WebTicketsControllerGetMessagesResponse = WebTicketsControllerGetMessagesResponses[keyof WebTicketsControllerGetMessagesResponses];
|
|
574
|
+
type WebTicketsControllerSseStreamData = {
|
|
575
|
+
body?: never;
|
|
576
|
+
path: {
|
|
577
|
+
/**
|
|
578
|
+
* Ticket ID
|
|
579
|
+
*/
|
|
580
|
+
id: number;
|
|
581
|
+
};
|
|
582
|
+
query?: {
|
|
583
|
+
/**
|
|
584
|
+
* JWT token (alternative to Authorization header, required for native EventSource)
|
|
585
|
+
*/
|
|
586
|
+
access_token?: unknown;
|
|
587
|
+
};
|
|
588
|
+
url: '/web/tickets/{id}/stream';
|
|
589
|
+
};
|
|
590
|
+
type WebTicketsControllerSseStreamResponses = {
|
|
591
|
+
/**
|
|
592
|
+
* Server-Sent Events stream
|
|
593
|
+
*/
|
|
594
|
+
200: WebSseEventDto;
|
|
595
|
+
};
|
|
596
|
+
type WebTicketsControllerSseStreamResponse = WebTicketsControllerSseStreamResponses[keyof WebTicketsControllerSseStreamResponses];
|
|
597
|
+
type WebTicketsControllerEscalateData = {
|
|
598
|
+
body?: never;
|
|
599
|
+
path: {
|
|
600
|
+
/**
|
|
601
|
+
* Ticket ID
|
|
602
|
+
*/
|
|
603
|
+
id: number;
|
|
604
|
+
};
|
|
605
|
+
query?: never;
|
|
606
|
+
url: '/web/tickets/{id}/escalate';
|
|
607
|
+
};
|
|
608
|
+
type WebTicketsControllerEscalateResponses = {
|
|
609
|
+
/**
|
|
610
|
+
* Escalation request submitted
|
|
611
|
+
*/
|
|
612
|
+
204: void;
|
|
613
|
+
};
|
|
614
|
+
type WebTicketsControllerEscalateResponse = WebTicketsControllerEscalateResponses[keyof WebTicketsControllerEscalateResponses];
|
|
615
|
+
type WebTicketsControllerResolveByUserData = {
|
|
616
|
+
body?: never;
|
|
617
|
+
path: {
|
|
618
|
+
/**
|
|
619
|
+
* Ticket ID
|
|
620
|
+
*/
|
|
621
|
+
id: number;
|
|
622
|
+
};
|
|
623
|
+
query?: never;
|
|
624
|
+
url: '/web/tickets/{id}/resolve';
|
|
625
|
+
};
|
|
626
|
+
type WebTicketsControllerResolveByUserResponses = {
|
|
627
|
+
/**
|
|
628
|
+
* Ticket resolved
|
|
629
|
+
*/
|
|
630
|
+
204: void;
|
|
631
|
+
};
|
|
632
|
+
type WebTicketsControllerResolveByUserResponse = WebTicketsControllerResolveByUserResponses[keyof WebTicketsControllerResolveByUserResponses];
|
|
633
|
+
type WebUploadsControllerUploadData = {
|
|
634
|
+
body: {
|
|
635
|
+
/**
|
|
636
|
+
* Image file (jpeg/png/webp, max 10 MB)
|
|
637
|
+
*/
|
|
638
|
+
file: Blob | File;
|
|
639
|
+
};
|
|
640
|
+
path?: never;
|
|
641
|
+
query?: never;
|
|
642
|
+
url: '/web/uploads';
|
|
643
|
+
};
|
|
644
|
+
type WebUploadsControllerUploadResponses = {
|
|
645
|
+
/**
|
|
646
|
+
* File uploaded successfully
|
|
647
|
+
*/
|
|
648
|
+
200: UploadResponseDto;
|
|
649
|
+
};
|
|
650
|
+
type WebUploadsControllerUploadResponse = WebUploadsControllerUploadResponses[keyof WebUploadsControllerUploadResponses];
|
|
651
|
+
type WebUploadsControllerGetUploadData = {
|
|
652
|
+
body?: never;
|
|
653
|
+
path: {
|
|
654
|
+
/**
|
|
655
|
+
* Upload ID returned by POST /web/uploads
|
|
656
|
+
*/
|
|
657
|
+
id: string;
|
|
658
|
+
};
|
|
659
|
+
query?: never;
|
|
660
|
+
url: '/web/uploads/{id}';
|
|
661
|
+
};
|
|
662
|
+
type WebUploadsControllerGetUploadResponses = {
|
|
663
|
+
/**
|
|
664
|
+
* Image file stream
|
|
665
|
+
*/
|
|
666
|
+
200: Blob | File;
|
|
667
|
+
};
|
|
668
|
+
type WebUploadsControllerGetUploadResponse = WebUploadsControllerGetUploadResponses[keyof WebUploadsControllerGetUploadResponses];
|
|
669
|
+
|
|
670
|
+
export type { WebTicketsControllerSendMessageData as A, WebTicketsControllerSendMessageResponse as B, Client as C, WebTicketsControllerSendMessageResponses as D, WebTicketsControllerSseStreamData as E, WebTicketsControllerSseStreamResponse as F, WebTicketsControllerSseStreamResponses as G, WebUploadsControllerGetUploadData as H, IssueTokenDto as I, WebUploadsControllerGetUploadResponse as J, WebUploadsControllerGetUploadResponses as K, WebUploadsControllerUploadData as L, MessageDto as M, WebUploadsControllerUploadResponse as N, Options as O, WebUploadsControllerUploadResponses as P, RequestResult as R, SendMessageDto as S, TDataShape as T, UploadResponseDto as U, WebAuthControllerIssueTokenData as W, ClientOptions as a, ClientOptions$1 as b, Config as c, CurrentTicketResponseDto as d, IssueTokenResponseDto as e, MessagesResponseDto as f, SendMessageResponseDto as g, ServerSentEventsResult as h, TicketInfoDto as i, WebAuthControllerIssueTokenResponse as j, WebAuthControllerIssueTokenResponses as k, WebProfileDto as l, WebSseEventDataDto as m, WebSseEventDto as n, WebTicketsControllerEscalateData as o, WebTicketsControllerEscalateResponse as p, WebTicketsControllerEscalateResponses as q, WebTicketsControllerGetCurrentTicketData as r, WebTicketsControllerGetCurrentTicketResponse as s, WebTicketsControllerGetCurrentTicketResponses as t, WebTicketsControllerGetMessagesData as u, WebTicketsControllerGetMessagesResponse as v, WebTicketsControllerGetMessagesResponses as w, WebTicketsControllerResolveByUserData as x, WebTicketsControllerResolveByUserResponse as y, WebTicketsControllerResolveByUserResponses as z };
|