@getpara/core-sdk 2.11.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 +809 -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 +812 -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,448 @@
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 __typeError = (msg) => {
10
+ throw TypeError(msg);
11
+ };
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __copyProps = (to, from, except, desc) => {
30
+ if (from && typeof from === "object" || typeof from === "function") {
31
+ for (let key of __getOwnPropNames(from))
32
+ if (!__hasOwnProp.call(to, key) && key !== except)
33
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
+ }
35
+ return to;
36
+ };
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
39
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
40
+ 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);
41
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
42
+ var __async = (__this, __arguments, generator) => {
43
+ return new Promise((resolve, reject) => {
44
+ var fulfilled = (value) => {
45
+ try {
46
+ step(generator.next(value));
47
+ } catch (e) {
48
+ reject(e);
49
+ }
50
+ };
51
+ var rejected = (value) => {
52
+ try {
53
+ step(generator.throw(value));
54
+ } catch (e) {
55
+ reject(e);
56
+ }
57
+ };
58
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
59
+ step((generator = generator.apply(__this, __arguments)).next());
60
+ });
61
+ };
62
+ var PollingService_exports = {};
63
+ __export(PollingService_exports, {
64
+ PollingService: () => PollingService
65
+ });
66
+ module.exports = __toCommonJS(PollingService_exports);
67
+ var import_popup = require("../types/popup.js");
68
+ var import_types = require("../utils/types.js");
69
+ var import_constants = require("../constants.js");
70
+ var _authService, _pregenWalletService, _walletService, _portalUrlService, _sessionManagementService, _paraCoreInterface, _activePollingOperations, _pollingCancelFlags, _openOAuthPopup;
71
+ class PollingService {
72
+ constructor(paraCore) {
73
+ __privateAdd(this, _authService);
74
+ __privateAdd(this, _pregenWalletService);
75
+ __privateAdd(this, _walletService);
76
+ __privateAdd(this, _portalUrlService);
77
+ __privateAdd(this, _sessionManagementService);
78
+ __privateAdd(this, _paraCoreInterface);
79
+ __privateAdd(this, _activePollingOperations, /* @__PURE__ */ new Set());
80
+ __privateAdd(this, _pollingCancelFlags, /* @__PURE__ */ new Map());
81
+ this.init = ({
82
+ authService,
83
+ pregenWalletService,
84
+ walletService,
85
+ portalUrlService,
86
+ sessionManagementService
87
+ }) => {
88
+ __privateSet(this, _authService, authService);
89
+ __privateSet(this, _pregenWalletService, pregenWalletService);
90
+ __privateSet(this, _walletService, walletService);
91
+ __privateSet(this, _portalUrlService, portalUrlService);
92
+ __privateSet(this, _sessionManagementService, sessionManagementService);
93
+ };
94
+ __privateAdd(this, _openOAuthPopup, () => __async(this, null, function* () {
95
+ try {
96
+ __privateGet(this, _paraCoreInterface).popupWindow = yield __privateGet(this, _paraCoreInterface).platformUtils.openPopup("about:blank", {
97
+ type: import_popup.PopupType.OAUTH
98
+ });
99
+ } catch (error) {
100
+ throw new Error(`Failed to open OAuth popup: ${error}`);
101
+ }
102
+ }));
103
+ /**
104
+ * Cancels all active polling operations
105
+ * Useful for cleanup during logout or app shutdown
106
+ */
107
+ this.cancelAllPolling = () => {
108
+ __privateGet(this, _paraCoreInterface).devLog(
109
+ `[PollingService] Canceling ${__privateGet(this, _activePollingOperations).size} active polling operations`
110
+ );
111
+ __privateGet(this, _pollingCancelFlags).forEach((cancelFlag) => {
112
+ cancelFlag.canceled = true;
113
+ });
114
+ __privateGet(this, _activePollingOperations).clear();
115
+ __privateGet(this, _pollingCancelFlags).clear();
116
+ if (__privateGet(this, _paraCoreInterface).popupWindow && !__privateGet(this, _paraCoreInterface).popupWindow.closed) {
117
+ __privateGet(this, _paraCoreInterface).popupWindow.close();
118
+ __privateGet(this, _paraCoreInterface).popupWindow = null;
119
+ }
120
+ };
121
+ this.poll = (config) => __async(this, null, function* () {
122
+ const {
123
+ init,
124
+ checkCondition,
125
+ maxPolls = 150,
126
+ intervalMs = import_constants.POLLING_INTERVAL_MS,
127
+ timeoutMs = import_constants.POLLING_TIMEOUT_MS,
128
+ onPoll,
129
+ onCancel,
130
+ isCanceled,
131
+ id = "genericPolling"
132
+ } = config;
133
+ const pollingId = `${id}_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
134
+ __privateGet(this, _activePollingOperations).add(pollingId);
135
+ const cancelFlag = { canceled: false };
136
+ __privateGet(this, _pollingCancelFlags).set(pollingId, cancelFlag);
137
+ const cleanup = () => {
138
+ __privateGet(this, _activePollingOperations).delete(pollingId);
139
+ __privateGet(this, _pollingCancelFlags).delete(pollingId);
140
+ };
141
+ const isOperationCanceled = () => {
142
+ return cancelFlag.canceled || (isCanceled == null ? void 0 : isCanceled());
143
+ };
144
+ let pollCount = 0;
145
+ let consecutiveErrors = 0;
146
+ let hasInitialized = false;
147
+ const startTime = Date.now();
148
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
149
+ try {
150
+ if (!hasInitialized && init) {
151
+ yield init();
152
+ hasInitialized = true;
153
+ }
154
+ while (pollCount < maxPolls) {
155
+ if (isOperationCanceled()) {
156
+ cleanup();
157
+ onCancel == null ? void 0 : onCancel();
158
+ return { type: "CANCEL" };
159
+ }
160
+ if (Date.now() - startTime > timeoutMs) {
161
+ cleanup();
162
+ onCancel == null ? void 0 : onCancel();
163
+ return { type: "ERROR", error: "TIMEOUT" };
164
+ }
165
+ try {
166
+ const { finished, data } = yield checkCondition();
167
+ consecutiveErrors = 0;
168
+ if (finished) {
169
+ cleanup();
170
+ return { type: "COMPLETE", data };
171
+ }
172
+ pollCount++;
173
+ __privateGet(this, _paraCoreInterface).devLog(`[${id}] Poll iteration`, {
174
+ pollCount,
175
+ elapsedMs: Date.now() - startTime
176
+ });
177
+ onPoll == null ? void 0 : onPoll();
178
+ if (pollCount < maxPolls) {
179
+ yield sleep(intervalMs);
180
+ }
181
+ } catch (error) {
182
+ consecutiveErrors++;
183
+ if (consecutiveErrors >= 3) {
184
+ console.warn(`[${id}] ${consecutiveErrors} consecutive polling errors`, error);
185
+ }
186
+ pollCount++;
187
+ onPoll == null ? void 0 : onPoll();
188
+ if (pollCount < maxPolls) {
189
+ yield sleep(intervalMs);
190
+ }
191
+ }
192
+ }
193
+ cleanup();
194
+ onCancel == null ? void 0 : onCancel();
195
+ return { type: "ERROR", error: "MAX_POLLS_EXCEEDED" };
196
+ } catch (error) {
197
+ console.error("Polling initialization error:", error);
198
+ cleanup();
199
+ onCancel == null ? void 0 : onCancel();
200
+ return { type: "ERROR", error: "INITIALIZATION_FAILED" };
201
+ }
202
+ });
203
+ this.waitForOAuthEvent = (_0) => __async(this, [_0], function* ({
204
+ method,
205
+ onOAuthPopup,
206
+ onOAuthUrl,
207
+ portalTheme,
208
+ useShortUrls,
209
+ isCanceled,
210
+ appScheme
211
+ }) {
212
+ const oAuthConfigs = {
213
+ TELEGRAM: {
214
+ name: "Telegram",
215
+ portalUrlType: "telegramLoginVerify",
216
+ events: {
217
+ success: "TELEGRAM_SUCCESS",
218
+ failed: "TELEGRAM_FAILED"
219
+ }
220
+ },
221
+ FARCASTER: {
222
+ name: "Farcaster",
223
+ portalUrlType: "loginFarcaster",
224
+ events: {
225
+ success: "FARCASTER_SUCCESS",
226
+ failed: "FARCASTER_FAILED"
227
+ }
228
+ }
229
+ };
230
+ const config = oAuthConfigs[method];
231
+ const operationId = `waitForOAuthEvent_${method}_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
232
+ __privateGet(this, _activePollingOperations).add(operationId);
233
+ const cancelFlag = { canceled: false };
234
+ __privateGet(this, _pollingCancelFlags).set(operationId, cancelFlag);
235
+ const cleanup = () => {
236
+ __privateGet(this, _activePollingOperations).delete(operationId);
237
+ __privateGet(this, _pollingCancelFlags).delete(operationId);
238
+ };
239
+ const isOperationCanceled = () => {
240
+ return cancelFlag.canceled || (isCanceled == null ? void 0 : isCanceled());
241
+ };
242
+ if (onOAuthPopup) {
243
+ yield __privateGet(this, _openOAuthPopup).call(this);
244
+ }
245
+ yield __privateGet(this, _authService).prepareLogin();
246
+ const oAuthUrl = yield __privateGet(this, _portalUrlService).constructPortalUrl(config.portalUrlType, {
247
+ portalTheme,
248
+ shorten: useShortUrls,
249
+ appScheme
250
+ });
251
+ if (onOAuthUrl) {
252
+ onOAuthUrl(oAuthUrl);
253
+ } else if (!!__privateGet(this, _paraCoreInterface).popupWindow) {
254
+ __privateGet(this, _paraCoreInterface).popupWindow.location.href = oAuthUrl;
255
+ onOAuthPopup(__privateGet(this, _paraCoreInterface).popupWindow);
256
+ }
257
+ return new Promise((resolve, reject) => {
258
+ let settled = false;
259
+ let timeoutId;
260
+ let cancelCheckInterval;
261
+ const cleanupAll = () => {
262
+ __privateGet(this, _paraCoreInterface).platformUtils.removeEventListener({
263
+ event: config.events.success,
264
+ handler: successHandler
265
+ });
266
+ __privateGet(this, _paraCoreInterface).platformUtils.removeEventListener({
267
+ event: config.events.failed,
268
+ handler: errorHandler
269
+ });
270
+ if (timeoutId) clearTimeout(timeoutId);
271
+ if (cancelCheckInterval) clearInterval(cancelCheckInterval);
272
+ cleanup();
273
+ };
274
+ const successHandler = (eventData) => {
275
+ if (settled) return;
276
+ settled = true;
277
+ cleanupAll();
278
+ resolve({ authState: eventData.payload, opts: { portalTheme, useShortUrls } });
279
+ };
280
+ const errorHandler = () => {
281
+ if (settled) return;
282
+ settled = true;
283
+ cleanupAll();
284
+ reject(`${config.name} authentication failed`);
285
+ };
286
+ __privateGet(this, _paraCoreInterface).platformUtils.addEventListener({
287
+ ctx: __privateGet(this, _paraCoreInterface).ctx,
288
+ event: config.events.success,
289
+ handler: successHandler
290
+ });
291
+ __privateGet(this, _paraCoreInterface).platformUtils.addEventListener({
292
+ ctx: __privateGet(this, _paraCoreInterface).ctx,
293
+ event: config.events.failed,
294
+ handler: errorHandler
295
+ });
296
+ cancelCheckInterval = setInterval(() => {
297
+ if (isOperationCanceled()) {
298
+ if (settled) return;
299
+ settled = true;
300
+ cleanupAll();
301
+ reject(`${config.name} authentication canceled`);
302
+ }
303
+ }, 100);
304
+ timeoutId = setTimeout(() => {
305
+ if (settled) return;
306
+ settled = true;
307
+ cleanupAll();
308
+ reject(`${config.name} authentication timed out`);
309
+ }, import_constants.POLLING_TIMEOUT_MS);
310
+ });
311
+ });
312
+ this.waitForTelegramEvent = (params) => __async(this, null, function* () {
313
+ return yield this.waitForOAuthEvent(__spreadProps(__spreadValues({}, params), { method: "TELEGRAM" }));
314
+ });
315
+ this.waitForFarcasterEvent = (params) => __async(this, null, function* () {
316
+ return yield this.waitForOAuthEvent(__spreadProps(__spreadValues({}, params), { method: "FARCASTER" }));
317
+ });
318
+ this.waitForFarcasterAuth = ({ onSuccess }) => () => __async(this, null, function* () {
319
+ try {
320
+ const serverAuthState = yield __privateGet(this, _paraCoreInterface).ctx.client.getFarcasterAuthStatus();
321
+ if ((0, import_types.isServerAuthState)(serverAuthState)) {
322
+ onSuccess == null ? void 0 : onSuccess(serverAuthState);
323
+ return { finished: true };
324
+ }
325
+ return { finished: false };
326
+ } catch (e) {
327
+ return { finished: false };
328
+ }
329
+ });
330
+ this.initOAuthPolling = (_0) => __async(this, [_0], function* ({ onOAuthPopup, onOAuthUrl, method, appScheme }) {
331
+ if (onOAuthPopup) {
332
+ yield __privateGet(this, _openOAuthPopup).call(this);
333
+ }
334
+ let sessionLookupId;
335
+ if (onOAuthUrl || onOAuthPopup) {
336
+ sessionLookupId = yield __privateGet(this, _authService).prepareLogin();
337
+ const oAuthUrl = yield __privateGet(this, _portalUrlService).getOAuthUrl({
338
+ method,
339
+ appScheme,
340
+ sessionLookupId
341
+ });
342
+ switch (true) {
343
+ case !!onOAuthUrl: {
344
+ onOAuthUrl(oAuthUrl);
345
+ break;
346
+ }
347
+ case (!!onOAuthPopup && !!__privateGet(this, _paraCoreInterface).popupWindow): {
348
+ __privateGet(this, _paraCoreInterface).popupWindow.location.href = oAuthUrl;
349
+ onOAuthPopup(__privateGet(this, _paraCoreInterface).popupWindow);
350
+ break;
351
+ }
352
+ }
353
+ } else {
354
+ ({ sessionLookupId } = yield __privateGet(this, _sessionManagementService).touchSession());
355
+ }
356
+ return { sessionLookupId };
357
+ });
358
+ this.waitForOAuth = ({ onSuccess }) => () => __async(this, null, function* () {
359
+ try {
360
+ const serverAuthState = yield __privateGet(this, _paraCoreInterface).ctx.client.verifyOAuth();
361
+ if ((0, import_types.isServerAuthState)(serverAuthState)) {
362
+ onSuccess == null ? void 0 : onSuccess(serverAuthState);
363
+ return { finished: true };
364
+ }
365
+ return { finished: false };
366
+ } catch (e) {
367
+ return { finished: false };
368
+ }
369
+ });
370
+ this.waitForSession = () => __async(this, null, function* () {
371
+ __privateGet(this, _paraCoreInterface).devLog("[waitForSession] Checking session");
372
+ const isActive = yield __privateGet(this, _sessionManagementService).isSessionActive();
373
+ __privateGet(this, _paraCoreInterface).devLog(`[waitForSession] Session active: ${isActive}`);
374
+ return { finished: isActive };
375
+ });
376
+ this.waitForWallets = ({ parent }) => () => __async(this, null, function* () {
377
+ var _a;
378
+ const isPortal = __privateGet(this, _paraCoreInterface).isPortal();
379
+ const session = yield __privateGet(this, _sessionManagementService).touchSession();
380
+ yield __privateGet(this, _authService).setUserId(session.userId);
381
+ if (session.currentWalletIds && session.currentWalletIds !== __privateGet(this, _walletService).currentWalletIds)
382
+ yield __privateGet(this, _walletService).setCurrentWalletIds(session.currentWalletIds, {
383
+ sessionLookupId: isPortal ? session.sessionLookupId : void 0
384
+ });
385
+ const needsWallet = (_a = session.needsWallet) != null ? _a : false;
386
+ parent.send({ type: "SET_NEEDS_WALLET", data: { needsWallet } });
387
+ if (!needsWallet) {
388
+ if (__privateGet(this, _walletService).currentWalletIdsArray.length === 0) {
389
+ return { finished: false };
390
+ }
391
+ }
392
+ const sessionLookupId = session.sessionLookupId;
393
+ const temporaryShares = (yield __privateGet(this, _paraCoreInterface).ctx.client.getTransmissionKeyshares(__privateGet(this, _authService).userId, sessionLookupId)).data.temporaryShares;
394
+ parent.send({ type: "SET_TEMPORARY_SHARES", data: { temporaryShares } });
395
+ let hasSharesForCurrentWallets;
396
+ if (!isPortal) {
397
+ const fetchedWallets = yield __privateGet(this, _walletService).fetchWallets();
398
+ hasSharesForCurrentWallets = temporaryShares.length === fetchedWallets.length;
399
+ } else {
400
+ hasSharesForCurrentWallets = __privateGet(this, _walletService).currentWalletIdsArray.every(([walletId]) => {
401
+ return temporaryShares.some((share) => share.walletId === walletId);
402
+ });
403
+ }
404
+ if (hasSharesForCurrentWallets) {
405
+ return { finished: true };
406
+ }
407
+ return { finished: false };
408
+ });
409
+ this.waitForWalletAddress = ({ walletId }) => () => __async(this, null, function* () {
410
+ try {
411
+ const res = yield (__privateGet(this, _paraCoreInterface).isPortal() ? __privateGet(this, _paraCoreInterface).ctx.client.getAllWallets : __privateGet(this, _paraCoreInterface).ctx.client.getWallets)(__privateGet(this, _authService).userId);
412
+ const wallet = res.data.wallets.find((w) => w.id === walletId);
413
+ if (wallet && wallet.address) {
414
+ return { finished: true };
415
+ }
416
+ return { finished: false };
417
+ } catch (e) {
418
+ return { finished: false };
419
+ }
420
+ });
421
+ this.waitForPregenWalletAddress = ({ walletId }) => () => __async(this, null, function* () {
422
+ try {
423
+ const res = yield __privateGet(this, _pregenWalletService).getPregenWallets();
424
+ const wallet = res.find((w) => w.id === walletId);
425
+ if (wallet && wallet.address) {
426
+ return { finished: true };
427
+ }
428
+ return { finished: false };
429
+ } catch (e) {
430
+ return { finished: false };
431
+ }
432
+ });
433
+ __privateSet(this, _paraCoreInterface, paraCore.getPollingServiceInterface());
434
+ }
435
+ }
436
+ _authService = new WeakMap();
437
+ _pregenWalletService = new WeakMap();
438
+ _walletService = new WeakMap();
439
+ _portalUrlService = new WeakMap();
440
+ _sessionManagementService = new WeakMap();
441
+ _paraCoreInterface = new WeakMap();
442
+ _activePollingOperations = new WeakMap();
443
+ _pollingCancelFlags = new WeakMap();
444
+ _openOAuthPopup = new WeakMap();
445
+ // Annotate the CommonJS export names for ESM import in node:
446
+ 0 && (module.exports = {
447
+ PollingService
448
+ });