@besales/robokassa-sdk 0.1.1 → 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 (40) hide show
  1. package/README.md +86 -2
  2. package/dist/cjs/http.d.ts.map +1 -1
  3. package/dist/cjs/http.js +25 -3
  4. package/dist/cjs/http.js.map +1 -1
  5. package/dist/cjs/index.d.ts +2 -2
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/modules/subscriptions.module.d.ts +12 -2
  8. package/dist/cjs/modules/subscriptions.module.d.ts.map +1 -1
  9. package/dist/cjs/modules/subscriptions.module.js +28 -1
  10. package/dist/cjs/modules/subscriptions.module.js.map +1 -1
  11. package/dist/cjs/types/subscription.types.d.ts +14 -3
  12. package/dist/cjs/types/subscription.types.d.ts.map +1 -1
  13. package/dist/cjs/webhooks/handler.d.ts +3 -1
  14. package/dist/cjs/webhooks/handler.d.ts.map +1 -1
  15. package/dist/cjs/webhooks/handler.js +24 -5
  16. package/dist/cjs/webhooks/handler.js.map +1 -1
  17. package/dist/cjs/webhooks/index.d.ts +1 -1
  18. package/dist/cjs/webhooks/index.d.ts.map +1 -1
  19. package/dist/cjs/webhooks/types.d.ts +5 -0
  20. package/dist/cjs/webhooks/types.d.ts.map +1 -1
  21. package/dist/esm/http.d.ts.map +1 -1
  22. package/dist/esm/http.js +25 -3
  23. package/dist/esm/http.js.map +1 -1
  24. package/dist/esm/index.d.ts +2 -2
  25. package/dist/esm/index.d.ts.map +1 -1
  26. package/dist/esm/modules/subscriptions.module.d.ts +12 -2
  27. package/dist/esm/modules/subscriptions.module.d.ts.map +1 -1
  28. package/dist/esm/modules/subscriptions.module.js +28 -1
  29. package/dist/esm/modules/subscriptions.module.js.map +1 -1
  30. package/dist/esm/types/subscription.types.d.ts +14 -3
  31. package/dist/esm/types/subscription.types.d.ts.map +1 -1
  32. package/dist/esm/webhooks/handler.d.ts +3 -1
  33. package/dist/esm/webhooks/handler.d.ts.map +1 -1
  34. package/dist/esm/webhooks/handler.js +24 -5
  35. package/dist/esm/webhooks/handler.js.map +1 -1
  36. package/dist/esm/webhooks/index.d.ts +1 -1
  37. package/dist/esm/webhooks/index.d.ts.map +1 -1
  38. package/dist/esm/webhooks/types.d.ts +5 -0
  39. package/dist/esm/webhooks/types.d.ts.map +1 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -22,7 +22,7 @@ import { RobokassaPaymentClient } from '@besales/robokassa-sdk';
22
22
  const client = new RobokassaPaymentClient({
23
23
  baseUrl: 'https://payments.example.com',
24
24
  apiKey: process.env.PAYMENT_SERVICE_API_KEY!, // глобальный ключ
25
- clientApiKey: process.env.PAYMENT_SERVICE_CLIENT_KEY!, // ключ клиента
25
+ clientApiKey: process.env.PAYMENT_SERVICE_CLIENT_API_KEY!, // ключ клиента
26
26
  });
27
27
 
28
28
  // Одноразовый платёж
@@ -63,10 +63,39 @@ client.subscriptions.getById(id)
63
63
  client.subscriptions.cancel(id, userId)
64
64
  client.subscriptions.pause(id, userId)
65
65
  client.subscriptions.resume(id, userId)
66
+ client.subscriptions.changePlan(id, userId, input)
67
+ client.subscriptions.clearScheduledPlanChange(id, userId)
66
68
  ```
67
69
 
68
70
  Если `clientApiKey` не передан в конструктор, вызов методов с `auth: 'client'` бросит ошибку.
69
71
 
72
+ ## Мультиклиентская Модель
73
+
74
+ Один payment service может хранить данные многих клиентов одновременно.
75
+
76
+ Это значит:
77
+ - `Client` — это внешний сервис;
78
+ - `Product` и `SubscriptionPlan` принадлежат конкретному `clientName`;
79
+ - наличие тарифов у клиента `A` ничего не говорит о наличии тарифов у клиента `B`.
80
+
81
+ Практический вывод:
82
+ - если у вашего backend `PAYMENT_SERVICE_CLIENT_NAME=beprompt`, то вам нужны планы именно для `beprompt`;
83
+ - планы клиента `12astro` не будут “общими” и не закроют каталог для `beprompt`.
84
+
85
+ Рекомендуемый сценарий:
86
+ 1. Создать `Client` для внешнего сервиса.
87
+ 2. Создать `Product` и/или `SubscriptionPlan` с тем же `clientName`.
88
+ 3. Сохранить remote `planId` во внешнем сервисе.
89
+
90
+ Если вы строите каталог подписок, фильтруйте планы по `clientName`:
91
+
92
+ ```typescript
93
+ const { data: plans } = await client.plans.list({
94
+ clientName: process.env.PAYMENT_SERVICE_CLIENT_NAME!,
95
+ isActive: true,
96
+ });
97
+ ```
98
+
70
99
  ## Модули
71
100
 
72
101
  ### Клиенты (clients)
@@ -143,6 +172,16 @@ const result = await client.plans.delete('plan-id');
143
172
  // result.deleted или result.deactivated
144
173
  ```
