@playbasis-ai/qwikcard-sdk 2.3.5 → 2.3.7

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/CHANGELOG.md CHANGED
@@ -37,12 +37,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
37
37
  - Updated production handover guidance to use production APIM base path `/v1`.
38
38
  - Prepared new-tenant handover workflow for `qwik-prod` without requiring Expo.
39
39
 
40
- ## [2.3.3] - 2026-01-19
41
-
42
- ### Fixed
43
-
44
- - Updated `Currency` type and `usePoints` hook to use `coins` (matching API) instead of `qwik-coins`.
45
-
46
40
  ## [2.3.2] - 2026-01-17
47
41
 
48
42
  ### Changed
package/README.md CHANGED
@@ -22,10 +22,10 @@ npm install @playbasis-ai/qwikcard-sdk
22
22
 
23
23
  ### Peer Dependencies
24
24
 
25
- This SDK requires the following peer dependencies. Please ensure they are installed in your project with the specified versions:
25
+ You must install the following dependencies in your project:
26
26
 
27
27
  ```bash
28
- npm install react-native-linear-gradient@>=2.0.0 react-native-svg@>=12.0.0 react-native-webview@>=11.0.0
28
+ npm install react-native-linear-gradient react-native-svg react-native-webview
29
29
  ```
30
30
 
31
31
  ### Local Installation (if not published to npm)
@@ -45,12 +45,12 @@ npm install /absolute/path/to/playbasis-sdk
45
45
 
46
46
  #### 2. From a Tarball (.tgz or .zip)
47
47
 
48
- If you have a file like `playbasis-ai-qwikcard-sdk-2.3.4.tgz`, you can install directly:
48
+ If you have a file like `playbasis-qwikcard-sdk-1.0.0.zip` or `.tgz`, you can install directly:
49
49
 
50
50
  ```bash
51
- yarn add ./client-sdks/qwikcard-sdk-v1.3.0-pkg/playbasis-ai-qwikcard-sdk-2.3.4.tgz
51
+ yarn add ./client-sdks/qwikcard-sdk/playbasis-qwikcard-sdk-1.0.0.zip
52
52
  # or
53
- npm install ./client-sdks/qwikcard-sdk-v1.3.0-pkg/playbasis-ai-qwikcard-sdk-2.3.4.tgz
53
+ npm install ./client-sdks/qwikcard-sdk/playbasis-qwikcard-sdk-1.0.0.zip
54
54
  ```
55
55
 
56
56
  #### 3. npm/yarn link (for active development)
@@ -76,9 +76,9 @@ yarn link @playbasis-ai/qwikcard-sdk
76
76
  If the SDK is hosted in a private Git repo:
77
77
 
78
78
  ```bash
79
- yarn add git+https://github.com/Foremost-AI/playbasis-qwikcard-sdk.git
79
+ yarn add git+https://github.com/playbasis/playbasis-platform.git
80
80
  # or
81
- npm install git+https://github.com/Foremost-AI/playbasis-qwikcard-sdk.git
81
+ npm install git+https://github.com/playbasis/playbasis-platform.git
82
82
  ```
83
83
 
84
84
  ---
@@ -111,7 +111,7 @@ export default function RewardsAndGamificationScreen() {
111
111
  apiKey="YOUR_SUBSCRIPTION_KEY"
112
112
  tenantId="YOUR_TENANT_ID"
113
113
  playerId={currentUser.playbasisPlayerId}
114
- baseUrl="https://api.playbasis.com" // optional
114
+ baseUrl="https://apim-pb-staging.azure-api.net/playbasis/v1" // optional
115
115
  leaderboardId="YOUR_LEADERBOARD_ID" // optional
116
116
  />
117
117
  );
@@ -51,7 +51,7 @@ For the most professional "NPM experience" without public exposure, use **GitHub
51
51
  1. **Publish to GitHub**: Configure your `package.json` to point to the `@rzforemost` scope on GitHub.
52
52
  2. **Install via NPM**:
53
53
  ```bash
54
- npm install @foremost-ai/qwikcard-sdk
54
+ npm install @playbasis-ai/qwikcard-sdk
55
55
  ```
56
56
  _(Note: Requires a `.npmrc` file with a GitHub Personal Access Token)._
57
57
 
@@ -60,14 +60,14 @@ For the most professional "NPM experience" without public exposure, use **GitHub
60
60
  If your team prefers an "invocation" style, simply wrap the `QwikCardApp` in a single screen or a conditional overlay. This effectively "invokes" the entire template library in one line:
61
61
 
