@h-ai/kit 0.1.0-alpha9 → 1.0.0-beta.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.en.md +430 -0
- package/README.ja.md +430 -0
- package/README.md +351 -40
- package/dist/adapter/index.d.ts +17 -2
- package/dist/adapter/index.js.map +1 -1
- package/dist/browser.d.ts +19 -8
- package/dist/browser.js +10 -7
- package/dist/browser.js.map +1 -1
- package/dist/chunk-3OHUSKHI.js +175 -0
- package/dist/chunk-3OHUSKHI.js.map +1 -0
- package/dist/chunk-5VWPH7DO.js +126 -0
- package/dist/chunk-5VWPH7DO.js.map +1 -0
- package/dist/chunk-7EH47MTW.js +141 -0
- package/dist/chunk-7EH47MTW.js.map +1 -0
- package/dist/chunk-JRQPMPQC.js +63 -0
- package/dist/chunk-JRQPMPQC.js.map +1 -0
- package/dist/chunk-USFJN7IO.js +187 -0
- package/dist/chunk-USFJN7IO.js.map +1 -0
- package/dist/chunk-YKJRQCWR.js +363 -0
- package/dist/chunk-YKJRQCWR.js.map +1 -0
- package/dist/client/index.d.ts +51 -2
- package/dist/client/index.js +21 -2
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +303 -409
- package/dist/index.js +598 -310
- package/dist/index.js.map +1 -1
- package/dist/kit-a2a-types-4dapztu2.d.ts +136 -0
- package/dist/kit-client-auth-BnhrkzZF.d.ts +422 -0
- package/dist/kit-crypto-types-CXr888wf.d.ts +200 -0
- package/dist/kit-i18n-EBzZKYN-.d.ts +502 -0
- package/dist/kit-types-BkNdyKj8.d.ts +822 -0
- package/dist/modules/a2a/index.d.ts +15 -113
- package/dist/modules/a2a/index.js +2 -55
- package/dist/modules/a2a/index.js.map +1 -1
- package/dist/modules/crypto/index.d.ts +31 -79
- package/dist/modules/crypto/index.js +3 -3
- package/dist/modules/crypto/index.js.map +1 -1
- package/package.json +36 -22
- package/dist/chunk-475WECWK.js +0 -110
- package/dist/chunk-475WECWK.js.map +0 -1
- package/dist/chunk-6TMSXG7J.js +0 -169
- package/dist/chunk-6TMSXG7J.js.map +0 -1
- package/dist/chunk-AD6S473Y.js +0 -137
- package/dist/chunk-AD6S473Y.js.map +0 -1
- package/dist/chunk-FRYJMRTP.js +0 -71
- package/dist/chunk-FRYJMRTP.js.map +0 -1
- package/dist/chunk-PHS7ZD5L.js +0 -274
- package/dist/chunk-PHS7ZD5L.js.map +0 -1
- package/dist/index-BotXLTck.d.ts +0 -203
- package/dist/kit-crypto-types-C-gEvx04.d.ts +0 -253
- package/dist/kit-i18n-CgpNTh9G.d.ts +0 -206
- package/dist/kit-types-BHlDNNpd.d.ts +0 -618
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { RequestEvent } from '@sveltejs/kit';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @h-ai/kit — Crypto 类型定义
|
|
5
|
-
*
|
|
6
|
-
* Crypto 模块集成相关类型
|
|
7
|
-
* @module kit-crypto-types
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Crypto 服务接口(简化版,与 @h-ai/crypto 兼容)
|
|
12
|
-
*/
|
|
13
|
-
interface CryptoServiceLike {
|
|
14
|
-
hmac: {
|
|
15
|
-
sign: (data: string, key: string, algorithm?: string) => Promise<{
|
|
16
|
-
success: boolean;
|
|
17
|
-
data?: string;
|
|
18
|
-
error?: {
|
|
19
|
-
code: number;
|
|
20
|
-
message: string;
|
|
21
|
-
};
|
|
22
|
-
}>;
|
|
23
|
-
verify: (data: string, key: string, signature: string, algorithm?: string) => Promise<{
|
|
24
|
-
success: boolean;
|
|
25
|
-
data?: boolean;
|
|
26
|
-
error?: {
|
|
27
|
-
code: number;
|
|
28
|
-
message: string;
|
|
29
|
-
};
|
|
30
|
-
}>;
|
|
31
|
-
};
|
|
32
|
-
hash: {
|
|
33
|
-
digest: (data: string, algorithm?: string) => Promise<{
|
|
34
|
-
success: boolean;
|
|
35
|
-
data?: string;
|
|
36
|
-
error?: {
|
|
37
|
-
code: number;
|
|
38
|
-
message: string;
|
|
39
|
-
};
|
|
40
|
-
}>;
|
|
41
|
-
timingSafeEqual: (a: string, b: string) => Promise<{
|
|
42
|
-
success: boolean;
|
|
43
|
-
data?: boolean;
|
|
44
|
-
error?: {
|
|
45
|
-
code: number;
|
|
46
|
-
message: string;
|
|
47
|
-
};
|
|
48
|
-
}>;
|
|
49
|
-
};
|
|
50
|
-
aes: {
|
|
51
|
-
encrypt: (data: string, key: string) => Promise<{
|
|
52
|
-
success: boolean;
|
|
53
|
-
data?: string;
|
|
54
|
-
error?: {
|
|
55
|
-
code: number;
|
|
56
|
-
message: string;
|
|
57
|
-
};
|
|
58
|
-
}>;
|
|
59
|
-
decrypt: (data: string, key: string) => Promise<{
|
|
60
|
-
success: boolean;
|
|
61
|
-
data?: string;
|
|
62
|
-
error?: {
|
|
63
|
-
code: number;
|
|
64
|
-
message: string;
|
|
65
|
-
};
|
|
66
|
-
}>;
|
|
67
|
-
};
|
|
68
|
-
random: {
|
|
69
|
-
bytes: (length: number) => Promise<{
|
|
70
|
-
success: boolean;
|
|
71
|
-
data?: Uint8Array;
|
|
72
|
-
error?: {
|
|
73
|
-
code: number;
|
|
74
|
-
message: string;
|
|
75
|
-
};
|
|
76
|
-
}>;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Webhook 验证配置
|
|
81
|
-
*/
|
|
82
|
-
interface WebhookVerifyConfig {
|
|
83
|
-
/** Crypto 服务实例 */
|
|
84
|
-
crypto: CryptoServiceLike;
|
|
85
|
-
/** 请求事件 */
|
|
86
|
-
event: RequestEvent;
|
|
87
|
-
/** 签名密钥 */
|
|
88
|
-
secretKey: string;
|
|
89
|
-
/** 签名头名称 */
|
|
90
|
-
signatureHeader?: string;
|
|
91
|
-
/** 算法 */
|
|
92
|
-
algorithm?: 'sha256' | 'sha512';
|
|
93
|
-
/** 编码 */
|
|
94
|
-
encoding?: 'hex' | 'base64';
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* CSRF 配置
|
|
98
|
-
*/
|
|
99
|
-
interface CryptoCsrfConfig {
|
|
100
|
-
/** Crypto 服务实例 */
|
|
101
|
-
crypto: CryptoServiceLike;
|
|
102
|
-
/** Cookie 名称 */
|
|
103
|
-
cookieName?: string;
|
|
104
|
-
/** Header 名称 */
|
|
105
|
-
headerName?: string;
|
|
106
|
-
/** 表单字段名称 */
|
|
107
|
-
formFieldName?: string;
|
|
108
|
-
/** Token 长度 */
|
|
109
|
-
tokenLength?: number;
|
|
110
|
-
/** Cookie 选项 */
|
|
111
|
-
cookieOptions?: {
|
|
112
|
-
path?: string;
|
|
113
|
-
httpOnly?: boolean;
|
|
114
|
-
secure?: boolean;
|
|
115
|
-
sameSite?: 'strict' | 'lax' | 'none';
|
|
116
|
-
maxAge?: number;
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* 加密 Cookie 配置
|
|
121
|
-
*/
|
|
122
|
-
interface EncryptedCookieConfig {
|
|
123
|
-
/** Crypto 服务实例 */
|
|
124
|
-
crypto: CryptoServiceLike;
|
|
125
|
-
/** 加密密钥 */
|
|
126
|
-
encryptionKey: string;
|
|
127
|
-
/** Cookie 选项 */
|
|
128
|
-
cookieOptions?: {
|
|
129
|
-
path?: string;
|
|
130
|
-
httpOnly?: boolean;
|
|
131
|
-
secure?: boolean;
|
|
132
|
-
sameSite?: 'strict' | 'lax' | 'none';
|
|
133
|
-
maxAge?: number;
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/** SM2 密钥对 */
|
|
137
|
-
interface TransportKeyPair {
|
|
138
|
-
/** 公钥(十六进制) */
|
|
139
|
-
publicKey: string;
|
|
140
|
-
/** 私钥(十六进制) */
|
|
141
|
-
privateKey: string;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* 传输加密服务接口(解耦 @h-ai/crypto)
|
|
145
|
-
*
|
|
146
|
-
* 只声明传输加密所需的非对称 + 对称加密子集,由使用者注入实际实现。
|
|
147
|
-
*/
|
|
148
|
-
interface TransportCryptoServiceLike {
|
|
149
|
-
asymmetric: {
|
|
150
|
-
/** 生成非对称密钥对 */
|
|
151
|
-
generateKeyPair: () => {
|
|
152
|
-
success: boolean;
|
|
153
|
-
data?: TransportKeyPair;
|
|
154
|
-
error?: {
|
|
155
|
-
code: number;
|
|
156
|
-
message: string;
|
|
157
|
-
};
|
|
158
|
-
};
|
|
159
|
-
/** 非对称加密 */
|
|
160
|
-
encrypt: (data: string, publicKey: string) => {
|
|
161
|
-
success: boolean;
|
|
162
|
-
data?: string;
|
|
163
|
-
error?: {
|
|
164
|
-
code: number;
|
|
165
|
-
message: string;
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
/** 非对称解密 */
|
|
169
|
-
decrypt: (ciphertext: string, privateKey: string) => {
|
|
170
|
-
success: boolean;
|
|
171
|
-
data?: string;
|
|
172
|
-
error?: {
|
|
173
|
-
code: number;
|
|
174
|
-
message: string;
|
|
175
|
-
};
|
|
176
|
-
};
|
|
177
|
-
};
|
|
178
|
-
symmetric: {
|
|
179
|
-
/** 生成随机对称密钥 */
|
|
180
|
-
generateKey: () => string;
|
|
181
|
-
/** 带 IV 加密(CBC 模式,自动生成 IV) */
|
|
182
|
-
encryptWithIV: (data: string, key: string) => {
|
|
183
|
-
success: boolean;
|
|
184
|
-
data?: {
|
|
185
|
-
ciphertext: string;
|
|
186
|
-
iv: string;
|
|
187
|
-
};
|
|
188
|
-
error?: {
|
|
189
|
-
code: number;
|
|
190
|
-
message: string;
|
|
191
|
-
};
|
|
192
|
-
};
|
|
193
|
-
/** 带 IV 解密(CBC 模式) */
|
|
194
|
-
decryptWithIV: (ciphertext: string, key: string, iv: string) => {
|
|
195
|
-
success: boolean;
|
|
196
|
-
data?: string;
|
|
197
|
-
error?: {
|
|
198
|
-
code: number;
|
|
199
|
-
message: string;
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* 传输加密配置
|
|
206
|
-
*/
|
|
207
|
-
interface TransportEncryptionConfig {
|
|
208
|
-
/** 是否启用传输加密(默认 false) */
|
|
209
|
-
enabled: boolean;
|
|
210
|
-
/** 传输加密服务实例 */
|
|
211
|
-
crypto: TransportCryptoServiceLike;
|
|
212
|
-
/** 密钥交换端点路径(默认 '/api/kit/key-exchange') */
|
|
213
|
-
keyExchangePath?: string;
|
|
214
|
-
/** 排除路径(不加密),支持精确匹配和前缀匹配 */
|
|
215
|
-
excludePaths?: string[];
|
|
216
|
-
/** 是否加密响应(默认 true) */
|
|
217
|
-
encryptResponse?: boolean;
|
|
218
|
-
/**
|
|
219
|
-
* 是否强制要求传输加密(默认 true)
|
|
220
|
-
*
|
|
221
|
-
* - `true`:非排除路径上缺少 X-Client-Id 请求头时返回 400,防止绕过加密。
|
|
222
|
-
* - `false`:缺少 X-Client-Id 时透传明文,适用于渐进式迁移场景。
|
|
223
|
-
*/
|
|
224
|
-
requireEncryption?: boolean;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* 加密载荷(前后端传输的统一格式)
|
|
228
|
-
*/
|
|
229
|
-
interface EncryptedPayload {
|
|
230
|
-
/** SM2 加密后的对称密钥(hex) */
|
|
231
|
-
encryptedKey: string;
|
|
232
|
-
/** SM4 加密后的密文(hex) */
|
|
233
|
-
ciphertext: string;
|
|
234
|
-
/** SM4 CBC 模式的 IV(hex) */
|
|
235
|
-
iv: string;
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* 传输加密管理器接口
|
|
239
|
-
*/
|
|
240
|
-
interface TransportEncryptionManager {
|
|
241
|
-
/** 获取服务端公钥 */
|
|
242
|
-
getServerPublicKey: () => string;
|
|
243
|
-
/** 注册客户端公钥,返回分配的 clientId */
|
|
244
|
-
registerClientKey: (clientPublicKey: string) => string;
|
|
245
|
-
/** 获取已注册的客户端公钥 */
|
|
246
|
-
getClientPublicKey: (clientId: string) => string | undefined;
|
|
247
|
-
/** 加密响应数据(使用指定客户端的公钥) */
|
|
248
|
-
encryptResponse: (clientId: string, data: string) => EncryptedPayload;
|
|
249
|
-
/** 解密请求数据(使用服务端私钥) */
|
|
250
|
-
decryptRequest: (payload: EncryptedPayload) => string;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export type { CryptoCsrfConfig as C, EncryptedCookieConfig as E, TransportCryptoServiceLike as T, WebhookVerifyConfig as W, CryptoServiceLike as a, EncryptedPayload as b, TransportEncryptionConfig as c, TransportEncryptionManager as d, TransportKeyPair as e };
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @h-ai/kit — CRUD 类型定义
|
|
3
|
-
*
|
|
4
|
-
* 声明式 CRUD 资源定义所需的全部类型。
|
|
5
|
-
* @module kit-crud-types
|
|
6
|
-
*/
|
|
7
|
-
/** 支持的字段类型 */
|
|
8
|
-
type CrudFieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'email' | 'url' | 'tel' | 'password' | 'textarea' | 'select' | 'multi-select' | 'radio' | 'checkbox' | 'custom';
|
|
9
|
-
/** 字段校验规则 */
|
|
10
|
-
interface CrudFieldValidation {
|
|
11
|
-
/** 是否必填 */
|
|
12
|
-
required?: boolean;
|
|
13
|
-
/** 最小值(number)或 最小长度(string) */
|
|
14
|
-
min?: number;
|
|
15
|
-
/** 最大值(number)或 最大长度(string) */
|
|
16
|
-
max?: number;
|
|
17
|
-
/** 正则表达式 */
|
|
18
|
-
pattern?: string;
|
|
19
|
-
/** 自定义错误提示 */
|
|
20
|
-
message?: string;
|
|
21
|
-
}
|
|
22
|
-
/** 选项项(用于 select/radio 等) */
|
|
23
|
-
interface CrudFieldOption {
|
|
24
|
-
label: string;
|
|
25
|
-
value: string | number | boolean;
|
|
26
|
-
}
|
|
27
|
-
/** 选项来源:静态数组或动态工厂函数 */
|
|
28
|
-
type CrudFieldOptions = CrudFieldOption[] | (() => CrudFieldOption[]);
|
|
29
|
-
/** 可解析为字符串的文本值(支持 i18n) */
|
|
30
|
-
type CrudText = string | (() => string);
|
|
31
|
-
/** 字段定义 */
|
|
32
|
-
interface CrudFieldDef {
|
|
33
|
-
/** 字段 ID(对应数据对象的 key) */
|
|
34
|
-
id: string;
|
|
35
|
-
/** 显示名称(支持 i18n 函数) */
|
|
36
|
-
label: CrudText;
|
|
37
|
-
/** 字段类型 */
|
|
38
|
-
type: CrudFieldType;
|
|
39
|
-
/** 是否在列表中显示(默认 true) */
|
|
40
|
-
inList?: boolean;
|
|
41
|
-
/** 是否是过滤项(默认 false) */
|
|
42
|
-
filterable?: boolean;
|
|
43
|
-
/** 是否只读(编辑时不可修改,默认 false) */
|
|
44
|
-
readonly?: boolean;
|
|
45
|
-
/** 是否在新建表单中显示(默认 true) */
|
|
46
|
-
inCreate?: boolean;
|
|
47
|
-
/** 是否在编辑表单中显示(默认 true) */
|
|
48
|
-
inEdit?: boolean;
|
|
49
|
-
/** 是否在详情中显示(默认 true) */
|
|
50
|
-
inDetail?: boolean;
|
|
51
|
-
/** 选项列表(select/radio/checkbox/multi-select) */
|
|
52
|
-
options?: CrudFieldOptions;
|
|
53
|
-
/** 校验规则 */
|
|
54
|
-
validation?: CrudFieldValidation;
|
|
55
|
-
/** 列宽(列表模式) */
|
|
56
|
-
width?: string;
|
|
57
|
-
/** 列对齐方式 */
|
|
58
|
-
align?: 'left' | 'center' | 'right';
|
|
59
|
-
/** 自定义列表渲染 */
|
|
60
|
-
render?: (value: unknown, item: Record<string, unknown>) => string;
|
|
61
|
-
/** 占位符 */
|
|
62
|
-
placeholder?: CrudText;
|
|
63
|
-
/** 默认值(新建时) */
|
|
64
|
-
defaultValue?: unknown;
|
|
65
|
-
/** 排列权重(数值越小越靠前) */
|
|
66
|
-
order?: number;
|
|
67
|
-
}
|
|
68
|
-
/** 分页参数 */
|
|
69
|
-
interface CrudPaginationParams {
|
|
70
|
-
page: number;
|
|
71
|
-
pageSize: number;
|
|
72
|
-
}
|
|
73
|
-
/** 过滤参数(搜索 + 自定义过滤字段) */
|
|
74
|
-
interface CrudFilterParams {
|
|
75
|
-
search?: string;
|
|
76
|
-
[key: string]: unknown;
|
|
77
|
-
}
|
|
78
|
-
/** 分页结果 */
|
|
79
|
-
interface CrudPaginatedResult<T> {
|
|
80
|
-
items: T[];
|
|
81
|
-
total: number;
|
|
82
|
-
page: number;
|
|
83
|
-
pageSize: number;
|
|
84
|
-
}
|
|
85
|
-
/** CRUD API 接口定义 */
|
|
86
|
-
interface CrudApiDef<T = Record<string, unknown>> {
|
|
87
|
-
/** 获取分页列表 */
|
|
88
|
-
list: (params: CrudPaginationParams & CrudFilterParams) => Promise<CrudPaginatedResult<T>>;
|
|
89
|
-
/** 获取单条记录 */
|
|
90
|
-
get?: (id: string) => Promise<T | null>;
|
|
91
|
-
/** 新建记录 */
|
|
92
|
-
create?: (data: Partial<T>) => Promise<T>;
|
|
93
|
-
/** 更新记录(patch) */
|
|
94
|
-
update?: (id: string, data: Partial<T>) => Promise<T>;
|
|
95
|
-
/** 删除记录 */
|
|
96
|
-
remove?: (id: string) => Promise<void>;
|
|
97
|
-
}
|
|
98
|
-
/** CRUD 资源定义 */
|
|
99
|
-
interface CrudResourceDef<T = Record<string, unknown>> {
|
|
100
|
-
/** 资源名称(如 'user', 'role'),用于 URL 路由 */
|
|
101
|
-
name: string;
|
|
102
|
-
/** 显示名称(面包屑、标题用,支持 i18n) */
|
|
103
|
-
label: CrudText;
|
|
104
|
-
/** 主键字段名(默认 'id') */
|
|
105
|
-
keyField?: string;
|
|
106
|
-
/** 字段列表 */
|
|
107
|
-
fields: CrudFieldDef[];
|
|
108
|
-
/** API 接口 */
|
|
109
|
-
api: CrudApiDef<T>;
|
|
110
|
-
/** 默认分页大小(默认 20) */
|
|
111
|
-
defaultPageSize?: number;
|
|
112
|
-
/** 是否支持搜索(默认 true) */
|
|
113
|
-
searchable?: boolean;
|
|
114
|
-
/** 搜索占位符 */
|
|
115
|
-
searchPlaceholder?: CrudText;
|
|
116
|
-
}
|
|
117
|
-
/** DataTable 列配置(适配 @h-ai/ui DataTable) */
|
|
118
|
-
interface CrudTableColumn {
|
|
119
|
-
key: string;
|
|
120
|
-
label: string;
|
|
121
|
-
width?: string;
|
|
122
|
-
align?: 'left' | 'center' | 'right';
|
|
123
|
-
render?: (item: Record<string, unknown>) => string;
|
|
124
|
-
}
|
|
125
|
-
/** CRUD 操作对象(由 defineCrud 返回) */
|
|
126
|
-
interface CrudOperations<T = Record<string, unknown>> {
|
|
127
|
-
/** 资源元信息 */
|
|
128
|
-
resource: CrudResourceDef<T>;
|
|
129
|
-
/** 获取列表列字段(inList=true) */
|
|
130
|
-
getListFields: () => CrudFieldDef[];
|
|
131
|
-
/** 获取过滤字段(filterable=true) */
|
|
132
|
-
getFilterFields: () => CrudFieldDef[];
|
|
133
|
-
/** 获取新建表单字段(inCreate=true) */
|
|
134
|
-
getCreateFields: () => CrudFieldDef[];
|
|
135
|
-
/** 获取编辑表单字段(inEdit=true) */
|
|
136
|
-
getEditFields: () => CrudFieldDef[];
|
|
137
|
-
/** 获取详情字段(inDetail=true) */
|
|
138
|
-
getDetailFields: () => CrudFieldDef[];
|
|
139
|
-
/** 构建 DataTable 列配置 */
|
|
140
|
-
toTableColumns: () => CrudTableColumn[];
|
|
141
|
-
/** 构建新建时的默认值 */
|
|
142
|
-
getDefaultValues: () => Record<string, unknown>;
|
|
143
|
-
/** API 操作代理 */
|
|
144
|
-
api: CrudApiDef<T>;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* @h-ai/kit — CRUD 操作定义
|
|
149
|
-
*
|
|
150
|
-
* 声明式 CRUD 资源定义工厂函数。
|
|
151
|
-
* @module kit-crud
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* 解析 CrudText 为字符串
|
|
156
|
-
*/
|
|
157
|
-
declare function resolveText(text: CrudText): string;
|
|
158
|
-
/**
|
|
159
|
-
* 解析选项列表
|
|
160
|
-
*/
|
|
161
|
-
declare function resolveOptions(options: CrudFieldOptions | undefined): Array<{
|
|
162
|
-
label: string;
|
|
163
|
-
value: string | number | boolean;
|
|
164
|
-
}>;
|
|
165
|
-
/**
|
|
166
|
-
* 定义 CRUD 资源
|
|
167
|
-
*
|
|
168
|
-
* 返回 CrudOperations 对象,包含字段过滤、列构建和 API 代理等能力。
|
|
169
|
-
* 与 @h-ai/ui 的 CrudPage 组件配合使用。
|
|
170
|
-
*
|
|
171
|
-
* @param resource - 资源定义
|
|
172
|
-
* @returns CRUD 操作对象
|
|
173
|
-
*
|
|
174
|
-
* @example
|
|
175
|
-
* ```ts
|
|
176
|
-
* const userCrud = defineCrud({
|
|
177
|
-
* name: 'user',
|
|
178
|
-
* label: () => m.users_title(),
|
|
179
|
-
* fields: [
|
|
180
|
-
* { id: 'username', label: '用户名', type: 'string', validation: { required: true } },
|
|
181
|
-
* { id: 'email', label: '邮箱', type: 'email' },
|
|
182
|
-
* ],
|
|
183
|
-
* api: { list, get, create, update, remove },
|
|
184
|
-
* })
|
|
185
|
-
* ```
|
|
186
|
-
*/
|
|
187
|
-
declare function defineCrud<T = Record<string, unknown>>(resource: CrudResourceDef<T>): CrudOperations<T>;
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* 统一设置所有 hai 模块的默认语言
|
|
191
|
-
*
|
|
192
|
-
* 通过 @h-ai/core 的集中式 locale 管理器,一次调用即可同步所有模块。
|
|
193
|
-
* 各模块的 createMessageGetter 会读取全局 locale。
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```ts
|
|
197
|
-
* import { kit } from '@h-ai/kit'
|
|
198
|
-
*
|
|
199
|
-
* // 在 i18n handle 中
|
|
200
|
-
* const locale = event.cookies.get('PARAGLIDE_LOCALE') ?? 'zh-CN'
|
|
201
|
-
* kit.i18n.setLocale(locale)
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
declare function setAllModulesLocale(locale: string): void;
|
|
205
|
-
|
|
206
|
-
export { type CrudApiDef as C, type CrudFieldDef as a, type CrudFieldOption as b, type CrudFieldOptions as c, defineCrud as d, type CrudFieldType as e, type CrudFieldValidation as f, type CrudFilterParams as g, type CrudOperations as h, type CrudPaginatedResult as i, type CrudPaginationParams as j, type CrudResourceDef as k, type CrudTableColumn as l, type CrudText as m, resolveText as n, resolveOptions as r, setAllModulesLocale as s };
|