playcademy 0.29.1-beta.2 → 0.30.0

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-beta.2",
45
+ version: "0.0.22",
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-beta.2",
1211
+ version: "0.0.22",
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.29.1-beta.2";
3048
+ var cliVersion = false ? "0.0.0-dev" : "0.30.0";
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-beta.2",
24
+ version: "0.0.22",
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-beta.2",
2336
+ version: "0.0.22",
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-beta.2",
2348
+ version: "0.0.22",
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.29.1-beta.2";
6489
+ var cliVersion = false ? "0.0.0-dev" : "0.30.0";
6490
6490
 
6491
6491
  // src/lib/init/database.ts
6492
6492
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -22584,7 +22584,7 @@ function isFixtureDiagnosticRouting(value, assessment, correctResponses, respons
22584
22584
  });
22585
22585
  return validation.valid;
22586
22586
  }
22587
- var ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 7;
22587
+ var ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 8;
22588
22588
  function isAssessmentRuntimeFixtureBundle(value) {
22589
22589
  if (!isRecord2(value) || value.version !== ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION || typeof value.gameId !== "string" || typeof value.exportedAt !== "string" || !Array.isArray(value.catalogs)) {
22590
22590
  return false;
@@ -22597,7 +22597,7 @@ function isAssessmentRuntimeFixtureBundle(value) {
22597
22597
  return false;
22598
22598
  }
22599
22599
  const validTests = catalog.tests.every((test) => {
22600
- if (!isRecord2(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || test.sortOrder !== null && !Number.isInteger(test.sortOrder) || typeof test.updatedAt !== "string" || typeof test.live !== "boolean" || !isRecord2(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord2(test.correctResponses)) {
22600
+ if (!isRecord2(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || typeof test.live !== "boolean" || !isRecord2(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord2(test.correctResponses)) {
22601
22601
  return false;
22602
22602
  }
22603
22603
  const standard = isRecord2(test.standard) && typeof test.standard.framework === "string" && typeof test.standard.identifier === "string" ? canonicalReviewStandardRef({
@@ -29812,7 +29812,10 @@ var gameTimebackAssessmentTests = pgTable3(
29812
29812
  qtiTestIdentifier: text3("qti_test_identifier").notNull(),
29813
29813
  purpose: gameTimebackAssessmentPurposeEnum("purpose").notNull().default("end_of_course"),
29814
29814
  status: gameTimebackAssessmentStatusEnum("status").notNull().default("draft"),
29815
- /** Playcademy-owned order within the live assessments for the same purpose. */
29815
+ /**
29816
+ * Retired. Live pools now rotate in assessment-key order and nothing writes
29817
+ * this column; it is dropped in a follow-up migration.
29818
+ */
29816
29819
  sortOrder: integer2("sort_order"),
29817
29820
  /** Canonical quiz-level alignment. Required for mastery assessments. */
29818
29821
  standardFramework: text3("standard_framework"),
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.29.1-beta.2",
3
- "sdkVersion": "0.17.1-beta.2",
4
- "runtimeBuildId": "1fbde6bc12e9",
5
- "inputFingerprint": "1fbde6bc12e961a9f80f44a0d8603ee681b92c647c286a60e67606bc1020ab70",
2
+ "cliVersion": "0.30.0",
3
+ "sdkVersion": "0.18.0",
4
+ "runtimeBuildId": "486fecc8fa56",
5
+ "inputFingerprint": "486fecc8fa56dbf77094b6cc8fd4305f7e57d613b0ed34733f2b6db12e9d225a",
6
6
  "entry": "index.js"
7
7
  }
@@ -11339,39 +11339,21 @@ function compareNewestCompletedAssessmentAttempt(left, right) {
11339
11339
  return newestAttempt(left, right, "scoreDate");
11340
11340
  }
11341
11341
  function compareAssessmentCatalogOrder(left, right) {
11342
- if (left.sortOrder !== null || right.sortOrder !== null) {
11343
- if (left.sortOrder === null) {
11344
- return 1;
11345
- }
11346
- if (right.sortOrder === null) {
11347
- return -1;
11348
- }
11349
- const orderDifference = left.sortOrder - right.sortOrder;
11350
- if (orderDifference) {
11351
- return orderDifference;
11352
- }
11353
- }
11354
- const leftUpdatedAt = Date.parse(left.updatedAt);
11355
- const rightUpdatedAt = Date.parse(right.updatedAt);
11356
- const leftHasValidDate = Number.isFinite(leftUpdatedAt);
11357
- const rightHasValidDate = Number.isFinite(rightUpdatedAt);
11358
- if (leftHasValidDate && rightHasValidDate) {
11359
- const updatedDifference = leftUpdatedAt - rightUpdatedAt;
11360
- if (updatedDifference) {
11361
- return updatedDifference;
11362
- }
11363
- } else if (leftHasValidDate !== rightHasValidDate) {
11364
- return leftHasValidDate ? -1 : 1;
11365
- }
11366
11342
  if (left.assessmentKey !== null && right.assessmentKey !== null) {
11367
- const keyDifference = left.assessmentKey.localeCompare(right.assessmentKey);
11343
+ const keyDifference = compareCodePoints(left.assessmentKey, right.assessmentKey);
11368
11344
  if (keyDifference) {
11369
11345
  return keyDifference;
11370
11346
  }
11371
11347
  } else if (left.assessmentKey !== null || right.assessmentKey !== null) {
11372
11348
  return left.assessmentKey === null ? 1 : -1;
11373
11349
  }
11374
- return left.qtiTestIdentifier.localeCompare(right.qtiTestIdentifier);
11350
+ return compareCodePoints(left.qtiTestIdentifier, right.qtiTestIdentifier);
11351
+ }
11352
+ function compareCodePoints(left, right) {
11353
+ if (left === right) {
11354
+ return 0;
11355
+ }
11356
+ return left < right ? -1 : 1;
11375
11357
  }
11376
11358
  function orderRuntimeAssessmentTests(tests) {
11377
11359
  return [...tests].toSorted(compareAssessmentCatalogOrder);
@@ -11900,7 +11882,7 @@ function isAssessmentRuntimeFixtureBundle(value) {
11900
11882
  return false;
11901
11883
  }
11902
11884
  const validTests = catalog.tests.every((test) => {
11903
- if (!isRecord(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || test.sortOrder !== null && !Number.isInteger(test.sortOrder) || typeof test.updatedAt !== "string" || typeof test.live !== "boolean" || !isRecord(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord(test.correctResponses)) {
11885
+ if (!isRecord(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || typeof test.live !== "boolean" || !isRecord(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord(test.correctResponses)) {
11904
11886
  return false;
11905
11887
  }
11906
11888
  const standard = isRecord(test.standard) && typeof test.standard.framework === "string" && typeof test.standard.identifier === "string" ? canonicalReviewStandardRef({
@@ -12133,7 +12115,7 @@ var init_assessment_runtime2 = __esm({
12133
12115
  DEFAULT_REVIEW_SELECTION_POLICY = {
12134
12116
  version: REVIEW_SELECTION_POLICY_VERSION
12135
12117
  };
12136
- ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 7;
12118
+ ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 8;
12137
12119
  RuntimeSubjectSchema = external_exports.enum(TIMEBACK_SUBJECTS);
12138
12120
  RuntimeGradeSchema = external_exports.number().refine(isTimebackGrade, {
12139
12121
  message: `Grade must be one of: ${TIMEBACK_GRADES.join(", ")}`
@@ -13714,9 +13696,9 @@ var init_list = __esm({
13714
13696
  // ../edge-play/src/game/lib/metadata.ts
13715
13697
  function getRuntimeMetadata() {
13716
13698
  return {
13717
- cliVersion: true ? "0.29.1-beta.2" : "0.0.0-dev",
13718
- sdkVersion: true ? "0.17.1-beta.2" : "0.0.0-dev",
13719
- buildId: true ? "1fbde6bc12e9" : "dev-source"
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"
13720
13702
  };
13721
13703
  }
13722
13704
  var init_metadata = __esm({
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.29.1-beta.2",
3
- "sdkVersion": "0.17.1-beta.2",
4
- "runtimeBuildId": "1fbde6bc12e9",
5
- "inputFingerprint": "1fbde6bc12e961a9f80f44a0d8603ee681b92c647c286a60e67606bc1020ab70",
2
+ "cliVersion": "0.30.0",
3
+ "sdkVersion": "0.18.0",
4
+ "runtimeBuildId": "486fecc8fa56",
5
+ "inputFingerprint": "486fecc8fa56dbf77094b6cc8fd4305f7e57d613b0ed34733f2b6db12e9d225a",
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-beta.2",
399
+ version: "0.0.22",
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.29.1-beta.2";
2852
+ var cliVersion = false ? "0.0.0-dev" : "0.30.0";
2853
2853
 
2854
2854
  // src/lib/build/binary-resource.ts
2855
2855
  function writeFileTree(baseDir, files) {
@@ -15352,7 +15352,7 @@ function isFixtureDiagnosticRouting(value, assessment, correctResponses, respons
15352
15352
  });
15353
15353
  return validation.valid;
15354
15354
  }
15355
- var ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 7;
15355
+ var ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION = 8;
15356
15356
  function isAssessmentRuntimeFixtureBundle(value) {
15357
15357
  if (!isRecord(value) || value.version !== ASSESSMENT_RUNTIME_FIXTURE_BUNDLE_VERSION || typeof value.gameId !== "string" || typeof value.exportedAt !== "string" || !Array.isArray(value.catalogs)) {
15358
15358
  return false;
@@ -15365,7 +15365,7 @@ function isAssessmentRuntimeFixtureBundle(value) {
15365
15365
  return false;
15366
15366
  }
15367
15367
  const validTests = catalog.tests.every((test) => {
15368
- if (!isRecord(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || test.sortOrder !== null && !Number.isInteger(test.sortOrder) || typeof test.updatedAt !== "string" || typeof test.live !== "boolean" || !isRecord(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord(test.correctResponses)) {
15368
+ if (!isRecord(test) || typeof test.id !== "string" || typeof test.assessmentKey !== "string" || typeof test.qtiTestIdentifier !== "string" || typeof test.live !== "boolean" || !isRecord(test.assessment) || typeof test.assessment.identifier !== "string" || !Number.isInteger(test.assessment.contractVersion) || typeof test.assessment.contentRevision !== "string" || !Array.isArray(test.assessment.items) || !isRecord(test.correctResponses)) {
15369
15369
  return false;
15370
15370
  }
15371
15371
  const standard = isRecord(test.standard) && typeof test.standard.framework === "string" && typeof test.standard.identifier === "string" ? canonicalReviewStandardRef({
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.29.1-beta.2";
4
+ var cliVersion = false ? "0.0.0-dev" : "0.30.0";
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.29.1-beta.2",
3
+ "version": "0.30.0",
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.17.1-beta.2",
58
+ "@playcademy/sdk": "0.18.0",
59
59
  "chokidar": "^4.0.3",
60
60
  "colorette": "^2.0.20",
61
61
  "commander": "^14.0.1",