@playcademy/sdk 0.23.0 → 0.24.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/README.md +0 -1
- package/dist/index.js +4 -1
- package/dist/internal.d.ts +45 -0
- package/dist/internal.js +13 -1
- package/dist/server/edge.js +4 -1
- package/dist/server.js +4 -1
- package/package.json +1 -1
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.
|
|
3768
|
+
var SDK_VERSION = "0.24.0";
|
|
3766
3769
|
|
|
3767
3770
|
// src/clients/base.ts
|
|
3768
3771
|
class PlaycademyBaseClient {
|
package/dist/internal.d.ts
CHANGED
|
@@ -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.
|
|
4686
|
+
var SDK_VERSION = "0.24.0";
|
|
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);
|
package/dist/server/edge.js
CHANGED
|
@@ -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.
|
|
364
|
+
var SDK_VERSION = "0.24.0";
|
|
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.
|
|
560
|
+
var SDK_VERSION = "0.24.0";
|
|
558
561
|
|
|
559
562
|
// src/server/request.ts
|
|
560
563
|
async function makeApiRequest(opts) {
|