@getpara/core-sdk 2.12.0 → 2.13.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 (197) hide show
  1. package/dist/cjs/ParaCore.js +793 -2003
  2. package/dist/cjs/constants.js +4 -1
  3. package/dist/cjs/services/AuthService.js +787 -0
  4. package/dist/cjs/services/BaseAuthFlowService.js +78 -0
  5. package/dist/cjs/services/ExternalWalletService.js +386 -0
  6. package/dist/cjs/services/LoginFlowService.js +163 -0
  7. package/dist/cjs/services/PollingService.js +448 -0
  8. package/dist/cjs/services/PortalUrlService.js +379 -0
  9. package/dist/cjs/services/PregenWalletService.js +442 -0
  10. package/dist/cjs/services/SessionManagementService.js +280 -0
  11. package/dist/cjs/services/SignupFlowService.js +185 -0
  12. package/dist/cjs/services/VerificationFlowService.js +242 -0
  13. package/dist/cjs/services/WalletService.js +577 -0
  14. package/dist/cjs/services/types/AuthServiceTypes.js +15 -0
  15. package/dist/cjs/services/types/BaseAuthFlowServiceTypes.js +15 -0
  16. package/dist/cjs/services/types/ExternalWalletServiceTypes.js +15 -0
  17. package/dist/cjs/services/types/LoginFlowServiceTypes.js +15 -0
  18. package/dist/cjs/services/types/PollingServiceTypes.js +15 -0
  19. package/dist/cjs/services/types/PortalUrlServiceTypes.js +15 -0
  20. package/dist/cjs/services/types/PregenWalletServiceTypes.js +15 -0
  21. package/dist/cjs/services/types/SessionManagementServiceTypes.js +15 -0
  22. package/dist/cjs/services/types/SignupFlowServiceTypes.js +15 -0
  23. package/dist/cjs/services/types/VerificationFlowServiceTypes.js +15 -0
  24. package/dist/cjs/services/types/WalletServiceTypes.js +15 -0
  25. package/dist/cjs/services/types/index.js +15 -0
  26. package/dist/cjs/state/CoreStateManager.js +297 -0
  27. package/dist/cjs/state/actors/authenticateWithEmailOrPhone.js +50 -0
  28. package/dist/cjs/state/actors/authenticateWithExternalWallet.js +50 -0
  29. package/dist/cjs/state/actors/authenticateWithFarcaster.js +50 -0
  30. package/dist/cjs/state/actors/authenticateWithFarcasterLegacy.js +50 -0
  31. package/dist/cjs/state/actors/authenticateWithTelegram.js +50 -0
  32. package/dist/cjs/state/actors/authenticateWithTelegramLegacy.js +50 -0
  33. package/dist/cjs/state/actors/checkUserState.js +53 -0
  34. package/dist/cjs/state/actors/claimWallets.js +56 -0
  35. package/dist/cjs/state/actors/connectExternalConnectors.js +54 -0
  36. package/dist/cjs/state/actors/connectExternalWallet.js +50 -0
  37. package/dist/cjs/state/actors/createGuestWallets.js +50 -0
  38. package/dist/cjs/state/actors/createWallets.js +73 -0
  39. package/dist/cjs/state/actors/polling.js +91 -0
  40. package/dist/cjs/state/actors/processAuthentication.js +50 -0
  41. package/dist/cjs/state/actors/setupAfterLogin.js +52 -0
  42. package/dist/cjs/state/actors/setupPara.js +50 -0
  43. package/dist/cjs/state/actors/signExternalWalletVerification.js +79 -0
  44. package/dist/cjs/state/actors/switchExternalWallet.js +50 -0
  45. package/dist/cjs/state/actors/verifyExternalWallet.js +50 -0
  46. package/dist/cjs/state/actors/verifyNewAccount.js +50 -0
  47. package/dist/cjs/state/actors/waitForExternalWalletProviders.js +54 -0
  48. package/dist/cjs/state/machines/authStateMachine.helpers.js +137 -0
  49. package/dist/cjs/state/machines/authStateMachine.js +1084 -0
  50. package/dist/cjs/state/machines/coreStateMachine.js +383 -0
  51. package/dist/cjs/state/machines/walletStateMachine.js +437 -0
  52. package/dist/cjs/state/types/auth.js +15 -0
  53. package/dist/cjs/state/types/core.js +15 -0
  54. package/dist/cjs/state/types/wallet.js +15 -0
  55. package/dist/cjs/types/{auth.js → accountLinking.js} +3 -3
  56. package/dist/cjs/types/authState.js +15 -0
  57. package/dist/cjs/types/coreApi.js +3 -1
  58. package/dist/cjs/types/index.js +2 -2
  59. package/dist/cjs/types/serviceInterfaces.js +15 -0
  60. package/dist/cjs/types/util.js +15 -0
  61. package/dist/cjs/utils/formatting.js +6 -0
  62. package/dist/cjs/utils/retryBackoff.js +30 -0
  63. package/dist/cjs/utils/stateErrorHelpers.js +60 -0
  64. package/dist/cjs/utils/stateListener.js +129 -0
  65. package/dist/esm/ParaCore.js +796 -2031
  66. package/dist/esm/constants.js +3 -1
  67. package/dist/esm/services/AuthService.js +717 -0
  68. package/dist/esm/services/BaseAuthFlowService.js +25 -0
  69. package/dist/esm/services/ExternalWalletService.js +327 -0
  70. package/dist/esm/services/LoginFlowService.js +97 -0
  71. package/dist/esm/services/PollingService.js +389 -0
  72. package/dist/esm/services/PortalUrlService.js +320 -0
  73. package/dist/esm/services/PregenWalletService.js +393 -0
  74. package/dist/esm/services/SessionManagementService.js +236 -0
  75. package/dist/esm/services/SignupFlowService.js +119 -0
  76. package/dist/esm/services/VerificationFlowService.js +178 -0
  77. package/dist/esm/services/WalletService.js +514 -0
  78. package/dist/esm/services/types/AuthServiceTypes.js +0 -0
  79. package/dist/esm/services/types/BaseAuthFlowServiceTypes.js +0 -0
  80. package/dist/esm/services/types/ExternalWalletServiceTypes.js +0 -0
  81. package/dist/esm/services/types/LoginFlowServiceTypes.js +0 -0
  82. package/dist/esm/services/types/PollingServiceTypes.js +0 -0
  83. package/dist/esm/services/types/PortalUrlServiceTypes.js +0 -0
  84. package/dist/esm/services/types/PregenWalletServiceTypes.js +0 -0
  85. package/dist/esm/services/types/SessionManagementServiceTypes.js +0 -0
  86. package/dist/esm/services/types/SignupFlowServiceTypes.js +0 -0
  87. package/dist/esm/services/types/VerificationFlowServiceTypes.js +0 -0
  88. package/dist/esm/services/types/WalletServiceTypes.js +0 -0
  89. package/dist/esm/services/types/index.js +0 -0
  90. package/dist/esm/state/CoreStateManager.js +261 -0
  91. package/dist/esm/state/actors/authenticateWithEmailOrPhone.js +10 -0
  92. package/dist/esm/state/actors/authenticateWithExternalWallet.js +10 -0
  93. package/dist/esm/state/actors/authenticateWithFarcaster.js +10 -0
  94. package/dist/esm/state/actors/authenticateWithFarcasterLegacy.js +10 -0
  95. package/dist/esm/state/actors/authenticateWithTelegram.js +10 -0
  96. package/dist/esm/state/actors/authenticateWithTelegramLegacy.js +10 -0
  97. package/dist/esm/state/actors/checkUserState.js +13 -0
  98. package/dist/esm/state/actors/claimWallets.js +16 -0
  99. package/dist/esm/state/actors/connectExternalConnectors.js +14 -0
  100. package/dist/esm/state/actors/connectExternalWallet.js +10 -0
  101. package/dist/esm/state/actors/createGuestWallets.js +10 -0
  102. package/dist/esm/state/actors/createWallets.js +20 -0
  103. package/dist/esm/state/actors/polling.js +55 -0
  104. package/dist/esm/state/actors/processAuthentication.js +10 -0
  105. package/dist/esm/state/actors/setupAfterLogin.js +12 -0
  106. package/dist/esm/state/actors/setupPara.js +10 -0
  107. package/dist/esm/state/actors/signExternalWalletVerification.js +15 -0
  108. package/dist/esm/state/actors/switchExternalWallet.js +10 -0
  109. package/dist/esm/state/actors/verifyExternalWallet.js +10 -0
  110. package/dist/esm/state/actors/verifyNewAccount.js +10 -0
  111. package/dist/esm/state/actors/waitForExternalWalletProviders.js +14 -0
  112. package/dist/esm/state/machines/authStateMachine.helpers.js +92 -0
  113. package/dist/esm/state/machines/authStateMachine.js +1039 -0
  114. package/dist/esm/state/machines/coreStateMachine.js +343 -0
  115. package/dist/esm/state/machines/walletStateMachine.js +382 -0
  116. package/dist/esm/state/types/auth.js +0 -0
  117. package/dist/esm/state/types/core.js +0 -0
  118. package/dist/esm/state/types/wallet.js +0 -0
  119. package/dist/esm/types/authState.js +0 -0
  120. package/dist/esm/types/coreApi.js +3 -1
  121. package/dist/esm/types/index.js +1 -1
  122. package/dist/esm/types/serviceInterfaces.js +0 -0
  123. package/dist/esm/types/util.js +0 -0
  124. package/dist/esm/utils/formatting.js +6 -0
  125. package/dist/esm/utils/retryBackoff.js +7 -0
  126. package/dist/esm/utils/stateErrorHelpers.js +37 -0
  127. package/dist/esm/utils/stateListener.js +106 -0
  128. package/dist/types/ParaCore.d.ts +190 -119
  129. package/dist/types/PlatformUtils.d.ts +23 -0
  130. package/dist/types/constants.d.ts +1 -0
  131. package/dist/types/index.d.ts +4 -2
  132. package/dist/types/services/AuthService.d.ts +72 -0
  133. package/dist/types/services/BaseAuthFlowService.d.ts +28 -0
  134. package/dist/types/services/ExternalWalletService.d.ts +44 -0
  135. package/dist/types/services/LoginFlowService.d.ts +9 -0
  136. package/dist/types/services/PollingService.d.ts +35 -0
  137. package/dist/types/services/PortalUrlService.d.ts +26 -0
  138. package/dist/types/services/PregenWalletService.d.ts +38 -0
  139. package/dist/types/services/SessionManagementService.d.ts +28 -0
  140. package/dist/types/services/SignupFlowService.d.ts +10 -0
  141. package/dist/types/services/VerificationFlowService.d.ts +17 -0
  142. package/dist/types/services/WalletService.d.ts +54 -0
  143. package/dist/types/services/types/AuthServiceTypes.d.ts +147 -0
  144. package/dist/types/services/types/BaseAuthFlowServiceTypes.d.ts +4 -0
  145. package/dist/types/services/types/ExternalWalletServiceTypes.d.ts +67 -0
  146. package/dist/types/services/types/LoginFlowServiceTypes.d.ts +19 -0
  147. package/dist/types/services/types/PollingServiceTypes.d.ts +82 -0
  148. package/dist/types/services/types/PortalUrlServiceTypes.d.ts +46 -0
  149. package/dist/types/services/types/PregenWalletServiceTypes.d.ts +73 -0
  150. package/dist/types/services/types/SessionManagementServiceTypes.d.ts +27 -0
  151. package/dist/types/services/types/SignupFlowServiceTypes.d.ts +18 -0
  152. package/dist/types/services/types/VerificationFlowServiceTypes.d.ts +90 -0
  153. package/dist/types/services/types/WalletServiceTypes.d.ts +109 -0
  154. package/dist/types/services/types/index.d.ts +11 -0
  155. package/dist/types/state/CoreStateManager.d.ts +36 -0
  156. package/dist/types/state/actors/authenticateWithEmailOrPhone.d.ts +8 -0
  157. package/dist/types/state/actors/authenticateWithExternalWallet.d.ts +8 -0
  158. package/dist/types/state/actors/authenticateWithFarcaster.d.ts +3 -0
  159. package/dist/types/state/actors/authenticateWithFarcasterLegacy.d.ts +3 -0
  160. package/dist/types/state/actors/authenticateWithTelegram.d.ts +3 -0
  161. package/dist/types/state/actors/authenticateWithTelegramLegacy.d.ts +8 -0
  162. package/dist/types/state/actors/checkUserState.d.ts +6 -0
  163. package/dist/types/state/actors/claimWallets.d.ts +8 -0
  164. package/dist/types/state/actors/connectExternalConnectors.d.ts +4 -0
  165. package/dist/types/state/actors/connectExternalWallet.d.ts +3 -0
  166. package/dist/types/state/actors/createGuestWallets.d.ts +3 -0
  167. package/dist/types/state/actors/createWallets.d.ts +10 -0
  168. package/dist/types/state/actors/polling.d.ts +3 -0
  169. package/dist/types/state/actors/processAuthentication.d.ts +10 -0
  170. package/dist/types/state/actors/setupAfterLogin.d.ts +5 -0
  171. package/dist/types/state/actors/setupPara.d.ts +2 -0
  172. package/dist/types/state/actors/signExternalWalletVerification.d.ts +7 -0
  173. package/dist/types/state/actors/switchExternalWallet.d.ts +3 -0
  174. package/dist/types/state/actors/verifyExternalWallet.d.ts +8 -0
  175. package/dist/types/state/actors/verifyNewAccount.d.ts +8 -0
  176. package/dist/types/state/actors/waitForExternalWalletProviders.d.ts +2 -0
  177. package/dist/types/state/machines/authStateMachine.d.ts +2570 -0
  178. package/dist/types/state/machines/authStateMachine.helpers.d.ts +57 -0
  179. package/dist/types/state/machines/coreStateMachine.d.ts +22033 -0
  180. package/dist/types/state/machines/walletStateMachine.d.ts +1049 -0
  181. package/dist/types/state/types/auth.d.ts +113 -0
  182. package/dist/types/state/types/core.d.ts +114 -0
  183. package/dist/types/state/types/wallet.d.ts +76 -0
  184. package/dist/types/types/authState.d.ts +66 -0
  185. package/dist/types/types/config.d.ts +5 -0
  186. package/dist/types/types/coreApi.d.ts +148 -298
  187. package/dist/types/types/index.d.ts +3 -1
  188. package/dist/types/types/methods.d.ts +1 -191
  189. package/dist/types/types/serviceInterfaces.d.ts +125 -0
  190. package/dist/types/types/util.d.ts +43 -0
  191. package/dist/types/types/wallet.d.ts +3 -1
  192. package/dist/types/utils/retryBackoff.d.ts +2 -0
  193. package/dist/types/utils/stateErrorHelpers.d.ts +2 -0
  194. package/dist/types/utils/stateListener.d.ts +47 -0
  195. package/package.json +5 -4
  196. /package/dist/esm/types/{auth.js → accountLinking.js} +0 -0
  197. /package/dist/types/types/{auth.d.ts → accountLinking.d.ts} +0 -0
