@turinhub/tale-js-sdk 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/dist/acl/index.d.ts +295 -0
- package/dist/acl/index.js +653 -0
- package/dist/acl/types.d.ts +142 -0
- package/dist/acl/types.js +1 -0
- package/dist/auth/index.d.ts +166 -0
- package/dist/auth/index.js +522 -0
- package/dist/auth/types.d.ts +127 -0
- package/dist/auth/types.js +1 -0
- package/dist/cms/file.d.ts +398 -0
- package/dist/cms/file.js +800 -0
- package/dist/cms/folder.d.ts +128 -0
- package/dist/cms/folder.js +294 -0
- package/dist/cms/index.d.ts +3 -0
- package/dist/cms/index.js +6 -0
- package/dist/cms/types.d.ts +157 -0
- package/dist/cms/types.js +1 -0
- package/dist/common/types.d.ts +91 -0
- package/dist/common/types.js +2 -0
- package/dist/errors.d.ts +52 -0
- package/dist/errors.js +109 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +12 -0
- package/dist/rbac/acl.d.ts +152 -0
- package/dist/rbac/acl.js +723 -0
- package/dist/rbac/index.d.ts +464 -0
- package/dist/rbac/index.js +1121 -0
- package/dist/rbac/rbac.d.ts +198 -0
- package/dist/rbac/rbac.js +984 -0
- package/dist/rbac/types.d.ts +125 -0
- package/dist/rbac/types.js +1 -0
- package/dist/rbac/user-group.d.ts +122 -0
- package/dist/rbac/user-group.js +570 -0
- package/dist/status.d.ts +40 -0
- package/dist/status.js +56 -0
- package/dist/task/index.d.ts +163 -0
- package/dist/task/index.js +495 -0
- package/dist/task/types.d.ts +116 -0
- package/dist/task/types.js +1 -0
- package/dist/task-type/index.d.ts +92 -0
- package/dist/task-type/index.js +256 -0
- package/dist/task-type/types.d.ts +54 -0
- package/dist/task-type/types.js +1 -0
- package/dist/token.d.ts +21 -0
- package/dist/token.js +114 -0
- package/dist/user/index.d.ts +267 -0
- package/dist/user/index.js +786 -0
- package/dist/user/types.d.ts +145 -0
- package/dist/user/types.js +1 -0
- package/dist/user-attribute/index.d.ts +186 -0
- package/dist/user-attribute/index.js +615 -0
- package/dist/user-attribute/types.d.ts +109 -0
- package/dist/user-attribute/types.js +1 -0
- package/dist/user-group/index.d.ts +231 -0
- package/dist/user-group/index.js +566 -0
- package/dist/user-group/types.d.ts +50 -0
- package/dist/user-group/types.js +1 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Turinhub
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @tale/client
|
|
2
|
+
|
|
3
|
+
官方 TypeScript SDK,用于与 Tale 后端服务集成与交互。
|
|
4
|
+
|
|
5
|
+
- 项目主页:<https://github.com/turinhub/tale-js-sdk>
|
|
6
|
+
- 问题反馈:<https://github.com/turinhub/tale-js-sdk/issues>
|
|
7
|
+
- 许可证:MIT(详见 `LICENSE`)
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
支持 npm、pnpm、yarn 安装:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @tale/client
|
|
15
|
+
# 或
|
|
16
|
+
pnpm add @tale/client
|
|
17
|
+
# 或
|
|
18
|
+
yarn add @tale/client
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 快速开始
|
|
22
|
+
|
|
23
|
+
本 SDK 采用 ESM(`type: module`)。在 TypeScript 或现代 Node.js/前端环境中可直接导入:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
// 具体导出以实际 SDK 为准(后续文档将补充)
|
|
27
|
+
import * as Tale from "@tale/client";
|
|
28
|
+
|
|
29
|
+
// 示例:初始化客户端并调用 API(占位示例)
|
|
30
|
+
// const client = Tale.createClient({ baseUrl: 'https://api.tale.example' })
|
|
31
|
+
// const result = await client.health()
|
|
32
|
+
// console.log(result)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
> 提示:由于 SDK 仍在迭代中,具体 API 名称与调用方式请以后续文档或源码为准。
|
|
36
|
+
|
|
37
|
+
## 开发与测试
|
|
38
|
+
|
|
39
|
+
仓库采用 TypeScript 与 Jest:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pnpm install # 或 npm install / yarn
|
|
43
|
+
pnpm test # 对应 package.json 中的 "test": "jest"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 更新日志与版本
|
|
47
|
+
|
|
48
|
+
遵循语义化版本(SemVer)。发布与变更说明将按迭代在仓库中维护。
|
|
49
|
+
|
|
50
|
+
## TODO
|
|
51
|
+
|
|
52
|
+
- [ ] 修改 User Group 等分页格式,统一为 PageResponse。
|
|
53
|
+
|
|
54
|
+
## 许可证
|
|
55
|
+
|
|
56
|
+
本项目基于 MIT 许可证开源,详见 `LICENSE` 文件。版权归 Turinhub 团队所有。
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, AclBatchCreateResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, AclOptions } from "./types.js";
|
|
2
|
+
import type { PageResponse } from "../common/types.js";
|
|
3
|
+
export type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, AclBatchCreateResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, AclOptions, };
|
|
4
|
+
/**
|
|
5
|
+
* Gets an ACL record by ID.
|
|
6
|
+
*
|
|
7
|
+
* @param recordId - Record ID
|
|
8
|
+
* @param options - Optional configuration
|
|
9
|
+
* @returns Promise resolving to ACL record information
|
|
10
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
11
|
+
* @throws {ApiError} When API request fails
|
|
12
|
+
* @throws {NetworkError} When network request fails
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { getAclRecord } from '@tale/client';
|
|
17
|
+
*
|
|
18
|
+
* try {
|
|
19
|
+
* const record = await getAclRecord('record_id_here');
|
|
20
|
+
* console.log('Record effect:', record.effect_type);
|
|
21
|
+
* } catch (error) {
|
|
22
|
+
* console.error('Failed to get ACL record:', error.message);
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function getAclRecord(recordId: string, options?: AclOptions): Promise<AclRecord>;
|
|
27
|
+
/**
|
|
28
|
+
* Lists ACL records with pagination and optional filtering.
|
|
29
|
+
*
|
|
30
|
+
* @param options - Optional parameters for pagination and filtering
|
|
31
|
+
* @returns Promise resolving to paginated ACL record list
|
|
32
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
33
|
+
* @throws {ApiError} When API request fails
|
|
34
|
+
* @throws {NetworkError} When network request fails
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { listAclRecords } from '@tale/client';
|
|
39
|
+
*
|
|
40
|
+
* try {
|
|
41
|
+
* const result = await listAclRecords({
|
|
42
|
+
* page: 0,
|
|
43
|
+
* size: 20,
|
|
44
|
+
* resource_type: 'document'
|
|
45
|
+
* });
|
|
46
|
+
* console.log(`Found ${result.total} records`);
|
|
47
|
+
* } catch (error) {
|
|
48
|
+
* console.error('Failed to list ACL records:', error.message);
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function listAclRecords(options?: ListAclRecordsRequest & AclOptions): Promise<PageResponse<AclRecord>>;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new ACL record.
|
|
55
|
+
*
|
|
56
|
+
* @param request - ACL record creation request
|
|
57
|
+
* @param options - Optional configuration
|
|
58
|
+
* @returns Promise resolving to created ACL record
|
|
59
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
60
|
+
* @throws {ApiError} When API request fails
|
|
61
|
+
* @throws {NetworkError} When network request fails
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* import { createAclRecord } from '@tale/client';
|
|
66
|
+
*
|
|
67
|
+
* try {
|
|
68
|
+
* const record = await createAclRecord({
|
|
69
|
+
* subject_type: 'user',
|
|
70
|
+
* subject_id: 'user123',
|
|
71
|
+
* resource_type: 'document',
|
|
72
|
+
* resource_id: 'doc456',
|
|
73
|
+
* effect_type: 'allow'
|
|
74
|
+
* });
|
|
75
|
+
* console.log('Record created:', record.record_id);
|
|
76
|
+
* } catch (error) {
|
|
77
|
+
* console.error('Failed to create ACL record:', error.message);
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function createAclRecord(request: CreateAclRecordRequest, options?: AclOptions): Promise<AclRecord>;
|
|
82
|
+
/**
|
|
83
|
+
* Batch creates ACL records.
|
|
84
|
+
*
|
|
85
|
+
* @param requests - Array of ACL record creation requests
|
|
86
|
+
* @param options - Optional configuration
|
|
87
|
+
* @returns Promise resolving to batch creation response with success/failure details
|
|
88
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
89
|
+
* @throws {ApiError} When API request fails
|
|
90
|
+
* @throws {NetworkError} When network request fails
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* import { batchCreateAclRecords } from '@tale/client';
|
|
95
|
+
*
|
|
96
|
+
* try {
|
|
97
|
+
* const result = await batchCreateAclRecords([
|
|
98
|
+
* {
|
|
99
|
+
* subject_type: 'user',
|
|
100
|
+
* subject_id: 'user1',
|
|
101
|
+
* resource_type: 'document',
|
|
102
|
+
* effect_type: 'allow'
|
|
103
|
+
* },
|
|
104
|
+
* {
|
|
105
|
+
* subject_type: 'user',
|
|
106
|
+
* subject_id: 'user2',
|
|
107
|
+
* resource_type: 'document',
|
|
108
|
+
* effect_type: 'deny'
|
|
109
|
+
* }
|
|
110
|
+
* ]);
|
|
111
|
+
* console.log(`Created ${result.success_count}, Failed ${result.failure_count}`);
|
|
112
|
+
* } catch (error) {
|
|
113
|
+
* console.error('Failed to batch create ACL records:', error.message);
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare function batchCreateAclRecords(requests: CreateAclRecordRequest[], options?: AclOptions): Promise<AclBatchCreateResponse>;
|
|
118
|
+
/**
|
|
119
|
+
* Updates an existing ACL record.
|
|
120
|
+
*
|
|
121
|
+
* @param recordId - Record ID to update
|
|
122
|
+
* @param request - Update request with fields to modify
|
|
123
|
+
* @param options - Optional configuration
|
|
124
|
+
* @returns Promise resolving to updated ACL record
|
|
125
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
126
|
+
* @throws {ApiError} When API request fails
|
|
127
|
+
* @throws {NetworkError} When network request fails
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* import { updateAclRecord } from '@tale/client';
|
|
132
|
+
*
|
|
133
|
+
* try {
|
|
134
|
+
* const record = await updateAclRecord('record_id_here', {
|
|
135
|
+
* effect_type: 'deny',
|
|
136
|
+
* priority: 100
|
|
137
|
+
* });
|
|
138
|
+
* console.log('Record updated:', record.record_id);
|
|
139
|
+
* } catch (error) {
|
|
140
|
+
* console.error('Failed to update ACL record:', error.message);
|
|
141
|
+
* }
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function updateAclRecord(recordId: string, request: UpdateAclRecordRequest, options?: AclOptions): Promise<AclRecord>;
|
|
145
|
+
/**
|
|
146
|
+
* Deletes an ACL record.
|
|
147
|
+
*
|
|
148
|
+
* @param recordId - Record ID to delete
|
|
149
|
+
* @param options - Optional configuration
|
|
150
|
+
* @returns Promise that resolves when deletion is successful
|
|
151
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
152
|
+
* @throws {ApiError} When API request fails
|
|
153
|
+
* @throws {NetworkError} When network request fails
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* import { deleteAclRecord } from '@tale/client';
|
|
158
|
+
*
|
|
159
|
+
* try {
|
|
160
|
+
* await deleteAclRecord('record_id_here');
|
|
161
|
+
* console.log('ACL record deleted successfully');
|
|
162
|
+
* } catch (error) {
|
|
163
|
+
* console.error('Failed to delete ACL record:', error.message);
|
|
164
|
+
* }
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
export declare function deleteAclRecord(recordId: string, options?: AclOptions): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Gets an ACL template by ID or code.
|
|
170
|
+
*
|
|
171
|
+
* @param templateId - Template ID or code
|
|
172
|
+
* @param options - Optional configuration
|
|
173
|
+
* @returns Promise resolving to ACL template information
|
|
174
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
175
|
+
* @throws {ApiError} When API request fails
|
|
176
|
+
* @throws {NetworkError} When network request fails
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* import { getAclTemplate } from '@tale/client';
|
|
181
|
+
*
|
|
182
|
+
* try {
|
|
183
|
+
* const template = await getAclTemplate('template_code_here');
|
|
184
|
+
* console.log('Template name:', template.template_name);
|
|
185
|
+
* } catch (error) {
|
|
186
|
+
* console.error('Failed to get ACL template:', error.message);
|
|
187
|
+
* }
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
export declare function getAclTemplate(templateId: string, options?: AclOptions): Promise<AclTemplate>;
|
|
191
|
+
/**
|
|
192
|
+
* Lists ACL templates with pagination and optional filtering.
|
|
193
|
+
*
|
|
194
|
+
* @param options - Optional parameters for pagination and filtering
|
|
195
|
+
* @returns Promise resolving to paginated ACL template list
|
|
196
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
197
|
+
* @throws {ApiError} When API request fails
|
|
198
|
+
* @throws {NetworkError} When network request fails
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* import { listAclTemplates } from '@tale/client';
|
|
203
|
+
*
|
|
204
|
+
* try {
|
|
205
|
+
* const result = await listAclTemplates({
|
|
206
|
+
* page: 0,
|
|
207
|
+
* size: 20,
|
|
208
|
+
* resource_type: 'document'
|
|
209
|
+
* });
|
|
210
|
+
* console.log(`Found ${result.total} templates`);
|
|
211
|
+
* } catch (error) {
|
|
212
|
+
* console.error('Failed to list ACL templates:', error.message);
|
|
213
|
+
* }
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
export declare function listAclTemplates(options?: ListAclTemplatesRequest & AclOptions): Promise<PageResponse<AclTemplate>>;
|
|
217
|
+
/**
|
|
218
|
+
* Creates a new ACL template.
|
|
219
|
+
*
|
|
220
|
+
* @param request - ACL template creation request
|
|
221
|
+
* @param options - Optional configuration
|
|
222
|
+
* @returns Promise resolving to created ACL template
|
|
223
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
224
|
+
* @throws {ApiError} When API request fails
|
|
225
|
+
* @throws {NetworkError} When network request fails
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* import { createAclTemplate } from '@tale/client';
|
|
230
|
+
*
|
|
231
|
+
* try {
|
|
232
|
+
* const template = await createAclTemplate({
|
|
233
|
+
* template_name: 'Document Access',
|
|
234
|
+
* template_code: 'doc_access',
|
|
235
|
+
* subject_type: 'user',
|
|
236
|
+
* resource_type: 'document',
|
|
237
|
+
* effect_type: 'allow'
|
|
238
|
+
* });
|
|
239
|
+
* console.log('Template created:', template.template_id);
|
|
240
|
+
* } catch (error) {
|
|
241
|
+
* console.error('Failed to create ACL template:', error.message);
|
|
242
|
+
* }
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
export declare function createAclTemplate(request: CreateAclTemplateRequest, options?: AclOptions): Promise<AclTemplate>;
|
|
246
|
+
/**
|
|
247
|
+
* Updates an existing ACL template.
|
|
248
|
+
*
|
|
249
|
+
* @param templateId - Template ID or code to update
|
|
250
|
+
* @param request - Update request with fields to modify
|
|
251
|
+
* @param options - Optional configuration
|
|
252
|
+
* @returns Promise resolving to updated ACL template
|
|
253
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
254
|
+
* @throws {ApiError} When API request fails
|
|
255
|
+
* @throws {NetworkError} When network request fails
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```typescript
|
|
259
|
+
* import { updateAclTemplate } from '@tale/client';
|
|
260
|
+
*
|
|
261
|
+
* try {
|
|
262
|
+
* const template = await updateAclTemplate('template_code_here', {
|
|
263
|
+
* template_name: 'Updated Template Name',
|
|
264
|
+
* effect_type: 'deny'
|
|
265
|
+
* });
|
|
266
|
+
* console.log('Template updated:', template.template_id);
|
|
267
|
+
* } catch (error) {
|
|
268
|
+
* console.error('Failed to update ACL template:', error.message);
|
|
269
|
+
* }
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
export declare function updateAclTemplate(templateId: string, request: UpdateAclTemplateRequest, options?: AclOptions): Promise<AclTemplate>;
|
|
273
|
+
/**
|
|
274
|
+
* Deletes an ACL template.
|
|
275
|
+
*
|
|
276
|
+
* @param templateId - Template ID or code to delete
|
|
277
|
+
* @param options - Optional configuration
|
|
278
|
+
* @returns Promise that resolves when deletion is successful
|
|
279
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
280
|
+
* @throws {ApiError} When API request fails
|
|
281
|
+
* @throws {NetworkError} When network request fails
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```typescript
|
|
285
|
+
* import { deleteAclTemplate } from '@tale/client';
|
|
286
|
+
*
|
|
287
|
+
* try {
|
|
288
|
+
* await deleteAclTemplate('template_code_here');
|
|
289
|
+
* console.log('ACL template deleted successfully');
|
|
290
|
+
* } catch (error) {
|
|
291
|
+
* console.error('Failed to delete ACL template:', error.message);
|
|
292
|
+
* }
|
|
293
|
+
* ```
|
|
294
|
+
*/
|
|
295
|
+
export declare function deleteAclTemplate(templateId: string, options?: AclOptions): Promise<void>;
|