@pachca/cli 2026.7.0 → 2026.7.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.
- package/CHANGELOG.md +5 -0
- package/README.md +1 -0
- package/dist/commands/bots/create.js +14 -5
- package/dist/commands/bots/delete.js +0 -1
- package/dist/commands/bots/get.js +0 -4
- package/dist/commands/bots/list.js +0 -2
- package/dist/commands/bots/update.js +14 -5
- package/dist/commands/chats/create.js +9 -3
- package/dist/commands/chats/get.js +0 -3
- package/dist/commands/chats/list.js +3 -3
- package/dist/commands/chats/update.js +8 -1
- package/dist/commands/group-tags/create.js +9 -3
- package/dist/commands/group-tags/list.js +0 -1
- package/dist/commands/group-tags/update.js +8 -1
- package/dist/commands/members/add.js +2 -2
- package/dist/commands/members/list.js +1 -3
- package/dist/commands/members/remove.js +0 -1
- package/dist/commands/members/update.js +1 -2
- package/dist/commands/messages/delete.js +1 -3
- package/dist/commands/messages/get.js +2 -2
- package/dist/commands/messages/list.js +1 -3
- package/dist/commands/messages/pin.js +1 -2
- package/dist/commands/messages/unpin.js +0 -1
- package/dist/commands/messages/update.js +2 -2
- package/dist/commands/profile/delete-avatar.js +0 -1
- package/dist/commands/profile/delete-status.js +0 -1
- package/dist/commands/profile/get-status.js +0 -4
- package/dist/commands/profile/update-avatar.js +1 -2
- package/dist/commands/profile/update-status.js +5 -3
- package/dist/commands/reactions/add.js +1 -2
- package/dist/commands/reactions/list.js +0 -4
- package/dist/commands/reactions/remove.js +0 -1
- package/dist/commands/security/list.js +1 -1
- package/dist/commands/tasks/create.js +1 -1
- package/dist/commands/tasks/delete.js +1 -3
- package/dist/commands/tasks/get.js +1 -3
- package/dist/commands/tasks/list.js +0 -2
- package/dist/commands/tasks/update.js +0 -1
- package/dist/commands/threads/create.js +23 -0
- package/dist/commands/users/create.js +31 -9
- package/dist/commands/users/delete.js +1 -3
- package/dist/commands/users/get-status.js +1 -3
- package/dist/commands/users/get.js +1 -3
- package/dist/commands/users/list.js +1 -1
- package/dist/commands/users/remove-avatar.js +0 -1
- package/dist/commands/users/remove-status.js +0 -2
- package/dist/commands/users/update-avatar.js +1 -2
- package/dist/commands/users/update-status.js +5 -4
- package/dist/commands/users/update.js +28 -7
- package/dist/data/alternatives.json +1 -0
- package/dist/data/changelog.json +16 -0
- package/dist/data/endpoints.json +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -5,9 +5,9 @@ import * as clack from '@clack/prompts';
|
|
|
5
5
|
export default class UsersCreate extends BaseCommand {
|
|
6
6
|
static description = "Новый сотрудник";
|
|
7
7
|
static examples = [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
8
|
+
"Массовое создание сотрудников с тегами:\n $ pachca users create",
|
|
9
|
+
"Создать гостя в чат:\n $ pachca users create",
|
|
10
|
+
"Онбординг нового сотрудника:\n $ pachca users create"
|
|
11
11
|
];
|
|
12
12
|
static scope = "users:create";
|
|
13
13
|
static apiMethod = "POST";
|
|
@@ -18,22 +18,22 @@ export default class UsersCreate extends BaseCommand {
|
|
|
18
18
|
static flags = {
|
|
19
19
|
...BaseCommand.baseFlags,
|
|
20
20
|
'first-name': Flags.string({
|
|
21
|
-
description: "Имя",
|
|
21
|
+
description: "Имя (макс. 255 символов)",
|
|
22
22
|
}),
|
|
23
23
|
'last-name': Flags.string({
|
|
24
|
-
description: "Фамилия",
|
|
24
|
+
description: "Фамилия (макс. 255 символов)",
|
|
25
25
|
}),
|
|
26
26
|
'email': Flags.string({
|
|
27
|
-
description: "Электронная почта",
|
|
27
|
+
description: "Электронная почта (макс. 255 символов)",
|
|
28
28
|
}),
|
|
29
29
|
'phone-number': Flags.string({
|
|
30
|
-
description: "Телефон",
|
|
30
|
+
description: "Телефон (макс. 255 символов)",
|
|
31
31
|
}),
|
|
32
32
|
'nickname': Flags.string({
|
|
33
|
-
description: "Имя пользователя",
|
|
33
|
+
description: "Имя пользователя (макс. 255 символов)",
|
|
34
34
|
}),
|
|
35
35
|
'department': Flags.string({
|
|
36
|
-
description: "Департамент",
|
|
36
|
+
description: "Департамент (макс. 255 символов)",
|
|
37
37
|
}),
|
|
38
38
|
'title': Flags.string({
|
|
39
39
|
description: "Должность",
|
|
@@ -88,6 +88,28 @@ export default class UsersCreate extends BaseCommand {
|
|
|
88
88
|
this.validationError(missingRequired.map((f) => ({ message: `Обязательный флаг --${f.flag} не передан`, flag: f.flag })), { hint: "Обязательные: --email <string>. pachca introspect users create" });
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
const validationErrors = [];
|
|
92
|
+
if (flags['first-name'] && String(flags['first-name']).length > 255) {
|
|
93
|
+
validationErrors.push({ message: `--first-name: максимум 255 символов (передано: ${String(flags['first-name']).length})`, flag: 'first-name' });
|
|
94
|
+
}
|
|
95
|
+
if (flags['last-name'] && String(flags['last-name']).length > 255) {
|
|
96
|
+
validationErrors.push({ message: `--last-name: максимум 255 символов (передано: ${String(flags['last-name']).length})`, flag: 'last-name' });
|
|
97
|
+
}
|
|
98
|
+
if (flags['email'] && String(flags['email']).length > 255) {
|
|
99
|
+
validationErrors.push({ message: `--email: максимум 255 символов (передано: ${String(flags['email']).length})`, flag: 'email' });
|
|
100
|
+
}
|
|
101
|
+
if (flags['phone-number'] && String(flags['phone-number']).length > 255) {
|
|
102
|
+
validationErrors.push({ message: `--phone-number: максимум 255 символов (передано: ${String(flags['phone-number']).length})`, flag: 'phone-number' });
|
|
103
|
+
}
|
|
104
|
+
if (flags['nickname'] && String(flags['nickname']).length > 255) {
|
|
105
|
+
validationErrors.push({ message: `--nickname: максимум 255 символов (передано: ${String(flags['nickname']).length})`, flag: 'nickname' });
|
|
106
|
+
}
|
|
107
|
+
if (flags['department'] && String(flags['department']).length > 255) {
|
|
108
|
+
validationErrors.push({ message: `--department: максимум 255 символов (передано: ${String(flags['department']).length})`, flag: 'department' });
|
|
109
|
+
}
|
|
110
|
+
if (validationErrors.length > 0) {
|
|
111
|
+
this.validationError(validationErrors);
|
|
112
|
+
}
|
|
91
113
|
const body = {
|
|
92
114
|
user: {
|
|
93
115
|
first_name: flags['first-name'],
|
|
@@ -5,9 +5,7 @@ import * as clack from '@clack/prompts';
|
|
|
5
5
|
export default class UsersDelete extends BaseCommand {
|
|
6
6
|
static description = "Удаление сотрудника";
|
|
7
7
|
static examples = [
|
|
8
|
-
"
|
|
9
|
-
"Массовое создание сотрудников с тегами:\n $ pachca users update",
|
|
10
|
-
"Offboarding сотрудника:\n $ pachca users update"
|
|
8
|
+
"Offboarding сотрудника:\n $ pachca users delete"
|
|
11
9
|
];
|
|
12
10
|
static scope = "users:delete";
|
|
13
11
|
static apiMethod = "DELETE";
|
|
@@ -4,9 +4,7 @@ import { BaseCommand } from '../../base-command.js';
|
|
|
4
4
|
export default class UsersGetStatus extends BaseCommand {
|
|
5
5
|
static description = "Статус сотрудника";
|
|
6
6
|
static examples = [
|
|
7
|
-
"Управление статусом сотрудника:\n $ pachca users get-status"
|
|
8
|
-
"Управление статусом сотрудника:\n $ pachca users update-status",
|
|
9
|
-
"Управление статусом сотрудника:\n $ pachca users remove-status"
|
|
7
|
+
"Управление статусом сотрудника:\n $ pachca users get-status"
|
|
10
8
|
];
|
|
11
9
|
static scope = "user_status:read";
|
|
12
10
|
static apiMethod = "GET";
|
|
@@ -4,9 +4,7 @@ import { BaseCommand } from '../../base-command.js';
|
|
|
4
4
|
export default class UsersGet extends BaseCommand {
|
|
5
5
|
static description = "Информация о сотруднике";
|
|
6
6
|
static examples = [
|
|
7
|
-
"Получить сотрудника по ID:\n $ pachca users get"
|
|
8
|
-
"Массовое создание сотрудников с тегами:\n $ pachca users update",
|
|
9
|
-
"Offboarding сотрудника:\n $ pachca users update"
|
|
7
|
+
"Получить сотрудника по ID:\n $ pachca users get"
|
|
10
8
|
];
|
|
11
9
|
static scope = "users:read";
|
|
12
10
|
static apiMethod = "GET";
|
|
@@ -6,7 +6,7 @@ export default class UsersList extends BaseCommand {
|
|
|
6
6
|
static examples = [
|
|
7
7
|
"Проверить, кто прочитал сообщение:\n $ pachca users list",
|
|
8
8
|
"Разослать уведомление нескольким пользователям:\n $ pachca users list",
|
|
9
|
-
"
|
|
9
|
+
"Найти сотрудника по имени или email:\n $ pachca users list"
|
|
10
10
|
];
|
|
11
11
|
static scope = "users:read";
|
|
12
12
|
static apiMethod = "GET";
|
|
@@ -5,7 +5,6 @@ import * as clack from '@clack/prompts';
|
|
|
5
5
|
export default class UsersRemoveAvatar extends BaseCommand {
|
|
6
6
|
static description = "Удаление аватара сотрудника";
|
|
7
7
|
static examples = [
|
|
8
|
-
"Загрузить аватар сотрудника:\n $ pachca users update-avatar",
|
|
9
8
|
"Удалить аватар сотрудника:\n $ pachca users remove-avatar"
|
|
10
9
|
];
|
|
11
10
|
static scope = "user_avatar:write";
|
|
@@ -5,8 +5,6 @@ import * as clack from '@clack/prompts';
|
|
|
5
5
|
export default class UsersRemoveStatus extends BaseCommand {
|
|
6
6
|
static description = "Удаление статуса сотрудника";
|
|
7
7
|
static examples = [
|
|
8
|
-
"Управление статусом сотрудника:\n $ pachca users get-status",
|
|
9
|
-
"Управление статусом сотрудника:\n $ pachca users update-status",
|
|
10
8
|
"Управление статусом сотрудника:\n $ pachca users remove-status"
|
|
11
9
|
];
|
|
12
10
|
static scope = "user_status:write";
|
|
@@ -6,8 +6,7 @@ import * as path from 'node:path';
|
|
|
6
6
|
export default class UsersUpdateAvatar extends BaseCommand {
|
|
7
7
|
static description = "Загрузка аватара сотрудника";
|
|
8
8
|
static examples = [
|
|
9
|
-
"Загрузить аватар сотрудника:\n $ pachca users update-avatar"
|
|
10
|
-
"Удалить аватар сотрудника:\n $ pachca users remove-avatar"
|
|
9
|
+
"Загрузить аватар сотрудника:\n $ pachca users update-avatar"
|
|
11
10
|
];
|
|
12
11
|
static scope = "user_avatar:write";
|
|
13
12
|
static apiMethod = "PUT";
|
|
@@ -5,9 +5,7 @@ import * as clack from '@clack/prompts';
|
|
|
5
5
|
export default class UsersUpdateStatus extends BaseCommand {
|
|
6
6
|
static description = "Новый статус сотрудника";
|
|
7
7
|
static examples = [
|
|
8
|
-
"Управление статусом сотрудника:\n $ pachca users
|
|
9
|
-
"Управление статусом сотрудника:\n $ pachca users update-status",
|
|
10
|
-
"Управление статусом сотрудника:\n $ pachca users remove-status"
|
|
8
|
+
"Управление статусом сотрудника:\n $ pachca users update-status"
|
|
11
9
|
];
|
|
12
10
|
static scope = "user_status:write";
|
|
13
11
|
static apiMethod = "PUT";
|
|
@@ -26,7 +24,7 @@ export default class UsersUpdateStatus extends BaseCommand {
|
|
|
26
24
|
description: "Emoji символ статуса",
|
|
27
25
|
}),
|
|
28
26
|
'title': Flags.string({
|
|
29
|
-
description: "Текст статуса",
|
|
27
|
+
description: "Текст статуса (макс. 50 символов)",
|
|
30
28
|
}),
|
|
31
29
|
'expires-at': Flags.string({
|
|
32
30
|
description: "Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ",
|
|
@@ -70,6 +68,9 @@ export default class UsersUpdateStatus extends BaseCommand {
|
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
70
|
const validationErrors = [];
|
|
71
|
+
if (flags['title'] && String(flags['title']).length > 50) {
|
|
72
|
+
validationErrors.push({ message: `--title: максимум 50 символов (передано: ${String(flags['title']).length})`, flag: 'title' });
|
|
73
|
+
}
|
|
73
74
|
if (flags['away-message'] && String(flags['away-message']).length > 1024) {
|
|
74
75
|
validationErrors.push({ message: `--away-message: максимум 1024 символов (передано: ${String(flags['away-message']).length})`, flag: 'away-message' });
|
|
75
76
|
}
|
|
@@ -4,7 +4,6 @@ import { BaseCommand } from '../../base-command.js';
|
|
|
4
4
|
export default class UsersUpdate extends BaseCommand {
|
|
5
5
|
static description = "Редактирование сотрудника";
|
|
6
6
|
static examples = [
|
|
7
|
-
"Получить сотрудника по ID:\n $ pachca users get",
|
|
8
7
|
"Массовое создание сотрудников с тегами:\n $ pachca users update",
|
|
9
8
|
"Offboarding сотрудника:\n $ pachca users update"
|
|
10
9
|
];
|
|
@@ -21,22 +20,22 @@ export default class UsersUpdate extends BaseCommand {
|
|
|
21
20
|
static flags = {
|
|
22
21
|
...BaseCommand.baseFlags,
|
|
23
22
|
'first-name': Flags.string({
|
|
24
|
-
description: "Имя",
|
|
23
|
+
description: "Имя (макс. 255 символов)",
|
|
25
24
|
}),
|
|
26
25
|
'last-name': Flags.string({
|
|
27
|
-
description: "Фамилия",
|
|
26
|
+
description: "Фамилия (макс. 255 символов)",
|
|
28
27
|
}),
|
|
29
28
|
'email': Flags.string({
|
|
30
|
-
description: "Электронная почта",
|
|
29
|
+
description: "Электронная почта (макс. 255 символов)",
|
|
31
30
|
}),
|
|
32
31
|
'phone-number': Flags.string({
|
|
33
|
-
description: "Телефон",
|
|
32
|
+
description: "Телефон (макс. 255 символов)",
|
|
34
33
|
}),
|
|
35
34
|
'nickname': Flags.string({
|
|
36
|
-
description: "Имя пользователя",
|
|
35
|
+
description: "Имя пользователя (макс. 255 символов)",
|
|
37
36
|
}),
|
|
38
37
|
'department': Flags.string({
|
|
39
|
-
description: "Департамент",
|
|
38
|
+
description: "Департамент (макс. 255 символов)",
|
|
40
39
|
}),
|
|
41
40
|
'title': Flags.string({
|
|
42
41
|
description: "Должность",
|
|
@@ -58,6 +57,28 @@ export default class UsersUpdate extends BaseCommand {
|
|
|
58
57
|
async run() {
|
|
59
58
|
const { args, flags } = await this.parse(UsersUpdate);
|
|
60
59
|
this.parsedFlags = flags;
|
|
60
|
+
const validationErrors = [];
|
|
61
|
+
if (flags['first-name'] && String(flags['first-name']).length > 255) {
|
|
62
|
+
validationErrors.push({ message: `--first-name: максимум 255 символов (передано: ${String(flags['first-name']).length})`, flag: 'first-name' });
|
|
63
|
+
}
|
|
64
|
+
if (flags['last-name'] && String(flags['last-name']).length > 255) {
|
|
65
|
+
validationErrors.push({ message: `--last-name: максимум 255 символов (передано: ${String(flags['last-name']).length})`, flag: 'last-name' });
|
|
66
|
+
}
|
|
67
|
+
if (flags['email'] && String(flags['email']).length > 255) {
|
|
68
|
+
validationErrors.push({ message: `--email: максимум 255 символов (передано: ${String(flags['email']).length})`, flag: 'email' });
|
|
69
|
+
}
|
|
70
|
+
if (flags['phone-number'] && String(flags['phone-number']).length > 255) {
|
|
71
|
+
validationErrors.push({ message: `--phone-number: максимум 255 символов (передано: ${String(flags['phone-number']).length})`, flag: 'phone-number' });
|
|
72
|
+
}
|
|
73
|
+
if (flags['nickname'] && String(flags['nickname']).length > 255) {
|
|
74
|
+
validationErrors.push({ message: `--nickname: максимум 255 символов (передано: ${String(flags['nickname']).length})`, flag: 'nickname' });
|
|
75
|
+
}
|
|
76
|
+
if (flags['department'] && String(flags['department']).length > 255) {
|
|
77
|
+
validationErrors.push({ message: `--department: максимум 255 символов (передано: ${String(flags['department']).length})`, flag: 'department' });
|
|
78
|
+
}
|
|
79
|
+
if (validationErrors.length > 0) {
|
|
80
|
+
this.validationError(validationErrors);
|
|
81
|
+
}
|
|
61
82
|
const body = { user: {
|
|
62
83
|
first_name: flags['first-name'],
|
|
63
84
|
last_name: flags['last-name'],
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"tasks:get": "Информация о напоминании",
|
|
60
60
|
"tasks:update": "Редактирование напоминания",
|
|
61
61
|
"tasks:delete": "Удаление напоминания",
|
|
62
|
+
"threads:create": "Новый самостоятельный тред",
|
|
62
63
|
"threads:list": "Список тредов",
|
|
63
64
|
"threads:get": "Информация о треде",
|
|
64
65
|
"files:uploads": "Получение подписи, ключа и других параметров",
|
package/dist/data/changelog.json
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "2026.7.1",
|
|
4
|
+
"date": "24 июля 2026",
|
|
5
|
+
"changes": [
|
|
6
|
+
{
|
|
7
|
+
"type": "+",
|
|
8
|
+
"command": "threads create",
|
|
9
|
+
"description": "Новая команда — создание самостоятельного треда без привязки к сообщению"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "-",
|
|
13
|
+
"command": "",
|
|
14
|
+
"description": "Примеры в `--help` больше не смешиваются между командами с общим путём (например, create и list одного ресурса показывали примеры друг друга)"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
2
18
|
{
|
|
3
19
|
"version": "2026.7.0",
|
|
4
20
|
"date": "7 июля 2026",
|