tale-js-sdk 0.1.2 → 0.1.3

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 (48) hide show
  1. package/dist/acl/index.d.ts +170 -0
  2. package/dist/acl/index.js +747 -0
  3. package/dist/acl/types.d.ts +208 -0
  4. package/dist/acl/types.js +1 -0
  5. package/dist/auth/index.d.ts +2 -134
  6. package/dist/auth/index.js +120 -96
  7. package/dist/auth/types.d.ts +122 -0
  8. package/dist/auth/types.js +1 -0
  9. package/dist/common/types.d.ts +76 -0
  10. package/dist/common/types.js +3 -0
  11. package/dist/errors.js +18 -18
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.js +2 -0
  14. package/dist/rbac/acl.d.ts +152 -0
  15. package/dist/rbac/acl.js +723 -0
  16. package/dist/rbac/index.d.ts +2 -0
  17. package/dist/rbac/index.js +2 -0
  18. package/dist/rbac/rbac.d.ts +198 -0
  19. package/dist/rbac/rbac.js +984 -0
  20. package/dist/rbac/types.d.ts +356 -0
  21. package/dist/rbac/types.js +1 -0
  22. package/dist/rbac/user-group.d.ts +122 -0
  23. package/dist/rbac/user-group.js +570 -0
  24. package/dist/status.js +3 -3
  25. package/dist/token.d.ts +1 -1
  26. package/dist/token.js +5 -4
  27. package/dist/user/index.d.ts +2 -142
  28. package/dist/user/index.js +60 -59
  29. package/dist/user/types.d.ts +96 -0
  30. package/dist/user/types.js +1 -0
  31. package/dist/user-group/index.d.ts +230 -0
  32. package/dist/user-group/index.js +560 -0
  33. package/dist/user-group/types.d.ts +61 -0
  34. package/dist/user-group/types.js +1 -0
  35. package/package.json +13 -14
  36. package/dist/auth.d.ts +0 -271
  37. package/dist/auth.js +0 -461
  38. package/dist/client.d.ts +0 -20
  39. package/dist/client.js +0 -62
  40. package/dist/info.d.ts +0 -9
  41. package/dist/info.js +0 -18
  42. package/dist/package.json +0 -36
  43. package/dist/src/index.d.ts +0 -1
  44. package/dist/src/index.js +0 -1
  45. package/dist/src/info.d.ts +0 -6
  46. package/dist/src/info.js +0 -4
  47. package/dist/user.d.ts +0 -242
  48. package/dist/user.js +0 -331
