@playcademy/sdk 0.2.4 → 0.2.6
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/index.d.ts +1 -0
- package/dist/internal.d.ts +1 -4
- package/dist/internal.js +0 -4
- package/dist/server.js +24 -4
- package/dist/types.d.ts +0 -3
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
package/dist/internal.d.ts
CHANGED
|
@@ -4253,9 +4253,6 @@ interface PlayerProfile {
|
|
|
4253
4253
|
name: UserRow['name'];
|
|
4254
4254
|
image?: UserRow['image'];
|
|
4255
4255
|
role?: UserRow['role'];
|
|
4256
|
-
level?: number;
|
|
4257
|
-
experience?: number;
|
|
4258
|
-
experienceToNextLevel?: number;
|
|
4259
4256
|
characterCreated?: UserRow['characterCreated'];
|
|
4260
4257
|
hasTimebackAccount?: boolean;
|
|
4261
4258
|
}
|
|
@@ -4522,6 +4519,7 @@ interface ErrorResponseBody {
|
|
|
4522
4519
|
* ```
|
|
4523
4520
|
*/
|
|
4524
4521
|
declare class ApiError extends Error {
|
|
4522
|
+
/** HTTP status code */
|
|
4525
4523
|
readonly status: number;
|
|
4526
4524
|
/**
|
|
4527
4525
|
* API error code (e.g., "NOT_FOUND", "VALIDATION_FAILED").
|
|
@@ -7012,7 +7010,6 @@ declare class PlaycademyInternalClient extends PlaycademyBaseClient {
|
|
|
7012
7010
|
secrets: {
|
|
7013
7011
|
set: (slug: string, secrets: Record<string, string>) => Promise<string[]>;
|
|
7014
7012
|
list: (slug: string) => Promise<string[]>;
|
|
7015
|
-
get: (slug: string) => Promise<Record<string, string>>;
|
|
7016
7013
|
delete: (slug: string, key: string) => Promise<void>;
|
|
7017
7014
|
};
|
|
7018
7015
|
database: {
|
package/dist/internal.js
CHANGED
|
@@ -1785,10 +1785,6 @@ function createDevNamespace(client) {
|
|
|
1785
1785
|
const result = await client["request"](`/games/${slug}/secrets`, "GET");
|
|
1786
1786
|
return result.keys;
|
|
1787
1787
|
},
|
|
1788
|
-
get: async (slug) => {
|
|
1789
|
-
const result = await client["request"](`/games/${slug}/secrets/values`, "GET");
|
|
1790
|
-
return result.secrets;
|
|
1791
|
-
},
|
|
1792
1788
|
delete: async (slug, key) => {
|
|
1793
1789
|
await client["request"](`/games/${slug}/secrets/${key}`, "DELETE");
|
|
1794
1790
|
}
|
package/dist/server.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
// src/server/guards.ts
|
|
2
|
+
var VALID_GRADES = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
|
|
3
|
+
var VALID_SUBJECTS = [
|
|
4
|
+
"Reading",
|
|
5
|
+
"Language",
|
|
6
|
+
"Vocabulary",
|
|
7
|
+
"Social Studies",
|
|
8
|
+
"Writing",
|
|
9
|
+
"Science",
|
|
10
|
+
"FastMath",
|
|
11
|
+
"Math",
|
|
12
|
+
"None"
|
|
13
|
+
];
|
|
14
|
+
function isValidGrade(value) {
|
|
15
|
+
return typeof value === "number" && Number.isInteger(value) && VALID_GRADES.includes(value);
|
|
16
|
+
}
|
|
17
|
+
function isValidSubject(value) {
|
|
18
|
+
return typeof value === "string" && VALID_SUBJECTS.includes(value);
|
|
19
|
+
}
|
|
20
|
+
|
|
1
21
|
// src/server/namespaces/timeback.ts
|
|
2
22
|
function createTimebackNamespace(client) {
|
|
3
23
|
function enrichActivityData(data) {
|
|
@@ -8,11 +28,11 @@ function createTimebackNamespace(client) {
|
|
|
8
28
|
}
|
|
9
29
|
return {
|
|
10
30
|
endActivity: async (studentId, payload) => {
|
|
11
|
-
if (!payload.activityData.grade) {
|
|
12
|
-
throw new Error("activityData.grade
|
|
31
|
+
if (!isValidGrade(payload.activityData.grade)) {
|
|
32
|
+
throw new Error("activityData.grade must be a valid grade level (-1 to 13)");
|
|
13
33
|
}
|
|
14
|
-
if (!payload.activityData.subject) {
|
|
15
|
-
throw new Error("activityData.subject
|
|
34
|
+
if (!isValidSubject(payload.activityData.subject)) {
|
|
35
|
+
throw new Error("activityData.subject must be a valid subject");
|
|
16
36
|
}
|
|
17
37
|
const enrichedActivityData = enrichActivityData(payload.activityData);
|
|
18
38
|
return client["request"]("/api/timeback/end-activity", "POST", {
|
package/dist/types.d.ts
CHANGED
|
@@ -4130,9 +4130,6 @@ interface PlayerProfile {
|
|
|
4130
4130
|
name: UserRow['name'];
|
|
4131
4131
|
image?: UserRow['image'];
|
|
4132
4132
|
role?: UserRow['role'];
|
|
4133
|
-
level?: number;
|
|
4134
|
-
experience?: number;
|
|
4135
|
-
experienceToNextLevel?: number;
|
|
4136
4133
|
characterCreated?: UserRow['characterCreated'];
|
|
4137
4134
|
hasTimebackAccount?: boolean;
|
|
4138
4135
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playcademy/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"@playcademy/data": "0.0.1",
|
|
45
45
|
"@playcademy/logger": "0.0.1",
|
|
46
46
|
"@playcademy/types": "0.0.1",
|
|
47
|
-
"@playcademy/sandbox": "0.3.
|
|
47
|
+
"@playcademy/sandbox": "0.3.9",
|
|
48
48
|
"@playcademy/test": "0.0.1",
|
|
49
49
|
"@playcademy/timeback": "0.0.1",
|
|
50
50
|
"@playcademy/utils": "0.0.1",
|
|
51
51
|
"@types/bun": "latest",
|
|
52
|
-
"playcademy": "0.
|
|
52
|
+
"playcademy": "0.15.5",
|
|
53
53
|
"rollup": "^4.50.2",
|
|
54
54
|
"rollup-plugin-dts": "^6.2.3",
|
|
55
55
|
"typescript": "^5.7.2"
|