@@ -0,0 +1,280 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __typeError = (msg) => {
6
+ throw TypeError(msg);
7
+ };
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
22
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
23
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
24
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
25
+ var __async = (__this, __arguments, generator) => {
26
+ return new Promise((resolve, reject) => {
27
+ var fulfilled = (value) => {
28
+ try {
29
+ step(generator.next(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var rejected = (value) => {
35
+ try {
36
+ step(generator.throw(value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ };
41
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
42
+ step((generator = generator.apply(__this, __arguments)).next());
43
+ });
44
+ };
45
+ var SessionManagementService_exports = {};
46
+ __export(SessionManagementService_exports, {
47
+ SessionManagementService: () => SessionManagementService
48
+ });
49
+ module.exports = __toCommonJS(SessionManagementService_exports);
50
+ var import_wallet = require("../utils/wallet.js");
51
+ var _authService, _portalUrlService, _walletService, _pregenWalletService, _externalWalletService, _paraCoreInterface, _isImportedSession, _regeneratePromise, _handleTouchSessionError, _doTouchSession;
52
+ class SessionManagementService {
53
+ constructor(paraCore) {
54
+ __privateAdd(this, _authService);
55
+ __privateAdd(this, _portalUrlService);
56
+ __privateAdd(this, _walletService);
57
+ __privateAdd(this, _pregenWalletService);
58
+ __privateAdd(this, _externalWalletService);
59
+ __privateAdd(this, _paraCoreInterface);
60
+ __privateAdd(this, _isImportedSession);
61
+ __privateAdd(this, _regeneratePromise);
62
+ this.init = ({
63
+ authService,
64
+ portalUrlService,
65
+ walletService,
66
+ externalWalletService,
67
+ pregenWalletService
68
+ }) => {
69
+ __privateSet(this, _authService, authService);
70
+ __privateSet(this, _portalUrlService, portalUrlService);
71
+ __privateSet(this, _walletService, walletService);
72
+ __privateSet(this, _externalWalletService, externalWalletService);
73
+ __privateSet(this, _pregenWalletService, pregenWalletService);
74
+ };
75
+ /**
76
+ * Handle specific touchSession errors with user-friendly messages
77
+ * @private
78
+ */
79
+ __privateAdd(this, _handleTouchSessionError, (error) => {
80
+ const errorStr = String(error);
81
+ const errorMessage = error instanceof Error ? error.message : "";
82
+ if (errorStr.includes("blocked by CORS policy") && errorStr.includes("Access-Control-Allow-Origin")) {
83
+ const message = "Request rate limit reached. Please wait a couple of minutes and try again.";
84
+ console.error(`[Para] ${message}`);
85
+ __privateGet(this, _paraCoreInterface).displayModalError(message);
86
+ return;
87
+ }
88
+ if (error.status === 403 && errorMessage.includes("origin not authorized")) {
89
+ __privateGet(this, _paraCoreInterface).displayModalError(
90
+ "The current origin is not allowed. Update your allowed origins in the Para developer portal to allow the current origin."
91
+ );
92
+ return;
93
+ }
94
+ });
95
+ this.touchSession = (regenerate = false) => __async(this, null, function* () {
96
+ if (regenerate && __privateGet(this, _regeneratePromise) !== void 0) {
97
+ return __privateGet(this, _regeneratePromise);
98
+ }
99
+ const promise = __privateGet(this, _doTouchSession).call(this, regenerate);
100
+ if (regenerate) {
101
+ __privateSet(this, _regeneratePromise, promise);
102
+ yield promise.finally(() => {
103
+ __privateSet(this, _regeneratePromise, void 0);
104
+ });
105
+ }
106
+ return promise;
107
+ });
108
+ __privateAdd(this, _doTouchSession, (regenerate) => __async(this, null, function* () {
109
+ var _a, _b;
110
+ if (!__privateGet(this, _paraCoreInterface).isWorkerInitialized) {
111
+ void __privateGet(this, _paraCoreInterface).initializeWorker();
112
+ }
113
+ let session;
114
+ try {
115
+ session = yield __privateGet(this, _paraCoreInterface).ctx.client.touchSession(regenerate);
116
+ } catch (error) {
117
+ __privateGet(this, _handleTouchSessionError).call(this, error);
118
+ throw error;
119
+ }
120
+ if (!__privateGet(this, _paraCoreInterface).partner || __privateGet(this, _paraCoreInterface).partner.id !== session.partnerId || !(0, import_wallet.supportedWalletTypesEq)(__privateGet(this, _paraCoreInterface).partner.supportedWalletTypes || [], session.supportedWalletTypes) || (__privateGet(this, _paraCoreInterface).partner.cosmosPrefix || "cosmos") !== session.cosmosPrefix) {
121
+ if (!session.partnerId && !__privateGet(this, _paraCoreInterface).isPortal()) {
122
+ __privateGet(this, _paraCoreInterface).displayModalError(
123
+ `Invalid API Key. Please ensure you have a valid API key for the current environment: ${(_a = __privateGet(this, _paraCoreInterface).ctx.env) == null ? void 0 : _a.toUpperCase()}.`
124
+ );
125
+ console.error(`
126
+ \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
127
+ \u{1F6A8} PARA SDK CONFIGURATION ERROR \u{1F6A8}
128
+
129
+ INVALID API KEY FOR CONFIGURED ENVIRONMENT
130
+
131
+ Your API key does not match the configured environment. This usually means:
132
+
133
+ 1. You're using a production API key with a development environment
134
+ 2. You're using a development API key with a production environment
135
+ 3. Your API key is invalid or has been regenerated
136
+
137
+ SOLUTION:
138
+ \u2022 Verify your API key at: https://developer.getpara.com
139
+ \u2022 If your API key doesn't contain an environment prefix, ensure your API key is the correct key for your target environment
140
+
141
+ Current Environment: ${__privateGet(this, _paraCoreInterface).ctx.env}
142
+ API Key Prefix: ${((_b = __privateGet(this, _paraCoreInterface).ctx.apiKey) == null ? void 0 : _b.split("_")[0].toUpperCase()) || "None"}
143
+
144
+ Need help? Visit: https://docs.getpara.com or contact support
145
+ \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
146
+ `);
147
+ throw new Error("Invalid API Key.");
148
+ } else {
149
+ yield __privateGet(this, _paraCoreInterface).getPartner(session.partnerId);
150
+ }
151
+ }
152
+ if (session.currentWalletIds && !(0, import_wallet.currentWalletIdsEq)(session.currentWalletIds, __privateGet(this, _walletService).currentWalletIds)) {
153
+ yield __privateGet(this, _walletService).setCurrentWalletIds(session.currentWalletIds);
154
+ }
155
+ return session;
156
+ }));
157
+ this.isSessionActive = () => __async(this, null, function* () {
158
+ if (__privateGet(this, _externalWalletService).externalWalletConnectionType === "CONNECTION_ONLY") {
159
+ return true;
160
+ }
161
+ const { isAuthenticated, verifiedExternalWalletAddresses } = yield this.touchSession();
162
+ if (__privateGet(this, _externalWalletService).externalWalletConnectionType === "VERIFICATION") {
163
+ if (!verifiedExternalWalletAddresses) {
164
+ return false;
165
+ }
166
+ const externalAddresses = Object.values(__privateGet(this, _externalWalletService).externalWallets).map((w) => w.id);
167
+ return externalAddresses.every((address) => verifiedExternalWalletAddresses.includes(address));
168
+ }
169
+ return !!isAuthenticated;
170
+ });
171
+ this.isFullyLoggedIn = () => __async(this, null, function* () {
172
+ if (!__privateGet(this, _paraCoreInterface).isReady) {
173
+ return false;
174
+ }
175
+ if (!this.isImportedSession && __privateGet(this, _externalWalletService).externalWalletConnectionType !== "NONE") {
176
+ yield __privateGet(this, _externalWalletService).assertValidConnection();
177
+ }
178
+ if (__privateGet(this, _externalWalletService).externalWalletConnectionType === "CONNECTION_ONLY") {
179
+ return true;
180
+ }
181
+ if (__privateGet(this, _pregenWalletService).isGuestMode) {
182
+ return true;
183
+ }
184
+ const isSessionActive = yield this.isSessionActive();
185
+ if (__privateGet(this, _externalWalletService).externalWalletConnectionType === "VERIFICATION") {
186
+ return isSessionActive;
187
+ }
188
+ if (__privateGet(this, _paraCoreInterface).isSwitchingWallets) {
189
+ return isSessionActive;
190
+ }
191
+ if (!isSessionActive) {
192
+ return false;
193
+ }
194
+ if (__privateGet(this, _paraCoreInterface).isNoWalletConfig) {
195
+ return true;
196
+ }
197
+ const { supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
198
+ const requiredWalletTypes = supportedWalletTypes.filter(({ optional }) => !optional);
199
+ for (const { type } of requiredWalletTypes) {
200
+ const hasWalletForType = __privateGet(this, _walletService).currentWalletIdsArray.some(([walletId, walletType]) => {
201
+ try {
202
+ const wallet = __privateGet(this, _walletService).wallets[walletId];
203
+ return wallet && walletType === type && typeof wallet.address === "string";
204
+ } catch (e) {
205
+ return false;
206
+ }
207
+ });
208
+ if (!hasWalletForType) {
209
+ return false;
210
+ }
211
+ }
212
+ const allWalletsLoaded = __privateGet(this, _walletService).currentWalletIdsArray.every(([walletId]) => {
213
+ const wallet = __privateGet(this, _walletService).wallets[walletId];
214
+ return wallet && typeof wallet.address === "string";
215
+ });
216
+ if (!allWalletsLoaded) {
217
+ return false;
218
+ }
219
+ return true;
220
+ });
221
+ this.refreshSession = (..._0) => __async(this, [..._0], function* ({ shouldOpenPopup = false } = {}) {
222
+ const { sessionId } = yield this.touchSession(true);
223
+ if (!__privateGet(this, _paraCoreInterface).loginEncryptionKeyPair) {
224
+ yield __privateGet(this, _paraCoreInterface).setLoginEncryptionKeyPair();
225
+ }
226
+ const link = yield __privateGet(this, _portalUrlService).getLoginUrl({
227
+ sessionId
228
+ });
229
+ if (shouldOpenPopup) {
230
+ yield __privateGet(this, _paraCoreInterface).platformUtils.openPopup(link);
231
+ }
232
+ return link;
233
+ });
234
+ this.keepSessionAlive = () => __async(this, null, function* () {
235
+ try {
236
+ yield __privateGet(this, _paraCoreInterface).ctx.client.keepSessionAlive(__privateGet(this, _authService).userId);
237
+ return true;
238
+ } catch (e) {
239
+ return false;
240
+ }
241
+ });
242
+ this.getVerificationToken = () => __async(this, null, function* () {
243
+ const { sessionLookupId } = yield this.touchSession();
244
+ return sessionLookupId;
245
+ });
246
+ this.issueJwt = (..._0) => __async(this, [..._0], function* ({ keyIndex = 0 } = {}) {
247
+ try {
248
+ return yield __privateGet(this, _paraCoreInterface).ctx.client.issueJwt({ keyIndex });
249
+ } catch (error) {
250
+ if (error.status === 403 || error.status === 401) {
251
+ const errorMessage = "The user needs to be logged in to issue a JWT. Please log in and try again.";
252
+ __privateGet(this, _paraCoreInterface).displayModalError(errorMessage);
253
+ console.warn(errorMessage);
254
+ }
255
+ throw error;
256
+ }
257
+ });
258
+ __privateSet(this, _paraCoreInterface, paraCore.getSessionManagementServiceInterface());
259
+ }
260
+ get isImportedSession() {
261
+ return __privateGet(this, _isImportedSession) || false;
262
+ }
263
+ set isImportedSession(value) {
264
+ __privateSet(this, _isImportedSession, value);
265
+ }
266
+ }
267
+ _authService = new WeakMap();
268
+ _portalUrlService = new WeakMap();
269
+ _walletService = new WeakMap();
270
+ _pregenWalletService = new WeakMap();
271
+ _externalWalletService = new WeakMap();
272
+ _paraCoreInterface = new WeakMap();
273
+ _isImportedSession = new WeakMap();
274
+ _regeneratePromise = new WeakMap();
275
+ _handleTouchSessionError = new WeakMap();
276
+ _doTouchSession = new WeakMap();
277
+ // Annotate the CommonJS export names for ESM import in node:
278
+ 0 && (module.exports = {
279
+ SessionManagementService
280
+ });
@@ -0,0 +1,185 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __objRest = (source, exclude) => {
23
+ var target = {};
24
+ for (var prop in source)
25
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
26
+ target[prop] = source[prop];
27
+ if (source != null && __getOwnPropSymbols)
28
+ for (var prop of __getOwnPropSymbols(source)) {
29
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
30
+ target[prop] = source[prop];
31
+ }
32
+ return target;
33
+ };
34
+ var __export = (target, all) => {
35
+ for (var name in all)
36
+ __defProp(target, name, { get: all[name], enumerable: true });
37
+ };
38
+ var __copyProps = (to, from, except, desc) => {
39
+ if (from && typeof from === "object" || typeof from === "function") {
40
+ for (let key of __getOwnPropNames(from))
41
+ if (!__hasOwnProp.call(to, key) && key !== except)
42
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
43
+ }
44
+ return to;
45
+ };
46
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
47
+ var __async = (__this, __arguments, generator) => {
48
+ return new Promise((resolve, reject) => {
49
+ var fulfilled = (value) => {
50
+ try {
51
+ step(generator.next(value));
52
+ } catch (e) {
53
+ reject(e);
54
+ }
55
+ };
56
+ var rejected = (value) => {
57
+ try {
58
+ step(generator.throw(value));
59
+ } catch (e) {
60
+ reject(e);
61
+ }
62
+ };
63
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
64
+ step((generator = generator.apply(__this, __arguments)).next());
65
+ });
66
+ };
67
+ var SignupFlowService_exports = {};
68
+ __export(SignupFlowService_exports, {
69
+ SignupFlowService: () => SignupFlowService
70
+ });
71
+ module.exports = __toCommonJS(SignupFlowService_exports);
72
+ var import_user_management_client = require("@getpara/user-management-client");
73
+ var import_BaseAuthFlowService = require("./BaseAuthFlowService.js");
74
+ var import_types = require("../types/index.js");
75
+ var import_utils = require("../utils/index.js");
76
+ var import_stateErrorHelpers = require("../utils/stateErrorHelpers.js");
77
+ var import_stateListener = require("../utils/stateListener.js");
78
+ class SignupFlowService extends import_BaseAuthFlowService.BaseAuthFlowService {
79
+ constructor() {
80
+ super(...arguments);
81
+ this.prepareState = (serverAuthState, opts) => __async(this, null, function* () {
82
+ yield this.setupAuthFromServerState(serverAuthState);
83
+ const _a = serverAuthState, { signupAuthMethods = [] } = _a, authState = __objRest(_a, ["signupAuthMethods"]);
84
+ const { useShortUrls: shorten = false, portalTheme } = opts;
85
+ const isPasskeySupported = yield this.paraCoreInterface.isPasskeySupported();
86
+ const [isPasskey, isPassword, isPIN] = [
87
+ signupAuthMethods.includes(import_user_management_client.AuthMethod.PASSKEY),
88
+ signupAuthMethods.includes(import_user_management_client.AuthMethod.PASSWORD) || !isPasskeySupported,
89
+ signupAuthMethods.includes(import_user_management_client.AuthMethod.PIN)
90
+ ];
91
+ if (!isPasskey && !isPassword && !isPIN) {
92
+ throw new Error("No supported authentication methods found...");
93
+ }
94
+ const signupState = __spreadProps(__spreadValues({}, authState), {
95
+ isPasskeySupported,
96
+ signupAuthMethods
97
+ });
98
+ if (isPasskey) {
99
+ const { url: passkeyUrl, credentialId: passkeyId } = yield this.services.authService.getNewCredentialAndUrl({
100
+ authMethod: "PASSKEY",
101
+ shorten
102
+ });
103
+ if (passkeyUrl) signupState.passkeyUrl = passkeyUrl;
104
+ signupState.passkeyId = passkeyId;
105
+ }
106
+ if (isPassword) {
107
+ const { url: passwordUrl, credentialId: passwordId } = yield this.services.authService.getNewCredentialAndUrl({
108
+ authMethod: "PASSWORD",
109
+ portalTheme,
110
+ shorten
111
+ });
112
+ signupState.passwordUrl = passwordUrl;
113
+ signupState.passwordId = passwordId;
114
+ }
115
+ if (isPIN) {
116
+ const { url: pinUrl, credentialId: pinId } = yield this.services.authService.getNewCredentialAndUrl({
117
+ authMethod: "PIN",
118
+ portalTheme,
119
+ shorten
120
+ });
121
+ signupState.pinUrl = pinUrl;
122
+ signupState.pinId = pinId;
123
+ }
124
+ return signupState;
125
+ });
126
+ this.waitForSignup = (_0) => __async(this, [_0], function* ({ isCanceled = () => false, onCancel, onPoll }) {
127
+ this.stateManager.send({
128
+ type: "WAIT_FOR_SESSION",
129
+ data: {
130
+ onCancel,
131
+ onPoll,
132
+ isCanceled
133
+ }
134
+ });
135
+ return yield (0, import_stateListener.waitForAuthStateChange)({
136
+ stateManager: this.stateManager,
137
+ resolvePhases: [
138
+ {
139
+ phase: "authenticated",
140
+ onPhase: () => {
141
+ (0, import_utils.dispatchEvent)(import_types.ParaEvent.ACCOUNT_CREATION_EVENT, true);
142
+ return true;
143
+ }
144
+ }
145
+ ],
146
+ onReject: (state) => {
147
+ var _a;
148
+ (_a = import_utils.dispatchEvent) == null ? void 0 : _a(import_types.ParaEvent.ACCOUNT_CREATION_EVENT, {}, (0, import_stateErrorHelpers.extractErrorMessage)(state.error, "failed to sign up user"));
149
+ },
150
+ waitForCoreAuthenticated: false
151
+ });
152
+ });
153
+ this.waitForWalletCreation = (..._0) => __async(this, [..._0], function* ({ isCanceled = () => false, onCancel, onPoll } = {}) {
154
+ this.stateManager.send({
155
+ type: "WAIT_FOR_WALLET_CREATION",
156
+ data: {
157
+ onCancel,
158
+ onPoll,
159
+ isCanceled
160
+ }
161
+ });
162
+ return yield (0, import_stateListener.waitForCoreStateChange)({
163
+ stateManager: this.stateManager,
164
+ resolvePhases: [
165
+ {
166
+ phase: "authenticated",
167
+ onPhase: (state) => {
168
+ const resp = state.newWalletsResult;
169
+ (0, import_utils.dispatchEvent)(import_types.ParaEvent.ACCOUNT_SETUP_EVENT, resp);
170
+ return resp;
171
+ }
172
+ }
173
+ ],
174
+ onReject: (state) => {
175
+ var _a;
176
+ (_a = import_utils.dispatchEvent) == null ? void 0 : _a(import_types.ParaEvent.ACCOUNT_SETUP_EVENT, {}, (0, import_stateErrorHelpers.extractErrorMessage)(state.error, "failed to sign up user"));
177
+ }
178
+ });
179
+ });
180
+ }
181
+ }
182
+ // Annotate the CommonJS export names for ESM import in node:
183
+ 0 && (module.exports = {
184
+ SignupFlowService
185
+ });