zudello-chat-sdk 0.1.1

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 (116) hide show
  1. package/README.md +325 -0
  2. package/dist/cjs/client.js +124 -0
  3. package/dist/cjs/client.js.map +1 -0
  4. package/dist/cjs/constants.js +578 -0
  5. package/dist/cjs/constants.js.map +1 -0
  6. package/dist/cjs/errors.js +195 -0
  7. package/dist/cjs/errors.js.map +1 -0
  8. package/dist/cjs/http/client.js +218 -0
  9. package/dist/cjs/http/client.js.map +1 -0
  10. package/dist/cjs/index.js +80 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/modules/approvals.js +90 -0
  13. package/dist/cjs/modules/approvals.js.map +1 -0
  14. package/dist/cjs/modules/automation.js +110 -0
  15. package/dist/cjs/modules/automation.js.map +1 -0
  16. package/dist/cjs/modules/config.js +264 -0
  17. package/dist/cjs/modules/config.js.map +1 -0
  18. package/dist/cjs/modules/datasets.js +103 -0
  19. package/dist/cjs/modules/datasets.js.map +1 -0
  20. package/dist/cjs/modules/exports.js +126 -0
  21. package/dist/cjs/modules/exports.js.map +1 -0
  22. package/dist/cjs/modules/inboxes.js +99 -0
  23. package/dist/cjs/modules/inboxes.js.map +1 -0
  24. package/dist/cjs/modules/models.js +105 -0
  25. package/dist/cjs/modules/models.js.map +1 -0
  26. package/dist/cjs/modules/org.js +335 -0
  27. package/dist/cjs/modules/org.js.map +1 -0
  28. package/dist/cjs/modules/quick-actions.js +71 -0
  29. package/dist/cjs/modules/quick-actions.js.map +1 -0
  30. package/dist/cjs/modules/resources.js +236 -0
  31. package/dist/cjs/modules/resources.js.map +1 -0
  32. package/dist/cjs/modules/search.js +188 -0
  33. package/dist/cjs/modules/search.js.map +1 -0
  34. package/dist/cjs/modules/sentences.js +155 -0
  35. package/dist/cjs/modules/sentences.js.map +1 -0
  36. package/dist/cjs/modules/users.js +120 -0
  37. package/dist/cjs/modules/users.js.map +1 -0
  38. package/dist/cjs/types.js +8 -0
  39. package/dist/cjs/types.js.map +1 -0
  40. package/dist/esm/client.js +120 -0
  41. package/dist/esm/client.js.map +1 -0
  42. package/dist/esm/constants.js +565 -0
  43. package/dist/esm/constants.js.map +1 -0
  44. package/dist/esm/errors.js +183 -0
  45. package/dist/esm/errors.js.map +1 -0
  46. package/dist/esm/http/client.js +214 -0
  47. package/dist/esm/http/client.js.map +1 -0
  48. package/dist/esm/index.js +49 -0
  49. package/dist/esm/index.js.map +1 -0
  50. package/dist/esm/modules/approvals.js +86 -0
  51. package/dist/esm/modules/approvals.js.map +1 -0
  52. package/dist/esm/modules/automation.js +106 -0
  53. package/dist/esm/modules/automation.js.map +1 -0
  54. package/dist/esm/modules/config.js +260 -0
  55. package/dist/esm/modules/config.js.map +1 -0
  56. package/dist/esm/modules/datasets.js +99 -0
  57. package/dist/esm/modules/datasets.js.map +1 -0
  58. package/dist/esm/modules/exports.js +122 -0
  59. package/dist/esm/modules/exports.js.map +1 -0
  60. package/dist/esm/modules/inboxes.js +95 -0
  61. package/dist/esm/modules/inboxes.js.map +1 -0
  62. package/dist/esm/modules/models.js +101 -0
  63. package/dist/esm/modules/models.js.map +1 -0
  64. package/dist/esm/modules/org.js +331 -0
  65. package/dist/esm/modules/org.js.map +1 -0
  66. package/dist/esm/modules/quick-actions.js +67 -0
  67. package/dist/esm/modules/quick-actions.js.map +1 -0
  68. package/dist/esm/modules/resources.js +232 -0
  69. package/dist/esm/modules/resources.js.map +1 -0
  70. package/dist/esm/modules/search.js +184 -0
  71. package/dist/esm/modules/search.js.map +1 -0
  72. package/dist/esm/modules/sentences.js +151 -0
  73. package/dist/esm/modules/sentences.js.map +1 -0
  74. package/dist/esm/modules/users.js +116 -0
  75. package/dist/esm/modules/users.js.map +1 -0
  76. package/dist/esm/types.js +7 -0
  77. package/dist/esm/types.js.map +1 -0
  78. package/dist/types/client.d.ts +105 -0
  79. package/dist/types/client.d.ts.map +1 -0
  80. package/dist/types/constants.d.ts +505 -0
  81. package/dist/types/constants.d.ts.map +1 -0
  82. package/dist/types/errors.d.ts +143 -0
  83. package/dist/types/errors.d.ts.map +1 -0
  84. package/dist/types/http/client.d.ts +42 -0
  85. package/dist/types/http/client.d.ts.map +1 -0
  86. package/dist/types/index.d.ts +37 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/modules/approvals.d.ts +62 -0
  89. package/dist/types/modules/approvals.d.ts.map +1 -0
  90. package/dist/types/modules/automation.d.ts +79 -0
  91. package/dist/types/modules/automation.d.ts.map +1 -0
  92. package/dist/types/modules/config.d.ts +173 -0
  93. package/dist/types/modules/config.d.ts.map +1 -0
  94. package/dist/types/modules/datasets.d.ts +55 -0
  95. package/dist/types/modules/datasets.d.ts.map +1 -0
  96. package/dist/types/modules/exports.d.ts +76 -0
  97. package/dist/types/modules/exports.d.ts.map +1 -0
  98. package/dist/types/modules/inboxes.d.ts +91 -0
  99. package/dist/types/modules/inboxes.d.ts.map +1 -0
  100. package/dist/types/modules/models.d.ts +91 -0
  101. package/dist/types/modules/models.d.ts.map +1 -0
  102. package/dist/types/modules/org.d.ts +122 -0
  103. package/dist/types/modules/org.d.ts.map +1 -0
  104. package/dist/types/modules/quick-actions.d.ts +58 -0
  105. package/dist/types/modules/quick-actions.d.ts.map +1 -0
  106. package/dist/types/modules/resources.d.ts +111 -0
  107. package/dist/types/modules/resources.d.ts.map +1 -0
  108. package/dist/types/modules/search.d.ts +72 -0
  109. package/dist/types/modules/search.d.ts.map +1 -0
  110. package/dist/types/modules/sentences.d.ts +105 -0
  111. package/dist/types/modules/sentences.d.ts.map +1 -0
  112. package/dist/types/modules/users.d.ts +65 -0
  113. package/dist/types/modules/users.d.ts.map +1 -0
  114. package/dist/types/types.d.ts +2056 -0
  115. package/dist/types/types.d.ts.map +1 -0
  116. package/package.json +67 -0
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Resources Module
3
+ *
4
+ * Methods for creating, updating, and managing Zudello resources.
5
+ */
6
+ /**
7
+ * Resource mutation operations for Zudello.
8
+ */
9
+ export class ResourcesModule {
10
+ http;
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ /**
15
+ * Create a new resource.
16
+ *
17
+ * @param model - The model name (e.g., 'Transaction', 'Supplier')
18
+ * @param options - Creation options including data
19
+ * @returns Promise resolving to the created resource
20
+ *
21
+ * @example
22
+ * const supplier = await client.resources.create('Supplier', {
23
+ * data: {
24
+ * trading_name: 'ACME Corp',
25
+ * code: 'SUP-001',
26
+ * external_id: 'ERP-SUP-001'
27
+ * }
28
+ * });
29
+ */
30
+ async create(model, options) {
31
+ const requestBody = {
32
+ simplified: false,
33
+ clear_nulls: false,
34
+ data: [{
35
+ model,
36
+ data: options.data,
37
+ fetch: options.fetch ?? false,
38
+ create: true,
39
+ update: false,
40
+ replace: false,
41
+ submit: options.submit ?? false,
42
+ enrich: options.enrich ?? false,
43
+ extracted_event: false,
44
+ update_status: false,
45
+ ...(options.dryRun && { dry_run: true }),
46
+ }],
47
+ };
48
+ const response = await this.http.request('POST', '/team-data/v1/resources/update_or_create', requestBody);
49
+ const result = response.resources?.[0];
50
+ if (!result?.success) {
51
+ return {
52
+ success: false,
53
+ model,
54
+ error: result?.message || 'Create failed',
55
+ };
56
+ }
57
+ return {
58
+ success: true,
59
+ model: result.model || model,
60
+ data: result.data,
61
+ };
62
+ }
63
+ /**
64
+ * Update an existing resource.
65
+ *
66
+ * @param model - The model name (e.g., 'Transaction', 'Supplier')
67
+ * @param identifier - Either { uuid: string } or { externalId: string }
68
+ * @param options - Update options including data
69
+ * @returns Promise resolving to the updated resource
70
+ *
71
+ * @example
72
+ * const updated = await client.resources.update(
73
+ * 'Supplier',
74
+ * { uuid: 'supplier-uuid' },
75
+ * { data: { trading_name: 'ACME Corporation' } }
76
+ * );
77
+ */
78
+ async update(model, identifier, options) {
79
+ const data = { ...options.data };
80
+ if ('uuid' in identifier) {
81
+ data.uuid = identifier.uuid;
82
+ }
83
+ else {
84
+ data.external_id = identifier.externalId;
85
+ }
86
+ const requestBody = {
87
+ simplified: false,
88
+ clear_nulls: false,
89
+ data: [{
90
+ model,
91
+ data,
92
+ fetch: options.fetch ?? false,
93
+ create: false,
94
+ update: true,
95
+ replace: options.replace ?? false,
96
+ submit: options.submit ?? false,
97
+ enrich: false,
98
+ extracted_event: false,
99
+ update_status: options.updateStatus ?? false,
100
+ ...(options.dryRun && { dry_run: true }),
101
+ }],
102
+ };
103
+ const response = await this.http.request('POST', '/team-data/v1/resources/update_or_create', requestBody);
104
+ const result = response.resources?.[0];
105
+ if (!result?.success) {
106
+ return {
107
+ success: false,
108
+ model,
109
+ error: result?.message || 'Update failed',
110
+ };
111
+ }
112
+ return {
113
+ success: true,
114
+ model: result.model || model,
115
+ data: result.data,
116
+ };
117
+ }
118
+ /**
119
+ * Fetch multiple resources in a single batch request.
120
+ *
121
+ * @param requests - Array of resource fetch requests
122
+ * @param options - Optional batch options
123
+ * @returns Promise resolving to batch fetch results
124
+ *
125
+ * @example
126
+ * const results = await client.resources.getMany([
127
+ * { model: 'Supplier', uuid: 'sup-uuid-1' },
128
+ * { model: 'Supplier', uuid: 'sup-uuid-2' },
129
+ * { model: 'Item', external_id: 'ITEM-001' }
130
+ * ]);
131
+ */
132
+ async getMany(requests, options = {}) {
133
+ const params = new URLSearchParams();
134
+ if (options.simplified)
135
+ params.set('simplified', 'true');
136
+ if (options.activeOnly !== false)
137
+ params.set('active_only', 'true');
138
+ if (options.includeNulls !== false)
139
+ params.set('include_nulls', 'true');
140
+ const requestBody = {
141
+ data: requests.map(req => ({
142
+ model: req.model,
143
+ ...(req.uuid && { uuid: req.uuid }),
144
+ ...(req.external_id && { external_id: req.external_id }),
145
+ fetch_details: req.fetch_details ?? true,
146
+ ...(req.include_models && { include_models: req.include_models }),
147
+ ...(req.exclude_models && { exclude_models: req.exclude_models }),
148
+ })),
149
+ };
150
+ const response = await this.http.request('POST', `/team-data/v1/resources/get?${params.toString()}`, requestBody);
151
+ return {
152
+ success: response.status === 'success',
153
+ results: response.resources ?? [],
154
+ };
155
+ }
156
+ /**
157
+ * Update or create multiple resources in a single batch request.
158
+ *
159
+ * @param requests - Array of update/create requests
160
+ * @param options - Optional batch options
161
+ * @returns Promise resolving to batch operation results
162
+ *
163
+ * @example
164
+ * const results = await client.resources.upsertMany([
165
+ * { model: 'Supplier', data: { external_id: 'SUP-001', trading_name: 'ACME' } },
166
+ * { model: 'Supplier', data: { external_id: 'SUP-002', trading_name: 'Widget Co' } }
167
+ * ]);
168
+ */
169
+ async upsertMany(requests, options = {}) {
170
+ const params = new URLSearchParams();
171
+ if (options.batch)
172
+ params.set('batch', 'true');
173
+ if (options.simplified)
174
+ params.set('simplified', 'true');
175
+ if (options.dryRun)
176
+ params.set('dry_run', 'true');
177
+ if (options.includeNulls !== false)
178
+ params.set('include_nulls', 'true');
179
+ if (options.clearNulls)
180
+ params.set('clear_nulls', 'true');
181
+ if (options.migration)
182
+ params.set('migration', 'true');
183
+ const requestBody = {
184
+ simplified: options.simplified ?? false,
185
+ clear_nulls: options.clearNulls ?? false,
186
+ data: requests.map(req => ({
187
+ model: req.model,
188
+ data: req.data,
189
+ fetch: req.fetch ?? false,
190
+ create: req.create ?? true,
191
+ update: req.update ?? true,
192
+ replace: req.replace ?? false,
193
+ submit: req.submit ?? false,
194
+ enrich: req.enrich ?? false,
195
+ extracted_event: false,
196
+ update_status: false,
197
+ ...(req.dry_run && { dry_run: true }),
198
+ })),
199
+ };
200
+ const response = await this.http.request('POST', `/team-data/v1/resources/update_or_create?${params.toString()}`, requestBody);
201
+ // Batch mode returns task_id
202
+ if (options.batch && response.task_id) {
203
+ return {
204
+ success: true,
205
+ results: [],
206
+ taskId: response.task_id,
207
+ };
208
+ }
209
+ return {
210
+ success: response.status === 'success',
211
+ results: response.resources ?? [],
212
+ };
213
+ }
214
+ /**
215
+ * Get audit history for a resource.
216
+ *
217
+ * @param model - The model name (e.g., 'Transaction')
218
+ * @param uuid - The resource UUID
219
+ * @returns Promise resolving to array of audit events
220
+ *
221
+ * @example
222
+ * const history = await client.resources.getHistory('Transaction', 'invoice-uuid');
223
+ * for (const event of history.data ?? []) {
224
+ * console.log(`${event.event_type} at ${event.timestamp} by ${event.user?.name}`);
225
+ * }
226
+ */
227
+ async getHistory(model, uuid) {
228
+ const response = await this.http.request('GET', `/audit/v1/audit/history/${encodeURIComponent(model)}/${encodeURIComponent(uuid)}`);
229
+ return { success: true, data: response.events ?? [] };
230
+ }
231
+ }
232
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/modules/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Search Module
3
+ *
4
+ * Methods for searching, listing, and fetching Zudello resources.
5
+ */
6
+ /**
7
+ * Search and retrieval operations for Zudello resources.
8
+ */
9
+ export class SearchModule {
10
+ http;
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ /**
15
+ * Search for resources matching the given criteria.
16
+ *
17
+ * @param options - Search options including model, filters, and pagination
18
+ * @returns Promise resolving to search results
19
+ *
20
+ * @example
21
+ * // Find all pending invoices over $1000
22
+ * const invoices = await client.search.query({
23
+ * model: 'Transaction',
24
+ * module: 'PURCHASING',
25
+ * submodule: 'INVOICE',
26
+ * filter: { status__in: ['REVIEW', 'APPROVAL'], total__gt: 1000 },
27
+ * select: ['uuid', 'document_number', 'total', 'date_due'],
28
+ * order_by: ['-total']
29
+ * });
30
+ */
31
+ async query(options) {
32
+ // Build filter with module/submodule if provided
33
+ const filter = { ...options.filter };
34
+ if (options.module) {
35
+ filter.module = options.module;
36
+ }
37
+ if (options.submodule) {
38
+ filter.submodule = options.submodule;
39
+ }
40
+ const requestBody = {
41
+ model: options.model,
42
+ offset: options.offset ?? 0,
43
+ limit: options.limit ?? 100,
44
+ select: options.select ?? ['uuid', 'status', 'module', 'submodule', 'created_at', 'updated_at'],
45
+ order_by: options.order_by ?? ['-created_at'],
46
+ distinct: options.distinct ?? [],
47
+ filter,
48
+ exclude: options.exclude ?? {},
49
+ annotate: options.annotate ?? {},
50
+ ...(options.search && { search: options.search }),
51
+ ...(options.aggregate && { aggregate: options.aggregate }),
52
+ };
53
+ const queryParams = new URLSearchParams();
54
+ if (options.activeOnly !== false) {
55
+ queryParams.set('active_only', 'true');
56
+ }
57
+ queryParams.set('paginate', 'true');
58
+ const endpoint = `/team-data/v1/resources/search?${queryParams.toString()}`;
59
+ const response = await this.http.request('POST', endpoint, requestBody);
60
+ // Handle API error response
61
+ if (response.success === false) {
62
+ return {
63
+ success: false,
64
+ model: options.model,
65
+ error: response.message || response.error || 'Search failed',
66
+ };
67
+ }
68
+ return {
69
+ success: true,
70
+ model: response.model || options.model,
71
+ data: response.data,
72
+ metadata: {
73
+ count: response.count ?? response.total_count,
74
+ offset: response.offset,
75
+ limit: response.limit,
76
+ has_more: response.has_more,
77
+ },
78
+ };
79
+ }
80
+ /**
81
+ * Iterate over all resources matching the given criteria using async iteration.
82
+ * Automatically handles pagination.
83
+ *
84
+ * @param options - List options including model, filters, and page size
85
+ * @yields Each resource matching the criteria
86
+ *
87
+ * @example
88
+ * // Process all invoices
89
+ * for await (const invoice of client.search.list({ model: 'Transaction', module: 'PURCHASING' })) {
90
+ * console.log(invoice.document_number);
91
+ * }
92
+ */
93
+ async *list(options) {
94
+ const pageSize = options.pageSize ?? options.limit ?? 100;
95
+ let offset = options.offset ?? 0;
96
+ let hasMore = true;
97
+ while (hasMore) {
98
+ const result = await this.query({
99
+ ...options,
100
+ offset,
101
+ limit: pageSize,
102
+ });
103
+ if (!result.success || !result.data) {
104
+ return;
105
+ }
106
+ for (const item of result.data) {
107
+ yield item;
108
+ }
109
+ // Check if there are more pages
110
+ if (result.data.length < pageSize) {
111
+ hasMore = false;
112
+ }
113
+ else {
114
+ offset += pageSize;
115
+ hasMore = result.metadata?.has_more !== false;
116
+ }
117
+ }
118
+ }
119
+ /**
120
+ * Fetch a single resource by UUID or external ID.
121
+ *
122
+ * @param model - The model name (e.g., 'Transaction', 'Supplier')
123
+ * @param identifier - Either { uuid: string } or { externalId: string }
124
+ * @param options - Additional fetch options
125
+ * @returns Promise resolving to the fetched resource
126
+ *
127
+ * @example
128
+ * // Fetch by UUID
129
+ * const invoice = await client.search.fetch('Transaction', { uuid: 'invoice-uuid' });
130
+ *
131
+ * @example
132
+ * // Fetch by external ID with related data
133
+ * const supplier = await client.search.fetch(
134
+ * 'Supplier',
135
+ * { externalId: 'SUP-001' },
136
+ * { includeModels: 'BankAccount,Contact' }
137
+ * );
138
+ */
139
+ async fetch(model, identifier, options = {}) {
140
+ const params = new URLSearchParams({ model });
141
+ // Identifier
142
+ if ('uuid' in identifier) {
143
+ params.set('uuid', identifier.uuid);
144
+ }
145
+ else {
146
+ params.set('external_id', identifier.externalId);
147
+ }
148
+ // Fetch options
149
+ if (options.fetchDetails !== false) {
150
+ params.set('fetch_details', 'true');
151
+ }
152
+ if (options.activeOnly !== false) {
153
+ params.set('active_only', 'true');
154
+ }
155
+ // Include/exclude models (already strings)
156
+ if (options.includeModels) {
157
+ params.set('include_models', options.includeModels);
158
+ }
159
+ if (options.excludeModels) {
160
+ params.set('exclude_models', options.excludeModels);
161
+ }
162
+ if (options.includePaths) {
163
+ params.set('include_paths', options.includePaths);
164
+ }
165
+ if (options.excludePaths) {
166
+ params.set('exclude_paths', options.excludePaths);
167
+ }
168
+ const endpoint = `/team-data/v1/resources/?${params.toString()}`;
169
+ const response = await this.http.request('GET', endpoint);
170
+ if (response.success === false || !response.data) {
171
+ return {
172
+ success: false,
173
+ model,
174
+ error: response.message || response.error || 'Resource not found',
175
+ };
176
+ }
177
+ return {
178
+ success: true,
179
+ model: response.model || model,
180
+ data: response.data,
181
+ };
182
+ }
183
+ }
184
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/modules/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Sentences Module
3
+ *
4
+ * Methods for managing Zudello sentences (automation/business rules).
5
+ */
6
+ /**
7
+ * Sentence (automation rule) operations for Zudello.
8
+ */
9
+ export class SentencesModule {
10
+ http;
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ /**
15
+ * Get a specific sentence by UUID.
16
+ */
17
+ async get(uuid, returnDeleted = false) {
18
+ const params = new URLSearchParams({ return_deleted: String(returnDeleted) });
19
+ const response = await this.http.request('GET', `/general-store/api/v1/sentences/${uuid}?${params.toString()}`);
20
+ if (response.success === false) {
21
+ return { success: false, error: response.message || 'Failed to get sentence' };
22
+ }
23
+ return { success: true, data: response.data };
24
+ }
25
+ /**
26
+ * Get a specific sentence template by UUID.
27
+ */
28
+ async getTemplate(uuid, returnDeleted = false) {
29
+ const params = new URLSearchParams({ return_deleted: String(returnDeleted) });
30
+ const response = await this.http.request('GET', `/general-store/api/v1/sentence-templates/${uuid}?${params.toString()}`);
31
+ if (response.success === false) {
32
+ return { success: false, error: response.message || 'Failed to get sentence template' };
33
+ }
34
+ return { success: true, data: response.data };
35
+ }
36
+ /**
37
+ * List sentences for a module.
38
+ *
39
+ * @example
40
+ * const sentences = await client.sentences.list('PURCHASING', {
41
+ * submodule: 'INVOICE',
42
+ * enabled: true
43
+ * });
44
+ */
45
+ async list(module, options = {}) {
46
+ const params = new URLSearchParams({ module });
47
+ if (options.submodule)
48
+ params.set('submodule', options.submodule);
49
+ if (options.isTemplate !== undefined)
50
+ params.set('isTemplate', String(options.isTemplate));
51
+ if (options.enabled !== undefined)
52
+ params.set('enabled', String(options.enabled));
53
+ if (options.page !== undefined)
54
+ params.set('page', String(options.page));
55
+ if (options.perPage !== undefined)
56
+ params.set('per_page', String(options.perPage));
57
+ options.triggers?.forEach(t => params.append('triggers[]', t));
58
+ options.fields?.forEach(f => params.append('fields[]', f));
59
+ options.actions?.forEach(a => params.append('actions[]', a));
60
+ const response = await this.http.request('GET', `/general-store/api/v1/sentences/?${params.toString()}`);
61
+ if (response.success === false) {
62
+ return { success: false, error: response.message || 'Failed to list sentences' };
63
+ }
64
+ const data = Array.isArray(response.data) ? response.data : (response.data ? [response.data] : []);
65
+ return { success: true, data };
66
+ }
67
+ /**
68
+ * List sentence templates for a module.
69
+ */
70
+ async listTemplates(module, submodule) {
71
+ const params = new URLSearchParams({ module });
72
+ if (submodule)
73
+ params.set('submodule', submodule);
74
+ const response = await this.http.request('GET', `/general-store/api/v1/sentence-templates/?${params.toString()}`);
75
+ if (response.success === false) {
76
+ return { success: false, error: response.message || 'Failed to list sentence templates' };
77
+ }
78
+ const data = Array.isArray(response.data) ? response.data : (response.data ? [response.data] : []);
79
+ return { success: true, data };
80
+ }
81
+ /**
82
+ * List sentence resources (action or condition templates).
83
+ *
84
+ * @param resourceType - Either 'ACTION_TEMPLATE' or 'CONDITION_TEMPLATE'
85
+ * @param module - The module context
86
+ */
87
+ async listResources(resourceType, module) {
88
+ const params = new URLSearchParams({ resource_type: resourceType, module });
89
+ const response = await this.http.request('GET', `/general-store/api/v1/sentences/resource?${params.toString()}`);
90
+ if (response.success === false) {
91
+ return { success: false, error: response.message || 'Failed to list sentence resources' };
92
+ }
93
+ return { success: true, data: response.data ?? [] };
94
+ }
95
+ /**
96
+ * Create a new sentence.
97
+ *
98
+ * @example
99
+ * const sentence = await client.sentences.create('PURCHASING', {
100
+ * categories: ['Workflow'],
101
+ * evalOrder: 10,
102
+ * enabled: true,
103
+ * recipe: {
104
+ * name: 'Auto-approve small invoices',
105
+ * event_type: ['TRANSACTION_CREATED'],
106
+ * blocks: [{
107
+ * conditions: [{ type: 'CUSTOM_CONDITION', field: { value: 'total' }, operator: { value: '<' }, value: 100 }],
108
+ * actions: [{ type: 'SET_STATUS', params: { status: 'APPROVED' } }]
109
+ * }]
110
+ * }
111
+ * });
112
+ */
113
+ async create(module, payload, user, sendToLpm = true) {
114
+ const params = new URLSearchParams({
115
+ module,
116
+ send_to_lpm: String(sendToLpm),
117
+ });
118
+ if (user)
119
+ params.set('user', user);
120
+ const response = await this.http.request('POST', `/general-store/api/v1/sentences/?${params.toString()}`, payload);
121
+ if (!response.success) {
122
+ return { success: false, error: response.message || 'Failed to create sentence' };
123
+ }
124
+ return { success: true, data: response.data };
125
+ }
126
+ /**
127
+ * Update an existing sentence.
128
+ */
129
+ async update(uuid, module, payload, user, sendToLpm = true) {
130
+ const params = new URLSearchParams({
131
+ module,
132
+ send_to_lpm: String(sendToLpm),
133
+ });
134
+ if (user)
135
+ params.set('user', user);
136
+ const response = await this.http.request('PUT', `/general-store/api/v1/sentences/${uuid}?${params.toString()}`, payload);
137
+ if (!response.success) {
138
+ return { success: false, error: response.message || 'Failed to update sentence' };
139
+ }
140
+ return { success: true, data: response.data };
141
+ }
142
+ /**
143
+ * Update the order of sentences.
144
+ */
145
+ async updateOrder(module, sentenceOrders) {
146
+ const params = new URLSearchParams({ module });
147
+ await this.http.request('PUT', `/general-store/api/v1/sentences/order?${params.toString()}`, sentenceOrders);
148
+ return { success: true };
149
+ }
150
+ }
151
+ //# sourceMappingURL=sentences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentences.js","sourceRoot":"","sources":["../../../src/modules/sentences.ts"],"names":[],"mappings":"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"}