@getpara/core-sdk 2.12.0 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ParaCore.js +793 -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 +796 -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,78 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
+
};
|
|
23
|
+
var __copyProps = (to, from, except, desc) => {
|
|
24
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
25
|
+
for (let key of __getOwnPropNames(from))
|
|
26
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
27
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
28
|
+
}
|
|
29
|
+
return to;
|
|
30
|
+
};
|
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
|
+
var __async = (__this, __arguments, generator) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
var fulfilled = (value) => {
|
|
35
|
+
try {
|
|
36
|
+
step(generator.next(value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var rejected = (value) => {
|
|
42
|
+
try {
|
|
43
|
+
step(generator.throw(value));
|
|
44
|
+
} catch (e) {
|
|
45
|
+
reject(e);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
var BaseAuthFlowService_exports = {};
|
|
53
|
+
__export(BaseAuthFlowService_exports, {
|
|
54
|
+
BaseAuthFlowService: () => BaseAuthFlowService
|
|
55
|
+
});
|
|
56
|
+
module.exports = __toCommonJS(BaseAuthFlowService_exports);
|
|
57
|
+
var import_user_management_client = require("@getpara/user-management-client");
|
|
58
|
+
class BaseAuthFlowService {
|
|
59
|
+
constructor(paraCoreInterface, stateManager, services) {
|
|
60
|
+
this.paraCoreInterface = paraCoreInterface;
|
|
61
|
+
this.stateManager = stateManager;
|
|
62
|
+
this.services = services;
|
|
63
|
+
// Shared auth setup from server state
|
|
64
|
+
this.setupAuthFromServerState = (serverAuthState) => __async(this, null, function* () {
|
|
65
|
+
const { auth, userId, displayName, pfpUrl, username, externalWallet } = serverAuthState;
|
|
66
|
+
const authInfo = __spreadValues(__spreadValues({}, (0, import_user_management_client.extractAuthInfo)(auth, { isRequired: true })), Object.fromEntries(Object.entries({ displayName, pfpUrl, username, externalWallet }).filter(([_, v]) => !!v)));
|
|
67
|
+
yield this.services.authService.setAuthInfo(authInfo);
|
|
68
|
+
this.services.authService.assertIsAuthSet();
|
|
69
|
+
if (userId) {
|
|
70
|
+
yield this.services.authService.setUserId(userId);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
BaseAuthFlowService
|
|
78
|
+
});
|
|
@@ -0,0 +1,386 @@
|
|
|
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 ExternalWalletService_exports = {};
|
|
63
|
+
__export(ExternalWalletService_exports, {
|
|
64
|
+
ExternalWalletService: () => ExternalWalletService
|
|
65
|
+
});
|
|
66
|
+
module.exports = __toCommonJS(ExternalWalletService_exports);
|
|
67
|
+
var import_events = require("../types/events.js");
|
|
68
|
+
var import_constants = require("../constants.js");
|
|
69
|
+
var import_utils = require("../utils/index.js");
|
|
70
|
+
var _stateManager, _authService, _walletService, _paraCoreInterface, _externalWallets, _watchedProviders, _onWalletDisconnected;
|
|
71
|
+
class ExternalWalletService {
|
|
72
|
+
constructor(paraCore) {
|
|
73
|
+
__privateAdd(this, _stateManager);
|
|
74
|
+
__privateAdd(this, _authService);
|
|
75
|
+
__privateAdd(this, _walletService);
|
|
76
|
+
__privateAdd(this, _paraCoreInterface);
|
|
77
|
+
__privateAdd(this, _externalWallets, {});
|
|
78
|
+
__privateAdd(this, _watchedProviders, /* @__PURE__ */ new Set());
|
|
79
|
+
this.externalWalletProviderInterfaces = {};
|
|
80
|
+
this.init = ({
|
|
81
|
+
authService,
|
|
82
|
+
walletService,
|
|
83
|
+
stateManager
|
|
84
|
+
}) => {
|
|
85
|
+
__privateSet(this, _walletService, walletService);
|
|
86
|
+
__privateSet(this, _authService, authService);
|
|
87
|
+
__privateSet(this, _stateManager, stateManager);
|
|
88
|
+
};
|
|
89
|
+
this.initExternalWalletProvider = (_0) => __async(this, [_0], function* ({ type, interface: providerInterface }) {
|
|
90
|
+
this.externalWalletProviderInterfaces[type] = providerInterface;
|
|
91
|
+
});
|
|
92
|
+
this.waitForProvidersLoading = () => __async(this, null, function* () {
|
|
93
|
+
const storedWalletTypes = new Set(Object.values(this.externalWallets).map((wallet) => wallet.type));
|
|
94
|
+
if (storedWalletTypes.size === 0) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
for (let i = 0; i < 20; i++) {
|
|
98
|
+
const neededProviderInterfaces = Array.from(storedWalletTypes).map((type) => ({
|
|
99
|
+
type,
|
|
100
|
+
interface: this.externalWalletProviderInterfaces[type]
|
|
101
|
+
})).filter(({ interface: providerInterface }) => !!providerInterface);
|
|
102
|
+
if (neededProviderInterfaces.length !== storedWalletTypes.size) {
|
|
103
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const loadingResults = yield Promise.all(
|
|
107
|
+
neededProviderInterfaces.map((_0) => __async(this, [_0], function* ({ type, interface: providerInterface }) {
|
|
108
|
+
try {
|
|
109
|
+
const providerAddresses = yield providerInterface.getAddress();
|
|
110
|
+
const storedAddressesForType = Object.values(this.externalWallets).filter((wallet) => wallet.type === type).map((wallet) => Object.keys(this.externalWallets).find((addr) => this.externalWallets[addr] === wallet)).filter(Boolean);
|
|
111
|
+
const allAddressesAvailable = storedAddressesForType.every((addr) => providerAddresses.includes(addr));
|
|
112
|
+
return allAddressesAvailable;
|
|
113
|
+
} catch (error) {
|
|
114
|
+
console.warn(`Error checking provider ${type}:`, error);
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}))
|
|
118
|
+
);
|
|
119
|
+
if (loadingResults.every((result) => result === true)) {
|
|
120
|
+
neededProviderInterfaces.forEach(({ type, interface: providerInterface }) => {
|
|
121
|
+
if (!__privateGet(this, _watchedProviders).has(type)) {
|
|
122
|
+
__privateGet(this, _watchedProviders).add(type);
|
|
123
|
+
providerInterface.watchDisconnection(() => __async(this, null, function* () {
|
|
124
|
+
yield __privateGet(this, _onWalletDisconnected).call(this);
|
|
125
|
+
}));
|
|
126
|
+
providerInterface.watchWalletChange((params) => __async(this, null, function* () {
|
|
127
|
+
yield this.switchExternalWallet(params);
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
});
|
|
137
|
+
this.assertValidConnection = () => __async(this, null, function* () {
|
|
138
|
+
if (__privateGet(this, _stateManager).getSnapshot().authStatePhase === "switching_external_wallet") {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (this.externalWalletConnectionType === "NONE") {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const connectedAddresses = (yield Promise.all(
|
|
145
|
+
Object.values(this.externalWalletProviderInterfaces).map((providerInterface) => __async(this, null, function* () {
|
|
146
|
+
return yield providerInterface.getAddress();
|
|
147
|
+
}))
|
|
148
|
+
)).filter((a) => !!a);
|
|
149
|
+
const storedExternalWalletAddresses = Object.keys(this.externalWallets);
|
|
150
|
+
const someConnectedHaveStoredWallets = connectedAddresses.some(
|
|
151
|
+
(connectedAddress) => connectedAddress && this.externalWallets[connectedAddress]
|
|
152
|
+
);
|
|
153
|
+
const allStoredWalletsAreConnected = storedExternalWalletAddresses.every(
|
|
154
|
+
(storedAddress) => connectedAddresses.includes(storedAddress)
|
|
155
|
+
);
|
|
156
|
+
const validConnection = someConnectedHaveStoredWallets && allStoredWalletsAreConnected;
|
|
157
|
+
if (!validConnection) {
|
|
158
|
+
yield __privateGet(this, _paraCoreInterface).logout();
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
/**
|
|
162
|
+
* Function to perform signing a message with an external wallet
|
|
163
|
+
*/
|
|
164
|
+
this.signMessage = (_0) => __async(this, [_0], function* ({ type, message, address }) {
|
|
165
|
+
const providerInterface = this.externalWalletProviderInterfaces[type];
|
|
166
|
+
if (!providerInterface) {
|
|
167
|
+
throw new Error(`External wallet provider interface for type ${type} is not initialized.`);
|
|
168
|
+
}
|
|
169
|
+
const signature = yield providerInterface.signMessage({ message, address });
|
|
170
|
+
return __spreadValues({ address }, signature);
|
|
171
|
+
});
|
|
172
|
+
this.connectParaConnectors = () => __async(this, null, function* () {
|
|
173
|
+
const types = Array.from(new Set(Object.values(__privateGet(this, _walletService).wallets).map((w) => w.type)));
|
|
174
|
+
for (const type of types) {
|
|
175
|
+
const providerInterface = this.externalWalletProviderInterfaces[type];
|
|
176
|
+
if (!providerInterface) {
|
|
177
|
+
console.error(
|
|
178
|
+
`External wallet provider interface for type ${type} is not initialized. Para connector will not be connected.`
|
|
179
|
+
);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
yield providerInterface.connectParaConnector();
|
|
184
|
+
} catch (e) {
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
this.performSwitchExternalWallet = (params) => __async(this, null, function* () {
|
|
189
|
+
if (this.externalWalletConnectionType !== "CONNECTION_ONLY") {
|
|
190
|
+
throw new Error("Cannot switch external wallets when using Para authentication or wallet verification.");
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
const partner = yield __privateGet(this, _paraCoreInterface).assertPartner();
|
|
194
|
+
const loginResp = yield __privateGet(this, _authService).performLoginExternalWallet({
|
|
195
|
+
externalWallet: __spreadProps(__spreadValues({}, params.externalWallet), {
|
|
196
|
+
partnerId: partner.id,
|
|
197
|
+
withFullParaAuth: false,
|
|
198
|
+
withVerification: false
|
|
199
|
+
})
|
|
200
|
+
});
|
|
201
|
+
if (loginResp.authState.stage !== "done" && loginResp.authState.stage !== "verify") {
|
|
202
|
+
throw new Error("External wallet switch did not complete successfully.");
|
|
203
|
+
}
|
|
204
|
+
yield this.setExternalWallet({ externalWallet: [loginResp.authState.externalWallet] });
|
|
205
|
+
return { externalWallet: loginResp.authState.externalWallet };
|
|
206
|
+
} catch (error) {
|
|
207
|
+
console.error("Error during external wallet switch login:", error);
|
|
208
|
+
throw error;
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
this.switchExternalWallet = (params) => __async(this, null, function* () {
|
|
212
|
+
if (__privateGet(this, _externalWallets)[params.externalWallet.address]) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
__privateGet(this, _stateManager).send({ type: "SWITCH_EXTERNAL_WALLET", data: params });
|
|
216
|
+
});
|
|
217
|
+
__privateAdd(this, _onWalletDisconnected, () => __async(this, null, function* () {
|
|
218
|
+
if (this.externalWalletConnectionType === "NONE") {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
yield __privateGet(this, _paraCoreInterface).logout();
|
|
222
|
+
}));
|
|
223
|
+
/**
|
|
224
|
+
* Function to perform connecting an external wallet
|
|
225
|
+
*/
|
|
226
|
+
this.performConnectExternalWallet = (_0) => __async(this, [_0], function* ({ connect }) {
|
|
227
|
+
const connectResp = yield connect();
|
|
228
|
+
const providerInterface = this.externalWalletProviderInterfaces[connectResp.externalWallet.type];
|
|
229
|
+
if (!providerInterface) {
|
|
230
|
+
throw new Error(`External wallet provider interface for type ${connectResp.externalWallet.type} is not initialized.`);
|
|
231
|
+
}
|
|
232
|
+
if (!__privateGet(this, _watchedProviders).has(connectResp.externalWallet.type)) {
|
|
233
|
+
__privateGet(this, _watchedProviders).add(connectResp.externalWallet.type);
|
|
234
|
+
providerInterface.watchDisconnection(() => __async(this, null, function* () {
|
|
235
|
+
yield __privateGet(this, _onWalletDisconnected).call(this);
|
|
236
|
+
}));
|
|
237
|
+
providerInterface.watchWalletChange((params) => __async(this, null, function* () {
|
|
238
|
+
yield this.switchExternalWallet(params);
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
return connectResp;
|
|
242
|
+
});
|
|
243
|
+
this.disconnectExternalWallet = (type) => __async(this, null, function* () {
|
|
244
|
+
const providerInterface = this.externalWalletProviderInterfaces[type];
|
|
245
|
+
if (!providerInterface) {
|
|
246
|
+
throw new Error(`External wallet provider interface for type ${type} is not initialized.`);
|
|
247
|
+
}
|
|
248
|
+
return yield providerInterface.disconnect();
|
|
249
|
+
});
|
|
250
|
+
this.disconnectAllExternalWallets = () => __async(this, null, function* () {
|
|
251
|
+
const disconnectPromises = Object.values(this.externalWalletProviderInterfaces).map(
|
|
252
|
+
(providerInterface) => providerInterface.disconnect()
|
|
253
|
+
);
|
|
254
|
+
yield Promise.all(disconnectPromises);
|
|
255
|
+
__privateGet(this, _watchedProviders).clear();
|
|
256
|
+
});
|
|
257
|
+
this.setExternalWallet = (_0) => __async(this, [_0], function* ({ externalWallet }) {
|
|
258
|
+
const { id: partnerId, supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
|
|
259
|
+
this.externalWallets = (Array.isArray(externalWallet) ? externalWallet : [externalWallet]).reduce(
|
|
260
|
+
(acc, {
|
|
261
|
+
partnerId: wPartnerId,
|
|
262
|
+
address,
|
|
263
|
+
type,
|
|
264
|
+
provider,
|
|
265
|
+
providerId,
|
|
266
|
+
addressBech32,
|
|
267
|
+
withFullParaAuth,
|
|
268
|
+
isConnectionOnly,
|
|
269
|
+
withVerification
|
|
270
|
+
}) => {
|
|
271
|
+
if (partnerId === wPartnerId && supportedWalletTypes.some(({ type: supportedType }) => supportedType === type)) {
|
|
272
|
+
return __spreadProps(__spreadValues({}, acc), {
|
|
273
|
+
[address]: {
|
|
274
|
+
id: address,
|
|
275
|
+
partnerId,
|
|
276
|
+
address: addressBech32 != null ? addressBech32 : address,
|
|
277
|
+
type,
|
|
278
|
+
name: provider,
|
|
279
|
+
isExternal: true,
|
|
280
|
+
isExternalWithParaAuth: withFullParaAuth,
|
|
281
|
+
externalProviderId: providerId,
|
|
282
|
+
signer: "",
|
|
283
|
+
isExternalConnectionOnly: isConnectionOnly,
|
|
284
|
+
isExternalWithVerification: withVerification
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
} else {
|
|
288
|
+
if (partnerId !== wPartnerId) {
|
|
289
|
+
throw new Error(`Partner ID on the wallet does not match the current partner.`);
|
|
290
|
+
}
|
|
291
|
+
console.warn(
|
|
292
|
+
`External wallet with address ${address} and type ${type} is not supported by the current partner, skipping this wallet. Supported wallet types are: ${supportedWalletTypes.map(({ type: supportedType }) => supportedType).join(", ")}`
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
return acc;
|
|
296
|
+
},
|
|
297
|
+
{}
|
|
298
|
+
);
|
|
299
|
+
yield this.setExternalWallets({ externalWallets: this.externalWallets });
|
|
300
|
+
(0, import_utils.dispatchEvent)(import_events.ParaEvent.EXTERNAL_WALLET_CHANGE_EVENT, null);
|
|
301
|
+
});
|
|
302
|
+
this.setExternalWallets = (_0) => __async(this, [_0], function* ({ externalWallets }) {
|
|
303
|
+
if (typeof externalWallets === "function") {
|
|
304
|
+
this.externalWallets = externalWallets(this.externalWallets);
|
|
305
|
+
} else {
|
|
306
|
+
this.externalWallets = externalWallets;
|
|
307
|
+
}
|
|
308
|
+
yield __privateGet(this, _paraCoreInterface).localStorageSetItem(import_constants.LOCAL_STORAGE_EXTERNAL_WALLETS, JSON.stringify(this.externalWallets));
|
|
309
|
+
});
|
|
310
|
+
this.addExternalWallets = (_0) => __async(this, [_0], function* ({ externalWallets }) {
|
|
311
|
+
const { id: partnerId, supportedWalletTypes } = yield __privateGet(this, _paraCoreInterface).assertPartner();
|
|
312
|
+
this.externalWallets = __spreadValues(__spreadValues({}, Object.entries(this.externalWallets).reduce((acc, [address, wallet]) => {
|
|
313
|
+
if (partnerId === wallet.partnerId && supportedWalletTypes.some(({ type }) => type === wallet.type)) {
|
|
314
|
+
return __spreadProps(__spreadValues({}, acc), {
|
|
315
|
+
[address]: wallet
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
return acc;
|
|
319
|
+
}, {})), externalWallets.reduce(
|
|
320
|
+
(acc, { address, type, provider, providerId, addressBech32, withFullParaAuth, isConnectionOnly, withVerification }) => {
|
|
321
|
+
return __spreadProps(__spreadValues({}, acc), {
|
|
322
|
+
[address]: {
|
|
323
|
+
id: address,
|
|
324
|
+
partnerId,
|
|
325
|
+
address: addressBech32 != null ? addressBech32 : address,
|
|
326
|
+
type,
|
|
327
|
+
name: provider,
|
|
328
|
+
isExternal: true,
|
|
329
|
+
isExternalWithParaAuth: withFullParaAuth,
|
|
330
|
+
externalProviderId: providerId,
|
|
331
|
+
signer: "",
|
|
332
|
+
isExternalConnectionOnly: isConnectionOnly,
|
|
333
|
+
isExternalWithVerification: withVerification
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
},
|
|
337
|
+
{}
|
|
338
|
+
));
|
|
339
|
+
this.setExternalWallets({ externalWallets: this.externalWallets });
|
|
340
|
+
(0, import_utils.dispatchEvent)(import_events.ParaEvent.EXTERNAL_WALLET_CHANGE_EVENT, null);
|
|
341
|
+
});
|
|
342
|
+
__privateSet(this, _paraCoreInterface, paraCore.getExternalWalletServiceInterface());
|
|
343
|
+
}
|
|
344
|
+
get externalWalletWithParaAuth() {
|
|
345
|
+
const externalWallets = Object.values(this.externalWallets);
|
|
346
|
+
return externalWallets.find((w) => w.isExternalWithParaAuth);
|
|
347
|
+
}
|
|
348
|
+
get externalWallets() {
|
|
349
|
+
return __privateGet(this, _externalWallets);
|
|
350
|
+
}
|
|
351
|
+
set externalWallets(value) {
|
|
352
|
+
__privateSet(this, _externalWallets, value);
|
|
353
|
+
}
|
|
354
|
+
get externalWalletConnectionType() {
|
|
355
|
+
var _a, _b, _c;
|
|
356
|
+
if ((_a = __privateGet(this, _authService)) == null ? void 0 : _a.isExternalWalletAuth) {
|
|
357
|
+
return "AUTHENTICATED";
|
|
358
|
+
} else if ((_b = __privateGet(this, _authService)) == null ? void 0 : _b.isExternalWalletWithVerification) {
|
|
359
|
+
return "VERIFICATION";
|
|
360
|
+
} else if (!!Object.keys(this.externalWallets).length) {
|
|
361
|
+
const hasEmbeddedWallets = Object.keys((_c = __privateGet(this, _walletService)) == null ? void 0 : _c.wallets).some(
|
|
362
|
+
(id) => {
|
|
363
|
+
var _a2;
|
|
364
|
+
return !((_a2 = __privateGet(this, _walletService)) == null ? void 0 : _a2.wallets[id].isExternal);
|
|
365
|
+
}
|
|
366
|
+
);
|
|
367
|
+
if (hasEmbeddedWallets) {
|
|
368
|
+
return "NONE";
|
|
369
|
+
} else {
|
|
370
|
+
return "CONNECTION_ONLY";
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return "NONE";
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
_stateManager = new WeakMap();
|
|
377
|
+
_authService = new WeakMap();
|
|
378
|
+
_walletService = new WeakMap();
|
|
379
|
+
_paraCoreInterface = new WeakMap();
|
|
380
|
+
_externalWallets = new WeakMap();
|
|
381
|
+
_watchedProviders = new WeakMap();
|
|
382
|
+
_onWalletDisconnected = new WeakMap();
|
|
383
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
384
|
+
0 && (module.exports = {
|
|
385
|
+
ExternalWalletService
|
|
386
|
+
});
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
var __objRest = (source, exclude) => {
|
|
23
|
+
var target = {};
|
|
24
|
+
for (var prop in source)
|
|
25
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
26
|
+
target[prop] = source[prop];
|
|
27
|
+
if (source != null && __getOwnPropSymbols)
|
|
28
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
29
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
30
|
+
target[prop] = source[prop];
|
|
31
|
+
}
|
|
32
|
+
return target;
|
|
33
|
+
};
|
|
34
|
+
var __export = (target, all) => {
|
|
35
|
+
for (var name in all)
|
|
36
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
37
|
+
};
|
|
38
|
+
var __copyProps = (to, from, except, desc) => {
|
|
39
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
40
|
+
for (let key of __getOwnPropNames(from))
|
|
41
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
42
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
43
|
+
}
|
|
44
|
+
return to;
|
|
45
|
+
};
|
|
46
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
47
|
+
var __async = (__this, __arguments, generator) => {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
var fulfilled = (value) => {
|
|
50
|
+
try {
|
|
51
|
+
step(generator.next(value));
|
|
52
|
+
} catch (e) {
|
|
53
|
+
reject(e);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var rejected = (value) => {
|
|
57
|
+
try {
|
|
58
|
+
step(generator.throw(value));
|
|
59
|
+
} catch (e) {
|
|
60
|
+
reject(e);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
64
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
var LoginFlowService_exports = {};
|
|
68
|
+
__export(LoginFlowService_exports, {
|
|
69
|
+
LoginFlowService: () => LoginFlowService
|
|
70
|
+
});
|
|
71
|
+
module.exports = __toCommonJS(LoginFlowService_exports);
|
|
72
|
+
var import_user_management_client = require("@getpara/user-management-client");
|
|
73
|
+
var import_BaseAuthFlowService = require("./BaseAuthFlowService.js");
|
|
74
|
+
var import_utils = require("../cryptography/utils.js");
|
|
75
|
+
var import_events = require("../types/events.js");
|
|
76
|
+
var import_utils2 = require("../utils/index.js");
|
|
77
|
+
var import_stateListener = require("../utils/stateListener.js");
|
|
78
|
+
class LoginFlowService extends import_BaseAuthFlowService.BaseAuthFlowService {
|
|
79
|
+
constructor() {
|
|
80
|
+
super(...arguments);
|
|
81
|
+
this.prepareState = (serverAuthState, opts) => __async(this, null, function* () {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
if (!opts.sessionLookupId && (!serverAuthState.externalWallet || !(((_a = serverAuthState.externalWallet) == null ? void 0 : _a.withFullParaAuth) && ((_b = serverAuthState.loginAuthMethods) == null ? void 0 : _b.includes(import_user_management_client.AuthMethod.PIN))))) {
|
|
84
|
+
opts.sessionLookupId = yield this.services.authService.prepareLogin();
|
|
85
|
+
}
|
|
86
|
+
yield this.setupAuthFromServerState(serverAuthState);
|
|
87
|
+
const _c = serverAuthState, { loginAuthMethods = [], hasPasswordWithoutPIN } = _c, authState = __objRest(_c, ["loginAuthMethods", "hasPasswordWithoutPIN"]);
|
|
88
|
+
const { useShortUrls: shorten = false, portalTheme, sessionLookupId } = opts;
|
|
89
|
+
const isPasskeySupported = yield this.paraCoreInterface.isPasskeySupported();
|
|
90
|
+
const isPasskeyPossible = loginAuthMethods.includes(import_user_management_client.AuthMethod.PASSKEY) && !this.paraCoreInterface.isNativePasskey;
|
|
91
|
+
const isPasswordPossible = loginAuthMethods.includes(import_user_management_client.AuthMethod.PASSWORD) && hasPasswordWithoutPIN;
|
|
92
|
+
const isPINPossible = loginAuthMethods.includes(import_user_management_client.AuthMethod.PIN);
|
|
93
|
+
return __spreadValues(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, authState), {
|
|
94
|
+
isPasskeySupported,
|
|
95
|
+
loginAuthMethods
|
|
96
|
+
}), isPasskeyPossible ? {
|
|
97
|
+
passkeyUrl: yield this.services.portalUrlService.getLoginUrl({
|
|
98
|
+
sessionId: sessionLookupId,
|
|
99
|
+
shorten,
|
|
100
|
+
portalTheme
|
|
101
|
+
}),
|
|
102
|
+
passkeyKnownDeviceUrl: yield this.services.portalUrlService.constructPortalUrl("loginAuth", {
|
|
103
|
+
sessionId: sessionLookupId,
|
|
104
|
+
newDevice: {
|
|
105
|
+
sessionId: sessionLookupId,
|
|
106
|
+
encryptionKey: (0, import_utils.getPublicKeyHex)(this.paraCoreInterface.loginEncryptionKeyPair)
|
|
107
|
+
},
|
|
108
|
+
shorten,
|
|
109
|
+
portalTheme
|
|
110
|
+
})
|
|
111
|
+
} : {}), isPasswordPossible ? {
|
|
112
|
+
passwordUrl: yield this.services.portalUrlService.constructPortalUrl("loginPassword", {
|
|
113
|
+
sessionId: sessionLookupId,
|
|
114
|
+
shorten,
|
|
115
|
+
portalTheme,
|
|
116
|
+
params: { isEmbedded: `${!serverAuthState.isWalletSelectionNeeded}` }
|
|
117
|
+
})
|
|
118
|
+
} : {}), isPINPossible ? {
|
|
119
|
+
pinUrl: yield this.services.portalUrlService.constructPortalUrl("loginPIN", {
|
|
120
|
+
sessionId: sessionLookupId,
|
|
121
|
+
shorten,
|
|
122
|
+
portalTheme,
|
|
123
|
+
params: { isEmbedded: `${!serverAuthState.isWalletSelectionNeeded}` }
|
|
124
|
+
})
|
|
125
|
+
} : {});
|
|
126
|
+
});
|
|
127
|
+
this.waitForLogin = (params) => __async(this, null, function* () {
|
|
128
|
+
this.stateManager.send({
|
|
129
|
+
type: "WAIT_FOR_SESSION",
|
|
130
|
+
data: __spreadValues({}, params)
|
|
131
|
+
});
|
|
132
|
+
return yield (0, import_stateListener.waitForAuthStateChange)({
|
|
133
|
+
stateManager: this.stateManager,
|
|
134
|
+
resolvePhases: [
|
|
135
|
+
{
|
|
136
|
+
phase: "authenticated",
|
|
137
|
+
onPhase: () => {
|
|
138
|
+
const needsWallet = this.stateManager.getSnapshot().needsWallet;
|
|
139
|
+
(0, import_utils2.dispatchEvent)(import_events.ParaEvent.LOGIN_EVENT, true);
|
|
140
|
+
return {
|
|
141
|
+
partnerId: this.paraCoreInterface.partnerId,
|
|
142
|
+
needsWallet: needsWallet || Object.values(this.services.walletService.wallets).length === 0
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
rejectPhases: [
|
|
148
|
+
{
|
|
149
|
+
phase: "unauthenticated",
|
|
150
|
+
onPhase: () => new Error("canceled")
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
onReject: () => {
|
|
154
|
+
(0, import_utils2.dispatchEvent)(import_events.ParaEvent.LOGIN_EVENT, { isComplete: false }, "failed to setup user");
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
161
|
+
0 && (module.exports = {
|
|
162
|
+
LoginFlowService
|
|
163
|
+
});
|