@playcademy/sdk 0.22.1-beta.1 → 0.23.1-beta.1

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 CHANGED
@@ -22,7 +22,6 @@ The SDK is the interface between your game and the Playcademy platform. It provi
22
22
  | `@playcademy/sdk/internal` | Platform SDK — used by CLI, admin tools, and platform internals |
23
23
  | `@playcademy/sdk/server` | Server SDK — used by game backends (token verification, server-side activity submission) |
24
24
  | `@playcademy/sdk/types` | Type-only imports |
25
- | `@playcademy/sdk/test` | Test utilities |
26
25
 
27
26
  ## Installation
28
27
 
package/dist/index.js CHANGED
@@ -798,6 +798,9 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
798
798
  users: ["read:self", "write:self"],
799
799
  dev: ["read", "write"]
800
800
  };
801
+ // ../constants/src/embed.ts
802
+ var EMBED_PASS_TTL_MS = 60 * 1000;
803
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1000;
801
804
  // ../constants/src/platform.ts
802
805
  var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
803
806
  var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
@@ -3762,7 +3765,7 @@ async function request({
3762
3765
  return rawText && rawText.length > 0 ? rawText : undefined;
3763
3766
  }
3764
3767
  // src/version.ts
3765
- var SDK_VERSION = "0.22.1-beta.1";
3768
+ var SDK_VERSION = "0.23.1-beta.1";
3766
3769
 
3767
3770
  // src/clients/base.ts
3768
3771
  class PlaycademyBaseClient {
@@ -3116,6 +3116,41 @@ interface AssessmentAssetUploadResponse {
3116
3116
  height: number;
3117
3117
  }
3118
3118
 
3119
+ /** A game token for a launch. `POST /api/embed/launches/:launchId/token`. */
3120
+ interface EmbedGameToken {
3121
+ token: string
3122
+ /** Expiry in milliseconds since epoch. */
3123
+ exp: number
3124
+ /** The Hub's public tunnel URL, in local development only. */
3125
+ baseUrl?: string
3126
+ }
3127
+
3128
+ /**
3129
+ * Embed Types
3130
+ *
3131
+ * What the Hub's embed page receives from the Hub. The shapes a partner's
3132
+ * server sends and receives live in `@playcademy/embed-sdk`.
3133
+ *
3134
+ * @module types/embed
3135
+ */
3136
+
3137
+ /**
3138
+ * What a redeemed pass hands the embed page: the launch, its first game
3139
+ * token, and the student's context. Later tokens come through the partner.
3140
+ * `POST /api/embed/launches/redeem`.
3141
+ *
3142
+ * @typeParam TGame - The game record (the Hub's `FetchedGame`).
3143
+ */
3144
+ interface EmbedRedeemResponse<TGame = unknown> {
3145
+ launchId: string;
3146
+ token: EmbedGameToken;
3147
+ userId: string;
3148
+ game: TGame;
3149
+ timebackCourseId: string | null;
3150
+ localDay: LocalDayContext;
3151
+ timeback?: UserTimebackData;
3152
+ }
3153
+
3119
3154
  /**
3120
3155
  * Base error class for Cademy SDK specific errors.
3121
3156
  */
@@ -6999,6 +7034,16 @@ declare class PlaycademyInternalClient extends PlaycademyBaseClient {
6999
7034
  };
7000
7035
  };
7001
7036
  };