145
174
 
175
+ Удаление работает так:
176
+ - если у плана нет подписок, он удаляется физически;
177
+ - если у плана уже есть подписки, сервис не удаляет его физически, а деактивирует (`isActive=false`).
178
+
179
+ Если нужно просто убрать тариф из каталога, обычно безопаснее сделать:
180
+
181
+ ```typescript
182
+ await client.plans.update('plan-id', { isActive: false });
183
+ ```
184
+
146
185
  ### Платежи (payments)
147
186
 
148
187
  ```typescript
@@ -197,11 +236,43 @@ await client.subscriptions.pause('sub-id', 'user-id', 2); // на 2 месяца
197
236
  // Возобновить (требует clientApiKey)
198
237
  await client.subscriptions.resume('sub-id', 'user-id');
199
238
 
239
+ // Немедленный апгрейд на более дорогой тариф (требует clientApiKey)
240
+ const upgrade = await client.subscriptions.changePlan('sub-id', 'user-id', {
241
+ newPlanId: 'plan-pro',
242
+ applyAt: 'immediately',
243
+ });
244
+
245
+ if (upgrade.requiresPayment) {
246
+ // Для активации апгрейда нужна доплата
247
+ // redirect на upgrade.paymentLink
248
+ }
249
+
250
+ // Запланированный даунгрейд на конец периода (требует clientApiKey)
251
+ const scheduled = await client.subscriptions.changePlan('sub-id', 'user-id', {
252
+ newPlanId: 'plan-basic',
253
+ applyAt: 'end_of_period',
254
+ });
255
+
256
+ if (scheduled.isScheduled) {
257
+ console.log(
258
+ 'Переход запланирован на',
259
+ scheduled.subscription.scheduledPlanChangeAt
260
+ );
261
+ }
262
+
263
+ // Отменить запланированную смену тарифа (требует clientApiKey)
264
+ await client.subscriptions.clearScheduledPlanChange('sub-id', 'user-id');
265
+
200
266
  // Статистика
201
267
  const stats = await client.subscriptions.getStats();
202
268
  const cronStats = await client.subscriptions.getCronStats();
203
269
  ```
204
270
 
271
+ Правила `changePlan()`:
272
+ - `applyAt: 'immediately'` поддерживает только переход на план с большей ценой и возвращает `paymentLink` для доплаты;
273
+ - `applyAt: 'end_of_period'` поддерживает только переход на план с меньшей ценой и записывает `scheduledPlanId`/`scheduledPlanChangeAt`;
274
+ - смена между разными `interval` разрешена, решение принимается только по абсолютной цене нового плана.
275
+
205
276
  ### Health check
206
277
 
