playcademy 0.28.0 → 0.28.1-beta.2

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
@@ -264,6 +264,19 @@ Remove TimeBack integration (keeps game metadata).
264
264
  playcademy timeback cleanup
265
265
  ```
266
266
 
267
+ #### `timeback assessments import`
268
+
269
+ Import the ordered live assessment catalog and host-only QTI fixture data from the platform for
270
+ local game testing.
271
+
272
+ ```bash
273
+ playcademy timeback assessments import
274
+ playcademy timeback assessments import --env production
275
+ ```
276
+
277
+ Fixtures are written to `.playcademy/timeback/assessment-fixtures.json`. The local dev host serves
278
+ them through the normal game SDK assessment methods and resets local attempts when it restarts.
279
+
267
280
  ## Environment Variables
268
281
 
269
282
  - `CI` - Set to `1` or `true` to disable interactive prompts
package/dist/bin.js CHANGED
@@ -15,7 +15,8 @@ var CLI_DIRECTORIES = {
15
15
  WORKSPACE: WORKSPACE_NAME,
16
16
  DATABASE: join(WORKSPACE_NAME, "db"),
17
17
  KV: join(WORKSPACE_NAME, "kv"),
18
- BUCKET: join(WORKSPACE_NAME, "bucket")
18
+ BUCKET: join(WORKSPACE_NAME, "bucket"),
19
+ TIMEBACK: join(WORKSPACE_NAME, "timeback")
19
20
  };
20
21
  var PLAYCADEMY_HOME = join(homedir(), ".playcademy");
21
22
  var CLI_USER_DIRECTORIES = {
package/dist/bucket.js CHANGED
@@ -44,7 +44,7 @@ var GAME_API_ROUTES_DIRECTORY = join2(GAME_SERVER_ROOT_DIRECTORY, "api");
44
44
  // ../better-auth/package.json
45
45
  var package_default = {
46
46
  name: "@playcademy/better-auth",
47
- version: "0.0.20",
47
+ version: "0.0.21-beta.2",
48
48
  type: "module",
49
49
  exports: {
50
50
  "./server": {
@@ -138,7 +138,8 @@ var CLI_DIRECTORIES = {
138
138
  WORKSPACE: WORKSPACE_NAME,
139
139
  DATABASE: join5(WORKSPACE_NAME, "db"),
140
140
  KV: join5(WORKSPACE_NAME, "kv"),
141
- BUCKET: join5(WORKSPACE_NAME, "bucket")
141
+ BUCKET: join5(WORKSPACE_NAME, "bucket"),
142
+ TIMEBACK: join5(WORKSPACE_NAME, "timeback")
142
143
  };
143
144
  var PLAYCADEMY_HOME = join5(homedir(), ".playcademy");
144
145
  var CLI_USER_DIRECTORIES = {
package/dist/cli.js CHANGED
@@ -1207,7 +1207,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1207
1207
  // ../better-auth/package.json
1208
1208
  var package_default = {
1209
1209
  name: "@playcademy/better-auth",
1210
- version: "0.0.20",
1210
+ version: "0.0.21-beta.2",
1211
1211
  type: "module",
1212
1212
  exports: {
1213
1213
  "./server": {
@@ -1339,7 +1339,8 @@ var CLI_DIRECTORIES = {
1339
1339
  WORKSPACE: WORKSPACE_NAME,
1340
1340
  DATABASE: join6(WORKSPACE_NAME, "db"),
1341
1341
  KV: join6(WORKSPACE_NAME, "kv"),
1342
- BUCKET: join6(WORKSPACE_NAME, "bucket")
1342
+ BUCKET: join6(WORKSPACE_NAME, "bucket"),
1343
+ TIMEBACK: join6(WORKSPACE_NAME, "timeback")
1343
1344
  };
1344
1345
  var PLAYCADEMY_HOME = join6(homedir(), ".playcademy");
1345
1346
  var CLI_USER_DIRECTORIES = {
@@ -1372,6 +1373,18 @@ var CONFIG_FILE_NAMES = [
1372
1373
  ];
1373
1374
 
1374
1375
  // ../constants/src/timeback.ts
1376
+ var TIMEBACK_GRADES = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
1377
+ var TIMEBACK_SUBJECTS = [
1378
+ "Reading",
1379
+ "Language",
1380
+ "Vocabulary",
1381
+ "Social Studies",
1382
+ "Writing",
1383
+ "Science",
1384
+ "FastMath",
1385
+ "Math",
1386
+ "None"
1387
+ ];
1375
1388
  var TIMEBACK_ORG_NAME = "Playcademy Studios";
1376
1389
  var TIMEBACK_ORG_TYPE = "department";
1377
1390
  var TIMEBACK_COURSE_DEFAULTS = {
@@ -2048,17 +2061,6 @@ function processConfigVariables(config) {
2048
2061
  }
2049
2062
 
2050
2063
  // ../timeback/dist/constants.js
2051
- var TIMEBACK_SUBJECTS = [
2052
- "Math",
2053
- "FastMath",
2054
- "Science",
2055
- "Social Studies",
2056
- "Language",
2057
- "Reading",
2058
- "Vocabulary",
2059
- "Writing"
2060
- ];
2061
- var TIMEBACK_GRADE_LEVELS = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
2062
2064
  var TIMEBACK_GRADE_LEVEL_LABELS = {
2063
2065
  "-1": "pre-k",
2064
2066
  "0": "kindergarten",
@@ -3007,7 +3009,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
3007
3009
  import { join as join13 } from "node:path";
3008
3010
 
3009
3011
  // src/version.ts
3010
- var cliVersion = false ? "0.0.0-dev" : "0.28.0";
3012
+ var cliVersion = false ? "0.0.0-dev" : "0.28.1-beta.2";
3011
3013
 
3012
3014
  // src/lib/init/database.ts
3013
3015
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -3252,7 +3254,7 @@ async function promptForTimeBackIntegration(options) {
3252
3254
  }
3253
3255
  const grades = await checkbox({
3254
3256
  message: "Select grade levels:",
3255
- choices: TIMEBACK_GRADE_LEVELS.map((grade) => ({
3257
+ choices: TIMEBACK_GRADES.map((grade) => ({
3256
3258
  value: grade,
3257
3259
  name: TIMEBACK_GRADE_LEVEL_LABELS[grade.toString()]
3258
3260
  })),
@@ -277,8 +277,8 @@ declare const GODOT_EXECUTABLE_PATTERNS: {
277
277
  declare const CALLBACK_PORT = 6175;
278
278
  /** Path for the OAuth callback endpoint */
279
279
  declare const CALLBACK_PATH = "/callback";
280
- /** Timeout for SSO authentication in milliseconds (30 seconds) */
281
- declare const SSO_AUTH_TIMEOUT_MS = 30000;
280
+ /** Timeout for the whole browser SSO flow (login page + provider auth + MFA) */
281
+ declare const SSO_AUTH_TIMEOUT_MS = 90000;
282
282
 
283
283
  /**
284
284
  * Path constants for CLI directories and files
@@ -289,6 +289,7 @@ declare const CLI_DIRECTORIES: {
289
289
  readonly DATABASE: string;
290
290
  readonly KV: string;
291
291
  readonly BUCKET: string;
292
+ readonly TIMEBACK: string;
292
293
  };
293
294
  declare const CLI_USER_DIRECTORIES: {
294
295
  readonly CONFIG: string;
@@ -310,6 +311,7 @@ declare const CLI_FILES: {
310
311
  readonly AUTH_STORE: 'auth.json';
311
312
  readonly GAMES_STORE: 'games.json';
312
313
  readonly INITIAL_DATABASE: 'initial.sqlite';
314
+ readonly ASSESSMENT_FIXTURES: 'assessment-fixtures.json';
313
315
  };
314
316
 
315
317
  /**
package/dist/constants.js CHANGED
@@ -21,7 +21,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
21
21
  // ../better-auth/package.json
22
22
  var package_default = {
23
23
  name: "@playcademy/better-auth",
24
- version: "0.0.20",
24
+ version: "0.0.21-beta.2",
25
25
  type: "module",
26
26
  exports: {
27
27
  "./server": {
@@ -182,7 +182,7 @@ var GODOT_EXECUTABLE_PATTERNS = {
182
182
  // src/constants/http-server.ts
183
183
  var CALLBACK_PORT = 6175;
184
184
  var CALLBACK_PATH = "/callback";
185
- var SSO_AUTH_TIMEOUT_MS = 3e4;
185
+ var SSO_AUTH_TIMEOUT_MS = 9e4;
186
186
 
187
187
  // src/constants/paths.ts
188
188
  import { homedir } from "node:os";
@@ -192,7 +192,8 @@ var CLI_DIRECTORIES = {
192
192
  WORKSPACE: WORKSPACE_NAME,
193
193
  DATABASE: join5(WORKSPACE_NAME, "db"),
194
194
  KV: join5(WORKSPACE_NAME, "kv"),
195
- BUCKET: join5(WORKSPACE_NAME, "bucket")
195
+ BUCKET: join5(WORKSPACE_NAME, "bucket"),
196
+ TIMEBACK: join5(WORKSPACE_NAME, "timeback")
196
197
  };
197
198
  var PLAYCADEMY_HOME = join5(homedir(), ".playcademy");
198
199
  var CLI_USER_DIRECTORIES = {
@@ -216,7 +217,8 @@ var CLI_DEFAULT_OUTPUTS = {
216
217
  var CLI_FILES = {
217
218
  AUTH_STORE: "auth.json",
218
219
  GAMES_STORE: "games.json",
219
- INITIAL_DATABASE: "initial.sqlite"
220
+ INITIAL_DATABASE: "initial.sqlite",
221
+ ASSESSMENT_FIXTURES: "assessment-fixtures.json"
220
222
  };
221
223
 
222
224
  // src/constants/ports.ts
package/dist/db.js CHANGED
@@ -2335,7 +2335,7 @@ var GAME_API_ROUTES_DIRECTORY = join2(GAME_SERVER_ROOT_DIRECTORY, "api");
2335
2335
  // ../better-auth/package.json
2336
2336
  var package_default = {
2337
2337
  name: "@playcademy/better-auth",
2338
- version: "0.0.20",
2338
+ version: "0.0.21-beta.2",
2339
2339
  type: "module",
2340
2340
  exports: {
2341
2341
  "./server": {
@@ -2451,7 +2451,8 @@ var CLI_DIRECTORIES = {
2451
2451
  WORKSPACE: WORKSPACE_NAME,
2452
2452
  DATABASE: join5(WORKSPACE_NAME, "db"),
2453
2453
  KV: join5(WORKSPACE_NAME, "kv"),
2454
- BUCKET: join5(WORKSPACE_NAME, "bucket")
2454
+ BUCKET: join5(WORKSPACE_NAME, "bucket"),
2455
+ TIMEBACK: join5(WORKSPACE_NAME, "timeback")
2455
2456
  };
2456
2457
  var PLAYCADEMY_HOME = join5(homedir(), ".playcademy");
2457
2458
  var CLI_USER_DIRECTORIES = {
@@ -2468,7 +2469,8 @@ var CLI_DEFAULT_OUTPUTS = {
2468
2469
  var CLI_FILES = {
2469
2470
  AUTH_STORE: "auth.json",
2470
2471
  GAMES_STORE: "games.json",
2471
- INITIAL_DATABASE: "initial.sqlite"
2472
+ INITIAL_DATABASE: "initial.sqlite",
2473
+ ASSESSMENT_FIXTURES: "assessment-fixtures.json"
2472
2474
  };
2473
2475
 
2474
2476
  // src/constants/timeback.ts
package/dist/index.d.ts CHANGED
@@ -1437,12 +1437,8 @@ interface ScaffoldResult {
1437
1437
  * Callback data received from the Playcademy server after SSO authentication
1438
1438
  */
1439
1439
  interface SsoCallbackData {
1440
- /** The session token from SSO authentication */
1441
- sessionToken: string;
1442
- /** User's email address */
1443
- email: string;
1444
- /** User's ID */
1445
- userId: string;
1440
+ /** One-time login code, exchanged at /auth/cli/exchange for an API key */
1441
+ code: string;
1446
1442
  }
1447
1443
  /**
1448
1444
  * Result from starting and running the callback server