tale-js-sdk 0.1.4 → 1.1.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.
@@ -1,170 +1,300 @@
1
- import type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, CreateAclRecordResponse, UpdateAclRecordResponse, DeleteAclRecordResponse, GetAclRecordResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, CreateAclTemplateResponse, UpdateAclTemplateResponse, DeleteAclTemplateResponse, GetAclTemplateResponse, PaginatedResponse, AclOptions } from './types.js';
1
+ import type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, AclBatchCreateResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, AclOptions } from "./types.js";
2
+ export type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, AclBatchCreateResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, AclOptions, };
2
3
  /**
3
- * Creates a new ACL record in the Tale application.
4
+ * Gets an ACL record by ID.
4
5
  *
5
- * @param recordData - ACL record data to create
6
- * @param options - Optional configuration for the request
7
- * @returns Promise resolving to the created ACL record information
6
+ * @param recordId - Record ID
7
+ * @param options - Optional configuration
8
+ * @returns Promise resolving to ACL record information
8
9
  * @throws {ConfigurationError} When required environment variables are missing
9
- * @throws {ApiError} When API request fails or returns invalid response
10
+ * @throws {ApiError} When API request fails
10
11
  * @throws {NetworkError} When network request fails
11
12
  *
12
13
  * @example
13
14
  * ```typescript
14
- * import { createRecord } from '@tale/client';
15
+ * import { getAclRecord } from '@tale/client';
15
16
  *
16
17
  * try {
17
- * const result = await createRecord({
18
- * template_id: 'template_user_read',
19
- * subject_type: 'user',
20
- * subject_id: 'user_123',
21
- * resource_type: 'document',
22
- * resource_id: 'doc_456',
23
- * effect_type: 'allow',
24
- * priority: 50,
25
- * description: 'Allow user to read document'
26
- * });
27
- * console.log('ACL record created:', result.record.record_id);
18
+ * const record = await getAclRecord('record_id_here');
19
+ * console.log('Record effect:', record.effect_type);
28
20
  * } catch (error) {
29
- * console.error('Failed to create ACL record:', error.message);
21
+ * console.error('Failed to get ACL record:', error.message);
30
22
  * }
31
23
  * ```
32
24
  */
33
- export declare function createRecord(recordData: CreateAclRecordRequest, options?: AclOptions): Promise<CreateAclRecordResponse>;
25
+ export declare function getAclRecord(recordId: string, options?: AclOptions): Promise<AclRecord>;
34
26
  /**
35
- * Updates an existing ACL record by ID.
27
+ * Lists ACL records with pagination and optional filtering.
36
28
  *
37
- * @param recordId - ACL record ID to update
38
- * @param updateData - ACL record information to update
39
- * @param options - Optional configuration for the request
40
- * @returns Promise resolving to the updated ACL record information
29
+ * @param options - Optional parameters for pagination and filtering
30
+ * @returns Promise resolving to paginated ACL record list
41
31
  * @throws {ConfigurationError} When required environment variables are missing
42
- * @throws {ApiError} When API request fails or returns invalid response
32
+ * @throws {ApiError} When API request fails
43
33
  * @throws {NetworkError} When network request fails
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { listAclRecords } from '@tale/client';
38
+ *
39
+ * try {
40
+ * const result = await listAclRecords({
41
+ * page: 0,
42
+ * size: 20,
43
+ * resource_type: 'document'
44
+ * });
45
+ * console.log(`Found ${result.totalElements} records`);
46
+ * } catch (error) {
47
+ * console.error('Failed to list ACL records:', error.message);
48
+ * }
49
+ * ```
44
50
  */
45
- export declare function updateRecord(recordId: string, updateData: UpdateAclRecordRequest, options?: AclOptions): Promise<UpdateAclRecordResponse>;
51
+ export declare function listAclRecords(options?: ListAclRecordsRequest & AclOptions): Promise<{
52
+ content: AclRecord[];
53
+ totalElements: number;
54
+ }>;
46
55
  /**
47
- * Deletes an ACL record by ID.
56
+ * Creates a new ACL record.
48
57
  *
49
- * @param recordId - ACL record ID to delete
50
- * @param options - Optional configuration for the request
51
- * @returns Promise resolving to the deletion result
58
+ * @param request - ACL record creation request
59
+ * @param options - Optional configuration
60
+ * @returns Promise resolving to created ACL record
52
61
  * @throws {ConfigurationError} When required environment variables are missing
53
- * @throws {ApiError} When API request fails or returns invalid response
62
+ * @throws {ApiError} When API request fails
54
63
  * @throws {NetworkError} When network request fails
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * import { createAclRecord } from '@tale/client';
68
+ *
69
+ * try {
70
+ * const record = await createAclRecord({
71
+ * subject_type: 'user',
72
+ * subject_id: 'user123',
73
+ * resource_type: 'document',
74
+ * resource_id: 'doc456',
75
+ * effect_type: 'allow'
76
+ * });
77
+ * console.log('Record created:', record.record_id);
78
+ * } catch (error) {
79
+ * console.error('Failed to create ACL record:', error.message);
80
+ * }
81
+ * ```
55
82
  */
