@monetize.software/sdk 3.0.0-alpha.2 → 3.0.0-alpha.4
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/dist/chunks/{PaywallUI-CRTEPjJm.js → PaywallUI-2bwf2scV.js} +588 -540
- package/dist/chunks/PaywallUI-2bwf2scV.js.map +1 -0
- package/dist/chunks/PaywallUI-Bu51__PT.js +26 -0
- package/dist/chunks/PaywallUI-Bu51__PT.js.map +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +71 -6
- package/dist/core.js +296 -249
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +87 -9
- package/dist/index.js +1 -1
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.ts +87 -9
- package/dist/ui.js +1 -1
- package/package.json +32 -31
- package/dist/chunks/PaywallUI-CRTEPjJm.js.map +0 -1
- package/dist/chunks/PaywallUI-CbbcfXXZ.js +0 -26
- package/dist/chunks/PaywallUI-CbbcfXXZ.js.map +0 -1
package/dist/core.d.ts
CHANGED
|
@@ -46,7 +46,9 @@ export declare class ApiGatewayClient {
|
|
|
46
46
|
|
|
47
47
|
export declare interface ApiGatewayClientOptions {
|
|
48
48
|
paywallId: string;
|
|
49
|
-
|
|
49
|
+
/** Origin серверного API SDK — обязательное поле, тот же `custom_domain`, что
|
|
50
|
+
* у BillingClient/AuthClient. См. {@link BillingClientOptions.apiOrigin}. */
|
|
51
|
+
apiOrigin: string;
|
|
50
52
|
/** AuthClient — Bearer добавляется автоматически. На 401 от gateway клиент
|
|
51
53
|
* не делает refresh: AuthClient уже сделал lazy-refresh в getAccessToken. */
|
|
52
54
|
auth?: AuthClient;
|
|
@@ -66,7 +68,28 @@ export declare interface ApiGatewayClientOptions {
|
|
|
66
68
|
onQuotaExceeded?: (err: QuotaExceededError) => void;
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
/** Дискриминатор для `onAuthChange`. Позволяет listener'у отличать первый
|
|
72
|
+
* callback (восстановление сессии из storage / синтетический snapshot для
|
|
73
|
+
* свежей подписки) от реальных переходов. Конвенция Supabase, минус события,
|
|
74
|
+
* которых у нас нет (MFA, EMAIL_VERIFIED).
|
|
75
|
+
*
|
|
76
|
+
* - INITIAL_SESSION — единственный гарантированный первый callback на каждую
|
|
77
|
+
* подписку. Дёргается через microtask после resolve hydrated-promise, даже
|
|
78
|
+
* если session=null. Listener'ы по этому event'у НЕ должны делать побочные
|
|
79
|
+
* эффекты типа force-refetch — это просто доставка стартового state'а.
|
|
80
|
+
* - SIGNED_IN — свежий вход: email/OAuth/anon, или появление session в этом
|
|
81
|
+
* инстансе из другого контекста (storage.watch), когда раньше был null.
|
|
82
|
+
* - SIGNED_OUT — signOut, revokeAllSessions, 401 на refresh, удаление session
|
|
83
|
+
* из другого контекста.
|
|
84
|
+
* - TOKEN_REFRESHED — тот же user, обновлённые токены: refresh(), либо
|
|
85
|
+
* storage.watch когда содержимое сменилось но user.id остался.
|
|
86
|
+
* - USER_UPDATED — изменился user.email / user.user_metadata (updatePassword,
|
|
87
|
+
* upgradeAnonymousToEmail) при том же user.id.
|
|
88
|
+
* - PASSWORD_RECOVERY — verifyOtp(type='recovery'). Listener знает, что надо
|
|
89
|
+
* показать «set new password» UI вместо обычного post-login flow'а. */
|
|
90
|
+
declare type AuthChangeEvent = 'INITIAL_SESSION' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'PASSWORD_RECOVERY';
|
|
91
|
+
|
|
92
|
+
export declare type AuthChangeListener = (event: AuthChangeEvent, session: AuthSession | null) => void;
|
|
70
93
|
|
|
71
94
|
export declare class AuthClient {
|
|
72
95
|
readonly paywallId: string;
|
|
@@ -385,8 +408,19 @@ export declare class AuthClient {
|
|
|
385
408
|
}): Promise<void>;
|
|
386
409
|
/**
|
|
387
410
|
* Подписка на изменения session: signin/signup/refresh/signOut/expired-401.
|
|
388
|
-
*
|
|
389
|
-
*
|
|
411
|
+
*
|
|
412
|
+
* Гарантированный контракт: ПЕРВЫЙ callback каждому subscriber'у — всегда
|
|
413
|
+
* `event = 'INITIAL_SESSION'`, дёргается асинхронно после resolve hydrate'а
|
|
414
|
+
* (даже если session=null — listener получает explicit «нет сессии», а не
|
|
415
|
+
* молчание). Все последующие callback'и — реальные переходы с конкретным
|
|
416
|
+
* event'ом (SIGNED_IN / SIGNED_OUT / TOKEN_REFRESHED / USER_UPDATED /
|
|
417
|
+
* PASSWORD_RECOVERY).
|
|
418
|
+
*
|
|
419
|
+
* Это позволяет listener'у безопасно делать «only on real signin» побочные
|
|
420
|
+
* эффекты (force refetch balances и т.п.) через `event === 'SIGNED_IN'`,
|
|
421
|
+
* не путая их с восстановлением из storage.
|
|
422
|
+
*
|
|
423
|
+
* Возвращает unsubscribe.
|
|
390
424
|
*/
|
|
391
425
|
onAuthChange(cb: AuthChangeListener): () => void;
|
|
392
426
|
private isFresh;
|
|
@@ -424,7 +458,9 @@ export declare class AuthClient {
|
|
|
424
458
|
|
|
425
459
|
export declare interface AuthClientOptions {
|
|
426
460
|
paywallId: string;
|
|
427
|
-
|
|
461
|
+
/** Origin серверного API SDK — обязательное поле, тот же `custom_domain`, что
|
|
462
|
+
* у BillingClient. См. {@link BillingClientOptions.apiOrigin}. */
|
|
463
|
+
apiOrigin: string;
|
|
428
464
|
storage?: StorageAdapter;
|
|
429
465
|
fetch?: typeof fetch;
|
|
430
466
|
openPopup?: (url: string, name: string) => Window | null;
|
|
@@ -789,7 +825,15 @@ export declare class BillingClient {
|
|
|
789
825
|
|
|
790
826
|
export declare interface BillingClientOptions {
|
|
791
827
|
paywallId: string;
|
|
792
|
-
|
|
828
|
+
/**
|
|
829
|
+
* Origin серверного API SDK — обязательное поле. Должно совпадать с
|
|
830
|
+
* `custom_domain`, заданным для пейвола в платформе (модерация привязывает
|
|
831
|
+
* домен к paywall_id). SDK сверяет это значение с `bootstrap.settings.custom_domain`
|
|
832
|
+
* на первом ответе и кидает `invalid_config` при расхождении — защита от
|
|
833
|
+
* опечаток интегратора. Промежуточный `appbox.space` в новом SDK НЕ
|
|
834
|
+
* используется (это только для legacy v2).
|
|
835
|
+
*/
|
|
836
|
+
apiOrigin: string;
|
|
793
837
|
identity?: Identity;
|
|
794
838
|
storage?: StorageAdapter;
|
|
795
839
|
capabilities?: string[];
|
|
@@ -953,6 +997,19 @@ export declare type LayoutBlock = {
|
|
|
953
997
|
desc: string;
|
|
954
998
|
count: number;
|
|
955
999
|
}>;
|
|
1000
|
+
} | {
|
|
1001
|
+
/** Money-back guarantee badge под cta_button: иконка + жирный заголовок +
|
|
1002
|
+
* пояснение мелким шрифтом + bottom divider, который визуально стыкуется
|
|
1003
|
+
* с current_session ниже. v2-аналог inline-блока в `PaywallPricing`. */
|
|
1004
|
+
type: 'guarantee_badge';
|
|
1005
|
+
/** Заголовок жирным. По умолчанию "100% Money-Back Guarantee". */
|
|
1006
|
+
title?: string;
|
|
1007
|
+
/** Подзаголовок мелким серым. По умолчанию
|
|
1008
|
+
* "Not satisfied? We'll refund you — no questions asked.". */
|
|
1009
|
+
subtitle?: string;
|
|
1010
|
+
/** Иконка слева от заголовка. По умолчанию `dollar_shield` —
|
|
1011
|
+
* зелёный shield с долларом (legacy-вид). `none` — без иконки. */
|
|
1012
|
+
icon?: 'dollar_shield' | 'none';
|
|
956
1013
|
};
|
|
957
1014
|
|
|
958
1015
|
/** Локализационные оверрайды для одного языка. Накатываются поверх дефолтного
|
|
@@ -1057,6 +1114,14 @@ export declare interface PaywallSettings {
|
|
|
1057
1114
|
brand_color?: string | null;
|
|
1058
1115
|
custom_css?: string | null;
|
|
1059
1116
|
locale_default?: string | null;
|
|
1117
|
+
/** Origin, на котором живёт бэк пейвола (тот же, что мерчант передаёт в
|
|
1118
|
+
* `BillingClientOptions.apiOrigin` при инициализации SDK). Бэк присылает
|
|
1119
|
+
* его на каждом bootstrap'е, SDK сверяет с init.apiOrigin — расхождение
|
|
1120
|
+
* даёт `invalid_config` (защита от опечатки интегратора). Без схемы:
|
|
1121
|
+
* "pay.your-domain.com" или "https://pay.your-domain.com" — оба валидны.
|
|
1122
|
+
* Для новых пейволов поле всегда заполнено (модерация требует custom_domain);
|
|
1123
|
+
* для legacy v2 может быть null/undefined. */
|
|
1124
|
+
custom_domain?: string | null;
|
|
1060
1125
|
runtime_mode?: 'client' | 'hybrid' | 'server' | 'client-native' | 'hybrid-native';
|
|
1061
1126
|
/** true, если эквайринг пейвола в test-mode — SDK рисует TEST MODE бейдж. */
|
|
1062
1127
|
is_test_mode?: boolean;
|