@playcademy/sandbox 0.10.1-beta.5 → 0.10.1-beta.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/cli.js CHANGED
@@ -1128,7 +1128,7 @@ var package_default;
1128
1128
  var init_package = __esm(() => {
1129
1129
  package_default = {
1130
1130
  name: "@playcademy/sandbox",
1131
- version: "0.10.1-beta.5",
1131
+ version: "0.10.1-beta.6",
1132
1132
  description: "Local development server for Playcademy game development",
1133
1133
  type: "module",
1134
1134
  exports: {
@@ -94028,8 +94028,20 @@ function compareEnrollmentsByRecency(a, b) {
94028
94028
  }
94029
94029
  return (b.dateLastModified ?? "").localeCompare(a.dateLastModified ?? "");
94030
94030
  }
94031
+ function resolvePrimaryAccountRole(roles2) {
94032
+ if (!roles2?.length) {
94033
+ return null;
94034
+ }
94035
+ return ACCOUNT_ROLE_PRECEDENCE.find((role) => roles2.some((entry) => entry.role === role)) ?? null;
94036
+ }
94037
+ var ACCOUNT_ROLE_PRECEDENCE;
94031
94038
  var init_timeback_admin_util = __esm(() => {
94032
94039
  init_errors2();
94040
+ ACCOUNT_ROLE_PRECEDENCE = [
94041
+ "administrator",
94042
+ "teacher",
94043
+ "student"
94044
+ ];
94033
94045
  });
94034
94046
 
94035
94047
  // ../api-core/src/utils/timeback-discrepancy-queue.util.ts
@@ -98739,6 +98751,7 @@ class TimebackAdminService {
98739
98751
  className: rosterEntry.class?.title || null,
98740
98752
  name: name3,
98741
98753
  email: rosterEntry.user?.email || null,
98754
+ primaryRole: resolvePrimaryAccountRole(rosterEntry.user?.roles),
98742
98755
  analyticsUnavailable,
98743
98756
  totalXp: summary?.totalXp ?? 0,
98744
98757
  todayXp: summary?.todayXp ?? 0,
@@ -99702,15 +99715,22 @@ class TimebackAdminService {
99702
99715
  });
99703
99716
  pastEnrollmentsByStudent.set(studentId, list);
99704
99717
  }
99705
- const students = allUsers.filter((entry) => Boolean(entry.sourcedId) && entry.roles?.some((role) => role.role === "student") === true).map((entry) => {
99718
+ const students = allUsers.flatMap((entry) => {
99719
+ const primaryRole = resolvePrimaryAccountRole(entry.roles);
99720
+ if (!entry.sourcedId || !primaryRole) {
99721
+ return [];
99722
+ }
99706
99723
  const past = pastEnrollmentsByStudent.get(entry.sourcedId) ?? [];
99707
- return {
99708
- studentId: entry.sourcedId,
99709
- name: `${entry.givenName || ""} ${entry.familyName || ""}`.trim() || "No name specified",
99710
- email: entry.email || null,
99711
- alreadyEnrolled: enrolledStudentIds.has(entry.sourcedId),
99712
- ...past.length > 0 ? { pastEnrollments: past } : {}
99713
- };
99724
+ return [
99725
+ {
99726
+ studentId: entry.sourcedId,
99727
+ name: `${entry.givenName || ""} ${entry.familyName || ""}`.trim() || "No name specified",
99728
+ email: entry.email || null,
99729
+ primaryRole,
99730
+ alreadyEnrolled: enrolledStudentIds.has(entry.sourcedId),
99731
+ ...past.length > 0 ? { pastEnrollments: past } : {}
99732
+ }
99733
+ ];
99714
99734
  });
99715
99735
  setAttribute("app.timeback.result_count", students.length);
99716
99736
  return { students };
package/dist/server.js CHANGED
@@ -1127,7 +1127,7 @@ var package_default;
1127
1127
  var init_package = __esm(() => {
1128
1128
  package_default = {
1129
1129
  name: "@playcademy/sandbox",
1130
- version: "0.10.1-beta.5",
1130
+ version: "0.10.1-beta.6",
1131
1131
  description: "Local development server for Playcademy game development",
1132
1132
  type: "module",
1133
1133
  exports: {
@@ -94027,8 +94027,20 @@ function compareEnrollmentsByRecency(a, b) {
94027
94027
  }
94028
94028
  return (b.dateLastModified ?? "").localeCompare(a.dateLastModified ?? "");
94029
94029
  }
94030
+ function resolvePrimaryAccountRole(roles2) {
94031
+ if (!roles2?.length) {
94032
+ return null;
94033
+ }
94034
+ return ACCOUNT_ROLE_PRECEDENCE.find((role) => roles2.some((entry) => entry.role === role)) ?? null;
94035
+ }
94036
+ var ACCOUNT_ROLE_PRECEDENCE;
94030
94037
  var init_timeback_admin_util = __esm(() => {
94031
94038
  init_errors2();
94039
+ ACCOUNT_ROLE_PRECEDENCE = [
94040
+ "administrator",
94041
+ "teacher",
94042
+ "student"
94043
+ ];
94032
94044
  });
94033
94045
 
94034
94046
  // ../api-core/src/utils/timeback-discrepancy-queue.util.ts
@@ -98738,6 +98750,7 @@ class TimebackAdminService {
98738
98750
  className: rosterEntry.class?.title || null,
98739
98751
  name: name3,
98740
98752
  email: rosterEntry.user?.email || null,
98753
+ primaryRole: resolvePrimaryAccountRole(rosterEntry.user?.roles),
98741
98754
  analyticsUnavailable,
98742
98755
  totalXp: summary?.totalXp ?? 0,
98743
98756
  todayXp: summary?.todayXp ?? 0,
@@ -99701,15 +99714,22 @@ class TimebackAdminService {
99701
99714
  });
99702
99715
  pastEnrollmentsByStudent.set(studentId, list);
99703
99716
  }
99704
- const students = allUsers.filter((entry) => Boolean(entry.sourcedId) && entry.roles?.some((role) => role.role === "student") === true).map((entry) => {
99717
+ const students = allUsers.flatMap((entry) => {
99718
+ const primaryRole = resolvePrimaryAccountRole(entry.roles);
99719
+ if (!entry.sourcedId || !primaryRole) {
99720
+ return [];
99721
+ }
99705
99722
  const past = pastEnrollmentsByStudent.get(entry.sourcedId) ?? [];
99706
- return {
99707
- studentId: entry.sourcedId,
99708
- name: `${entry.givenName || ""} ${entry.familyName || ""}`.trim() || "No name specified",
99709
- email: entry.email || null,
99710
- alreadyEnrolled: enrolledStudentIds.has(entry.sourcedId),
99711
- ...past.length > 0 ? { pastEnrollments: past } : {}
99712
- };
99723
+ return [
99724
+ {
99725
+ studentId: entry.sourcedId,
99726
+ name: `${entry.givenName || ""} ${entry.familyName || ""}`.trim() || "No name specified",
99727
+ email: entry.email || null,
99728
+ primaryRole,
99729
+ alreadyEnrolled: enrolledStudentIds.has(entry.sourcedId),
99730
+ ...past.length > 0 ? { pastEnrollments: past } : {}
99731
+ }
99732
+ ];
99713
99733
  });
99714
99734
  setAttribute("app.timeback.result_count", students.length);
99715
99735
  return { students };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/sandbox",
3
- "version": "0.10.1-beta.5",
3
+ "version": "0.10.1-beta.6",
4
4
  "description": "Local development server for Playcademy game development",
5
5
  "type": "module",
6
6
  "exports": {