rustore 1.0.1 → 1.0.2
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 +82 -5
- package/dist/api/apps.d.ts +42 -4
- package/dist/api/apps.d.ts.map +1 -1
- package/dist/api/apps.js +103 -15
- package/dist/api/apps.js.map +1 -1
- package/dist/api/auth.d.ts +8 -0
- package/dist/api/auth.d.ts.map +1 -1
- package/dist/api/auth.js +8 -0
- package/dist/api/auth.js.map +1 -1
- package/dist/api/catalog.d.ts +2 -0
- package/dist/api/catalog.d.ts.map +1 -1
- package/dist/api/catalog.js +2 -0
- package/dist/api/catalog.js.map +1 -1
- package/dist/api/client.d.ts +6 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +21 -5
- package/dist/api/client.js.map +1 -1
- package/dist/api/feedback.d.ts +86 -0
- package/dist/api/feedback.d.ts.map +1 -0
- package/dist/api/feedback.js +113 -0
- package/dist/api/feedback.js.map +1 -0
- package/dist/api/payments-app.d.ts +2 -0
- package/dist/api/payments-app.d.ts.map +1 -1
- package/dist/api/payments-app.js +2 -0
- package/dist/api/payments-app.js.map +1 -1
- package/dist/api/payments.d.ts +2 -0
- package/dist/api/payments.d.ts.map +1 -1
- package/dist/api/payments.js +2 -0
- package/dist/api/payments.js.map +1 -1
- package/dist/bin.js +174 -2
- package/dist/bin.js.map +1 -1
- package/dist/commands/apps.d.ts +13 -0
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +85 -2
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/feedback.d.ts +30 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +189 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API для работы с отзывами
|
|
3
|
+
* Категория: Работа с отзывами с помощью RuStore API
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process
|
|
6
|
+
*/
|
|
7
|
+
import { RustoreApiClient } from './client.js';
|
|
8
|
+
import type { GetFeedbackResponse, GetFeedbackOptions, CreateFeedbackAnswerRequest, CreateFeedbackAnswerResponse, GetFeedbackAnswerStatusResponse, UpdateFeedbackAnswerRequest, UpdateFeedbackAnswerResponse, DeleteFeedbackAnswerResponse } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Клиент для работы с отзывами
|
|
11
|
+
*/
|
|
12
|
+
export declare class FeedbackApi extends RustoreApiClient {
|
|
13
|
+
/**
|
|
14
|
+
* Получить отзывы приложения
|
|
15
|
+
* GET /public/v1/application/{packageName}/feedback
|
|
16
|
+
*
|
|
17
|
+
* Метод позволяет получить отзывы для указанного приложения.
|
|
18
|
+
*
|
|
19
|
+
* @param packageName - Наименование пакета приложения
|
|
20
|
+
* @param options - Параметры запроса (continuationToken, pageSize и др.)
|
|
21
|
+
* @returns Список отзывов
|
|
22
|
+
*
|
|
23
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/get-feedback
|
|
24
|
+
*/
|
|
25
|
+
getFeedback(packageName: string, options?: GetFeedbackOptions): Promise<GetFeedbackResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Оставить ответ на отзыв
|
|
28
|
+
* POST /public/v1/application/{packageName}/feedback/{commentId}/answer
|
|
29
|
+
*
|
|
30
|
+
* Метод позволяет оставить ответ на отзыв пользователя.
|
|
31
|
+
*
|
|
32
|
+
* @param packageName - Наименование пакета приложения
|
|
33
|
+
* @param commentId - ID отзыва
|
|
34
|
+
* @param data - Данные ответа (text)
|
|
35
|
+
* @returns Информация о созданном ответе
|
|
36
|
+
*
|
|
37
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/feedback-answer
|
|
38
|
+
*/
|
|
39
|
+
createFeedbackAnswer(packageName: string, commentId: number, data: CreateFeedbackAnswerRequest): Promise<CreateFeedbackAnswerResponse>;
|
|
40
|
+
/**
|
|
41
|
+
* Получить статус ответа на отзыв
|
|
42
|
+
* GET /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
43
|
+
*
|
|
44
|
+
* Метод позволяет получить статус модерации ответа на отзыв или получить информацию
|
|
45
|
+
* на отдельно взятый ответ на отзыв.
|
|
46
|
+
*
|
|
47
|
+
* @param packageName - Наименование пакета приложения
|
|
48
|
+
* @param feedbackId - ID ответа на отзыв (необязательно, если не указан - возвращает все ответы)
|
|
49
|
+
* @returns Информация о статусе ответа(ов)
|
|
50
|
+
*
|
|
51
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/get-feedback-status
|
|
52
|
+
*/
|
|
53
|
+
getFeedbackAnswerStatus(packageName: string, feedbackId?: number): Promise<GetFeedbackAnswerStatusResponse>;
|
|
54
|
+
/**
|
|
55
|
+
* Изменить ответ на отзыв
|
|
56
|
+
* PUT /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
57
|
+
*
|
|
58
|
+
* Метод позволяет изменить текст ответа на отзыв.
|
|
59
|
+
*
|
|
60
|
+
* @param packageName - Наименование пакета приложения
|
|
61
|
+
* @param feedbackId - ID ответа на отзыв
|
|
62
|
+
* @param data - Новые данные ответа (text)
|
|
63
|
+
* @returns Информация об изменённом ответе
|
|
64
|
+
*
|
|
65
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/change-feedback-answer
|
|
66
|
+
*/
|
|
67
|
+
updateFeedbackAnswer(packageName: string, feedbackId: number, data: UpdateFeedbackAnswerRequest): Promise<UpdateFeedbackAnswerResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* Удалить ответ на отзыв
|
|
70
|
+
* DELETE /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
71
|
+
*
|
|
72
|
+
* Метод позволяет удалить ответ на отзыв.
|
|
73
|
+
*
|
|
74
|
+
* @param packageName - Наименование пакета приложения
|
|
75
|
+
* @param feedbackId - ID ответа на отзыв
|
|
76
|
+
* @returns Результат удаления
|
|
77
|
+
*
|
|
78
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/delete-feedback-answer
|
|
79
|
+
*/
|
|
80
|
+
deleteFeedbackAnswer(packageName: string, feedbackId: number): Promise<DeleteFeedbackAnswerResponse>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Экспортируемый экземпляр клиента для работы с отзывами
|
|
84
|
+
*/
|
|
85
|
+
export declare const feedbackApi: FeedbackApi;
|
|
86
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/api/feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAAgB;IAC/C;;;;;;;;;;;OAWG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IAmB/B;;;;;;;;;;;;OAYG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,4BAA4B,CAAC;IAKxC;;;;;;;;;;;;OAYG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,+BAA+B,CAAC;IAO3C;;;;;;;;;;;;OAYG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,4BAA4B,CAAC;IAKxC;;;;;;;;;;;OAWG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,CAAC;CAIzC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API для работы с отзывами
|
|
3
|
+
* Категория: Работа с отзывами с помощью RuStore API
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process
|
|
6
|
+
*/
|
|
7
|
+
import { RustoreApiClient } from './client.js';
|
|
8
|
+
/**
|
|
9
|
+
* Клиент для работы с отзывами
|
|
10
|
+
*/
|
|
11
|
+
export class FeedbackApi extends RustoreApiClient {
|
|
12
|
+
/**
|
|
13
|
+
* Получить отзывы приложения
|
|
14
|
+
* GET /public/v1/application/{packageName}/feedback
|
|
15
|
+
*
|
|
16
|
+
* Метод позволяет получить отзывы для указанного приложения.
|
|
17
|
+
*
|
|
18
|
+
* @param packageName - Наименование пакета приложения
|
|
19
|
+
* @param options - Параметры запроса (continuationToken, pageSize и др.)
|
|
20
|
+
* @returns Список отзывов
|
|
21
|
+
*
|
|
22
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/get-feedback
|
|
23
|
+
*/
|
|
24
|
+
async getFeedback(packageName, options) {
|
|
25
|
+
const endpoint = `/public/v1/application/${packageName}/feedback`;
|
|
26
|
+
// Формируем query параметры
|
|
27
|
+
const queryParams = new URLSearchParams();
|
|
28
|
+
if (options) {
|
|
29
|
+
Object.entries(options).forEach(([key, value]) => {
|
|
30
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
31
|
+
queryParams.append(key, String(value));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const queryString = queryParams.toString();
|
|
36
|
+
const finalEndpoint = queryString ? `${endpoint}?${queryString}` : endpoint;
|
|
37
|
+
return this.get(finalEndpoint);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Оставить ответ на отзыв
|
|
41
|
+
* POST /public/v1/application/{packageName}/feedback/{commentId}/answer
|
|
42
|
+
*
|
|
43
|
+
* Метод позволяет оставить ответ на отзыв пользователя.
|
|
44
|
+
*
|
|
45
|
+
* @param packageName - Наименование пакета приложения
|
|
46
|
+
* @param commentId - ID отзыва
|
|
47
|
+
* @param data - Данные ответа (text)
|
|
48
|
+
* @returns Информация о созданном ответе
|
|
49
|
+
*
|
|
50
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/feedback-answer
|
|
51
|
+
*/
|
|
52
|
+
async createFeedbackAnswer(packageName, commentId, data) {
|
|
53
|
+
const endpoint = `/public/v1/application/${packageName}/feedback/${commentId}/answer`;
|
|
54
|
+
return this.post(endpoint, data);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Получить статус ответа на отзыв
|
|
58
|
+
* GET /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
59
|
+
*
|
|
60
|
+
* Метод позволяет получить статус модерации ответа на отзыв или получить информацию
|
|
61
|
+
* на отдельно взятый ответ на отзыв.
|
|
62
|
+
*
|
|
63
|
+
* @param packageName - Наименование пакета приложения
|
|
64
|
+
* @param feedbackId - ID ответа на отзыв (необязательно, если не указан - возвращает все ответы)
|
|
65
|
+
* @returns Информация о статусе ответа(ов)
|
|
66
|
+
*
|
|
67
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/get-feedback-status
|
|
68
|
+
*/
|
|
69
|
+
async getFeedbackAnswerStatus(packageName, feedbackId) {
|
|
70
|
+
const endpoint = feedbackId
|
|
71
|
+
? `/public/v1/application/${packageName}/feedback/${feedbackId}`
|
|
72
|
+
: `/public/v1/application/${packageName}/feedback`;
|
|
73
|
+
return this.get(endpoint);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Изменить ответ на отзыв
|
|
77
|
+
* PUT /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
78
|
+
*
|
|
79
|
+
* Метод позволяет изменить текст ответа на отзыв.
|
|
80
|
+
*
|
|
81
|
+
* @param packageName - Наименование пакета приложения
|
|
82
|
+
* @param feedbackId - ID ответа на отзыв
|
|
83
|
+
* @param data - Новые данные ответа (text)
|
|
84
|
+
* @returns Информация об изменённом ответе
|
|
85
|
+
*
|
|
86
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/change-feedback-answer
|
|
87
|
+
*/
|
|
88
|
+
async updateFeedbackAnswer(packageName, feedbackId, data) {
|
|
89
|
+
const endpoint = `/public/v1/application/${packageName}/feedback/${feedbackId}`;
|
|
90
|
+
return this.put(endpoint, data);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Удалить ответ на отзыв
|
|
94
|
+
* DELETE /public/v1/application/{packageName}/feedback/{feedbackId}
|
|
95
|
+
*
|
|
96
|
+
* Метод позволяет удалить ответ на отзыв.
|
|
97
|
+
*
|
|
98
|
+
* @param packageName - Наименование пакета приложения
|
|
99
|
+
* @param feedbackId - ID ответа на отзыв
|
|
100
|
+
* @returns Результат удаления
|
|
101
|
+
*
|
|
102
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-feedback-process/delete-feedback-answer
|
|
103
|
+
*/
|
|
104
|
+
async deleteFeedbackAnswer(packageName, feedbackId) {
|
|
105
|
+
const endpoint = `/public/v1/application/${packageName}/feedback/${feedbackId}`;
|
|
106
|
+
return this.delete(endpoint);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Экспортируемый экземпляр клиента для работы с отзывами
|
|
111
|
+
*/
|
|
112
|
+
export const feedbackApi = new FeedbackApi();
|
|
113
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/api/feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAY7C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,gBAAgB;IAC/C;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,OAA4B;QAE5B,MAAM,QAAQ,GAAG,0BAA0B,WAAW,WAAW,CAAC;QAElE,4BAA4B;QAC5B,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBAC1D,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,OAAO,IAAI,CAAC,GAAG,CAAsB,aAAa,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,SAAiB,EACjB,IAAiC;QAEjC,MAAM,QAAQ,GAAG,0BAA0B,WAAW,aAAa,SAAS,SAAS,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAA+B,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAmB,EACnB,UAAmB;QAEnB,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,0BAA0B,WAAW,aAAa,UAAU,EAAE;YAChE,CAAC,CAAC,0BAA0B,WAAW,WAAW,CAAC;QACrD,OAAO,IAAI,CAAC,GAAG,CAAkC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,UAAkB,EAClB,IAAiC;QAEjC,MAAM,QAAQ,GAAG,0BAA0B,WAAW,aAAa,UAAU,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC,GAAG,CAA+B,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,UAAkB;QAElB,MAAM,QAAQ,GAAG,0BAA0B,WAAW,aAAa,UAAU,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC,MAAM,CAA+B,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API для работы с платежами и подписками (методы приложений)
|
|
3
3
|
* Категория: Работа с платежами и подписками (методы приложений)
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-payments-subscriptions-app
|
|
4
6
|
*/
|
|
5
7
|
import { RustoreApiClient } from './client.js';
|
|
6
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments-app.d.ts","sourceRoot":"","sources":["../../src/api/payments-app.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"payments-app.d.ts","sourceRoot":"","sources":["../../src/api/payments-app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;CAGnD;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
package/dist/api/payments-app.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API для работы с платежами и подписками (методы приложений)
|
|
3
3
|
* Категория: Работа с платежами и подписками (методы приложений)
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.rustore.ru/help/work-with-rustore-api/api-payments-subscriptions-app
|
|
4
6
|
*/
|
|
5
7
|
import { RustoreApiClient } from './client.js';
|
|
6
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments-app.js","sourceRoot":"","sources":["../../src/api/payments-app.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"payments-app.js","sourceRoot":"","sources":["../../src/api/payments-app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;CAGnD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
package/dist/api/payments.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/api/payments.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/api/payments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAAgB;CAGhD;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
package/dist/api/payments.js
CHANGED
package/dist/api/payments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/api/payments.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/api/payments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,gBAAgB;CAGhD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
package/dist/bin.js
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import { loginCommand, logoutCommand, whoamiCommand } from './commands/auth.js';
|
|
7
|
-
import { listAppsCommand } from './commands/apps.js';
|
|
7
|
+
import { listAppsCommand, createDraftVersionCommand, uploadApkFileCommand, } from './commands/apps.js';
|
|
8
|
+
import { getFeedbackCommand, createFeedbackAnswerCommand, getFeedbackAnswerStatusCommand, updateFeedbackAnswerCommand, deleteFeedbackAnswerCommand, } from './commands/feedback.js';
|
|
8
9
|
import { readFileSync } from 'node:fs';
|
|
9
10
|
import { fileURLToPath } from 'node:url';
|
|
10
11
|
import { dirname, join } from 'node:path';
|
|
@@ -64,11 +65,182 @@ const appsCommand = program.command('apps').description('Работа с при
|
|
|
64
65
|
appsCommand
|
|
65
66
|
.command('list')
|
|
66
67
|
.description('Получить список приложений')
|
|
68
|
+
.allowUnknownOption() // Разрешаем произвольные параметры для поддержки новых параметров API
|
|
69
|
+
.allowExcessArguments() // Разрешаем дополнительные аргументы
|
|
67
70
|
.option('-a, --all', 'Получить все приложения (с пагинацией)')
|
|
68
71
|
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
72
|
+
.option('--page-size <size>', 'Размер страницы (количество приложений на странице)', parseInt)
|
|
73
|
+
.option('--app-name <name>', 'Фильтр по имени приложения')
|
|
74
|
+
.option('--package-name <name>', 'Фильтр по package name')
|
|
75
|
+
.option('--app-status <status>', 'Фильтр по статусу приложения (PUBLISHED, DRAFT и т.д.)')
|
|
76
|
+
.option('--paid <true|false>', 'Фильтр по платным/бесплатным приложениям (TODO: может не работать)')
|
|
69
77
|
.action(async (options) => {
|
|
70
78
|
try {
|
|
71
|
-
|
|
79
|
+
// Парсим неизвестные опции из process.argv
|
|
80
|
+
// Commander не передает неизвестные опции в options автоматически,
|
|
81
|
+
// поэтому парсим их вручную для поддержки будущих параметров API
|
|
82
|
+
const unknownOptions = {};
|
|
83
|
+
const knownOptionFlags = [
|
|
84
|
+
'-a',
|
|
85
|
+
'--all',
|
|
86
|
+
'-j',
|
|
87
|
+
'--json',
|
|
88
|
+
'--page-size',
|
|
89
|
+
'--app-name',
|
|
90
|
+
'--package-name',
|
|
91
|
+
'--app-status',
|
|
92
|
+
];
|
|
93
|
+
// Находим индекс команды 'list' в process.argv
|
|
94
|
+
const listIndex = process.argv.indexOf('list');
|
|
95
|
+
if (listIndex >= 0) {
|
|
96
|
+
// Парсим аргументы после 'list'
|
|
97
|
+
for (let i = listIndex + 1; i < process.argv.length; i++) {
|
|
98
|
+
const arg = process.argv[i];
|
|
99
|
+
if (arg?.startsWith('--') && !knownOptionFlags.includes(arg)) {
|
|
100
|
+
const key = arg.replace(/^--/, '');
|
|
101
|
+
const value = process.argv[i + 1];
|
|
102
|
+
if (value && !value.startsWith('--')) {
|
|
103
|
+
// Конвертируем kebab-case в camelCase для соответствия API
|
|
104
|
+
const camelKey = key.replace(/-([a-z])/g, (_match, letter) => letter.toUpperCase());
|
|
105
|
+
// Парсим значение: boolean, number или string
|
|
106
|
+
let parsedValue;
|
|
107
|
+
const lowerValue = value.toLowerCase();
|
|
108
|
+
if (lowerValue === 'true') {
|
|
109
|
+
parsedValue = true;
|
|
110
|
+
}
|
|
111
|
+
else if (lowerValue === 'false') {
|
|
112
|
+
parsedValue = false;
|
|
113
|
+
}
|
|
114
|
+
else if (!isNaN(Number(value)) && value.trim() !== '') {
|
|
115
|
+
parsedValue = Number(value);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
parsedValue = value;
|
|
119
|
+
}
|
|
120
|
+
unknownOptions[camelKey] = parsedValue;
|
|
121
|
+
i++; // Пропускаем значение
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Объединяем известные и неизвестные опции
|
|
127
|
+
// Благодаря индексной сигнатуре [key: string] в listAppsCommand,
|
|
128
|
+
// все новые параметры API будут автоматически переданы в запрос
|
|
129
|
+
await listAppsCommand({ ...options, ...unknownOptions });
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
appsCommand
|
|
137
|
+
.command('create-draft')
|
|
138
|
+
.description('Создать черновую версию приложения')
|
|
139
|
+
.requiredOption('--app-id <id>', 'ID приложения', parseInt)
|
|
140
|
+
.requiredOption('--version-name <name>', 'Имя версии (например, 1.0.0)')
|
|
141
|
+
.requiredOption('--version-code <code>', 'Код версии (число)', parseInt)
|
|
142
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
143
|
+
.action(async (options) => {
|
|
144
|
+
try {
|
|
145
|
+
await createDraftVersionCommand(options.appId, options.versionName, options.versionCode, options.json);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
appsCommand
|
|
153
|
+
.command('upload-apk')
|
|
154
|
+
.description('Загрузить APK/AAB файл для версии приложения')
|
|
155
|
+
.requiredOption('--app-id <id>', 'ID приложения', parseInt)
|
|
156
|
+
.requiredOption('--version-id <id>', 'ID версии (из create-draft)', parseInt)
|
|
157
|
+
.requiredOption('--file <path>', 'Путь к APK/AAB файлу')
|
|
158
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
159
|
+
.action(async (options) => {
|
|
160
|
+
try {
|
|
161
|
+
await uploadApkFileCommand(options.appId, options.versionId, options.file, options.json);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
// Команды для работы с отзывами
|
|
169
|
+
const feedbackCommand = program
|
|
170
|
+
.command('feedback')
|
|
171
|
+
.description('Работа с отзывами приложений');
|
|
172
|
+
feedbackCommand
|
|
173
|
+
.command('list')
|
|
174
|
+
.description('Получить отзывы приложения')
|
|
175
|
+
.requiredOption('--package-name <name>', 'Package name приложения')
|
|
176
|
+
.option('-a, --all', 'Получить все отзывы (с пагинацией)')
|
|
177
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
178
|
+
.option('--page-size <size>', 'Размер страницы', parseInt)
|
|
179
|
+
.action(async (options) => {
|
|
180
|
+
try {
|
|
181
|
+
await getFeedbackCommand(options.packageName, options);
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
feedbackCommand
|
|
189
|
+
.command('answer')
|
|
190
|
+
.description('Оставить ответ на отзыв')
|
|
191
|
+
.requiredOption('--package-name <name>', 'Package name приложения')
|
|
192
|
+
.requiredOption('--comment-id <id>', 'ID отзыва', parseInt)
|
|
193
|
+
.requiredOption('--text <text>', 'Текст ответа')
|
|
194
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
195
|
+
.action(async (options) => {
|
|
196
|
+
try {
|
|
197
|
+
await createFeedbackAnswerCommand(options.packageName, options.commentId, options.text, options.json);
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
feedbackCommand
|
|
205
|
+
.command('status')
|
|
206
|
+
.description('Получить статус ответа на отзыв')
|
|
207
|
+
.requiredOption('--package-name <name>', 'Package name приложения')
|
|
208
|
+
.option('--feedback-id <id>', 'ID ответа на отзыв (если не указан - все ответы)', parseInt)
|
|
209
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
210
|
+
.action(async (options) => {
|
|
211
|
+
try {
|
|
212
|
+
await getFeedbackAnswerStatusCommand(options.packageName, options.feedbackId, options.json);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
feedbackCommand
|
|
220
|
+
.command('update')
|
|
221
|
+
.description('Изменить ответ на отзыв')
|
|
222
|
+
.requiredOption('--package-name <name>', 'Package name приложения')
|
|
223
|
+
.requiredOption('--feedback-id <id>', 'ID ответа на отзыв', parseInt)
|
|
224
|
+
.requiredOption('--text <text>', 'Новый текст ответа')
|
|
225
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
226
|
+
.action(async (options) => {
|
|
227
|
+
try {
|
|
228
|
+
await updateFeedbackAnswerCommand(options.packageName, options.feedbackId, options.text, options.json);
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
feedbackCommand
|
|
236
|
+
.command('delete')
|
|
237
|
+
.description('Удалить ответ на отзыв')
|
|
238
|
+
.requiredOption('--package-name <name>', 'Package name приложения')
|
|
239
|
+
.requiredOption('--feedback-id <id>', 'ID ответа на отзыв', parseInt)
|
|
240
|
+
.option('-j, --json', 'Вывести результат в формате JSON')
|
|
241
|
+
.action(async (options) => {
|
|
242
|
+
try {
|
|
243
|
+
await deleteFeedbackAnswerCommand(options.packageName, options.feedbackId, options.json);
|
|
72
244
|
}
|
|
73
245
|
catch (error) {
|
|
74
246
|
console.error('Ошибка:', error instanceof Error ? error.message : String(error));
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/apps.d.ts
CHANGED
|
@@ -7,5 +7,18 @@
|
|
|
7
7
|
export declare function listAppsCommand(options: {
|
|
8
8
|
all?: boolean;
|
|
9
9
|
json?: boolean;
|
|
10
|
+
pageSize?: number;
|
|
11
|
+
appName?: string;
|
|
12
|
+
packageName?: string;
|
|
13
|
+
appStatus?: string;
|
|
14
|
+
[key: string]: string | number | boolean | undefined;
|
|
10
15
|
}): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Команда создания черновой версии приложения
|
|
18
|
+
*/
|
|
19
|
+
export declare function createDraftVersionCommand(appId: number, versionName: string, versionCode: number, json?: boolean): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Команда загрузки APK/AAB файла
|
|
22
|
+
*/
|
|
23
|
+
export declare function uploadApkFileCommand(appId: number, versionId: number, filePath: string, json?: boolean): Promise<void>;
|
|
11
24
|
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChB;AAgDD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,OAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,OAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
package/dist/commands/apps.js
CHANGED
|
@@ -7,12 +7,24 @@ import { appsApi } from '../api/apps.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export async function listAppsCommand(options) {
|
|
9
9
|
try {
|
|
10
|
+
// Извлекаем API параметры из options
|
|
11
|
+
// Конвертируем kebab-case CLI опции в camelCase для API
|
|
12
|
+
const apiOptions = {};
|
|
13
|
+
// Копируем только API параметры (исключаем CLI опции)
|
|
14
|
+
const cliOptions = ['all', 'json'];
|
|
15
|
+
Object.entries(options).forEach(([key, value]) => {
|
|
16
|
+
if (!cliOptions.includes(key) && value !== undefined) {
|
|
17
|
+
// Конвертируем kebab-case в camelCase для соответствия API
|
|
18
|
+
const apiKey = key.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
19
|
+
apiOptions[apiKey] = value;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
10
22
|
if (options.all) {
|
|
11
|
-
const apps = await appsApi.getAllApps();
|
|
23
|
+
const apps = await appsApi.getAllApps(apiOptions);
|
|
12
24
|
outputApps(apps, options.json);
|
|
13
25
|
}
|
|
14
26
|
else {
|
|
15
|
-
const response = await appsApi.getAppList();
|
|
27
|
+
const response = await appsApi.getAppList(apiOptions);
|
|
16
28
|
outputApps(response.body.content, options.json);
|
|
17
29
|
if (response.body.continuationToken) {
|
|
18
30
|
console.log(`\n⚠️ Есть ещё приложения. Используйте --all для получения полного списка.`);
|
|
@@ -42,11 +54,82 @@ function outputApps(apps, json = false) {
|
|
|
42
54
|
console.log(` ID: ${app.appId}`);
|
|
43
55
|
console.log(` Статус: ${app.appStatus}`);
|
|
44
56
|
console.log(` Версия: ${app.versionName} (${app.versionCode})`);
|
|
57
|
+
if (app.versionType) {
|
|
58
|
+
console.log(` Тип версии: ${app.versionType}`);
|
|
59
|
+
}
|
|
60
|
+
console.log(` Компания: ${app.companyName}${app.companyId ? ` (ID: ${app.companyId})` : ''}`);
|
|
61
|
+
if (app.role) {
|
|
62
|
+
console.log(` Роль: ${app.role}`);
|
|
63
|
+
}
|
|
64
|
+
console.log(` Устройство: ${app.deviceType}`);
|
|
65
|
+
console.log(` Цена: ${app.activePrice > 0 ? `${app.activePrice} ₽` : 'Бесплатно'} (paid: ${app.paid})`);
|
|
45
66
|
console.log(` Обновлено: ${new Date(app.appVerUpdatedAt).toLocaleString('ru-RU')}`);
|
|
46
67
|
if (app.shortDescription) {
|
|
47
68
|
console.log(` Описание: ${app.shortDescription}`);
|
|
48
69
|
}
|
|
70
|
+
if (app.iconUrl) {
|
|
71
|
+
console.log(` Иконка: ${app.iconUrl}`);
|
|
72
|
+
}
|
|
49
73
|
console.log('');
|
|
50
74
|
});
|
|
51
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Команда создания черновой версии приложения
|
|
78
|
+
*/
|
|
79
|
+
export async function createDraftVersionCommand(appId, versionName, versionCode, json = false) {
|
|
80
|
+
try {
|
|
81
|
+
const data = {
|
|
82
|
+
versionName,
|
|
83
|
+
versionCode,
|
|
84
|
+
};
|
|
85
|
+
const response = await appsApi.createDraftVersion(appId, data);
|
|
86
|
+
if (json) {
|
|
87
|
+
console.log(JSON.stringify(response, null, 2));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (response.code === 'OK' || response.code === '200') {
|
|
91
|
+
console.log('✅ Черновая версия успешно создана!');
|
|
92
|
+
if (response.body) {
|
|
93
|
+
console.log(` ID версии: ${response.body.versionId || 'N/A'}`);
|
|
94
|
+
console.log(` Имя версии: ${response.body.versionName || versionName}`);
|
|
95
|
+
console.log(` Код версии: ${response.body.versionCode || versionCode}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw new Error(response.message || 'Неизвестная ошибка');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw new Error(`Ошибка создания черновой версии: ${error instanceof Error ? error.message : String(error)}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Команда загрузки APK/AAB файла
|
|
108
|
+
*/
|
|
109
|
+
export async function uploadApkFileCommand(appId, versionId, filePath, json = false) {
|
|
110
|
+
try {
|
|
111
|
+
const response = await appsApi.uploadApkFile(appId, versionId, filePath);
|
|
112
|
+
if (json) {
|
|
113
|
+
console.log(JSON.stringify(response, null, 2));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (response.code === 'OK' || response.code === '200') {
|
|
117
|
+
console.log('✅ APK/AAB файл успешно загружен!');
|
|
118
|
+
if (response.body) {
|
|
119
|
+
console.log(` ID файла: ${response.body.fileId || 'N/A'}`);
|
|
120
|
+
console.log(` Имя файла: ${response.body.fileName || 'N/A'}`);
|
|
121
|
+
if (response.body.fileSize) {
|
|
122
|
+
const sizeMB = (response.body.fileSize / (1024 * 1024)).toFixed(2);
|
|
123
|
+
console.log(` Размер: ${sizeMB} MB`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
throw new Error(response.message || 'Неизвестная ошибка');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
throw new Error(`Ошибка загрузки APK файла: ${error instanceof Error ? error.message : String(error)}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
52
135
|
//# sourceMappingURL=apps.js.map
|