@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,28 @@
|
|
|
1
|
+
import { mergePartnerAppConfig } from '@getpara/user-management-client';
|
|
2
|
+
import type { PartnerAppConfig, PartnerEntity } from '@getpara/user-management-client';
|
|
3
|
+
export { mergePartnerAppConfig };
|
|
4
|
+
/**
|
|
5
|
+
* Base defaults layer for `paraCore.config`. First argument to
|
|
6
|
+
* `mergePartnerAppConfig(defaults, partner, sdkOverrides)`.
|
|
7
|
+
*
|
|
8
|
+
* Empty today: there are no SDK-side config defaults. OAuth has no default
|
|
9
|
+
* allowlist — an unset `oAuthMethods` means "not configured", which the
|
|
10
|
+
* `assertConfigAllowed` gate treats as "allow any" (so the deprecated
|
|
11
|
+
* `oAuthMethods` prop keeps working) and the modal renders from the resolved
|
|
12
|
+
* config or the prop. Partners opt into an allowlist via the developer portal.
|
|
13
|
+
* Kept as a named const so the merge contract and any future defaults have a
|
|
14
|
+
* single home.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_PARTNER_APP_CONFIG: Partial<PartnerAppConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* Extract the app-config layer from a partner entity returned by GET /:partnerId.
|
|
19
|
+
*
|
|
20
|
+
* The server already merges defaults ⊕ organization ⊕ partner before returning,
|
|
21
|
+
* so the entity's JSONB fields are the canonical resolved values. This function
|
|
22
|
+
* shapes them into a `PartnerAppConfig` for downstream merging with SDK overrides.
|
|
23
|
+
*
|
|
24
|
+
* If the JSONB columns are absent but legacy color/social columns are populated,
|
|
25
|
+
* synthesize equivalents so callers see a consistent shape during the transition.
|
|
26
|
+
* Compatibility shim drops at the major release (Phase 7).
|
|
27
|
+
*/
|
|
28
|
+
export declare function partnerToAppConfigLayer(partner: PartnerEntity): Partial<PartnerAppConfig>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { PartnerAppConfig } from '@getpara/user-management-client';
|
|
2
|
+
/**
|
|
3
|
+
* Discriminated union describing a partner-config check the SDK wants to run
|
|
4
|
+
* before initiating an auth/wallet flow. `assertConfigAllowed` dispatches on
|
|
5
|
+
* `kind` and reads the relevant fields off the merged `PartnerAppConfig`.
|
|
6
|
+
*/
|
|
7
|
+
export type ConfigCheck = {
|
|
8
|
+
kind: 'email';
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'phone';
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'oauth';
|
|
13
|
+
method: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: '2fa';
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'guest';
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Throws a `PartnerConfigError` if `check` is disallowed by the resolved
|
|
21
|
+
* partner config.
|
|
22
|
+
*
|
|
23
|
+
* Wired in at the 9 SDK auth entry points (signUpOrLogIn,
|
|
24
|
+
* authenticateWithEmailOrPhone, authenticateWithOAuth, getOAuthUrl,
|
|
25
|
+
* verifyOAuth, setup2fa, verify2fa, enable2fa, createGuestWallets) so
|
|
26
|
+
* partner posture is enforced for direct SDK calls, not just the modal.
|
|
27
|
+
* resendVerificationCode is intentionally not gated — callers can only
|
|
28
|
+
* reach it after the initial auth gate has already fired.
|
|
29
|
+
*
|
|
30
|
+
* Pure helper: takes the merged config + check. No `ParaCore` reference,
|
|
31
|
+
* no I/O. Easy to unit-test.
|
|
32
|
+
*
|
|
33
|
+
* Unset means "not configured" — the gate stays permissive (legacy behavior,
|
|
34
|
+
* also what the deprecated `ParaModalProps` rely on, since those never reach
|
|
35
|
+
* the merged config). Enforcement only fires on an *explicit* partner choice:
|
|
36
|
+
* a `false` opt-in flag, a `true` disable flag, or a non-undefined OAuth
|
|
37
|
+
* allowlist. This keeps the migration non-breaking — restrictions take effect
|
|
38
|
+
* once a partner configures them in the developer portal, not before.
|
|
39
|
+
*
|
|
40
|
+
* Note: the merge is symmetric — SDK overrides can widen or narrow every
|
|
41
|
+
* auth-posture flag (`twoFactorAuthEnabled`, `isGuestModeEnabled`,
|
|
42
|
+
* `disableEmailLogin`, `disablePhoneLogin`), so an override may re-enable
|
|
43
|
+
* something the partner disabled. This gate runs on the post-merge config, so
|
|
44
|
+
* it reflects the override, not the raw partner record. A future partner-level
|
|
45
|
+
* "locked" flag (ecosystem lock primitive) would let a partner pin a value so
|
|
46
|
+
* the override is ignored; until then, overrides always win.
|
|
47
|
+
*/
|
|
48
|
+
export declare function assertConfigAllowed(config: PartnerAppConfig, check: ConfigCheck): void;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Ctx, Environment } from '../types/index.js';
|
|
2
2
|
export declare function getPortalDomain(env: Environment, isE2E?: boolean, isLegacy?: boolean): string;
|
|
3
|
-
export declare function getPortalBaseURL({ env, isE2E }: {
|
|
3
|
+
export declare function getPortalBaseURL({ env, isE2E, portalUrlOverride }: {
|
|
4
4
|
env: Environment;
|
|
5
5
|
isE2E?: boolean;
|
|
6
|
+
portalUrlOverride?: string;
|
|
6
7
|
}, useLocalIp?: boolean, isForWasm?: boolean, isLegacy?: boolean): string;
|
|
7
|
-
export declare function getParaConnectDomain(env: Environment): "localhost" | "connect.sandbox.getpara.com" | "connect.
|
|
8
|
+
export declare function getParaConnectDomain(env: Environment): "localhost" | "connect.sandbox.getpara.com" | "connect.getpara.com";
|
|
8
9
|
export declare function getParaConnectBaseUrl({ env }: {
|
|
9
10
|
env: Environment;
|
|
10
11
|
}, useLocalIp?: boolean): string;
|
package/package.json
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpara/core-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@celo/utils": "^8.0.2",
|
|
6
6
|
"@cosmjs/encoding": "^0.32.4",
|
|
7
7
|
"@ethereumjs/util": "^9.1.0",
|
|
8
|
-
"@getpara/user-management-client": "3.
|
|
8
|
+
"@getpara/user-management-client": "3.1.0",
|
|
9
9
|
"@noble/hashes": "^1.5.0",
|
|
10
|
+
"@opentelemetry/api": "^1.9.1",
|
|
11
|
+
"@opentelemetry/context-zone": "^2.7.1",
|
|
12
|
+
"@opentelemetry/core": "^2.7.0",
|
|
13
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.215.0",
|
|
14
|
+
"@opentelemetry/instrumentation": "^0.215.0",
|
|
15
|
+
"@opentelemetry/instrumentation-fetch": "^0.215.0",
|
|
16
|
+
"@opentelemetry/instrumentation-xml-http-request": "^0.216.0",
|
|
17
|
+
"@opentelemetry/otlp-transformer": "^0.215.0",
|
|
18
|
+
"@opentelemetry/resources": "^2.7.0",
|
|
19
|
+
"@opentelemetry/sdk-trace-base": "^2.7.0",
|
|
20
|
+
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
10
21
|
"axios": "^1.8.4",
|
|
11
22
|
"base64url": "^3.0.1",
|
|
12
23
|
"elliptic": "^6.6.1",
|
|
@@ -30,14 +41,14 @@
|
|
|
30
41
|
"dist",
|
|
31
42
|
"package.json"
|
|
32
43
|
],
|
|
33
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "e73f17cd7960fdfe62ff68a972b3461e47b21eb0",
|
|
34
45
|
"main": "dist/cjs/index.js",
|
|
35
46
|
"module": "dist/esm/index.js",
|
|
36
47
|
"scripts": {
|
|
37
48
|
"build": "rm -rf dist && node ./scripts/build.mjs && yarn build:types",
|
|
38
49
|
"build:cjs": "rm -rf dist/cjs && tsc --module commonjs --outDir dist/cjs && printf '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
|
|
39
50
|
"build:esm": "rm -rf dist/esm && tsc --module es6 --outDir dist/esm && printf '{\"type\":\"module\",\"sideEffects\":false}' > dist/esm/package.json",
|
|
40
|
-
"build:types": "rm -rf dist/types && tsc --module
|
|
51
|
+
"build:types": "rm -rf dist/types && tsc --module es2020 --declarationDir dist/types --emitDeclarationOnly --declaration",
|
|
41
52
|
"old-build": "yarn build:cjs && yarn build:esm && yarn build:types; yarn post-build",
|
|
42
53
|
"post-build": "./scripts/set-version.sh",
|
|
43
54
|
"test": "vitest run --coverage"
|