@getpara/core-sdk 3.0.0-alpha.1 → 3.1.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 +436 -86
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/cryptography/utils.js +5 -2
- package/dist/cjs/errors.js +10 -0
- package/dist/cjs/external/userManagementClient.js +21 -4
- package/dist/cjs/index.js +67 -1
- package/dist/cjs/services/AuthService.js +66 -47
- package/dist/cjs/services/LoginFlowService.js +30 -27
- package/dist/cjs/services/PollingService.js +100 -75
- package/dist/cjs/services/PortalUrlService.js +112 -19
- package/dist/cjs/services/PregenWalletService.js +125 -76
- package/dist/cjs/services/SessionManagementService.js +81 -10
- package/dist/cjs/services/SignupFlowService.js +52 -47
- package/dist/cjs/services/VerificationFlowService.js +13 -10
- package/dist/cjs/services/WalletService.js +51 -36
- package/dist/cjs/shares/enclave.js +44 -24
- package/dist/cjs/state/CoreStateManager.js +17 -5
- package/dist/cjs/state/actors/setupPara.js +4 -1
- package/dist/cjs/state/machines/walletStateMachine.js +22 -0
- package/dist/cjs/telemetry/BeaconSpanProcessor.js +99 -0
- package/dist/cjs/telemetry/config.js +15 -0
- package/dist/cjs/telemetry/init.js +193 -0
- package/dist/cjs/telemetry/modalSession.js +54 -0
- package/dist/cjs/telemetry/session.js +39 -0
- package/dist/cjs/telemetry/tracer.js +126 -0
- package/dist/cjs/telemetry/uxAction.js +30 -0
- package/dist/cjs/telemetry/uxBaggagePropagator.js +58 -0
- package/dist/cjs/telemetry/uxState.js +46 -0
- package/dist/cjs/telemetry/uxStateSpanProcessor.js +51 -0
- package/dist/cjs/utils/configEncoding.js +98 -0
- package/dist/cjs/utils/deprecation.js +13 -13
- package/dist/cjs/utils/index.js +11 -0
- package/dist/cjs/utils/partnerConfig.js +103 -0
- package/dist/cjs/utils/partnerConfigGating.js +83 -0
- package/dist/cjs/utils/stateErrorHelpers.js +6 -1
- package/dist/cjs/utils/url.js +10 -2
- package/dist/esm/ParaCore.js +441 -88
- package/dist/esm/constants.js +1 -1
- package/dist/esm/cryptography/utils.js +5 -2
- package/dist/esm/errors.js +9 -0
- package/dist/esm/external/userManagementClient.js +21 -4
- package/dist/esm/index.js +58 -4
- package/dist/esm/services/AuthService.js +66 -47
- package/dist/esm/services/LoginFlowService.js +30 -27
- package/dist/esm/services/PollingService.js +100 -75
- package/dist/esm/services/PortalUrlService.js +112 -19
- package/dist/esm/services/PregenWalletService.js +125 -76
- package/dist/esm/services/SessionManagementService.js +69 -11
- package/dist/esm/services/SignupFlowService.js +52 -47
- package/dist/esm/services/VerificationFlowService.js +13 -10
- package/dist/esm/services/WalletService.js +51 -36
- package/dist/esm/shares/enclave.js +44 -24
- package/dist/esm/state/CoreStateManager.js +17 -5
- package/dist/esm/state/actors/setupPara.js +4 -1
- package/dist/esm/state/machines/walletStateMachine.js +22 -0
- package/dist/esm/telemetry/BeaconSpanProcessor.js +74 -0
- package/dist/esm/telemetry/config.js +0 -0
- package/dist/esm/telemetry/init.js +130 -0
- package/dist/esm/telemetry/modalSession.js +29 -0
- package/dist/esm/telemetry/session.js +16 -0
- package/dist/esm/telemetry/tracer.js +84 -0
- package/dist/esm/telemetry/uxAction.js +8 -0
- package/dist/esm/telemetry/uxBaggagePropagator.js +35 -0
- package/dist/esm/telemetry/uxState.js +21 -0
- package/dist/esm/telemetry/uxStateSpanProcessor.js +28 -0
- package/dist/esm/utils/configEncoding.js +45 -0
- package/dist/esm/utils/deprecation.js +11 -12
- package/dist/esm/utils/index.js +6 -0
- package/dist/esm/utils/partnerConfig.js +67 -0
- package/dist/esm/utils/partnerConfigGating.js +61 -0
- package/dist/esm/utils/stateErrorHelpers.js +6 -1
- package/dist/esm/utils/url.js +10 -2
- package/dist/types/ParaCore.d.ts +101 -19
- package/dist/types/PlatformUtils.d.ts +1 -0
- package/dist/types/errors.d.ts +26 -0
- package/dist/types/external/userManagementClient.d.ts +2 -1
- package/dist/types/index.d.ts +15 -3
- package/dist/types/services/types/AuthServiceTypes.d.ts +10 -3
- package/dist/types/services/types/PortalUrlServiceTypes.d.ts +3 -3
- package/dist/types/services/types/WalletServiceTypes.d.ts +4 -0
- package/dist/types/state/actors/setupPara.d.ts +18 -0
- package/dist/types/state/machines/authStateMachine.d.ts +1 -1
- package/dist/types/state/machines/coreStateMachine.d.ts +30 -6
- package/dist/types/state/machines/walletStateMachine.d.ts +4 -0
- package/dist/types/state/types/core.d.ts +7 -1
- package/dist/types/telemetry/BeaconSpanProcessor.d.ts +10 -0
- package/dist/types/telemetry/config.d.ts +4 -0
- package/dist/types/telemetry/init.d.ts +17 -0
- package/dist/types/telemetry/modalSession.d.ts +5 -0
- package/dist/types/telemetry/session.d.ts +2 -0
- package/dist/types/telemetry/tracer.d.ts +10 -0
- package/dist/types/telemetry/uxAction.d.ts +3 -0
- package/dist/types/telemetry/uxBaggagePropagator.d.ts +7 -0
- package/dist/types/telemetry/uxState.d.ts +8 -0
- package/dist/types/telemetry/uxStateSpanProcessor.d.ts +9 -0
- package/dist/types/types/config.d.ts +15 -3
- package/dist/types/types/coreApi.d.ts +7 -9
- package/dist/types/types/serviceInterfaces.d.ts +5 -3
- package/dist/types/types/util.d.ts +2 -15
- package/dist/types/utils/configEncoding.d.ts +51 -0
- package/dist/types/utils/deprecation.d.ts +3 -1
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/partnerConfig.d.ts +28 -0
- package/dist/types/utils/partnerConfigGating.d.ts +48 -0
- package/dist/types/utils/url.d.ts +3 -2
- package/package.json +15 -4
|
@@ -0,0 +1,103 @@
|
|
|
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 partnerConfig_exports = {};
|
|
33
|
+
__export(partnerConfig_exports, {
|
|
34
|
+
DEFAULT_PARTNER_APP_CONFIG: () => DEFAULT_PARTNER_APP_CONFIG,
|
|
35
|
+
mergePartnerAppConfig: () => import_user_management_client.mergePartnerAppConfig,
|
|
36
|
+
partnerToAppConfigLayer: () => partnerToAppConfigLayer
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(partnerConfig_exports);
|
|
39
|
+
var import_user_management_client = require("@getpara/user-management-client");
|
|
40
|
+
const DEFAULT_PARTNER_APP_CONFIG = {};
|
|
41
|
+
function partnerToAppConfigLayer(partner) {
|
|
42
|
+
var _a;
|
|
43
|
+
const layer = {};
|
|
44
|
+
const themeConfig = (_a = partner.themeConfig) != null ? _a : synthesizeLegacyTheme(partner);
|
|
45
|
+
if (themeConfig) layer.themeConfig = themeConfig;
|
|
46
|
+
const authConfig = synthesizeAuthConfig(partner);
|
|
47
|
+
if (authConfig) layer.authConfig = authConfig;
|
|
48
|
+
const modalConfig = synthesizeModalConfig(partner);
|
|
49
|
+
if (modalConfig) layer.modalConfig = modalConfig;
|
|
50
|
+
if (partner.partnerLinks) layer.partnerLinks = partner.partnerLinks;
|
|
51
|
+
if (partner.externalWalletConfig) layer.externalWalletConfig = partner.externalWalletConfig;
|
|
52
|
+
if (partner.farcasterConfig) layer.farcasterConfig = partner.farcasterConfig;
|
|
53
|
+
if (partner.rpcUrl) layer.rpcUrl = partner.rpcUrl;
|
|
54
|
+
if (partner.displayName) layer.appName = partner.displayName;
|
|
55
|
+
if (partner.supportedWalletTypes) layer.supportedWalletTypes = partner.supportedWalletTypes;
|
|
56
|
+
if (partner.supportedAccountLinks) layer.supportedAccountLinks = partner.supportedAccountLinks;
|
|
57
|
+
if (partner.balancesConfig) layer.balancesConfig = partner.balancesConfig;
|
|
58
|
+
return layer;
|
|
59
|
+
}
|
|
60
|
+
function synthesizeAuthConfig(partner) {
|
|
61
|
+
const result = {};
|
|
62
|
+
const stored = partner.authConfig;
|
|
63
|
+
if (stored) {
|
|
64
|
+
if (stored.oAuthMethods != null) result.oAuthMethods = stored.oAuthMethods;
|
|
65
|
+
if (stored.disableEmailLogin != null) result.disableEmailLogin = stored.disableEmailLogin;
|
|
66
|
+
if (stored.disablePhoneLogin != null) result.disablePhoneLogin = stored.disablePhoneLogin;
|
|
67
|
+
if (stored.twoFactorAuthEnabled != null) result.twoFactorAuthEnabled = stored.twoFactorAuthEnabled;
|
|
68
|
+
if (stored.isGuestModeEnabled != null) result.isGuestModeEnabled = stored.isGuestModeEnabled;
|
|
69
|
+
if (stored.supportedAuthMethods != null) result.supportedAuthMethods = stored.supportedAuthMethods;
|
|
70
|
+
}
|
|
71
|
+
if (result.supportedAuthMethods === void 0) {
|
|
72
|
+
const legacy = partner.supportedAuthMethods;
|
|
73
|
+
const isMeaningful = legacy && !(legacy.length === 1 && legacy[0] === import_user_management_client.AuthMethod.PASSKEY);
|
|
74
|
+
if (isMeaningful) {
|
|
75
|
+
result.supportedAuthMethods = legacy;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
79
|
+
}
|
|
80
|
+
function synthesizeModalConfig(partner) {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
const stored = (_a = partner.modalConfig) != null ? _a : void 0;
|
|
83
|
+
const logo = (_b = partner.logoUrl) != null ? _b : void 0;
|
|
84
|
+
if (!stored && logo === void 0) return void 0;
|
|
85
|
+
return __spreadValues(__spreadValues({}, stored != null ? stored : {}), logo !== void 0 && { logo });
|
|
86
|
+
}
|
|
87
|
+
function synthesizeLegacyTheme(partner) {
|
|
88
|
+
const hasActiveThemeData = partner.backgroundColor || partner.foregroundColor || partner.accentColor || partner.font || partner.themeMode === "DARK";
|
|
89
|
+
if (!hasActiveThemeData) return void 0;
|
|
90
|
+
const theme = {};
|
|
91
|
+
if (partner.backgroundColor) theme.backgroundColor = partner.backgroundColor;
|
|
92
|
+
if (partner.foregroundColor) theme.foregroundColor = partner.foregroundColor;
|
|
93
|
+
if (partner.accentColor) theme.accentColor = partner.accentColor;
|
|
94
|
+
if (partner.font) theme.font = partner.font;
|
|
95
|
+
if (partner.themeMode === "DARK") theme.mode = "dark";
|
|
96
|
+
return theme;
|
|
97
|
+
}
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
DEFAULT_PARTNER_APP_CONFIG,
|
|
101
|
+
mergePartnerAppConfig,
|
|
102
|
+
partnerToAppConfigLayer
|
|
103
|
+
});
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var partnerConfigGating_exports = {};
|
|
19
|
+
__export(partnerConfigGating_exports, {
|
|
20
|
+
assertConfigAllowed: () => assertConfigAllowed
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(partnerConfigGating_exports);
|
|
23
|
+
var import_errors = require("../errors.js");
|
|
24
|
+
function assertConfigAllowed(config, check) {
|
|
25
|
+
var _a, _b, _c, _d, _e;
|
|
26
|
+
switch (check.kind) {
|
|
27
|
+
case "email": {
|
|
28
|
+
if ((_a = config.authConfig) == null ? void 0 : _a.disableEmailLogin) {
|
|
29
|
+
throw new import_errors.PartnerConfigError(
|
|
30
|
+
"EMAIL_LOGIN_DISABLED",
|
|
31
|
+
"Email login is disabled for this partner. Update partner.authConfig.disableEmailLogin in the developer portal to enable it."
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
case "phone": {
|
|
37
|
+
if ((_b = config.authConfig) == null ? void 0 : _b.disablePhoneLogin) {
|
|
38
|
+
throw new import_errors.PartnerConfigError(
|
|
39
|
+
"PHONE_LOGIN_DISABLED",
|
|
40
|
+
"Phone login is disabled for this partner. Update partner.authConfig.disablePhoneLogin in the developer portal to enable it."
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
case "oauth": {
|
|
46
|
+
const allowed = (_c = config.authConfig) == null ? void 0 : _c.oAuthMethods;
|
|
47
|
+
if (allowed !== void 0 && !allowed.includes(check.method)) {
|
|
48
|
+
throw new import_errors.PartnerConfigError(
|
|
49
|
+
"OAUTH_METHOD_NOT_ALLOWED",
|
|
50
|
+
`OAuth method "${check.method}" is not in the partner's allowlist. Allowed: ${allowed.length === 0 ? "(none)" : allowed.join(", ")}.`,
|
|
51
|
+
check.method
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
case "2fa": {
|
|
57
|
+
if (((_d = config.authConfig) == null ? void 0 : _d.twoFactorAuthEnabled) === false) {
|
|
58
|
+
throw new import_errors.PartnerConfigError(
|
|
59
|
+
"TWO_FACTOR_DISABLED",
|
|
60
|
+
"2FA is disabled for this partner. Update partner.authConfig.twoFactorAuthEnabled in the developer portal to enable it."
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
case "guest": {
|
|
66
|
+
if (((_e = config.authConfig) == null ? void 0 : _e.isGuestModeEnabled) === false) {
|
|
67
|
+
throw new import_errors.PartnerConfigError(
|
|
68
|
+
"GUEST_MODE_DISABLED",
|
|
69
|
+
"Guest mode is disabled for this partner. Update partner.authConfig.isGuestModeEnabled in the developer portal to enable it."
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
default: {
|
|
75
|
+
const _exhaustive = check;
|
|
76
|
+
throw new Error(`assertConfigAllowed: unhandled ConfigCheck kind ${JSON.stringify(_exhaustive)}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
+
0 && (module.exports = {
|
|
82
|
+
assertConfigAllowed
|
|
83
|
+
});
|
|
@@ -45,7 +45,12 @@ function formatStateError(error, defaultMessage) {
|
|
|
45
45
|
return new Error(error);
|
|
46
46
|
}
|
|
47
47
|
if (error && typeof error === "object" && "message" in error) {
|
|
48
|
-
|
|
48
|
+
const src = error;
|
|
49
|
+
const normalized = Object.assign(new Error(String(src.message)), {});
|
|
50
|
+
if ("code" in src) normalized.code = src.code;
|
|
51
|
+
if ("status" in src) normalized.status = src.status;
|
|
52
|
+
if ("data" in src) normalized.data = src.data;
|
|
53
|
+
return normalized;
|
|
49
54
|
}
|
|
50
55
|
if (error && typeof error === "object" && "error" in error) {
|
|
51
56
|
return formatStateError(error.error, defaultMessage);
|
package/dist/cjs/utils/url.js
CHANGED
|
@@ -47,6 +47,10 @@ __export(url_exports, {
|
|
|
47
47
|
module.exports = __toCommonJS(url_exports);
|
|
48
48
|
var import_transmissionUtils = require("../transmission/transmissionUtils.js");
|
|
49
49
|
var import_types = require("../types/index.js");
|
|
50
|
+
function getGlobalPortalUrlOverride() {
|
|
51
|
+
const override = typeof globalThis !== "undefined" ? globalThis.__PARA_PORTAL_URL_OVERRIDE__ : void 0;
|
|
52
|
+
return typeof override === "string" && override ? override : void 0;
|
|
53
|
+
}
|
|
50
54
|
function getPortalDomain(env, isE2E, isLegacy) {
|
|
51
55
|
if (isE2E) {
|
|
52
56
|
return `localhost`;
|
|
@@ -65,7 +69,11 @@ function getPortalDomain(env, isE2E, isLegacy) {
|
|
|
65
69
|
throw new Error(`env: ${env} not supported`);
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
|
-
function getPortalBaseURL({ env, isE2E }, useLocalIp, isForWasm, isLegacy) {
|
|
72
|
+
function getPortalBaseURL({ env, isE2E, portalUrlOverride }, useLocalIp, isForWasm, isLegacy) {
|
|
73
|
+
const resolvedPortalUrlOverride = portalUrlOverride != null ? portalUrlOverride : getGlobalPortalUrlOverride();
|
|
74
|
+
if (resolvedPortalUrlOverride && !isForWasm) {
|
|
75
|
+
return new URL(resolvedPortalUrlOverride).origin;
|
|
76
|
+
}
|
|
69
77
|
if (isE2E) {
|
|
70
78
|
if (isForWasm) {
|
|
71
79
|
return `https://app.sandbox.getpara.com`;
|
|
@@ -88,7 +96,7 @@ function getParaConnectDomain(env) {
|
|
|
88
96
|
case import_types.Environment.SANDBOX:
|
|
89
97
|
return "connect.sandbox.getpara.com";
|
|
90
98
|
case import_types.Environment.BETA:
|
|
91
|
-
return "connect.
|
|
99
|
+
return "connect.getpara.com";
|
|
92
100
|
case import_types.Environment.PROD:
|
|
93
101
|
return "connect.getpara.com";
|
|
94
102
|
default:
|