@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.
Files changed (154) hide show
  1. package/CHANGELOG.md +21 -11
  2. package/README.md +223 -148
  3. package/dist/cjs/client.d.ts +23 -42
  4. package/dist/cjs/client.d.ts.map +1 -1
  5. package/dist/cjs/client.js +44 -53
  6. package/dist/cjs/client.js.map +1 -1
  7. package/dist/cjs/core/errors.d.ts +18 -18
  8. package/dist/cjs/core/errors.d.ts.map +1 -1
  9. package/dist/cjs/core/errors.js +17 -17
  10. package/dist/cjs/core/errors.js.map +1 -1
  11. package/dist/cjs/core/http.d.ts +22 -26
  12. package/dist/cjs/core/http.d.ts.map +1 -1
  13. package/dist/cjs/core/http.js +28 -36
  14. package/dist/cjs/core/http.js.map +1 -1
  15. package/dist/cjs/core/pagination.d.ts +6 -7
  16. package/dist/cjs/core/pagination.d.ts.map +1 -1
  17. package/dist/cjs/core/pagination.js +1 -1
  18. package/dist/cjs/core/pagination.js.map +1 -1
  19. package/dist/cjs/core/scope.d.ts +8 -0
  20. package/dist/cjs/core/scope.d.ts.map +1 -0
  21. package/dist/cjs/core/scope.js +3 -0
  22. package/dist/cjs/core/scope.js.map +1 -0
  23. package/dist/cjs/generated/types.d.ts +129 -117
  24. package/dist/cjs/generated/types.d.ts.map +1 -1
  25. package/dist/cjs/generated/types.js +1 -1
  26. package/dist/cjs/generated/types.js.map +1 -1
  27. package/dist/cjs/index.d.ts +6 -6
  28. package/dist/cjs/index.d.ts.map +1 -1
  29. package/dist/cjs/index.js +13 -16
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/resources/account.d.ts +12 -51
  32. package/dist/cjs/resources/account.d.ts.map +1 -1
  33. package/dist/cjs/resources/account.js +17 -61
  34. package/dist/cjs/resources/account.js.map +1 -1
  35. package/dist/cjs/resources/addresses.d.ts +49 -65
  36. package/dist/cjs/resources/addresses.d.ts.map +1 -1
  37. package/dist/cjs/resources/addresses.js +60 -69
  38. package/dist/cjs/resources/addresses.js.map +1 -1
  39. package/dist/cjs/resources/catalog.d.ts +17 -10
  40. package/dist/cjs/resources/catalog.d.ts.map +1 -1
  41. package/dist/cjs/resources/catalog.js +23 -17
  42. package/dist/cjs/resources/catalog.js.map +1 -1
  43. package/dist/cjs/resources/deliveries.d.ts +34 -23
  44. package/dist/cjs/resources/deliveries.d.ts.map +1 -1
  45. package/dist/cjs/resources/deliveries.js +27 -17
  46. package/dist/cjs/resources/deliveries.js.map +1 -1
  47. package/dist/cjs/resources/transactions.d.ts +14 -14
  48. package/dist/cjs/resources/transactions.d.ts.map +1 -1
  49. package/dist/cjs/resources/transactions.js +15 -16
  50. package/dist/cjs/resources/transactions.js.map +1 -1
  51. package/dist/cjs/resources/webhooks.d.ts +22 -0
  52. package/dist/cjs/resources/webhooks.d.ts.map +1 -0
  53. package/dist/cjs/resources/webhooks.js +35 -0
  54. package/dist/cjs/resources/webhooks.js.map +1 -0
  55. package/dist/cjs/units.d.ts +11 -11
  56. package/dist/cjs/units.js +14 -14
  57. package/dist/cjs/units.js.map +1 -1
  58. package/dist/cjs/version.d.ts +3 -3
  59. package/dist/cjs/version.d.ts.map +1 -1
  60. package/dist/cjs/version.js +3 -3
  61. package/dist/cjs/version.js.map +1 -1
  62. package/dist/cjs/webhooks.d.ts +33 -28
  63. package/dist/cjs/webhooks.d.ts.map +1 -1
  64. package/dist/cjs/webhooks.js +33 -28
  65. package/dist/cjs/webhooks.js.map +1 -1
  66. package/dist/esm/client.d.ts +23 -42
  67. package/dist/esm/client.d.ts.map +1 -1
  68. package/dist/esm/client.js +46 -55
  69. package/dist/esm/client.js.map +1 -1
  70. package/dist/esm/core/errors.d.ts +18 -18
  71. package/dist/esm/core/errors.d.ts.map +1 -1
  72. package/dist/esm/core/errors.js +17 -17
  73. package/dist/esm/core/errors.js.map +1 -1
  74. package/dist/esm/core/http.d.ts +22 -26
  75. package/dist/esm/core/http.d.ts.map +1 -1
  76. package/dist/esm/core/http.js +28 -36
  77. package/dist/esm/core/http.js.map +1 -1
  78. package/dist/esm/core/pagination.d.ts +6 -7
  79. package/dist/esm/core/pagination.d.ts.map +1 -1
  80. package/dist/esm/core/pagination.js +1 -1
  81. package/dist/esm/core/pagination.js.map +1 -1
  82. package/dist/esm/core/scope.d.ts +8 -0
  83. package/dist/esm/core/scope.d.ts.map +1 -0
  84. package/dist/esm/core/scope.js +2 -0
  85. package/dist/esm/core/scope.js.map +1 -0
  86. package/dist/esm/generated/types.d.ts +129 -117
  87. package/dist/esm/generated/types.d.ts.map +1 -1
  88. package/dist/esm/generated/types.js +1 -1
  89. package/dist/esm/generated/types.js.map +1 -1
  90. package/dist/esm/index.d.ts +6 -6
  91. package/dist/esm/index.d.ts.map +1 -1
  92. package/dist/esm/index.js +6 -6
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/resources/account.d.ts +12 -51
  95. package/dist/esm/resources/account.d.ts.map +1 -1
  96. package/dist/esm/resources/account.js +15 -57
  97. package/dist/esm/resources/account.js.map +1 -1
  98. package/dist/esm/resources/addresses.d.ts +49 -65
  99. package/dist/esm/resources/addresses.d.ts.map +1 -1
  100. package/dist/esm/resources/addresses.js +60 -69
  101. package/dist/esm/resources/addresses.js.map +1 -1
  102. package/dist/esm/resources/catalog.d.ts +17 -10
  103. package/dist/esm/resources/catalog.d.ts.map +1 -1
  104. package/dist/esm/resources/catalog.js +23 -17
  105. package/dist/esm/resources/catalog.js.map +1 -1
  106. package/dist/esm/resources/deliveries.d.ts +34 -23
  107. package/dist/esm/resources/deliveries.d.ts.map +1 -1
  108. package/dist/esm/resources/deliveries.js +27 -17
  109. package/dist/esm/resources/deliveries.js.map +1 -1
  110. package/dist/esm/resources/transactions.d.ts +14 -14
  111. package/dist/esm/resources/transactions.d.ts.map +1 -1
  112. package/dist/esm/resources/transactions.js +15 -16
  113. package/dist/esm/resources/transactions.js.map +1 -1
  114. package/dist/esm/resources/webhooks.d.ts +22 -0
  115. package/dist/esm/resources/webhooks.d.ts.map +1 -0
  116. package/dist/esm/resources/webhooks.js +31 -0
  117. package/dist/esm/resources/webhooks.js.map +1 -0
  118. package/dist/esm/units.d.ts +11 -11
  119. package/dist/esm/units.js +14 -14
  120. package/dist/esm/units.js.map +1 -1
  121. package/dist/esm/version.d.ts +3 -3
  122. package/dist/esm/version.d.ts.map +1 -1
  123. package/dist/esm/version.js +3 -3
  124. package/dist/esm/version.js.map +1 -1
  125. package/dist/esm/webhooks.d.ts +33 -28
  126. package/dist/esm/webhooks.d.ts.map +1 -1
  127. package/dist/esm/webhooks.js +33 -28
  128. package/dist/esm/webhooks.js.map +1 -1
  129. package/package.json +8 -5
  130. package/src/client.ts +50 -61
  131. package/src/core/errors.ts +18 -18
  132. package/src/core/http.ts +45 -55
  133. package/src/core/pagination.ts +7 -8
  134. package/src/core/scope.ts +8 -0
  135. package/src/generated/types.ts +139 -125
  136. package/src/index.ts +7 -24
  137. package/src/resources/account.ts +18 -72
  138. package/src/resources/addresses.ts +84 -109
  139. package/src/resources/catalog.ts +28 -19
  140. package/src/resources/deliveries.ts +43 -30
  141. package/src/resources/transactions.ts +18 -17
  142. package/src/resources/webhooks.ts +36 -0
  143. package/src/units.ts +14 -14
  144. package/src/version.ts +3 -3
  145. package/src/webhooks.ts +37 -32
  146. package/dist/cjs/resources/clients.d.ts +0 -84
  147. package/dist/cjs/resources/clients.d.ts.map +0 -1
  148. package/dist/cjs/resources/clients.js +0 -102
  149. package/dist/cjs/resources/clients.js.map +0 -1
  150. package/dist/esm/resources/clients.d.ts +0 -84
  151. package/dist/esm/resources/clients.d.ts.map +0 -1
  152. package/dist/esm/resources/clients.js +0 -97
  153. package/dist/esm/resources/clients.js.map +0 -1
  154. package/src/resources/clients.ts +0 -135
@@ -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
- }