bitrix24-tasks-mcp-server 1.5.2 → 1.6.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.
- package/README.md +15 -0
- package/build/bitrix24/client.d.ts +65 -0
- package/build/bitrix24/client.d.ts.map +1 -1
- package/build/bitrix24/client.js +322 -2
- package/build/bitrix24/client.js.map +1 -1
- package/build/bitrix24/compositeLock.d.ts +2 -0
- package/build/bitrix24/compositeLock.d.ts.map +1 -0
- package/build/bitrix24/compositeLock.js +217 -0
- package/build/bitrix24/compositeLock.js.map +1 -0
- package/build/bitrix24/compositePublisher.d.ts +74 -0
- package/build/bitrix24/compositePublisher.d.ts.map +1 -0
- package/build/bitrix24/compositePublisher.js +288 -0
- package/build/bitrix24/compositePublisher.js.map +1 -0
- package/build/index.js +3 -2
- package/build/index.js.map +1 -1
- package/build/tools/index.d.ts +8 -1
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +501 -10
- package/build/tools/index.js.map +1 -1
- package/build/tools/validation.d.ts +3 -0
- package/build/tools/validation.d.ts.map +1 -0
- package/build/tools/validation.js +141 -0
- package/build/tools/validation.js.map +1 -0
- package/build/utils/toolLogging.d.ts +2 -0
- package/build/utils/toolLogging.d.ts.map +1 -0
- package/build/utils/toolLogging.js +93 -0
- package/build/utils/toolLogging.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -176,6 +176,7 @@ Local development in Cursor (`~/.cursor/mcp.json`):
|
|
|
176
176
|
- `bitrix24_get_tasks_from_date_range` - Get tasks created in a date range
|
|
177
177
|
- `bitrix24_update_task` - Update an existing task
|
|
178
178
|
- `bitrix24_update_task` supports `parentTaskId` to change parent linkage
|
|
179
|
+
- `bitrix24_update_task_custom_fields` - Update one or more `UF_TASK_*` fields with read-before-write protection and read-back verification
|
|
179
180
|
- `bitrix24_get_task_stages` - Get Kanban/My Plan stages for a group or user plan
|
|
180
181
|
- `bitrix24_can_move_task_in_stages` - Check whether tasks can be moved in a group/user stage board
|
|
181
182
|
- `bitrix24_move_task_to_stage` - Move a task to another Kanban/My Plan stage by `stageId` or by `stageName` + `entityId`
|
|
@@ -190,6 +191,20 @@ Local development in Cursor (`~/.cursor/mcp.json`):
|
|
|
190
191
|
- `bitrix24_add_task_dependency` - Create dependency link between tasks
|
|
191
192
|
- `bitrix24_delete_task_dependency` - Remove dependency link between tasks
|
|
192
193
|
|
|
194
|
+
Example — fill an empty user field and a numeric field:
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"taskId": "43691",
|
|
199
|
+
"fields": {
|
|
200
|
+
"UF_TASK_DECISION_MAKER": "42",
|
|
201
|
+
"UF_TASK_BUDGET": 150000
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Populated fields are protected by default. Pass `"overwriteExisting": true` only when an existing value must intentionally be replaced. Field values may be scalars, arrays, objects, or `null`; the server updates only changed fields and verifies every write.
|
|
207
|
+
|
|
193
208
|
### Projects
|
|
194
209
|
|
|
195
210
|
- `bitrix24_create_project` - Create a project/workgroup
|
|
@@ -22,6 +22,41 @@ export interface BitrixTask {
|
|
|
22
22
|
CLOSED_DATE?: string;
|
|
23
23
|
STATUS_COMPLETE?: string;
|
|
24
24
|
UF_TASK_WEBDAV_FILES?: string[];
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
export interface TaskCustomFieldsUpdateResult {
|
|
28
|
+
taskId: string;
|
|
29
|
+
changed: boolean;
|
|
30
|
+
updatedFields: string[];
|
|
31
|
+
unchangedFields: string[];
|
|
32
|
+
overwrittenFields: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface BitrixTaskStageSummary {
|
|
35
|
+
taskId: string;
|
|
36
|
+
groupId?: string;
|
|
37
|
+
stageId?: string;
|
|
38
|
+
title?: string;
|
|
39
|
+
changedDate?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface BitrixTaskSummary {
|
|
42
|
+
id?: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
titleTruncated?: boolean;
|
|
45
|
+
titleOriginalChars?: number;
|
|
46
|
+
titleSha256?: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
descriptionTruncated?: boolean;
|
|
49
|
+
descriptionOriginalChars?: number;
|
|
50
|
+
descriptionSha256?: string;
|
|
51
|
+
groupId?: string;
|
|
52
|
+
stageId?: string;
|
|
53
|
+
status?: string;
|
|
54
|
+
changedDate?: string;
|
|
55
|
+
createdDate?: string;
|
|
56
|
+
responsibleId?: string;
|
|
57
|
+
deadline?: string;
|
|
58
|
+
priority?: string;
|
|
59
|
+
parentId?: string;
|
|
25
60
|
}
|
|
26
61
|
export interface BitrixTaskStage {
|
|
27
62
|
ID: string;
|
|
@@ -82,6 +117,31 @@ export interface GetTaskFilesOptions {
|
|
|
82
117
|
imagesOnly?: boolean;
|
|
83
118
|
saveToDirectory?: string;
|
|
84
119
|
}
|
|
120
|
+
export interface GetTaskFilesMetadataOptions {
|
|
121
|
+
diskFileIds?: string[];
|
|
122
|
+
imagesOnly?: boolean;
|
|
123
|
+
afterFileId?: string;
|
|
124
|
+
limit?: number;
|
|
125
|
+
}
|
|
126
|
+
export interface TaskFileMetadataPage {
|
|
127
|
+
taskId: string;
|
|
128
|
+
afterFileId?: string;
|
|
129
|
+
nextAfterFileId?: string;
|
|
130
|
+
hasMore: boolean;
|
|
131
|
+
files: Array<{
|
|
132
|
+
diskFileId: string;
|
|
133
|
+
attachmentId: string;
|
|
134
|
+
fileId?: string;
|
|
135
|
+
fileName: string;
|
|
136
|
+
fileNameTruncated: boolean;
|
|
137
|
+
fileNameOriginalChars: number;
|
|
138
|
+
fileNameSha256?: string;
|
|
139
|
+
mimeType: string;
|
|
140
|
+
size?: number;
|
|
141
|
+
isImage: boolean;
|
|
142
|
+
}>;
|
|
143
|
+
errors: string[];
|
|
144
|
+
}
|
|
85
145
|
export type TaskCommentsPreferApi = 'auto' | 'chat' | 'legacy';
|
|
86
146
|
export interface GetTaskDetailsOptions {
|
|
87
147
|
includeComments?: boolean;
|
|
@@ -170,6 +230,7 @@ export declare class Bitrix24Client {
|
|
|
170
230
|
private readonly fetchImpl;
|
|
171
231
|
constructor(webhookUrl?: string, fetchImpl?: typeof fetch);
|
|
172
232
|
getPortalOrigin(): string;
|
|
233
|
+
getPublicationLockScope(): string;
|
|
173
234
|
private buildMethodUrl;
|
|
174
235
|
private extractApiError;
|
|
175
236
|
private enforceRateLimit;
|
|
@@ -178,8 +239,11 @@ export declare class Bitrix24Client {
|
|
|
178
239
|
private appendFormValue;
|
|
179
240
|
createTask(task: BitrixTask): Promise<string>;
|
|
180
241
|
getTask(id: string): Promise<BitrixTask>;
|
|
242
|
+
getTaskSummary(id: string, select?: string[]): Promise<BitrixTaskSummary>;
|
|
243
|
+
getTaskStage(taskId: string): Promise<BitrixTaskStageSummary>;
|
|
181
244
|
getTaskDetails(taskId: string, options?: GetTaskDetailsOptions): Promise<TaskDetailsResult>;
|
|
182
245
|
updateTask(id: string, task: Partial<BitrixTask>): Promise<boolean>;
|
|
246
|
+
updateTaskCustomFields(taskId: string, fields: Record<string, unknown>, overwriteExisting?: boolean): Promise<TaskCustomFieldsUpdateResult>;
|
|
183
247
|
getTaskStages(entityId: string | number, entityType?: 'U' | 'G'): Promise<BitrixTaskStage[]>;
|
|
184
248
|
canMoveTaskInStages(entityId: string | number, entityType?: 'U' | 'G'): Promise<boolean>;
|
|
185
249
|
moveTaskToStage(params: {
|
|
@@ -249,6 +313,7 @@ export declare class Bitrix24Client {
|
|
|
249
313
|
files: TaskFileDownloadResult[];
|
|
250
314
|
errors: string[];
|
|
251
315
|
}>;
|
|
316
|
+
getTaskFilesMetadata(taskId: string, options?: GetTaskFilesMetadataOptions): Promise<TaskFileMetadataPage>;
|
|
252
317
|
resolveTaskChat(taskId: string): Promise<TaskChatRef | null>;
|
|
253
318
|
listTaskComments(taskId: string, options?: {
|
|
254
319
|
order?: Record<string, 'asc' | 'desc' | 'ASC' | 'DESC'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitrix24/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitrix24/client.ts"],"names":[],"mappings":"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"}
|
package/build/bitrix24/client.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import fetch from 'node-fetch';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
import { collectDiskFileIdsFromTask, guessMimeType, isImageFile, parseWebdavFileToken, readLocalFile, saveBufferToDirectory, toWebdavFileToken } from './taskFiles.js';
|
|
4
5
|
import { extractCommentAttachments, normalizeTaskComment } from './taskComments.js';
|
|
5
6
|
import { buildDialogId, indexChatFiles, isImageChatFile, normalizeChatFile, normalizeChatMessage, resolveMessageAttachments } from './taskChat.js';
|
|
6
|
-
const BITRIX24_WEBHOOK_URL = process.env.BITRIX24_WEBHOOK_URL
|
|
7
|
-
'https://sviluppofranchising.bitrix24.it/rest/27/wwugdez6m774803q/';
|
|
7
|
+
const BITRIX24_WEBHOOK_URL = process.env.BITRIX24_WEBHOOK_URL ?? '';
|
|
8
8
|
const BitrixResponseSchema = z.object({
|
|
9
9
|
result: z.any(),
|
|
10
10
|
error: z.optional(z.object({
|
|
@@ -19,6 +19,102 @@ const BitrixResponseSchema = z.object({
|
|
|
19
19
|
duration: z.number()
|
|
20
20
|
}))
|
|
21
21
|
});
|
|
22
|
+
function optionalString(value) {
|
|
23
|
+
if (value === undefined || value === null) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const normalized = String(value).trim();
|
|
27
|
+
return normalized || undefined;
|
|
28
|
+
}
|
|
29
|
+
function isEmptyCustomFieldValue(value) {
|
|
30
|
+
return value === undefined || value === null || value === '' ||
|
|
31
|
+
(Array.isArray(value) && value.length === 0);
|
|
32
|
+
}
|
|
33
|
+
function canonicalCustomFieldValue(value) {
|
|
34
|
+
if (isEmptyCustomFieldValue(value))
|
|
35
|
+
return null;
|
|
36
|
+
if (Array.isArray(value)) {
|
|
37
|
+
return value
|
|
38
|
+
.map(canonicalCustomFieldValue)
|
|
39
|
+
.sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)));
|
|
40
|
+
}
|
|
41
|
+
if (typeof value === 'object' && value !== null) {
|
|
42
|
+
return Object.fromEntries(Object.entries(value)
|
|
43
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
44
|
+
.map(([key, item]) => [key, canonicalCustomFieldValue(item)]));
|
|
45
|
+
}
|
|
46
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint') {
|
|
47
|
+
return String(value).trim();
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
function customFieldValuesEqual(left, right) {
|
|
52
|
+
return JSON.stringify(canonicalCustomFieldValue(left)) ===
|
|
53
|
+
JSON.stringify(canonicalCustomFieldValue(right));
|
|
54
|
+
}
|
|
55
|
+
function getCaseInsensitiveField(record, fieldName) {
|
|
56
|
+
if (fieldName in record)
|
|
57
|
+
return record[fieldName];
|
|
58
|
+
const normalizedName = fieldName.toLocaleUpperCase('en-US');
|
|
59
|
+
const key = Object.keys(record).find((candidate) => candidate.toLocaleUpperCase('en-US') === normalizedName);
|
|
60
|
+
return key === undefined ? undefined : record[key];
|
|
61
|
+
}
|
|
62
|
+
const TASK_SUMMARY_SELECT_FIELDS = new Set([
|
|
63
|
+
'ID',
|
|
64
|
+
'TITLE',
|
|
65
|
+
'DESCRIPTION',
|
|
66
|
+
'GROUP_ID',
|
|
67
|
+
'STAGE_ID',
|
|
68
|
+
'STAGE',
|
|
69
|
+
'STATUS',
|
|
70
|
+
'CHANGED_DATE',
|
|
71
|
+
'CREATED_DATE',
|
|
72
|
+
'RESPONSIBLE_ID',
|
|
73
|
+
'DEADLINE',
|
|
74
|
+
'PRIORITY',
|
|
75
|
+
'PARENT_ID'
|
|
76
|
+
]);
|
|
77
|
+
const DEFAULT_TASK_SUMMARY_SELECT = [
|
|
78
|
+
'ID',
|
|
79
|
+
'TITLE',
|
|
80
|
+
'DESCRIPTION',
|
|
81
|
+
'GROUP_ID',
|
|
82
|
+
'STAGE_ID',
|
|
83
|
+
'STATUS',
|
|
84
|
+
'CHANGED_DATE',
|
|
85
|
+
'RESPONSIBLE_ID'
|
|
86
|
+
];
|
|
87
|
+
const MAX_TASK_SUMMARY_TITLE_CHARS = 512;
|
|
88
|
+
const MAX_TASK_SUMMARY_DESCRIPTION_CHARS = 12_000;
|
|
89
|
+
const MAX_FILE_METADATA_NAME_CHARS = 512;
|
|
90
|
+
const MAX_FILE_METADATA_PAGE_SIZE = 25;
|
|
91
|
+
function compactProjectedString(value, maxChars) {
|
|
92
|
+
const normalized = optionalString(value);
|
|
93
|
+
if (normalized === undefined) {
|
|
94
|
+
return { truncated: false, originalChars: 0 };
|
|
95
|
+
}
|
|
96
|
+
if (normalized.length <= maxChars) {
|
|
97
|
+
return {
|
|
98
|
+
value: normalized,
|
|
99
|
+
truncated: false,
|
|
100
|
+
originalChars: normalized.length
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
value: normalized.slice(0, maxChars),
|
|
105
|
+
truncated: true,
|
|
106
|
+
originalChars: normalized.length,
|
|
107
|
+
sha256: createHash('sha256').update(normalized).digest('hex')
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function compareOpaqueIds(left, right) {
|
|
111
|
+
if (/^\d+$/.test(left) && /^\d+$/.test(right)) {
|
|
112
|
+
const leftNumber = BigInt(left);
|
|
113
|
+
const rightNumber = BigInt(right);
|
|
114
|
+
return leftNumber < rightNumber ? -1 : leftNumber > rightNumber ? 1 : 0;
|
|
115
|
+
}
|
|
116
|
+
return left.localeCompare(right, 'en', { numeric: true });
|
|
117
|
+
}
|
|
22
118
|
export class Bitrix24Client {
|
|
23
119
|
baseUrl;
|
|
24
120
|
lastRequestTime = 0;
|
|
@@ -32,6 +128,9 @@ export class Bitrix24Client {
|
|
|
32
128
|
const match = this.baseUrl.match(/^(https?:\/\/[^/]+)/i);
|
|
33
129
|
return match?.[1] ?? '';
|
|
34
130
|
}
|
|
131
|
+
getPublicationLockScope() {
|
|
132
|
+
return this.getPortalOrigin();
|
|
133
|
+
}
|
|
35
134
|
buildMethodUrl(method, useApiV3 = false) {
|
|
36
135
|
let base = this.baseUrl;
|
|
37
136
|
if (useApiV3) {
|
|
@@ -73,6 +172,9 @@ export class Bitrix24Client {
|
|
|
73
172
|
return this.makeRequest(method, params, options);
|
|
74
173
|
}
|
|
75
174
|
async makeRequest(method, params = {}, options = {}) {
|
|
175
|
+
if (!this.baseUrl) {
|
|
176
|
+
throw new Error('BITRIX24_WEBHOOK_URL is required');
|
|
177
|
+
}
|
|
76
178
|
await this.enforceRateLimit();
|
|
77
179
|
const url = this.buildMethodUrl(method, options.useApiV3 === true);
|
|
78
180
|
try {
|
|
@@ -152,6 +254,82 @@ export class Bitrix24Client {
|
|
|
152
254
|
const result = await this.makeRequest('tasks.task.get', { taskId: id });
|
|
153
255
|
return result.task;
|
|
154
256
|
}
|
|
257
|
+
async getTaskSummary(id, select = DEFAULT_TASK_SUMMARY_SELECT) {
|
|
258
|
+
if (!id.trim()) {
|
|
259
|
+
throw new Error('task ID is required');
|
|
260
|
+
}
|
|
261
|
+
const normalizedSelect = [...new Set(select.map((field) => String(field).trim().toUpperCase()))];
|
|
262
|
+
if (normalizedSelect.length === 0 ||
|
|
263
|
+
normalizedSelect.length > TASK_SUMMARY_SELECT_FIELDS.size) {
|
|
264
|
+
throw new Error(`task summary select must contain between 1 and ${TASK_SUMMARY_SELECT_FIELDS.size} unique fields`);
|
|
265
|
+
}
|
|
266
|
+
const unsupported = normalizedSelect.filter((field) => !TASK_SUMMARY_SELECT_FIELDS.has(field));
|
|
267
|
+
if (unsupported.length > 0) {
|
|
268
|
+
throw new Error(`Unsupported task summary field(s): ${unsupported.join(', ')}`);
|
|
269
|
+
}
|
|
270
|
+
const result = await this.makeRequest('tasks.task.get', {
|
|
271
|
+
taskId: id,
|
|
272
|
+
select: normalizedSelect
|
|
273
|
+
});
|
|
274
|
+
const raw = (result?.task ?? {});
|
|
275
|
+
const projected = {};
|
|
276
|
+
const setString = (requestedField, outputKey, ...sourceKeys) => {
|
|
277
|
+
if (!normalizedSelect.includes(requestedField)) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
for (const key of sourceKeys) {
|
|
281
|
+
const value = optionalString(raw[key]);
|
|
282
|
+
if (value !== undefined) {
|
|
283
|
+
projected[outputKey] = value;
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
setString('ID', 'id', 'ID', 'id');
|
|
289
|
+
setString('GROUP_ID', 'groupId', 'GROUP_ID', 'groupId');
|
|
290
|
+
if (normalizedSelect.includes('STAGE_ID') || normalizedSelect.includes('STAGE')) {
|
|
291
|
+
setString(normalizedSelect.includes('STAGE_ID') ? 'STAGE_ID' : 'STAGE', 'stageId', 'STAGE_ID', 'stageId', 'STAGE', 'stage');
|
|
292
|
+
}
|
|
293
|
+
setString('STATUS', 'status', 'STATUS', 'status');
|
|
294
|
+
setString('CHANGED_DATE', 'changedDate', 'CHANGED_DATE', 'changedDate');
|
|
295
|
+
setString('CREATED_DATE', 'createdDate', 'CREATED_DATE', 'createdDate');
|
|
296
|
+
setString('RESPONSIBLE_ID', 'responsibleId', 'RESPONSIBLE_ID', 'responsibleId');
|
|
297
|
+
setString('DEADLINE', 'deadline', 'DEADLINE', 'deadline');
|
|
298
|
+
setString('PRIORITY', 'priority', 'PRIORITY', 'priority');
|
|
299
|
+
setString('PARENT_ID', 'parentId', 'PARENT_ID', 'parentId');
|
|
300
|
+
if (normalizedSelect.includes('TITLE')) {
|
|
301
|
+
const title = compactProjectedString(raw.TITLE ?? raw.title, MAX_TASK_SUMMARY_TITLE_CHARS);
|
|
302
|
+
projected.title = title.value;
|
|
303
|
+
projected.titleTruncated = title.truncated;
|
|
304
|
+
projected.titleOriginalChars = title.originalChars;
|
|
305
|
+
projected.titleSha256 = title.sha256;
|
|
306
|
+
}
|
|
307
|
+
if (normalizedSelect.includes('DESCRIPTION')) {
|
|
308
|
+
const description = compactProjectedString(raw.DESCRIPTION ?? raw.description, MAX_TASK_SUMMARY_DESCRIPTION_CHARS);
|
|
309
|
+
projected.description = description.value;
|
|
310
|
+
projected.descriptionTruncated = description.truncated;
|
|
311
|
+
projected.descriptionOriginalChars = description.originalChars;
|
|
312
|
+
projected.descriptionSha256 = description.sha256;
|
|
313
|
+
}
|
|
314
|
+
return projected;
|
|
315
|
+
}
|
|
316
|
+
async getTaskStage(taskId) {
|
|
317
|
+
const task = await this.getTaskSummary(taskId, [
|
|
318
|
+
'ID',
|
|
319
|
+
'TITLE',
|
|
320
|
+
'GROUP_ID',
|
|
321
|
+
'STAGE_ID',
|
|
322
|
+
'STAGE',
|
|
323
|
+
'CHANGED_DATE'
|
|
324
|
+
]);
|
|
325
|
+
return {
|
|
326
|
+
taskId: task.id ?? taskId,
|
|
327
|
+
groupId: task.groupId,
|
|
328
|
+
stageId: task.stageId,
|
|
329
|
+
title: task.title,
|
|
330
|
+
changedDate: task.changedDate
|
|
331
|
+
};
|
|
332
|
+
}
|
|
155
333
|
async getTaskDetails(taskId, options = {}) {
|
|
156
334
|
const task = await this.getTask(taskId);
|
|
157
335
|
const errors = [];
|
|
@@ -217,6 +395,73 @@ export class Bitrix24Client {
|
|
|
217
395
|
const result = await this.makeRequest('tasks.task.update', { taskId: id, fields: task });
|
|
218
396
|
return result === true;
|
|
219
397
|
}
|
|
398
|
+
async updateTaskCustomFields(taskId, fields, overwriteExisting = false) {
|
|
399
|
+
const normalizedTaskId = String(taskId).trim();
|
|
400
|
+
if (!/^\d+$/.test(normalizedTaskId)) {
|
|
401
|
+
throw new Error('task ID must contain digits only');
|
|
402
|
+
}
|
|
403
|
+
if (!fields || typeof fields !== 'object' || Array.isArray(fields)) {
|
|
404
|
+
throw new Error('custom fields must be an object');
|
|
405
|
+
}
|
|
406
|
+
const fieldNames = Object.keys(fields).map((fieldName) => fieldName.trim().toUpperCase());
|
|
407
|
+
if (fieldNames.length < 1 || fieldNames.length > 20) {
|
|
408
|
+
throw new Error('between 1 and 20 custom fields are required');
|
|
409
|
+
}
|
|
410
|
+
const invalidFieldNames = fieldNames.filter((fieldName) => !/^UF_TASK_[A-Z0-9_]+$/.test(fieldName));
|
|
411
|
+
if (invalidFieldNames.length > 0) {
|
|
412
|
+
throw new Error(`Unsupported task custom field name(s): ${invalidFieldNames.join(', ')}`);
|
|
413
|
+
}
|
|
414
|
+
if (new Set(fieldNames).size !== fieldNames.length) {
|
|
415
|
+
throw new Error('custom field names must be unique (case-insensitive)');
|
|
416
|
+
}
|
|
417
|
+
const normalizedFields = Object.fromEntries(Object.entries(fields).map(([fieldName, value]) => [fieldName.trim().toUpperCase(), value]));
|
|
418
|
+
const readCustomFields = async () => {
|
|
419
|
+
const result = await this.makeRequest('task.item.getdata', {
|
|
420
|
+
TASKID: Number(normalizedTaskId)
|
|
421
|
+
});
|
|
422
|
+
const task = (result?.task ?? result ?? {});
|
|
423
|
+
return Object.fromEntries(fieldNames.map((fieldName) => [fieldName, getCaseInsensitiveField(task, fieldName)]));
|
|
424
|
+
};
|
|
425
|
+
const before = await readCustomFields();
|
|
426
|
+
const unchangedFields = fieldNames.filter((fieldName) => customFieldValuesEqual(before[fieldName], normalizedFields[fieldName]));
|
|
427
|
+
const fieldsToUpdate = fieldNames.filter((fieldName) => !unchangedFields.includes(fieldName));
|
|
428
|
+
const overwrittenFields = fieldsToUpdate.filter((fieldName) => !isEmptyCustomFieldValue(before[fieldName]));
|
|
429
|
+
if (overwrittenFields.length > 0 && !overwriteExisting) {
|
|
430
|
+
throw new Error(`Task ${normalizedTaskId} already has value(s) in ${overwrittenFields.join(', ')}; set overwriteExisting=true to replace them`);
|
|
431
|
+
}
|
|
432
|
+
if (fieldsToUpdate.length === 0) {
|
|
433
|
+
return {
|
|
434
|
+
taskId: normalizedTaskId,
|
|
435
|
+
changed: false,
|
|
436
|
+
updatedFields: [],
|
|
437
|
+
unchangedFields,
|
|
438
|
+
overwrittenFields: []
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
const updatePayload = Object.fromEntries(fieldsToUpdate.map((fieldName) => {
|
|
442
|
+
const value = normalizedFields[fieldName];
|
|
443
|
+
return [fieldName, isEmptyCustomFieldValue(value) ? '' : value];
|
|
444
|
+
}));
|
|
445
|
+
const updated = await this.makeRequest('task.item.update', {
|
|
446
|
+
TASKID: Number(normalizedTaskId),
|
|
447
|
+
FIELDS: updatePayload
|
|
448
|
+
});
|
|
449
|
+
if (updated !== true && updated !== '1' && updated !== 1) {
|
|
450
|
+
throw new Error(`Bitrix24 did not confirm custom field update for task ${normalizedTaskId}`);
|
|
451
|
+
}
|
|
452
|
+
const after = await readCustomFields();
|
|
453
|
+
const verificationFailures = fieldsToUpdate.filter((fieldName) => !customFieldValuesEqual(after[fieldName], normalizedFields[fieldName]));
|
|
454
|
+
if (verificationFailures.length > 0) {
|
|
455
|
+
throw new Error(`Failed to verify custom field(s) for task ${normalizedTaskId}: ${verificationFailures.join(', ')}`);
|
|
456
|
+
}
|
|
457
|
+
return {
|
|
458
|
+
taskId: normalizedTaskId,
|
|
459
|
+
changed: true,
|
|
460
|
+
updatedFields: fieldsToUpdate,
|
|
461
|
+
unchangedFields,
|
|
462
|
+
overwrittenFields
|
|
463
|
+
};
|
|
464
|
+
}
|
|
220
465
|
async getTaskStages(entityId, entityType = 'G') {
|
|
221
466
|
const result = await this.makeRequest('task.stages.get', { entityId });
|
|
222
467
|
return Object.values(result ?? {}).map((stage) => this.normalizeTaskStage(stage, entityType));
|
|
@@ -760,6 +1005,81 @@ export class Bitrix24Client {
|
|
|
760
1005
|
}
|
|
761
1006
|
return { taskId, diskFileIds: uniqueIds, files, errors };
|
|
762
1007
|
}
|
|
1008
|
+
async getTaskFilesMetadata(taskId, options = {}) {
|
|
1009
|
+
if (!taskId.trim()) {
|
|
1010
|
+
throw new Error('taskId is required');
|
|
1011
|
+
}
|
|
1012
|
+
const explicitIds = [
|
|
1013
|
+
...new Set(options.diskFileIds?.map((id) => String(id).trim()).filter(Boolean) ?? [])
|
|
1014
|
+
];
|
|
1015
|
+
if (explicitIds.length > 50) {
|
|
1016
|
+
throw new Error('diskFileIds must contain at most 50 unique IDs');
|
|
1017
|
+
}
|
|
1018
|
+
const limit = Math.min(MAX_FILE_METADATA_PAGE_SIZE, Math.max(1, Math.trunc(options.limit ?? MAX_FILE_METADATA_PAGE_SIZE)));
|
|
1019
|
+
const afterFileId = optionalString(options.afterFileId);
|
|
1020
|
+
const attachedFiles = await this.listTaskAttachedFiles(taskId);
|
|
1021
|
+
const candidates = explicitIds.length === 0
|
|
1022
|
+
? attachedFiles
|
|
1023
|
+
: this.selectTaskAttachedFiles(attachedFiles, explicitIds);
|
|
1024
|
+
const errors = [];
|
|
1025
|
+
if (explicitIds.length > 0) {
|
|
1026
|
+
const matchedIds = new Set();
|
|
1027
|
+
for (const attached of candidates) {
|
|
1028
|
+
for (const requestedId of explicitIds) {
|
|
1029
|
+
if (this.matchesRequestedFileId(attached, requestedId)) {
|
|
1030
|
+
matchedIds.add(requestedId);
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
for (const unresolvedId of explicitIds.filter((id) => !matchedIds.has(id))) {
|
|
1035
|
+
try {
|
|
1036
|
+
const diskFile = await this.getDiskFile(parseWebdavFileToken(unresolvedId));
|
|
1037
|
+
candidates.push({
|
|
1038
|
+
attachmentId: unresolvedId,
|
|
1039
|
+
fileId: diskFile.id,
|
|
1040
|
+
name: diskFile.name,
|
|
1041
|
+
size: diskFile.size
|
|
1042
|
+
});
|
|
1043
|
+
}
|
|
1044
|
+
catch (error) {
|
|
1045
|
+
errors.push(`${unresolvedId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
const uniqueCandidates = [...new Map(candidates.map((file) => [file.attachmentId, file])).values()]
|
|
1050
|
+
.filter((file) => file.attachmentId.length <= 64 &&
|
|
1051
|
+
(file.fileId === undefined || file.fileId.length <= 64))
|
|
1052
|
+
.filter((file) => options.imagesOnly !== true || isImageFile(file.name))
|
|
1053
|
+
.sort((left, right) => compareOpaqueIds(left.attachmentId, right.attachmentId))
|
|
1054
|
+
.filter((file) => afterFileId === undefined ||
|
|
1055
|
+
compareOpaqueIds(file.attachmentId, afterFileId) > 0);
|
|
1056
|
+
const page = uniqueCandidates.slice(0, limit);
|
|
1057
|
+
const files = page.map((file) => {
|
|
1058
|
+
const compactedName = compactProjectedString(file.name, MAX_FILE_METADATA_NAME_CHARS);
|
|
1059
|
+
return {
|
|
1060
|
+
diskFileId: file.fileId ? toWebdavFileToken(file.fileId) : file.attachmentId,
|
|
1061
|
+
attachmentId: file.attachmentId,
|
|
1062
|
+
fileId: file.fileId,
|
|
1063
|
+
fileName: compactedName.value ?? 'file',
|
|
1064
|
+
fileNameTruncated: compactedName.truncated,
|
|
1065
|
+
fileNameOriginalChars: compactedName.originalChars,
|
|
1066
|
+
fileNameSha256: compactedName.sha256,
|
|
1067
|
+
mimeType: guessMimeType(file.name),
|
|
1068
|
+
size: file.size !== undefined && Number.isFinite(file.size)
|
|
1069
|
+
? file.size
|
|
1070
|
+
: undefined,
|
|
1071
|
+
isImage: isImageFile(file.name)
|
|
1072
|
+
};
|
|
1073
|
+
});
|
|
1074
|
+
return {
|
|
1075
|
+
taskId,
|
|
1076
|
+
afterFileId,
|
|
1077
|
+
nextAfterFileId: files.length > 0 ? files[files.length - 1].attachmentId : afterFileId,
|
|
1078
|
+
hasMore: uniqueCandidates.length > page.length,
|
|
1079
|
+
files,
|
|
1080
|
+
errors
|
|
1081
|
+
};
|
|
1082
|
+
}
|
|
763
1083
|
async resolveTaskChat(taskId) {
|
|
764
1084
|
try {
|
|
765
1085
|
const legacy = await this.makeRequest('tasks.task.get', {
|