@monetize.software/sdk 3.0.0-alpha.6 → 3.0.0-alpha.8

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 (203) hide show
  1. package/README.md +34 -13
  2. package/dist/chunks/{PaywallUI-BYquPomD.js → PaywallUI-BrDiS6zg.js} +926 -962
  3. package/dist/chunks/PaywallUI-BrDiS6zg.js.map +1 -0
  4. package/dist/chunks/PaywallUI-Bvx8nRL0.js +26 -0
  5. package/dist/chunks/PaywallUI-Bvx8nRL0.js.map +1 -0
  6. package/dist/chunks/{ar-nh4l4WDE.js → ar-CHae8g-2.js} +4 -3
  7. package/dist/chunks/ar-CHae8g-2.js.map +1 -0
  8. package/dist/chunks/ar-E1mc8SO_.js +2 -0
  9. package/dist/chunks/ar-E1mc8SO_.js.map +1 -0
  10. package/dist/chunks/cs-Dccq6LAT.js +2 -0
  11. package/dist/chunks/cs-Dccq6LAT.js.map +1 -0
  12. package/dist/chunks/{cs-2UYO2rWf.js → cs-eZTedzaK.js} +2 -1
  13. package/dist/chunks/cs-eZTedzaK.js.map +1 -0
  14. package/dist/chunks/da-C_4MbEh5.js +2 -0
  15. package/dist/chunks/da-C_4MbEh5.js.map +1 -0
  16. package/dist/chunks/{da-BD0O_HfV.js → da-Dca6j8fp.js} +2 -1
  17. package/dist/chunks/da-Dca6j8fp.js.map +1 -0
  18. package/dist/chunks/{de-BkCiXPsn.js → de-BCjn3PUI.js} +3 -1
  19. package/dist/chunks/de-BCjn3PUI.js.map +1 -0
  20. package/dist/chunks/de-DulxcJj-.js +2 -0
  21. package/dist/chunks/de-DulxcJj-.js.map +1 -0
  22. package/dist/chunks/{el-cIcxTp07.js → el-BpXtDTez.js} +2 -1
  23. package/dist/chunks/el-BpXtDTez.js.map +1 -0
  24. package/dist/chunks/el-CVG_1iKB.js +2 -0
  25. package/dist/chunks/el-CVG_1iKB.js.map +1 -0
  26. package/dist/chunks/{es-CJBC_jrV.js → es-B3P4nlMw.js} +3 -1
  27. package/dist/chunks/es-B3P4nlMw.js.map +1 -0
  28. package/dist/chunks/es-ri0uKzUW.js +2 -0
  29. package/dist/chunks/es-ri0uKzUW.js.map +1 -0
  30. package/dist/chunks/{fi-DyV7ynBf.js → fi-BbQ_Bs0Z.js} +2 -1
  31. package/dist/chunks/fi-BbQ_Bs0Z.js.map +1 -0
  32. package/dist/chunks/fi-CNZqWHjw.js +2 -0
  33. package/dist/chunks/fi-CNZqWHjw.js.map +1 -0
  34. package/dist/chunks/{fr-BLQ4AIu7.js → fr-BKDUXceO.js} +3 -1
  35. package/dist/chunks/fr-BKDUXceO.js.map +1 -0
  36. package/dist/chunks/fr-CfFOw4hD.js +2 -0
  37. package/dist/chunks/fr-CfFOw4hD.js.map +1 -0
  38. package/dist/chunks/{he-Bg-Bqi7r.js → he-BVCHlTtT.js} +2 -1
  39. package/dist/chunks/he-BVCHlTtT.js.map +1 -0
  40. package/dist/chunks/he-DN2JEtQb.js +2 -0
  41. package/dist/chunks/he-DN2JEtQb.js.map +1 -0
  42. package/dist/chunks/hi-DxfOerNP.js +2 -0
  43. package/dist/chunks/hi-DxfOerNP.js.map +1 -0
  44. package/dist/chunks/{hi-wQeE43oY.js → hi-H_Hshh-7.js} +4 -3
  45. package/dist/chunks/hi-H_Hshh-7.js.map +1 -0
  46. package/dist/chunks/hu-BTImywuV.js +2 -0
  47. package/dist/chunks/{hu-DXtscQ8_.js.map → hu-BTImywuV.js.map} +1 -1
  48. package/dist/chunks/{hu-D9qxzu0r.js → hu-ZWiNfzvN.js} +2 -1
  49. package/dist/chunks/{hu-D9qxzu0r.js.map → hu-ZWiNfzvN.js.map} +1 -1
  50. package/dist/chunks/{id-Rx_wYvqy.js → id-DeiRYsJ1.js} +2 -1
  51. package/dist/chunks/id-DeiRYsJ1.js.map +1 -0
  52. package/dist/chunks/id-YFuArJA6.js +2 -0
  53. package/dist/chunks/id-YFuArJA6.js.map +1 -0
  54. package/dist/chunks/{it-B1SRPZ3e.js → it-UH9OzFhg.js} +3 -1
  55. package/dist/chunks/it-UH9OzFhg.js.map +1 -0
  56. package/dist/chunks/it-mhkzXBM9.js +2 -0
  57. package/dist/chunks/it-mhkzXBM9.js.map +1 -0
  58. package/dist/chunks/{ja-CMC3Parn.js → ja-6l_z_G9k.js} +2 -2
  59. package/dist/chunks/ja-6l_z_G9k.js.map +1 -0
  60. package/dist/chunks/{ja-DiItm8te.js → ja-BYC8FRN8.js} +3 -1
  61. package/dist/chunks/ja-BYC8FRN8.js.map +1 -0
  62. package/dist/chunks/{ko-CdGFWAKX.js → ko-Bjs2ZRcF.js} +3 -1
  63. package/dist/chunks/ko-Bjs2ZRcF.js.map +1 -0
  64. package/dist/chunks/ko-YAl4XwHu.js +2 -0
  65. package/dist/chunks/ko-YAl4XwHu.js.map +1 -0
  66. package/dist/chunks/nl-C-9zHtfb.js +2 -0
  67. package/dist/chunks/nl-C-9zHtfb.js.map +1 -0
  68. package/dist/chunks/{nl-CmZ3vEvj.js → nl-Ch5HFWQO.js} +3 -1
  69. package/dist/chunks/nl-Ch5HFWQO.js.map +1 -0
  70. package/dist/chunks/{no-BuxByZpq.js → no-CljpinWz.js} +2 -1
  71. package/dist/chunks/no-CljpinWz.js.map +1 -0
  72. package/dist/chunks/no-qzPitLlx.js +2 -0
  73. package/dist/chunks/no-qzPitLlx.js.map +1 -0
  74. package/dist/chunks/{pl-jZFCnDb8.js → pl-CUcSS0zZ.js} +2 -1
  75. package/dist/chunks/pl-CUcSS0zZ.js.map +1 -0
  76. package/dist/chunks/pl-MAIYeuhW.js +2 -0
  77. package/dist/chunks/pl-MAIYeuhW.js.map +1 -0
  78. package/dist/chunks/{pt-Cld7MwIW.js → pt-BHK0LwkC.js} +3 -1
  79. package/dist/chunks/pt-BHK0LwkC.js.map +1 -0
  80. package/dist/chunks/pt-DqDabE4v.js +2 -0
  81. package/dist/chunks/pt-DqDabE4v.js.map +1 -0
  82. package/dist/chunks/ro-BVs-lHH-.js +2 -0
  83. package/dist/chunks/ro-BVs-lHH-.js.map +1 -0
  84. package/dist/chunks/{ro-CuKDqj3C.js → ro-Bj8cwU2n.js} +2 -1
  85. package/dist/chunks/ro-Bj8cwU2n.js.map +1 -0
  86. package/dist/chunks/{ru-B7cjqJUm.js → ru-CgqNy0Gb.js} +10 -1
  87. package/dist/chunks/ru-CgqNy0Gb.js.map +1 -0
  88. package/dist/chunks/ru-DP7qDAmE.js +2 -0
  89. package/dist/chunks/ru-DP7qDAmE.js.map +1 -0
  90. package/dist/chunks/sv-B3QEYGgd.js +2 -0
  91. package/dist/chunks/sv-B3QEYGgd.js.map +1 -0
  92. package/dist/chunks/{sv-D9y-M1Fo.js → sv-H7jroOQ5.js} +2 -1
  93. package/dist/chunks/sv-H7jroOQ5.js.map +1 -0
  94. package/dist/chunks/{th-D9umBjEy.js → th-Dqm-gpGe.js} +2 -1
  95. package/dist/chunks/th-Dqm-gpGe.js.map +1 -0
  96. package/dist/chunks/th-DzQau9aW.js +2 -0
  97. package/dist/chunks/th-DzQau9aW.js.map +1 -0
  98. package/dist/chunks/{tr-BddMywiw.js → tr-D3zPcNtT.js} +2 -1
  99. package/dist/chunks/tr-D3zPcNtT.js.map +1 -0
  100. package/dist/chunks/tr-cG1YuE1E.js +2 -0
  101. package/dist/chunks/tr-cG1YuE1E.js.map +1 -0
  102. package/dist/chunks/{uk-Dbd31hFt.js → uk-CoIIs3QI.js} +10 -1
  103. package/dist/chunks/uk-CoIIs3QI.js.map +1 -0
  104. package/dist/chunks/uk-Cvbo0IBW.js +2 -0
  105. package/dist/chunks/uk-Cvbo0IBW.js.map +1 -0
  106. package/dist/chunks/vi-BRtYSBUp.js +2 -0
  107. package/dist/chunks/{vi-CJefLP_g.js.map → vi-BRtYSBUp.js.map} +1 -1
  108. package/dist/chunks/{vi-Do3BMOdh.js → vi-C_fruIbh.js} +2 -1
  109. package/dist/chunks/{vi-Do3BMOdh.js.map → vi-C_fruIbh.js.map} +1 -1
  110. package/dist/chunks/zh-CwczPMPp.js +2 -0
  111. package/dist/chunks/zh-CwczPMPp.js.map +1 -0
  112. package/dist/chunks/{zh-gQSYLZI3.js → zh-LDkEV2D9.js} +3 -1
  113. package/dist/chunks/zh-LDkEV2D9.js.map +1 -0
  114. package/dist/core.cjs +1 -1
  115. package/dist/core.cjs.map +1 -1
  116. package/dist/core.js +20 -20
  117. package/dist/core.js.map +1 -1
  118. package/dist/index.cjs +1 -1
  119. package/dist/index.d.ts +31 -16
  120. package/dist/index.js +1 -1
  121. package/dist/ui.cjs +1 -1
  122. package/dist/ui.d.ts +31 -16
  123. package/dist/ui.js +1 -1
  124. package/package.json +1 -1
  125. package/dist/chunks/PaywallUI-BYquPomD.js.map +0 -1
  126. package/dist/chunks/PaywallUI-Cl9sz_xA.js +0 -26
  127. package/dist/chunks/PaywallUI-Cl9sz_xA.js.map +0 -1
  128. package/dist/chunks/ar-BUQInJ5a.js +0 -2
  129. package/dist/chunks/ar-BUQInJ5a.js.map +0 -1
  130. package/dist/chunks/ar-nh4l4WDE.js.map +0 -1
  131. package/dist/chunks/cs-2UYO2rWf.js.map +0 -1
  132. package/dist/chunks/cs-i5K4KTFV.js +0 -2
  133. package/dist/chunks/cs-i5K4KTFV.js.map +0 -1
  134. package/dist/chunks/da-BD0O_HfV.js.map +0 -1
  135. package/dist/chunks/da-CZbhtVJO.js +0 -2
  136. package/dist/chunks/da-CZbhtVJO.js.map +0 -1
  137. package/dist/chunks/de-Bc-GoLgC.js +0 -2
  138. package/dist/chunks/de-Bc-GoLgC.js.map +0 -1
  139. package/dist/chunks/de-BkCiXPsn.js.map +0 -1
  140. package/dist/chunks/el-CcMEbl_F.js +0 -2
  141. package/dist/chunks/el-CcMEbl_F.js.map +0 -1
  142. package/dist/chunks/el-cIcxTp07.js.map +0 -1
  143. package/dist/chunks/es-BvYmomAz.js +0 -2
  144. package/dist/chunks/es-BvYmomAz.js.map +0 -1
  145. package/dist/chunks/es-CJBC_jrV.js.map +0 -1
  146. package/dist/chunks/fi-DyV7ynBf.js.map +0 -1
  147. package/dist/chunks/fi-aZR-qmZN.js +0 -2
  148. package/dist/chunks/fi-aZR-qmZN.js.map +0 -1
  149. package/dist/chunks/fr-BLQ4AIu7.js.map +0 -1
  150. package/dist/chunks/fr-BgbFAgHx.js +0 -2
  151. package/dist/chunks/fr-BgbFAgHx.js.map +0 -1
  152. package/dist/chunks/he-Bg-Bqi7r.js.map +0 -1
  153. package/dist/chunks/he-CQ4yCuja.js +0 -2
  154. package/dist/chunks/he-CQ4yCuja.js.map +0 -1
  155. package/dist/chunks/hi-DtUsj1c-.js +0 -2
  156. package/dist/chunks/hi-DtUsj1c-.js.map +0 -1
  157. package/dist/chunks/hi-wQeE43oY.js.map +0 -1
  158. package/dist/chunks/hu-DXtscQ8_.js +0 -2
  159. package/dist/chunks/id-BByOYpeo.js +0 -2
  160. package/dist/chunks/id-BByOYpeo.js.map +0 -1
  161. package/dist/chunks/id-Rx_wYvqy.js.map +0 -1
  162. package/dist/chunks/it-52Ip42pa.js +0 -2
  163. package/dist/chunks/it-52Ip42pa.js.map +0 -1
  164. package/dist/chunks/it-B1SRPZ3e.js.map +0 -1
  165. package/dist/chunks/ja-CMC3Parn.js.map +0 -1
  166. package/dist/chunks/ja-DiItm8te.js.map +0 -1
  167. package/dist/chunks/ko-3qY21q40.js +0 -2
  168. package/dist/chunks/ko-3qY21q40.js.map +0 -1
  169. package/dist/chunks/ko-CdGFWAKX.js.map +0 -1
  170. package/dist/chunks/nl-Borc5nw1.js +0 -2
  171. package/dist/chunks/nl-Borc5nw1.js.map +0 -1
  172. package/dist/chunks/nl-CmZ3vEvj.js.map +0 -1
  173. package/dist/chunks/no-BuxByZpq.js.map +0 -1
  174. package/dist/chunks/no-Do2iGedg.js +0 -2
  175. package/dist/chunks/no-Do2iGedg.js.map +0 -1
  176. package/dist/chunks/pl-jZFCnDb8.js.map +0 -1
  177. package/dist/chunks/pl-mRaky_7k.js +0 -2
  178. package/dist/chunks/pl-mRaky_7k.js.map +0 -1
  179. package/dist/chunks/pt-Cld7MwIW.js.map +0 -1
  180. package/dist/chunks/pt-DilDTXfs.js +0 -2
  181. package/dist/chunks/pt-DilDTXfs.js.map +0 -1
  182. package/dist/chunks/ro-CuKDqj3C.js.map +0 -1
  183. package/dist/chunks/ro-DF2uzPIB.js +0 -2
  184. package/dist/chunks/ro-DF2uzPIB.js.map +0 -1
  185. package/dist/chunks/ru-B7cjqJUm.js.map +0 -1
  186. package/dist/chunks/ru-YeaXnTO-.js +0 -2
  187. package/dist/chunks/ru-YeaXnTO-.js.map +0 -1
  188. package/dist/chunks/sv-2pHEvuSe.js +0 -2
  189. package/dist/chunks/sv-2pHEvuSe.js.map +0 -1
  190. package/dist/chunks/sv-D9y-M1Fo.js.map +0 -1
  191. package/dist/chunks/th-D9umBjEy.js.map +0 -1
  192. package/dist/chunks/th-u2QSDF0G.js +0 -2
  193. package/dist/chunks/th-u2QSDF0G.js.map +0 -1
  194. package/dist/chunks/tr-BddMywiw.js.map +0 -1
  195. package/dist/chunks/tr-Bhgm6_ti.js +0 -2
  196. package/dist/chunks/tr-Bhgm6_ti.js.map +0 -1
  197. package/dist/chunks/uk-7vwqsaVK.js +0 -2
  198. package/dist/chunks/uk-7vwqsaVK.js.map +0 -1
  199. package/dist/chunks/uk-Dbd31hFt.js.map +0 -1
  200. package/dist/chunks/vi-CJefLP_g.js +0 -2
  201. package/dist/chunks/zh-D5C3BzYL.js +0 -2
  202. package/dist/chunks/zh-D5C3BzYL.js.map +0 -1
  203. package/dist/chunks/zh-gQSYLZI3.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core.cjs"),r=require("./chunks/PaywallUI-Cl9sz_xA.js");exports.ApiClient=e.ApiClient;exports.ApiGatewayClient=e.ApiGatewayClient;exports.AuthClient=e.AuthClient;exports.BillingClient=e.BillingClient;exports.EventTracker=e.EventTracker;exports.PaywallError=e.PaywallError;exports.QuotaExceededError=e.QuotaExceededError;exports.SDK_VERSION=e.SDK_VERSION;exports.STORAGE_KEYS=e.STORAGE_KEYS;exports.createStorage=e.createStorage;exports.ensureVisitorId=e.ensureVisitorId;exports.generateVisitorId=e.generateVisitorId;exports.PaywallUI=r.PaywallUI;exports.blockRegistry=r.blockRegistry;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core.cjs"),r=require("./chunks/PaywallUI-Bvx8nRL0.js");exports.ApiClient=e.ApiClient;exports.ApiGatewayClient=e.ApiGatewayClient;exports.AuthClient=e.AuthClient;exports.BillingClient=e.BillingClient;exports.EventTracker=e.EventTracker;exports.PaywallError=e.PaywallError;exports.QuotaExceededError=e.QuotaExceededError;exports.SDK_VERSION=e.SDK_VERSION;exports.STORAGE_KEYS=e.STORAGE_KEYS;exports.createStorage=e.createStorage;exports.ensureVisitorId=e.ensureVisitorId;exports.generateVisitorId=e.generateVisitorId;exports.PaywallUI=r.PaywallUI;exports.blockRegistry=r.blockRegistry;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -918,6 +918,10 @@ export declare interface BlockContext {
918
918
  /** Текущая auth-session (snapshot из AuthClient). null = разлогинен. PaywallRoot
919
919
  * подписан на onAuthChange и пробрасывает свежий snapshot сюда. */
920
920
  authSession: AuthSession | null;
921
+ /** Стартовый mode для AuthPanel — переопределяет дефолт 'signin'.
922
+ * Выставляется AuthGate'ом когда host вызвал openSignup()/openSignin().
923
+ * Остальные блоки игнорируют. */
924
+ initialAuthMode?: 'signin' | 'signup';
921
925
  }