56
- export declare function deleteRecord(recordId: string, options?: AclOptions): Promise<DeleteAclRecordResponse>;
83
+ export declare function createAclRecord(request: CreateAclRecordRequest, options?: AclOptions): Promise<AclRecord>;
57
84
  /**
58
- * Retrieves ACL record information by ID.
85
+ * Batch creates ACL records.
59
86
  *
60
- * @param recordId - ACL record ID to query
61
- * @param options - Optional configuration for the request
62
- * @returns Promise resolving to the ACL record information
87
+ * @param requests - Array of ACL record creation requests
88
+ * @param options - Optional configuration
89
+ * @returns Promise resolving to batch creation response with success/failure details
63
90
  * @throws {ConfigurationError} When required environment variables are missing
64
- * @throws {ApiError} When API request fails or returns invalid response
91
+ * @throws {ApiError} When API request fails
65
92
  * @throws {NetworkError} When network request fails
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * import { batchCreateAclRecords } from '@tale/client';
97
+ *
98
+ * try {
99
+ * const result = await batchCreateAclRecords([
100
+ * {
101
+ * subject_type: 'user',
102
+ * subject_id: 'user1',
103
+ * resource_type: 'document',
104
+ * effect_type: 'allow'
105
+ * },
106
+ * {
107
+ * subject_type: 'user',
108
+ * subject_id: 'user2',
109
+ * resource_type: 'document',
110
+ * effect_type: 'deny'
111
+ * }
112
+ * ]);
113
+ * console.log(`Created ${result.success_count}, Failed ${result.failure_count}`);
114
+ * } catch (error) {
115
+ * console.error('Failed to batch create ACL records:', error.message);
116
+ * }
117
+ * ```
66
118
  */
67
- export declare function getRecordById(recordId: string, options?: AclOptions): Promise<GetAclRecordResponse>;
119
+ export declare function batchCreateAclRecords(requests: CreateAclRecordRequest[], options?: AclOptions): Promise<AclBatchCreateResponse>;
68
120
  /**
69
- * Lists ACL records with pagination and filtering.
121
+ * Updates an existing ACL record.
70
122
  *
71
- * @param options - Optional parameters for pagination, filtering, and configuration
72
- * @returns Promise resolving to paginated ACL record list with metadata
123
+ * @param recordId - Record ID to update
124
+ * @param request - Update request with fields to modify
125
+ * @param options - Optional configuration
126
+ * @returns Promise resolving to updated ACL record
73
127
  * @throws {ConfigurationError} When required environment variables are missing
74
- * @throws {ApiError} When API request fails or returns invalid response
128
+ * @throws {ApiError} When API request fails
75
129
  * @throws {NetworkError} When network request fails
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * import { updateAclRecord } from '@tale/client';
134
+ *
135
+ * try {
136
+ * const record = await updateAclRecord('record_id_here', {
137
+ * effect_type: 'deny',
138
+ * priority: 100
139
+ * });
140
+ * console.log('Record updated:', record.record_id);
141
+ * } catch (error) {
142
+ * console.error('Failed to update ACL record:', error.message);
143
+ * }
144
+ * ```
76
145
  */