62
62
  ```tsx
63
- import { QwikCardApp } from '@foremost-ai/qwikcard-sdk';
63
+ import { QwikCardApp } from '@playbasis-ai/qwikcard-sdk';
64
64
 
65
65
  const MyScreen = () => (
66
66
  <QwikCardApp
67
67
  apiKey="YOUR_API_KEY"
68
68
  tenantId="YOUR_TENANT_ID"
69
69
  playerId="USER_123"
70
- baseUrl="https://api.playbasis.com" // optional
70
+ baseUrl="https://apim-pb-staging.azure-api.net/playbasis/v1" // optional
71
71
  leaderboardId="YOUR_LEADERBOARD_ID" // optional
72
72
  />
73
73
  );
@@ -33,8 +33,8 @@ function AppContent({ leaderboardId }) {
33
33
  const [player, balances, quests, allBadges, playerBadges, rewards] = await Promise.all([
34
34
  client.getPlayer(playerId),
35
35
  client.getBalances(playerId),
36
- client.getPlayerQuests(playerId),
37
- client.getBadges(),
36
+ client.getPlayerQuests(playerId).catch(() => []), // Gracefully handle if endpoint missing
37
+ client.getBadges().catch(() => []), // Gracefully handle if endpoint missing
38
38
  client.getPlayerBadges(playerId),
39
39
  client.getRewards().catch(() => []), // Gracefully handle if rewards endpoint doesn't exist
40
40
  ]);
@@ -56,7 +56,7 @@ export function usePoints() {
56
56
  }, [client, playerId]);
57
57
  // Helper getters for common currencies
58
58
  const xp = balances.find((b) => b.currency === 'xp')?.balance ?? 0;
59
- const qwikCoins = balances.find((b) => b.currency === 'coins')?.balance ?? 0;
59
+ const qwikCoins = balances.find((b) => b.currency === 'qwik-coins')?.balance ?? 0;
60
60
  return {
61
61
  balances,
62
62
  xp,
@@ -22,7 +22,7 @@ export interface PointBalance {
22
22
  balance: number;
23
23
  updatedAt: string;
24
24
  }
25
- export type Currency = 'xp' | 'coins';
25
+ export type Currency = 'xp' | 'qwik-coins';
26
26
  export interface Quest {
27
27
  id: string;
28
28
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playbasis-ai/qwikcard-sdk",
3
- "version": "2.3.5",
3
+ "version": "2.3.7",
4
4
  "description": "Playbasis SDK for QwikCard College Rewards - React Native gamification integration",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -83,4 +83,4 @@
83
83
  "publishConfig": {
84
84
  "registry": "https://registry.npmjs.org/"
85
85
  }
86
- }
86
+ }
@@ -49,8 +49,8 @@ function AppContent({ leaderboardId }: { leaderboardId?: string }) {
49
49
  const [player, balances, quests, allBadges, playerBadges, rewards] = await Promise.all([
50
50
  client.getPlayer(playerId),
51
51
  client.getBalances(playerId),
52
- client.getPlayerQuests(playerId),
53
- client.getBadges(),
52
+ client.getPlayerQuests(playerId).catch(() => []), // Gracefully handle if endpoint missing
53
+ client.getBadges().catch(() => []), // Gracefully handle if endpoint missing
54
54
  client.getPlayerBadges(playerId),
55
55
  client.getRewards().catch(() => []), // Gracefully handle if rewards endpoint doesn't exist
56
56
  ]);
@@ -60,19 +60,19 @@ function AppContent({ leaderboardId }: { leaderboardId?: string }) {
60
60
 
61
61
  const leaderboardEntries = leaderboardId
62
62
  ? await (async () => {
63
- try {
64
- const res = await client.getLeaderboard(leaderboardId, { limit: 50 });
65
- return res.entries.map((e) => ({
66
- userId: e.playerId,
67
- rank: e.rank,
68
- displayName: e.displayName,
69
- score: e.score,
70
- isCurrentUser: e.playerId === player.id,
71
- }));
72
- } catch {
73
- return [];
74
- }
75
- })()
63
+ try {
64
+ const res = await client.getLeaderboard(leaderboardId, { limit: 50 });
65
+ return res.entries.map((e) => ({
66
+ userId: e.playerId,
67
+ rank: e.rank,
68
+ displayName: e.displayName,
69
+ score: e.score,
70
+ isCurrentUser: e.playerId === player.id,
71
+ }));
72
+ } catch {
73
+ return [];
74
+ }
75
+ })()
76
76
  : [];
77
77
 
78
78
  return {
@@ -75,7 +75,7 @@ export function usePoints(): UsePointsReturn {
75
75
 
76
76
  // Helper getters for common currencies
77
77
  const xp = balances.find((b) => b.currency === 'xp')?.balance ?? 0;
78
- const qwikCoins = balances.find((b) => b.currency === 'coins')?.balance ?? 0;
78
+ const qwikCoins = balances.find((b) => b.currency === 'qwik-coins')?.balance ?? 0;
79
79
 
80
80
  return {
81
81
  balances,
@@ -34,7 +34,7 @@ export interface PointBalance {
34
34
  updatedAt: string;
35
35
  }
36
36
 
37
- export type Currency = 'xp' | 'coins';
37
+ export type Currency = 'xp' | 'qwik-coins';
38
38
 
39
39
  // ─────────────────────────────────────────────────────────────────────────────
40
40
  // Quests