@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.
Files changed (106) hide show
  1. package/dist/cjs/ParaCore.js +436 -86
  2. package/dist/cjs/constants.js +1 -1
  3. package/dist/cjs/cryptography/utils.js +5 -2
  4. package/dist/cjs/errors.js +10 -0
  5. package/dist/cjs/external/userManagementClient.js +21 -4
  6. package/dist/cjs/index.js +67 -1
  7. package/dist/cjs/services/AuthService.js +66 -47
  8. package/dist/cjs/services/LoginFlowService.js +30 -27
  9. package/dist/cjs/services/PollingService.js +100 -75
  10. package/dist/cjs/services/PortalUrlService.js +112 -19
  11. package/dist/cjs/services/PregenWalletService.js +125 -76
  12. package/dist/cjs/services/SessionManagementService.js +81 -10
  13. package/dist/cjs/services/SignupFlowService.js +52 -47
  14. package/dist/cjs/services/VerificationFlowService.js +13 -10
  15. package/dist/cjs/services/WalletService.js +51 -36
  16. package/dist/cjs/shares/enclave.js +44 -24
  17. package/dist/cjs/state/CoreStateManager.js +17 -5
  18. package/dist/cjs/state/actors/setupPara.js +4 -1
  19. package/dist/cjs/state/machines/walletStateMachine.js +22 -0
  20. package/dist/cjs/telemetry/BeaconSpanProcessor.js +99 -0
  21. package/dist/cjs/telemetry/config.js +15 -0
  22. package/dist/cjs/telemetry/init.js +193 -0
  23. package/dist/cjs/telemetry/modalSession.js +54 -0
  24. package/dist/cjs/telemetry/session.js +39 -0
  25. package/dist/cjs/telemetry/tracer.js +126 -0
  26. package/dist/cjs/telemetry/uxAction.js +30 -0
  27. package/dist/cjs/telemetry/uxBaggagePropagator.js +58 -0
  28. package/dist/cjs/telemetry/uxState.js +46 -0
  29. package/dist/cjs/telemetry/uxStateSpanProcessor.js +51 -0
  30. package/dist/cjs/utils/configEncoding.js +98 -0
  31. package/dist/cjs/utils/deprecation.js +13 -13
  32. package/dist/cjs/utils/index.js +11 -0
  33. package/dist/cjs/utils/partnerConfig.js +103 -0
  34. package/dist/cjs/utils/partnerConfigGating.js +83 -0
  35. package/dist/cjs/utils/stateErrorHelpers.js +6 -1
  36. package/dist/cjs/utils/url.js +10 -2
  37. package/dist/esm/ParaCore.js +441 -88
  38. package/dist/esm/constants.js +1 -1
  39. package/dist/esm/cryptography/utils.js +5 -2
  40. package/dist/esm/errors.js +9 -0
  41. package/dist/esm/external/userManagementClient.js +21 -4
  42. package/dist/esm/index.js +58 -4
  43. package/dist/esm/services/AuthService.js +66 -47
  44. package/dist/esm/services/LoginFlowService.js +30 -27
  45. package/dist/esm/services/PollingService.js +100 -75
  46. package/dist/esm/services/PortalUrlService.js +112 -19
  47. package/dist/esm/services/PregenWalletService.js +125 -76
  48. package/dist/esm/services/SessionManagementService.js +69 -11
  49. package/dist/esm/services/SignupFlowService.js +52 -47
  50. package/dist/esm/services/VerificationFlowService.js +13 -10
  51. package/dist/esm/services/WalletService.js +51 -36
  52. package/dist/esm/shares/enclave.js +44 -24
  53. package/dist/esm/state/CoreStateManager.js +17 -5
  54. package/dist/esm/state/actors/setupPara.js +4 -1
  55. package/dist/esm/state/machines/walletStateMachine.js +22 -0
  56. package/dist/esm/telemetry/BeaconSpanProcessor.js +74 -0
  57. package/dist/esm/telemetry/config.js +0 -0
  58. package/dist/esm/telemetry/init.js +130 -0
  59. package/dist/esm/telemetry/modalSession.js +29 -0
  60. package/dist/esm/telemetry/session.js +16 -0
  61. package/dist/esm/telemetry/tracer.js +84 -0
  62. package/dist/esm/telemetry/uxAction.js +8 -0
  63. package/dist/esm/telemetry/uxBaggagePropagator.js +35 -0
  64. package/dist/esm/telemetry/uxState.js +21 -0
  65. package/dist/esm/telemetry/uxStateSpanProcessor.js +28 -0
  66. package/dist/esm/utils/configEncoding.js +45 -0
  67. package/dist/esm/utils/deprecation.js +11 -12
  68. package/dist/esm/utils/index.js +6 -0
  69. package/dist/esm/utils/partnerConfig.js +67 -0
  70. package/dist/esm/utils/partnerConfigGating.js +61 -0
  71. package/dist/esm/utils/stateErrorHelpers.js +6 -1
  72. package/dist/esm/utils/url.js +10 -2
  73. package/dist/types/ParaCore.d.ts +101 -19
  74. package/dist/types/PlatformUtils.d.ts +1 -0
  75. package/dist/types/errors.d.ts +26 -0
  76. package/dist/types/external/userManagementClient.d.ts +2 -1
  77. package/dist/types/index.d.ts +15 -3
  78. package/dist/types/services/types/AuthServiceTypes.d.ts +10 -3
  79. package/dist/types/services/types/PortalUrlServiceTypes.d.ts +3 -3
  80. package/dist/types/services/types/WalletServiceTypes.d.ts +4 -0
  81. package/dist/types/state/actors/setupPara.d.ts +18 -0
  82. package/dist/types/state/machines/authStateMachine.d.ts +1 -1
  83. package/dist/types/state/machines/coreStateMachine.d.ts +30 -6
  84. package/dist/types/state/machines/walletStateMachine.d.ts +4 -0
  85. package/dist/types/state/types/core.d.ts +7 -1
  86. package/dist/types/telemetry/BeaconSpanProcessor.d.ts +10 -0
  87. package/dist/types/telemetry/config.d.ts +4 -0
  88. package/dist/types/telemetry/init.d.ts +17 -0
  89. package/dist/types/telemetry/modalSession.d.ts +5 -0
  90. package/dist/types/telemetry/session.d.ts +2 -0
  91. package/dist/types/telemetry/tracer.d.ts +10 -0
  92. package/dist/types/telemetry/uxAction.d.ts +3 -0
  93. package/dist/types/telemetry/uxBaggagePropagator.d.ts +7 -0
  94. package/dist/types/telemetry/uxState.d.ts +8 -0
  95. package/dist/types/telemetry/uxStateSpanProcessor.d.ts +9 -0
  96. package/dist/types/types/config.d.ts +15 -3
  97. package/dist/types/types/coreApi.d.ts +7 -9
  98. package/dist/types/types/serviceInterfaces.d.ts +5 -3
  99. package/dist/types/types/util.d.ts +2 -15
  100. package/dist/types/utils/configEncoding.d.ts +51 -0
  101. package/dist/types/utils/deprecation.d.ts +3 -1
  102. package/dist/types/utils/index.d.ts +2 -0
  103. package/dist/types/utils/partnerConfig.d.ts +28 -0
  104. package/dist/types/utils/partnerConfigGating.d.ts +48 -0
  105. package/dist/types/utils/url.d.ts +3 -2
  106. 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
- return new Error(String(error.message));
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);
@@ -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.beta.getpara.com";
99
+ return "connect.getpara.com";
92
100
  case import_types.Environment.PROD:
93
101
  return "connect.getpara.com";
94
102
  default: