@polza-ai/yandex-tracker-cli 0.1.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/README.md +140 -0
- package/dist/bin/tracker.d.ts +3 -0
- package/dist/bin/tracker.d.ts.map +1 -0
- package/dist/bin/tracker.js +45 -0
- package/dist/bin/tracker.js.map +1 -0
- package/dist/src/client/pagination.d.ts +7 -0
- package/dist/src/client/pagination.d.ts.map +1 -0
- package/dist/src/client/pagination.js +31 -0
- package/dist/src/client/pagination.js.map +1 -0
- package/dist/src/client/tracker-client.d.ts +31 -0
- package/dist/src/client/tracker-client.d.ts.map +1 -0
- package/dist/src/client/tracker-client.js +148 -0
- package/dist/src/client/tracker-client.js.map +1 -0
- package/dist/src/client/types.d.ts +143 -0
- package/dist/src/client/types.d.ts.map +1 -0
- package/dist/src/client/types.js +2 -0
- package/dist/src/client/types.js.map +1 -0
- package/dist/src/commands/checklist.d.ts +3 -0
- package/dist/src/commands/checklist.d.ts.map +1 -0
- package/dist/src/commands/checklist.js +72 -0
- package/dist/src/commands/checklist.js.map +1 -0
- package/dist/src/commands/comment.d.ts +3 -0
- package/dist/src/commands/comment.d.ts.map +1 -0
- package/dist/src/commands/comment.js +52 -0
- package/dist/src/commands/comment.js.map +1 -0
- package/dist/src/commands/create.d.ts +3 -0
- package/dist/src/commands/create.d.ts.map +1 -0
- package/dist/src/commands/create.js +50 -0
- package/dist/src/commands/create.js.map +1 -0
- package/dist/src/commands/init.d.ts +3 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +59 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/link.d.ts +3 -0
- package/dist/src/commands/link.d.ts.map +1 -0
- package/dist/src/commands/link.js +43 -0
- package/dist/src/commands/link.js.map +1 -0
- package/dist/src/commands/sprint.d.ts +3 -0
- package/dist/src/commands/sprint.d.ts.map +1 -0
- package/dist/src/commands/sprint.js +54 -0
- package/dist/src/commands/sprint.js.map +1 -0
- package/dist/src/commands/status.d.ts +3 -0
- package/dist/src/commands/status.d.ts.map +1 -0
- package/dist/src/commands/status.js +40 -0
- package/dist/src/commands/status.js.map +1 -0
- package/dist/src/commands/tasks.d.ts +4 -0
- package/dist/src/commands/tasks.d.ts.map +1 -0
- package/dist/src/commands/tasks.js +63 -0
- package/dist/src/commands/tasks.js.map +1 -0
- package/dist/src/commands/time.d.ts +3 -0
- package/dist/src/commands/time.d.ts.map +1 -0
- package/dist/src/commands/time.js +149 -0
- package/dist/src/commands/time.js.map +1 -0
- package/dist/src/config/auth.d.ts +2 -0
- package/dist/src/config/auth.d.ts.map +1 -0
- package/dist/src/config/auth.js +9 -0
- package/dist/src/config/auth.js.map +1 -0
- package/dist/src/config/config.d.ts +10 -0
- package/dist/src/config/config.d.ts.map +1 -0
- package/dist/src/config/config.js +79 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/config/config.schema.d.ts +67 -0
- package/dist/src/config/config.schema.d.ts.map +1 -0
- package/dist/src/config/config.schema.js +22 -0
- package/dist/src/config/config.schema.js.map +1 -0
- package/dist/src/formatters/json.d.ts +3 -0
- package/dist/src/formatters/json.d.ts.map +1 -0
- package/dist/src/formatters/json.js +7 -0
- package/dist/src/formatters/json.js.map +1 -0
- package/dist/src/formatters/table.d.ts +9 -0
- package/dist/src/formatters/table.d.ts.map +1 -0
- package/dist/src/formatters/table.js +150 -0
- package/dist/src/formatters/table.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/utils/error.d.ts +8 -0
- package/dist/src/utils/error.d.ts.map +1 -0
- package/dist/src/utils/error.js +52 -0
- package/dist/src/utils/error.js.map +1 -0
- package/dist/src/utils/key-resolver.d.ts +2 -0
- package/dist/src/utils/key-resolver.d.ts.map +1 -0
- package/dist/src/utils/key-resolver.js +10 -0
- package/dist/src/utils/key-resolver.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AxiosError } from 'axios';
|
|
2
|
+
export class TrackerCliError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
exitCode;
|
|
5
|
+
constructor(message, code, exitCode = 1) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.exitCode = exitCode;
|
|
9
|
+
this.name = 'TrackerCliError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function handleApiError(error) {
|
|
13
|
+
if (error instanceof TrackerCliError)
|
|
14
|
+
throw error;
|
|
15
|
+
if (error instanceof AxiosError) {
|
|
16
|
+
const status = error.response?.status;
|
|
17
|
+
const body = error.response?.data;
|
|
18
|
+
const messages = body?.errorMessages;
|
|
19
|
+
const apiMessage = messages?.[0] ?? body?.message ?? '';
|
|
20
|
+
switch (status) {
|
|
21
|
+
case 401:
|
|
22
|
+
throw new TrackerCliError('Неверный токен авторизации. Запустите "tracker init" для настройки.', 'AUTH_ERROR', 2);
|
|
23
|
+
case 403:
|
|
24
|
+
throw new TrackerCliError(`Нет доступа. ${apiMessage}`, 'FORBIDDEN', 2);
|
|
25
|
+
case 404:
|
|
26
|
+
throw new TrackerCliError(`Не найдено. ${apiMessage}`, 'NOT_FOUND', 3);
|
|
27
|
+
case 422:
|
|
28
|
+
throw new TrackerCliError(`Невалидный запрос: ${apiMessage}`, 'VALIDATION_ERROR', 4);
|
|
29
|
+
case 429:
|
|
30
|
+
throw new TrackerCliError('Превышен лимит запросов. Подождите и попробуйте снова.', 'RATE_LIMIT', 1);
|
|
31
|
+
default:
|
|
32
|
+
throw new TrackerCliError(`Ошибка API (${status}): ${apiMessage || error.message}`, 'API_ERROR', 1);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (error instanceof Error) {
|
|
36
|
+
throw new TrackerCliError(error.message, 'UNKNOWN', 1);
|
|
37
|
+
}
|
|
38
|
+
throw new TrackerCliError(String(error), 'UNKNOWN', 1);
|
|
39
|
+
}
|
|
40
|
+
export function formatError(error, json) {
|
|
41
|
+
if (error instanceof TrackerCliError) {
|
|
42
|
+
if (json) {
|
|
43
|
+
return JSON.stringify({ ok: false, error: { code: error.code, message: error.message } });
|
|
44
|
+
}
|
|
45
|
+
return error.message;
|
|
46
|
+
}
|
|
47
|
+
if (json) {
|
|
48
|
+
return JSON.stringify({ ok: false, error: { code: 'UNKNOWN', message: String(error) } });
|
|
49
|
+
}
|
|
50
|
+
return String(error);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/utils/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,WAAmB,CAAC;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAY;QAGpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,eAAe;QAAE,MAAM,KAAK,CAAC;IAElD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAA2C,CAAC;QACzE,MAAM,QAAQ,GAAG,IAAI,EAAE,aAAqC,CAAC;QAC7D,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAK,IAAI,EAAE,OAAkB,IAAI,EAAE,CAAC;QAEpE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,IAAI,eAAe,CACvB,qEAAqE,EACrE,YAAY,EAAE,CAAC,CAChB,CAAC;YACJ,KAAK,GAAG;gBACN,MAAM,IAAI,eAAe,CACvB,gBAAgB,UAAU,EAAE,EAC5B,WAAW,EAAE,CAAC,CACf,CAAC;YACJ,KAAK,GAAG;gBACN,MAAM,IAAI,eAAe,CACvB,eAAe,UAAU,EAAE,EAC3B,WAAW,EAAE,CAAC,CACf,CAAC;YACJ,KAAK,GAAG;gBACN,MAAM,IAAI,eAAe,CACvB,sBAAsB,UAAU,EAAE,EAClC,kBAAkB,EAAE,CAAC,CACtB,CAAC;YACJ,KAAK,GAAG;gBACN,MAAM,IAAI,eAAe,CACvB,wDAAwD,EACxD,YAAY,EAAE,CAAC,CAChB,CAAC;YACJ;gBACE,MAAM,IAAI,eAAe,CACvB,eAAe,MAAM,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,EACxD,WAAW,EAAE,CAAC,CACf,CAAC;QACN,CAAC;IACH,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAa;IACvD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-resolver.d.ts","sourceRoot":"","sources":["../../../src/utils/key-resolver.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function resolveKey(input, defaultQueue) {
|
|
2
|
+
if (/^[A-Z][A-Z0-9]+-\d+$/.test(input)) {
|
|
3
|
+
return input;
|
|
4
|
+
}
|
|
5
|
+
if (/^\d+$/.test(input) && defaultQueue) {
|
|
6
|
+
return `${defaultQueue}-${input}`;
|
|
7
|
+
}
|
|
8
|
+
return input;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=key-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-resolver.js","sourceRoot":"","sources":["../../../src/utils/key-resolver.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,YAAqB;IAC7D,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,OAAO,GAAG,YAAY,IAAI,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@polza-ai/yandex-tracker-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "CLI tool for Yandex Tracker — for humans and AI agents",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/polza-ai/yandex-tracker-cli.git"
|
|
9
|
+
},
|
|
10
|
+
"keywords": ["yandex", "tracker", "cli", "ai", "agent", "project-management"],
|
|
11
|
+
"type": "module",
|
|
12
|
+
"bin": {
|
|
13
|
+
"tracker": "./dist/bin/tracker.js"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"dev": "tsx bin/tracker.ts",
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"lint": "eslint src/ bin/",
|
|
21
|
+
"typecheck": "tsc --noEmit"
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20.0.0"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"axios": "^1.7.0",
|
|
31
|
+
"chalk": "^5.3.0",
|
|
32
|
+
"cli-table3": "^0.6.5",
|
|
33
|
+
"commander": "^12.1.0",
|
|
34
|
+
"dayjs": "^1.11.13",
|
|
35
|
+
"ora": "^8.1.0",
|
|
36
|
+
"zod": "^3.23.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^20.14.0",
|
|
40
|
+
"eslint": "^8.57.0",
|
|
41
|
+
"tsx": "^4.19.0",
|
|
42
|
+
"typescript": "^5.5.0",
|
|
43
|
+
"vitest": "^1.6.0"
|
|
44
|
+
}
|
|
45
|
+
}
|