7037
+ /**
7038
+ * The Hub embed page's calls for a game a partner site launched.
7039
+ * - `redeem({ pass, parentOrigin })` - Trade the one-time pass for the launch and its first token
7040
+ */
7041
+ embedLaunches: {
7042
+ redeem: (input: {
7043
+ pass: string;
7044
+ parentOrigin: string;
7045
+ }) => Promise<EmbedRedeemResponse<FetchedGame>>;
7046
+ };
7002
7047
  /**
7003
7048
  * Game directory and game tokens.
7004
7049
  * - `list()` - Get all games
package/dist/internal.js CHANGED
@@ -798,6 +798,9 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
798
798
  users: ["read:self", "write:self"],
799
799
  dev: ["read", "write"]
800
800
  };
801
+ // ../constants/src/embed.ts
802
+ var EMBED_PASS_TTL_MS = 60 * 1000;
803
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1000;
801
804
  // ../constants/src/platform.ts
802
805
  var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
803
806
  var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
@@ -4052,6 +4055,14 @@ function createDevNamespace(client) {
4052
4055
  }
4053
4056
  };
4054
4057
  }
4058
+ // src/namespaces/platform/embed-launches.ts
4059
+ function createEmbedLaunchesNamespace(client) {
4060
+ return {
4061
+ redeem: (input) => client["request"]("/embed/launches/redeem", "POST", {
4062
+ body: input
4063
+ })
4064
+ };
4065
+ }
4055
4066
  // src/namespaces/platform/games.ts
4056
4067
  function createGamesNamespace(client) {
4057
4068
  const gamesListCache = createTTLCache({
@@ -4672,7 +4683,7 @@ async function request({
4672
4683
  return rawText && rawText.length > 0 ? rawText : undefined;
4673
4684
  }
4674
4685
  // src/version.ts
4675
- var SDK_VERSION = "0.22.1-beta.1";
4686
+ var SDK_VERSION = "0.23.1-beta.1";
4676
4687
 
4677
4688
  // src/clients/base.ts
4678
4689
  class PlaycademyBaseClient {
@@ -4858,6 +4869,7 @@ class PlaycademyInternalClient extends PlaycademyBaseClient {
4858
4869
  auth = createAuthNamespace(this);
4859
4870
  admin = createAdminNamespace(this);
4860
4871
  dev = createDevNamespace(this);
4872
+ embedLaunches = createEmbedLaunchesNamespace(this);
4861
4873
  games = createGamesNamespace(this);
4862
4874
  leaderboard = createLeaderboardNamespace(this);
4863
4875
  releases = createReleasesNamespace(this);
@@ -4,6 +4,9 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
4
4
  users: ["read:self", "write:self"],
5
5
  dev: ["read", "write"]
6
6
  };
7
+ // ../constants/src/embed.ts
8
+ var EMBED_PASS_TTL_MS = 60 * 1000;
9
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1000;
7
10
  // ../constants/src/platform.ts
8
11
  var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
9
12
  var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
@@ -358,7 +361,7 @@ function extractApiErrorInfo(error) {
358
361
  }
359
362
 
360
363
  // src/version.ts
361
- var SDK_VERSION = "0.22.1-beta.1";
364
+ var SDK_VERSION = "0.23.1-beta.1";
362
365
 
363
366
  // src/server/request.ts
364
367
  async function makeApiRequest(opts) {
package/dist/server.js CHANGED
@@ -200,6 +200,9 @@ var DEFAULT_PERSONAL_API_KEY_PERMISSIONS = {
200
200
  users: ["read:self", "write:self"],
201
201
  dev: ["read", "write"]
202
202
  };
203
+ // ../constants/src/embed.ts
204
+ var EMBED_PASS_TTL_MS = 60 * 1000;
205
+ var EMBED_LAUNCH_TTL_MS = 12 * 60 * 60 * 1000;
203
206
  // ../constants/src/platform.ts
204
207
  var PLAYCADEMY_BROWSER_TIME_ZONE_HEADER = "x-playcademy-browser-time-zone";
205
208
  var PLAYCADEMY_ASSESSMENT_ASSET_SHA256_HEADER = "x-playcademy-content-sha256";
@@ -554,7 +557,7 @@ function extractApiErrorInfo(error) {
554
557
  }
555
558
 
556
559
  // src/version.ts
557
- var SDK_VERSION = "0.22.1-beta.1";
560
+ var SDK_VERSION = "0.23.1-beta.1";
558
561
 
559
562
  // src/server/request.ts
560
563
  async function makeApiRequest(opts) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/sdk",
3
- "version": "0.22.1-beta.1",
3
+ "version": "0.23.1-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {