@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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/acl/index.d.ts +295 -0
  4. package/dist/acl/index.js +653 -0
  5. package/dist/acl/types.d.ts +142 -0
  6. package/dist/acl/types.js +1 -0
  7. package/dist/auth/index.d.ts +166 -0
  8. package/dist/auth/index.js +522 -0
  9. package/dist/auth/types.d.ts +127 -0
  10. package/dist/auth/types.js +1 -0
  11. package/dist/cms/file.d.ts +398 -0
  12. package/dist/cms/file.js +800 -0
  13. package/dist/cms/folder.d.ts +128 -0
  14. package/dist/cms/folder.js +294 -0
  15. package/dist/cms/index.d.ts +3 -0
  16. package/dist/cms/index.js +6 -0
  17. package/dist/cms/types.d.ts +157 -0
  18. package/dist/cms/types.js +1 -0
  19. package/dist/common/types.d.ts +91 -0
  20. package/dist/common/types.js +2 -0
  21. package/dist/errors.d.ts +52 -0
  22. package/dist/errors.js +109 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.js +12 -0
  25. package/dist/rbac/acl.d.ts +152 -0
  26. package/dist/rbac/acl.js +723 -0
  27. package/dist/rbac/index.d.ts +464 -0
  28. package/dist/rbac/index.js +1121 -0
  29. package/dist/rbac/rbac.d.ts +198 -0
  30. package/dist/rbac/rbac.js +984 -0
  31. package/dist/rbac/types.d.ts +125 -0
  32. package/dist/rbac/types.js +1 -0
  33. package/dist/rbac/user-group.d.ts +122 -0
  34. package/dist/rbac/user-group.js +570 -0
  35. package/dist/status.d.ts +40 -0
  36. package/dist/status.js +56 -0
  37. package/dist/task/index.d.ts +163 -0
  38. package/dist/task/index.js +495 -0
  39. package/dist/task/types.d.ts +116 -0
  40. package/dist/task/types.js +1 -0
  41. package/dist/task-type/index.d.ts +92 -0
  42. package/dist/task-type/index.js +256 -0
  43. package/dist/task-type/types.d.ts +54 -0
  44. package/dist/task-type/types.js +1 -0
  45. package/dist/token.d.ts +21 -0
  46. package/dist/token.js +114 -0
  47. package/dist/user/index.d.ts +267 -0
  48. package/dist/user/index.js +786 -0
  49. package/dist/user/types.d.ts +145 -0
  50. package/dist/user/types.js +1 -0
  51. package/dist/user-attribute/index.d.ts +186 -0
  52. package/dist/user-attribute/index.js +615 -0
  53. package/dist/user-attribute/types.d.ts +109 -0
  54. package/dist/user-attribute/types.js +1 -0
  55. package/dist/user-group/index.d.ts +231 -0
  56. package/dist/user-group/index.js +566 -0
  57. package/dist/user-group/types.d.ts +50 -0
  58. package/dist/user-group/types.js +1 -0
  59. 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>;