@playcademy/vite-plugin 1.1.2-beta.2 → 1.1.2-beta.3

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.
Files changed (2) hide show
  1. package/dist/index.js +43 -15
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -23746,7 +23746,7 @@ import path from "node:path";
23746
23746
  // package.json
23747
23747
  var package_default = {
23748
23748
  name: "@playcademy/vite-plugin",
23749
- version: "1.1.2-beta.2",
23749
+ version: "1.1.2-beta.3",
23750
23750
  type: "module",
23751
23751
  exports: {
23752
23752
  ".": {
@@ -25345,7 +25345,7 @@ var package_default2;
25345
25345
  var init_package = __esm(() => {
25346
25346
  package_default2 = {
25347
25347
  name: "@playcademy/sandbox",
25348
- version: "0.6.1-beta.1",
25348
+ version: "0.6.1-beta.2",
25349
25349
  description: "Local development server for Playcademy game development",
25350
25350
  type: "module",
25351
25351
  exports: {
@@ -55053,7 +55053,7 @@ var init_schemas4 = __esm(() => {
55053
55053
  subject: TimebackSubjectSchema,
55054
55054
  appName: exports_external.string().optional(),
55055
55055
  sensorUrl: exports_external.string().url().optional(),
55056
- courseId: exports_external.string().optional(),
55056
+ courseId: exports_external.string().min(1).optional(),
55057
55057
  courseName: exports_external.string().optional(),
55058
55058
  studentEmail: exports_external.string().email().optional()
55059
55059
  });
@@ -105578,6 +105578,24 @@ var init_timeback_service = __esm(async () => {
105578
105578
  }
105579
105579
  };
105580
105580
  }
105581
+ static resolveRuntimeCourse(resolvedCourseId, requestedCourseId, courseName) {
105582
+ let requestedCourseIdStatus = "absent";
105583
+ if (requestedCourseId === resolvedCourseId) {
105584
+ requestedCourseIdStatus = "accepted";
105585
+ } else if (requestedCourseId !== undefined) {
105586
+ requestedCourseIdStatus = "ignored_mismatch";
105587
+ }
105588
+ return {
105589
+ courseId: resolvedCourseId,
105590
+ courseName: requestedCourseIdStatus === "ignored_mismatch" ? undefined : courseName,
105591
+ attributes: {
105592
+ "app.timeback.course_id": resolvedCourseId,
105593
+ "app.timeback.resolved_course_id": resolvedCourseId,
105594
+ "app.timeback.requested_course_id": requestedCourseId,
105595
+ "app.timeback.requested_course_id_status": requestedCourseIdStatus
105596
+ }
105597
+ };
105598
+ }
105581
105599
  static recordRuntimeContext({
105582
105600
  operation,
105583
105601
  studentId,
@@ -106443,8 +106461,13 @@ var init_timeback_service = __esm(async () => {
106443
106461
  if (!integration) {
106444
106462
  throw new NotFoundError(`Timeback integration for game (grade ${activityData.grade}, subject ${activityData.subject})`);
106445
106463
  }
106464
+ const {
106465
+ courseId: runtimeCourseId,
106466
+ courseName: runtimeCourseName,
106467
+ attributes: courseAttributes
106468
+ } = TimebackService2.resolveRuntimeCourse(integration.courseId, activityData.courseId, activityData.courseName);
106446
106469
  const scorePercentage = scoreData.totalQuestions > 0 ? scoreData.correctQuestions / scoreData.totalQuestions * 100 : 0;
106447
- const result = await client.activity.record(integration.courseId, studentId, {
106470
+ const result = await client.activity.record(runtimeCourseId, studentId, {
106448
106471
  gameId,
106449
106472
  score: scorePercentage,
106450
106473
  totalQuestions: scoreData.totalQuestions,
@@ -106459,8 +106482,8 @@ var init_timeback_service = __esm(async () => {
106459
106482
  subject: activityData.subject,
106460
106483
  appName: activityData.appName,
106461
106484
  sensorUrl: activityData.sensorUrl,
106462
- courseId: activityData.courseId,
106463
- courseName: activityData.courseName,
106485
+ courseId: runtimeCourseId,
106486
+ courseName: runtimeCourseName,
106464
106487
  studentEmail: activityData.studentEmail,
106465
106488
  courseTotalXp: integration.totalXp,
106466
106489
  ...runId ? { runId } : {}
@@ -106469,7 +106492,7 @@ var init_timeback_service = __esm(async () => {
106469
106492
  const sessionEndInactiveSeconds = sessionTimingData?.inactiveSeconds;
106470
106493
  const sessionEndEmitted = sessionEndActiveSeconds > 0 || (sessionEndInactiveSeconds ?? 0) > 0;
106471
106494
  if (sessionEndEmitted) {
106472
- await client.activity.session(integration.courseId, studentId, {
106495
+ await client.activity.session(runtimeCourseId, studentId, {
106473
106496
  gameId,
106474
106497
  activeTimeSeconds: sessionEndActiveSeconds,
106475
106498
  ...sessionEndInactiveSeconds !== undefined ? { inactiveTimeSeconds: sessionEndInactiveSeconds } : {},
@@ -106478,15 +106501,15 @@ var init_timeback_service = __esm(async () => {
106478
106501
  subject: activityData.subject,
106479
106502
  appName: activityData.appName,
106480
106503
  sensorUrl: activityData.sensorUrl,
106481
- courseId: activityData.courseId,
106482
- courseName: activityData.courseName,
106504
+ courseId: runtimeCourseId,
106505
+ courseName: runtimeCourseName,
106483
106506
  studentEmail: activityData.studentEmail,
106484
106507
  extensions: extensionsWithResumeId,
106485
106508
  ...runId ? { runId } : {}
106486
106509
  });
106487
106510
  }
106488
106511
  setAttributes({
106489
- "app.timeback.course_id": integration.courseId,
106512
+ ...courseAttributes,
106490
106513
  "app.timeback.grade": activityData.grade,
106491
106514
  "app.timeback.subject": activityData.subject,
106492
106515
  "app.timeback.total_questions": scoreData.totalQuestions,
@@ -106503,7 +106526,7 @@ var init_timeback_service = __esm(async () => {
106503
106526
  });
106504
106527
  return {
106505
106528
  status: "ok",
106506
- courseId: integration.courseId,
106529
+ courseId: runtimeCourseId,
106507
106530
  xpAwarded: result.xpAwarded,
106508
106531
  masteredUnits: result.masteredUnitsApplied,
106509
106532
  pctCompleteApp: result.pctCompleteApp,
@@ -106714,10 +106737,15 @@ var init_timeback_service = __esm(async () => {
106714
106737
  if (!integration) {
106715
106738
  throw new NotFoundError(`Timeback integration for game (grade ${activityData.grade}, subject ${activityData.subject})`);
106716
106739
  }
106740
+ const {
106741
+ courseId: runtimeCourseId,
106742
+ courseName: runtimeCourseName,
106743
+ attributes: courseAttributes
106744
+ } = TimebackService2.resolveRuntimeCourse(integration.courseId, activityData.courseId, activityData.courseName);
106717
106745
  const activeTimeSeconds = timingData.activeMs / 1000;
106718
106746
  const inactiveTimeSeconds = timingData.pausedMs / 1000;
106719
106747
  if (activeTimeSeconds > 0 || inactiveTimeSeconds > 0) {
106720
- await client.activity.session(integration.courseId, studentId, {
106748
+ await client.activity.session(runtimeCourseId, studentId, {
106721
106749
  gameId,
106722
106750
  activeTimeSeconds,
106723
106751
  ...inactiveTimeSeconds > 0 ? { inactiveTimeSeconds } : {},
@@ -106726,15 +106754,15 @@ var init_timeback_service = __esm(async () => {
106726
106754
  subject: activityData.subject,
106727
106755
  appName: activityData.appName,
106728
106756
  sensorUrl: activityData.sensorUrl,
106729
- courseId: activityData.courseId,
106730
- courseName: activityData.courseName,
106757
+ courseId: runtimeCourseId,
106758
+ courseName: runtimeCourseName,
106731
106759
  studentEmail: activityData.studentEmail,
106732
106760
  extensions: TimebackService2.addResumeIdToExtensions(undefined, effectiveResumeId),
106733
106761
  ...runId ? { runId } : {}
106734
106762
  });
106735
106763
  }
106736
106764
  setAttributes({
106737
- "app.timeback.course_id": integration.courseId,
106765
+ ...courseAttributes,
106738
106766
  "app.timeback.grade": activityData.grade,
106739
106767
  "app.timeback.subject": activityData.subject,
106740
106768
  "app.timeback.active_time_seconds": activeTimeSeconds,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/vite-plugin",
3
- "version": "1.1.2-beta.2",
3
+ "version": "1.1.2-beta.3",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -19,14 +19,14 @@
19
19
  "dependencies": {
20
20
  "archiver": "^7.0.1",
21
21
  "picocolors": "^1.1.1",
22
- "playcademy": "0.26.1-beta.2"
22
+ "playcademy": "0.26.1-beta.3"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@electric-sql/pglite": "^0.3.16",
26
26
  "@inquirer/prompts": "^7.8.6",
27
27
  "@playcademy/constants": "0.0.1",
28
- "@playcademy/sandbox": "0.6.1-beta.1",
29
- "@playcademy/sdk": "0.14.1-beta.1",
28
+ "@playcademy/sandbox": "0.6.1-beta.2",
29
+ "@playcademy/sdk": "0.14.1-beta.2",
30
30
  "@playcademy/types": "0.0.1",
31
31
  "@playcademy/utils": "0.0.1",
32
32
  "@types/archiver": "^6.0.3",