@@ -0,0 +1,3 @@
1
+ // ==================== Common Types ====================
2
+ // This file contains shared type definitions used across multiple modules
3
+ export {};
package/dist/errors.js CHANGED
@@ -11,7 +11,7 @@ export class TaleSdkError extends Error {
11
11
  this.statusCode = statusCode;
12
12
  this.name = this.constructor.name;
13
13
  // Maintains proper stack trace for where our error was thrown (only available on V8)
14
- if (typeof Error.captureStackTrace === 'function') {
14
+ if (typeof Error.captureStackTrace === "function") {
15
15
  Error.captureStackTrace(this, this.constructor);
16
16
  }
17
17
  }
@@ -30,8 +30,8 @@ export class TaleSdkError extends Error {
30
30
  }
31
31
  export class ConfigurationError extends TaleSdkError {
32
32
  constructor(message) {
33
- super(message, 'CONFIGURATION_ERROR');
34
- this.name = 'ConfigurationError';
33
+ super(message, "CONFIGURATION_ERROR");
34
+ this.name = "ConfigurationError";
35
35
  }
36
36
  getUserMessage() {
37
37
  return `Configuration error: ${this.message}`;
@@ -39,9 +39,9 @@ export class ConfigurationError extends TaleSdkError {
39
39
  }
40
40
  export class ApiError extends TaleSdkError {
41
41
  constructor(message, statusCode, apiCode) {
42
- const code = apiCode ? `API_ERROR_${apiCode}` : 'API_ERROR';
42
+ const code = apiCode ? `API_ERROR_${apiCode}` : "API_ERROR";
43
43
  super(message, code, statusCode);
44
- this.name = 'ApiError';
44
+ this.name = "ApiError";
45
45
  }
46
46
  getUserMessage() {
47
47
  return `API request failed: ${this.message}`;
@@ -49,8 +49,8 @@ export class ApiError extends TaleSdkError {
49
49
  }
50
50
  export class EnvironmentError extends TaleSdkError {
51
51
  constructor(message) {
52
- super(message, 'ENVIRONMENT_ERROR');
53
- this.name = 'EnvironmentError';
52
+ super(message, "ENVIRONMENT_ERROR");
53
+ this.name = "EnvironmentError";
54
54
  }
55
55
  getUserMessage() {
56
56
  return `Environment error: ${this.message}`;
@@ -58,8 +58,8 @@ export class EnvironmentError extends TaleSdkError {
58
58
  }
59
59
  export class TokenError extends TaleSdkError {
60
60
  constructor(message, code) {
61
- super(message, code || 'TOKEN_ERROR');
62
- this.name = 'TokenError';
61
+ super(message, code || "TOKEN_ERROR");
62
+ this.name = "TokenError";
63
63
  }
64
64
  getUserMessage() {
65
65
  return `Token error: ${this.message}`;
@@ -67,8 +67,8 @@ export class TokenError extends TaleSdkError {
67
67
  }
68
68
  export class NetworkError extends TaleSdkError {
69
69
  constructor(message) {
70
- super(message, 'NETWORK_ERROR');
71
- this.name = 'NetworkError';
70
+ super(message, "NETWORK_ERROR");
71
+ this.name = "NetworkError";
72
72
  }
73
73
  getUserMessage() {
74
74
  return `Network error: ${this.message}`;
@@ -76,8 +76,8 @@ export class NetworkError extends TaleSdkError {
76
76
  }
77
77
  export class ValidationError extends TaleSdkError {
78
78
  constructor(message, field) {
79
- super(message, 'VALIDATION_ERROR');
80
- this.name = 'ValidationError';
79
+ super(message, "VALIDATION_ERROR");
80
+ this.name = "ValidationError";
81
81
  this.field = field;
82
82
  }
83
83
  getUserMessage() {
@@ -95,15 +95,15 @@ export function isTaleSdkError(error) {
95
95
  /**
96
96
  * Utility function to create an appropriate error from unknown errors
97
97
  */
98
- export function createErrorFromUnknown(error, defaultMessage = 'Unknown error occurred') {
98
+ export function createErrorFromUnknown(error, defaultMessage = "Unknown error occurred") {
99
99
  if (isTaleSdkError(error)) {
100
100
  return error;
101
101
  }
102
102
  if (error instanceof Error) {
103
- return new TaleSdkError(error.message, 'UNKNOWN_ERROR');
103
+ return new TaleSdkError(error.message, "UNKNOWN_ERROR");
104
104
  }
105
- if (typeof error === 'string') {
106
- return new TaleSdkError(error, 'UNKNOWN_ERROR');
105
+ if (typeof error === "string") {
106
+ return new TaleSdkError(error, "UNKNOWN_ERROR");
107
107
  }
108
- return new TaleSdkError(defaultMessage, 'UNKNOWN_ERROR');
108
+ return new TaleSdkError(defaultMessage, "UNKNOWN_ERROR");
109
109
  }
package/dist/index.d.ts CHANGED
@@ -2,4 +2,6 @@ export * from "./status.js";
2
2
  export * from "./token.js";
3
3
  export * from "./user/index.js";
4
4
  export * from "./auth/index.js";
5
+ export * from "./user-group/index.js";
5
6
  export * from "./errors.js";
7
+ export * from "./common/types.js";
package/dist/index.js CHANGED
@@ -2,4 +2,6 @@ export * from "./status.js";
2
2
  export * from "./token.js";
3
3
  export * from "./user/index.js";
4
4
  export * from "./auth/index.js";
5
+ export * from "./user-group/index.js";
5
6
  export * from "./errors.js";
7
+ export * from "./common/types.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>>;