77
- export declare function listRecords(options?: ListAclRecordsRequest & AclOptions): Promise<PaginatedResponse<AclRecord>>;
146
+ export declare function updateAclRecord(recordId: string, request: UpdateAclRecordRequest, options?: AclOptions): Promise<AclRecord>;
78
147
  /**
79
- * Creates a new ACL template in the Tale application.
148
+ * Deletes an ACL record.
80
149
  *
81
- * @param templateData - ACL template data to create
82
- * @param options - Optional configuration for the request
83
- * @returns Promise resolving to the created ACL template information
150
+ * @param recordId - Record ID to delete
151
+ * @param options - Optional configuration
152
+ * @returns Promise that resolves when deletion is successful
84
153
  * @throws {ConfigurationError} When required environment variables are missing
85
- * @throws {ApiError} When API request fails or returns invalid response
154
+ * @throws {ApiError} When API request fails
86
155
  * @throws {NetworkError} When network request fails
87
156
  *
88
157
  * @example
89
158
  * ```typescript
90
- * import { createTemplate } from '@tale/client';
159
+ * import { deleteAclRecord } from '@tale/client';
91
160
  *
92
161
  * try {
93
- * const result = await createTemplate({
94
- * template_name: 'User Document Read Template',
95
- * template_code: 'user_doc_read',
96
- * subject_type: 'user',
97
- * resource_type: 'document',
98
- * effect_type: 'allow',
99
- * default_priority: 30,
100
- * description: 'Template for allowing users to read documents'
101
- * });
102
- * console.log('ACL template created:', result.template.template_id);
162
+ * await deleteAclRecord('record_id_here');
163
+ * console.log('ACL record deleted successfully');
103
164
  * } catch (error) {
104
- * console.error('Failed to create ACL template:', error.message);
165
+ * console.error('Failed to delete ACL record:', error.message);
105
166
  * }
106
167
  * ```
107
168
  */
108
- export declare function createTemplate(templateData: CreateAclTemplateRequest, options?: AclOptions): Promise<CreateAclTemplateResponse>;
169
+ export declare function deleteAclRecord(recordId: string, options?: AclOptions): Promise<void>;
109
170
  /**
110
- * Updates an existing ACL template by ID.
171
+ * Gets an ACL template by ID or code.
111
172
  *
112
- * @param templateId - ACL template ID or code to update
113
- * @param updateData - ACL template information to update
114
- * @param options - Optional configuration for the request
115
- * @returns Promise resolving to the updated ACL template information
173
+ * @param templateId - Template ID or code
174
+ * @param options - Optional configuration
175
+ * @returns Promise resolving to ACL template information
116
176
  * @throws {ConfigurationError} When required environment variables are missing
117
- * @throws {ApiError} When API request fails or returns invalid response
177
+ * @throws {ApiError} When API request fails
118
178
  * @throws {NetworkError} When network request fails
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * import { getAclTemplate } from '@tale/client';
183
+ *
184
+ * try {
185
+ * const template = await getAclTemplate('template_code_here');
186
+ * console.log('Template name:', template.template_name);
187
+ * } catch (error) {
188
+ * console.error('Failed to get ACL template:', error.message);
189
+ * }
190
+ * ```
119
191
  */
120
- export declare function updateTemplate(templateId: string, updateData: UpdateAclTemplateRequest, options?: AclOptions): Promise<UpdateAclTemplateResponse>;
192
+ export declare function getAclTemplate(templateId: string, options?: AclOptions): Promise<AclTemplate>;
121
193
  /**
122
- * Deletes an ACL template by ID.
194
+ * Lists ACL templates with pagination and optional filtering.
123
195
  *
124
- * @param templateId - ACL template ID or code to delete
125
- * @param options - Optional configuration for the request
126
- * @returns Promise resolving to the deletion result
196
+ * @param options - Optional parameters for pagination and filtering
197
+ * @returns Promise resolving to paginated ACL template list
127
198
  * @throws {ConfigurationError} When required environment variables are missing
128
- * @throws {ApiError} When API request fails or returns invalid response
199
+ * @throws {ApiError} When API request fails
129
200
  * @throws {NetworkError} When network request fails
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * import { listAclTemplates } from '@tale/client';
205
+ *
206
+ * try {
207
+ * const result = await listAclTemplates({
208
+ * page: 0,
209
+ * size: 20,
210
+ * resource_type: 'document'
211
+ * });
212
+ * console.log(`Found ${result.totalElements} templates`);
213
+ * } catch (error) {
214
+ * console.error('Failed to list ACL templates:', error.message);
215
+ * }
216
+ * ```
130
217
  */