207
278
  ```typescript
@@ -242,7 +313,11 @@ app.post('/api/user/webhook', ...createExpressWebhookMiddleware({
242
313
  app.post('/api/user/subscription-webhook', ...createExpressWebhookMiddleware({
243
314
  apiKey: process.env.WEBHOOK_API_KEY!,
244
315
  onSubscription: async (payload) => {
245
- console.log('Подписка:', payload.subscriptionId, payload.status);
316
+ console.log('Подписка:', payload.subscriptionId, payload.status, payload.eventType);
317
+
318
+ if (payload.eventType === 'PLAN_CHANGED') {
319
+ await recalculateQuota(payload.userId, payload.planId, payload.previousPlanId);
320
+ }
246
321
 
247
322
  if (payload.status === 'CANCELLED') {
248
323
  await deactivateUser(payload.userId);
@@ -384,13 +459,22 @@ const client = new RobokassaPaymentClient({
384
459
  | `userId` | `string` | ID пользователя |
385
460
  | `status` | `string` | Статус: `ACTIVE`, `CANCELLED`, `PAUSED`, `EXPIRED` |
386
461
  | `planId` | `string` | ID тарифного плана |
462
+ | `scheduledPlanId` | `string \| null` | ID плана, на который запланирован переход |
463
+ | `scheduledPlanChangeAt` | `string \| null` | Дата автопереключения плана (ISO 8601) |
464
+ | `previousPlanId` | `string \| null` | Предыдущий план при `eventType = PLAN_CHANGED` |
387
465
  | `startDate` | `string` | Дата начала (ISO 8601) |
388
466
  | `endDate` | `string \| null` | Дата окончания |
467
+ | `nextBillingDate` | `string \| null` | Следующее списание |
389
468
  | `isActive` | `boolean` | Активна ли подписка |
390
469
  | `autoRenew` | `boolean` | Автопродление |
391
470
  | `language` | `string` | Язык |
471
+ | `eventType` | `'STATE_CHANGE' \| 'UPCOMING_BILLING' \| 'PLAN_CHANGED'` | Тип события webhook |
392
472
  | `robokassaCode` | `string` | Код Robokassa-конфигурации |
393
473
 
474
+ `PLAN_CHANGED` приходит при фактическом применении смены тарифа:
475
+ - сразу после успешной доплаты за `applyAt: 'immediately'`;
476
+ - после успешного списания нового периода для `applyAt: 'end_of_period'`.
477
+
394
478
  ## Лицензия
395
479
 
396
480
  Проприетарный. Только для внутреннего использования.
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0BpE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,YAAY;IAShC;;;OAGG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAwGrD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,qCAAqC;IACrC,OAAO,CAAC,QAAQ;IAYhB,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAarB,2DAA2D;YAC7C,aAAa;IAS3B,mDAAmD;IACnD,OAAO,CAAC,mBAAmB;IAS3B,iDAAiD;IACjD,OAAO,CAAC,eAAe;IAiBvB,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB,4CAA4C;IAC5C,OAAO,CAAC,cAAc;IAQtB,eAAe;IACf,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0BpE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,YAAY;IAShC;;;OAGG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAsGrD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,qCAAqC;IACrC,OAAO,CAAC,QAAQ;IAYhB,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAarB,2DAA2D;YAC7C,aAAa;IAS3B,mDAAmD;IACnD,OAAO,CAAC,mBAAmB;IAS3B,iDAAiD;IACjD,OAAO,CAAC,eAAe;IAiBvB,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB,4CAA4C;IAC5C,OAAO,CAAC,cAAc;IAQtB,eAAe;IACf,OAAO,CAAC,KAAK;CAGd"}
package/dist/cjs/http.js CHANGED
@@ -72,9 +72,7 @@ class HttpClient {
72
72
  const bodyRetryAfter = typeof body === 'object' && body !== null
73
73
  ? body.retryAfter
74
74
  : undefined;
75
- const retryAfterSec = headerRetryAfter
76
- ? parseInt(headerRetryAfter, 10)
77
- : (typeof bodyRetryAfter === 'number' ? bodyRetryAfter : 1);
75
+ const retryAfterSec = parseRetryAfterSeconds(headerRetryAfter, bodyRetryAfter);
78
76
  const backoffMs = Math.min(Math.max(retryAfterSec * 1000, BASE_BACKOFF_MS * Math.pow(2, attempt)), MAX_BACKOFF_MS);
79
77
  if (shouldRetry && attempt < maxAttempts) {
80
78
  await this.sleep(backoffMs);
@@ -204,4 +202,28 @@ class HttpClient {
204
202
  }
205
203
  }
206
204
  exports.HttpClient = HttpClient;
205
+ /** Значение Retry-After по умолчанию, секунд */
206
+ const DEFAULT_RETRY_AFTER_SEC = 1;
207
+ /**
208
+ * Разбирает Retry-After: число секунд (RFC 7231) ИЛИ HTTP-дату.
209
+ * Возвращает конечное неотрицательное число секунд, исключая NaN (иначе backoff
210
+ * схлопнулся бы в sleep(0) и SDK молотил бы сервер без задержки).
211
+ */
212
+ function parseRetryAfterSeconds(header, bodyValue) {
213
+ if (header) {
214
+ const asNumber = Number(header);
215
+ if (Number.isFinite(asNumber) && asNumber >= 0) {
216
+ return asNumber;
217
+ }
218
+ const asDate = Date.parse(header);
219
+ if (Number.isFinite(asDate)) {
220
+ const deltaSec = Math.ceil((asDate - Date.now()) / 1000);
221
+ return deltaSec > 0 ? deltaSec : DEFAULT_RETRY_AFTER_SEC;
222
+ }
223
+ }
224
+ if (typeof bodyValue === 'number' && Number.isFinite(bodyValue) && bodyValue >= 0) {
225
+ return bodyValue;
226
+ }
227
+ return DEFAULT_RETRY_AFTER_SEC;
228
+ }
207
229
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAGH,qCAQkB;AAElB,gCAAgC;AAChC,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAElC,+CAA+C;AAC/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,4CAA4C;AAC5C,MAAM,eAAe,GAAG,IAAK,CAAC;AAE9B,iDAAiD;AACjD,MAAM,cAAc,GAAG,KAAM,CAAC;AAE9B,sEAAsE;AACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAEtC,MAAa,UAAU;IAQrB,YAAY,MAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAI,OAAuB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACpE,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,cAAc;YAC3B,iBAAiB,EAAE,IAAI,CAAC,QAAQ;YAChC,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEnE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO;oBACP,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7D,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,0BAA0B;gBAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,SAAc,CAAC;gBACxB,CAAC;gBAED,uDAAuD;gBACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAEhD,kEAAkE;oBAClE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC7D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;wBAC9D,CAAC,CAAE,IAAgC,CAAC,UAAU;wBAC9C,CAAC,CAAC,SAAS,CAAC;oBACd,MAAM,aAAa,GAAG,gBAAgB;wBACpC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC;wBAChC,CAAC,CAAC,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EACtE,cAAc,CACf,CAAC;oBAEF,IAAI,WAAW,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;wBACzC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC5B,SAAS;oBACX,CAAC;oBAED,MAAM,IAAI,uBAAc,CACtB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,qBAAqB,EACvD,SAAS,EACT,IAAI,CACL,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEhD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBAED,uFAAuF;gBACvF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChB,OAAO,IAAS,CAAC;gBACnB,CAAC;gBACD,OAAO,IAAI,CAAC,cAAc,CAAI,IAAI,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,wBAAe,EAAE,CAAC;oBACrC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEtE,qDAAqD;gBACrD,IAAI,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBACzE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;oBACnF,SAAS;gBACX,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,4BAAmB,CAC3B,qBAAqB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,gCAAgC;wBACnF,sDAAsD,EACtD,SAAS,CACV,CAAC;gBACJ,CAAC;gBAED,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACK,cAAc,CAAI,IAAa;QACrC,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,SAAS,IAAI,IAAI;YACjB,MAAM,IAAI,IAAI;YACb,IAAgC,CAAC,OAAO,KAAK,IAAI,EAClD,CAAC;YACD,OAAQ,IAAgC,CAAC,IAAS,CAAC;QACrD,CAAC;QACD,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IAC7B,QAAQ,CAAC,IAAY,EAAE,KAA6D;QAC1F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,+CAA+C;IACvC,aAAa,CAAC,IAAyB;QAC7C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,0CAA0C;oBAC1C,iEAAiE,CAClE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,2DAA2D;IACnD,KAAK,CAAC,aAAa,CAAC,QAAkB;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,mDAAmD;IAC3C,mBAAmB,CAAC,IAAa;QACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC;YACpD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACzC,eAAe,CAAC,MAAc,EAAE,IAAa;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAC;QAEnE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,MAAM,IAAI,wBAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,GAAG;gBACN,MAAM,IAAI,0BAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,GAAG;gBACN,MAAM,IAAI,sBAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,KAAK,GAAG;gBACN,MAAM,IAAI,sBAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC;gBACE,MAAM,IAAI,wBAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,2CAA2C;IACnC,gBAAgB,CAAC,KAAc;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,4CAA4C;IACpC,cAAc,CAAC,KAAc;QACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,OAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;IACP,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AAjOD,gCAiOC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,6 @@ export { PaymentApiError, RateLimitError, NotFoundError, ValidationError, Unauth
27
27
  export type { Client, CreateClientInput, UpdateClientInput } from './types/client.types';
28
28
  export type { Product, CreateProductInput, UpdateProductInput } from './types/product.types';
29
29
  export type { SubscriptionPlan, CreatePlanInput, UpdatePlanInput, PlanListFilters, PlanListResponse, PlanDeleteResult, } from './types/plan.types';
30
- export type { CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
- export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
30
+ export type { Payment, CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
+ export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, ChangePlanApplyAt, ChangePlanInput, ChangePlanResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, } from './types/subscription.types';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
10
10
  import { HttpClient } from '../http';
11
- import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth } from '../types/subscription.types';
11
+ import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, ChangePlanInput, ChangePlanResponse } from '../types/subscription.types';
12
12
  export declare class SubscriptionsModule {
13
13
  private readonly http;
14
14
  constructor(http: HttpClient);
@@ -50,5 +50,15 @@ export declare class SubscriptionsModule {
50
50
  * Требует clientApiKey в конструкторе
51
51
  */
52
52
  resume(id: string, userId: string): Promise<Subscription>;
53
+ /**
54
+ * Сменить тариф подписки.
55
+ * Требует clientApiKey в конструкторе.
56
+ */
57
+ changePlan(id: string, userId: string, input: ChangePlanInput): Promise<ChangePlanResponse>;
58
+ /**
59
+ * Отменить запланированную смену тарифа.
60
+ * Требует clientApiKey в конструкторе.
61
+ */
62
+ clearScheduledPlanChange(id: string, userId: string): Promise<Subscription>;
53
63
  }
54
64
  //# sourceMappingURL=subscriptions.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQhE"}
1
+ {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;OAGG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;;OAGG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQlF"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Двойная аутентификация:
6
6
  * - create/list/getStats/getCronStats/health → Global API Key
7
- * - getById/cancel/pause/resume → Client API Key
7
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
8
8
  *
9
9
  * @module modules/subscriptions
10
10
  */
@@ -109,6 +109,33 @@ class SubscriptionsModule {
109
109
  auth: 'client',
110
110
  });
111
111
  }
112
+ /**
113
+ * Сменить тариф подписки.
114
+ * Требует clientApiKey в конструкторе.
115
+ */
116
+ async changePlan(id, userId, input) {
117
+ return this.http.request({
118
+ method: 'POST',
119
+ path: `/api/subscriptions/${encodeURIComponent(id)}/change-plan`,
120
+ body: {
121
+ userId,
122
+ ...input,
123
+ },
124
+ auth: 'client',
125
+ });
126
+ }
127
+ /**
128
+ * Отменить запланированную смену тарифа.
129
+ * Требует clientApiKey в конструкторе.
130
+ */
131
+ async clearScheduledPlanChange(id, userId) {
132
+ return this.http.request({
133
+ method: 'POST',
134
+ path: `/api/subscriptions/${encodeURIComponent(id)}/clear-scheduled-change`,
135
+ body: { userId },
136
+ auth: 'client',
137
+ });
138
+ }
112
139
  }
113
140
  exports.SubscriptionsModule = SubscriptionsModule;
114
141
  //# sourceMappingURL=subscriptions.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAcH,MAAa,mBAAmB;IAC9B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,6BAA6B;IAE7B;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAA6B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6B;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,OAAgE;YACvE,GAAG,EAAE,IAAI,EAAE,kBAAkB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YAC1C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAE7B;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACpD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,MAAc,EAAE,mBAA4B;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAC1D,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACrC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;CACF;AA5GD,kDA4GC"}
1
+ {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface Subscription {
20
20
  username?: string | null;
21
21
  status: SubscriptionStatus;
22
22
  planId: string;
23
+ scheduledPlanId?: string | null;
24
+ scheduledPlanChangeAt?: string | null;
23
25
  plan?: SubscriptionPlan;
24
26
  startDate: string;
25
27
  endDate?: string | null;
@@ -38,7 +40,7 @@ export interface Subscription {
38
40
  export interface CreateSubscriptionInput {
39
41
  /** UUID пользователя */
40
42
  userId: string;
41
- /** UUID плана */
43
+ /** ID плана */
42
44
  planId: string;
43
45
  username?: string;
44
46
  /** URL редиректа при успешной оплате */
@@ -59,8 +61,6 @@ export interface CreateSubscriptionResponse {
59
61
  subscription: Subscription;
60
62
  /** URL для оплаты (если подписка платная и без триала) */
61
63
  paymentLink?: string;
62
- /** Альтернативное имя поля (deprecated) */
63
- paymentUrl?: string;
64
64
  /** true если требуется оплата */
65
65
  requiresPayment: boolean;
66
66
  message?: string;
@@ -101,4 +101,15 @@ export interface SubscriptionHealth {
101
101
  status: string;
102
102
  [key: string]: unknown;
103
103
  }
104
+ export type ChangePlanApplyAt = 'immediately' | 'end_of_period';
105
+ export interface ChangePlanInput {
106
+ newPlanId: string;
107
+ applyAt: ChangePlanApplyAt;
108
+ }
109
+ export interface ChangePlanResponse {
110
+ subscription: Subscription;
111
+ paymentLink?: string;
112
+ requiresPayment: boolean;
113
+ isScheduled: boolean;
114
+ }
104
115
  //# sourceMappingURL=subscription.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,SAAS,GACT,gBAAgB,CAAC;AAErB,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,CAAC;AAEb,qBAAqB;AACrB,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,MAAM,GACN,QAAQ,CAAC;AAEb,4BAA4B;AAC5B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mCAAmC;AACnC,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,iCAAiC;AACjC,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8BAA8B;AAC9B,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,4BAA4B;AAC5B,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -8,7 +8,9 @@
8
8
  */
9
9
  import type { PaymentWebhookPayload, SubscriptionWebhookPayload } from './types';
10
10
  /**
11
- * Валидирует API-ключ из заголовков webhook-запроса
11
+ * Валидирует API-ключ из заголовков webhook-запроса.
12
+ * Сравнение постоянного времени — единственная защита входящего webhook
13
+ * (подписи нет), поэтому важно не допускать timing-side-channel.
12
14
  * @param headers Заголовки запроса (ключи в нижнем регистре)
13
15
  * @param expectedApiKey Ожидаемый API-ключ
14
16
  * @returns true если ключ совпадает
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,cAAc,EAAE,MAAM,GACrB,OAAO,CAIT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CASxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,0BAA0B,CASlF"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAiBjB;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,cAAc,EAAE,MAAM,GACrB,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CASxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,0BAA0B,CASlF"}
@@ -11,17 +11,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.validateWebhookApiKey = validateWebhookApiKey;
12
12
  exports.parsePaymentWebhook = parsePaymentWebhook;
13
13
  exports.parseSubscriptionWebhook = parseSubscriptionWebhook;
14
+ const node_crypto_1 = require("node:crypto");
14
15
  /**
15
- * Валидирует API-ключ из заголовков webhook-запроса
16
+ * Сравнение строк с постоянным временем (защита от timing-атаки на подбор ключа).
17
+ * Паддинг до общей длины не даёт утечь длине ключа через время сравнения.
18
+ */
19
+ function timingSafeStringEqual(a, b) {
20
+ const bufA = Buffer.from(a, 'utf8');
21
+ const bufB = Buffer.from(b, 'utf8');
22
+ const length = Math.max(bufA.length, bufB.length, 1);
23
+ const paddedA = Buffer.alloc(length);
24
+ const paddedB = Buffer.alloc(length);
25
+ bufA.copy(paddedA);
26
+ bufB.copy(paddedB);
27
+ return (0, node_crypto_1.timingSafeEqual)(paddedA, paddedB) && bufA.length === bufB.length;
28
+ }
29
+ /**
30
+ * Валидирует API-ключ из заголовков webhook-запроса.
31
+ * Сравнение постоянного времени — единственная защита входящего webhook
32
+ * (подписи нет), поэтому важно не допускать timing-side-channel.
16
33
  * @param headers Заголовки запроса (ключи в нижнем регистре)
17
34
  * @param expectedApiKey Ожидаемый API-ключ
18
35
  * @returns true если ключ совпадает
19
36
  */
20
37
  function validateWebhookApiKey(headers, expectedApiKey) {
21
- const key = headers['x-api-key'];
22
- if (Array.isArray(key))
23
- return key[0] === expectedApiKey;
24
- return key === expectedApiKey;
38
+ const raw = headers['x-api-key'];
39
+ const key = Array.isArray(raw) ? raw[0] : raw;
40
+ if (typeof key !== 'string') {
41
+ return false;
42
+ }
43
+ return timingSafeStringEqual(key, expectedApiKey);
25
44
  }
26
45
  /**
27
46
  * Парсит и валидирует тело запроса как PaymentWebhookPayload
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAaH,sDAOC;AAQD,kDASC;AAQD,4DASC;AA/CD;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,OAAsD,EACtD,cAAsB;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IACzD,OAAO,GAAG,KAAK,cAAc,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,IAAa;IACpD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAkC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA+BH,sDAUC;AAQD,kDASC;AAQD,4DASC;AAzED,6CAA8C;AAM9C;;;GAGG;AACH,SAAS,qBAAqB,CAAC,CAAS,EAAE,CAAS;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,IAAA,6BAAe,EAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,OAAsD,EACtD,cAAsB;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,IAAa;IACpD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAkC,CAAC;AAC5C,CAAC"}
@@ -9,5 +9,5 @@
9
9
  export { validateWebhookApiKey, parsePaymentWebhook, parseSubscriptionWebhook, } from './handler';
10
10
  export { createExpressWebhookMiddleware } from './express';
11
11
  export { robokassaWebhookPlugin } from './fastify';
12
- export type { PaymentWebhookPayload, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
12
+ export type { PaymentWebhookPayload, SubscriptionWebhookEventType, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -30,17 +30,22 @@ export interface PaymentWebhookPayload {
30
30
  recurringToken?: string | null;
31
31
  }
32
32
  /** Payload webhook изменения подписки (POST {apiUrl}/api/user/subscription-webhook) */
33
+ export type SubscriptionWebhookEventType = 'STATE_CHANGE' | 'UPCOMING_BILLING' | 'PLAN_CHANGED';
33
34
  export interface SubscriptionWebhookPayload {
34
35
  subscriptionId: string;
35
36
  userId: string;
36
37
  status: string;
37
38
  planId: string;
39
+ scheduledPlanId?: string | null;
40
+ scheduledPlanChangeAt?: string | null;
41
+ previousPlanId?: string | null;
38
42
  startDate: string;
39
43
  endDate: string | null;
40
44
  nextBillingDate?: string | null;
41
45
  isActive: boolean;
42
46
  autoRenew: boolean;
43
47
  language: string;
48
+ eventType: SubscriptionWebhookEventType;
44
49
  /** Код Robokassa-конфигурации (для мультикассы) */
45
50
  robokassaCode: string;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,4BAA4B,CAAC;IACxC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0BpE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,YAAY;IAShC;;;OAGG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAwGrD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,qCAAqC;IACrC,OAAO,CAAC,QAAQ;IAYhB,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAarB,2DAA2D;YAC7C,aAAa;IAS3B,mDAAmD;IACnD,OAAO,CAAC,mBAAmB;IAS3B,iDAAiD;IACjD,OAAO,CAAC,eAAe;IAiBvB,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB,4CAA4C;IAC5C,OAAO,CAAC,cAAc;IAQtB,eAAe;IACf,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0BpE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,YAAY;IAShC;;;OAGG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAsGrD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,qCAAqC;IACrC,OAAO,CAAC,QAAQ;IAYhB,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAarB,2DAA2D;YAC7C,aAAa;IAS3B,mDAAmD;IACnD,OAAO,CAAC,mBAAmB;IAS3B,iDAAiD;IACjD,OAAO,CAAC,eAAe;IAiBvB,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB,4CAA4C;IAC5C,OAAO,CAAC,cAAc;IAQtB,eAAe;IACf,OAAO,CAAC,KAAK;CAGd"}
package/dist/esm/http.js CHANGED
@@ -69,9 +69,7 @@ export class HttpClient {
69
69
  const bodyRetryAfter = typeof body === 'object' && body !== null
70
70
  ? body.retryAfter
71
71
  : undefined;
72
- const retryAfterSec = headerRetryAfter
73
- ? parseInt(headerRetryAfter, 10)
74
- : (typeof bodyRetryAfter === 'number' ? bodyRetryAfter : 1);
72
+ const retryAfterSec = parseRetryAfterSeconds(headerRetryAfter, bodyRetryAfter);
75
73
  const backoffMs = Math.min(Math.max(retryAfterSec * 1000, BASE_BACKOFF_MS * Math.pow(2, attempt)), MAX_BACKOFF_MS);
76
74
  if (shouldRetry && attempt < maxAttempts) {
77
75
  await this.sleep(backoffMs);
@@ -200,4 +198,28 @@ export class HttpClient {
200
198
  return new Promise((resolve) => setTimeout(resolve, ms));
201
199
  }
202
200
  }
201
+ /** Значение Retry-After по умолчанию, секунд */
202
+ const DEFAULT_RETRY_AFTER_SEC = 1;
203
+ /**
204
+ * Разбирает Retry-After: число секунд (RFC 7231) ИЛИ HTTP-дату.
205
+ * Возвращает конечное неотрицательное число секунд, исключая NaN (иначе backoff
206
+ * схлопнулся бы в sleep(0) и SDK молотил бы сервер без задержки).
207
+ */
208
+ function parseRetryAfterSeconds(header, bodyValue) {
209
+ if (header) {
210
+ const asNumber = Number(header);
211
+ if (Number.isFinite(asNumber) && asNumber >= 0) {
212
+ return asNumber;
213
+ }
214
+ const asDate = Date.parse(header);
215
+ if (Number.isFinite(asDate)) {
216
+ const deltaSec = Math.ceil((asDate - Date.now()) / 1000);
217
+ return deltaSec > 0 ? deltaSec : DEFAULT_RETRY_AFTER_SEC;
218
+ }
219
+ }
220
+ if (typeof bodyValue === 'number' && Number.isFinite(bodyValue) && bodyValue >= 0) {
221
+ return bodyValue;
222
+ }
223
+ return DEFAULT_RETRY_AFTER_SEC;
224
+ }
203
225
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,6 @@ export { PaymentApiError, RateLimitError, NotFoundError, ValidationError, Unauth
27
27
  export type { Client, CreateClientInput, UpdateClientInput } from './types/client.types';
28
28
  export type { Product, CreateProductInput, UpdateProductInput } from './types/product.types';
29
29
  export type { SubscriptionPlan, CreatePlanInput, UpdatePlanInput, PlanListFilters, PlanListResponse, PlanDeleteResult, } from './types/plan.types';
30
- export type { CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
- export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
30
+ export type { Payment, CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
+ export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, ChangePlanApplyAt, ChangePlanInput, ChangePlanResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, } from './types/subscription.types';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
10
10
  import { HttpClient } from '../http';
11
- import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth } from '../types/subscription.types';
11
+ import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, ChangePlanInput, ChangePlanResponse } from '../types/subscription.types';
12
12
  export declare class SubscriptionsModule {
13
13
  private readonly http;
14
14
  constructor(http: HttpClient);
@@ -50,5 +50,15 @@ export declare class SubscriptionsModule {
50
50
  * Требует clientApiKey в конструкторе
51
51
  */
52
52
  resume(id: string, userId: string): Promise<Subscription>;
53
+ /**
54
+ * Сменить тариф подписки.
55
+ * Требует clientApiKey в конструкторе.
56
+ */
57
+ changePlan(id: string, userId: string, input: ChangePlanInput): Promise<ChangePlanResponse>;
58
+ /**
59
+ * Отменить запланированную смену тарифа.
60
+ * Требует clientApiKey в конструкторе.
61
+ */
62
+ clearScheduledPlanChange(id: string, userId: string): Promise<Subscription>;
53
63
  }
54
64
  //# sourceMappingURL=subscriptions.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQhE"}
1
+ {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;OAGG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;;OAGG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQlF"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
@@ -106,5 +106,32 @@ export class SubscriptionsModule {
106
106
  auth: 'client',
107
107
  });
108
108
  }
109
+ /**
110
+ * Сменить тариф подписки.
111
+ * Требует clientApiKey в конструкторе.
112
+ */
113
+ async changePlan(id, userId, input) {
114
+ return this.http.request({
115
+ method: 'POST',
116
+ path: `/api/subscriptions/${encodeURIComponent(id)}/change-plan`,
117
+ body: {
118
+ userId,
119
+ ...input,
120
+ },
121
+ auth: 'client',
122
+ });
123
+ }
124
+ /**
125
+ * Отменить запланированную смену тарифа.
126
+ * Требует clientApiKey в конструкторе.
127
+ */
128
+ async clearScheduledPlanChange(id, userId) {
129
+ return this.http.request({
130
+ method: 'POST',
131
+ path: `/api/subscriptions/${encodeURIComponent(id)}/clear-scheduled-change`,
132
+ body: { userId },
133
+ auth: 'client',
134
+ });
135
+ }
109
136
  }
110
137
  //# sourceMappingURL=subscriptions.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,OAAO,mBAAmB;IAC9B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,6BAA6B;IAE7B;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAA6B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6B;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,OAAgE;YACvE,GAAG,EAAE,IAAI,EAAE,kBAAkB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YAC1C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAE7B;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACpD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,MAAc,EAAE,mBAA4B;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAC1D,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACrC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface Subscription {
20
20
  username?: string | null;
21
21
  status: SubscriptionStatus;
22
22
  planId: string;
23
+ scheduledPlanId?: string | null;
24
+ scheduledPlanChangeAt?: string | null;
23
25
  plan?: SubscriptionPlan;
24
26
  startDate: string;
25
27
  endDate?: string | null;
@@ -38,7 +40,7 @@ export interface Subscription {
38
40
  export interface CreateSubscriptionInput {
39
41
  /** UUID пользователя */
40
42
  userId: string;
41
- /** UUID плана */
43
+ /** ID плана */
42
44
  planId: string;
43
45
  username?: string;
44
46
  /** URL редиректа при успешной оплате */
@@ -59,8 +61,6 @@ export interface CreateSubscriptionResponse {
59
61
  subscription: Subscription;
60
62
  /** URL для оплаты (если подписка платная и без триала) */
61
63
  paymentLink?: string;
62
- /** Альтернативное имя поля (deprecated) */
63
- paymentUrl?: string;
64
64
  /** true если требуется оплата */
65
65
  requiresPayment: boolean;
66
66
  message?: string;
@@ -101,4 +101,15 @@ export interface SubscriptionHealth {
101
101
  status: string;
102
102
  [key: string]: unknown;
103
103
  }
104
+ export type ChangePlanApplyAt = 'immediately' | 'end_of_period';
105
+ export interface ChangePlanInput {
106
+ newPlanId: string;
107
+ applyAt: ChangePlanApplyAt;
108
+ }
109
+ export interface ChangePlanResponse {
110
+ subscription: Subscription;
111
+ paymentLink?: string;
112
+ requiresPayment: boolean;
113
+ isScheduled: boolean;
114
+ }
104
115
  //# sourceMappingURL=subscription.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,9 @@
8
8
  */
9
9
  import type { PaymentWebhookPayload, SubscriptionWebhookPayload } from './types';
10
10
  /**
11
- * Валидирует API-ключ из заголовков webhook-запроса
11
+ * Валидирует API-ключ из заголовков webhook-запроса.
12
+ * Сравнение постоянного времени — единственная защита входящего webhook
13
+ * (подписи нет), поэтому важно не допускать timing-side-channel.
12
14
  * @param headers Заголовки запроса (ключи в нижнем регистре)
13
15
  * @param expectedApiKey Ожидаемый API-ключ
14
16
  * @returns true если ключ совпадает
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,cAAc,EAAE,MAAM,GACrB,OAAO,CAIT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CASxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,0BAA0B,CASlF"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAiBjB;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,cAAc,EAAE,MAAM,GACrB,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CASxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,0BAA0B,CASlF"}
@@ -6,17 +6,36 @@
6
6
  *
7
7
  * @module webhooks/handler
8
8
  */
9
+ import { timingSafeEqual } from 'node:crypto';
9
10
  /**
10
- * Валидирует API-ключ из заголовков webhook-запроса
11
+ * Сравнение строк с постоянным временем (защита от timing-атаки на подбор ключа).
12
+ * Паддинг до общей длины не даёт утечь длине ключа через время сравнения.
13
+ */
14
+ function timingSafeStringEqual(a, b) {
15
+ const bufA = Buffer.from(a, 'utf8');
16
+ const bufB = Buffer.from(b, 'utf8');
17
+ const length = Math.max(bufA.length, bufB.length, 1);
18
+ const paddedA = Buffer.alloc(length);
19
+ const paddedB = Buffer.alloc(length);
20
+ bufA.copy(paddedA);
21
+ bufB.copy(paddedB);
22
+ return timingSafeEqual(paddedA, paddedB) && bufA.length === bufB.length;
23
+ }
24
+ /**
25
+ * Валидирует API-ключ из заголовков webhook-запроса.
26
+ * Сравнение постоянного времени — единственная защита входящего webhook
27
+ * (подписи нет), поэтому важно не допускать timing-side-channel.
11
28
  * @param headers Заголовки запроса (ключи в нижнем регистре)
12
29
  * @param expectedApiKey Ожидаемый API-ключ
13
30
  * @returns true если ключ совпадает
14
31
  */
15
32
  export function validateWebhookApiKey(headers, expectedApiKey) {
16
- const key = headers['x-api-key'];
17
- if (Array.isArray(key))
18
- return key[0] === expectedApiKey;
19
- return key === expectedApiKey;
33
+ const raw = headers['x-api-key'];
34
+ const key = Array.isArray(raw) ? raw[0] : raw;
35
+ if (typeof key !== 'string') {
36
+ return false;
37
+ }
38
+ return timingSafeStringEqual(key, expectedApiKey);
20
39
  }
21
40
  /**
22
41
  * Парсит и валидирует тело запроса как PaymentWebhookPayload
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAsD,EACtD,cAAsB;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IACzD,OAAO,GAAG,KAAK,cAAc,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAa;IACpD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAkC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/webhooks/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAM9C;;;GAGG;AACH,SAAS,qBAAqB,CAAC,CAAS,EAAE,CAAS;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAsD,EACtD,cAAsB;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAa;IACpD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,IAAkC,CAAC;AAC5C,CAAC"}
@@ -9,5 +9,5 @@
9
9
  export { validateWebhookApiKey, parsePaymentWebhook, parseSubscriptionWebhook, } from './handler';
10
10
  export { createExpressWebhookMiddleware } from './express';
11
11
  export { robokassaWebhookPlugin } from './fastify';
12
- export type { PaymentWebhookPayload, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
12
+ export type { PaymentWebhookPayload, SubscriptionWebhookEventType, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -30,17 +30,22 @@ export interface PaymentWebhookPayload {
30
30
  recurringToken?: string | null;
31
31
  }
32
32
  /** Payload webhook изменения подписки (POST {apiUrl}/api/user/subscription-webhook) */
33
+ export type SubscriptionWebhookEventType = 'STATE_CHANGE' | 'UPCOMING_BILLING' | 'PLAN_CHANGED';
33
34
  export interface SubscriptionWebhookPayload {
34
35
  subscriptionId: string;
35
36
  userId: string;
36
37
  status: string;
37
38
  planId: string;
39
+ scheduledPlanId?: string | null;
40
+ scheduledPlanChangeAt?: string | null;
41
+ previousPlanId?: string | null;
38
42
  startDate: string;
39
43
  endDate: string | null;
40
44
  nextBillingDate?: string | null;
41
45
  isActive: boolean;
42
46
  autoRenew: boolean;
43
47
  language: string;
48
+ eventType: SubscriptionWebhookEventType;
44
49
  /** Код Robokassa-конфигурации (для мультикассы) */
45
50
  robokassaCode: string;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,4BAA4B,CAAC;IACxC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besales/robokassa-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "SDK клиент для Robokassa Payment Microservice (server-side only)",
5
5
  "author": "Vlad Petlyuk",
6
6
  "license": "ISC",