@v3finance/monitoring-sdk 0.1.0 → 0.2.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/CHANGELOG.md +21 -11
- package/README.md +223 -148
- package/dist/cjs/client.d.ts +23 -42
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +44 -53
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/core/errors.d.ts +18 -18
- package/dist/cjs/core/errors.d.ts.map +1 -1
- package/dist/cjs/core/errors.js +17 -17
- package/dist/cjs/core/errors.js.map +1 -1
- package/dist/cjs/core/http.d.ts +22 -26
- package/dist/cjs/core/http.d.ts.map +1 -1
- package/dist/cjs/core/http.js +28 -36
- package/dist/cjs/core/http.js.map +1 -1
- package/dist/cjs/core/pagination.d.ts +6 -7
- package/dist/cjs/core/pagination.d.ts.map +1 -1
- package/dist/cjs/core/pagination.js +1 -1
- package/dist/cjs/core/pagination.js.map +1 -1
- package/dist/cjs/core/scope.d.ts +8 -0
- package/dist/cjs/core/scope.d.ts.map +1 -0
- package/dist/cjs/core/scope.js +3 -0
- package/dist/cjs/core/scope.js.map +1 -0
- package/dist/cjs/generated/types.d.ts +129 -117
- package/dist/cjs/generated/types.d.ts.map +1 -1
- package/dist/cjs/generated/types.js +1 -1
- package/dist/cjs/generated/types.js.map +1 -1
- package/dist/cjs/index.d.ts +6 -6
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +13 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/account.d.ts +12 -51
- package/dist/cjs/resources/account.d.ts.map +1 -1
- package/dist/cjs/resources/account.js +17 -61
- package/dist/cjs/resources/account.js.map +1 -1
- package/dist/cjs/resources/addresses.d.ts +49 -65
- package/dist/cjs/resources/addresses.d.ts.map +1 -1
- package/dist/cjs/resources/addresses.js +60 -69
- package/dist/cjs/resources/addresses.js.map +1 -1
- package/dist/cjs/resources/catalog.d.ts +17 -10
- package/dist/cjs/resources/catalog.d.ts.map +1 -1
- package/dist/cjs/resources/catalog.js +23 -17
- package/dist/cjs/resources/catalog.js.map +1 -1
- package/dist/cjs/resources/deliveries.d.ts +34 -23
- package/dist/cjs/resources/deliveries.d.ts.map +1 -1
- package/dist/cjs/resources/deliveries.js +27 -17
- package/dist/cjs/resources/deliveries.js.map +1 -1
- package/dist/cjs/resources/transactions.d.ts +14 -14
- package/dist/cjs/resources/transactions.d.ts.map +1 -1
- package/dist/cjs/resources/transactions.js +15 -16
- package/dist/cjs/resources/transactions.js.map +1 -1
- package/dist/cjs/resources/webhooks.d.ts +22 -0
- package/dist/cjs/resources/webhooks.d.ts.map +1 -0
- package/dist/cjs/resources/webhooks.js +35 -0
- package/dist/cjs/resources/webhooks.js.map +1 -0
- package/dist/cjs/units.d.ts +11 -11
- package/dist/cjs/units.js +14 -14
- package/dist/cjs/units.js.map +1 -1
- package/dist/cjs/version.d.ts +3 -3
- package/dist/cjs/version.d.ts.map +1 -1
- package/dist/cjs/version.js +3 -3
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/webhooks.d.ts +33 -28
- package/dist/cjs/webhooks.d.ts.map +1 -1
- package/dist/cjs/webhooks.js +33 -28
- package/dist/cjs/webhooks.js.map +1 -1
- package/dist/esm/client.d.ts +23 -42
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +46 -55
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/core/errors.d.ts +18 -18
- package/dist/esm/core/errors.d.ts.map +1 -1
- package/dist/esm/core/errors.js +17 -17
- package/dist/esm/core/errors.js.map +1 -1
- package/dist/esm/core/http.d.ts +22 -26
- package/dist/esm/core/http.d.ts.map +1 -1
- package/dist/esm/core/http.js +28 -36
- package/dist/esm/core/http.js.map +1 -1
- package/dist/esm/core/pagination.d.ts +6 -7
- package/dist/esm/core/pagination.d.ts.map +1 -1
- package/dist/esm/core/pagination.js +1 -1
- package/dist/esm/core/pagination.js.map +1 -1
- package/dist/esm/core/scope.d.ts +8 -0
- package/dist/esm/core/scope.d.ts.map +1 -0
- package/dist/esm/core/scope.js +2 -0
- package/dist/esm/core/scope.js.map +1 -0
- package/dist/esm/generated/types.d.ts +129 -117
- package/dist/esm/generated/types.d.ts.map +1 -1
- package/dist/esm/generated/types.js +1 -1
- package/dist/esm/generated/types.js.map +1 -1
- package/dist/esm/index.d.ts +6 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/account.d.ts +12 -51
- package/dist/esm/resources/account.d.ts.map +1 -1
- package/dist/esm/resources/account.js +15 -57
- package/dist/esm/resources/account.js.map +1 -1
- package/dist/esm/resources/addresses.d.ts +49 -65
- package/dist/esm/resources/addresses.d.ts.map +1 -1
- package/dist/esm/resources/addresses.js +60 -69
- package/dist/esm/resources/addresses.js.map +1 -1
- package/dist/esm/resources/catalog.d.ts +17 -10
- package/dist/esm/resources/catalog.d.ts.map +1 -1
- package/dist/esm/resources/catalog.js +23 -17
- package/dist/esm/resources/catalog.js.map +1 -1
- package/dist/esm/resources/deliveries.d.ts +34 -23
- package/dist/esm/resources/deliveries.d.ts.map +1 -1
- package/dist/esm/resources/deliveries.js +27 -17
- package/dist/esm/resources/deliveries.js.map +1 -1
- package/dist/esm/resources/transactions.d.ts +14 -14
- package/dist/esm/resources/transactions.d.ts.map +1 -1
- package/dist/esm/resources/transactions.js +15 -16
- package/dist/esm/resources/transactions.js.map +1 -1
- package/dist/esm/resources/webhooks.d.ts +22 -0
- package/dist/esm/resources/webhooks.d.ts.map +1 -0
- package/dist/esm/resources/webhooks.js +31 -0
- package/dist/esm/resources/webhooks.js.map +1 -0
- package/dist/esm/units.d.ts +11 -11
- package/dist/esm/units.js +14 -14
- package/dist/esm/units.js.map +1 -1
- package/dist/esm/version.d.ts +3 -3
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +3 -3
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/webhooks.d.ts +33 -28
- package/dist/esm/webhooks.d.ts.map +1 -1
- package/dist/esm/webhooks.js +33 -28
- package/dist/esm/webhooks.js.map +1 -1
- package/package.json +8 -5
- package/src/client.ts +50 -61
- package/src/core/errors.ts +18 -18
- package/src/core/http.ts +45 -55
- package/src/core/pagination.ts +7 -8
- package/src/core/scope.ts +8 -0
- package/src/generated/types.ts +139 -125
- package/src/index.ts +7 -24
- package/src/resources/account.ts +18 -72
- package/src/resources/addresses.ts +84 -109
- package/src/resources/catalog.ts +28 -19
- package/src/resources/deliveries.ts +43 -30
- package/src/resources/transactions.ts +18 -17
- package/src/resources/webhooks.ts +36 -0
- package/src/units.ts +14 -14
- package/src/version.ts +3 -3
- package/src/webhooks.ts +37 -32
- package/dist/cjs/resources/clients.d.ts +0 -84
- package/dist/cjs/resources/clients.d.ts.map +0 -1
- package/dist/cjs/resources/clients.js +0 -102
- package/dist/cjs/resources/clients.js.map +0 -1
- package/dist/esm/resources/clients.d.ts +0 -84
- package/dist/esm/resources/clients.d.ts.map +0 -1
- package/dist/esm/resources/clients.js +0 -97
- package/dist/esm/resources/clients.js.map +0 -1
- package/src/resources/clients.ts +0 -135
package/src/resources/clients.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { seg, type HttpClient, type RequestOptions } from '../core/http.js'
|
|
2
|
-
import { paginate, type Page } from '../core/pagination.js'
|
|
3
|
-
import type { ApiKey, Client, IssueKeyRequest, IssuedKey, Member, TestWebhookRequest, TestWebhookResult } from '../generated/types.js'
|
|
4
|
-
|
|
5
|
-
export interface ListClientsParams {
|
|
6
|
-
/** Размер страницы, до 1000; по умолчанию 100 */
|
|
7
|
-
limit?: number
|
|
8
|
-
/** Курсор: `next` прошлой страницы */
|
|
9
|
-
after?: string
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** Что изменить у клиента; не переданное не меняется */
|
|
13
|
-
export interface UpdateClientParams {
|
|
14
|
-
/** Название; `null` — убрать */
|
|
15
|
-
name?: string | null
|
|
16
|
-
/** URL вебхука: только https, без логина и пароля */
|
|
17
|
-
webhookUrl?: string
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface RotateSecretParams {
|
|
21
|
-
/** Свой секрет (от 16 символов); без него — сгенерируется */
|
|
22
|
-
secretKey?: string
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface RotateSecretResult {
|
|
26
|
-
/** Новый секрет подписи вебхуков — показывается один раз, сохраните его */
|
|
27
|
-
secretKey: string
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Ключи клиента: доступ к адресам, истории и транзакциям этого клиента. Управляют owner и admin клиента */
|
|
31
|
-
export class ClientKeysResource {
|
|
32
|
-
readonly #http: HttpClient
|
|
33
|
-
constructor(http: HttpClient) {
|
|
34
|
-
this.#http = http
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** Ключи клиента (без самих ключей — только начало) */
|
|
38
|
-
async list(clientId: string, options?: RequestOptions): Promise<ApiKey[]> {
|
|
39
|
-
const r = await this.#http.request<{ items: ApiKey[] }>({ method: 'GET', path: `/v1/clients/${seg(clientId)}/keys`, idempotent: true, options })
|
|
40
|
-
return r.items
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Выпускает ключ клиента. Полный ключ — в `key`, показывается один раз.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```ts
|
|
48
|
-
* const { key } = await monitoring.clients.keys.create(clientId, { name: 'backend', expiresInDays: 365 })
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
create(clientId: string, params: IssueKeyRequest = {}, options?: RequestOptions): Promise<IssuedKey> {
|
|
52
|
-
return this.#http.request({ method: 'POST', path: `/v1/clients/${seg(clientId)}/keys`, body: params, idempotent: false, options })
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** Отзывает ключ — он перестаёт работать сразу */
|
|
56
|
-
async revoke(clientId: string, keyId: string, options?: RequestOptions): Promise<void> {
|
|
57
|
-
await this.#http.request({ method: 'DELETE', path: `/v1/clients/${seg(clientId)}/keys/${seg(keyId)}`, idempotent: true, options })
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Ваш клиент: URL вебхука, секрет подписи, ключи, участники, тестовый вебхук.
|
|
63
|
-
*
|
|
64
|
-
* Права: смотреть — любой участник и ключ клиента; менять — owner и admin клиента по сессии или личному ключу.
|
|
65
|
-
*/
|
|
66
|
-
export class ClientsResource {
|
|
67
|
-
readonly #http: HttpClient
|
|
68
|
-
/** Ключи клиента */
|
|
69
|
-
readonly keys: ClientKeysResource
|
|
70
|
-
|
|
71
|
-
constructor(http: HttpClient) {
|
|
72
|
-
this.#http = http
|
|
73
|
-
this.keys = new ClientKeysResource(http)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/** Страница ваших клиентов: где вы участник; для ключа клиента — он сам */
|
|
77
|
-
list(params: ListClientsParams = {}, options?: RequestOptions): Promise<Page<Client, string>> {
|
|
78
|
-
return this.#http.request({ method: 'GET', path: '/v1/clients', query: { ...params }, idempotent: true, options })
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** Все ваши клиенты — страница за страницей */
|
|
82
|
-
iterate(params: Omit<ListClientsParams, 'after'> = {}, options?: RequestOptions): AsyncGenerator<Client, void, undefined> {
|
|
83
|
-
return paginate<Client, string>((after) => this.list({ ...params, after }, options))
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
get(clientId: string, options?: RequestOptions): Promise<Client> {
|
|
87
|
-
return this.#http.request({ method: 'GET', path: `/v1/clients/${seg(clientId)}`, idempotent: true, options })
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Меняет название или URL вебхука.
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```ts
|
|
95
|
-
* await monitoring.clients.update(clientId, { webhookUrl: 'https://example.com/webhooks/monitoring' })
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
update(clientId: string, params: UpdateClientParams, options?: RequestOptions): Promise<Client> {
|
|
99
|
-
return this.#http.request({ method: 'PATCH', path: `/v1/clients/${seg(clientId)}`, body: params, idempotent: true, options })
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/** Новый секрет подписи вебхуков. Старый перестаёт действовать сразу — обновите его у себя до следующего вебхука */
|
|
103
|
-
rotateSecret(clientId: string, params: RotateSecretParams = {}, options?: RequestOptions): Promise<RotateSecretResult> {
|
|
104
|
-
return this.#http.request({ method: 'POST', path: `/v1/clients/${seg(clientId)}/secret`, body: params, idempotent: false, options })
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Отправляет тестовый вебхук на URL клиента и возвращает результат: доставлен ли, ваш ответ, подпись и точное
|
|
109
|
-
* тело. Тестовый вебхук помечен `"test": true` и заголовком `x-webhook-test: 1` — не зачисляйте его.
|
|
110
|
-
* Не больше 10 в минуту.
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```ts
|
|
114
|
-
* const r = await monitoring.clients.sendTestWebhook(clientId, { asset: 'USDT' })
|
|
115
|
-
* if (!r.delivery.ok) console.log('ваш сервер ответил', r.delivery.status ?? r.delivery.error)
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
sendTestWebhook(clientId: string, params: TestWebhookRequest = {}, options?: RequestOptions): Promise<TestWebhookResult> {
|
|
119
|
-
return this.#http.request({
|
|
120
|
-
method: 'POST',
|
|
121
|
-
path: `/v1/clients/${seg(clientId)}/webhooks/test`,
|
|
122
|
-
body: params,
|
|
123
|
-
idempotent: false,
|
|
124
|
-
// 502 — «не доставлен»: это результат проверки, а не ошибка запроса
|
|
125
|
-
acceptStatuses: [502],
|
|
126
|
-
options,
|
|
127
|
-
})
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/** Участники клиента и их роли */
|
|
131
|
-
async members(clientId: string, options?: RequestOptions): Promise<Member[]> {
|
|
132
|
-
const r = await this.#http.request<{ items: Member[] }>({ method: 'GET', path: `/v1/clients/${seg(clientId)}/members`, idempotent: true, options })
|
|
133
|
-
return r.items
|
|
134
|
-
}
|
|
135
|
-
}
|