@mission_sciences/provider-sdk 0.2.0 → 0.3.0-dev.31ea3d4
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/README.md +1 -40
- package/dist/adapters/react/index.d.ts +3 -0
- package/dist/adapters/react/index.d.ts.map +1 -0
- package/dist/adapters/react/index.js +75 -0
- package/dist/adapters/react/index.js.map +1 -0
- package/dist/adapters/react/useMarketplaceSession.d.ts +30 -0
- package/dist/adapters/react/useMarketplaceSession.d.ts.map +1 -0
- package/dist/adapters/vue/index.d.ts +3 -0
- package/dist/adapters/vue/index.d.ts.map +1 -0
- package/dist/adapters/vue/index.js +56 -0
- package/dist/adapters/vue/index.js.map +1 -0
- package/dist/adapters/vue/useMarketplaceSession.d.ts +76 -0
- package/dist/adapters/vue/useMarketplaceSession.d.ts.map +1 -0
- package/dist/core/HeartbeatManager.d.ts +43 -0
- package/dist/core/HeartbeatManager.d.ts.map +1 -0
- package/dist/core/JWKSValidator.d.ts +26 -0
- package/dist/core/JWKSValidator.d.ts.map +1 -0
- package/dist/core/JWTParser.d.ts +46 -0
- package/dist/core/JWTParser.d.ts.map +1 -0
- package/dist/core/MarketplaceSDK.d.ts +111 -0
- package/dist/core/MarketplaceSDK.d.ts.map +1 -0
- package/dist/core/PurchaseStateManager.d.ts +28 -0
- package/dist/core/PurchaseStateManager.d.ts.map +1 -0
- package/dist/core/TabSyncManager.d.ts +49 -0
- package/dist/core/TabSyncManager.d.ts.map +1 -0
- package/dist/core/TimerManager.d.ts +55 -0
- package/dist/core/TimerManager.d.ts.map +1 -0
- package/dist/index.d.ts +21 -769
- package/dist/index.d.ts.map +1 -0
- package/dist/marketplace-sdk.es.js +69 -4
- package/dist/marketplace-sdk.es.js.map +1 -1
- package/dist/marketplace-sdk.umd.js +1 -1
- package/dist/marketplace-sdk.umd.js.map +1 -1
- package/dist/styles/theme.d.ts +89 -0
- package/dist/styles/theme.d.ts.map +1 -0
- package/dist/types/index.d.ts +254 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/ui/SessionHeader.d.ts +46 -0
- package/dist/ui/SessionHeader.d.ts.map +1 -0
- package/dist/ui/WarningModal.d.ts +39 -0
- package/dist/ui/WarningModal.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/url.d.ts +12 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/package.json +17 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvF,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGxF,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -20,6 +20,12 @@ class SDKError extends Error {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
var PurchaseState = /* @__PURE__ */ ((PurchaseState2) => {
|
|
24
|
+
PurchaseState2["AVAILABLE"] = "AVAILABLE";
|
|
25
|
+
PurchaseState2["PRIVY_REQUIRED"] = "PRIVY_REQUIRED";
|
|
26
|
+
PurchaseState2["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS";
|
|
27
|
+
return PurchaseState2;
|
|
28
|
+
})(PurchaseState || {});
|
|
23
29
|
class JWTParser {
|
|
24
30
|
/**
|
|
25
31
|
* Decode JWT payload without verification
|
|
@@ -2017,6 +2023,55 @@ class TabSyncManager {
|
|
|
2017
2023
|
this.logger.log("Tab sync destroyed");
|
|
2018
2024
|
}
|
|
2019
2025
|
}
|
|
2026
|
+
class PurchaseStateManager {
|
|
2027
|
+
constructor(config) {
|
|
2028
|
+
this.config = {
|
|
2029
|
+
timeout: 5e3,
|
|
2030
|
+
...config
|
|
2031
|
+
};
|
|
2032
|
+
}
|
|
2033
|
+
/**
|
|
2034
|
+
* Check purchase state for a specific item
|
|
2035
|
+
* Filters raw API response to expose only safe data to publisher apps
|
|
2036
|
+
*/
|
|
2037
|
+
async checkItemPurchaseState(itemId) {
|
|
2038
|
+
try {
|
|
2039
|
+
const response = await fetch(`${this.config.apiEndpoint}/items/${itemId}/purchase-state`, {
|
|
2040
|
+
method: "GET",
|
|
2041
|
+
headers: {
|
|
2042
|
+
"Content-Type": "application/json"
|
|
2043
|
+
},
|
|
2044
|
+
signal: AbortSignal.timeout(this.config.timeout)
|
|
2045
|
+
});
|
|
2046
|
+
if (!response.ok) {
|
|
2047
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}`);
|
|
2048
|
+
}
|
|
2049
|
+
const rawData = await response.json();
|
|
2050
|
+
return this.filterPurchaseStateResponse(rawData);
|
|
2051
|
+
} catch (error) {
|
|
2052
|
+
if (error instanceof Error) {
|
|
2053
|
+
throw error;
|
|
2054
|
+
}
|
|
2055
|
+
throw new Error("Unknown error occurred while checking purchase state");
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
/**
|
|
2059
|
+
* Filters raw API response to expose only safe data to publisher apps
|
|
2060
|
+
* CRITICAL: Raw privyEligibility map must NEVER be exposed to apps
|
|
2061
|
+
*/
|
|
2062
|
+
filterPurchaseStateResponse(rawResponse) {
|
|
2063
|
+
const filteredResponse = {
|
|
2064
|
+
state: rawResponse.state
|
|
2065
|
+
};
|
|
2066
|
+
if (rawResponse.state === PurchaseState.PRIVY_REQUIRED && rawResponse.privyEligibility) {
|
|
2067
|
+
const requiredLevels = Object.values(rawResponse.privyEligibility).filter((details) => details.requiresUpgrade).map((details) => details.requiredLevel);
|
|
2068
|
+
if (requiredLevels.length > 0) {
|
|
2069
|
+
filteredResponse.requiredLevel = Math.max(...requiredLevels);
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
return filteredResponse;
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2020
2075
|
const lightTheme = {
|
|
2021
2076
|
colors: {
|
|
2022
2077
|
// Background
|
|
@@ -2514,16 +2569,17 @@ class MarketplaceSDK {
|
|
|
2514
2569
|
this.jwtToken = null;
|
|
2515
2570
|
this.endReason = "manual";
|
|
2516
2571
|
this.config = {
|
|
2517
|
-
jwksUri: config.jwksUri || "https://api.generalwisdom.com/.well-known/jwks.json",
|
|
2572
|
+
jwksUri: config.jwksUri || "https://api.platform.generalwisdom.com/.well-known/jwks.json",
|
|
2518
2573
|
jwtParamName: config.jwtParamName || "gwSession",
|
|
2519
|
-
apiEndpoint: config.apiEndpoint || "
|
|
2574
|
+
apiEndpoint: config.apiEndpoint || "https://api.platform.generalwisdom.com",
|
|
2575
|
+
jwtIssuer: config.jwtIssuer || "generalwisdom.com",
|
|
2520
2576
|
debug: config.debug ?? false,
|
|
2521
2577
|
autoStart: config.autoStart ?? true,
|
|
2522
2578
|
warningThresholdSeconds: config.warningThresholdSeconds ?? 300,
|
|
2523
2579
|
customStyles: config.customStyles ?? {},
|
|
2524
2580
|
themeMode: config.themeMode ?? "light",
|
|
2525
2581
|
applicationId: config.applicationId ?? "",
|
|
2526
|
-
marketplaceUrl: config.marketplaceUrl ?? "https://
|
|
2582
|
+
marketplaceUrl: config.marketplaceUrl ?? "https://platform.generalwisdom.com/",
|
|
2527
2583
|
// Phase 2 options
|
|
2528
2584
|
enableHeartbeat: config.enableHeartbeat ?? false,
|
|
2529
2585
|
heartbeatIntervalSeconds: config.heartbeatIntervalSeconds ?? 30,
|
|
@@ -2536,6 +2592,9 @@ class MarketplaceSDK {
|
|
|
2536
2592
|
};
|
|
2537
2593
|
this.validator = new JWKSValidator(this.config.jwksUri, this.config.debug);
|
|
2538
2594
|
this.logger = new Logger(this.config.debug, "[MarketplaceSDK]");
|
|
2595
|
+
this.purchaseStateManager = new PurchaseStateManager({
|
|
2596
|
+
apiEndpoint: this.config.apiEndpoint
|
|
2597
|
+
});
|
|
2539
2598
|
this.logger.info("SDK initialized with config:", {
|
|
2540
2599
|
jwksUri: this.config.jwksUri,
|
|
2541
2600
|
jwtParamName: this.config.jwtParamName,
|
|
@@ -2624,7 +2683,7 @@ class MarketplaceSDK {
|
|
|
2624
2683
|
this.logger.log("Using JWKS validation");
|
|
2625
2684
|
verifiedClaims = await this.validator.verify(
|
|
2626
2685
|
this.jwtToken,
|
|
2627
|
-
|
|
2686
|
+
this.config.jwtIssuer,
|
|
2628
2687
|
this.config.applicationId || void 0
|
|
2629
2688
|
);
|
|
2630
2689
|
}
|
|
@@ -3045,6 +3104,12 @@ class MarketplaceSDK {
|
|
|
3045
3104
|
isTimerRunning() {
|
|
3046
3105
|
return this.timer?.isRunning() ?? false;
|
|
3047
3106
|
}
|
|
3107
|
+
/**
|
|
3108
|
+
* Get purchase state manager for item purchase state checking
|
|
3109
|
+
*/
|
|
3110
|
+
getPurchaseStateManager() {
|
|
3111
|
+
return this.purchaseStateManager;
|
|
3112
|
+
}
|
|
3048
3113
|
/**
|
|
3049
3114
|
* Cleanup and destroy SDK instance
|
|
3050
3115
|
*/
|