131
- export declare function deleteTemplate(templateId: string, options?: AclOptions): Promise<DeleteAclTemplateResponse>;
218
+ export declare function listAclTemplates(options?: ListAclTemplatesRequest & AclOptions): Promise<{
219
+ content: AclTemplate[];
220
+ totalElements: number;
221
+ }>;
132
222
  /**
133
- * Retrieves ACL template information by ID or code.
223
+ * Creates a new ACL template.
134
224
  *
135
- * @param templateId - ACL template ID or code to query
136
- * @param options - Optional configuration for the request
137
- * @returns Promise resolving to the ACL template information
225
+ * @param request - ACL template creation request
226
+ * @param options - Optional configuration
227
+ * @returns Promise resolving to created ACL template
138
228
  * @throws {ConfigurationError} When required environment variables are missing
139
- * @throws {ApiError} When API request fails or returns invalid response
229
+ * @throws {ApiError} When API request fails
140
230
  * @throws {NetworkError} When network request fails
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * import { createAclTemplate } from '@tale/client';
235
+ *
236
+ * try {
237
+ * const template = await createAclTemplate({
238
+ * template_name: 'Document Access',
239
+ * template_code: 'doc_access',
240
+ * subject_type: 'user',
241
+ * resource_type: 'document',
242
+ * effect_type: 'allow'
243
+ * });
244
+ * console.log('Template created:', template.template_id);
245
+ * } catch (error) {
246
+ * console.error('Failed to create ACL template:', error.message);
247
+ * }
248
+ * ```
141
249
  */
142
- export declare function getTemplateById(templateId: string, options?: AclOptions): Promise<GetAclTemplateResponse>;
250
+ export declare function createAclTemplate(request: CreateAclTemplateRequest, options?: AclOptions): Promise<AclTemplate>;
143
251
  /**
144
- * Lists ACL templates with pagination and filtering.
252
+ * Updates an existing ACL template.
145
253
  *
146
- * @param options - Optional parameters for pagination, filtering, and configuration
147
- * @returns Promise resolving to paginated ACL template list with metadata
254
+ * @param templateId - Template ID or code to update
255
+ * @param request - Update request with fields to modify
256
+ * @param options - Optional configuration
257
+ * @returns Promise resolving to updated ACL template
148
258
  * @throws {ConfigurationError} When required environment variables are missing
149
- * @throws {ApiError} When API request fails or returns invalid response
259
+ * @throws {ApiError} When API request fails
150
260
  * @throws {NetworkError} When network request fails
261
+ *
262
+ * @example
263
+ * ```typescript
264
+ * import { updateAclTemplate } from '@tale/client';
265
+ *
266
+ * try {
267
+ * const template = await updateAclTemplate('template_code_here', {
268
+ * template_name: 'Updated Template Name',
269
+ * effect_type: 'deny'
270
+ * });
271
+ * console.log('Template updated:', template.template_id);
272
+ * } catch (error) {
273
+ * console.error('Failed to update ACL template:', error.message);
274
+ * }
275
+ * ```
151
276
  */
152
- export declare function listTemplates(options?: ListAclTemplatesRequest & AclOptions): Promise<PaginatedResponse<AclTemplate>>;
153
- export type { PaginatedResponse, AclOptions, AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, CreateAclRecordResponse, UpdateAclRecordResponse, DeleteAclRecordResponse, GetAclRecordResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, CreateAclTemplateResponse, UpdateAclTemplateResponse, DeleteAclTemplateResponse, GetAclTemplateResponse } from './types.js';
277
+ export declare function updateAclTemplate(templateId: string, request: UpdateAclTemplateRequest, options?: AclOptions): Promise<AclTemplate>;
154
278
  /**
155
- * ACL 核心工具函数,包含跨应用通用的业务逻辑
279
+ * Deletes an ACL template.
280
+ *
281
+ * @param templateId - Template ID or code to delete
282
+ * @param options - Optional configuration
283
+ * @returns Promise that resolves when deletion is successful
284
+ * @throws {ConfigurationError} When required environment variables are missing
285
+ * @throws {ApiError} When API request fails
286
+ * @throws {NetworkError} When network request fails
287
+ *
288
+ * @example
289
+ * ```typescript
290
+ * import { deleteAclTemplate } from '@tale/client';
291
+ *
292
+ * try {
293
+ * await deleteAclTemplate('template_code_here');
294
+ * console.log('ACL template deleted successfully');
295
+ * } catch (error) {
296
+ * console.error('Failed to delete ACL template:', error.message);
297
+ * }
298
+ * ```
156
299
  */
157
- export declare const AclCoreUtils: {
158
- /**
159
- * 验证优先级范围
160
- */
161
- validatePriority(priority: number): boolean;
162
- /**
163
- * 获取可用的效果类型
164
- */
165
- getEffectTypes(): ("allow" | "deny" | "inherit")[];
166
- /**
167
- * 获取可用的主体类型
168
- */
169
- getSubjectTypes(): ("user" | "role" | "group")[];
170
- };
300
+ export declare function deleteAclTemplate(templateId: string, options?: AclOptions): Promise<void>;