@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.
- package/dist/cjs/ParaCore.js +809 -2003
- package/dist/cjs/constants.js +4 -1
- package/dist/cjs/services/AuthService.js +787 -0
- package/dist/cjs/services/BaseAuthFlowService.js +78 -0
- package/dist/cjs/services/ExternalWalletService.js +386 -0
- package/dist/cjs/services/LoginFlowService.js +163 -0
- package/dist/cjs/services/PollingService.js +448 -0
- package/dist/cjs/services/PortalUrlService.js +379 -0
- package/dist/cjs/services/PregenWalletService.js +442 -0
- package/dist/cjs/services/SessionManagementService.js +280 -0
- package/dist/cjs/services/SignupFlowService.js +185 -0
- package/dist/cjs/services/VerificationFlowService.js +242 -0
- package/dist/cjs/services/WalletService.js +577 -0
- package/dist/cjs/services/types/AuthServiceTypes.js +15 -0
- package/dist/cjs/services/types/BaseAuthFlowServiceTypes.js +15 -0
- package/dist/cjs/services/types/ExternalWalletServiceTypes.js +15 -0
- package/dist/cjs/services/types/LoginFlowServiceTypes.js +15 -0
- package/dist/cjs/services/types/PollingServiceTypes.js +15 -0
- package/dist/cjs/services/types/PortalUrlServiceTypes.js +15 -0
- package/dist/cjs/services/types/PregenWalletServiceTypes.js +15 -0
- package/dist/cjs/services/types/SessionManagementServiceTypes.js +15 -0
- package/dist/cjs/services/types/SignupFlowServiceTypes.js +15 -0
- package/dist/cjs/services/types/VerificationFlowServiceTypes.js +15 -0
- package/dist/cjs/services/types/WalletServiceTypes.js +15 -0
- package/dist/cjs/services/types/index.js +15 -0
- package/dist/cjs/state/CoreStateManager.js +297 -0
- package/dist/cjs/state/actors/authenticateWithEmailOrPhone.js +50 -0
- package/dist/cjs/state/actors/authenticateWithExternalWallet.js +50 -0
- package/dist/cjs/state/actors/authenticateWithFarcaster.js +50 -0
- package/dist/cjs/state/actors/authenticateWithFarcasterLegacy.js +50 -0
- package/dist/cjs/state/actors/authenticateWithTelegram.js +50 -0
- package/dist/cjs/state/actors/authenticateWithTelegramLegacy.js +50 -0
- package/dist/cjs/state/actors/checkUserState.js +53 -0
- package/dist/cjs/state/actors/claimWallets.js +56 -0
- package/dist/cjs/state/actors/connectExternalConnectors.js +54 -0
- package/dist/cjs/state/actors/connectExternalWallet.js +50 -0
- package/dist/cjs/state/actors/createGuestWallets.js +50 -0
- package/dist/cjs/state/actors/createWallets.js +73 -0
- package/dist/cjs/state/actors/polling.js +91 -0
- package/dist/cjs/state/actors/processAuthentication.js +50 -0
- package/dist/cjs/state/actors/setupAfterLogin.js +52 -0
- package/dist/cjs/state/actors/setupPara.js +50 -0
- package/dist/cjs/state/actors/signExternalWalletVerification.js +79 -0
- package/dist/cjs/state/actors/switchExternalWallet.js +50 -0
- package/dist/cjs/state/actors/verifyExternalWallet.js +50 -0
- package/dist/cjs/state/actors/verifyNewAccount.js +50 -0
- package/dist/cjs/state/actors/waitForExternalWalletProviders.js +54 -0
- package/dist/cjs/state/machines/authStateMachine.helpers.js +137 -0
- package/dist/cjs/state/machines/authStateMachine.js +1084 -0
- package/dist/cjs/state/machines/coreStateMachine.js +383 -0
- package/dist/cjs/state/machines/walletStateMachine.js +437 -0
- package/dist/cjs/state/types/auth.js +15 -0
- package/dist/cjs/state/types/core.js +15 -0
- package/dist/cjs/state/types/wallet.js +15 -0
- package/dist/cjs/types/{auth.js → accountLinking.js} +3 -3
- package/dist/cjs/types/authState.js +15 -0
- package/dist/cjs/types/coreApi.js +3 -1
- package/dist/cjs/types/index.js +2 -2
- package/dist/cjs/types/serviceInterfaces.js +15 -0
- package/dist/cjs/types/util.js +15 -0
- package/dist/cjs/utils/formatting.js +6 -0
- package/dist/cjs/utils/retryBackoff.js +30 -0
- package/dist/cjs/utils/stateErrorHelpers.js +60 -0
- package/dist/cjs/utils/stateListener.js +129 -0
- package/dist/esm/ParaCore.js +812 -2031
- package/dist/esm/constants.js +3 -1
- package/dist/esm/services/AuthService.js +717 -0
- package/dist/esm/services/BaseAuthFlowService.js +25 -0
- package/dist/esm/services/ExternalWalletService.js +327 -0
- package/dist/esm/services/LoginFlowService.js +97 -0
- package/dist/esm/services/PollingService.js +389 -0
- package/dist/esm/services/PortalUrlService.js +320 -0
- package/dist/esm/services/PregenWalletService.js +393 -0
- package/dist/esm/services/SessionManagementService.js +236 -0
- package/dist/esm/services/SignupFlowService.js +119 -0
- package/dist/esm/services/VerificationFlowService.js +178 -0
- package/dist/esm/services/WalletService.js +514 -0
- package/dist/esm/services/types/AuthServiceTypes.js +0 -0
- package/dist/esm/services/types/BaseAuthFlowServiceTypes.js +0 -0
- package/dist/esm/services/types/ExternalWalletServiceTypes.js +0 -0
- package/dist/esm/services/types/LoginFlowServiceTypes.js +0 -0
- package/dist/esm/services/types/PollingServiceTypes.js +0 -0
- package/dist/esm/services/types/PortalUrlServiceTypes.js +0 -0
- package/dist/esm/services/types/PregenWalletServiceTypes.js +0 -0
- package/dist/esm/services/types/SessionManagementServiceTypes.js +0 -0
- package/dist/esm/services/types/SignupFlowServiceTypes.js +0 -0
- package/dist/esm/services/types/VerificationFlowServiceTypes.js +0 -0
- package/dist/esm/services/types/WalletServiceTypes.js +0 -0
- package/dist/esm/services/types/index.js +0 -0
- package/dist/esm/state/CoreStateManager.js +261 -0
- package/dist/esm/state/actors/authenticateWithEmailOrPhone.js +10 -0
- package/dist/esm/state/actors/authenticateWithExternalWallet.js +10 -0
- package/dist/esm/state/actors/authenticateWithFarcaster.js +10 -0
- package/dist/esm/state/actors/authenticateWithFarcasterLegacy.js +10 -0
- package/dist/esm/state/actors/authenticateWithTelegram.js +10 -0
- package/dist/esm/state/actors/authenticateWithTelegramLegacy.js +10 -0
- package/dist/esm/state/actors/checkUserState.js +13 -0
- package/dist/esm/state/actors/claimWallets.js +16 -0
- package/dist/esm/state/actors/connectExternalConnectors.js +14 -0
- package/dist/esm/state/actors/connectExternalWallet.js +10 -0
- package/dist/esm/state/actors/createGuestWallets.js +10 -0
- package/dist/esm/state/actors/createWallets.js +20 -0
- package/dist/esm/state/actors/polling.js +55 -0
- package/dist/esm/state/actors/processAuthentication.js +10 -0
- package/dist/esm/state/actors/setupAfterLogin.js +12 -0
- package/dist/esm/state/actors/setupPara.js +10 -0
- package/dist/esm/state/actors/signExternalWalletVerification.js +15 -0
- package/dist/esm/state/actors/switchExternalWallet.js +10 -0
- package/dist/esm/state/actors/verifyExternalWallet.js +10 -0
- package/dist/esm/state/actors/verifyNewAccount.js +10 -0
- package/dist/esm/state/actors/waitForExternalWalletProviders.js +14 -0
- package/dist/esm/state/machines/authStateMachine.helpers.js +92 -0
- package/dist/esm/state/machines/authStateMachine.js +1039 -0
- package/dist/esm/state/machines/coreStateMachine.js +343 -0
- package/dist/esm/state/machines/walletStateMachine.js +382 -0
- package/dist/esm/state/types/auth.js +0 -0
- package/dist/esm/state/types/core.js +0 -0
- package/dist/esm/state/types/wallet.js +0 -0
- package/dist/esm/types/authState.js +0 -0
- package/dist/esm/types/coreApi.js +3 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/types/serviceInterfaces.js +0 -0
- package/dist/esm/types/util.js +0 -0
- package/dist/esm/utils/formatting.js +6 -0
- package/dist/esm/utils/retryBackoff.js +7 -0
- package/dist/esm/utils/stateErrorHelpers.js +37 -0
- package/dist/esm/utils/stateListener.js +106 -0
- package/dist/types/ParaCore.d.ts +190 -119
- package/dist/types/PlatformUtils.d.ts +23 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/services/AuthService.d.ts +72 -0
- package/dist/types/services/BaseAuthFlowService.d.ts +28 -0
- package/dist/types/services/ExternalWalletService.d.ts +44 -0
- package/dist/types/services/LoginFlowService.d.ts +9 -0
- package/dist/types/services/PollingService.d.ts +35 -0
- package/dist/types/services/PortalUrlService.d.ts +26 -0
- package/dist/types/services/PregenWalletService.d.ts +38 -0
- package/dist/types/services/SessionManagementService.d.ts +28 -0
- package/dist/types/services/SignupFlowService.d.ts +10 -0
- package/dist/types/services/VerificationFlowService.d.ts +17 -0
- package/dist/types/services/WalletService.d.ts +54 -0
- package/dist/types/services/types/AuthServiceTypes.d.ts +147 -0
- package/dist/types/services/types/BaseAuthFlowServiceTypes.d.ts +4 -0
- package/dist/types/services/types/ExternalWalletServiceTypes.d.ts +67 -0
- package/dist/types/services/types/LoginFlowServiceTypes.d.ts +19 -0
- package/dist/types/services/types/PollingServiceTypes.d.ts +82 -0
- package/dist/types/services/types/PortalUrlServiceTypes.d.ts +46 -0
- package/dist/types/services/types/PregenWalletServiceTypes.d.ts +73 -0
- package/dist/types/services/types/SessionManagementServiceTypes.d.ts +27 -0
- package/dist/types/services/types/SignupFlowServiceTypes.d.ts +18 -0
- package/dist/types/services/types/VerificationFlowServiceTypes.d.ts +90 -0
- package/dist/types/services/types/WalletServiceTypes.d.ts +109 -0
- package/dist/types/services/types/index.d.ts +11 -0
- package/dist/types/state/CoreStateManager.d.ts +36 -0
- package/dist/types/state/actors/authenticateWithEmailOrPhone.d.ts +8 -0
- package/dist/types/state/actors/authenticateWithExternalWallet.d.ts +8 -0
- package/dist/types/state/actors/authenticateWithFarcaster.d.ts +3 -0
- package/dist/types/state/actors/authenticateWithFarcasterLegacy.d.ts +3 -0
- package/dist/types/state/actors/authenticateWithTelegram.d.ts +3 -0
- package/dist/types/state/actors/authenticateWithTelegramLegacy.d.ts +8 -0
- package/dist/types/state/actors/checkUserState.d.ts +6 -0
- package/dist/types/state/actors/claimWallets.d.ts +8 -0
- package/dist/types/state/actors/connectExternalConnectors.d.ts +4 -0
- package/dist/types/state/actors/connectExternalWallet.d.ts +3 -0
- package/dist/types/state/actors/createGuestWallets.d.ts +3 -0
- package/dist/types/state/actors/createWallets.d.ts +10 -0
- package/dist/types/state/actors/polling.d.ts +3 -0
- package/dist/types/state/actors/processAuthentication.d.ts +10 -0
- package/dist/types/state/actors/setupAfterLogin.d.ts +5 -0
- package/dist/types/state/actors/setupPara.d.ts +2 -0
- package/dist/types/state/actors/signExternalWalletVerification.d.ts +7 -0
- package/dist/types/state/actors/switchExternalWallet.d.ts +3 -0
- package/dist/types/state/actors/verifyExternalWallet.d.ts +8 -0
- package/dist/types/state/actors/verifyNewAccount.d.ts +8 -0
- package/dist/types/state/actors/waitForExternalWalletProviders.d.ts +2 -0
- package/dist/types/state/machines/authStateMachine.d.ts +2570 -0
- package/dist/types/state/machines/authStateMachine.helpers.d.ts +57 -0
- package/dist/types/state/machines/coreStateMachine.d.ts +22033 -0
- package/dist/types/state/machines/walletStateMachine.d.ts +1049 -0
- package/dist/types/state/types/auth.d.ts +113 -0
- package/dist/types/state/types/core.d.ts +114 -0
- package/dist/types/state/types/wallet.d.ts +76 -0
- package/dist/types/types/authState.d.ts +66 -0
- package/dist/types/types/config.d.ts +5 -0
- package/dist/types/types/coreApi.d.ts +148 -298
- package/dist/types/types/index.d.ts +3 -1
- package/dist/types/types/methods.d.ts +1 -191
- package/dist/types/types/serviceInterfaces.d.ts +125 -0
- package/dist/types/types/util.d.ts +43 -0
- package/dist/types/types/wallet.d.ts +3 -1
- package/dist/types/utils/retryBackoff.d.ts +2 -0
- package/dist/types/utils/stateErrorHelpers.d.ts +2 -0
- package/dist/types/utils/stateListener.d.ts +47 -0
- package/package.json +5 -4
- /package/dist/esm/types/{auth.js → accountLinking.js} +0 -0
- /package/dist/types/types/{auth.d.ts → accountLinking.d.ts} +0 -0
|
@@ -0,0 +1,787 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __typeError = (msg) => {
|
|
12
|
+
throw TypeError(msg);
|
|
13
|
+
};
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __spreadValues = (a, b) => {
|
|
16
|
+
for (var prop in b || (b = {}))
|
|
17
|
+
if (__hasOwnProp.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
if (__getOwnPropSymbols)
|
|
20
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
+
if (__propIsEnum.call(b, prop))
|
|
22
|
+
__defNormalProp(a, prop, b[prop]);
|
|
23
|
+
}
|
|
24
|
+
return a;
|
|
25
|
+
};
|
|
26
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
27
|
+
var __objRest = (source, exclude) => {
|
|
28
|
+
var target = {};
|
|
29
|
+
for (var prop in source)
|
|
30
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
31
|
+
target[prop] = source[prop];
|
|
32
|
+
if (source != null && __getOwnPropSymbols)
|
|
33
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
34
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
35
|
+
target[prop] = source[prop];
|
|
36
|
+
}
|
|
37
|
+
return target;
|
|
38
|
+
};
|
|
39
|
+
var __export = (target, all) => {
|
|
40
|
+
for (var name in all)
|
|
41
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
42
|
+
};
|
|
43
|
+
var __copyProps = (to, from, except, desc) => {
|
|
44
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
45
|
+
for (let key of __getOwnPropNames(from))
|
|
46
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
47
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
48
|
+
}
|
|
49
|
+
return to;
|
|
50
|
+
};
|
|
51
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
52
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
53
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
54
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
55
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
56
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
57
|
+
mod
|
|
58
|
+
));
|
|
59
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
60
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
61
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
62
|
+
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);
|
|
63
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
64
|
+
var __async = (__this, __arguments, generator) => {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
var fulfilled = (value) => {
|
|
67
|
+
try {
|
|
68
|
+
step(generator.next(value));
|
|
69
|
+
} catch (e) {
|
|
70
|
+
reject(e);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var rejected = (value) => {
|
|
74
|
+
try {
|
|
75
|
+
step(generator.throw(value));
|
|
76
|
+
} catch (e) {
|
|
77
|
+
reject(e);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
81
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
var AuthService_exports = {};
|
|
85
|
+
__export(AuthService_exports, {
|
|
86
|
+
AuthService: () => AuthService
|
|
87
|
+
});
|
|
88
|
+
module.exports = __toCommonJS(AuthService_exports);
|
|
89
|
+
var import_user_management_client = require("@getpara/user-management-client");
|
|
90
|
+
var constants = __toESM(require("../constants.js"));
|
|
91
|
+
var import_LoginFlowService = require("./LoginFlowService.js");
|
|
92
|
+
var import_VerificationFlowService = require("./VerificationFlowService.js");
|
|
93
|
+
var import_SignupFlowService = require("./SignupFlowService.js");
|
|
94
|
+
var import_stateListener = require("../utils/stateListener.js");
|
|
95
|
+
var _stateManager, _loginFlowService, _signupFlowService, _verificationFlowService, _externalWalletService, _pregenWalletService, _sessionManagementService, _portalUrlService, _paraCoreInterface, _authInfo, _isEnclaveUser;
|
|
96
|
+
class AuthService {
|
|
97
|
+
constructor(paraCore) {
|
|
98
|
+
__privateAdd(this, _stateManager);
|
|
99
|
+
__privateAdd(this, _loginFlowService);
|
|
100
|
+
__privateAdd(this, _signupFlowService);
|
|
101
|
+
__privateAdd(this, _verificationFlowService);
|
|
102
|
+
__privateAdd(this, _externalWalletService);
|
|
103
|
+
__privateAdd(this, _pregenWalletService);
|
|
104
|
+
__privateAdd(this, _sessionManagementService);
|
|
105
|
+
__privateAdd(this, _portalUrlService);
|
|
106
|
+
__privateAdd(this, _paraCoreInterface);
|
|
107
|
+
__privateAdd(this, _authInfo);
|
|
108
|
+
__privateAdd(this, _isEnclaveUser, false);
|
|
109
|
+
this.init = ({
|
|
110
|
+
stateManager,
|
|
111
|
+
portalUrlService,
|
|
112
|
+
externalWalletService,
|
|
113
|
+
sessionManagementService,
|
|
114
|
+
pregenWalletService,
|
|
115
|
+
walletService
|
|
116
|
+
}) => {
|
|
117
|
+
__privateSet(this, _stateManager, stateManager);
|
|
118
|
+
__privateSet(this, _externalWalletService, externalWalletService);
|
|
119
|
+
__privateSet(this, _portalUrlService, portalUrlService);
|
|
120
|
+
__privateSet(this, _sessionManagementService, sessionManagementService);
|
|
121
|
+
__privateSet(this, _pregenWalletService, pregenWalletService);
|
|
122
|
+
__privateSet(this, _loginFlowService, new import_LoginFlowService.LoginFlowService(__privateGet(this, _paraCoreInterface), stateManager, {
|
|
123
|
+
portalUrlService,
|
|
124
|
+
walletService,
|
|
125
|
+
sessionManagementService,
|
|
126
|
+
externalWalletService,
|
|
127
|
+
authService: this
|
|
128
|
+
}));
|
|
129
|
+
__privateSet(this, _signupFlowService, new import_SignupFlowService.SignupFlowService(__privateGet(this, _paraCoreInterface), stateManager, {
|
|
130
|
+
portalUrlService,
|
|
131
|
+
walletService,
|
|
132
|
+
sessionManagementService,
|
|
133
|
+
externalWalletService,
|
|
134
|
+
authService: this
|
|
135
|
+
}));
|
|
136
|
+
__privateSet(this, _verificationFlowService, new import_VerificationFlowService.VerificationFlowService(__privateGet(this, _paraCoreInterface), stateManager, {
|
|
137
|
+
portalUrlService,
|
|
138
|
+
walletService,
|
|
139
|
+
sessionManagementService,
|
|
140
|
+
externalWalletService,
|
|
141
|
+
authService: this
|
|
142
|
+
}));
|
|
143
|
+
};
|
|
144
|
+
this.prepareLogin = () => __async(this, null, function* () {
|
|
145
|
+
yield __privateGet(this, _paraCoreInterface).logout({ skipStateReset: true });
|
|
146
|
+
const { sessionLookupId } = yield __privateGet(this, _sessionManagementService).touchSession(true);
|
|
147
|
+
if (!__privateGet(this, _paraCoreInterface).loginEncryptionKeyPair) {
|
|
148
|
+
yield __privateGet(this, _paraCoreInterface).setLoginEncryptionKeyPair();
|
|
149
|
+
}
|
|
150
|
+
return sessionLookupId;
|
|
151
|
+
});
|
|
152
|
+
this.setAuth = (_0, ..._1) => __async(this, [_0, ..._1], function* (auth, { extras = {}, userId } = {}) {
|
|
153
|
+
const authInfo = __spreadValues(__spreadValues({}, (0, import_user_management_client.extractAuthInfo)(auth, { isRequired: true })), extras || {});
|
|
154
|
+
yield this.setAuthInfo(authInfo);
|
|
155
|
+
if (!!userId) {
|
|
156
|
+
yield this.setUserId(userId);
|
|
157
|
+
}
|
|
158
|
+
return this.authInfo;
|
|
159
|
+
});
|
|
160
|
+
this.setAuthInfo = (authInfo) => __async(this, null, function* () {
|
|
161
|
+
this.authInfo = authInfo;
|
|
162
|
+
yield __privateGet(this, _paraCoreInterface).localStorageSetItem(constants.LOCAL_STORAGE_AUTH_INFO, JSON.stringify(authInfo));
|
|
163
|
+
yield __privateGet(this, _paraCoreInterface).localStorageRemoveItem(constants.LOCAL_STORAGE_EMAIL);
|
|
164
|
+
yield __privateGet(this, _paraCoreInterface).localStorageRemoveItem(constants.LOCAL_STORAGE_PHONE);
|
|
165
|
+
yield __privateGet(this, _paraCoreInterface).localStorageRemoveItem(constants.LOCAL_STORAGE_COUNTRY_CODE);
|
|
166
|
+
yield __privateGet(this, _paraCoreInterface).localStorageRemoveItem(constants.LOCAL_STORAGE_FARCASTER_USERNAME);
|
|
167
|
+
yield __privateGet(this, _paraCoreInterface).localStorageRemoveItem(constants.LOCAL_STORAGE_TELEGRAM_USER_ID);
|
|
168
|
+
});
|
|
169
|
+
this.setUserId = (userId) => __async(this, null, function* () {
|
|
170
|
+
this.userId = userId;
|
|
171
|
+
yield __privateGet(this, _paraCoreInterface).localStorageSetItem(constants.LOCAL_STORAGE_USER_ID, userId);
|
|
172
|
+
});
|
|
173
|
+
this.assertIsAuthSet = (allowed) => {
|
|
174
|
+
if (!this.authInfo) {
|
|
175
|
+
throw new Error("auth is not set");
|
|
176
|
+
}
|
|
177
|
+
if (allowed && !allowed.includes(this.authInfo.authType)) {
|
|
178
|
+
throw new Error(`invalid auth type, expected ${allowed.join(", ")}`);
|
|
179
|
+
}
|
|
180
|
+
return this.authInfo;
|
|
181
|
+
};
|
|
182
|
+
this.assertUserId = ({ allowGuestMode = false } = {}) => {
|
|
183
|
+
if (!this.userId || !allowGuestMode && __privateGet(this, _pregenWalletService).isGuestMode) {
|
|
184
|
+
throw new Error("no userId is set");
|
|
185
|
+
}
|
|
186
|
+
return this.userId;
|
|
187
|
+
};
|
|
188
|
+
this.prepareAuthState = (_0, ..._1) => __async(this, [_0, ..._1], function* (serverAuthState, opts = {}) {
|
|
189
|
+
var _a, _b, _c;
|
|
190
|
+
if (!opts.sessionLookupId && serverAuthState.stage === "login" && (!serverAuthState.externalWallet || !(((_a = serverAuthState.externalWallet) == null ? void 0 : _a.withFullParaAuth) && ((_b = serverAuthState.loginAuthMethods) == null ? void 0 : _b.includes(import_user_management_client.AuthMethod.PIN))))) {
|
|
191
|
+
opts.sessionLookupId = yield this.prepareLogin();
|
|
192
|
+
}
|
|
193
|
+
const { auth, externalWallet, userId, displayName, pfpUrl, username } = serverAuthState;
|
|
194
|
+
const authInfo = __spreadValues(__spreadValues({}, (0, import_user_management_client.extractAuthInfo)(auth, { isRequired: true })), Object.fromEntries(
|
|
195
|
+
Object.entries({
|
|
196
|
+
displayName,
|
|
197
|
+
pfpUrl,
|
|
198
|
+
username,
|
|
199
|
+
externalWallet
|
|
200
|
+
}).filter(([_, v]) => !!v)
|
|
201
|
+
));
|
|
202
|
+
yield this.setAuthInfo(authInfo);
|
|
203
|
+
this.assertIsAuthSet();
|
|
204
|
+
if (!!externalWallet) {
|
|
205
|
+
yield __privateGet(this, _externalWalletService).setExternalWallet({ externalWallet: [externalWallet] });
|
|
206
|
+
}
|
|
207
|
+
if (!!userId) {
|
|
208
|
+
yield this.setUserId(userId);
|
|
209
|
+
}
|
|
210
|
+
switch (serverAuthState.stage) {
|
|
211
|
+
case "login":
|
|
212
|
+
if (externalWallet && !(externalWallet == null ? void 0 : externalWallet.withFullParaAuth)) {
|
|
213
|
+
return serverAuthState;
|
|
214
|
+
}
|
|
215
|
+
return yield __privateGet(this, _loginFlowService).prepareState(serverAuthState, opts);
|
|
216
|
+
case "signup":
|
|
217
|
+
if (externalWallet && !(externalWallet == null ? void 0 : externalWallet.withFullParaAuth)) {
|
|
218
|
+
return serverAuthState;
|
|
219
|
+
}
|
|
220
|
+
return yield __privateGet(this, _signupFlowService).prepareState(serverAuthState, opts);
|
|
221
|
+
case "verify":
|
|
222
|
+
return yield __privateGet(this, _verificationFlowService).prepareState(serverAuthState, __spreadProps(__spreadValues({}, opts), {
|
|
223
|
+
sessionLookupId: opts.sessionLookupId
|
|
224
|
+
}));
|
|
225
|
+
case "done":
|
|
226
|
+
if ((_c = serverAuthState.externalWallet) == null ? void 0 : _c.isConnectionOnly) {
|
|
227
|
+
return serverAuthState;
|
|
228
|
+
}
|
|
229
|
+
let isSLOPossible = serverAuthState.authMethods.includes(import_user_management_client.AuthMethod.BASIC_LOGIN);
|
|
230
|
+
this.isEnclaveUser = isSLOPossible;
|
|
231
|
+
yield __privateGet(this, _paraCoreInterface).localStorageSetItem(
|
|
232
|
+
constants.LOCAL_STORAGE_IS_ENCLAVE_USER,
|
|
233
|
+
JSON.stringify(isSLOPossible)
|
|
234
|
+
);
|
|
235
|
+
return serverAuthState;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
this.prepareLoginState = (_0, _1) => __async(this, [_0, _1], function* (loginState, { useShortUrls: shorten = false, portalTheme, sessionLookupId }) {
|
|
239
|
+
return yield __privateGet(this, _loginFlowService).prepareState(loginState, {
|
|
240
|
+
useShortUrls: shorten,
|
|
241
|
+
portalTheme,
|
|
242
|
+
sessionLookupId
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
this.performSignUpOrLogIn = (params) => __async(this, null, function* () {
|
|
246
|
+
const _a = params, { auth } = _a, urlOptions = __objRest(_a, ["auth"]);
|
|
247
|
+
try {
|
|
248
|
+
const serverAuthState = yield __privateGet(this, _paraCoreInterface).ctx.client.signUpOrLogIn(__spreadValues(__spreadValues({}, auth), __privateGet(this, _paraCoreInterface).getVerificationEmailProps()));
|
|
249
|
+
return { authState: serverAuthState, opts: urlOptions };
|
|
250
|
+
} catch (error) {
|
|
251
|
+
if (error.message.includes("max beta users reached")) {
|
|
252
|
+
__privateGet(this, _paraCoreInterface).displayModalError(
|
|
253
|
+
`50 user limit reached. [Go to Production.](https://docs.getpara.com/v2/general/checklist#go-live-checklist)`
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
throw error;
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
this.signUpOrLogIn = (params) => __async(this, null, function* () {
|
|
260
|
+
__privateGet(this, _stateManager).send({ type: "AUTHENTICATE_EMAIL_PHONE", data: __spreadProps(__spreadValues({}, params), { isLegacy: true }) });
|
|
261
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
262
|
+
stateManager: __privateGet(this, _stateManager),
|
|
263
|
+
resolvePhases: [
|
|
264
|
+
{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult },
|
|
265
|
+
{
|
|
266
|
+
phase: "awaiting_account_verification",
|
|
267
|
+
onPhase: (state) => state.authStateResult
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
this.authenticateWithEmailOrPhone = (params) => __async(this, null, function* () {
|
|
273
|
+
__privateGet(this, _stateManager).send({ type: "AUTHENTICATE_EMAIL_PHONE", data: __spreadProps(__spreadValues({}, params), { isLegacy: false }) });
|
|
274
|
+
const authState = yield (0, import_stateListener.waitForAuthStateChange)({
|
|
275
|
+
stateManager: __privateGet(this, _stateManager),
|
|
276
|
+
resolvePhases: [
|
|
277
|
+
// awaiting_session_start will be hit for non-SLO logins & all SLO logins/sign ups
|
|
278
|
+
{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult },
|
|
279
|
+
// awaiting_account_verification will be hit for non-SLO sign ups
|
|
280
|
+
{
|
|
281
|
+
phase: "awaiting_account_verification",
|
|
282
|
+
onPhase: (state) => state.authStateResult
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
rejectPhases: [
|
|
286
|
+
{
|
|
287
|
+
phase: "unauthenticated",
|
|
288
|
+
onPhase: () => new Error("Authentication canceled")
|
|
289
|
+
}
|
|
290
|
+
]
|
|
291
|
+
});
|
|
292
|
+
if (authState.stage === "verify") {
|
|
293
|
+
const isSLO = !!authState.loginUrl;
|
|
294
|
+
if (!isSLO) {
|
|
295
|
+
yield (0, import_stateListener.waitForAuthStateChange)({
|
|
296
|
+
stateManager: __privateGet(this, _stateManager),
|
|
297
|
+
resolvePhases: [{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult }],
|
|
298
|
+
// Only reject if we get to an error phase, account verification can be retried while an error is present and we don't want to cancel the flow in that case
|
|
299
|
+
rejectInErrorPhaseOnly: true,
|
|
300
|
+
rejectPhases: [
|
|
301
|
+
{
|
|
302
|
+
phase: "unauthenticated",
|
|
303
|
+
onPhase: () => new Error("Authentication canceled")
|
|
304
|
+
}
|
|
305
|
+
]
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
__privateGet(this, _stateManager).send({
|
|
310
|
+
type: "WAIT_FOR_SESSION",
|
|
311
|
+
data: __spreadProps(__spreadValues({}, params.sessionPollingCallbacks), { autoCreateWallets: true })
|
|
312
|
+
});
|
|
313
|
+
const resp = yield (0, import_stateListener.waitForAuthStateChange)({
|
|
314
|
+
stateManager: __privateGet(this, _stateManager),
|
|
315
|
+
resolvePhases: [
|
|
316
|
+
{
|
|
317
|
+
phase: "authenticated",
|
|
318
|
+
onPhase: (state) => {
|
|
319
|
+
const createdWallets = state.newWalletsResult;
|
|
320
|
+
if (createdWallets) {
|
|
321
|
+
return {
|
|
322
|
+
hasCreatedWallets: true,
|
|
323
|
+
recoverySecret: state.newWalletsResult.recoverySecret
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
return {
|
|
327
|
+
hasCreatedWallets: false,
|
|
328
|
+
recoverySecret: void 0
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
],
|
|
333
|
+
rejectPhases: [
|
|
334
|
+
{
|
|
335
|
+
phase: "unauthenticated",
|
|
336
|
+
onPhase: () => new Error("Session waiting canceled")
|
|
337
|
+
}
|
|
338
|
+
],
|
|
339
|
+
waitForCoreAuthenticated: true
|
|
340
|
+
});
|
|
341
|
+
return __spreadValues({ authInfo: this.authInfo }, resp);
|
|
342
|
+
});
|
|
343
|
+
this.performVerifyNewAccount = (params) => __async(this, null, function* () {
|
|
344
|
+
return yield __privateGet(this, _verificationFlowService).performVerifyNewAccount(params);
|
|
345
|
+
});
|
|
346
|
+
this.verifyNewAccount = (params) => __async(this, null, function* () {
|
|
347
|
+
return yield __privateGet(this, _verificationFlowService).verifyNewAccount(params);
|
|
348
|
+
});
|
|
349
|
+
this.waitForLogin = (params) => __async(this, null, function* () {
|
|
350
|
+
return yield __privateGet(this, _loginFlowService).waitForLogin(params);
|
|
351
|
+
});
|
|
352
|
+
this.waitForSignup = (params) => __async(this, null, function* () {
|
|
353
|
+
return yield __privateGet(this, _signupFlowService).waitForSignup(params);
|
|
354
|
+
});
|
|
355
|
+
this.waitForWalletCreation = (params) => __async(this, null, function* () {
|
|
356
|
+
return yield __privateGet(this, _signupFlowService).waitForWalletCreation(params);
|
|
357
|
+
});
|
|
358
|
+
this.performVerifyExternalWallet = (params) => __async(this, null, function* () {
|
|
359
|
+
return yield __privateGet(this, _verificationFlowService).performVerifyExternalWallet(params);
|
|
360
|
+
});
|
|
361
|
+
this.verifyExternalWallet = (params) => __async(this, null, function* () {
|
|
362
|
+
return yield __privateGet(this, _verificationFlowService).verifyExternalWallet(params);
|
|
363
|
+
});
|
|
364
|
+
this.retryVerifyExternalWallet = () => __async(this, null, function* () {
|
|
365
|
+
return yield __privateGet(this, _verificationFlowService).retryVerifyExternalWallet();
|
|
366
|
+
});
|
|
367
|
+
this.performLoginExternalWallet = (params) => __async(this, null, function* () {
|
|
368
|
+
const _a = params, { externalWallet, chainId, uri } = _a, urlOptions = __objRest(_a, ["externalWallet", "chainId", "uri"]);
|
|
369
|
+
const externalWallets = Array.isArray(params.externalWallet) ? params.externalWallet : [params.externalWallet];
|
|
370
|
+
try {
|
|
371
|
+
yield __privateGet(this, _paraCoreInterface).ctx.client.trackExternalWalletConnections({
|
|
372
|
+
wallets: externalWallets.map((wallet) => ({
|
|
373
|
+
address: wallet.address,
|
|
374
|
+
type: wallet.type,
|
|
375
|
+
provider: wallet.provider
|
|
376
|
+
}))
|
|
377
|
+
});
|
|
378
|
+
} catch (err) {
|
|
379
|
+
console.error("Error tracking external wallet connections:", err);
|
|
380
|
+
}
|
|
381
|
+
if (__privateGet(this, _paraCoreInterface).externalWalletConnectionOnly || externalWallets.every((wallet) => wallet.isConnectionOnly)) {
|
|
382
|
+
yield __privateGet(this, _externalWalletService).addExternalWallets({
|
|
383
|
+
externalWallets: externalWallets.map((wallet) => __spreadProps(__spreadValues({}, wallet), {
|
|
384
|
+
withFullParaAuth: false
|
|
385
|
+
}))
|
|
386
|
+
});
|
|
387
|
+
const connectionOnlyWallet = __spreadProps(__spreadValues({}, externalWallets[0]), { withFullParaAuth: false, isConnectionOnly: true });
|
|
388
|
+
return Promise.resolve({
|
|
389
|
+
authState: {
|
|
390
|
+
stage: "done",
|
|
391
|
+
userId: constants.EXTERNAL_WALLET_CONNECTION_ONLY_USER_ID,
|
|
392
|
+
externalWallet: connectionOnlyWallet,
|
|
393
|
+
auth: {
|
|
394
|
+
externalWalletAddress: externalWallets[0].address
|
|
395
|
+
},
|
|
396
|
+
authMethods: [],
|
|
397
|
+
// Returning true as a placeholder, since we don't process this through Para we can't determine this here
|
|
398
|
+
isNewUser: true
|
|
399
|
+
},
|
|
400
|
+
opts: urlOptions
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
if (Array.isArray(externalWallet)) {
|
|
404
|
+
throw new Error(
|
|
405
|
+
"Cannot authenticate multiple external wallets at once. To connect multiple wallets at once, use CONNECTION_ONLY mode."
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
__privateGet(this, _paraCoreInterface).requireApiKey();
|
|
409
|
+
const serverAuthState = yield __privateGet(this, _paraCoreInterface).ctx.client.loginExternalWallet({ externalWallet, chainId, uri });
|
|
410
|
+
if (!externalWallet.withFullParaAuth && externalWallet.withVerification) {
|
|
411
|
+
yield __privateGet(this, _sessionManagementService).touchSession(true);
|
|
412
|
+
}
|
|
413
|
+
if (externalWallet.withFullParaAuth) {
|
|
414
|
+
yield __privateGet(this, _paraCoreInterface).ctx.client.sessionAddPortalVerification();
|
|
415
|
+
}
|
|
416
|
+
return { authState: serverAuthState, opts: urlOptions };
|
|
417
|
+
});
|
|
418
|
+
this.loginExternalWallet = (params) => __async(this, null, function* () {
|
|
419
|
+
__privateGet(this, _stateManager).send({ type: "AUTHENTICATE_EXTERNAL_WALLET", data: params });
|
|
420
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
421
|
+
stateManager: __privateGet(this, _stateManager),
|
|
422
|
+
resolvePhases: [
|
|
423
|
+
{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult },
|
|
424
|
+
{
|
|
425
|
+
phase: "awaiting_wallet_signature",
|
|
426
|
+
onPhase: (state) => state.authStateResult
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
phase: "awaiting_account_verification",
|
|
430
|
+
onPhase: (state) => state.authStateResult
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
phase: "awaiting_wallet_verification",
|
|
434
|
+
onPhase: (state) => state.authStateResult
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
phase: "authenticated",
|
|
438
|
+
onPhase: (state) => state.authStateResult
|
|
439
|
+
}
|
|
440
|
+
]
|
|
441
|
+
});
|
|
442
|
+
});
|
|
443
|
+
this.connectExternalWallet = (params) => __async(this, null, function* () {
|
|
444
|
+
__privateGet(this, _stateManager).send({ type: "CONNECT_EXTERNAL_WALLET", data: params });
|
|
445
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
446
|
+
stateManager: __privateGet(this, _stateManager),
|
|
447
|
+
resolvePhases: [
|
|
448
|
+
{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult },
|
|
449
|
+
{
|
|
450
|
+
phase: "awaiting_wallet_signature",
|
|
451
|
+
onPhase: (state) => state.authStateResult
|
|
452
|
+
},
|
|
453
|
+
{ phase: "authenticated", onPhase: (state) => state.authStateResult }
|
|
454
|
+
]
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
this.signExternalWalletVerification = (params) => __async(this, null, function* () {
|
|
458
|
+
__privateGet(this, _stateManager).send({ type: "SIGN_EXTERNAL_WALLET_VERIFICATION", data: params });
|
|
459
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
460
|
+
stateManager: __privateGet(this, _stateManager),
|
|
461
|
+
resolvePhases: [
|
|
462
|
+
{
|
|
463
|
+
phase: "awaiting_wallet_verification",
|
|
464
|
+
onPhase: () => __privateGet(this, _stateManager).getSnapshot().externalWalletSignVerification
|
|
465
|
+
}
|
|
466
|
+
]
|
|
467
|
+
});
|
|
468
|
+
});
|
|
469
|
+
this.verifyOAuthProcess = (params) => __async(this, null, function* () {
|
|
470
|
+
__privateGet(this, _stateManager).send({
|
|
471
|
+
type: "AUTHENTICATE_OAUTH",
|
|
472
|
+
data: __spreadProps(__spreadValues({}, params), {
|
|
473
|
+
onCancel: params.onCancel,
|
|
474
|
+
onPoll: params.onPoll,
|
|
475
|
+
isCanceled: params.isCanceled,
|
|
476
|
+
isLegacy: true
|
|
477
|
+
})
|
|
478
|
+
});
|
|
479
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
480
|
+
stateManager: __privateGet(this, _stateManager),
|
|
481
|
+
resolvePhases: [
|
|
482
|
+
{ phase: "awaiting_session_start", onPhase: (state) => state.authStateResult }
|
|
483
|
+
]
|
|
484
|
+
});
|
|
485
|
+
});
|
|
486
|
+
this.authenticateWithOAuth = (params) => __async(this, null, function* () {
|
|
487
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
488
|
+
switch (params.method) {
|
|
489
|
+
case "TELEGRAM": {
|
|
490
|
+
__privateGet(this, _stateManager).send({
|
|
491
|
+
type: "AUTHENTICATE_TELEGRAM",
|
|
492
|
+
data: __spreadProps(__spreadValues({}, params), {
|
|
493
|
+
method: params.method,
|
|
494
|
+
isCanceled: (_a = params.oAuthPollingCallbacks) == null ? void 0 : _a.isCanceled,
|
|
495
|
+
onOAuthPopup: (_b = params.redirectCallbacks) == null ? void 0 : _b.onOAuthPopup,
|
|
496
|
+
onOAuthUrl: (_c = params.redirectCallbacks) == null ? void 0 : _c.onOAuthUrl
|
|
497
|
+
})
|
|
498
|
+
});
|
|
499
|
+
break;
|
|
500
|
+
}
|
|
501
|
+
case "FARCASTER": {
|
|
502
|
+
__privateGet(this, _stateManager).send({
|
|
503
|
+
type: "AUTHENTICATE_FARCASTER",
|
|
504
|
+
data: __spreadProps(__spreadValues({}, params), {
|
|
505
|
+
method: params.method,
|
|
506
|
+
isCanceled: (_d = params.oAuthPollingCallbacks) == null ? void 0 : _d.isCanceled,
|
|
507
|
+
onOAuthPopup: (_e = params.redirectCallbacks) == null ? void 0 : _e.onOAuthPopup,
|
|
508
|
+
onOAuthUrl: (_f = params.redirectCallbacks) == null ? void 0 : _f.onOAuthUrl
|
|
509
|
+
})
|
|
510
|
+
});
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
default: {
|
|
514
|
+
__privateGet(this, _stateManager).send({
|
|
515
|
+
type: "AUTHENTICATE_OAUTH",
|
|
516
|
+
data: __spreadProps(__spreadValues({}, params), {
|
|
517
|
+
method: params.method,
|
|
518
|
+
onCancel: (_g = params.oAuthPollingCallbacks) == null ? void 0 : _g.onCancel,
|
|
519
|
+
onPoll: (_h = params.oAuthPollingCallbacks) == null ? void 0 : _h.onPoll,
|
|
520
|
+
isCanceled: (_i = params.oAuthPollingCallbacks) == null ? void 0 : _i.isCanceled,
|
|
521
|
+
isLegacy: false,
|
|
522
|
+
onOAuthPopup: (_j = params.redirectCallbacks) == null ? void 0 : _j.onOAuthPopup,
|
|
523
|
+
onOAuthUrl: (_k = params.redirectCallbacks) == null ? void 0 : _k.onOAuthUrl
|
|
524
|
+
})
|
|
525
|
+
});
|
|
526
|
+
break;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
yield (0, import_stateListener.waitForAuthStateChange)({
|
|
530
|
+
stateManager: __privateGet(this, _stateManager),
|
|
531
|
+
resolvePhases: [
|
|
532
|
+
// awaiting_session_start will be hit for non-SLO logins & all SLO logins/sign ups
|
|
533
|
+
{ phase: "awaiting_session_start", onPhase: () => void 0 }
|
|
534
|
+
],
|
|
535
|
+
rejectPhases: [
|
|
536
|
+
{
|
|
537
|
+
phase: "unauthenticated",
|
|
538
|
+
onPhase: () => new Error("OAuth canceled")
|
|
539
|
+
}
|
|
540
|
+
]
|
|
541
|
+
});
|
|
542
|
+
__privateGet(this, _stateManager).send({
|
|
543
|
+
type: "WAIT_FOR_SESSION",
|
|
544
|
+
data: __spreadProps(__spreadValues({}, params.sessionPollingCallbacks), { autoCreateWallets: true })
|
|
545
|
+
});
|
|
546
|
+
const resp = yield (0, import_stateListener.waitForAuthStateChange)({
|
|
547
|
+
stateManager: __privateGet(this, _stateManager),
|
|
548
|
+
resolvePhases: [
|
|
549
|
+
{
|
|
550
|
+
phase: "authenticated",
|
|
551
|
+
onPhase: (state) => {
|
|
552
|
+
const createdWallets = state.newWalletsResult;
|
|
553
|
+
if (createdWallets) {
|
|
554
|
+
return {
|
|
555
|
+
hasCreatedWallets: true,
|
|
556
|
+
recoverySecret: state.newWalletsResult.recoverySecret
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
return {
|
|
560
|
+
hasCreatedWallets: false,
|
|
561
|
+
recoverySecret: void 0
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
rejectPhases: [
|
|
567
|
+
{
|
|
568
|
+
phase: "unauthenticated",
|
|
569
|
+
onPhase: () => new Error("Session waiting canceled")
|
|
570
|
+
}
|
|
571
|
+
],
|
|
572
|
+
waitForCoreAuthenticated: true
|
|
573
|
+
});
|
|
574
|
+
return __spreadValues({ authInfo: this.authInfo }, resp);
|
|
575
|
+
});
|
|
576
|
+
this.performVerifyTelegram = (params) => __async(this, null, function* () {
|
|
577
|
+
return yield __privateGet(this, _verificationFlowService).performVerifyTelegram(params);
|
|
578
|
+
});
|
|
579
|
+
this.verifyTelegram = (params) => __async(this, null, function* () {
|
|
580
|
+
return yield __privateGet(this, _verificationFlowService).verifyTelegram(params);
|
|
581
|
+
});
|
|
582
|
+
this.performVerifyFarcaster = (params) => __async(this, null, function* () {
|
|
583
|
+
return yield __privateGet(this, _verificationFlowService).performVerifyFarcaster(params);
|
|
584
|
+
});
|
|
585
|
+
this.verifyFarcaster = (params) => __async(this, null, function* () {
|
|
586
|
+
return yield __privateGet(this, _verificationFlowService).verifyFarcaster(params);
|
|
587
|
+
});
|
|
588
|
+
this.supportedUserAuthMethods = () => __async(this, null, function* () {
|
|
589
|
+
this.assertIsAuthSet();
|
|
590
|
+
const { supportedAuthMethods, hasPasswordWithoutPIN } = yield __privateGet(this, _paraCoreInterface).ctx.client.getSupportedAuthMethodsV2(this.authInfo.auth);
|
|
591
|
+
const authMethods = /* @__PURE__ */ new Set();
|
|
592
|
+
for (const type of supportedAuthMethods) {
|
|
593
|
+
switch (type) {
|
|
594
|
+
case "PASSWORD":
|
|
595
|
+
if (hasPasswordWithoutPIN) {
|
|
596
|
+
authMethods.add(import_user_management_client.AuthMethod.PASSWORD);
|
|
597
|
+
}
|
|
598
|
+
break;
|
|
599
|
+
case "PASSKEY":
|
|
600
|
+
authMethods.add(import_user_management_client.AuthMethod.PASSKEY);
|
|
601
|
+
break;
|
|
602
|
+
case "PIN":
|
|
603
|
+
authMethods.add(import_user_management_client.AuthMethod.PIN);
|
|
604
|
+
break;
|
|
605
|
+
case "BASIC_LOGIN":
|
|
606
|
+
authMethods.add(import_user_management_client.AuthMethod.BASIC_LOGIN);
|
|
607
|
+
break;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
return authMethods;
|
|
611
|
+
});
|
|
612
|
+
this.getNewCredentialAndUrl = (..._0) => __async(this, [..._0], function* ({
|
|
613
|
+
authMethod: optsAuthMethod,
|
|
614
|
+
isForNewDevice = false,
|
|
615
|
+
portalTheme,
|
|
616
|
+
shorten = false
|
|
617
|
+
} = {}) {
|
|
618
|
+
const userAuthMethods = yield this.supportedUserAuthMethods();
|
|
619
|
+
const isEnclaveUser = userAuthMethods.has(import_user_management_client.AuthMethod.BASIC_LOGIN);
|
|
620
|
+
const isAddingBasicLogin = optsAuthMethod === "BASIC_LOGIN";
|
|
621
|
+
if (isEnclaveUser && isAddingBasicLogin) {
|
|
622
|
+
throw new Error("That user is already using basic login");
|
|
623
|
+
}
|
|
624
|
+
if (isEnclaveUser || isAddingBasicLogin) {
|
|
625
|
+
isForNewDevice = true;
|
|
626
|
+
}
|
|
627
|
+
const authMethods = optsAuthMethod ? [optsAuthMethod] : isForNewDevice ? ["PASSKEY", "PIN", "PASSWORD"] : ["PASSKEY"];
|
|
628
|
+
this.assertIsAuthSet();
|
|
629
|
+
let passkeyId, passwordId, urlType, credentialId;
|
|
630
|
+
if (!isAddingBasicLogin) {
|
|
631
|
+
const canAddPasswordOrPIN = !userAuthMethods.has(import_user_management_client.AuthMethod.PASSWORD) && !userAuthMethods.has(import_user_management_client.AuthMethod.PIN);
|
|
632
|
+
if (authMethods.includes("PASSKEY") && (yield __privateGet(this, _paraCoreInterface).isPasskeySupported())) {
|
|
633
|
+
({
|
|
634
|
+
data: { id: passkeyId }
|
|
635
|
+
} = yield __privateGet(this, _paraCoreInterface).ctx.client.addSessionPublicKey(this.userId, {
|
|
636
|
+
status: import_user_management_client.AuthMethodStatus.PENDING,
|
|
637
|
+
type: import_user_management_client.PublicKeyType.WEB
|
|
638
|
+
}));
|
|
639
|
+
urlType = "createAuth";
|
|
640
|
+
}
|
|
641
|
+
if (authMethods.includes("PASSWORD")) {
|
|
642
|
+
if (!canAddPasswordOrPIN) {
|
|
643
|
+
if (optsAuthMethod === "PASSWORD") throw new Error("A user cannot have more than one password or PIN.");
|
|
644
|
+
} else {
|
|
645
|
+
({
|
|
646
|
+
data: { id: passwordId }
|
|
647
|
+
} = yield __privateGet(this, _paraCoreInterface).ctx.client.addSessionPasswordPublicKey(this.userId, {
|
|
648
|
+
status: import_user_management_client.AuthMethodStatus.PENDING
|
|
649
|
+
}));
|
|
650
|
+
urlType = "createPassword";
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
if (authMethods.includes("PIN")) {
|
|
654
|
+
if (!canAddPasswordOrPIN) {
|
|
655
|
+
if (optsAuthMethod === "PIN") throw new Error("A user cannot have more than one password or PIN.");
|
|
656
|
+
} else {
|
|
657
|
+
({
|
|
658
|
+
data: { id: passwordId }
|
|
659
|
+
} = yield __privateGet(this, _paraCoreInterface).ctx.client.addSessionPasswordPublicKey(this.userId, {
|
|
660
|
+
status: import_user_management_client.AuthMethodStatus.PENDING
|
|
661
|
+
}));
|
|
662
|
+
urlType = "createPIN";
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
credentialId = passkeyId != null ? passkeyId : passwordId;
|
|
666
|
+
if (__privateGet(this, _paraCoreInterface).isNativePasskey && authMethods.includes("PASSKEY")) {
|
|
667
|
+
return { credentialId };
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
const { sessionId } = yield __privateGet(this, _sessionManagementService).touchSession();
|
|
671
|
+
const url = (isForNewDevice || urlType) && (yield __privateGet(this, _portalUrlService).constructPortalUrl(isForNewDevice ? "addNewCredential" : urlType, {
|
|
672
|
+
isForNewDevice,
|
|
673
|
+
pathId: credentialId,
|
|
674
|
+
portalTheme,
|
|
675
|
+
shorten,
|
|
676
|
+
sessionId: isForNewDevice ? sessionId : void 0,
|
|
677
|
+
addNewCredentialType: optsAuthMethod,
|
|
678
|
+
addNewCredentialPasskeyId: passkeyId,
|
|
679
|
+
addNewCredentialPasswordId: passwordId
|
|
680
|
+
}));
|
|
681
|
+
return __spreadValues({ credentialId }, url ? { url } : {});
|
|
682
|
+
});
|
|
683
|
+
this.addCredential = (_0) => __async(this, [_0], function* ({ authMethod }) {
|
|
684
|
+
if (authMethod === "PASSKEY" && !(yield __privateGet(this, _paraCoreInterface).isPasskeySupported())) {
|
|
685
|
+
throw new Error("Passkeys are not supported.");
|
|
686
|
+
}
|
|
687
|
+
const { url } = yield this.getNewCredentialAndUrl({ isForNewDevice: true, authMethod });
|
|
688
|
+
return url;
|
|
689
|
+
});
|
|
690
|
+
this.resendVerificationCode = (_0) => __async(this, [_0], function* ({ type: reason = "SIGNUP" }) {
|
|
691
|
+
let type, linkedAccountId;
|
|
692
|
+
switch (reason) {
|
|
693
|
+
case "SIGNUP":
|
|
694
|
+
case "LOGIN":
|
|
695
|
+
{
|
|
696
|
+
const authInfo = this.assertIsAuthSet(["email", "phone"]);
|
|
697
|
+
type = authInfo.authType.toUpperCase();
|
|
698
|
+
}
|
|
699
|
+
break;
|
|
700
|
+
case "LINK_ACCOUNT":
|
|
701
|
+
{
|
|
702
|
+
const accountLinkInProgress = __privateGet(this, _paraCoreInterface).assertIsLinkingAccount(["EMAIL", "PHONE"]);
|
|
703
|
+
linkedAccountId = accountLinkInProgress.id;
|
|
704
|
+
type = accountLinkInProgress.type;
|
|
705
|
+
}
|
|
706
|
+
break;
|
|
707
|
+
}
|
|
708
|
+
const userId = this.assertUserId({ allowGuestMode: true });
|
|
709
|
+
if (type !== "EMAIL" && type !== "PHONE") {
|
|
710
|
+
throw new Error("invalid auth type for verification code");
|
|
711
|
+
}
|
|
712
|
+
yield __privateGet(this, _paraCoreInterface).ctx.client.resendVerificationCode(__spreadValues({
|
|
713
|
+
userId,
|
|
714
|
+
type,
|
|
715
|
+
linkedAccountId
|
|
716
|
+
}, __privateGet(this, _paraCoreInterface).getVerificationEmailProps()));
|
|
717
|
+
});
|
|
718
|
+
__privateSet(this, _paraCoreInterface, paraCore.getAuthServiceInterface());
|
|
719
|
+
}
|
|
720
|
+
get isEnclaveUser() {
|
|
721
|
+
return __privateGet(this, _isEnclaveUser);
|
|
722
|
+
}
|
|
723
|
+
set isEnclaveUser(value) {
|
|
724
|
+
__privateSet(this, _isEnclaveUser, value);
|
|
725
|
+
}
|
|
726
|
+
get email() {
|
|
727
|
+
var _a;
|
|
728
|
+
return (0, import_user_management_client.isEmail)((_a = this.authInfo) == null ? void 0 : _a.auth) ? this.authInfo.auth.email : void 0;
|
|
729
|
+
}
|
|
730
|
+
get phone() {
|
|
731
|
+
var _a;
|
|
732
|
+
return (0, import_user_management_client.isPhone)((_a = this.authInfo) == null ? void 0 : _a.auth) ? this.authInfo.auth.phone : void 0;
|
|
733
|
+
}
|
|
734
|
+
get farcasterUsername() {
|
|
735
|
+
var _a;
|
|
736
|
+
return (0, import_user_management_client.isFarcaster)((_a = this.authInfo) == null ? void 0 : _a.auth) ? this.authInfo.auth.farcasterUsername : void 0;
|
|
737
|
+
}
|
|
738
|
+
get telegramUserId() {
|
|
739
|
+
var _a;
|
|
740
|
+
return (0, import_user_management_client.isTelegram)((_a = this.authInfo) == null ? void 0 : _a.auth) ? this.authInfo.auth.telegramUserId : void 0;
|
|
741
|
+
}
|
|
742
|
+
get isEmail() {
|
|
743
|
+
var _a;
|
|
744
|
+
return (0, import_user_management_client.isEmail)((_a = this.authInfo) == null ? void 0 : _a.auth);
|
|
745
|
+
}
|
|
746
|
+
get isPhone() {
|
|
747
|
+
var _a;
|
|
748
|
+
return (0, import_user_management_client.isPhone)((_a = this.authInfo) == null ? void 0 : _a.auth);
|
|
749
|
+
}
|
|
750
|
+
get isFarcaster() {
|
|
751
|
+
var _a;
|
|
752
|
+
return (0, import_user_management_client.isFarcaster)((_a = this.authInfo) == null ? void 0 : _a.auth);
|
|
753
|
+
}
|
|
754
|
+
get isTelegram() {
|
|
755
|
+
var _a;
|
|
756
|
+
return (0, import_user_management_client.isTelegram)((_a = this.authInfo) == null ? void 0 : _a.auth);
|
|
757
|
+
}
|
|
758
|
+
get isExternalWalletAuth() {
|
|
759
|
+
var _a, _b, _c;
|
|
760
|
+
return (0, import_user_management_client.isExternalWallet)((_a = this.authInfo) == null ? void 0 : _a.auth) && !!((_c = (_b = this.authInfo) == null ? void 0 : _b.externalWallet) == null ? void 0 : _c.withFullParaAuth);
|
|
761
|
+
}
|
|
762
|
+
get isExternalWalletWithVerification() {
|
|
763
|
+
var _a, _b, _c;
|
|
764
|
+
return (0, import_user_management_client.isExternalWallet)((_a = this.authInfo) == null ? void 0 : _a.auth) && !!((_c = (_b = this.authInfo) == null ? void 0 : _b.externalWallet) == null ? void 0 : _c.withVerification);
|
|
765
|
+
}
|
|
766
|
+
get authInfo() {
|
|
767
|
+
return __privateGet(this, _authInfo);
|
|
768
|
+
}
|
|
769
|
+
set authInfo(authInfo) {
|
|
770
|
+
__privateSet(this, _authInfo, authInfo);
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
_stateManager = new WeakMap();
|
|
774
|
+
_loginFlowService = new WeakMap();
|
|
775
|
+
_signupFlowService = new WeakMap();
|
|
776
|
+
_verificationFlowService = new WeakMap();
|
|
777
|
+
_externalWalletService = new WeakMap();
|
|
778
|
+
_pregenWalletService = new WeakMap();
|
|
779
|
+
_sessionManagementService = new WeakMap();
|
|
780
|
+
_portalUrlService = new WeakMap();
|
|
781
|
+
_paraCoreInterface = new WeakMap();
|
|
782
|
+
_authInfo = new WeakMap();
|
|
783
|
+
_isEnclaveUser = new WeakMap();
|
|
784
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
785
|
+
0 && (module.exports = {
|
|
786
|
+
AuthService
|
|
787
|
+
});
|