playcademy 0.33.3 → 0.33.4-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/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.28",
45
+ version: "0.0.29-beta.2",
46
46
  type: "module",
47
47
  exports: {
48
48
  "./server": {
package/dist/cli.js CHANGED
@@ -1204,7 +1204,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1204
1204
  // ../better-auth/package.json
1205
1205
  var package_default = {
1206
1206
  name: "@playcademy/better-auth",
1207
- version: "0.0.28",
1207
+ version: "0.0.29-beta.2",
1208
1208
  type: "module",
1209
1209
  exports: {
1210
1210
  "./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.33.3";
3048
+ var cliVersion = false ? "0.0.0-dev" : "0.33.4-beta.2";
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.28",
24
+ version: "0.0.29-beta.2",
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.28",
2336
+ version: "0.0.29-beta.2",
2337
2337
  type: "module",
2338
2338
  exports: {
2339
2339
  "./server": {
package/dist/index.d.ts CHANGED
@@ -3,6 +3,32 @@ import { GamePermission as GamePermission$2 } from '@playcademy/constants';
3
3
  import { PlaycademyClient } from '@playcademy/sdk/internal';
4
4
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
5
5
 
6
+ /**
7
+ * TimeBack Configuration Types
8
+ *
9
+ * Configuration interfaces for Organization, Course, Component,
10
+ * Resource, and complete TimeBack setup.
11
+ *
12
+ * @module types/timeback/config
13
+ */
14
+
15
+ /**
16
+ * All TimeBack resource IDs derived from courseId
17
+ */
18
+ interface TimebackSourcedIds {
19
+ organization: string;
20
+ course: string;
21
+ component: string;
22
+ resource: string;
23
+ componentResource: string;
24
+ classCore: string;
25
+ classAfterHours: string;
26
+ }
27
+ interface TimebackCourseConfig$1 {
28
+ subject: string;
29
+ grade: number;
30
+ }
31
+
6
32
  /**
7
33
  * User Types
8
34
  *
@@ -609,7 +635,7 @@ interface ComponentResourceConfig {
609
635
  /** Lesson type for PowerPath integration */
610
636
  lessonType?: LessonType;
611
637
  }
612
- interface TimebackCourseConfig$1 {
638
+ interface TimebackCourseConfig {
613
639
  subject: string;
614
640
  grade: number;
615
641
  }
@@ -643,7 +669,7 @@ interface TimebackBaseConfig {
643
669
  * Extended course configuration that merges TimebackCourseConfig with per-course overrides.
644
670
  * Used in playcademy.config.* to allow per-course customization.
645
671
  */
646
- interface TimebackCourseConfigWithOverrides extends TimebackCourseConfig$1 {
672
+ interface TimebackCourseConfigWithOverrides extends TimebackCourseConfig {
647
673
  title?: string;
648
674
  courseCode?: string;
649
675
  level?: string;
@@ -831,32 +857,6 @@ interface WorkerDeploymentBundle {
831
857
  compatibilityFlags?: string[];
832
858
  }
833
859
 
834
- /**
835
- * TimeBack Configuration Types
836
- *
837
- * Configuration interfaces for Organization, Course, Component,
838
- * Resource, and complete TimeBack setup.
839
- *
840
- * @module types/timeback/config
841
- */
842
-
843
- /**
844
- * All TimeBack resource IDs derived from courseId
845
- */
846
- interface TimebackSourcedIds {
847
- organization: string;
848
- course: string;
849
- component: string;
850
- resource: string;
851
- componentResource: string;
852
- classCore: string;
853
- classAfterHours: string;
854
- }
855
- interface TimebackCourseConfig {
856
- subject: string;
857
- grade: number;
858
- }
859
-
860
860
  /**
861
861
  * Browser permissions a game may declare and the hub may delegate to its
862
862
  * iframe. Opt-in per game because a delegated grant keys to the hub's
@@ -2354,4 +2354,4 @@ interface RunShellOptions {
2354
2354
  env?: NodeJS.ProcessEnv;
2355
2355
  }
2356
2356
 
2357
- export type { ApiConfig, ApiErrorResponse, ApiKeyListItem, ApiKeyWithSecret, ApiRequestOptions, ApplySecretsOptions, AssetManifest, AuthProfile, AuthStore, AuthStrategy, AvailableUpdate, BackendDiff, BaseKVOptions, BlockedCode, BucketAdapter, BucketDeleteOptions, BucketGetOptions, BucketLevelView, BucketListOptions, BucketMigrateMode, BucketObjectRef, BucketPutOptions, BucketSyncOptions, BucketUploadOptions, BuildDiff, BundleOptions, CallbackServerResult, CheckSecretsOptions, CollectedFile, CompatibilityKey, CompatibilityManifest, ComponentConfig, ComponentResourceConfig, ConfigDiff, CreateApiKeyResponse, CustomRoutesIntegrationOptions, DashboardConfig, DatabaseIntegrationOptions, DependencyCheck, DeployConfig, DeployNewGameOptions, DeployedGameInfo, DeploymentChanges, DeploymentContext, DeploymentDiffOptions, DeploymentPlan, DeploymentResult, DiscoveredDependency, EngineConfig, EngineType, EnvironmentAuthProfiles, GameBackendBundle, GameBackendDeploymentMetadata, GameBackendFeatures, GameDevServerOptions, GameRuntimePaths, GameStore, HashedFile, InstalledVersions, IntegrationChangeDetector, IntegrationChangeDetectors, IntegrationConfigChange, IntegrationsConfig, IntegrationsDiff, KVClearOptions, KVDeleteOptions, KVDumpOptions, KVGetOptions, KVInspectOptions, KVListOptions, KVSeedOptions, KVSetOptions, KVStatsOptions, KeyMetadata, KeyStats, ListedObject, LoadConfigResult, LogEntry, LogFilters, LogHistoryQuery, LogHistoryResult, LogStreamConfig, LogStreamUrlOptions, LoginCredentials, LoginResponse, MissingSecret, OrganizationConfig, PlaycademyConfig, PluginLogger, PreviewOptions, PreviewResponse, ProjectDirectoryInfo, QueueConfig, ResourceConfig, RunShellOptions, RuntimeManifest, ScaffoldResult, SecretCommandOptions, SecretListOptions, SecretPushOptions, SecretsSyncOptions, SecretsSyncResult, SignInResponse, SsoCallbackData, Template, TemplateFramework, TemplateHook, TemplateHookOptions, TemplateSource, TimebackBaseConfig, TimebackCourseConfig, TimebackCourseConfigWithOverrides, TimebackGrade, TimebackIntegrationConfig, TimebackSourcedIds, TimebackSubject, TokenType, UpdateCommand, UpdateExistingGameOptions, Violation, WorkspaceDependencies };
2357
+ export type { ApiConfig, ApiErrorResponse, ApiKeyListItem, ApiKeyWithSecret, ApiRequestOptions, ApplySecretsOptions, AssetManifest, AuthProfile, AuthStore, AuthStrategy, AvailableUpdate, BackendDiff, BaseKVOptions, BlockedCode, BucketAdapter, BucketDeleteOptions, BucketGetOptions, BucketLevelView, BucketListOptions, BucketMigrateMode, BucketObjectRef, BucketPutOptions, BucketSyncOptions, BucketUploadOptions, BuildDiff, BundleOptions, CallbackServerResult, CheckSecretsOptions, CollectedFile, CompatibilityKey, CompatibilityManifest, ComponentConfig, ComponentResourceConfig, ConfigDiff, CreateApiKeyResponse, CustomRoutesIntegrationOptions, DashboardConfig, DatabaseIntegrationOptions, DependencyCheck, DeployConfig, DeployNewGameOptions, DeployedGameInfo, DeploymentChanges, DeploymentContext, DeploymentDiffOptions, DeploymentPlan, DeploymentResult, DiscoveredDependency, EngineConfig, EngineType, EnvironmentAuthProfiles, GameBackendBundle, GameBackendDeploymentMetadata, GameBackendFeatures, GameDevServerOptions, GameRuntimePaths, GameStore, HashedFile, InstalledVersions, IntegrationChangeDetector, IntegrationChangeDetectors, IntegrationConfigChange, IntegrationsConfig, IntegrationsDiff, KVClearOptions, KVDeleteOptions, KVDumpOptions, KVGetOptions, KVInspectOptions, KVListOptions, KVSeedOptions, KVSetOptions, KVStatsOptions, KeyMetadata, KeyStats, ListedObject, LoadConfigResult, LogEntry, LogFilters, LogHistoryQuery, LogHistoryResult, LogStreamConfig, LogStreamUrlOptions, LoginCredentials, LoginResponse, MissingSecret, OrganizationConfig, PlaycademyConfig, PluginLogger, PreviewOptions, PreviewResponse, ProjectDirectoryInfo, QueueConfig, ResourceConfig, RunShellOptions, RuntimeManifest, ScaffoldResult, SecretCommandOptions, SecretListOptions, SecretPushOptions, SecretsSyncOptions, SecretsSyncResult, SignInResponse, SsoCallbackData, Template, TemplateFramework, TemplateHook, TemplateHookOptions, TemplateSource, TimebackBaseConfig, TimebackCourseConfig$1 as TimebackCourseConfig, TimebackCourseConfigWithOverrides, TimebackGrade, TimebackIntegrationConfig, TimebackSourcedIds, TimebackSubject, TokenType, UpdateCommand, UpdateExistingGameOptions, Violation, WorkspaceDependencies };
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.28",
2348
+ version: "0.0.29-beta.2",
2349
2349
  type: "module",
2350
2350
  exports: {
2351
2351
  "./server": {
@@ -6487,7 +6487,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync2, readFileSync as re
6487
6487
  import { join as join12 } from "node:path";
6488
6488
 
6489
6489
  // src/version.ts
6490
- var cliVersion = false ? "0.0.0-dev" : "0.33.3";
6490
+ var cliVersion = false ? "0.0.0-dev" : "0.33.4-beta.2";
6491
6491
 
6492
6492
  // src/lib/init/database.ts
6493
6493
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -29535,6 +29535,7 @@ import { sql } from "drizzle-orm";
29535
29535
  import {
29536
29536
  check,
29537
29537
  doublePrecision,
29538
+ foreignKey,
29538
29539
  index as index3,
29539
29540
  integer as integer2,
29540
29541
  jsonb as jsonb2,
@@ -29549,6 +29550,10 @@ var gameTimebackIntegrationStatusEnum = pgEnum3("game_timeback_integration_statu
29549
29550
  "active",
29550
29551
  "deactivated"
29551
29552
  ]);
29553
+ var gameTimebackIntegrationKindEnum = pgEnum3("game_timeback_integration_kind", [
29554
+ "base",
29555
+ "hole_filling"
29556
+ ]);
29552
29557
  var gameTimebackAssessmentPurposeEnum = pgEnum3(
29553
29558
  "game_timeback_assessment_purpose",
29554
29559
  ASSESSMENT_PURPOSES
@@ -29567,6 +29572,8 @@ var gameTimebackIntegrations = pgTable3(
29567
29572
  grade: integer2("grade").notNull(),
29568
29573
  subject: text3("subject").notNull(),
29569
29574
  status: gameTimebackIntegrationStatusEnum("status"),
29575
+ kind: gameTimebackIntegrationKindEnum("kind").notNull().default("base"),
29576
+ baseIntegrationId: uuid2("base_integration_id"),
29570
29577
  totalXp: integer2("total_xp"),
29571
29578
  lastVerifiedAt: timestamp3("last_verified_at", { withTimezone: true }),
29572
29579
  deactivatedAt: timestamp3("deactivated_at", { withTimezone: true }),
@@ -29575,7 +29582,22 @@ var gameTimebackIntegrations = pgTable3(
29575
29582
  updatedAt: timestamp3("updated_at", { withTimezone: true }).notNull().defaultNow()
29576
29583
  },
29577
29584
  (table2) => [
29578
- uniqueIndex3("game_timeback_integrations_game_grade_subject_idx").on(table2.gameId, table2.grade, table2.subject).where(sql`${table2.status} IS DISTINCT FROM 'deactivated'`)
29585
+ uniqueIndex3("game_timeback_integrations_game_grade_subject_idx").on(table2.gameId, table2.grade, table2.subject).where(sql`${table2.status} IS DISTINCT FROM 'deactivated' AND ${table2.kind} = 'base'`),
29586
+ uniqueIndex3("game_timeback_integrations_hole_filling_course_idx").on(table2.gameId, table2.courseId).where(sql`${table2.kind} = 'hole_filling'`),
29587
+ index3("game_timeback_integrations_base_integration_idx").on(table2.baseIntegrationId),
29588
+ foreignKey({
29589
+ name: "game_timeback_integrations_base_integration_id_fk",
29590
+ columns: [table2.baseIntegrationId],
29591
+ foreignColumns: [table2.id]
29592
+ }),
29593
+ check(
29594
+ "game_timeback_integrations_kind_base_check",
29595
+ sql`(
29596
+ (${table2.kind}::text = 'base' AND ${table2.baseIntegrationId} IS NULL)
29597
+ OR
29598
+ (${table2.kind}::text = 'hole_filling' AND ${table2.baseIntegrationId} IS NOT NULL)
29599
+ )`
29600
+ )
29579
29601
  ]
29580
29602
  );
29581
29603
  var gameTimebackAssessmentTests = pgTable3(
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.33.3",
3
- "sdkVersion": "0.24.0",
4
- "runtimeBuildId": "c0865ea4d40e",
5
- "inputFingerprint": "c0865ea4d40e33b52d68c87c438bada95e4491b287036f14259387bd6b234921",
2
+ "cliVersion": "0.33.4-beta.2",
3
+ "sdkVersion": "0.24.1-beta.2",
4
+ "runtimeBuildId": "63939c747740",
5
+ "inputFingerprint": "63939c7477404947658a9f7657d3c1207c93dcc8968e0256626d75cc5d2792cd",
6
6
  "entry": "index.js"
7
7
  }
@@ -1214,6 +1214,13 @@ var init_activity_tracker = __esm({
1214
1214
  }
1215
1215
  });
1216
1216
 
1217
+ // ../sdk/src/core/timeback/course-hint.ts
1218
+ var init_course_hint = __esm({
1219
+ "../sdk/src/core/timeback/course-hint.ts"() {
1220
+ "use strict";
1221
+ }
1222
+ });
1223
+
1217
1224
  // ../sdk/src/namespaces/game/embed.ts
1218
1225
  var init_embed2 = __esm({
1219
1226
  "../sdk/src/namespaces/game/embed.ts"() {
@@ -1227,6 +1234,7 @@ var init_embed2 = __esm({
1227
1234
  init_resume_store();
1228
1235
  init_session();
1229
1236
  init_activity_tracker();
1237
+ init_course_hint();
1230
1238
  init_keepalive();
1231
1239
  }
1232
1240
  });
@@ -1321,6 +1329,7 @@ var init_engine = __esm({
1321
1329
  init_src();
1322
1330
  init_ttl_cache();
1323
1331
  init_activity_tracker();
1332
+ init_course_hint();
1324
1333
  init_user();
1325
1334
  }
1326
1335
  });
@@ -14358,9 +14367,9 @@ var init_list = __esm({
14358
14367
  // ../edge-play/src/game/lib/metadata.ts
14359
14368
  function getRuntimeMetadata() {
14360
14369
  return {
14361
- cliVersion: true ? "0.33.3" : "0.0.0-dev",
14362
- sdkVersion: true ? "0.24.0" : "0.0.0-dev",
14363
- buildId: true ? "c0865ea4d40e" : "dev-source"
14370
+ cliVersion: true ? "0.33.4-beta.2" : "0.0.0-dev",
14371
+ sdkVersion: true ? "0.24.1-beta.2" : "0.0.0-dev",
14372
+ buildId: true ? "63939c747740" : "dev-source"
14364
14373
  };
14365
14374
  }
14366
14375
  var init_metadata = __esm({
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.33.3",
3
- "sdkVersion": "0.24.0",
4
- "runtimeBuildId": "c0865ea4d40e",
5
- "inputFingerprint": "c0865ea4d40e33b52d68c87c438bada95e4491b287036f14259387bd6b234921",
2
+ "cliVersion": "0.33.4-beta.2",
3
+ "sdkVersion": "0.24.1-beta.2",
4
+ "runtimeBuildId": "63939c747740",
5
+ "inputFingerprint": "63939c7477404947658a9f7657d3c1207c93dcc8968e0256626d75cc5d2792cd",
6
6
  "entry": "index.js"
7
7
  }
package/dist/utils.js CHANGED
@@ -401,7 +401,7 @@ var DASHBOARD_API_ROUTES_DIRECTORY = "api";
401
401
  // ../better-auth/package.json
402
402
  var package_default = {
403
403
  name: "@playcademy/better-auth",
404
- version: "0.0.28",
404
+ version: "0.0.29-beta.2",
405
405
  type: "module",
406
406
  exports: {
407
407
  "./server": {
@@ -2890,7 +2890,7 @@ import { existsSync as existsSync10, mkdirSync as mkdirSync2, writeFileSync as w
2890
2890
  import { dirname as dirname4, join as join14 } from "node:path";
2891
2891
 
2892
2892
  // src/version.ts
2893
- var cliVersion = false ? "0.0.0-dev" : "0.33.3";
2893
+ var cliVersion = false ? "0.0.0-dev" : "0.33.4-beta.2";
2894
2894
 
2895
2895
  // src/lib/build/binary-resource.ts
2896
2896
  function writeFileTree(baseDir, files) {
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.33.3";
4
+ var cliVersion = false ? "0.0.0-dev" : "0.33.4-beta.2";
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.33.3",
3
+ "version": "0.33.4-beta.2",
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.24.0",
58
+ "@playcademy/sdk": "0.24.1-beta.2",
59
59
  "chokidar": "^4.0.3",
60
60
  "colorette": "^2.0.20",
61
61
  "commander": "^14.0.1",