@h-ai/api-client 0.1.0-alpha.13 → 0.1.0-alpha.16
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 +61 -283
- package/dist/index.d.ts +1552 -268
- package/dist/index.js +327 -617
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import * as _h_ai_core from '@h-ai/core';
|
|
2
2
|
import { HaiResult } from '@h-ai/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CryptoFunctions } from '@h-ai/crypto';
|
|
4
|
+
import * as _orpc_contract from '@orpc/contract';
|
|
5
|
+
import { AnyContractRouter, ContractRouterClient } from '@orpc/contract';
|
|
6
|
+
import { JsonifiedClient } from '@orpc/openapi-client';
|
|
7
|
+
import * as _h_ai_api_contract from '@h-ai/api-contract';
|
|
8
|
+
import * as zod_v4_core from 'zod/v4/core';
|
|
9
|
+
import * as zod from 'zod';
|
|
4
10
|
|
|
11
|
+
/**
|
|
12
|
+
* API client 标准错误集合(遵循 `@h-ai/core` 错误码规范)。
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* if (!result.success && result.error.code === HaiApiClientError.UNAUTHORIZED.code) {
|
|
17
|
+
* redirectToLogin()
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
5
21
|
declare const HaiApiClientError: {
|
|
6
22
|
readonly NETWORK_ERROR: _h_ai_core.HaiErrorDef;
|
|
7
23
|
readonly TIMEOUT: _h_ai_core.HaiErrorDef;
|
|
@@ -15,334 +31,1602 @@ declare const HaiApiClientError: {
|
|
|
15
31
|
readonly CONFIG_ERROR: _h_ai_core.HaiErrorDef;
|
|
16
32
|
readonly UNKNOWN: _h_ai_core.HaiErrorDef;
|
|
17
33
|
};
|
|
18
|
-
/**
|
|
19
|
-
* API 端点契约定义
|
|
20
|
-
*
|
|
21
|
-
* 描述单个 API 端点的 HTTP 方法、路径、入参/出参 Schema 与元数据。
|
|
22
|
-
* 客户端通过 `api.call(endpoint, input)` 调用,服务端通过
|
|
23
|
-
* `kit.fromContract(endpoint, handler)` 响应,两端共享同一份契约。
|
|
24
|
-
*
|
|
25
|
-
* @typeParam TInput - 入参类型(由 Zod Schema 推导)
|
|
26
|
-
* @typeParam TOutput - 出参类型(由 Zod Schema 推导)
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```ts
|
|
30
|
-
* const loginEndpoint: EndpointDef<LoginInput, LoginOutput> = {
|
|
31
|
-
* method: 'POST',
|
|
32
|
-
* path: '/auth/login',
|
|
33
|
-
* input: LoginInputSchema,
|
|
34
|
-
* output: LoginOutputSchema,
|
|
35
|
-
* requireAuth: false,
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
interface EndpointDef<TInput = unknown, TOutput = unknown> {
|
|
40
|
-
/** HTTP 方法 */
|
|
41
|
-
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
42
|
-
/** 相对路径(相对于 API 前缀,如 '/auth/login') */
|
|
43
|
-
path: string;
|
|
44
|
-
/** 入参 Zod Schema(GET 请求为 query params,其他为 body) */
|
|
45
|
-
input: z.ZodType<TInput>;
|
|
46
|
-
/** 出参 Zod Schema */
|
|
47
|
-
output: z.ZodType<TOutput>;
|
|
48
|
-
/** 是否需要认证(默认 true) */
|
|
49
|
-
requireAuth?: boolean;
|
|
50
|
-
/** OpenAPI 描述元数据 */
|
|
51
|
-
meta?: {
|
|
52
|
-
summary?: string;
|
|
53
|
-
tags?: string[];
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Token 对(与 @h-ai/iam 的 TokenPair 对齐)
|
|
58
|
-
*/
|
|
34
|
+
/** Token 对(与 `@h-ai/iam` 的 TokenPair 对齐)。 */
|
|
59
35
|
interface TokenPair {
|
|
60
|
-
/**
|
|
61
|
-
accessToken: string;
|
|
62
|
-
/**
|
|
63
|
-
refreshToken
|
|
64
|
-
/**
|
|
65
|
-
expiresIn: number;
|
|
66
|
-
/**
|
|
67
|
-
tokenType: 'Bearer';
|
|
36
|
+
/** 短期访问凭证,请求时作为 `Authorization: Bearer ...`。 */
|
|
37
|
+
readonly accessToken: string;
|
|
38
|
+
/** 长期刷新凭证;httpOnly cookie 模式下由服务端管理,响应体中可能不存在。 */
|
|
39
|
+
readonly refreshToken?: string;
|
|
40
|
+
/** accessToken 有效期秒数。 */
|
|
41
|
+
readonly expiresIn: number;
|
|
42
|
+
/** 固定为 `'Bearer'`。 */
|
|
43
|
+
readonly tokenType: 'Bearer';
|
|
68
44
|
}
|
|
69
45
|
/**
|
|
70
|
-
* Token
|
|
46
|
+
* Token 存储适配器。
|
|
47
|
+
*
|
|
48
|
+
* 内置实现:
|
|
49
|
+
* - `apiClient.tokenStorage.httpOnlyCookie()` — **默认**;浏览器端推荐,refresh token 由服务端管理,防 XSS。
|
|
50
|
+
* - `apiClient.tokenStorage.memory()` — Node.js 测试 / SSR(需显式传入)。
|
|
51
|
+
* - `apiClient.tokenStorage.localStorage()` — 浏览器 SPA / PWA(有 XSS 风险,生产不推荐)。
|
|
71
52
|
*
|
|
72
|
-
*
|
|
53
|
+
* Capacitor / 小程序场景请由对应模块提供(例如 `@h-ai/capacitor`)。
|
|
73
54
|
*/
|
|
74
55
|
interface TokenStorage {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
getRefreshToken: () => Promise<string | null>;
|
|
81
|
-
/** 设置 Refresh Token */
|
|
82
|
-
setRefreshToken: (token: string) => Promise<void>;
|
|
83
|
-
/** 清空所有 Token */
|
|
84
|
-
clear: () => Promise<void>;
|
|
56
|
+
readonly getAccessToken: () => Promise<string | null>;
|
|
57
|
+
readonly setAccessToken: (token: string) => Promise<void>;
|
|
58
|
+
readonly getRefreshToken: () => Promise<string | null>;
|
|
59
|
+
readonly setRefreshToken: (token: string) => Promise<void>;
|
|
60
|
+
readonly clear: () => Promise<void>;
|
|
85
61
|
}
|
|
86
|
-
/**
|
|
87
|
-
* 请求配置(传递给拦截器)
|
|
88
|
-
*/
|
|
89
|
-
interface RequestConfig {
|
|
90
|
-
/** 完整 URL */
|
|
91
|
-
url: string;
|
|
92
|
-
/** HTTP 方法 */
|
|
93
|
-
method: string;
|
|
94
|
-
/** 请求头 */
|
|
95
|
-
headers: Record<string, string>;
|
|
96
|
-
/** 请求体(已序列化) */
|
|
97
|
-
body?: string | FormData;
|
|
98
|
-
/** 信号(abort) */
|
|
99
|
-
signal?: AbortSignal;
|
|
100
|
-
}
|
|
101
|
-
/** 请求拦截器 */
|
|
102
|
-
type RequestInterceptor = (config: RequestConfig) => RequestConfig | Promise<RequestConfig>;
|
|
103
|
-
/** 响应拦截器 */
|
|
104
|
-
type ResponseInterceptor = (response: Response) => Response | Promise<Response>;
|
|
105
|
-
/**
|
|
106
|
-
* Token 刷新配置
|
|
107
|
-
*/
|
|
62
|
+
/** Token 自动刷新配置。 */
|
|
108
63
|
interface AuthConfig {
|
|
109
|
-
/** Token 存储适配器(默认 createLocalStorageTokenStorage) */
|
|
110
|
-
storage?: TokenStorage;
|
|
111
|
-
/** Refresh Token 接口路径(相对于 baseUrl) */
|
|
112
|
-
refreshUrl: string;
|
|
113
|
-
/** Token 刷新回调 */
|
|
114
|
-
onTokenRefreshed?: (tokens: TokenPair) => void;
|
|
115
|
-
/** Token 刷新失败回调(通常用于跳转登录页) */
|
|
116
|
-
onRefreshFailed?: () => void;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* ApiClient 配置
|
|
120
|
-
*/
|
|
121
|
-
interface ApiClientConfig {
|
|
122
|
-
/** API 基础 URL(如 https://api.example.com/api/v1) */
|
|
123
|
-
baseUrl: string;
|
|
124
|
-
/** Token 认证配置(省略则不启用自动 Token 管理) */
|
|
125
|
-
auth?: AuthConfig;
|
|
126
|
-
/** 请求超时(毫秒,默认 30000) */
|
|
127
|
-
timeout?: number;
|
|
128
|
-
/** 拦截器 */
|
|
129
|
-
interceptors?: {
|
|
130
|
-
request?: RequestInterceptor[];
|
|
131
|
-
response?: ResponseInterceptor[];
|
|
132
|
-
};
|
|
133
|
-
/** 自定义 fetch 实现(用于测试或特殊环境) */
|
|
134
|
-
fetch?: typeof globalThis.fetch;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* 文件上传选项
|
|
138
|
-
*/
|
|
139
|
-
interface UploadOptions {
|
|
140
|
-
/** 文件字段名(默认 'file') */
|
|
141
|
-
fieldName?: string;
|
|
142
|
-
/** 附加表单字段 */
|
|
143
|
-
extraFields?: Record<string, string>;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* 流式请求选项
|
|
147
|
-
*/
|
|
148
|
-
interface StreamOptions {
|
|
149
|
-
/** 外部取消信号(例如 AbortController.signal) */
|
|
150
|
-
signal?: AbortSignal;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Api Client 实例接口
|
|
154
|
-
*
|
|
155
|
-
* 提供通用 HTTP 方法和契约调用能力。
|
|
156
|
-
*/
|
|
157
|
-
interface ApiClient {
|
|
158
|
-
/** GET 请求 */
|
|
159
|
-
get: <T>(path: string, params?: Record<string, unknown>) => Promise<HaiResult<T>>;
|
|
160
|
-
/** POST 请求 */
|
|
161
|
-
post: <T>(path: string, body?: unknown) => Promise<HaiResult<T>>;
|
|
162
|
-
/** PUT 请求 */
|
|
163
|
-
put: <T>(path: string, body?: unknown) => Promise<HaiResult<T>>;
|
|
164
|
-
/** PATCH 请求 */
|
|
165
|
-
patch: <T>(path: string, body?: unknown) => Promise<HaiResult<T>>;
|
|
166
|
-
/** DELETE 请求 */
|
|
167
|
-
delete: <T>(path: string, params?: Record<string, unknown>) => Promise<HaiResult<T>>;
|
|
168
|
-
/** 文件上传 */
|
|
169
|
-
upload: (path: string, file: File | Blob, options?: UploadOptions) => Promise<HaiResult<unknown>>;
|
|
170
|
-
/** 流式请求(返回 AsyncIterable) */
|
|
171
|
-
stream: (path: string, body?: unknown, options?: StreamOptions) => AsyncIterable<string>;
|
|
172
64
|
/**
|
|
173
|
-
*
|
|
65
|
+
* Token 存储适配器;默认 `apiClient.tokenStorage.httpOnlyCookie()`(refresh token 由服务端管理,防 XSS)。
|
|
174
66
|
*
|
|
175
|
-
*
|
|
67
|
+
* - SSR / Node.js 测试场景请显式传入 `apiClient.tokenStorage.memory()`。
|
|
68
|
+
* - 浏览器 SPA 如确需持久化,可显式传 `apiClient.tokenStorage.localStorage()`,
|
|
69
|
+
* 但请先评估 XSS 风险。
|
|
70
|
+
* - Capacitor / 小程序请使用对应平台的安全存储适配器(如 `@h-ai/capacitor`)。
|
|
176
71
|
*/
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
72
|
+
readonly storage?: TokenStorage;
|
|
73
|
+
/** 刷新接口路径,相对于 `baseUrl`,默认 `/auth/refresh`。 */
|
|
74
|
+
readonly refreshPath?: string;
|
|
75
|
+
/**
|
|
76
|
+
* 刷新请求超时(ms),默认 10_000。
|
|
77
|
+
* 避免 refresh 接口上游挂死时所有 dedup 调用方一起 hang。
|
|
78
|
+
* 超时后按现有 transient 失败处理(不清 token,下次请求可重试)。
|
|
79
|
+
*/
|
|
80
|
+
readonly refreshTimeoutMs?: number;
|
|
81
|
+
/** 刷新成功回调,用于同步状态(例如多 Tab 广播)。 */
|
|
82
|
+
readonly onTokenRefreshed?: (tokens: TokenPair) => void;
|
|
83
|
+
/** 刷新失败回调(如 refresh token 已失效),通常用于跳转登录页。 */
|
|
84
|
+
readonly onRefreshFailed?: () => void;
|
|
187
85
|
}
|
|
188
|
-
/**
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
declare function defineEndpoint<TInput, TOutput>(def: EndpointDef<TInput, TOutput>): EndpointDef<TInput, TOutput>;
|
|
203
|
-
/**
|
|
204
|
-
* API 客户端函数接口(单例模式)
|
|
205
|
-
*
|
|
206
|
-
* 统一的 API 客户端访问入口:
|
|
207
|
-
* - `api.init(config)` — 初始化客户端
|
|
208
|
-
* - `api.close()` — 关闭客户端并释放资源
|
|
209
|
-
* - `api.get / post / put / patch / delete` — 通用 HTTP 方法
|
|
210
|
-
* - `api.call(endpoint, input)` — 契约调用
|
|
211
|
-
* - `api.upload(path, file)` — 文件上传
|
|
212
|
-
* - `api.stream(path, body)` — 流式请求
|
|
213
|
-
* - `api.auth` — Token 管理
|
|
214
|
-
* - `api.config` — 当前配置(未初始化时为 null)
|
|
215
|
-
* - `api.isInitialized` — 初始化状态
|
|
216
|
-
*/
|
|
217
|
-
interface ApiClientFunctions {
|
|
86
|
+
/** API client 初始化配置。 */
|
|
87
|
+
interface ApiClientConfig {
|
|
88
|
+
/** API service 完整 baseUrl,通常含 `apiPrefix`,例如 `https://api.example.com/api/v1`。 */
|
|
89
|
+
readonly baseUrl: string;
|
|
90
|
+
/** 认证配置;不传则不启用 Token 注入与自动刷新。 */
|
|
91
|
+
readonly auth?: AuthConfig;
|
|
92
|
+
/** 请求超时(ms),默认 30000。 */
|
|
93
|
+
readonly timeout?: number;
|
|
94
|
+
/** 客户端标识,写入 `x-request-client` 请求头,默认 `hai-api-client`。 */
|
|
95
|
+
readonly clientName?: string;
|
|
96
|
+
/** 额外请求头,可为静态对象或异步函数。 */
|
|
97
|
+
readonly headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
|
|
98
|
+
/** 自定义 fetch(测试 mock / Capacitor / 小程序桥接)。 */
|
|
99
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
218
100
|
/**
|
|
219
|
-
*
|
|
101
|
+
* 启用端到端传输加密(opt-in)。
|
|
102
|
+
*
|
|
103
|
+
* 配置后所有出站请求会在底层 fetch 之上做一次混合加密,并自动解密
|
|
104
|
+
* 标记为 `X-Encrypted: true` 的响应。服务端需启用对应的 `serv.createApp({ transport })`。
|
|
220
105
|
*
|
|
221
|
-
*
|
|
106
|
+
* `crypto` 字段结构与 `@h-ai/crypto` 的 `crypto` 实例兼容;通常直接传入:
|
|
222
107
|
*
|
|
223
|
-
* @
|
|
224
|
-
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* import { apiClient } from '@h-ai/api-client'
|
|
111
|
+
* import { crypto } from '@h-ai/crypto'
|
|
112
|
+
*
|
|
113
|
+
* await crypto.init()
|
|
114
|
+
* await apiClient.init({
|
|
115
|
+
* baseUrl: 'https://api.example.com/api/v1',
|
|
116
|
+
* transport: { crypto },
|
|
117
|
+
* })
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
readonly transport?: ApiClientTransportConfig;
|
|
121
|
+
}
|
|
122
|
+
/** {@link ApiClientConfig.transport} 的配置项。 */
|
|
123
|
+
interface ApiClientTransportConfig {
|
|
124
|
+
/**
|
|
125
|
+
* crypto 服务实例(通常直接传入 `@h-ai/crypto` 的 `crypto`)。
|
|
126
|
+
* api-client 通过 `crypto.transport.createClient(...)` 创建会话。
|
|
225
127
|
*/
|
|
226
|
-
|
|
128
|
+
readonly crypto: CryptoFunctions;
|
|
227
129
|
/**
|
|
228
|
-
*
|
|
130
|
+
* 密钥协商端点路径,相对于 `baseUrl`,默认 `/_hai/key-exchange`。
|
|
229
131
|
*
|
|
230
|
-
*
|
|
132
|
+
* 必须与服务端 `serv.createApp({ transport: { keyExchangePath } })` 一致。
|
|
231
133
|
*/
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
/** DELETE 请求 */
|
|
246
|
-
readonly delete: ApiClient['delete'];
|
|
247
|
-
/** 文件上传 */
|
|
248
|
-
readonly upload: ApiClient['upload'];
|
|
134
|
+
readonly keyExchangePath?: string;
|
|
135
|
+
}
|
|
136
|
+
/** Token 辅助操作。 */
|
|
137
|
+
interface ApiClientAuth {
|
|
138
|
+
/** 手动写入 Token(例如登录成功后)。 */
|
|
139
|
+
readonly setTokens: (tokens: TokenPair) => Promise<void>;
|
|
140
|
+
/** 清空存储的 Token(登出)。 */
|
|
141
|
+
readonly clear: () => Promise<void>;
|
|
142
|
+
/** 订阅 Token 刷新成功事件,返回取消订阅函数。 */
|
|
143
|
+
readonly onTokenRefreshed: (callback: (tokens: TokenPair) => void) => () => void;
|
|
144
|
+
}
|
|
145
|
+
/** API client 生命周期能力。 */
|
|
146
|
+
interface ApiClientLifecycle {
|
|
249
147
|
/**
|
|
250
|
-
*
|
|
148
|
+
* 初始化 client;必须在调用任何 procedure 前完成。
|
|
251
149
|
*
|
|
252
|
-
* @
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* await client.init({
|
|
153
|
+
* baseUrl: 'https://api.example.com/api/v1',
|
|
154
|
+
* auth: { refreshPath: '/auth/refresh' },
|
|
155
|
+
* timeout: 15_000,
|
|
156
|
+
* })
|
|
157
|
+
* ```
|
|
253
158
|
*/
|
|
254
|
-
readonly
|
|
255
|
-
/**
|
|
256
|
-
readonly
|
|
257
|
-
/**
|
|
258
|
-
readonly
|
|
159
|
+
readonly init: (config: ApiClientConfig) => Promise<HaiResult<void>>;
|
|
160
|
+
/** 释放资源并允许重新 `init`。 */
|
|
161
|
+
readonly close: () => Promise<void>;
|
|
162
|
+
/** 当前运行配置;未初始化时为 `null`。 */
|
|
163
|
+
readonly config: ApiClientConfig | null;
|
|
164
|
+
/** 是否已完成初始化。 */
|
|
165
|
+
readonly isInitialized: boolean;
|
|
166
|
+
/** Token 辅助操作。 */
|
|
167
|
+
readonly auth: ApiClientAuth;
|
|
259
168
|
}
|
|
169
|
+
/** 根据 oRPC contract 推导出的 typed API client(生命周期 + procedure 调用)。 */
|
|
170
|
+
type ApiClient<TContract extends AnyContractRouter> = ApiClientLifecycle & JsonifiedClient<ContractRouterClient<TContract>>;
|
|
260
171
|
|
|
261
172
|
/**
|
|
262
|
-
* @h-ai/api-client — Token
|
|
173
|
+
* @h-ai/api-client — Token 存储与刷新管理
|
|
174
|
+
*
|
|
175
|
+
* 提供两个内置 Token 存储适配器(localStorage / 内存)和一个 Token 管理器
|
|
176
|
+
* (封装存储读写、自动刷新、并发去重、回调通知)。
|
|
177
|
+
*
|
|
178
|
+
* @example 浏览器 SPA
|
|
179
|
+
* ```ts
|
|
180
|
+
* import { apiClient } from '@h-ai/api-client'
|
|
181
|
+
*
|
|
182
|
+
* await apiClient.init({
|
|
183
|
+
* baseUrl: 'https://api.example.com/api/v1',
|
|
184
|
+
* auth: { storage: apiClient.tokenStorage.localStorage() },
|
|
185
|
+
* })
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @example Node.js 测试
|
|
189
|
+
* ```ts
|
|
190
|
+
* import { apiClient } from '@h-ai/api-client'
|
|
191
|
+
*
|
|
192
|
+
* const storage = apiClient.tokenStorage.memory()
|
|
193
|
+
* await storage.setAccessToken('abc')
|
|
194
|
+
* ```
|
|
263
195
|
*
|
|
264
|
-
* 提供 localStorage 和内存两种内置 Token 存储实现。
|
|
265
196
|
* @module api-client-auth
|
|
266
197
|
*/
|
|
267
198
|
|
|
268
199
|
/**
|
|
269
|
-
* 创建基于 localStorage 的 Token
|
|
270
|
-
*
|
|
271
|
-
* 适用于浏览器端 SPA / PWA。Capacitor 环境建议使用
|
|
272
|
-
* `@h-ai/capacitor` 提供的 `CapacitorTokenStorage`。
|
|
200
|
+
* 创建基于 `localStorage` 的 Token 存储(浏览器 SPA / PWA)。
|
|
273
201
|
*
|
|
274
|
-
*
|
|
202
|
+
* ⚠️ 安全提示(XSS 风险):
|
|
203
|
+
* - `localStorage` 对同源脚本可读,任意 XSS 漏洞都可以偷取 Token。
|
|
204
|
+
* - 生产环境应优先使用 httpOnly cookie + SameSite 或 BFF 主机代理。
|
|
205
|
+
* - 本适配器仅适用于内部工具、Demo、或者已接受 XSS 风险的浏览器场景,
|
|
206
|
+
* 并且在调用方明确选择使用。`apiClient.create` 默认不会使用本适配器,
|
|
207
|
+
* 需调用方显式传入 `auth.storage = apiClient.tokenStorage.localStorage()`。
|
|
275
208
|
*
|
|
276
209
|
* @example
|
|
277
210
|
* ```ts
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
* baseUrl: 'https://api.example.com',
|
|
282
|
-
* auth: {
|
|
283
|
-
* storage: createLocalStorageTokenStorage(),
|
|
284
|
-
* refreshUrl: '/auth/refresh',
|
|
285
|
-
* },
|
|
211
|
+
* await apiClient.init({
|
|
212
|
+
* baseUrl: 'https://api.example.com/api/v1',
|
|
213
|
+
* auth: { storage: apiClient.tokenStorage.localStorage() },
|
|
286
214
|
* })
|
|
287
215
|
* ```
|
|
288
216
|
*/
|
|
289
217
|
declare function createLocalStorageTokenStorage(): TokenStorage;
|
|
290
218
|
/**
|
|
291
|
-
* 创建内存 Token
|
|
219
|
+
* 创建内存 Token 存储(Node.js 测试 / SSR / 短生命周期场景)。
|
|
220
|
+
* 页面刷新后丢失。
|
|
292
221
|
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```ts
|
|
224
|
+
* const storage = apiClient.tokenStorage.memory()
|
|
225
|
+
* await storage.setAccessToken('abc')
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
declare function createMemoryTokenStorage(): TokenStorage;
|
|
229
|
+
/**
|
|
230
|
+
* 创建基于 httpOnly cookie 的 Token 存储(生产环境推荐方案)。
|
|
295
231
|
*
|
|
296
|
-
*
|
|
232
|
+
* **安全模型:**
|
|
233
|
+
* - `accessToken` 保存在**内存**中:JS 可读写,用于注入 `Authorization: Bearer`;
|
|
234
|
+
* 页面刷新后丢失,由 refresh 流程自动补充。
|
|
235
|
+
* - `refreshToken` 保存在服务端设置的 **httpOnly cookie** 中:
|
|
236
|
+
* - JS 不可读写,XSS 脚本无法直接盗取。
|
|
237
|
+
* - 结合 `SameSite=Strict` 可阻止 CSRF 攻击。
|
|
238
|
+
* - 浏览器在每次请求时自动携带,无需客户端显式传递。
|
|
239
|
+
*
|
|
240
|
+
* **服务端配套要求:**
|
|
241
|
+
* 1. 登录端点在响应中设置:
|
|
242
|
+
* ```
|
|
243
|
+
* Set-Cookie: refresh_token=<token>; HttpOnly; SameSite=Strict; Secure;
|
|
244
|
+
* Path=/api/v1/auth/refresh; Max-Age=<seconds>
|
|
245
|
+
* ```
|
|
246
|
+
* `Path` 限定为 refresh 端点,减少 Cookie 暴露面。
|
|
247
|
+
* 2. Refresh 端点从 Cookie 读取 refresh token(忽略请求体中的 `refreshToken` 字段)。
|
|
248
|
+
* 3. Logout 端点清除 Cookie:
|
|
249
|
+
* ```
|
|
250
|
+
* Set-Cookie: refresh_token=; HttpOnly; SameSite=Strict; Secure;
|
|
251
|
+
* Path=/api/v1/auth/refresh; Max-Age=0
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* **跨域注意事项:**
|
|
255
|
+
* 若 API 与前端不同源,服务端还需设置:
|
|
256
|
+
* `Access-Control-Allow-Origin: <前端域名>` 和 `Access-Control-Allow-Credentials: true`。
|
|
257
|
+
* 调用方不需要做额外配置,`apiClient.create` 会自动识别并设置 `credentials: 'include'`。
|
|
297
258
|
*
|
|
298
259
|
* @example
|
|
299
260
|
* ```ts
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
* baseUrl: 'https://api.example.com',
|
|
304
|
-
* auth: {
|
|
305
|
-
* storage: createMemoryTokenStorage(),
|
|
306
|
-
* refreshUrl: '/auth/refresh',
|
|
307
|
-
* },
|
|
261
|
+
* await apiClient.init({
|
|
262
|
+
* baseUrl: 'https://api.example.com/api/v1',
|
|
263
|
+
* auth: { storage: apiClient.tokenStorage.httpOnlyCookie() },
|
|
308
264
|
* })
|
|
309
265
|
* ```
|
|
310
266
|
*/
|
|
311
|
-
declare function
|
|
312
|
-
|
|
267
|
+
declare function createHttpOnlyCookieTokenStorage(): TokenStorage;
|
|
268
|
+
type RefreshCallback = (tokens: TokenPair) => void;
|
|
313
269
|
/**
|
|
314
|
-
*
|
|
270
|
+
* 创建 Token 管理器:封装存储读写、自动刷新、并发去重与回调通知。
|
|
271
|
+
*
|
|
272
|
+
* 主要供 `apiClient.create` 内部使用,同时作为 named export 暴露给测试与高级用户。
|
|
273
|
+
*
|
|
274
|
+
* 行为约定:
|
|
275
|
+
* - 并发多次 `refresh()` 共享同一个请求。
|
|
276
|
+
* - refresh 接口失败、响应字段缺失或 401,都视为刷新失败:清空存储并触发 `onRefreshFailed`。
|
|
277
|
+
* - 兼容两种响应格式:`{ data: tokens }` 与 `{ data: { tokens } }`(HaiResult 包装)。
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```ts
|
|
281
|
+
* const manager = createTokenManager(
|
|
282
|
+
* apiClient.tokenStorage.memory(),
|
|
283
|
+
* 'https://api.example.com/api/v1/auth/refresh',
|
|
284
|
+
* fetch,
|
|
285
|
+
* () => notifyLoginRequired(),
|
|
286
|
+
* )
|
|
315
287
|
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
288
|
+
* const off = manager.onTokenRefreshed(tokens => syncTokens(tokens))
|
|
289
|
+
* const tokens = await manager.refresh()
|
|
290
|
+
* off()
|
|
291
|
+
* ```
|
|
292
|
+
*
|
|
293
|
+
* @param storage - Token 存储适配器
|
|
294
|
+
* @param refreshEndpointUrl - refresh 接口完整 URL(`baseUrl + refreshPath`)
|
|
295
|
+
* @param fetchFn - fetch 实现(允许注入 mock)
|
|
296
|
+
* @param onRefreshFailed - 刷新失败回调
|
|
297
|
+
* @param refreshTimeoutMs - 刷新请求超时(ms),默认 10_000
|
|
298
|
+
* @returns Token 管理器实例
|
|
318
299
|
*/
|
|
300
|
+
declare function createTokenManager(storage: TokenStorage, refreshEndpointUrl: string, fetchFn: typeof globalThis.fetch, onRefreshFailed?: () => void, refreshTimeoutMs?: number): {
|
|
301
|
+
storage: TokenStorage;
|
|
302
|
+
refresh: () => Promise<TokenPair | null>;
|
|
303
|
+
setTokens(tokens: TokenPair): Promise<void>;
|
|
304
|
+
clear(): Promise<void>;
|
|
305
|
+
onTokenRefreshed(callback: RefreshCallback): () => void;
|
|
306
|
+
};
|
|
307
|
+
/** Token 管理器类型(`createTokenManager` 返回值)。 */
|
|
308
|
+
type TokenManager = ReturnType<typeof createTokenManager>;
|
|
319
309
|
|
|
310
|
+
/** Token 存储方案集合:内存 / 浏览器 localStorage / httpOnly Cookie。 */
|
|
311
|
+
declare const tokenStorage: {
|
|
312
|
+
/** 内存存储——SSR / Node 测试或一次性会话使用。 */
|
|
313
|
+
readonly memory: typeof createMemoryTokenStorage;
|
|
314
|
+
/** 浏览器 `localStorage` 存储——单页应用便捷选项;注意 XSS 风险。 */
|
|
315
|
+
readonly localStorage: typeof createLocalStorageTokenStorage;
|
|
316
|
+
/** httpOnly Cookie 存储——浏览器场景推荐方案。 */
|
|
317
|
+
readonly httpOnlyCookie: typeof createHttpOnlyCookieTokenStorage;
|
|
318
|
+
};
|
|
320
319
|
/**
|
|
321
|
-
* API
|
|
320
|
+
* 根据 oRPC contract 创建 typed API client。
|
|
322
321
|
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
322
|
+
* 返回对象同时具备:
|
|
323
|
+
* - **生命周期能力**:`init` / `close` / `config` / `isInitialized` / `auth`
|
|
324
|
+
* - **contract procedure**:按 contract 嵌套结构调用,例如 `client.iam.auth.login(input)`
|
|
325
325
|
*
|
|
326
|
-
* @example
|
|
326
|
+
* @example 基础用法
|
|
327
327
|
* ```ts
|
|
328
|
-
* import {
|
|
328
|
+
* import { apiClient } from '@h-ai/api-client'
|
|
329
|
+
* import { apiContract } from '@h-ai/api-contract'
|
|
330
|
+
*
|
|
331
|
+
* const client = apiClient.create(apiContract.create({ iam: apiContract.iam }))
|
|
332
|
+
* await client.init({ baseUrl: 'https://api.example.com/api/v1' })
|
|
329
333
|
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
334
|
+
* const result = await client.iam.auth.login({ identifier: 'alice', password: 'secret' })
|
|
335
|
+
* if (result.success) {
|
|
336
|
+
* await client.auth.setTokens(result.data.tokens)
|
|
337
|
+
* }
|
|
338
|
+
*
|
|
339
|
+
* await client.close()
|
|
340
|
+
* ```
|
|
341
|
+
*
|
|
342
|
+
* @example 自定义 fetch / 超时
|
|
343
|
+
* ```ts
|
|
344
|
+
* const client = apiClient.create(contract)
|
|
345
|
+
* await client.init({
|
|
332
346
|
* baseUrl: 'https://api.example.com/api/v1',
|
|
333
|
-
*
|
|
347
|
+
* fetch: customFetch,
|
|
348
|
+
* timeout: 10_000,
|
|
334
349
|
* })
|
|
350
|
+
* ```
|
|
351
|
+
*/
|
|
352
|
+
declare function createApiClient<const TContract extends AnyContractRouter>(contract: TContract): ApiClient<TContract>;
|
|
353
|
+
/**
|
|
354
|
+
* 默认 API typed client:绑定 `iam` / `storage` / `ai` 三个领域。
|
|
335
355
|
*
|
|
336
|
-
*
|
|
337
|
-
* const result = await api.call(loginEndpoint, { identifier: 'alice', password: 'xxx' })
|
|
356
|
+
* 大多数应用只需 `import { apiClient }` 并调用 `apiClient.init()` 即可。
|
|
338
357
|
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```ts
|
|
360
|
+
* import { apiClient } from '@h-ai/api-client'
|
|
341
361
|
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
362
|
+
* await apiClient.init({
|
|
363
|
+
* baseUrl: 'http://localhost:3000/api/v1',
|
|
364
|
+
* auth: { refreshPath: '/auth/refresh' },
|
|
365
|
+
* })
|
|
366
|
+
* const result = await apiClient.iam.auth.login({ identifier: 'alice', password: 'secret' })
|
|
367
|
+
* await apiClient.close()
|
|
344
368
|
* ```
|
|
345
369
|
*/
|
|
346
|
-
declare const
|
|
370
|
+
declare const defaultApiContract: _h_ai_api_contract.CreatedApiContract<{
|
|
371
|
+
readonly iam: {
|
|
372
|
+
auth: {
|
|
373
|
+
login: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
374
|
+
identifier: zod.ZodString;
|
|
375
|
+
password: zod.ZodString;
|
|
376
|
+
rememberMe: zod.ZodOptional<zod.ZodBoolean>;
|
|
377
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
378
|
+
success: zod.ZodLiteral<true>;
|
|
379
|
+
data: zod.ZodObject<{
|
|
380
|
+
user: zod.ZodObject<{
|
|
381
|
+
id: zod.ZodString;
|
|
382
|
+
username: zod.ZodString;
|
|
383
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
384
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
385
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
386
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
387
|
+
enabled: zod.ZodBoolean;
|
|
388
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
389
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
390
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
391
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
392
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
393
|
+
}, zod_v4_core.$strip>;
|
|
394
|
+
tokens: zod.ZodObject<{
|
|
395
|
+
accessToken: zod.ZodString;
|
|
396
|
+
refreshToken: zod.ZodOptional<zod.ZodString>;
|
|
397
|
+
expiresIn: zod.ZodNumber;
|
|
398
|
+
tokenType: zod.ZodLiteral<"Bearer">;
|
|
399
|
+
}, zod_v4_core.$strip>;
|
|
400
|
+
roles: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
401
|
+
permissions: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
402
|
+
agreements: zod.ZodOptional<zod.ZodObject<{
|
|
403
|
+
userAgreementUrl: zod.ZodOptional<zod.ZodString>;
|
|
404
|
+
privacyPolicyUrl: zod.ZodOptional<zod.ZodString>;
|
|
405
|
+
showOnRegister: zod.ZodBoolean;
|
|
406
|
+
showOnLogin: zod.ZodBoolean;
|
|
407
|
+
}, zod_v4_core.$strip>>;
|
|
408
|
+
}, zod_v4_core.$strip>;
|
|
409
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
410
|
+
success: zod.ZodLiteral<false>;
|
|
411
|
+
error: zod.ZodObject<{
|
|
412
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
413
|
+
message: zod.ZodString;
|
|
414
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
415
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
416
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
417
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
418
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
419
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
420
|
+
}, zod_v4_core.$strip>;
|
|
421
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
422
|
+
loginWithOtp: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
423
|
+
identifier: zod.ZodString;
|
|
424
|
+
code: zod.ZodString;
|
|
425
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
426
|
+
success: zod.ZodLiteral<true>;
|
|
427
|
+
data: zod.ZodObject<{
|
|
428
|
+
user: zod.ZodObject<{
|
|
429
|
+
id: zod.ZodString;
|
|
430
|
+
username: zod.ZodString;
|
|
431
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
432
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
433
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
434
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
435
|
+
enabled: zod.ZodBoolean;
|
|
436
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
437
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
438
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
439
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
440
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
441
|
+
}, zod_v4_core.$strip>;
|
|
442
|
+
tokens: zod.ZodObject<{
|
|
443
|
+
accessToken: zod.ZodString;
|
|
444
|
+
refreshToken: zod.ZodOptional<zod.ZodString>;
|
|
445
|
+
expiresIn: zod.ZodNumber;
|
|
446
|
+
tokenType: zod.ZodLiteral<"Bearer">;
|
|
447
|
+
}, zod_v4_core.$strip>;
|
|
448
|
+
roles: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
449
|
+
permissions: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
450
|
+
agreements: zod.ZodOptional<zod.ZodObject<{
|
|
451
|
+
userAgreementUrl: zod.ZodOptional<zod.ZodString>;
|
|
452
|
+
privacyPolicyUrl: zod.ZodOptional<zod.ZodString>;
|
|
453
|
+
showOnRegister: zod.ZodBoolean;
|
|
454
|
+
showOnLogin: zod.ZodBoolean;
|
|
455
|
+
}, zod_v4_core.$strip>>;
|
|
456
|
+
}, zod_v4_core.$strip>;
|
|
457
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
458
|
+
success: zod.ZodLiteral<false>;
|
|
459
|
+
error: zod.ZodObject<{
|
|
460
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
461
|
+
message: zod.ZodString;
|
|
462
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
463
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
464
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
465
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
466
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
467
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
468
|
+
}, zod_v4_core.$strip>;
|
|
469
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
470
|
+
logout: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
471
|
+
accessToken: zod.ZodOptional<zod.ZodString>;
|
|
472
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
473
|
+
success: zod.ZodLiteral<true>;
|
|
474
|
+
data: zod.ZodVoid;
|
|
475
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
476
|
+
success: zod.ZodLiteral<false>;
|
|
477
|
+
error: zod.ZodObject<{
|
|
478
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
479
|
+
message: zod.ZodString;
|
|
480
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
481
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
482
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
483
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
484
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
485
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
486
|
+
}, zod_v4_core.$strip>;
|
|
487
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
488
|
+
currentUser: _orpc_contract.ContractProcedureBuilderWithOutput<_orpc_contract.Schema<unknown, unknown>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
489
|
+
success: zod.ZodLiteral<true>;
|
|
490
|
+
data: zod.ZodObject<{
|
|
491
|
+
id: zod.ZodString;
|
|
492
|
+
username: zod.ZodString;
|
|
493
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
494
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
495
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
496
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
497
|
+
enabled: zod.ZodBoolean;
|
|
498
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
499
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
500
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
501
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
502
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
503
|
+
}, zod_v4_core.$strip>;
|
|
504
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
505
|
+
success: zod.ZodLiteral<false>;
|
|
506
|
+
error: zod.ZodObject<{
|
|
507
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
508
|
+
message: zod.ZodString;
|
|
509
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
510
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
511
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
512
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
513
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
514
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
515
|
+
}, zod_v4_core.$strip>;
|
|
516
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
517
|
+
refresh: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
518
|
+
refreshToken: zod.ZodString;
|
|
519
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
520
|
+
success: zod.ZodLiteral<true>;
|
|
521
|
+
data: zod.ZodObject<{
|
|
522
|
+
tokens: zod.ZodObject<{
|
|
523
|
+
accessToken: zod.ZodString;
|
|
524
|
+
refreshToken: zod.ZodOptional<zod.ZodString>;
|
|
525
|
+
expiresIn: zod.ZodNumber;
|
|
526
|
+
tokenType: zod.ZodLiteral<"Bearer">;
|
|
527
|
+
}, zod_v4_core.$strip>;
|
|
528
|
+
}, zod_v4_core.$strip>;
|
|
529
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
530
|
+
success: zod.ZodLiteral<false>;
|
|
531
|
+
error: zod.ZodObject<{
|
|
532
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
533
|
+
message: zod.ZodString;
|
|
534
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
535
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
536
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
537
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
538
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
539
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
540
|
+
}, zod_v4_core.$strip>;
|
|
541
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
542
|
+
sendOtp: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
543
|
+
identifier: zod.ZodString;
|
|
544
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
545
|
+
success: zod.ZodLiteral<true>;
|
|
546
|
+
data: zod.ZodObject<{
|
|
547
|
+
expiresAt: zod.ZodCoercedDate<unknown>;
|
|
548
|
+
}, zod_v4_core.$strip>;
|
|
549
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
550
|
+
success: zod.ZodLiteral<false>;
|
|
551
|
+
error: zod.ZodObject<{
|
|
552
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
553
|
+
message: zod.ZodString;
|
|
554
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
555
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
556
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
557
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
558
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
559
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
560
|
+
}, zod_v4_core.$strip>;
|
|
561
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
562
|
+
register: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
563
|
+
username: zod.ZodString;
|
|
564
|
+
password: zod.ZodString;
|
|
565
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
566
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
567
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
568
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
569
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
570
|
+
success: zod.ZodLiteral<true>;
|
|
571
|
+
data: zod.ZodObject<{
|
|
572
|
+
user: zod.ZodObject<{
|
|
573
|
+
id: zod.ZodString;
|
|
574
|
+
username: zod.ZodString;
|
|
575
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
576
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
577
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
578
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
579
|
+
enabled: zod.ZodBoolean;
|
|
580
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
581
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
582
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
583
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
584
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
585
|
+
}, zod_v4_core.$strip>;
|
|
586
|
+
tokens: zod.ZodObject<{
|
|
587
|
+
accessToken: zod.ZodString;
|
|
588
|
+
refreshToken: zod.ZodOptional<zod.ZodString>;
|
|
589
|
+
expiresIn: zod.ZodNumber;
|
|
590
|
+
tokenType: zod.ZodLiteral<"Bearer">;
|
|
591
|
+
}, zod_v4_core.$strip>;
|
|
592
|
+
roles: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
593
|
+
permissions: zod.ZodDefault<zod.ZodArray<zod.ZodString>>;
|
|
594
|
+
agreements: zod.ZodOptional<zod.ZodObject<{
|
|
595
|
+
userAgreementUrl: zod.ZodOptional<zod.ZodString>;
|
|
596
|
+
privacyPolicyUrl: zod.ZodOptional<zod.ZodString>;
|
|
597
|
+
showOnRegister: zod.ZodBoolean;
|
|
598
|
+
showOnLogin: zod.ZodBoolean;
|
|
599
|
+
}, zod_v4_core.$strip>>;
|
|
600
|
+
}, zod_v4_core.$strip>;
|
|
601
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
602
|
+
success: zod.ZodLiteral<false>;
|
|
603
|
+
error: zod.ZodObject<{
|
|
604
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
605
|
+
message: zod.ZodString;
|
|
606
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
607
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
608
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
609
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
610
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
611
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
612
|
+
}, zod_v4_core.$strip>;
|
|
613
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
614
|
+
changePassword: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
615
|
+
oldPassword: zod.ZodString;
|
|
616
|
+
newPassword: zod.ZodString;
|
|
617
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
618
|
+
success: zod.ZodLiteral<true>;
|
|
619
|
+
data: zod.ZodVoid;
|
|
620
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
621
|
+
success: zod.ZodLiteral<false>;
|
|
622
|
+
error: zod.ZodObject<{
|
|
623
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
624
|
+
message: zod.ZodString;
|
|
625
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
626
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
627
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
628
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
629
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
630
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
631
|
+
}, zod_v4_core.$strip>;
|
|
632
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
633
|
+
updateCurrentUser: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
634
|
+
username: zod.ZodOptional<zod.ZodString>;
|
|
635
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
636
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
637
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
638
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
639
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
640
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
641
|
+
success: zod.ZodLiteral<true>;
|
|
642
|
+
data: zod.ZodObject<{
|
|
643
|
+
id: zod.ZodString;
|
|
644
|
+
username: zod.ZodString;
|
|
645
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
646
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
647
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
648
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
649
|
+
enabled: zod.ZodBoolean;
|
|
650
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
651
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
652
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
653
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
654
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
655
|
+
}, zod_v4_core.$strip>;
|
|
656
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
657
|
+
success: zod.ZodLiteral<false>;
|
|
658
|
+
error: zod.ZodObject<{
|
|
659
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
660
|
+
message: zod.ZodString;
|
|
661
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
662
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
663
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
664
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
665
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
666
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
667
|
+
}, zod_v4_core.$strip>;
|
|
668
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
669
|
+
};
|
|
670
|
+
users: {
|
|
671
|
+
list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
672
|
+
page: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
|
|
673
|
+
pageSize: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
|
|
674
|
+
search: zod.ZodOptional<zod.ZodString>;
|
|
675
|
+
enabled: zod.ZodPipe<zod.ZodOptional<zod.ZodEnum<{
|
|
676
|
+
true: "true";
|
|
677
|
+
false: "false";
|
|
678
|
+
}>>, zod.ZodTransform<boolean | undefined, "true" | "false" | undefined>>;
|
|
679
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
680
|
+
success: zod.ZodLiteral<true>;
|
|
681
|
+
data: zod.ZodObject<{
|
|
682
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
683
|
+
id: zod.ZodString;
|
|
684
|
+
username: zod.ZodString;
|
|
685
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
686
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
687
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
688
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
689
|
+
enabled: zod.ZodBoolean;
|
|
690
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
691
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
692
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
693
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
694
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
695
|
+
}, zod_v4_core.$strip>>;
|
|
696
|
+
total: zod.ZodNumber;
|
|
697
|
+
page: zod.ZodNumber;
|
|
698
|
+
pageSize: zod.ZodNumber;
|
|
699
|
+
}, zod_v4_core.$strip>;
|
|
700
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
701
|
+
success: zod.ZodLiteral<false>;
|
|
702
|
+
error: zod.ZodObject<{
|
|
703
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
704
|
+
message: zod.ZodString;
|
|
705
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
706
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
707
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
708
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
709
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
710
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
711
|
+
}, zod_v4_core.$strip>;
|
|
712
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
713
|
+
get: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
714
|
+
id: zod.ZodString;
|
|
715
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
716
|
+
success: zod.ZodLiteral<true>;
|
|
717
|
+
data: zod.ZodNullable<zod.ZodObject<{
|
|
718
|
+
id: zod.ZodString;
|
|
719
|
+
username: zod.ZodString;
|
|
720
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
721
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
722
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
723
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
724
|
+
enabled: zod.ZodBoolean;
|
|
725
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
726
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
727
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
728
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
729
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
730
|
+
}, zod_v4_core.$strip>>;
|
|
731
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
732
|
+
success: zod.ZodLiteral<false>;
|
|
733
|
+
error: zod.ZodObject<{
|
|
734
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
735
|
+
message: zod.ZodString;
|
|
736
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
737
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
738
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
739
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
740
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
741
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
742
|
+
}, zod_v4_core.$strip>;
|
|
743
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
744
|
+
create: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
745
|
+
username: zod.ZodString;
|
|
746
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
747
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
748
|
+
password: zod.ZodString;
|
|
749
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
750
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
751
|
+
roleIds: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
|
|
752
|
+
enabled: zod.ZodOptional<zod.ZodBoolean>;
|
|
753
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
754
|
+
success: zod.ZodLiteral<true>;
|
|
755
|
+
data: zod.ZodObject<{
|
|
756
|
+
id: zod.ZodString;
|
|
757
|
+
username: zod.ZodString;
|
|
758
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
759
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
760
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
761
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
762
|
+
enabled: zod.ZodBoolean;
|
|
763
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
764
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
765
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
766
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
767
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
768
|
+
}, zod_v4_core.$strip>;
|
|
769
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
770
|
+
success: zod.ZodLiteral<false>;
|
|
771
|
+
error: zod.ZodObject<{
|
|
772
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
773
|
+
message: zod.ZodString;
|
|
774
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
775
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
776
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
777
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
778
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
779
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
780
|
+
}, zod_v4_core.$strip>;
|
|
781
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
782
|
+
update: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
783
|
+
id: zod.ZodString;
|
|
784
|
+
username: zod.ZodOptional<zod.ZodString>;
|
|
785
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
786
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
787
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
788
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
789
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
790
|
+
enabled: zod.ZodOptional<zod.ZodBoolean>;
|
|
791
|
+
roleIds: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
|
|
792
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
793
|
+
success: zod.ZodLiteral<true>;
|
|
794
|
+
data: zod.ZodObject<{
|
|
795
|
+
id: zod.ZodString;
|
|
796
|
+
username: zod.ZodString;
|
|
797
|
+
email: zod.ZodOptional<zod.ZodString>;
|
|
798
|
+
phone: zod.ZodOptional<zod.ZodString>;
|
|
799
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
800
|
+
avatarUrl: zod.ZodOptional<zod.ZodString>;
|
|
801
|
+
enabled: zod.ZodBoolean;
|
|
802
|
+
emailVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
803
|
+
phoneVerified: zod.ZodOptional<zod.ZodBoolean>;
|
|
804
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
805
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
806
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
807
|
+
}, zod_v4_core.$strip>;
|
|
808
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
809
|
+
success: zod.ZodLiteral<false>;
|
|
810
|
+
error: zod.ZodObject<{
|
|
811
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
812
|
+
message: zod.ZodString;
|
|
813
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
814
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
815
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
816
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
817
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
818
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
819
|
+
}, zod_v4_core.$strip>;
|
|
820
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
821
|
+
delete: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
822
|
+
id: zod.ZodString;
|
|
823
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
824
|
+
success: zod.ZodLiteral<true>;
|
|
825
|
+
data: zod.ZodVoid;
|
|
826
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
827
|
+
success: zod.ZodLiteral<false>;
|
|
828
|
+
error: zod.ZodObject<{
|
|
829
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
830
|
+
message: zod.ZodString;
|
|
831
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
832
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
833
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
834
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
835
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
836
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
837
|
+
}, zod_v4_core.$strip>;
|
|
838
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
839
|
+
resetPassword: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
840
|
+
id: zod.ZodString;
|
|
841
|
+
newPassword: zod.ZodString;
|
|
842
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
843
|
+
success: zod.ZodLiteral<true>;
|
|
844
|
+
data: zod.ZodVoid;
|
|
845
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
846
|
+
success: zod.ZodLiteral<false>;
|
|
847
|
+
error: zod.ZodObject<{
|
|
848
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
849
|
+
message: zod.ZodString;
|
|
850
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
851
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
852
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
853
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
854
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
855
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
856
|
+
}, zod_v4_core.$strip>;
|
|
857
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
858
|
+
};
|
|
859
|
+
roles: {
|
|
860
|
+
list: _orpc_contract.ContractProcedureBuilderWithOutput<_orpc_contract.Schema<unknown, unknown>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
861
|
+
success: zod.ZodLiteral<true>;
|
|
862
|
+
data: zod.ZodObject<{
|
|
863
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
864
|
+
id: zod.ZodString;
|
|
865
|
+
code: zod.ZodString;
|
|
866
|
+
name: zod.ZodString;
|
|
867
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
868
|
+
isSystem: zod.ZodOptional<zod.ZodBoolean>;
|
|
869
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
870
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
871
|
+
}, zod_v4_core.$strip>>;
|
|
872
|
+
total: zod.ZodNumber;
|
|
873
|
+
page: zod.ZodNumber;
|
|
874
|
+
pageSize: zod.ZodNumber;
|
|
875
|
+
}, zod_v4_core.$strip>;
|
|
876
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
877
|
+
success: zod.ZodLiteral<false>;
|
|
878
|
+
error: zod.ZodObject<{
|
|
879
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
880
|
+
message: zod.ZodString;
|
|
881
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
882
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
883
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
884
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
885
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
886
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
887
|
+
}, zod_v4_core.$strip>;
|
|
888
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
889
|
+
get: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
890
|
+
id: zod.ZodString;
|
|
891
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
892
|
+
success: zod.ZodLiteral<true>;
|
|
893
|
+
data: zod.ZodNullable<zod.ZodObject<{
|
|
894
|
+
id: zod.ZodString;
|
|
895
|
+
code: zod.ZodString;
|
|
896
|
+
name: zod.ZodString;
|
|
897
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
898
|
+
isSystem: zod.ZodOptional<zod.ZodBoolean>;
|
|
899
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
900
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
901
|
+
}, zod_v4_core.$strip>>;
|
|
902
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
903
|
+
success: zod.ZodLiteral<false>;
|
|
904
|
+
error: zod.ZodObject<{
|
|
905
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
906
|
+
message: zod.ZodString;
|
|
907
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
908
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
909
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
910
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
911
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
912
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
913
|
+
}, zod_v4_core.$strip>;
|
|
914
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
915
|
+
create: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
916
|
+
code: zod.ZodString;
|
|
917
|
+
name: zod.ZodString;
|
|
918
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
919
|
+
isSystem: zod.ZodOptional<zod.ZodBoolean>;
|
|
920
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
921
|
+
success: zod.ZodLiteral<true>;
|
|
922
|
+
data: zod.ZodObject<{
|
|
923
|
+
id: zod.ZodString;
|
|
924
|
+
code: zod.ZodString;
|
|
925
|
+
name: zod.ZodString;
|
|
926
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
927
|
+
isSystem: zod.ZodOptional<zod.ZodBoolean>;
|
|
928
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
929
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
930
|
+
}, zod_v4_core.$strip>;
|
|
931
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
932
|
+
success: zod.ZodLiteral<false>;
|
|
933
|
+
error: zod.ZodObject<{
|
|
934
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
935
|
+
message: zod.ZodString;
|
|
936
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
937
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
938
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
939
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
940
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
941
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
942
|
+
}, zod_v4_core.$strip>;
|
|
943
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
944
|
+
update: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
945
|
+
id: zod.ZodString;
|
|
946
|
+
name: zod.ZodOptional<zod.ZodString>;
|
|
947
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
948
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
949
|
+
success: zod.ZodLiteral<true>;
|
|
950
|
+
data: zod.ZodObject<{
|
|
951
|
+
id: zod.ZodString;
|
|
952
|
+
code: zod.ZodString;
|
|
953
|
+
name: zod.ZodString;
|
|
954
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
955
|
+
isSystem: zod.ZodOptional<zod.ZodBoolean>;
|
|
956
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
957
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
958
|
+
}, zod_v4_core.$strip>;
|
|
959
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
960
|
+
success: zod.ZodLiteral<false>;
|
|
961
|
+
error: zod.ZodObject<{
|
|
962
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
963
|
+
message: zod.ZodString;
|
|
964
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
965
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
966
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
967
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
968
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
969
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
970
|
+
}, zod_v4_core.$strip>;
|
|
971
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
972
|
+
delete: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
973
|
+
id: zod.ZodString;
|
|
974
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
975
|
+
success: zod.ZodLiteral<true>;
|
|
976
|
+
data: zod.ZodVoid;
|
|
977
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
978
|
+
success: zod.ZodLiteral<false>;
|
|
979
|
+
error: zod.ZodObject<{
|
|
980
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
981
|
+
message: zod.ZodString;
|
|
982
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
983
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
984
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
985
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
986
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
987
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
988
|
+
}, zod_v4_core.$strip>;
|
|
989
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
990
|
+
};
|
|
991
|
+
permissions: {
|
|
992
|
+
list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
993
|
+
page: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
|
|
994
|
+
pageSize: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
|
|
995
|
+
search: zod.ZodOptional<zod.ZodString>;
|
|
996
|
+
type: zod.ZodOptional<zod.ZodEnum<{
|
|
997
|
+
menu: "menu";
|
|
998
|
+
api: "api";
|
|
999
|
+
button: "button";
|
|
1000
|
+
}>>;
|
|
1001
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1002
|
+
success: zod.ZodLiteral<true>;
|
|
1003
|
+
data: zod.ZodObject<{
|
|
1004
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
1005
|
+
id: zod.ZodString;
|
|
1006
|
+
code: zod.ZodString;
|
|
1007
|
+
name: zod.ZodString;
|
|
1008
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1009
|
+
type: zod.ZodOptional<zod.ZodEnum<{
|
|
1010
|
+
menu: "menu";
|
|
1011
|
+
api: "api";
|
|
1012
|
+
button: "button";
|
|
1013
|
+
}>>;
|
|
1014
|
+
resource: zod.ZodOptional<zod.ZodString>;
|
|
1015
|
+
action: zod.ZodOptional<zod.ZodString>;
|
|
1016
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
1017
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
1018
|
+
}, zod_v4_core.$strip>>;
|
|
1019
|
+
total: zod.ZodNumber;
|
|
1020
|
+
page: zod.ZodNumber;
|
|
1021
|
+
pageSize: zod.ZodNumber;
|
|
1022
|
+
}, zod_v4_core.$strip>;
|
|
1023
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1024
|
+
success: zod.ZodLiteral<false>;
|
|
1025
|
+
error: zod.ZodObject<{
|
|
1026
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1027
|
+
message: zod.ZodString;
|
|
1028
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1029
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1030
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1031
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1032
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1033
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1034
|
+
}, zod_v4_core.$strip>;
|
|
1035
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1036
|
+
get: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1037
|
+
id: zod.ZodString;
|
|
1038
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1039
|
+
success: zod.ZodLiteral<true>;
|
|
1040
|
+
data: zod.ZodNullable<zod.ZodObject<{
|
|
1041
|
+
id: zod.ZodString;
|
|
1042
|
+
code: zod.ZodString;
|
|
1043
|
+
name: zod.ZodString;
|
|
1044
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1045
|
+
type: zod.ZodOptional<zod.ZodEnum<{
|
|
1046
|
+
menu: "menu";
|
|
1047
|
+
api: "api";
|
|
1048
|
+
button: "button";
|
|
1049
|
+
}>>;
|
|
1050
|
+
resource: zod.ZodOptional<zod.ZodString>;
|
|
1051
|
+
action: zod.ZodOptional<zod.ZodString>;
|
|
1052
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
1053
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
1054
|
+
}, zod_v4_core.$strip>>;
|
|
1055
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1056
|
+
success: zod.ZodLiteral<false>;
|
|
1057
|
+
error: zod.ZodObject<{
|
|
1058
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1059
|
+
message: zod.ZodString;
|
|
1060
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1061
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1062
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1063
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1064
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1065
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1066
|
+
}, zod_v4_core.$strip>;
|
|
1067
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1068
|
+
create: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1069
|
+
code: zod.ZodString;
|
|
1070
|
+
name: zod.ZodString;
|
|
1071
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1072
|
+
resource: zod.ZodOptional<zod.ZodString>;
|
|
1073
|
+
action: zod.ZodOptional<zod.ZodString>;
|
|
1074
|
+
type: zod.ZodOptional<zod.ZodEnum<{
|
|
1075
|
+
menu: "menu";
|
|
1076
|
+
api: "api";
|
|
1077
|
+
button: "button";
|
|
1078
|
+
}>>;
|
|
1079
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1080
|
+
success: zod.ZodLiteral<true>;
|
|
1081
|
+
data: zod.ZodObject<{
|
|
1082
|
+
id: zod.ZodString;
|
|
1083
|
+
code: zod.ZodString;
|
|
1084
|
+
name: zod.ZodString;
|
|
1085
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1086
|
+
type: zod.ZodOptional<zod.ZodEnum<{
|
|
1087
|
+
menu: "menu";
|
|
1088
|
+
api: "api";
|
|
1089
|
+
button: "button";
|
|
1090
|
+
}>>;
|
|
1091
|
+
resource: zod.ZodOptional<zod.ZodString>;
|
|
1092
|
+
action: zod.ZodOptional<zod.ZodString>;
|
|
1093
|
+
createdAt: zod.ZodCoercedDate<unknown>;
|
|
1094
|
+
updatedAt: zod.ZodCoercedDate<unknown>;
|
|
1095
|
+
}, zod_v4_core.$strip>;
|
|
1096
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1097
|
+
success: zod.ZodLiteral<false>;
|
|
1098
|
+
error: zod.ZodObject<{
|
|
1099
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1100
|
+
message: zod.ZodString;
|
|
1101
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1102
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1103
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1104
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1105
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1106
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1107
|
+
}, zod_v4_core.$strip>;
|
|
1108
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1109
|
+
delete: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1110
|
+
id: zod.ZodString;
|
|
1111
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1112
|
+
success: zod.ZodLiteral<true>;
|
|
1113
|
+
data: zod.ZodVoid;
|
|
1114
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1115
|
+
success: zod.ZodLiteral<false>;
|
|
1116
|
+
error: zod.ZodObject<{
|
|
1117
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1118
|
+
message: zod.ZodString;
|
|
1119
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1120
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1121
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1122
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1123
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1124
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1125
|
+
}, zod_v4_core.$strip>;
|
|
1126
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1127
|
+
};
|
|
1128
|
+
};
|
|
1129
|
+
readonly storage: {
|
|
1130
|
+
presignedUrls: {
|
|
1131
|
+
createDownload: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1132
|
+
key: zod.ZodString;
|
|
1133
|
+
expiresIn: zod.ZodOptional<zod.ZodNumber>;
|
|
1134
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1135
|
+
success: zod.ZodLiteral<true>;
|
|
1136
|
+
data: zod.ZodObject<{
|
|
1137
|
+
url: zod.ZodString;
|
|
1138
|
+
key: zod.ZodString;
|
|
1139
|
+
expiresAt: zod.ZodOptional<zod.ZodCoercedDate<unknown>>;
|
|
1140
|
+
}, zod_v4_core.$strip>;
|
|
1141
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1142
|
+
success: zod.ZodLiteral<false>;
|
|
1143
|
+
error: zod.ZodObject<{
|
|
1144
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1145
|
+
message: zod.ZodString;
|
|
1146
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1147
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1148
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1149
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1150
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1151
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1152
|
+
}, zod_v4_core.$strip>;
|
|
1153
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1154
|
+
createUpload: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1155
|
+
key: zod.ZodString;
|
|
1156
|
+
contentType: zod.ZodOptional<zod.ZodString>;
|
|
1157
|
+
contentLength: zod.ZodOptional<zod.ZodNumber>;
|
|
1158
|
+
expiresIn: zod.ZodOptional<zod.ZodNumber>;
|
|
1159
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1160
|
+
success: zod.ZodLiteral<true>;
|
|
1161
|
+
data: zod.ZodObject<{
|
|
1162
|
+
url: zod.ZodString;
|
|
1163
|
+
key: zod.ZodString;
|
|
1164
|
+
expiresAt: zod.ZodOptional<zod.ZodCoercedDate<unknown>>;
|
|
1165
|
+
}, zod_v4_core.$strip>;
|
|
1166
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1167
|
+
success: zod.ZodLiteral<false>;
|
|
1168
|
+
error: zod.ZodObject<{
|
|
1169
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1170
|
+
message: zod.ZodString;
|
|
1171
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1172
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1173
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1174
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1175
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1176
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1177
|
+
}, zod_v4_core.$strip>;
|
|
1178
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1179
|
+
};
|
|
1180
|
+
files: {
|
|
1181
|
+
list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1182
|
+
prefix: zod.ZodOptional<zod.ZodString>;
|
|
1183
|
+
maxKeys: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
|
|
1184
|
+
continuationToken: zod.ZodOptional<zod.ZodString>;
|
|
1185
|
+
delimiter: zod.ZodOptional<zod.ZodString>;
|
|
1186
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1187
|
+
success: zod.ZodLiteral<true>;
|
|
1188
|
+
data: zod.ZodObject<{
|
|
1189
|
+
files: zod.ZodArray<zod.ZodObject<{
|
|
1190
|
+
key: zod.ZodString;
|
|
1191
|
+
size: zod.ZodNumber;
|
|
1192
|
+
contentType: zod.ZodString;
|
|
1193
|
+
lastModified: zod.ZodCoercedDate<unknown>;
|
|
1194
|
+
etag: zod.ZodOptional<zod.ZodString>;
|
|
1195
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
|
|
1196
|
+
}, zod_v4_core.$strip>>;
|
|
1197
|
+
commonPrefixes: zod.ZodArray<zod.ZodString>;
|
|
1198
|
+
nextContinuationToken: zod.ZodOptional<zod.ZodString>;
|
|
1199
|
+
isTruncated: zod.ZodBoolean;
|
|
1200
|
+
}, zod_v4_core.$strip>;
|
|
1201
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1202
|
+
success: zod.ZodLiteral<false>;
|
|
1203
|
+
error: zod.ZodObject<{
|
|
1204
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1205
|
+
message: zod.ZodString;
|
|
1206
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1207
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1208
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1209
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1210
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1211
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1212
|
+
}, zod_v4_core.$strip>;
|
|
1213
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1214
|
+
getMetadata: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1215
|
+
key: zod.ZodString;
|
|
1216
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1217
|
+
success: zod.ZodLiteral<true>;
|
|
1218
|
+
data: zod.ZodObject<{
|
|
1219
|
+
key: zod.ZodString;
|
|
1220
|
+
size: zod.ZodNumber;
|
|
1221
|
+
contentType: zod.ZodString;
|
|
1222
|
+
lastModified: zod.ZodCoercedDate<unknown>;
|
|
1223
|
+
etag: zod.ZodOptional<zod.ZodString>;
|
|
1224
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
|
|
1225
|
+
}, zod_v4_core.$strip>;
|
|
1226
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1227
|
+
success: zod.ZodLiteral<false>;
|
|
1228
|
+
error: zod.ZodObject<{
|
|
1229
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1230
|
+
message: zod.ZodString;
|
|
1231
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1232
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1233
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1234
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1235
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1236
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1237
|
+
}, zod_v4_core.$strip>;
|
|
1238
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1239
|
+
delete: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1240
|
+
key: zod.ZodString;
|
|
1241
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1242
|
+
success: zod.ZodLiteral<true>;
|
|
1243
|
+
data: zod.ZodVoid;
|
|
1244
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1245
|
+
success: zod.ZodLiteral<false>;
|
|
1246
|
+
error: zod.ZodObject<{
|
|
1247
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1248
|
+
message: zod.ZodString;
|
|
1249
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1250
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1251
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1252
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1253
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1254
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1255
|
+
}, zod_v4_core.$strip>;
|
|
1256
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1257
|
+
deleteMany: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1258
|
+
keys: zod.ZodArray<zod.ZodString>;
|
|
1259
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1260
|
+
success: zod.ZodLiteral<true>;
|
|
1261
|
+
data: zod.ZodVoid;
|
|
1262
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1263
|
+
success: zod.ZodLiteral<false>;
|
|
1264
|
+
error: zod.ZodObject<{
|
|
1265
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1266
|
+
message: zod.ZodString;
|
|
1267
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1268
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1269
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1270
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1271
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1272
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1273
|
+
}, zod_v4_core.$strip>;
|
|
1274
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1275
|
+
};
|
|
1276
|
+
};
|
|
1277
|
+
readonly ai: {
|
|
1278
|
+
chats: {
|
|
1279
|
+
createCompletion: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1280
|
+
model: zod.ZodOptional<zod.ZodString>;
|
|
1281
|
+
messages: zod.ZodArray<zod.ZodObject<{
|
|
1282
|
+
role: zod.ZodEnum<{
|
|
1283
|
+
system: "system";
|
|
1284
|
+
user: "user";
|
|
1285
|
+
assistant: "assistant";
|
|
1286
|
+
tool: "tool";
|
|
1287
|
+
}>;
|
|
1288
|
+
content: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
|
|
1289
|
+
type: zod.ZodLiteral<"text">;
|
|
1290
|
+
text: zod.ZodString;
|
|
1291
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1292
|
+
type: zod.ZodLiteral<"image_url">;
|
|
1293
|
+
image_url: zod.ZodObject<{
|
|
1294
|
+
url: zod.ZodString;
|
|
1295
|
+
detail: zod.ZodOptional<zod.ZodEnum<{
|
|
1296
|
+
auto: "auto";
|
|
1297
|
+
low: "low";
|
|
1298
|
+
high: "high";
|
|
1299
|
+
}>>;
|
|
1300
|
+
}, zod_v4_core.$strip>;
|
|
1301
|
+
}, zod_v4_core.$strip>]>>]>>;
|
|
1302
|
+
name: zod.ZodOptional<zod.ZodString>;
|
|
1303
|
+
tool_calls: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
1304
|
+
id: zod.ZodString;
|
|
1305
|
+
type: zod.ZodLiteral<"function">;
|
|
1306
|
+
function: zod.ZodObject<{
|
|
1307
|
+
name: zod.ZodString;
|
|
1308
|
+
arguments: zod.ZodString;
|
|
1309
|
+
}, zod_v4_core.$strip>;
|
|
1310
|
+
}, zod_v4_core.$strip>>>;
|
|
1311
|
+
tool_call_id: zod.ZodOptional<zod.ZodString>;
|
|
1312
|
+
}, zod_v4_core.$strip>>;
|
|
1313
|
+
temperature: zod.ZodOptional<zod.ZodNumber>;
|
|
1314
|
+
top_p: zod.ZodOptional<zod.ZodNumber>;
|
|
1315
|
+
max_tokens: zod.ZodOptional<zod.ZodNumber>;
|
|
1316
|
+
stream: zod.ZodOptional<zod.ZodBoolean>;
|
|
1317
|
+
tools: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
1318
|
+
type: zod.ZodLiteral<"function">;
|
|
1319
|
+
function: zod.ZodObject<{
|
|
1320
|
+
name: zod.ZodString;
|
|
1321
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1322
|
+
parameters: zod.ZodOptional<zod.ZodObject<{
|
|
1323
|
+
type: zod.ZodLiteral<"object">;
|
|
1324
|
+
properties: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodObject<{
|
|
1325
|
+
type: zod.ZodString;
|
|
1326
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
1327
|
+
enum: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
|
|
1328
|
+
}, zod_v4_core.$strip>>>;
|
|
1329
|
+
required: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
|
|
1330
|
+
}, zod_v4_core.$strip>>;
|
|
1331
|
+
}, zod_v4_core.$strip>;
|
|
1332
|
+
}, zod_v4_core.$strip>>>;
|
|
1333
|
+
tool_choice: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodLiteral<"auto">, zod.ZodLiteral<"none">, zod.ZodObject<{
|
|
1334
|
+
type: zod.ZodLiteral<"function">;
|
|
1335
|
+
function: zod.ZodObject<{
|
|
1336
|
+
name: zod.ZodString;
|
|
1337
|
+
}, zod_v4_core.$strip>;
|
|
1338
|
+
}, zod_v4_core.$strip>]>>;
|
|
1339
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1340
|
+
success: zod.ZodLiteral<true>;
|
|
1341
|
+
data: zod.ZodObject<{
|
|
1342
|
+
id: zod.ZodString;
|
|
1343
|
+
object: zod.ZodLiteral<"chat.completion">;
|
|
1344
|
+
created: zod.ZodNumber;
|
|
1345
|
+
model: zod.ZodString;
|
|
1346
|
+
choices: zod.ZodArray<zod.ZodObject<{
|
|
1347
|
+
index: zod.ZodNumber;
|
|
1348
|
+
message: zod.ZodObject<{
|
|
1349
|
+
role: zod.ZodLiteral<"assistant">;
|
|
1350
|
+
content: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
1351
|
+
tool_calls: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
1352
|
+
id: zod.ZodString;
|
|
1353
|
+
type: zod.ZodLiteral<"function">;
|
|
1354
|
+
function: zod.ZodObject<{
|
|
1355
|
+
name: zod.ZodString;
|
|
1356
|
+
arguments: zod.ZodString;
|
|
1357
|
+
}, zod_v4_core.$strip>;
|
|
1358
|
+
}, zod_v4_core.$strip>>>;
|
|
1359
|
+
}, zod_v4_core.$strip>;
|
|
1360
|
+
finish_reason: zod.ZodEnum<{
|
|
1361
|
+
length: "length";
|
|
1362
|
+
tool_calls: "tool_calls";
|
|
1363
|
+
stop: "stop";
|
|
1364
|
+
content_filter: "content_filter";
|
|
1365
|
+
}>;
|
|
1366
|
+
}, zod_v4_core.$strip>>;
|
|
1367
|
+
usage: zod.ZodObject<{
|
|
1368
|
+
prompt_tokens: zod.ZodNumber;
|
|
1369
|
+
completion_tokens: zod.ZodNumber;
|
|
1370
|
+
total_tokens: zod.ZodNumber;
|
|
1371
|
+
}, zod_v4_core.$strip>;
|
|
1372
|
+
}, zod_v4_core.$strip>;
|
|
1373
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1374
|
+
success: zod.ZodLiteral<false>;
|
|
1375
|
+
error: zod.ZodObject<{
|
|
1376
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1377
|
+
message: zod.ZodString;
|
|
1378
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1379
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1380
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1381
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1382
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1383
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1384
|
+
}, zod_v4_core.$strip>;
|
|
1385
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1386
|
+
sendMessage: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1387
|
+
message: zod.ZodString;
|
|
1388
|
+
systemPrompt: zod.ZodOptional<zod.ZodString>;
|
|
1389
|
+
model: zod.ZodOptional<zod.ZodString>;
|
|
1390
|
+
temperature: zod.ZodOptional<zod.ZodNumber>;
|
|
1391
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1392
|
+
success: zod.ZodLiteral<true>;
|
|
1393
|
+
data: zod.ZodObject<{
|
|
1394
|
+
content: zod.ZodString;
|
|
1395
|
+
model: zod.ZodString;
|
|
1396
|
+
usage: zod.ZodOptional<zod.ZodObject<{
|
|
1397
|
+
prompt_tokens: zod.ZodNumber;
|
|
1398
|
+
completion_tokens: zod.ZodNumber;
|
|
1399
|
+
total_tokens: zod.ZodNumber;
|
|
1400
|
+
}, zod_v4_core.$strip>>;
|
|
1401
|
+
}, zod_v4_core.$strip>;
|
|
1402
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1403
|
+
success: zod.ZodLiteral<false>;
|
|
1404
|
+
error: zod.ZodObject<{
|
|
1405
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1406
|
+
message: zod.ZodString;
|
|
1407
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1408
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1409
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1410
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1411
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1412
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1413
|
+
}, zod_v4_core.$strip>;
|
|
1414
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1415
|
+
listHistory: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1416
|
+
objectId: zod.ZodString;
|
|
1417
|
+
sessionId: zod.ZodString;
|
|
1418
|
+
limit: zod.ZodOptional<zod.ZodNumber>;
|
|
1419
|
+
order: zod.ZodOptional<zod.ZodEnum<{
|
|
1420
|
+
asc: "asc";
|
|
1421
|
+
desc: "desc";
|
|
1422
|
+
}>>;
|
|
1423
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1424
|
+
success: zod.ZodLiteral<true>;
|
|
1425
|
+
data: zod.ZodObject<{
|
|
1426
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
1427
|
+
id: zod.ZodString;
|
|
1428
|
+
objectId: zod.ZodString;
|
|
1429
|
+
sessionId: zod.ZodString;
|
|
1430
|
+
request: zod.ZodObject<{
|
|
1431
|
+
model: zod.ZodString;
|
|
1432
|
+
messages: zod.ZodArray<zod.ZodObject<{
|
|
1433
|
+
role: zod.ZodEnum<{
|
|
1434
|
+
system: "system";
|
|
1435
|
+
user: "user";
|
|
1436
|
+
assistant: "assistant";
|
|
1437
|
+
tool: "tool";
|
|
1438
|
+
}>;
|
|
1439
|
+
content: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
|
|
1440
|
+
type: zod.ZodLiteral<"text">;
|
|
1441
|
+
text: zod.ZodString;
|
|
1442
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1443
|
+
type: zod.ZodLiteral<"image_url">;
|
|
1444
|
+
image_url: zod.ZodObject<{
|
|
1445
|
+
url: zod.ZodString;
|
|
1446
|
+
detail: zod.ZodOptional<zod.ZodEnum<{
|
|
1447
|
+
auto: "auto";
|
|
1448
|
+
low: "low";
|
|
1449
|
+
high: "high";
|
|
1450
|
+
}>>;
|
|
1451
|
+
}, zod_v4_core.$strip>;
|
|
1452
|
+
}, zod_v4_core.$strip>]>>]>>;
|
|
1453
|
+
name: zod.ZodOptional<zod.ZodString>;
|
|
1454
|
+
tool_calls: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
1455
|
+
id: zod.ZodString;
|
|
1456
|
+
type: zod.ZodLiteral<"function">;
|
|
1457
|
+
function: zod.ZodObject<{
|
|
1458
|
+
name: zod.ZodString;
|
|
1459
|
+
arguments: zod.ZodString;
|
|
1460
|
+
}, zod_v4_core.$strip>;
|
|
1461
|
+
}, zod_v4_core.$strip>>>;
|
|
1462
|
+
tool_call_id: zod.ZodOptional<zod.ZodString>;
|
|
1463
|
+
}, zod_v4_core.$strip>>;
|
|
1464
|
+
}, zod_v4_core.$strip>;
|
|
1465
|
+
response: zod.ZodObject<{
|
|
1466
|
+
content: zod.ZodString;
|
|
1467
|
+
toolCalls: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
1468
|
+
id: zod.ZodString;
|
|
1469
|
+
type: zod.ZodLiteral<"function">;
|
|
1470
|
+
function: zod.ZodObject<{
|
|
1471
|
+
name: zod.ZodString;
|
|
1472
|
+
arguments: zod.ZodString;
|
|
1473
|
+
}, zod_v4_core.$strip>;
|
|
1474
|
+
}, zod_v4_core.$strip>>>;
|
|
1475
|
+
finishReason: zod.ZodString;
|
|
1476
|
+
usage: zod.ZodObject<{
|
|
1477
|
+
prompt_tokens: zod.ZodNumber;
|
|
1478
|
+
completion_tokens: zod.ZodNumber;
|
|
1479
|
+
total_tokens: zod.ZodNumber;
|
|
1480
|
+
}, zod_v4_core.$strip>;
|
|
1481
|
+
}, zod_v4_core.$strip>;
|
|
1482
|
+
createdAt: zod.ZodNumber;
|
|
1483
|
+
duration: zod.ZodNumber;
|
|
1484
|
+
}, zod_v4_core.$strip>>;
|
|
1485
|
+
}, zod_v4_core.$strip>;
|
|
1486
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1487
|
+
success: zod.ZodLiteral<false>;
|
|
1488
|
+
error: zod.ZodObject<{
|
|
1489
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1490
|
+
message: zod.ZodString;
|
|
1491
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1492
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1493
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1494
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1495
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1496
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1497
|
+
}, zod_v4_core.$strip>;
|
|
1498
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1499
|
+
};
|
|
1500
|
+
memories: {
|
|
1501
|
+
recall: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1502
|
+
query: zod.ZodString;
|
|
1503
|
+
topK: zod.ZodOptional<zod.ZodNumber>;
|
|
1504
|
+
types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
|
|
1505
|
+
fact: "fact";
|
|
1506
|
+
preference: "preference";
|
|
1507
|
+
event: "event";
|
|
1508
|
+
entity: "entity";
|
|
1509
|
+
instruction: "instruction";
|
|
1510
|
+
}>>>;
|
|
1511
|
+
minImportance: zod.ZodOptional<zod.ZodNumber>;
|
|
1512
|
+
objectId: zod.ZodOptional<zod.ZodString>;
|
|
1513
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1514
|
+
success: zod.ZodLiteral<true>;
|
|
1515
|
+
data: zod.ZodObject<{
|
|
1516
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
1517
|
+
id: zod.ZodString;
|
|
1518
|
+
content: zod.ZodString;
|
|
1519
|
+
type: zod.ZodEnum<{
|
|
1520
|
+
fact: "fact";
|
|
1521
|
+
preference: "preference";
|
|
1522
|
+
event: "event";
|
|
1523
|
+
entity: "entity";
|
|
1524
|
+
instruction: "instruction";
|
|
1525
|
+
}>;
|
|
1526
|
+
importance: zod.ZodNumber;
|
|
1527
|
+
objectId: zod.ZodOptional<zod.ZodString>;
|
|
1528
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1529
|
+
createdAt: zod.ZodNumber;
|
|
1530
|
+
lastAccessedAt: zod.ZodNumber;
|
|
1531
|
+
accessCount: zod.ZodNumber;
|
|
1532
|
+
}, zod_v4_core.$strip>>;
|
|
1533
|
+
}, zod_v4_core.$strip>;
|
|
1534
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1535
|
+
success: zod.ZodLiteral<false>;
|
|
1536
|
+
error: zod.ZodObject<{
|
|
1537
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1538
|
+
message: zod.ZodString;
|
|
1539
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1540
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1541
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1542
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1543
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1544
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1545
|
+
}, zod_v4_core.$strip>;
|
|
1546
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1547
|
+
list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1548
|
+
types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
|
|
1549
|
+
fact: "fact";
|
|
1550
|
+
preference: "preference";
|
|
1551
|
+
event: "event";
|
|
1552
|
+
entity: "entity";
|
|
1553
|
+
instruction: "instruction";
|
|
1554
|
+
}>>>;
|
|
1555
|
+
objectId: zod.ZodOptional<zod.ZodString>;
|
|
1556
|
+
offset: zod.ZodOptional<zod.ZodNumber>;
|
|
1557
|
+
limit: zod.ZodOptional<zod.ZodNumber>;
|
|
1558
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1559
|
+
success: zod.ZodLiteral<true>;
|
|
1560
|
+
data: zod.ZodObject<{
|
|
1561
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
1562
|
+
id: zod.ZodString;
|
|
1563
|
+
content: zod.ZodString;
|
|
1564
|
+
type: zod.ZodEnum<{
|
|
1565
|
+
fact: "fact";
|
|
1566
|
+
preference: "preference";
|
|
1567
|
+
event: "event";
|
|
1568
|
+
entity: "entity";
|
|
1569
|
+
instruction: "instruction";
|
|
1570
|
+
}>;
|
|
1571
|
+
importance: zod.ZodNumber;
|
|
1572
|
+
objectId: zod.ZodOptional<zod.ZodString>;
|
|
1573
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1574
|
+
createdAt: zod.ZodNumber;
|
|
1575
|
+
lastAccessedAt: zod.ZodNumber;
|
|
1576
|
+
accessCount: zod.ZodNumber;
|
|
1577
|
+
}, zod_v4_core.$strip>>;
|
|
1578
|
+
total: zod.ZodNumber;
|
|
1579
|
+
}, zod_v4_core.$strip>;
|
|
1580
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1581
|
+
success: zod.ZodLiteral<false>;
|
|
1582
|
+
error: zod.ZodObject<{
|
|
1583
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1584
|
+
message: zod.ZodString;
|
|
1585
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1586
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1587
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1588
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1589
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1590
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1591
|
+
}, zod_v4_core.$strip>;
|
|
1592
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1593
|
+
};
|
|
1594
|
+
sessions: {
|
|
1595
|
+
list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
|
|
1596
|
+
objectId: zod.ZodString;
|
|
1597
|
+
}, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
|
|
1598
|
+
success: zod.ZodLiteral<true>;
|
|
1599
|
+
data: zod.ZodObject<{
|
|
1600
|
+
items: zod.ZodArray<zod.ZodObject<{
|
|
1601
|
+
objectId: zod.ZodString;
|
|
1602
|
+
sessionId: zod.ZodString;
|
|
1603
|
+
createdAt: zod.ZodNumber;
|
|
1604
|
+
updatedAt: zod.ZodNumber;
|
|
1605
|
+
metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1606
|
+
}, zod_v4_core.$strip>>;
|
|
1607
|
+
}, zod_v4_core.$strip>;
|
|
1608
|
+
}, zod_v4_core.$strip>, zod.ZodObject<{
|
|
1609
|
+
success: zod.ZodLiteral<false>;
|
|
1610
|
+
error: zod.ZodObject<{
|
|
1611
|
+
code: zod.ZodUnion<readonly [zod.ZodString, zod.ZodNumber]>;
|
|
1612
|
+
message: zod.ZodString;
|
|
1613
|
+
httpStatus: zod.ZodOptional<zod.ZodNumber>;
|
|
1614
|
+
system: zod.ZodOptional<zod.ZodString>;
|
|
1615
|
+
module: zod.ZodOptional<zod.ZodString>;
|
|
1616
|
+
cause: zod.ZodOptional<zod.ZodUnknown>;
|
|
1617
|
+
suggestion: zod.ZodOptional<zod.ZodString>;
|
|
1618
|
+
ext: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
|
|
1619
|
+
}, zod_v4_core.$strip>;
|
|
1620
|
+
}, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
}>;
|
|
1624
|
+
/** `apiClient` 默认单例 + 工厂命名空间的统一对外类型。 */
|
|
1625
|
+
type DefaultApiClient = ApiClient<typeof defaultApiContract> & {
|
|
1626
|
+
readonly create: typeof createApiClient;
|
|
1627
|
+
readonly tokenStorage: typeof tokenStorage;
|
|
1628
|
+
};
|
|
1629
|
+
/** hai-framework API client 统一入口(默认单例 + `create` + `tokenStorage`)。 */
|
|
1630
|
+
declare const apiClient: DefaultApiClient;
|
|
347
1631
|
|
|
348
|
-
export { type ApiClient, type
|
|
1632
|
+
export { type ApiClient, type ApiClientAuth, type ApiClientConfig, type ApiClientLifecycle, type ApiClientTransportConfig, type AuthConfig, type DefaultApiClient, HaiApiClientError, type TokenManager, type TokenPair, type TokenStorage, apiClient };
|