922
926
 
923
927
  export declare interface BlockProps<B extends LayoutBlock = LayoutBlock> {
@@ -1443,7 +1447,7 @@ export declare interface PaywallStateSnapshot {
1443
1447
  /** Модалка отрендерена и видна. False — closed (или ещё не открывалась). */
1444
1448
  open: boolean;
1445
1449
  /** Что показывается в модалке. null когда `open=false`. */
1446
- view: 'loading' | 'error' | 'layout' | 'auth' | 'anon' | 'support' | 'awaiting_payment' | 'popup_blocked' | 'purchased' | null;
1450
+ view: 'loading' | 'error' | 'layout' | 'auth' | 'support' | 'awaiting_payment' | 'popup_blocked' | 'purchased' | null;
1447
1451
  /** Заполнено только когда `view === 'error'`. */
1448
1452
  error: PaywallError | null;
1449
1453
  }
@@ -1570,23 +1574,34 @@ export declare class PaywallUI {
1570
1574
  */
1571
1575
  openAuth(opts?: OpenOptions): void;
1572
1576
  /**
1573
- * Открывает модалку с anonymous-gate. AnonGate сразу зовёт
1574
- * `auth.signInAnonymously()`:
1575
- * - если в storage есть `anonRefreshToken` silent resume через
1576
- * /auth/refresh, модалка схлопывается мгновенно (юзер видит лёгкий
1577
- * спиннер ~100мс);
1578
- * - иначе — fresh POST /auth/anonymous/signin без captcha (защита от
1579
- * abuse держится на Supabase per-real-IP rate-limit + CF Bot Fight Mode).
1580
- *
1581
- * После успешного signIn'а модалка закрывается; host подхватывает свежую
1582
- * session через `auth.onAuthChange` или `paywall.onUserChange`. Для UX
1583
- * "просто залогиниться чтобы api-gateway работал, без покупок".
1577
+ * Шорткат над `openAuth()` открывает модалку сразу на signin-форме.
1578
+ * Эквивалент `openAuth()` (signin — дефолт). Существует для симметрии с
1579
+ * `openSignup()` и читаемости host-кода:
1580
+ * - `paywall.openSignin()` «вход в существующий аккаунт»
1581
+ * - `paywall.openSignup()` — «новая регистрация»
1582
+ * Без managed-auth no-op.
1583
+ */
1584
+ openSignin(opts?: OpenOptions): void;
1585
+ /**
1586
+ * Открывает модалку с auth-gate сразу в режиме регистрации (signup-mode
1587
+ * AuthPanel'а email/password/repeat). Если в paywall layout админ
1588
+ * отключил allow_signup, AuthPanel игнорит mode и стартует с signin —
1589
+ * соблюдается admin-конфиг.
1590
+ * Без managed-auth — no-op.
1591
+ */
1592
+ openSignup(opts?: OpenOptions): void;
1593
+ /**
1594
+ * Headless anonymous signin без открытия модалки. Внутри:
1595
+ * idempotent (если уже анон — instant return) → resume через сохранённый
1596
+ * refresh_token → fresh /auth/anonymous/signin. Дедуплицирует
1597
+ * параллельные вызовы внутри AuthClient'а.
1584
1598
  *
1585
- * Без managed-auth (`auth` не подключён) методno-op. Триал и
1586
- * visibility-таргетинг этот flow обходит: анон-логин не должен зависеть
1587
- * от страны юзера или trial-стейджа.
1599
+ * Удобно для host-кнопок типа «Continue as guest» host сам управляет
1600
+ * loading-стейтом на своей кнопке, без полупустой модалки со спиннером.
1601
+ * Без managed-auth резолвится rejected promise'ом (нет AuthClient'а
1602
+ * чтобы делать signin).
1588
1603
  */
1589
- openAnonGate(opts?: OpenOptions): void;
1604
+ signInAnonymously(): Promise<AuthSession>;
1590
1605
  private openInternal;
1591
1606
  /** Применить gates ПОСЛЕ того, как модалка уже смонтирована (mount-then-load
1592
1607
  * путь). Если gate блокирует — close() + emit. Если юзер уже сам закрыл
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ApiClient as t, ApiGatewayClient as a, AuthClient as i, BillingClient as l, EventTracker as o, PaywallError as n, QuotaExceededError as E, SDK_VERSION as s, STORAGE_KEYS as S, createStorage as c, ensureVisitorId as d, generateVisitorId as g } from "./core.js";
2
- import { P as y, b as A } from "./chunks/PaywallUI-BYquPomD.js";
2
+ import { P as y, b as A } from "./chunks/PaywallUI-BrDiS6zg.js";
3
3
  export {
4
4
  t as ApiClient,
5
5
  a as ApiGatewayClient,
package/dist/ui.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/PaywallUI-Cl9sz_xA.js");exports.PaywallUI=e.PaywallUI;exports.blockRegistry=e.blockRegistry;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/PaywallUI-Bvx8nRL0.js");exports.PaywallUI=e.PaywallUI;exports.blockRegistry=e.blockRegistry;
2
2
  //# sourceMappingURL=ui.cjs.map
package/dist/ui.d.ts CHANGED
@@ -904,6 +904,10 @@ export declare interface BlockContext {
904
904
  /** Текущая auth-session (snapshot из AuthClient). null = разлогинен. PaywallRoot
905
905
  * подписан на onAuthChange и пробрасывает свежий snapshot сюда. */
906
906
  authSession: AuthSession | null;
907
+ /** Стартовый mode для AuthPanel — переопределяет дефолт 'signin'.
908
+ * Выставляется AuthGate'ом когда host вызвал openSignup()/openSignin().
909
+ * Остальные блоки игнорируют. */
910
+ initialAuthMode?: 'signin' | 'signup';
907
911
  }
908
912
 
909
913
  export declare interface BlockProps<B extends LayoutBlock = LayoutBlock> {
@@ -1382,7 +1386,7 @@ export declare interface PaywallStateSnapshot {
1382
1386
  /** Модалка отрендерена и видна. False — closed (или ещё не открывалась). */
1383
1387
  open: boolean;
1384
1388
  /** Что показывается в модалке. null когда `open=false`. */
1385
- view: 'loading' | 'error' | 'layout' | 'auth' | 'anon' | 'support' | 'awaiting_payment' | 'popup_blocked' | 'purchased' | null;
1389
+ view: 'loading' | 'error' | 'layout' | 'auth' | 'support' | 'awaiting_payment' | 'popup_blocked' | 'purchased' | null;
1386
1390
  /** Заполнено только когда `view === 'error'`. */
1387
1391
  error: PaywallError | null;
1388
1392
  }
@@ -1509,23 +1513,34 @@ export declare class PaywallUI {
1509
1513
  */
1510
1514
  openAuth(opts?: OpenOptions): void;
1511
1515
  /**
1512
- * Открывает модалку с anonymous-gate. AnonGate сразу зовёт
1513
- * `auth.signInAnonymously()`:
1514
- * - если в storage есть `anonRefreshToken` silent resume через
1515
- * /auth/refresh, модалка схлопывается мгновенно (юзер видит лёгкий
1516
- * спиннер ~100мс);
1517
- * - иначе — fresh POST /auth/anonymous/signin без captcha (защита от
1518
- * abuse держится на Supabase per-real-IP rate-limit + CF Bot Fight Mode).
1519
- *
1520
- * После успешного signIn'а модалка закрывается; host подхватывает свежую
1521
- * session через `auth.onAuthChange` или `paywall.onUserChange`. Для UX
1522
- * "просто залогиниться чтобы api-gateway работал, без покупок".
1516
+ * Шорткат над `openAuth()` открывает модалку сразу на signin-форме.
1517
+ * Эквивалент `openAuth()` (signin — дефолт). Существует для симметрии с
1518
+ * `openSignup()` и читаемости host-кода:
1519
+ * - `paywall.openSignin()` «вход в существующий аккаунт»
1520
+ * - `paywall.openSignup()` — «новая регистрация»
1521
+ * Без managed-auth no-op.
1522
+ */
1523
+ openSignin(opts?: OpenOptions): void;
1524
+ /**
1525
+ * Открывает модалку с auth-gate сразу в режиме регистрации (signup-mode
1526
+ * AuthPanel'а email/password/repeat). Если в paywall layout админ
1527
+ * отключил allow_signup, AuthPanel игнорит mode и стартует с signin —
1528
+ * соблюдается admin-конфиг.
1529
+ * Без managed-auth — no-op.
1530
+ */
1531
+ openSignup(opts?: OpenOptions): void;
1532
+ /**
1533
+ * Headless anonymous signin без открытия модалки. Внутри:
1534
+ * idempotent (если уже анон — instant return) → resume через сохранённый
1535
+ * refresh_token → fresh /auth/anonymous/signin. Дедуплицирует
1536
+ * параллельные вызовы внутри AuthClient'а.
1523
1537
  *
1524
- * Без managed-auth (`auth` не подключён) методno-op. Триал и
1525
- * visibility-таргетинг этот flow обходит: анон-логин не должен зависеть
1526
- * от страны юзера или trial-стейджа.
1538
+ * Удобно для host-кнопок типа «Continue as guest» host сам управляет
1539
+ * loading-стейтом на своей кнопке, без полупустой модалки со спиннером.
1540
+ * Без managed-auth резолвится rejected promise'ом (нет AuthClient'а
1541
+ * чтобы делать signin).
1527
1542
  */
1528
- openAnonGate(opts?: OpenOptions): void;
1543
+ signInAnonymously(): Promise<AuthSession>;
1529
1544
  private openInternal;
1530
1545
  /** Применить gates ПОСЛЕ того, как модалка уже смонтирована (mount-then-load
1531
1546
  * путь). Если gate блокирует — close() + emit. Если юзер уже сам закрыл
package/dist/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as o, b as r } from "./chunks/PaywallUI-BYquPomD.js";
1
+ import { P as o, b as r } from "./chunks/PaywallUI-BrDiS6zg.js";
2
2
  export {
3
3
  o as PaywallUI,
4
4
  r as blockRegistry
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monetize.software/sdk",
3
- "version": "3.0.0-alpha.6",
3
+ "version": "3.0.0-alpha.8",
4
4
  "description": "Monetize SDK — bundled billing client and paywall render engine for web and Chrome extensions",
5
5
  "type": "module",
6
6
  "sideEffects": false,