@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,383 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var __async = (__this, __arguments, generator) => {
19
+ return new Promise((resolve, reject) => {
20
+ var fulfilled = (value) => {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ };
27
+ var rejected = (value) => {
28
+ try {
29
+ step(generator.throw(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
+ step((generator = generator.apply(__this, __arguments)).next());
36
+ });
37
+ };
38
+ var coreStateMachine_exports = {};
39
+ __export(coreStateMachine_exports, {
40
+ createCoreStateMachine: () => createCoreStateMachine
41
+ });
42
+ module.exports = __toCommonJS(coreStateMachine_exports);
43
+ var import_xstate = require("xstate");
44
+ var import_authStateMachine = require("./authStateMachine.js");
45
+ var import_walletStateMachine = require("./walletStateMachine.js");
46
+ var import_setupPara = require("../actors/setupPara.js");
47
+ var import_waitForExternalWalletProviders = require("../actors/waitForExternalWalletProviders.js");
48
+ var import_events = require("../../utils/events.js");
49
+ var import__ = require("../../index.js");
50
+ function createCoreStateMachine(paraCoreInterface) {
51
+ return (0, import_xstate.setup)({
52
+ types: {
53
+ context: {}
54
+ },
55
+ actors: {
56
+ setupPara: (0, import_setupPara.createSetupParaActor)(paraCoreInterface),
57
+ waitForExternalWalletProviders: (0, import_waitForExternalWalletProviders.createWaitForExternalWalletProvidersActor)(paraCoreInterface),
58
+ authMachine: (0, import_authStateMachine.createAuthStateMachine)(paraCoreInterface),
59
+ walletMachine: (0, import_walletStateMachine.createWalletStateMachine)(paraCoreInterface),
60
+ logoutPara: (0, import_xstate.fromPromise)(() => __async(this, null, function* () {
61
+ yield paraCoreInterface.logout();
62
+ }))
63
+ },
64
+ actions: {
65
+ spawnAuthMachine: (0, import_xstate.assign)({
66
+ authMachineRef: ({ spawn, self }) => {
67
+ paraCoreInterface.devLog("[core] Spawning auth machine");
68
+ return spawn("authMachine", { input: { coreRef: self } });
69
+ }
70
+ }),
71
+ spawnWalletMachine: (0, import_xstate.assign)(({ context, spawn }) => {
72
+ var _a, _b, _c, _d;
73
+ const authMachineSnapshot = context.authMachineRef.getSnapshot();
74
+ const authData = authMachineSnapshot.context;
75
+ const previousWalletSnapshot = (_b = (_a = context.walletMachineRef) == null ? void 0 : _a.getSnapshot) == null ? void 0 : _b.call(_a);
76
+ const previousWalletsResult = (_d = (_c = previousWalletSnapshot == null ? void 0 : previousWalletSnapshot.context) == null ? void 0 : _c.newWalletsResult) != null ? _d : null;
77
+ paraCoreInterface.devLog("[core] Spawning wallet machine");
78
+ return {
79
+ walletMachineRef: spawn("walletMachine", {
80
+ input: {
81
+ shouldAutoCreateWallets: (authData == null ? void 0 : authData.shouldAutoCreateWallets) || false,
82
+ authStateResult: authData == null ? void 0 : authData.authStateResult,
83
+ isNewUser: authData == null ? void 0 : authData.isNewUser,
84
+ isGuestMode: authMachineSnapshot.value === "guest_mode",
85
+ skipSessionRefreshOnSetup: (authData == null ? void 0 : authData.skipSessionRefreshOnSetup) || false,
86
+ previousWalletsResult
87
+ }
88
+ })
89
+ };
90
+ }),
91
+ clearWalletMachine: (0, import_xstate.assign)({
92
+ walletMachineRef: null
93
+ }),
94
+ clearState: (0, import_xstate.assign)({
95
+ authMachineRef: null,
96
+ walletMachineRef: null,
97
+ error: null,
98
+ setupRetryCount: 0,
99
+ lastErrorSource: null
100
+ }),
101
+ clearErrors: (0, import_xstate.assign)({
102
+ error: null
103
+ }),
104
+ setError: (0, import_xstate.assign)({
105
+ error: ({ event }) => event.error || new Error("An error occurred")
106
+ }),
107
+ setIsReady: (0, import_xstate.assign)({
108
+ isReady: true
109
+ }),
110
+ dispatchAuthenticatedEvent: ({ context }) => {
111
+ if (!context.authMachineRef.getSnapshot().context.isNewUser) {
112
+ (0, import_events.dispatchEvent)(import__.ParaEvent.LOGIN_EVENT, true);
113
+ return;
114
+ }
115
+ (0, import_events.dispatchEvent)(import__.ParaEvent.ACCOUNT_SETUP_EVENT, true);
116
+ }
117
+ }
118
+ }).createMachine({
119
+ id: "para",
120
+ initial: "setting_up",
121
+ context: {
122
+ authMachineRef: null,
123
+ walletMachineRef: null,
124
+ error: null,
125
+ isReady: false,
126
+ setupRetryCount: 0,
127
+ lastErrorSource: null
128
+ },
129
+ states: {
130
+ setting_up: {
131
+ invoke: {
132
+ src: "setupPara",
133
+ onDone: [
134
+ {
135
+ target: "waiting_for_external_wallet_providers",
136
+ guard: () => Object.keys(paraCoreInterface.externalWalletService.externalWallets).length > 0
137
+ },
138
+ {
139
+ target: "auth_flow",
140
+ actions: ["spawnAuthMachine", "setIsReady"]
141
+ }
142
+ ],
143
+ onError: { target: "error" }
144
+ }
145
+ },
146
+ waiting_for_external_wallet_providers: {
147
+ invoke: {
148
+ src: "waitForExternalWalletProviders",
149
+ onDone: [
150
+ {
151
+ target: "error",
152
+ guard: ({ event, context }) => event.output === false && context.setupRetryCount >= 2,
153
+ actions: (0, import_xstate.assign)({
154
+ error: () => new Error("External wallet providers failed to load after multiple attempts")
155
+ })
156
+ },
157
+ {
158
+ target: "setting_up",
159
+ guard: ({ event }) => event.output === false,
160
+ actions: (0, import_xstate.assign)({
161
+ authMachineRef: null,
162
+ walletMachineRef: null,
163
+ isReady: false,
164
+ error: null,
165
+ setupRetryCount: ({ context }) => context.setupRetryCount + 1
166
+ })
167
+ },
168
+ {
169
+ target: "auth_flow",
170
+ guard: ({ event }) => event.output === true,
171
+ actions: ["spawnAuthMachine", "setIsReady"]
172
+ }
173
+ ],
174
+ onError: { target: "error" }
175
+ }
176
+ },
177
+ auth_flow: {
178
+ on: {
179
+ // Forward events to auth machine
180
+ "AUTHENTICATE_EMAIL_PHONE": {
181
+ actions: ({ context, event }) => context.authMachineRef.send(event)
182
+ },
183
+ "AUTHENTICATE_OAUTH": {
184
+ actions: ({ context, event }) => context.authMachineRef.send(event)
185
+ },
186
+ "AUTHENTICATE_EXTERNAL_WALLET": {
187
+ actions: ({ context, event }) => context.authMachineRef.send(event)
188
+ },
189
+ "CONNECT_EXTERNAL_WALLET": {
190
+ actions: ({ context, event }) => context.authMachineRef.send(event)
191
+ },
192
+ "AUTHENTICATE_TELEGRAM": {
193
+ actions: ({ context, event }) => context.authMachineRef.send(event)
194
+ },
195
+ "AUTHENTICATE_TELEGRAM_LEGACY": {
196
+ actions: ({ context, event }) => context.authMachineRef.send(event)
197
+ },
198
+ "AUTHENTICATE_FARCASTER": {
199
+ actions: ({ context, event }) => context.authMachineRef.send(event)
200
+ },
201
+ "AUTHENTICATE_FARCASTER_LEGACY": {
202
+ actions: ({ context, event }) => context.authMachineRef.send(event)
203
+ },
204
+ "VERIFY_NEW_ACCOUNT": {
205
+ actions: ({ context, event }) => context.authMachineRef.send(event)
206
+ },
207
+ "VERIFY_EXTERNAL_WALLET": {
208
+ actions: ({ context, event }) => context.authMachineRef.send(event)
209
+ },
210
+ "SIGN_EXTERNAL_WALLET_VERIFICATION": {
211
+ actions: ({ context, event }) => context.authMachineRef.send(event)
212
+ },
213
+ "WAIT_FOR_SESSION": {
214
+ actions: ({ context, event }) => context.authMachineRef.send(event)
215
+ },
216
+ // During auth_flow, WAIT_FOR_WALLET_CREATION is forwarded to the auth machine
217
+ // where it signals wallet readiness on the auth side. During wallet_flow (below),
218
+ // the same event is forwarded to the wallet machine to trigger actual wallet creation.
219
+ "WAIT_FOR_WALLET_CREATION": {
220
+ actions: ({ context, event }) => context.authMachineRef.send(event)
221
+ },
222
+ "INITIALIZE_GUEST_MODE": {
223
+ actions: ({ context, event }) => context.authMachineRef.send(event)
224
+ },
225
+ "SESSION_IMPORTED": {
226
+ actions: ({ context, event }) => context.authMachineRef.send(event)
227
+ },
228
+ "CANCEL": {
229
+ actions: ({ context, event }) => context.authMachineRef.send(event)
230
+ },
231
+ // Pass logout event through to reset auth flow
232
+ "LOGOUT": {
233
+ target: "logging_out"
234
+ },
235
+ // Listen for auth machine authenticated
236
+ "AUTHENTICATED": [
237
+ {
238
+ guard: ({ context }) => context.walletMachineRef === null,
239
+ target: "wallet_flow",
240
+ actions: "spawnWalletMachine"
241
+ }
242
+ ],
243
+ // Listen for auth machine in guest mode
244
+ "GUEST_MODE": [
245
+ {
246
+ guard: ({ context }) => context.walletMachineRef === null,
247
+ target: "wallet_flow",
248
+ actions: "spawnWalletMachine"
249
+ }
250
+ ],
251
+ // Handle auth machine errors
252
+ "xstate.error.actor.*": {
253
+ guard: ({ event, context }) => event.actorId === context.authMachineRef.id,
254
+ target: "error",
255
+ actions: "setError"
256
+ }
257
+ }
258
+ },
259
+ wallet_flow: {
260
+ on: {
261
+ // Forward wallet events
262
+ "WAIT_FOR_WALLET_CREATION": {
263
+ actions: ({ context, event }) => context.walletMachineRef.send(event)
264
+ },
265
+ "LOGOUT": {
266
+ target: "logging_out"
267
+ },
268
+ // Listen for wallet machine completion
269
+ "xstate.done.actor.*": [
270
+ {
271
+ target: "guest_mode",
272
+ guard: ({ event, context }) => {
273
+ const isWalletMachine = event.actorId === context.walletMachineRef.id;
274
+ const walletSnapshot = context.walletMachineRef.getSnapshot();
275
+ const isGuestMode = walletSnapshot.value === "guest_mode";
276
+ return isWalletMachine && isGuestMode;
277
+ }
278
+ },
279
+ {
280
+ target: "authenticated",
281
+ guard: ({ event, context }) => {
282
+ const isWalletMachine = event.actorId === context.walletMachineRef.id;
283
+ const walletSnapshot = context.walletMachineRef.getSnapshot();
284
+ const isDone = walletSnapshot.value === "wallets_ready" || walletSnapshot.value === "no_wallets_needed";
285
+ return isWalletMachine && isDone;
286
+ }
287
+ },
288
+ {
289
+ target: "error",
290
+ guard: ({ event, context }) => {
291
+ const isWalletMachine = event.actorId === context.walletMachineRef.id;
292
+ if (!isWalletMachine) return false;
293
+ const walletSnapshot = context.walletMachineRef.getSnapshot();
294
+ const hasError = walletSnapshot.value === "error";
295
+ return hasError;
296
+ },
297
+ actions: (0, import_xstate.assign)({
298
+ error: ({ context }) => {
299
+ var _a;
300
+ const walletSnapshot = context.walletMachineRef.getSnapshot();
301
+ return ((_a = walletSnapshot.context) == null ? void 0 : _a.error) || new Error("Wallet setup failed");
302
+ },
303
+ lastErrorSource: () => "wallet"
304
+ })
305
+ }
306
+ ],
307
+ // Handle wallet machine errors
308
+ "xstate.error.actor.*": {
309
+ guard: ({ event, context }) => event.actorId === context.walletMachineRef.id,
310
+ target: "error",
311
+ actions: ["setError", (0, import_xstate.assign)({ lastErrorSource: () => "wallet" })]
312
+ }
313
+ }
314
+ },
315
+ authenticated: {
316
+ entry: ["dispatchAuthenticatedEvent"],
317
+ on: {
318
+ LOGOUT: {
319
+ target: "logging_out"
320
+ },
321
+ SWITCH_EXTERNAL_WALLET: {
322
+ actions: ({ context, event }) => context.authMachineRef.send(event)
323
+ }
324
+ }
325
+ },
326
+ guest_mode: {
327
+ on: {
328
+ LOGOUT: {
329
+ target: "logging_out"
330
+ },
331
+ AUTHENTICATE_EMAIL_PHONE: {
332
+ actions: ["clearWalletMachine", ({ context, event }) => context.authMachineRef.send(event)]
333
+ },
334
+ AUTHENTICATE_OAUTH: {
335
+ actions: ["clearWalletMachine", ({ context, event }) => context.authMachineRef.send(event)]
336
+ },
337
+ WAIT_FOR_SESSION: {
338
+ actions: ({ context, event }) => context.authMachineRef.send(event)
339
+ },
340
+ // Listen for auth machine authenticated
341
+ AUTHENTICATED: [
342
+ {
343
+ guard: ({ context }) => context.walletMachineRef === null,
344
+ target: "wallet_flow",
345
+ actions: "spawnWalletMachine"
346
+ }
347
+ ]
348
+ }
349
+ },
350
+ logging_out: {
351
+ entry: ["clearState"],
352
+ invoke: {
353
+ src: "logoutPara",
354
+ onDone: {
355
+ target: "auth_flow",
356
+ actions: ["spawnAuthMachine", "setIsReady"]
357
+ },
358
+ onError: {
359
+ // Still proceed even if logout fails
360
+ target: "auth_flow",
361
+ actions: ["spawnAuthMachine", "setIsReady"]
362
+ }
363
+ }
364
+ },
365
+ error: {
366
+ on: {
367
+ LOGOUT: {
368
+ target: "logging_out"
369
+ },
370
+ RETRY_WALLET_FLOW: {
371
+ target: "wallet_flow",
372
+ guard: ({ context }) => context.lastErrorSource === "wallet",
373
+ actions: ["clearErrors", "spawnWalletMachine"]
374
+ }
375
+ }
376
+ }
377
+ }
378
+ });
379
+ }
380
+ // Annotate the CommonJS export names for ESM import in node:
381
+ 0 && (module.exports = {
382
+ createCoreStateMachine
383
+ });