playcademy 0.30.0 → 0.30.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/dist/bucket.js CHANGED
@@ -42,7 +42,7 @@ var GAME_API_ROUTES_DIRECTORY = `${GAME_SERVER_ROOT_DIRECTORY}/api`;
42
42
  // ../better-auth/package.json
43
43
  var package_default = {
44
44
  name: "@playcademy/better-auth",
45
- version: "0.0.22",
45
+ version: "0.0.23-beta.1",
46
46
  type: "module",
47
47
  exports: {
48
48
  "./server": {
package/dist/cli.js CHANGED
@@ -1208,7 +1208,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1208
1208
  // ../better-auth/package.json
1209
1209
  var package_default = {
1210
1210
  name: "@playcademy/better-auth",
1211
- version: "0.0.22",
1211
+ version: "0.0.23-beta.1",
1212
1212
  type: "module",
1213
1213
  exports: {
1214
1214
  "./server": {
@@ -3045,7 +3045,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
3045
3045
  import { join as join12 } from "node:path";
3046
3046
 
3047
3047
  // src/version.ts
3048
- var cliVersion = false ? "0.0.0-dev" : "0.30.0";
3048
+ var cliVersion = false ? "0.0.0-dev" : "0.30.1-beta.1";
3049
3049
 
3050
3050
  // src/lib/init/database.ts
3051
3051
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
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.22",
24
+ version: "0.0.23-beta.1",
25
25
  type: "module",
26
26
  exports: {
27
27
  "./server": {
package/dist/db.js CHANGED
@@ -2333,7 +2333,7 @@ var GAME_API_ROUTES_DIRECTORY = `${GAME_SERVER_ROOT_DIRECTORY}/api`;
2333
2333
  // ../better-auth/package.json
2334
2334
  var package_default = {
2335
2335
  name: "@playcademy/better-auth",
2336
- version: "0.0.22",
2336
+ version: "0.0.23-beta.1",
2337
2337
  type: "module",
2338
2338
  exports: {
2339
2339
  "./server": {
package/dist/index.js CHANGED
@@ -2345,7 +2345,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
2345
2345
  // ../better-auth/package.json
2346
2346
  var package_default = {
2347
2347
  name: "@playcademy/better-auth",
2348
- version: "0.0.22",
2348
+ version: "0.0.23-beta.1",
2349
2349
  type: "module",
2350
2350
  exports: {
2351
2351
  "./server": {
@@ -6486,7 +6486,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync2, readFileSync as re
6486
6486
  import { join as join12 } from "node:path";
6487
6487
 
6488
6488
  // src/version.ts
6489
- var cliVersion = false ? "0.0.0-dev" : "0.30.0";
6489
+ var cliVersion = false ? "0.0.0-dev" : "0.30.1-beta.1";
6490
6490
 
6491
6491
  // src/lib/init/database.ts
6492
6492
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -21622,6 +21622,11 @@ var RESPONSE_PROCESSING_TEMPLATES = /* @__PURE__ */ new Set([
21622
21622
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct",
21623
21623
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/map_response_point"
21624
21624
  ]);
21625
+ var MATCH_CORRECT_TEMPLATES = new Set([
21626
+ "http://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
21627
+ "https://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
21628
+ "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct"
21629
+ ].flatMap((template) => [template, `${template}.xml`]));
21625
21630
  var COMMON_CORE_MATH_FRAMEWORK_ALIASES = /* @__PURE__ */ new Set([
21626
21631
  "ccssm",
21627
21632
  "ccssmath",
@@ -22696,6 +22701,8 @@ var StartAssessmentBodySchema = external_exports.discriminatedUnion("purpose", [
22696
22701
  standard: AssessmentStandardRefSchema
22697
22702
  })
22698
22703
  ]);
22704
+ var AssessmentPreparationReceiptSchema = external_exports.string().max(32e3);
22705
+ var StartAssessmentRequestBodySchema = external_exports.intersection(StartAssessmentBodySchema, external_exports.object({ preparationReceipt: AssessmentPreparationReceiptSchema.optional() }));
22699
22706
  var SaveAssessmentBodySchema = external_exports.object({
22700
22707
  expectedResponseVersion: external_exports.number().int().nonnegative(),
22701
22708
  responses: external_exports.record(ResponseKeySchema, external_exports.record(ResponseKeySchema, AssessmentResponseValueSchema.nullable()))
@@ -22723,7 +22730,8 @@ var FinalizeAssessmentBodySchema = external_exports.object({
22723
22730
  message: "Provide either masteredUnits or masteredUnitsAbsolute, not both",
22724
22731
  path: ["masteredUnits"]
22725
22732
  });
22726
- var StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
22733
+ var PrepareRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
22734
+ var StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentRequestBodySchema);
22727
22735
  var SaveRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SaveAssessmentBodySchema.shape);
22728
22736
  var SubmitAssessmentItemRuntimeRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentItemBodySchema.shape);
22729
22737
  var SubmitRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentBodySchema.shape).extend({
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.30.0",
3
- "sdkVersion": "0.18.0",
4
- "runtimeBuildId": "486fecc8fa56",
5
- "inputFingerprint": "486fecc8fa56dbf77094b6cc8fd4305f7e57d613b0ed34733f2b6db12e9d225a",
2
+ "cliVersion": "0.30.1-beta.1",
3
+ "sdkVersion": "0.18.1-beta.1",
4
+ "runtimeBuildId": "ed530c9aeee4",
5
+ "inputFingerprint": "ed530c9aeee40f0354eafbceba665ec77a21e74f7691c4b18bd94dbf44ffcfa8",
6
6
  "entry": "index.js"
7
7
  }
@@ -8,6 +8,18 @@ var __export = (target, all) => {
8
8
  __defProp(target, name, { get: all[name], enumerable: true });
9
9
  };
10
10
 
11
+ // ../sdk/src/core/timeback/assessment-request.ts
12
+ function canonicalAssessmentInput(input) {
13
+ const request2 = { ...input };
14
+ delete request2.preparationReceipt;
15
+ return request2;
16
+ }
17
+ var init_assessment_request = __esm({
18
+ "../sdk/src/core/timeback/assessment-request.ts"() {
19
+ "use strict";
20
+ }
21
+ });
22
+
11
23
  // ../constants/src/auth.ts
12
24
  var init_auth = __esm({
13
25
  "../constants/src/auth.ts"() {
@@ -1270,6 +1282,7 @@ var init_timeback2 = __esm({
1270
1282
  init_guards();
1271
1283
  init_exclusivity();
1272
1284
  init_activity_tracker();
1285
+ init_assessment_request();
1273
1286
  init_engine();
1274
1287
  ASSESSMENTS_ROUTE = TIMEBACK_ROUTES.ASSESSMENTS;
1275
1288
  }
@@ -9903,6 +9916,13 @@ var init_assessment_assets = __esm({
9903
9916
  }
9904
9917
  });
9905
9918
 
9919
+ // ../types/src/timeback/assessment-artifacts.ts
9920
+ var init_assessment_artifacts = __esm({
9921
+ "../types/src/timeback/assessment-artifacts.ts"() {
9922
+ "use strict";
9923
+ }
9924
+ });
9925
+
9906
9926
  // ../types/src/timeback/diagnostic-routing.ts
9907
9927
  var DIAGNOSTIC_ROUTING_MANIFEST_VERSION, DIAGNOSTIC_ROUTING_STATE_VERSION, DIAGNOSTIC_TRACK_OUTCOMES;
9908
9928
  var init_diagnostic_routing = __esm({
@@ -9941,6 +9961,7 @@ var init_timeback4 = __esm({
9941
9961
  init_assessments();
9942
9962
  init_assessment_runtime();
9943
9963
  init_assessment_assets();
9964
+ init_assessment_artifacts();
9944
9965
  init_diagnostic_routing();
9945
9966
  init_metrics();
9946
9967
  }
@@ -11934,7 +11955,7 @@ function masteryStandardMatcher(requested) {
11934
11955
  return canonicalAuthored !== null && assessmentStandardRefKey(canonicalAuthored) === requestedKey;
11935
11956
  };
11936
11957
  }
11937
- var SCRIPT_SCHEMES, DATA_RASTER_IMAGE_PATTERN, metadataSymbol, parser, SUPPORTED_QTI_INTERACTION_TYPES, INTERACTION_TYPES, BLANK_SENTINEL, MARKED_BLANK_PATTERN, MARKED_BLANK_GLOBAL_PATTERN, MATCH_CORRECT_TEMPLATE, MAP_RESPONSE_TEMPLATE, MAP_RESPONSE_TEMPLATES, RESPONSE_PROCESSING_TEMPLATES, COMMON_CORE_MATH_FRAMEWORK_ALIASES, COMMON_CORE_ELA_FRAMEWORK_ALIASES, COMMON_CORE_FRAMEWORK_ALIASES, ASSESSMENT_ATTEMPT_OPEN, ASSESSMENT_ATTEMPT_COMPLETED, ASSESSMENT_ATTEMPT_AWAITING_AWARD, ASSESSMENT_RUNTIME_ERROR_STATUS, ROUTING_KEY_MAX_LENGTH, ROUTING_RESULT_KEY_MAX_LENGTH, ROUTING_STAGE_LIMIT, ROUTING_TRACK_LIMIT, ROUTING_NODE_LIMIT, ROUTING_TERMINAL_LIMIT, ROUTING_GROUP_LIMIT, ROUTING_PREDICATE_DEPTH_LIMIT, ROUTING_EXPLORATION_STATE_LIMIT, RoutingKeySchema, RoutingResultKeySchema, DiagnosticTrackOutcomeSchema, DiagnosticActivationPredicateSchema, DiagnosticRoutingTransitionSchema, DiagnosticRoutingManifestV1Schema, GRADE_VALUES, POINT_RESPONSE_PATTERN, REVIEW_SELECTION_POLICY_VERSION, DEFAULT_REVIEW_SELECTION_POLICY, ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION, RuntimeSubjectSchema, RuntimeGradeSchema, OptionalQueryGradeSchema, AssessmentResponseValueSchema, AssessmentRuntimeIdentitySchema, ResponseKeySchema, StartAssessmentBaseSchema, AssessmentStandardRefSchema, LatestAssessmentFilterBaseSchema, LatestAssessmentFiltersSchema, LatestRuntimeAssessmentQuerySchema, StartAssessmentBodySchema, SaveAssessmentBodySchema, SubmitAssessmentItemBodySchema, SubmitAssessmentBodySchema, FinalizeAssessmentBodySchema, StartRuntimeAssessmentRequestSchema, SaveRuntimeAssessmentRequestSchema, SubmitAssessmentItemRuntimeRequestSchema, SubmitRuntimeAssessmentRequestSchema, FinalizeRuntimeAssessmentRequestSchema;
11958
+ var SCRIPT_SCHEMES, DATA_RASTER_IMAGE_PATTERN, metadataSymbol, parser, SUPPORTED_QTI_INTERACTION_TYPES, INTERACTION_TYPES, BLANK_SENTINEL, MARKED_BLANK_PATTERN, MARKED_BLANK_GLOBAL_PATTERN, MATCH_CORRECT_TEMPLATE, MAP_RESPONSE_TEMPLATE, MAP_RESPONSE_TEMPLATES, RESPONSE_PROCESSING_TEMPLATES, MATCH_CORRECT_TEMPLATES, COMMON_CORE_MATH_FRAMEWORK_ALIASES, COMMON_CORE_ELA_FRAMEWORK_ALIASES, COMMON_CORE_FRAMEWORK_ALIASES, ASSESSMENT_ATTEMPT_OPEN, ASSESSMENT_ATTEMPT_COMPLETED, ASSESSMENT_ATTEMPT_AWAITING_AWARD, ASSESSMENT_RUNTIME_ERROR_STATUS, ROUTING_KEY_MAX_LENGTH, ROUTING_RESULT_KEY_MAX_LENGTH, ROUTING_STAGE_LIMIT, ROUTING_TRACK_LIMIT, ROUTING_NODE_LIMIT, ROUTING_TERMINAL_LIMIT, ROUTING_GROUP_LIMIT, ROUTING_PREDICATE_DEPTH_LIMIT, ROUTING_EXPLORATION_STATE_LIMIT, RoutingKeySchema, RoutingResultKeySchema, DiagnosticTrackOutcomeSchema, DiagnosticActivationPredicateSchema, DiagnosticRoutingTransitionSchema, DiagnosticRoutingManifestV1Schema, GRADE_VALUES, POINT_RESPONSE_PATTERN, REVIEW_SELECTION_POLICY_VERSION, DEFAULT_REVIEW_SELECTION_POLICY, ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION, RuntimeSubjectSchema, RuntimeGradeSchema, OptionalQueryGradeSchema, AssessmentResponseValueSchema, AssessmentRuntimeIdentitySchema, ResponseKeySchema, StartAssessmentBaseSchema, AssessmentStandardRefSchema, LatestAssessmentFilterBaseSchema, LatestAssessmentFiltersSchema, LatestRuntimeAssessmentQuerySchema, StartAssessmentBodySchema, AssessmentPreparationReceiptSchema, StartAssessmentRequestBodySchema, SaveAssessmentBodySchema, SubmitAssessmentItemBodySchema, SubmitAssessmentBodySchema, FinalizeAssessmentBodySchema, PrepareRuntimeAssessmentRequestSchema, StartRuntimeAssessmentRequestSchema, SaveRuntimeAssessmentRequestSchema, SubmitAssessmentItemRuntimeRequestSchema, SubmitRuntimeAssessmentRequestSchema, FinalizeRuntimeAssessmentRequestSchema;
11938
11959
  var init_assessment_runtime2 = __esm({
11939
11960
  "../timeback/dist/engines/assessment-runtime/index.js"() {
11940
11961
  "use strict";
@@ -11998,6 +12019,11 @@ var init_assessment_runtime2 = __esm({
11998
12019
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct",
11999
12020
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/map_response_point"
12000
12021
  ]);
12022
+ MATCH_CORRECT_TEMPLATES = new Set([
12023
+ "http://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
12024
+ "https://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
12025
+ "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct"
12026
+ ].flatMap((template) => [template, `${template}.xml`]));
12001
12027
  COMMON_CORE_MATH_FRAMEWORK_ALIASES = /* @__PURE__ */ new Set([
12002
12028
  "ccssm",
12003
12029
  "ccssmath",
@@ -12180,6 +12206,8 @@ var init_assessment_runtime2 = __esm({
12180
12206
  standard: AssessmentStandardRefSchema
12181
12207
  })
12182
12208
  ]);
12209
+ AssessmentPreparationReceiptSchema = external_exports.string().max(32e3);
12210
+ StartAssessmentRequestBodySchema = external_exports.intersection(StartAssessmentBodySchema, external_exports.object({ preparationReceipt: AssessmentPreparationReceiptSchema.optional() }));
12183
12211
  SaveAssessmentBodySchema = external_exports.object({
12184
12212
  expectedResponseVersion: external_exports.number().int().nonnegative(),
12185
12213
  responses: external_exports.record(ResponseKeySchema, external_exports.record(ResponseKeySchema, AssessmentResponseValueSchema.nullable()))
@@ -12207,7 +12235,8 @@ var init_assessment_runtime2 = __esm({
12207
12235
  message: "Provide either masteredUnits or masteredUnitsAbsolute, not both",
12208
12236
  path: ["masteredUnits"]
12209
12237
  });
12210
- StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
12238
+ PrepareRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
12239
+ StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentRequestBodySchema);
12211
12240
  SaveRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SaveAssessmentBodySchema.shape);
12212
12241
  SubmitAssessmentItemRuntimeRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentItemBodySchema.shape);
12213
12242
  SubmitRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentBodySchema.shape).extend({
@@ -12255,6 +12284,9 @@ var init_local_assessment_runtime = __esm({
12255
12284
  constructor(bundle) {
12256
12285
  this.bundle = bundle;
12257
12286
  }
12287
+ prepare(_studentId, _input) {
12288
+ return { status: "unprepared", reason: "local_runtime" };
12289
+ }
12258
12290
  start(studentId2, input) {
12259
12291
  const catalog = this.catalog(input, studentId2);
12260
12292
  if (input.purpose === "review") {
@@ -13448,6 +13480,7 @@ __export(assessment_fixture_runtime_exports, {
13448
13480
  FINALIZE: () => FINALIZE,
13449
13481
  GET: () => GET2,
13450
13482
  LATEST: () => LATEST,
13483
+ PREPARE: () => PREPARE,
13451
13484
  SAVE: () => SAVE,
13452
13485
  START: () => START,
13453
13486
  SUBMIT: () => SUBMIT,
@@ -13485,10 +13518,18 @@ function provider(c) {
13485
13518
  }
13486
13519
  async function START(c) {
13487
13520
  return respond(c, RESPOND_ERROR, async () => {
13488
- const input = parseBody2(StartAssessmentBodySchema, await c.req.json());
13521
+ const body = parseBody2(StartAssessmentRequestBodySchema, await c.req.json());
13522
+ const input = { ...body };
13523
+ delete input.preparationReceipt;
13489
13524
  return provider(c).start(studentId(c), input);
13490
13525
  });
13491
13526
  }
13527
+ async function PREPARE(c) {
13528
+ return respond(c, RESPOND_ERROR, async () => {
13529
+ const input = parseBody2(StartAssessmentBodySchema, await c.req.json());
13530
+ return provider(c).prepare(studentId(c), input);
13531
+ });
13532
+ }
13492
13533
  async function GET2(c) {
13493
13534
  return respond(c, RESPOND_ERROR, () => provider(c).get(studentId(c), c.req.param("attemptId")));
13494
13535
  }
@@ -13544,11 +13585,24 @@ __export(assessment_runtime_exports, {
13544
13585
  FINALIZE: () => FINALIZE2,
13545
13586
  GET: () => GET3,
13546
13587
  LATEST: () => LATEST2,
13588
+ PREPARE: () => PREPARE2,
13547
13589
  SAVE: () => SAVE2,
13548
13590
  START: () => START2,
13549
13591
  SUBMIT: () => SUBMIT2,
13550
13592
  SUBMIT_ITEM: () => SUBMIT_ITEM2
13551
13593
  });
13594
+ async function PREPARE2(c) {
13595
+ return respond(
13596
+ c,
13597
+ { tag: "TimeBack Assessment Prepare", fallback: "Failed to prepare assessment" },
13598
+ async () => {
13599
+ const studentId2 = requireTimebackStudentId(c);
13600
+ assertTimebackIntegrated(c);
13601
+ const input = await c.req.json();
13602
+ return c.get("sdk").timeback.assessments.prepare(studentId2, input);
13603
+ }
13604
+ );
13605
+ }
13552
13606
  async function START2(c) {
13553
13607
  return respond(
13554
13608
  c,
@@ -13556,8 +13610,9 @@ async function START2(c) {
13556
13610
  async () => {
13557
13611
  const studentId2 = requireTimebackStudentId(c);
13558
13612
  assertTimebackIntegrated(c);
13559
- const input = await c.req.json();
13560
- return c.get("sdk").timeback.assessments.start(studentId2, input);
13613
+ const body = await c.req.json();
13614
+ const { preparationReceipt, ...input } = body;
13615
+ return preparationReceipt === void 0 ? c.get("sdk").timeback.assessments.start(studentId2, input) : c.get("sdk").timeback.assessments.start(studentId2, input, { preparationReceipt });
13561
13616
  }
13562
13617
  );
13563
13618
  }
@@ -13696,9 +13751,9 @@ var init_list = __esm({
13696
13751
  // ../edge-play/src/game/lib/metadata.ts
13697
13752
  function getRuntimeMetadata() {
13698
13753
  return {
13699
- cliVersion: true ? "0.30.0" : "0.0.0-dev",
13700
- sdkVersion: true ? "0.18.0" : "0.0.0-dev",
13701
- buildId: true ? "486fecc8fa56" : "dev-source"
13754
+ cliVersion: true ? "0.30.1-beta.1" : "0.0.0-dev",
13755
+ sdkVersion: true ? "0.18.1-beta.1" : "0.0.0-dev",
13756
+ buildId: true ? "ed530c9aeee4" : "dev-source"
13702
13757
  };
13703
13758
  }
13704
13759
  var init_metadata = __esm({
@@ -15846,6 +15901,9 @@ var cors = (options) => {
15846
15901
  };
15847
15902
  };
15848
15903
 
15904
+ // ../sdk/src/server/namespaces/timeback.ts
15905
+ init_assessment_request();
15906
+
15849
15907
  // ../sdk/src/server/guards.ts
15850
15908
  init_guards();
15851
15909
 
@@ -15859,10 +15917,20 @@ function createTimebackNamespace(client) {
15859
15917
  }
15860
15918
  return {
15861
15919
  assessments: {
15862
- start: (studentId2, input) => client["request"](
15920
+ prepare: (studentId2, input) => client["request"](
15921
+ "/api/timeback/assessments/prepare",
15922
+ "POST",
15923
+ { ...canonicalAssessmentInput(input), gameId: client.gameId, studentId: studentId2 }
15924
+ ),
15925
+ start: (studentId2, input, options) => client["request"](
15863
15926
  "/api/timeback/assessments/start",
15864
15927
  "POST",
15865
- { ...input, gameId: client.gameId, studentId: studentId2 }
15928
+ {
15929
+ ...canonicalAssessmentInput(input),
15930
+ ...options?.preparationReceipt === void 0 ? {} : { preparationReceipt: options.preparationReceipt },
15931
+ gameId: client.gameId,
15932
+ studentId: studentId2
15933
+ }
15866
15934
  ),
15867
15935
  latest: (studentId2, options) => {
15868
15936
  const params = new URLSearchParams({
@@ -16777,6 +16845,7 @@ function createGameSessionMiddleware(getAuth) {
16777
16845
  // ../edge-play/src/game/routes/index.ts
16778
16846
  init_constants2();
16779
16847
  function registerAssessmentRoutes(app, assessments) {
16848
+ app.post(`${GAME_ROUTES.TIMEBACK.ASSESSMENTS}/prepare`, assessments.PREPARE);
16780
16849
  app.post(`${GAME_ROUTES.TIMEBACK.ASSESSMENTS}/start`, assessments.START);
16781
16850
  app.get(`${GAME_ROUTES.TIMEBACK.ASSESSMENTS}/latest`, assessments.LATEST);
16782
16851
  app.get(`${GAME_ROUTES.TIMEBACK.ASSESSMENTS}/:attemptId`, assessments.GET);
@@ -16889,6 +16958,7 @@ async function registerBuiltinRoutes(app, integrations, hasAssessmentFixtures =
16889
16958
  );
16890
16959
  if (!assessments) {
16891
16960
  const assessmentsBase = "/api/integrations/timeback/assessments";
16961
+ app.post(`${assessmentsBase}/prepare`, timebackNotConfiguredStub);
16892
16962
  app.post(`${assessmentsBase}/start`, timebackNotConfiguredStub);
16893
16963
  app.get(`${assessmentsBase}/latest`, timebackNotConfiguredStub);
16894
16964
  app.get(`${assessmentsBase}/:attemptId`, timebackNotConfiguredStub);
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.30.0",
3
- "sdkVersion": "0.18.0",
4
- "runtimeBuildId": "486fecc8fa56",
5
- "inputFingerprint": "486fecc8fa56dbf77094b6cc8fd4305f7e57d613b0ed34733f2b6db12e9d225a",
2
+ "cliVersion": "0.30.1-beta.1",
3
+ "sdkVersion": "0.18.1-beta.1",
4
+ "runtimeBuildId": "ed530c9aeee4",
5
+ "inputFingerprint": "ed530c9aeee40f0354eafbceba665ec77a21e74f7691c4b18bd94dbf44ffcfa8",
6
6
  "entry": "index.js"
7
7
  }
package/dist/utils.js CHANGED
@@ -396,7 +396,7 @@ var DASHBOARD_API_ROUTES_DIRECTORY = "api";
396
396
  // ../better-auth/package.json
397
397
  var package_default = {
398
398
  name: "@playcademy/better-auth",
399
- version: "0.0.22",
399
+ version: "0.0.23-beta.1",
400
400
  type: "module",
401
401
  exports: {
402
402
  "./server": {
@@ -2849,7 +2849,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, writeFileSync as wr
2849
2849
  import { dirname as dirname4, join as join13 } from "node:path";
2850
2850
 
2851
2851
  // src/version.ts
2852
- var cliVersion = false ? "0.0.0-dev" : "0.30.0";
2852
+ var cliVersion = false ? "0.0.0-dev" : "0.30.1-beta.1";
2853
2853
 
2854
2854
  // src/lib/build/binary-resource.ts
2855
2855
  function writeFileTree(baseDir, files) {
@@ -14390,6 +14390,11 @@ var RESPONSE_PROCESSING_TEMPLATES = /* @__PURE__ */ new Set([
14390
14390
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct",
14391
14391
  "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/map_response_point"
14392
14392
  ]);
14393
+ var MATCH_CORRECT_TEMPLATES = new Set([
14394
+ "http://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
14395
+ "https://www.imsglobal.org/question/qti_v3p0/rptemplates/match_correct",
14396
+ "https://purl.imsglobal.org/spec/qti/v3p0/rptemplates/match_correct"
14397
+ ].flatMap((template) => [template, `${template}.xml`]));
14393
14398
  var COMMON_CORE_MATH_FRAMEWORK_ALIASES = /* @__PURE__ */ new Set([
14394
14399
  "ccssm",
14395
14400
  "ccssmath",
@@ -15464,6 +15469,8 @@ var StartAssessmentBodySchema = external_exports.discriminatedUnion("purpose", [
15464
15469
  standard: AssessmentStandardRefSchema
15465
15470
  })
15466
15471
  ]);
15472
+ var AssessmentPreparationReceiptSchema = external_exports.string().max(32e3);
15473
+ var StartAssessmentRequestBodySchema = external_exports.intersection(StartAssessmentBodySchema, external_exports.object({ preparationReceipt: AssessmentPreparationReceiptSchema.optional() }));
15467
15474
  var SaveAssessmentBodySchema = external_exports.object({
15468
15475
  expectedResponseVersion: external_exports.number().int().nonnegative(),
15469
15476
  responses: external_exports.record(ResponseKeySchema, external_exports.record(ResponseKeySchema, AssessmentResponseValueSchema.nullable()))
@@ -15491,7 +15498,8 @@ var FinalizeAssessmentBodySchema = external_exports.object({
15491
15498
  message: "Provide either masteredUnits or masteredUnitsAbsolute, not both",
15492
15499
  path: ["masteredUnits"]
15493
15500
  });
15494
- var StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
15501
+ var PrepareRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentBodySchema);
15502
+ var StartRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.and(StartAssessmentRequestBodySchema);
15495
15503
  var SaveRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SaveAssessmentBodySchema.shape);
15496
15504
  var SubmitAssessmentItemRuntimeRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentItemBodySchema.shape);
15497
15505
  var SubmitRuntimeAssessmentRequestSchema = AssessmentRuntimeIdentitySchema.extend(SubmitAssessmentBodySchema.shape).extend({
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pcCreateRequire } from 'node:module'; const require = __pcCreateRequire(import.meta.url);
2
2
 
3
3
  // src/version.ts
4
- var cliVersion = false ? "0.0.0-dev" : "0.30.0";
4
+ var cliVersion = false ? "0.0.0-dev" : "0.30.1-beta.1";
5
5
  export {
6
6
  cliVersion
7
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playcademy",
3
- "version": "0.30.0",
3
+ "version": "0.30.1-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "@inquirer/prompts": "^7.8.6",
58
- "@playcademy/sdk": "0.18.0",
58
+ "@playcademy/sdk": "0.18.1-beta.1",
59
59
  "chokidar": "^4.0.3",
60
60
  "colorette": "^2.0.20",
61
61
  "commander": "^14.0.1",