@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/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified error classes for the Tale SDK
|
|
3
|
+
*
|
|
4
|
+
* This module provides a consistent error handling approach across the entire SDK.
|
|
5
|
+
* All custom errors extend from TaleSdkError for proper error classification and handling.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TaleSdkError extends Error {
|
|
8
|
+
readonly code?: string | undefined;
|
|
9
|
+
readonly statusCode?: number | undefined;
|
|
10
|
+
constructor(message: string, code?: string | undefined, statusCode?: number | undefined);
|
|
11
|
+
/**
|
|
12
|
+
* Check if this error matches a specific error code
|
|
13
|
+
*/
|
|
14
|
+
hasCode(code: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Get a user-friendly error message
|
|
17
|
+
*/
|
|
18
|
+
getUserMessage(): string;
|
|
19
|
+
}
|
|
20
|
+
export declare class ConfigurationError extends TaleSdkError {
|
|
21
|
+
constructor(message: string);
|
|
22
|
+
getUserMessage(): string;
|
|
23
|
+
}
|
|
24
|
+
export declare class ApiError extends TaleSdkError {
|
|
25
|
+
constructor(message: string, statusCode?: number, apiCode?: string | number);
|
|
26
|
+
getUserMessage(): string;
|
|
27
|
+
}
|
|
28
|
+
export declare class EnvironmentError extends TaleSdkError {
|
|
29
|
+
constructor(message: string);
|
|
30
|
+
getUserMessage(): string;
|
|
31
|
+
}
|
|
32
|
+
export declare class TokenError extends TaleSdkError {
|
|
33
|
+
constructor(message: string, code?: string);
|
|
34
|
+
getUserMessage(): string;
|
|
35
|
+
}
|
|
36
|
+
export declare class NetworkError extends TaleSdkError {
|
|
37
|
+
constructor(message: string);
|
|
38
|
+
getUserMessage(): string;
|
|
39
|
+
}
|
|
40
|
+
export declare class ValidationError extends TaleSdkError {
|
|
41
|
+
constructor(message: string, field?: string);
|
|
42
|
+
readonly field?: string;
|
|
43
|
+
getUserMessage(): string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Utility function to check if an error is a TaleSdkError
|
|
47
|
+
*/
|
|
48
|
+
export declare function isTaleSdkError(error: unknown): error is TaleSdkError;
|
|
49
|
+
/**
|
|
50
|
+
* Utility function to create an appropriate error from unknown errors
|
|
51
|
+
*/
|
|
52
|
+
export declare function createErrorFromUnknown(error: unknown, defaultMessage?: string): TaleSdkError;
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified error classes for the Tale SDK
|
|
3
|
+
*
|
|
4
|
+
* This module provides a consistent error handling approach across the entire SDK.
|
|
5
|
+
* All custom errors extend from TaleSdkError for proper error classification and handling.
|
|
6
|
+
*/
|
|
7
|
+
export class TaleSdkError extends Error {
|
|
8
|
+
constructor(message, code, statusCode) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.statusCode = statusCode;
|
|
12
|
+
this.name = this.constructor.name;
|
|
13
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
14
|
+
if (typeof Error.captureStackTrace === "function") {
|
|
15
|
+
Error.captureStackTrace(this, this.constructor);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if this error matches a specific error code
|
|
20
|
+
*/
|
|
21
|
+
hasCode(code) {
|
|
22
|
+
return this.code === code;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get a user-friendly error message
|
|
26
|
+
*/
|
|
27
|
+
getUserMessage() {
|
|
28
|
+
return this.message;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class ConfigurationError extends TaleSdkError {
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message, "CONFIGURATION_ERROR");
|
|
34
|
+
this.name = "ConfigurationError";
|
|
35
|
+
}
|
|
36
|
+
getUserMessage() {
|
|
37
|
+
return `Configuration error: ${this.message}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export class ApiError extends TaleSdkError {
|
|
41
|
+
constructor(message, statusCode, apiCode) {
|
|
42
|
+
const code = apiCode ? `API_ERROR_${apiCode}` : "API_ERROR";
|
|
43
|
+
super(message, code, statusCode);
|
|
44
|
+
this.name = "ApiError";
|
|
45
|
+
}
|
|
46
|
+
getUserMessage() {
|
|
47
|
+
return `API request failed: ${this.message}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class EnvironmentError extends TaleSdkError {
|
|
51
|
+
constructor(message) {
|
|
52
|
+
super(message, "ENVIRONMENT_ERROR");
|
|
53
|
+
this.name = "EnvironmentError";
|
|
54
|
+
}
|
|
55
|
+
getUserMessage() {
|
|
56
|
+
return `Environment error: ${this.message}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export class TokenError extends TaleSdkError {
|
|
60
|
+
constructor(message, code) {
|
|
61
|
+
super(message, code || "TOKEN_ERROR");
|
|
62
|
+
this.name = "TokenError";
|
|
63
|
+
}
|
|
64
|
+
getUserMessage() {
|
|
65
|
+
return `Token error: ${this.message}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class NetworkError extends TaleSdkError {
|
|
69
|
+
constructor(message) {
|
|
70
|
+
super(message, "NETWORK_ERROR");
|
|
71
|
+
this.name = "NetworkError";
|
|
72
|
+
}
|
|
73
|
+
getUserMessage() {
|
|
74
|
+
return `Network error: ${this.message}`;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export class ValidationError extends TaleSdkError {
|
|
78
|
+
constructor(message, field) {
|
|
79
|
+
super(message, "VALIDATION_ERROR");
|
|
80
|
+
this.name = "ValidationError";
|
|
81
|
+
this.field = field;
|
|
82
|
+
}
|
|
83
|
+
getUserMessage() {
|
|
84
|
+
return this.field
|
|
85
|
+
? `Validation error for '${this.field}': ${this.message}`
|
|
86
|
+
: `Validation error: ${this.message}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Utility function to check if an error is a TaleSdkError
|
|
91
|
+
*/
|
|
92
|
+
export function isTaleSdkError(error) {
|
|
93
|
+
return error instanceof TaleSdkError;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Utility function to create an appropriate error from unknown errors
|
|
97
|
+
*/
|
|
98
|
+
export function createErrorFromUnknown(error, defaultMessage = "Unknown error occurred") {
|
|
99
|
+
if (isTaleSdkError(error)) {
|
|
100
|
+
return error;
|
|
101
|
+
}
|
|
102
|
+
if (error instanceof Error) {
|
|
103
|
+
return new TaleSdkError(error.message, "UNKNOWN_ERROR");
|
|
104
|
+
}
|
|
105
|
+
if (typeof error === "string") {
|
|
106
|
+
return new TaleSdkError(error, "UNKNOWN_ERROR");
|
|
107
|
+
}
|
|
108
|
+
return new TaleSdkError(defaultMessage, "UNKNOWN_ERROR");
|
|
109
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./status.js";
|
|
2
|
+
export * from "./token.js";
|
|
3
|
+
export * from "./user/index.js";
|
|
4
|
+
export * from "./auth/index.js";
|
|
5
|
+
export * from "./user-group/index.js";
|
|
6
|
+
export * from "./rbac/index.js";
|
|
7
|
+
export * from "./acl/index.js";
|
|
8
|
+
export * from "./user-attribute/index.js";
|
|
9
|
+
export * from "./task-type/index.js";
|
|
10
|
+
export * from "./task/index.js";
|
|
11
|
+
export * from "./cms/index.js";
|
|
12
|
+
export * from "./errors.js";
|
|
13
|
+
export type { CommonOptions, PageResponse, UserGroup, Role, Privilege, AppInfo, User, Attachment, } from "./common/types.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from "./status.js";
|
|
2
|
+
export * from "./token.js";
|
|
3
|
+
export * from "./user/index.js";
|
|
4
|
+
export * from "./auth/index.js";
|
|
5
|
+
export * from "./user-group/index.js";
|
|
6
|
+
export * from "./rbac/index.js";
|
|
7
|
+
export * from "./acl/index.js";
|
|
8
|
+
export * from "./user-attribute/index.js";
|
|
9
|
+
export * from "./task-type/index.js";
|
|
10
|
+
export * from "./task/index.js";
|
|
11
|
+
export * from "./cms/index.js";
|
|
12
|
+
export * from "./errors.js";
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type { AclRecord, CreateAclRecordRequest, UpdateAclRecordRequest, ListAclRecordsRequest, CreateAclRecordResponse, UpdateAclRecordResponse, DeleteAclRecordResponse, GetAclRecordResponse, AclTemplate, CreateAclTemplateRequest, UpdateAclTemplateRequest, ListAclTemplatesRequest, CreateAclTemplateResponse, UpdateAclTemplateResponse, DeleteAclTemplateResponse, GetAclTemplateResponse, PaginatedResponse, AclOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a new ACL record in the Tale application.
|
|
4
|
+
*
|
|
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
|
|
8
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
9
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
10
|
+
* @throws {NetworkError} When network request fails
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { acl } from '@tale/client';
|
|
15
|
+
*
|
|
16
|
+
* try {
|
|
17
|
+
* const result = await acl.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);
|
|
28
|
+
* } catch (error) {
|
|
29
|
+
* console.error('Failed to create ACL record:', error.message);
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function createRecord(recordData: CreateAclRecordRequest, options?: AclOptions): Promise<CreateAclRecordResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* Updates an existing ACL record by ID.
|
|
36
|
+
*
|
|
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
|
|
41
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
42
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
43
|
+
* @throws {NetworkError} When network request fails
|
|
44
|
+
*/
|
|
45
|
+
export declare function updateRecord(recordId: string, updateData: UpdateAclRecordRequest, options?: AclOptions): Promise<UpdateAclRecordResponse>;
|
|
46
|
+
/**
|
|
47
|
+
* Deletes an ACL record by ID.
|
|
48
|
+
*
|
|
49
|
+
* @param recordId - ACL record ID to delete
|
|
50
|
+
* @param options - Optional configuration for the request
|
|
51
|
+
* @returns Promise resolving to the deletion result
|
|
52
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
53
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
54
|
+
* @throws {NetworkError} When network request fails
|
|
55
|
+
*/
|
|
56
|
+
export declare function deleteRecord(recordId: string, options?: AclOptions): Promise<DeleteAclRecordResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Retrieves ACL record information by ID.
|
|
59
|
+
*
|
|
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
|
|
63
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
64
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
65
|
+
* @throws {NetworkError} When network request fails
|
|
66
|
+
*/
|
|
67
|
+
export declare function getRecordById(recordId: string, options?: AclOptions): Promise<GetAclRecordResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* Lists ACL records with pagination and filtering.
|
|
70
|
+
*
|
|
71
|
+
* @param options - Optional parameters for pagination, filtering, and configuration
|
|
72
|
+
* @returns Promise resolving to paginated ACL record list with metadata
|
|
73
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
74
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
75
|
+
* @throws {NetworkError} When network request fails
|
|
76
|
+
*/
|
|
77
|
+
export declare function listRecords(options?: ListAclRecordsRequest & AclOptions): Promise<PaginatedResponse<AclRecord>>;
|
|
78
|
+
/**
|
|
79
|
+
* Creates a new ACL template in the Tale application.
|
|
80
|
+
*
|
|
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
|
|
84
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
85
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
86
|
+
* @throws {NetworkError} When network request fails
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* import { acl } from '@tale/client';
|
|
91
|
+
*
|
|
92
|
+
* try {
|
|
93
|
+
* const result = await acl.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);
|
|
103
|
+
* } catch (error) {
|
|
104
|
+
* console.error('Failed to create ACL template:', error.message);
|
|
105
|
+
* }
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare function createTemplate(templateData: CreateAclTemplateRequest, options?: AclOptions): Promise<CreateAclTemplateResponse>;
|
|
109
|
+
/**
|
|
110
|
+
* Updates an existing ACL template by ID.
|
|
111
|
+
*
|
|
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
|
|
116
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
117
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
118
|
+
* @throws {NetworkError} When network request fails
|
|
119
|
+
*/
|
|
120
|
+
export declare function updateTemplate(templateId: string, updateData: UpdateAclTemplateRequest, options?: AclOptions): Promise<UpdateAclTemplateResponse>;
|
|
121
|
+
/**
|
|
122
|
+
* Deletes an ACL template by ID.
|
|
123
|
+
*
|
|
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
|
|
127
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
128
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
129
|
+
* @throws {NetworkError} When network request fails
|
|
130
|
+
*/
|
|
131
|
+
export declare function deleteTemplate(templateId: string, options?: AclOptions): Promise<DeleteAclTemplateResponse>;
|
|
132
|
+
/**
|
|
133
|
+
* Retrieves ACL template information by ID or code.
|
|
134
|
+
*
|
|
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
|
|
138
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
139
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
140
|
+
* @throws {NetworkError} When network request fails
|
|
141
|
+
*/
|
|
142
|
+
export declare function getTemplateById(templateId: string, options?: AclOptions): Promise<GetAclTemplateResponse>;
|
|
143
|
+
/**
|
|
144
|
+
* Lists ACL templates with pagination and filtering.
|
|
145
|
+
*
|
|
146
|
+
* @param options - Optional parameters for pagination, filtering, and configuration
|
|
147
|
+
* @returns Promise resolving to paginated ACL template list with metadata
|
|
148
|
+
* @throws {ConfigurationError} When required environment variables are missing
|
|
149
|
+
* @throws {ApiError} When API request fails or returns invalid response
|
|
150
|
+
* @throws {NetworkError} When network request fails
|
|
151
|
+
*/
|
|
152
|
+
export declare function listTemplates(options?: ListAclTemplatesRequest & AclOptions): Promise<PaginatedResponse<AclTemplate>>;
|