playcademy 0.27.1-beta.1 → 0.27.1-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 +1 -1
- package/dist/cli.js +2 -2
- package/dist/constants.js +1 -1
- package/dist/db.js +1 -1
- package/dist/index.js +29 -2
- package/dist/runtime/backend-runtime/index.js +11 -3
- package/dist/runtime/backend-runtime/manifest.json +4 -4
- package/dist/utils.js +2 -2
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/bucket.js
CHANGED
|
@@ -94,7 +94,7 @@ var DEFAULT_API_ROUTES_DIRECTORY = join2(SERVER_ROOT_DIRECTORY, "api");
|
|
|
94
94
|
// ../better-auth/package.json
|
|
95
95
|
var package_default = {
|
|
96
96
|
name: "@playcademy/better-auth",
|
|
97
|
-
version: "0.0.
|
|
97
|
+
version: "0.0.20-beta.1",
|
|
98
98
|
type: "module",
|
|
99
99
|
exports: {
|
|
100
100
|
"./server": {
|
package/dist/cli.js
CHANGED
|
@@ -1196,7 +1196,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
|
|
|
1196
1196
|
// ../better-auth/package.json
|
|
1197
1197
|
var package_default = {
|
|
1198
1198
|
name: "@playcademy/better-auth",
|
|
1199
|
-
version: "0.0.
|
|
1199
|
+
version: "0.0.20-beta.1",
|
|
1200
1200
|
type: "module",
|
|
1201
1201
|
exports: {
|
|
1202
1202
|
"./server": {
|
|
@@ -2951,7 +2951,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
|
|
|
2951
2951
|
import { join as join13 } from "node:path";
|
|
2952
2952
|
|
|
2953
2953
|
// src/version.ts
|
|
2954
|
-
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.
|
|
2954
|
+
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.2";
|
|
2955
2955
|
|
|
2956
2956
|
// src/lib/init/database.ts
|
|
2957
2957
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
package/dist/constants.js
CHANGED
package/dist/db.js
CHANGED
|
@@ -36,7 +36,7 @@ var DEFAULT_API_ROUTES_DIRECTORY = join2(SERVER_ROOT_DIRECTORY, "api");
|
|
|
36
36
|
// ../better-auth/package.json
|
|
37
37
|
var package_default = {
|
|
38
38
|
name: "@playcademy/better-auth",
|
|
39
|
-
version: "0.0.
|
|
39
|
+
version: "0.0.20-beta.1",
|
|
40
40
|
type: "module",
|
|
41
41
|
exports: {
|
|
42
42
|
"./server": {
|
package/dist/index.js
CHANGED
|
@@ -326,7 +326,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
|
|
|
326
326
|
// ../better-auth/package.json
|
|
327
327
|
var package_default = {
|
|
328
328
|
name: "@playcademy/better-auth",
|
|
329
|
-
version: "0.0.
|
|
329
|
+
version: "0.0.20-beta.1",
|
|
330
330
|
type: "module",
|
|
331
331
|
exports: {
|
|
332
332
|
"./server": {
|
|
@@ -4140,7 +4140,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, readFileSync as rea
|
|
|
4140
4140
|
import { join as join13 } from "node:path";
|
|
4141
4141
|
|
|
4142
4142
|
// src/version.ts
|
|
4143
|
-
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.
|
|
4143
|
+
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.2";
|
|
4144
4144
|
|
|
4145
4145
|
// src/lib/init/database.ts
|
|
4146
4146
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
|
@@ -13074,6 +13074,7 @@ import { sql as sql2 } from "drizzle-orm";
|
|
|
13074
13074
|
import { sql } from "drizzle-orm";
|
|
13075
13075
|
import {
|
|
13076
13076
|
boolean as boolean3,
|
|
13077
|
+
doublePrecision,
|
|
13077
13078
|
index,
|
|
13078
13079
|
integer as integer2,
|
|
13079
13080
|
pgEnum as pgEnum3,
|
|
@@ -13397,6 +13398,32 @@ var gameTimebackMetricDiscrepancyVerifications = pgTable3(
|
|
|
13397
13398
|
)
|
|
13398
13399
|
]
|
|
13399
13400
|
);
|
|
13401
|
+
var gameTimebackActivityCompletions = pgTable3(
|
|
13402
|
+
"game_timeback_activity_completions",
|
|
13403
|
+
{
|
|
13404
|
+
id: uuid2("id").primaryKey().defaultRandom(),
|
|
13405
|
+
gameId: uuid2("game_id").notNull().references(() => games.id, { onDelete: "cascade" }),
|
|
13406
|
+
courseId: text3("course_id").notNull(),
|
|
13407
|
+
studentId: text3("student_id").notNull(),
|
|
13408
|
+
runId: uuid2("run_id").notNull(),
|
|
13409
|
+
activityId: text3("activity_id").notNull(),
|
|
13410
|
+
completedAt: timestamp3("completed_at", { withTimezone: true }),
|
|
13411
|
+
reservedAt: timestamp3("reserved_at", { withTimezone: true, mode: "string" }).notNull().defaultNow(),
|
|
13412
|
+
xpAwarded: doublePrecision("xp_awarded"),
|
|
13413
|
+
masteredUnitsApplied: integer2("mastered_units_applied"),
|
|
13414
|
+
pctCompleteApp: doublePrecision("pct_complete_app"),
|
|
13415
|
+
createdAt: timestamp3("created_at", { withTimezone: true }).notNull().defaultNow()
|
|
13416
|
+
},
|
|
13417
|
+
(table) => [
|
|
13418
|
+
uniqueIndex3("game_timeback_activity_completions_run_idx").on(
|
|
13419
|
+
table.gameId,
|
|
13420
|
+
table.courseId,
|
|
13421
|
+
table.studentId,
|
|
13422
|
+
table.runId,
|
|
13423
|
+
table.activityId
|
|
13424
|
+
)
|
|
13425
|
+
]
|
|
13426
|
+
);
|
|
13400
13427
|
|
|
13401
13428
|
// src/lib/deploy/preparation.ts
|
|
13402
13429
|
async function updateBuildMetadata(context2) {
|
|
@@ -414,9 +414,9 @@ var init_routes = __esm({
|
|
|
414
414
|
// ../edge-play/src/entry/metadata.ts
|
|
415
415
|
function getRuntimeMetadata() {
|
|
416
416
|
return {
|
|
417
|
-
cliVersion: true ? "0.27.1-beta.
|
|
418
|
-
sdkVersion: true ? "0.15.
|
|
419
|
-
buildId: true ? "
|
|
417
|
+
cliVersion: true ? "0.27.1-beta.2" : "0.0.0-dev",
|
|
418
|
+
sdkVersion: true ? "0.15.1-beta.1" : "0.0.0-dev",
|
|
419
|
+
buildId: true ? "d545e8dcb239" : "dev-source"
|
|
420
420
|
};
|
|
421
421
|
}
|
|
422
422
|
var init_metadata = __esm({
|
|
@@ -4118,6 +4118,12 @@ function createTimebackNamespace(client) {
|
|
|
4118
4118
|
* @param payload.xpEarned - XP earned for this activity (required)
|
|
4119
4119
|
* @param payload.masteredUnits - Optional mastery units completed this session
|
|
4120
4120
|
* @param payload.extensions - Optional arbitrary extensions for the Caliper event
|
|
4121
|
+
* @param payload.runId - Optional stable run identifier (UUID) enabling the
|
|
4122
|
+
* platform's duplicate-completion guard: at most one completion is recorded
|
|
4123
|
+
* per activity per run. A resubmission (e.g. a retry after a timeout) returns
|
|
4124
|
+
* `blockedByDedupeGuard: true` echoing the originally recorded award instead
|
|
4125
|
+
* of double-counting XP. Strongly recommended for any caller with retry
|
|
4126
|
+
* logic; use a fresh UUID per logical run.
|
|
4121
4127
|
* @returns Promise resolving to the API response with status, courseId, and xpAwarded
|
|
4122
4128
|
* @throws {Error} If grade or subject are missing
|
|
4123
4129
|
* @throws {Error} If the API request fails
|
|
@@ -4125,6 +4131,7 @@ function createTimebackNamespace(client) {
|
|
|
4125
4131
|
* @example
|
|
4126
4132
|
* ```typescript
|
|
4127
4133
|
* await client.timeback.endActivity('student-tb-id-123', {
|
|
4134
|
+
* runId: crypto.randomUUID(), // mint once per run; reuse on retries
|
|
4128
4135
|
* activityData: {
|
|
4129
4136
|
* activityId: 'math-quiz-1',
|
|
4130
4137
|
* activityName: 'Basic Arithmetic Quiz',
|
|
@@ -4153,6 +4160,7 @@ function createTimebackNamespace(client) {
|
|
|
4153
4160
|
return client["request"]("/api/timeback/end-activity", "POST", {
|
|
4154
4161
|
gameId: client.gameId,
|
|
4155
4162
|
studentId,
|
|
4163
|
+
...payload.runId ? { runId: payload.runId } : {},
|
|
4156
4164
|
activityData: enrichedActivityData,
|
|
4157
4165
|
scoreData: payload.scoreData,
|
|
4158
4166
|
timingData: payload.timingData,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"cliVersion": "0.27.1-beta.
|
|
3
|
-
"sdkVersion": "0.15.
|
|
4
|
-
"runtimeBuildId": "
|
|
5
|
-
"inputFingerprint": "
|
|
2
|
+
"cliVersion": "0.27.1-beta.2",
|
|
3
|
+
"sdkVersion": "0.15.1-beta.1",
|
|
4
|
+
"runtimeBuildId": "d545e8dcb239",
|
|
5
|
+
"inputFingerprint": "d545e8dcb2397340ecb4aeaf21a6cfa083edd51f1fba4ad42b3b2fb6ef89ed97",
|
|
6
6
|
"entry": "index.js"
|
|
7
7
|
}
|
package/dist/utils.js
CHANGED
|
@@ -359,7 +359,7 @@ var DEFAULT_API_ROUTES_DIRECTORY = join2(SERVER_ROOT_DIRECTORY, "api");
|
|
|
359
359
|
// ../better-auth/package.json
|
|
360
360
|
var package_default = {
|
|
361
361
|
name: "@playcademy/better-auth",
|
|
362
|
-
version: "0.0.
|
|
362
|
+
version: "0.0.20-beta.1",
|
|
363
363
|
type: "module",
|
|
364
364
|
exports: {
|
|
365
365
|
"./server": {
|
|
@@ -2603,7 +2603,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, writeFileSync as wr
|
|
|
2603
2603
|
import { dirname as dirname4, join as join14 } from "node:path";
|
|
2604
2604
|
|
|
2605
2605
|
// src/version.ts
|
|
2606
|
-
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.
|
|
2606
|
+
var cliVersion = false ? "0.0.0-dev" : "0.27.1-beta.2";
|
|
2607
2607
|
|
|
2608
2608
|
// src/lib/build/binary-resource.ts
|
|
2609
2609
|
function writeFileTree(baseDir, files) {
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playcademy",
|
|
3
|
-
"version": "0.27.1-beta.
|
|
3
|
+
"version": "0.27.1-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.15.
|
|
58
|
+
"@playcademy/sdk": "0.15.1-beta.1",
|
|
59
59
|
"chokidar": "^4.0.3",
|
|
60
60
|
"colorette": "^2.0.20",
|
|
61
61
|
"commander": "^14.0.1",
|